0% found this document useful (0 votes)
5 views16 pages

Chapter 3: Processes: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Uploaded by

Sansa S.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views16 pages

Chapter 3: Processes: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Uploaded by

Sansa S.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Chapter 3: Processes

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 3: Processes

 Process Concept
 To introduce the notion of a process -- a program
in execution, which forms the basis of all
computation
 Process Scheduling
 To describe the various features of process
scheduling

Operating System Concepts – 9th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Process Concept

 Process – a program in execution; process


execution must progress in sequential fashion
 Program is passive entity stored on disk
(executable file), process is active
 Program becomes process when executable
file loaded into memory
 Execution of program started via GUI mouse
clicks, command line entry of its name, etc
 One program can be several processes
 Consider multiple users executing the same
program

Operating System Concepts – 9th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Process Structure

 A process is more than the program code, which is sometimes


known as the text section.
 It also includes the current activity:
 The value of the program counter
 The contents of the processor's registers.
 It also includes the process stack, which contains temporary
data (such as function parameters, return addresses, and local
variables)
 It also includes the data section, which contains global
variables.
 It may also include a heap, which is memory that is
dynamically allocated during process run time.

Operating System Concepts – 9th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
Process in Memory

Operating System Concepts – 9th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Process State

 As a process executes, it changes state


 new: The process is being created
 running: Instructions are being executed
 waiting: The process is waiting for some event to occur
 ready: The process is waiting to be assigned to a processor
 terminated: The process has finished execution
 Diagram of Process State

Operating System Concepts – 9th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
Process Control Block (PCB)

Information associated with each process


(also called task control block)
 Process state – running, waiting, etc
 Program counter – location of instruction to
next execute
 CPU registers – contents of all process-centric
registers
 CPU scheduling information- priorities,
scheduling queue pointers
 Memory-management information – memory
allocated to the process
 Accounting information – CPU used, clock time
elapsed since start, time limits
 I/O status information – I/O devices allocated
to process, list of open files

Operating System Concepts – 9th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
Threads
 So far, process has a single thread of execution
 Consider having multiple program counters per process
 Multiple locations can execute at once
 Multiple threads of control -> threads
 Need storage for thread details, multiple program counters
in PCB
 Covered in the next chapter

Operating System Concepts – 9th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
Process Representation in Linux

Represented by the C structure task_struct

pid t_pid; /* process identifier */


long state; /* state of the process */
unsigned int time_slice /* scheduling information */
struct task_struct *parent; /* this process’s parent */
struct list_head children; /* this process’s children */
struct files_struct *files; /* list of open files */
struct mm_struct *mm; /* address space of this process */

Operating System Concepts – 9th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
Process Scheduling

 Maximize CPU use


 Quickly switch processes onto CPU for time sharing
 Process scheduler selects among available processes
for next execution on CPU
 Maintains scheduling queues of processes
 Job queue – set of all processes in the system
 Ready queue – set of all processes residing in main
memory, ready and waiting to execute
 Device queues – set of processes waiting for an I/O
device
 Processes migrate among the various queues

Operating System Concepts – 9th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various I/O Device Queues

Operating System Concepts – 9th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling

 Queuing diagram represents queues, resources, flows

Operating System Concepts – 9th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process

Operating System Concepts – 9th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Schedulers
 Short-term scheduler (or CPU scheduler) – selects which process
should be executed next and allocates a CPU
 Sometimes the only scheduler in a system
 Short-term scheduler is invoked frequently (milliseconds)  (must
be fast)
 Long-term scheduler (or job scheduler) – selects which processes
should be brought into the ready queue
 Long-term scheduler is invoked infrequently (seconds, minutes) 
(may be slow)
 The long-term scheduler controls the degree of multiprogramming
 Processes can be described as either:
 I/O-bound process – spends more time doing I/O than
computations, many short CPU bursts
 CPU-bound process – spends more time doing computations; few
very long CPU bursts
 Long-term scheduler strives for good process mix

Operating System Concepts – 9th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
Multitasking in Mobile Systems
 Some mobile systems (e.g., early version of iOS) allow only one
process to run, others suspended
 Starting with iOS 4, it provides for a
 Single foreground process – controlled via user interface
 Multiple background processes – in memory, running, but
not on the display, and with limits
 Limits include single, short task, receiving notification of
events, specific long-running tasks like audio playback
 Android runs foreground and background, with fewer limits
 Background process uses a service to perform tasks
 Service can keep running even if background process is
suspended
 Service has no user interface, small memory use

Operating System Concepts – 9th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Context Switch
 When CPU switches to another process, the system must
save the state of the old process and load the saved state
for the new process via a context switch
 Context of a process represented in the PCB
 Context-switch time is pure overhead; the system does no
useful work while switching
 The more complex the OS and the PCB  the longer the
context switch
 Time dependent on hardware support
 Some hardware provides multiple sets of registers per
CPU  multiple contexts loaded at once

Operating System Concepts – 9th Edition 3.16 Silberschatz, Galvin and Gagne ©2013

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy