Chapter 3 Principles Process Description And Control

2y ago
83 Views
2 Downloads
3.58 MB
61 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Genevieve Webb
Transcription

OperatingSystems:Internalsand DesignPrinciplesChapter 3Process Descriptionand ControlEighth EditionBy William Stallings

A computer platformconsists of a collectionof hardware resources Computer applicationsare developed toperform some task It is inefficient forapplications to bewritten directly for agiven hardware platform The OS was developed toprovide a convenient,feature-rich, secure, andconsistent interface forapplications to use We can think of the OS asproviding a uniform,abstract representation ofresources that can berequested and accessed byapplications

OS Management ofApplication Execution Resourcesare made available to multipleapplications Theprocessor is switched among multipleapplications so all will appear to beprogressing Theprocessor and I/O devices can beused efficiently

Process Elements Two essential elements of a process are:Program code which may be shared with other processes that are executingthe same programA set of data associated with that code when the processor begins to execute the program code, we refer tothis executing entity as a process

While the program is executing, this process can be uniquelycharacterized by a number of elements, gramcounterI/O status accountingcontext datainformation information

IdentifierProcess ControlBlockStatePriorityProgram counterMemory pointersContext data Contains the process elements It is possible to interrupt a runningprocess and later resume execution asif the interruption had not occurredI/O statusinformationAccountinginformation Created and managed by theoperating system Key tool that allows support formultiple processesFigure 3.1 Simplified Process Control Block

Process StatesTraceDispatcherthe behavior of anindividual processby listing thesequence ofinstructions thatexecute for thatprocessthe behavior of the processorcan be characterized byshowing how the traces ofthe various processes areinterleavedsmall programthat switches theprocessor fromone process toanother

AddressProcessExecution0100Main MemoryProgram Counter8000Dispatcher5000Process A8000Process B12000Process CFigure 3.2 Snapshot of Example Execution (Figure 3.4)at Instruction Cycle 13

) Trace of Process A8000800180028003(b) Trace of Process 91201012011(c) Trace of Process C5000 Starting address of program of Process A8000 Starting address of program of Process B12000 Starting address of program of Process CFigure 3.3 Traces of Processes of Figure 3.2

150002500135002450035500465005-------------------- 02168003----------------I/O 12512002261200327120042812005-------------------- 75008385009395010405011-------------------- 74912008501200951120105212011-------------------- Timeout100 Starting address of dispatcher programShaded areas indicate execution of dispatcher process;first and third columns count instruction cycles;second and fourth columns show address of instruction being executedFigure 3.4 Combined Trace of Processes of Figure 3.2

Two-State Process ModelDispatchEnterNotRunningRunningPause(a) State transition diagramExit

Pause(a) State transition diagramQueueEnterDispatchProcessorPause(b) Queuing diagramFigure 3.5 Two-State Process ModelExit

Table 3.1 Reasons for ProcessCreation

Process CreationProcessspawning when theOS creates aprocess atthe explicitrequest ofanotherprocessParent process is theoriginal,creating,processChild process is the newprocess

Process Termination There must be a means for a process to indicate itscompletion A batch job should include a HALT instruction or anexplicit OS service call for termination For an interactive application, the action of the user willindicate when the process is completed (e.g. log off,quitting an application)

Table 3.2Reasons forProcessTermination(Table is located on page 115in the textbook)Normal completionThe process executes an OS service call to indicate that it has completedrunning.Time limit exceededThe process has run longer than the specified total time limit. There are anumber of possibilities for the type of time that is measured. These include totalelapsed time ("wall clock time"), amount of time spent executing, and, in thecase of an interactive process, the amount of time since the user last providedany input.Memory unavailableThe process requires more memory than the system can provide.Bounds violationThe process tries to access a memory location that it is not allowed to access.Protection errorThe process attempts to use a resource such as a file that it is not allowed to use,or it tries to use it in an improper fashion, such as writing to a read-only file.Arithmetic errorThe process tries a prohibited computation, such as division by zero, or tries tostore numbers larger than the hardware can accommodate.Time overrunThe process has waited longer than a specified maximum for a certain event tooccur.I/O failureAn error occurs during input or output, such as inability to find a file, failure toread or write after a specified maximum number of tries (when, for example, adefective area is encountered on a tape), or invalid operation (such as readingfrom the line printer).Invalid instructionThe process attempts to execute a nonexistent instruction (often a result ofbranching into a data area and attempting to execute the data).Privileged instructionThe process attempts to use an instruction reserved for the operating system.Data misuseA piece of data is of the wrong type or is not initialized.Operator or OS interventionFor some reason, the operator or the operating system has terminated the process(e.g., if a deadlock exists).Parent terminationWhen a parent terminates, the operating system may automatically terminate allof the offspring of that parent.Parent requestA parent process typically has the authority to terminate any of its offspring.

Five-State Process sEventWaitBlockedFigure 3.6 Five-State Process ModelReleaseExit

Process AProcess BProcess CDispatcher0510 Running1520 Ready25303540 BlockedFigure 3.7 Process States for Trace of Figure 3.44550

AdmitReady QueueDispatchReleaseProcessorTimeoutBlocked QueueEvent WaitEventOccurs(a) Single blocked queueAdmitReleaseReady QueueDispatchProcessorTimeoutEvent 1 QueueEvent 1OccursEvent 2OccursEvent nOccursEvent 2 QueueEvent n QueueEvent 1 WaitEvent 2 WaitEvent n Wait(b) Multiple blocked queuesFigure 3.8 Queuing Model for Figure 3.6

Swapping involves moving part of all of a process from main memory to disk when none of the processes in main memory is in the Ready state, theOS swaps one of the blocked processes out on to disk into a suspendqueue

(a) With One Suspend StateBlocked/SuspendSuspendBlockedRunningEent W ventWaitaSuspendEvent EventOccurs endDispatchReady end(a)BlockedWith One Suspend State(b) With Two Suspend StatesNewAdmittmiAdFigure 3.9 Process State Transition Diagram with Suspend StatesSuspend

(a) With One Suspend edSuspend(b) With Two Suspend StatesFigure 3.9 Process State Transition Diagram with Suspend States

The process is notimmediately availablefor execution The process was placedin a suspended state byan agent: either itself, aparent process, or theOS, for the purpose ofpreventing its execution The process may or maynot be waiting on anevent The process may not beremoved from this stateuntil the agent explicitlyorders the removal

Table 3.3Reasons for Process Suspension

puterResourcesFigure 3.10 Processes and Resources (resource allocation at one snapshot in time)

Memory TablesProcess1MemoryDevicesProcessImageI/O TablesFilesProcessesFile TablesPrimary Process TableProcess 1Process 2Process 3ProcessImageProcessnProcess nFigure 3.11 General Structure of Operating System Control Tables

Used to keep track of bothmain (real) and secondary(virtual) memory Processes are maintainedon secondary memoryusing some sort of virtualmemory or simpleswapping mechanism

Used by the OS to managethe I/O devices andchannels of the computersystem At any given time, an I/Odevice may be available orassigned to a particularprocess

These tables provideinformation about: existence of files location on secondarymemory current statusInformation may be maintained and used by a file management systemin whichcase theOS has little or no knowledge of filesotherattributes In other operating systems, much of the detail of file management ismanaged by the OS itself

Mustbe maintained to manage processes Theremust be some reference to memory,I/O, and files, directly or indirectly Thetables themselves must be accessible bythe OS and therefore are subject to memorymanagement

To manageandcontrol aprocess theOS mustknow: where theprocess islocated the attributes ofthe process thatare necessary forits management

Process Location A process must include aprogram or set of programs to beexecutedA process will consist of at leastsufficient memory to hold theprograms and data of thatprocessThe execution of a programtypically involves a stack that isused to keep track of procedurecalls and parameter passingbetween proceduresProcess Attributes Each process has associated withit a number of attributes that areused by the OS for processcontrol The collection of program, data,stack, and attributes is referred toas the process image Process image location willdepend on the memorymanagement scheme being used

