CSC373/406: 13 [13/13] Previous pageContents

Figure 13.1: Step 1: Server accepts connection request from client.

conc-conc1

Figure 13.2: Step 2: Server forks a child process to service the client.

conc-conc2

Figure 13.3: Step 3: Server accepts another connection request.

conc-conc3

Figure 13.4: Step 4: Server forks another child to service the new client.

conc-conc4

Figure 13.7: State machine for a logical flow in a concurrent event-driven echo server.

conc-state

Figure 13.12: Concurrent thread execution.

conc-concthreads

Figure 13.17: IA32 assembly code for the counter loop in badcnt.c.

conc-badcntasm

Figure 13.19: Progress graph for the first loop iteration of badcnt.c.

conc-pg

Figure 13.20: An example trajectory.

conc-trajectory

Figure 13.21: Critical sections and unsafe regions.

conc-unsaferegion

Figure 13.22: Safe and unsafe trajectories.

conc-safetraj

Figure 13.23: Safe sharing with semaphores.

conc-pgsem

Figure 13.24: Producer-consumer model.

conc-prodconsdef

Figure 13.29: Organization of a prethreaded concurrent server.

conc-prethreaded

Figure 13.34: Relationships between the sets of reentrant, thread-safe, and nonthread-safe functions.

conc-threadsafe

Figure 13.39: Progress graph for a program that can deadlock.

conc-deadlock

Figure 13.40: Progress graph for a deadlock-free program.

conc-deadlock2

Previous pageContents