0% found this document useful (0 votes)
36 views31 pages

Operating Systems: Lecture 2: Processes

The document discusses processes in operating systems. It defines a process as a program in execution. A process contains the program code, current activity including registers and program counter, a stack, and a data section. As a process executes, it changes state between new, running, waiting, and ready. The operating system uses process scheduling to maximize CPU usage by selecting processes to run on the CPU. Key aspects of process scheduling include process queues, short and long term schedulers, and context switching. Operations on processes include creation using fork(), termination using exit(), and interprocess communication.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views31 pages

Operating Systems: Lecture 2: Processes

The document discusses processes in operating systems. It defines a process as a program in execution. A process contains the program code, current activity including registers and program counter, a stack, and a data section. As a process executes, it changes state between new, running, waiting, and ready. The operating system uses process scheduling to maximize CPU usage by selecting processes to run on the CPU. Key aspects of process scheduling include process queues, short and long term schedulers, and context switching. Operations on processes include creation using fork(), termination using exit(), and interprocess communication.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

College of Computers & IT

Dep. of IT

Operating
Systems
Lecture 2: Processes

2019/2020 Prepared by: Dr. Rasha Bin-Thalab


Lecture Out Lines
2

 Process Concept

 Process Scheduling

 Operations on Processes

 Interprocess Communication (IPC)


Process Concept
3

 An operating system executes a variety of programs:


 Batch system – process
 Time-shared systems – user programs or tasks
 Process – a program in execution; process execution
must progress in sequential fashion
 Program vs. Process

 Program is passive entity stored on disk (executable


file), process is active
 One program can be several processes
 Consider multiple users executing the same program
Process parts
4

1. The program code, also called


text section
2. Current activity including
program counter, processor
registers
3. Stack containing temporary
data such as: Function
parameters, return addresses,
local variables
4. Data section containing global
variables
Process State
5

 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
Diagram of Process State
6

http://apps.uttyler.edu/Rainwater/COSC3355/Animations/dynamicprocess.htm
Process Control Block (PCB)
7

Information associated with each process


1. Process state – running, waiting, etc

2. Program counter – location of instruction to next


execute
3. CPU registers – contents of all process-centric

registers
4. CPU scheduling information- priorities, scheduling

queue pointers
5. Memory-management information – memory
allocated to the process
6. Accounting information – CPU used, clock time
CPU Switch From Process to Process

8
Threads
9

 A 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
 Must then have storage for thread
details, multiple program counters in
Process Scheduling
10

 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
11

Ready
Queue
And
Various
I/O Device
Queues
Representation of Process Scheduling
12

 Queueing diagram represents queues, resources,


flows
Schedulers
13

 Short-term scheduler (or CPU scheduler) – selects


which process should be executed next and allocates 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
Schedulers
14

 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
Addition of Medium Term Scheduling
15

 Medium-term scheduler can be added if degree of multiple


programming needs to decrease
 Remove process from memory, store on disk, bring back in
from disk to continue execution: swapping
Context Switch
16

 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 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
Operations on Processes
17

 System must provide mechanisms for:


 process creation,
 process termination,
 and so on as detailed next
Process Creation
18

Parent process create children processes, which, in


turn create other processes, forming a tree of
processes
Process identified and managed via a process
identifier (pid)
Resource sharing options

oParent and children share all resources


oChildren share subset of parent’s resources
oParent and child share no resources

 Execution options
A Tree of Processes in Linux
19
ii ni
ni tt
pi
pi dd = = 11

ll ogi
ogi nn kthreadd
kt hreadd sshd
sshd
pi
pi dd = = 8415
8415 pi
pi dd =
= 22 pi
pi dd =
= 3028
3028

bash khel
khel per
per pdfl
pdfl ush
ush sshd
sshd
bash
pi pi
pi dd =
= 66 pi
pi dd =
= 200
200 pi
pi d =
d = 3610
3610
pi d =
d = 8416
8416

emacs tcsch
t csch
ps
ps em acs
pi pi
pi d =
d = 4005
4005
pi
pi d = 9298
d = 9298 pi dd =
= 9204
9204
Process Creation (Cont.)
20

 Address space possibilities:


 Child process duplicate of parent
 Child has a new program loaded into it

 UNIX examples
 fork() system call creates new process
 exec() system call used after a fork() to replace the process’
memory space with a new program
Process Termination
21

 Process executes last statement and then asks


the operating system to delete it using the exit()
system call.
 Returns status data from child to parent (via wait())
 Process’ resources are deallocated by operating system
 Parent may terminate the execution of children
processes using the abort() system call. Some
reasons for doing so:
 Child has exceeded allocated resources
 The task assigned to the child is no longer required
Process Termination
22

 Some operating systems do not allow child to exists if its


parent has terminated.
 If a process terminates, then all its children must also be
terminated.
 cascading termination. All children, grandchildren, etc.

are terminated.
 The termination is initiated by the operating system.

 The parent process may wait for termination of a child


process by using the wait()system call. The call returns
status information and the pid of the terminated process
pid = wait(&status);

C Program Forking Separate Process
Creating a Separate Process via Windows API
Multiprocess Architecture – Chrome
25
Browser
 Many web browsers ran as single process (some still do)
 If one web site causes trouble, entire browser can hang or crash
 Google Chrome Browser is multiprocess with 3 different types
of processes:
 Browser process manages user interface, disk and network I/O
Multiprocess Architecture – Chrome
26
Browser
 Renderer process renders web pages, deals with HTML,
Javascript. A new renderer created for each website opened
 Runs in sandbox restricting disk and network I/O, minimizing

effect of security exploits


 Plug-in process for each type of plug-in : such as Flash or
QuickTime
Interprocess Communication
27

 Processes within a system may be independent or


cooperating
Cooperating process can affect or be affected by other

processes, including sharing data


Reasons for cooperating processes:

 Information sharing
 Computation speedup
 Modularity
 Convenience

Cooperating processes need interprocess

communication (IPC)
Communications Models
28

.Message passing. (b) shared memory )a(


Interprocess Communication (Cont.)
29

 If processes P and Q wish to communicate, they need to:


 Establish a communication link between them

 Exchange messages via send/receive

 Implementation issues:
 How are links established?

 Can a link be associated with more than two processes?

 How many links can there be between every pair of

communicating processes?
 What is the capacity of a link?

 Is the size of a message that the link can accommodate

fixed or variable?
Communications in Client-Server
30
Systems
 Sockets
 Remote Procedure Calls
 Pipes
 Remote Method Invocation (Java)
Producer-Consumer Problem
31

 Paradigm for cooperating processes, producer


process produces information that is consumed by
a consumer process
 unbounded-buffer places no practical limit on the size
of the buffer
 bounded-buffer assumes that there is a fixed buffer
size

You might also like