Table 3.4Typical Elements of a Process ImageUser DataThe modifiable part of the user space. May include program data, a user stack area, andprograms that may be modified.User ProgramThe program to be executed.StackEach process has one or more last-in-first-out (LIFO) stacks associated with it. A stack isused to store parameters and calling addresses for procedure and system calls.Process Control BlockData needed by the OS to control the process (see Table 3.5).

Process IdentificationIdentifiersNumeric identifiers that may be stored with the process control block include Identifier of this process Identifier of the process that created this process (parent process) User identifierProcessor State InformationUser-Visible RegistersA user-visible register is one that may be referenced by means of the machine language that theprocessor executes while in user mode. Typically, there are from 8 to 32 of these registers, althoughsome RISC implementations have over 100.Control and Status RegistersThese are a variety of processor registers that are employed to control the operation of the processor.These include Program counter: Contains the address of the next instruction to be fetched Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry,equal, overflow) Status information: Includes interrupt enabled/disabled flags, execution modeStack PointersEach process has one or more last-in-first-out (LIFO) system stacks associated with it. A stack is usedto store parameters and calling addresses for procedure and system calls. The stack pointer points tothe top of the stack.Table 3.5TypicalElementsof aProcessControlBlock(page 1 of 2)(Table is locatedon page 129 in thetextbook)

Process Control InformationScheduling and State InformationThis is information that is needed by the operating system to perform its scheduling function. Typicalitems of information: Process state: Defines the readiness of the process to be scheduled for execution (e.g., running,ready, waiting, halted). Priority: One or more fields may be used to describe the scheduling priority of the process. Insome systems, several values are required (e.g., default, current, highest-allowable) Scheduling-related information: This will depend on the scheduling algorithm used. Examplesare the amount of time that the process has been waiting and the amount of time that the processexecuted the last time it was running. Event: Identity of event the process is awaiting before it can be resumed.Data StructuringA process may be linked to other process in a queue, ring, or some other structure. For example, allprocesses in a waiting state for a particular priority level may be linked in a queue. A process mayexhibit a parent-child (creator-created) relationship with another process. The process control blockmay contain pointers to other processes to support these structures.Interprocess CommunicationVarious flags, signals, and messages may be associated with communication between twoindependent processes. Some or all of this information may be maintained in the process controlblock.Process PrivilegesProcesses are granted privileges in terms of the memory that may be accessed and the types ofinstructions that may be executed. In addition, privileges may apply to the use of system utilities andservices.Table 3.5TypicalElements of aProcessControl Block(page 2 of 2)Memory ManagementThis section may include pointers to segment and/or page tables that describe the virtual memoryassigned to this process.Resource Ownership and UtilizationResources controlled by the process may be indicated, such as opened files. A history of utilization ofthe processor or other resources may also be included; this information may be needed by thescheduler.(Table is locatedon page 129 in the textbook)

Each process is assigned aunique numeric identifier otherwise there must be amapping that allows the OSto locate the appropriatetables based on the processidentifierMany of the tables controlled bythe OS may use processidentifiers to cross-referenceprocess tables Memory tables may beorganized to provide a map ofmain memory with an indicationof which process is assigned toeach region similar references will appear inI/O and file tables When processes communicatewith one another, the processidentifier informs the OS of thedestination of a particularcommunication When processes are allowed tocreate other processes,identifiers indicate the parentand descendents of eachprocess

Consistsof thecontentsofprocessorregisters user-visibleregisters control andstatusregisters stackpointers contains conditioncodes plus otherProgramstatus informationstatus EFLAGS registeris an example of awordPSW used by any(PSW)OS running on anx86 processor

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0V VIA V RN0 0 0 0 0 0 0 0 0 0I I0DC M FTP FX IDX VIPX VIFX ACX VMX RFX NTX IOPLS OF Identification flagVirtual interrupt pendingVirtual interrupt flagAlignment checkVirtual 8086 modeResume flagNested task flagI/O privilege levelOverflow flagIOPLC DFX IFX TFS SFS ZFS AFS PFS CFO D I T S ZAPC001F F F F F FFFF Direction flagInterrupt enable flagTrap flagSign flagZero flagAuxiliary carry flagParity flagCarry flagS Indicates a Status FlagC Indicates a Control FlagX Indicates a System FlagShaded bits are reservedFigure 3.12 x86 EFLAGS Register

Table 3.6PentiumEFLAGSRegisterBits(Table is located on page 131 in the textbook)Status Flags (condition codes)AF (Auxiliary carry flag)Represents carrying or borrowing between half-bytes of an 8-bit arithmetic or logic operation using theAL register.CF (Carry flag)Indicates carrying out or borrowing into the leftmost bit position following an arithmetic operation. Alsomodified by some of the shift and rotate operations.OF (Overflow flag)Indicates an arithmetic overflow after an addition or subtraction.PF (Parity flag)Parity of the result of an arithmetic or logic operation. 1 indicates even parity; 0 indicates odd parity.SF (Sign flag)Indicates the sign of the result of an arithmetic or logic operation.ZF (Zero flag)Indicates that the result of an arithmetic or logic operation is 0.Control FlagDF (Direction flag)Determines whether string processing instructions increment or decrement the 16-bit half-registers SI andDI (for 16-bit operations) or the 32-bit registers ESI and EDI (for 32-bit operations).System Flags (should not be modified by application programs)AC (Alignment check)Set if a word or doubleword is addressed on a nonword or nondoubleword boundary.ID (Identification flag)If this bit can be set and cleared, this processor supports the CPUID instruction. This instruction providesinformation about the vendor, family, and model.RF (Resume flag)Allows the programmer to disable debug exceptions so that the instruction can be restarted after a debugexception without immediately causing another debug exception.IOPL (I/O privilege level)When set, causes the processor to generate an exception on all accesses to I/O devices during protectedmode operation.IF (Interrupt enable flag)When set, the processor will recognize external interrupts.TF (Trap flag)When set, causes an interrupt after the execution of each instruction. This is used for debugging.NT (Nested task flag)Indicates that the current task is nested within another task in protected mode operation.VM (Virtual 8086 mode)Allows the programmer to enable or disable virtual 8086 mode, which determines whether the processorruns as an 8086 machine.VIP (Virtual interrupt pending)Used in virtual 8086 mode to indicate that one or more interrupts are awaiting service.VIF (Virtual interrupt flag)Used in virtual 8086 mode instead of IF.

The additional informationneeded by the OS to controland coordinate the variousactive processes

dentificationProcessor StateInformationProcessor StateInformationProcessor StateInformationProcess ControlInformationProcess ControlInformationProcess ControlInformationUser StackUser StackUser StackPrivate UserAddress Space(Programs, Data)Private UserAddress Space(Programs, Data)Private UserAddress Space(Programs, Data)Shared AddressSpaceShared AddressSpaceShared AddressSpaceProcess 1Process 2Process nFigure 3.13 User Processes in Virtual MemoryProcessControlBlock

ProcessControl BlockRunningReadyBlockedFigure 3.14 Process List Structures

The most important data structure in an OS contains all of the information about a process that is needed by the OS blocks are read and/or modified by virtually every module in the OS defines the state of the OSDifficulty is not access, but protection a bug in a single routine could damage process control blocks, whichcould destroy the system’s ability to manage the affected processes a design change in the structure or semantics of the process controlblock could affect a number of modules in the OS

User Mode less-privileged modeuser programstypically execute inthis modeSystem Mode more-privileged modealso referred to ascontrol mode orkernel modekernel of theoperating system

Process ManagementTable 3.7Typical Process creation and termination Process scheduling and dispatching Process switching Process synchronization and support for interprocess communication Management of process control blocksFunctionsof anOperatingMemory Management Allocation of address space to processes Swapping Page and segment managementSystemKernelI/O Management Buffer management Allocation of I/O channels and devices to processesSupport Functions Interrupt handling Accounting Monitoring

Once the OS decides to create a new process it:assigns a unique process identifierto the new processallocates space for the processinitializes the process controlblocksets the appropriate linkagescreates or expands other datastructures

Table 3.8Mechanisms for Interrupting theExecution of a ProcessMechanismCauseUseInterruptExternal to the execution of thecurrent instructionReaction to an asynchronousexternal eventTrapAssociated with the execution ofthe current instructionHandling of an error or anexception conditionSupervisor callExplicit requestCall to an operating systemfunction

System InterruptsInterrupt Due to some sort of eventthat is external to andindependent of the currentlyrunning process clock interrupt I/O interrupt memory faultTime slice the maximum amount oftime that a process canexecute before beinginterruptedTrap An error or exceptioncondition generated withinthe currently running processOS determines if thecondition is fatal moved to the Exit stateand a process switchoccurs action will depend on thenature of the error

If no interrupts arepending the processor:If an interrupt ispending the processor:proceeds to the fetch stage and fetches thenext instruction of the current program inthe current processsets the program counter to the startingaddress of an interrupt handler programswitches from user mode to kernel modeso that the interrupt processing code mayinclude privileged instructions

The steps ina full processswitch are:save the context ofthe processorupdate the processcontrol block ofthe processcurrently in theRunning stateIf the currently running process is to be moved toanother state (Ready, Blocked, etc.), then the OS mustmake substantial changes in its environmentrestore the contextof the processor tothat which existedat the time theselected process waslast switched outupdate memorymanagement datastructuresmove the processcontrol block ofthis process to theappropriate queueselect anotherprocess forexecutionupdate the processcontrol block ofthe processselected

Executionof theOperatingSystemP1P2PnKernel(a) Separate ss Switching Functions(b) OS functions execute within user processesP1P2PnOS1OSkProcess Switching Functions(c) OS functions execute as separate processesFigure 3.15 Relationship Between OperatingSystem and User Processes

ProcessIdentificationProcessor StateInformationExecution WithinUser ProcessesProcess ControlBlockProcess ControlInformationUser StackPrivate UserAddress Space(Programs, Data)Kernel StackShared AddressSpaceFigure 3.16 Process Image: Operating SystemExecutes Within User Space

Unix SVR4 Uses the model where most of the OS executes within theenvironment of a user process System processes run in kernel mode executes operating system code to perform administrative andhousekeeping functionsUser Processes operate in user mode to execute user programs and utilities operate in kernel mode to execute instructions that belong to the kernel enter kernel mode by issuing a system call, when an exception isgenerated, or when an interrupt occurs

Table 3.9 UNIX Process States

forkCreatedPreemptednot enough memory(swapping system only)enoughmemoryreturnto userUserRunningpreemptreturnsystem call,interruptinterrupt,interrupt returnrescheduleprocessReady to RunIn Memoryswap outswap inReady to Asleep inMemoryswap outFigure 3.17 UNIX Process State Transition DiagramSleep,Swapped

User-Level ContextTableProcess textProcess dataUser stackShared memory3.10UNIXProgram counterProcessor status registerProcessStack pointerGeneral-purpose registersImageProcess table entryU (user) areaPer process region table(Table is located onpage 144 in thetextbook)Kernel stackExecutable machine instructions of the programData accessible by the program of this processContains the arguments, local variables, and pointers for functionsexecuting in user modeMemory shared with other processes, used for interprocesscommunicationRegister ContextAddress of next instruction to be executed; may be in kernel oruser memory space of this processContains the hardware status at the time of preemption; contentsand format are hardware dependentPoints to the top of the kernel or user stack, depending on the modeof operation at the time or preemptionHardware dependentSystem-Level ContextDefines state of a process; this information is always accessible tothe operating systemProcess control information that needs to be accessed only in thecontext of the processDefines the mapping from virtual to physical addresses; alsocontains a permission field that indicates the type of accessallowed the process: read-only, read-write, or read-executeContains the stack frame of kernel procedures as the processexecutes in kernel mode

Table 3.11UNIXProcessTableEntry(Table is located on page 145 in thetextbook)Process statusCurrent state of process.PointersTo U area and process memory area (text, data, stack).Process sizeEnables the operating system to know how much space to allocatethe process.User identifiersThe real user ID identifies the user who is responsible for therunning process. The effective user ID may be used by a processto gain temporary privileges associated with a particular program;while that program is being executed as part of the process, theprocess operates with the effective user ID.Process identifiersID of this process; ID of parent process. These are set up when theprocess enters the Created state during the fork system call.Event descriptorValid when a process is in a sleeping state; when the event occurs,the process is transferred to a ready-to-run state.PriorityUsed for process scheduling.SignalEnumerates signals sent to a process but not yet handled.TimersInclude process execution time, kernel resource utilization, anduser-set timer used to send alarm signal to a process.P linkPointer to the next link in the ready queue (valid if process is readyto execute).Memory statusIndicates whether process image is in main memory or swappedout. If it is in memory, this field also indicates whether it may beswapped out or is temporarily locked into main memory.

Table 3.12UNIX UArea(Table is located on page 146 in thetextbook)

Processcreation is bymeans of thekernel systemcall, fork( )This causes theOS, in KernelMode, to:12 Allocate a slot in the process table for the new process Assign a unique process ID to the child process3 Make a copy of the process image of the parent, with theexception of any shared memory4 Increments counters for any files owned by the parent, toreflect that an additional process now also owns those files56 Assigns the child process to the Ready to Run state Returns the ID number of the child to the parent process,and a 0 value to the child process

After creating the process the Kernel can do one of thefollowing, as part of the dispatcher routine: stay in the parent process transfer control to the child process transfer control to another process

Summary What is a process? Background Processes and process controlblocks Process states Two-state process model Creation and termination Five-state model Suspended processes Process description Operating system control structures Process control structures Process control Modes of execution Process creation Process switching Execution of the operating system Nonprocess kernel Execution within user processes Process-based operating system UNIX SVR4 process management Process states Process description Process control

Process Control Block Contains the process elements It is possible to interrupt a running process and later resume execution as if the interruption had not occurred Created and managed by the operating system Key tool that allows support for multiple processes Identifier Figure 3.1 Simplif

Related Documents:

Part One: Heir of Ash Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Chapter 25 Chapter 26 Chapter 27 Chapter 28 Chapter 29 Chapter 30 .

TO KILL A MOCKINGBIRD. Contents Dedication Epigraph Part One Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Part Two Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18. Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Chapter 25 Chapter 26

DEDICATION PART ONE Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 PART TWO Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 .

About the husband’s secret. Dedication Epigraph Pandora Monday Chapter One Chapter Two Chapter Three Chapter Four Chapter Five Tuesday Chapter Six Chapter Seven. Chapter Eight Chapter Nine Chapter Ten Chapter Eleven Chapter Twelve Chapter Thirteen Chapter Fourteen Chapter Fifteen Chapter Sixteen Chapter Seventeen Chapter Eighteen

18.4 35 18.5 35 I Solutions to Applying the Concepts Questions II Answers to End-of-chapter Conceptual Questions Chapter 1 37 Chapter 2 38 Chapter 3 39 Chapter 4 40 Chapter 5 43 Chapter 6 45 Chapter 7 46 Chapter 8 47 Chapter 9 50 Chapter 10 52 Chapter 11 55 Chapter 12 56 Chapter 13 57 Chapter 14 61 Chapter 15 62 Chapter 16 63 Chapter 17 65 .

HUNTER. Special thanks to Kate Cary. Contents Cover Title Page Prologue Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter

Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 . Within was a room as familiar to her as her home back in Oparium. A large desk was situated i

The Hunger Games Book 2 Suzanne Collins Table of Contents PART 1 – THE SPARK Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8. Chapter 9 PART 2 – THE QUELL Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapt