operating systems-1 cs 241, spring 2020 processes & threads: lec 3 ass. prof. ghada ... ·...
TRANSCRIPT
![Page 1: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/1.jpg)
OPERATING SYSTEMS-1
CS 241, SPRING 2020
Processes & Threads: Lec 4
Ass. Prof. Ghada Ahmed
Edited slides,
main reference
Operating system concepts, 10th edition, by abraham
silberschatz, greg gagne, peter B. Galvin
1
![Page 2: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/2.jpg)
PROCESS CONCEPT
An operating system executes a variety of programs that run as a process.
Process – a program in execution; process execution must progress in sequential fashion. No parallel execution of instructions of a single process
Multiple parts
The program code, also called text section
Current activity including program counter, processor registers
Stack containing temporary data
Function parameters, return addresses, local variables
Data section containing global variables
Heap containing memory dynamically allocated during run time
2
![Page 3: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/3.jpg)
PROCESS CONCEPT (CONT.)
Program is passive entity stored on disk (executable file); process
is active
Program becomes process when an executable file is 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
3
![Page 4: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/4.jpg)
PROCESS IN MEMORY
4
![Page 5: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/5.jpg)
MEMORY LAYOUT OF A C PROGRAM
5
![Page 6: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/6.jpg)
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
6
![Page 7: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/7.jpg)
DIAGRAM OF PROCESS STATE
7
![Page 8: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/8.jpg)
PROCESS CONTROL BLOCK (PCB)
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
Information associated with each process
(also called task control block)
8
![Page 9: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/9.jpg)
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 */
9
![Page 10: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/10.jpg)
PROCESS SCHEDULING
Process scheduler selects among available processes for
next execution on CPU core
Goal -- Maximize CPU use, quickly switch processes onto CPU
core
Maintains scheduling queues of processes
Ready queue – set of all processes residing in main memory,
ready and waiting to execute
Wait queues – set of processes waiting for an event (i.e., I/O)
Processes migrate among the various queues
10
![Page 11: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/11.jpg)
READY AND WAIT QUEUES
11
![Page 12: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/12.jpg)
REPRESENTATION OF PROCESS SCHEDULING
12
![Page 13: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/13.jpg)
CPU SWITCH FROM PROCESS TO PROCESS
A context switch occurs when the CPU switches from one process to another.
13
![Page 14: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/14.jpg)
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 once14
![Page 15: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/15.jpg)
PROCESS CREATION
Parent process create children processes, which, in turn create other
processes, forming a tree of processes
Generally, process identified and managed via a process identifier (pid)
Resource sharing options
Parent and children share all resources
Children share subset of parent’s resources
Parent and child share no resources
Execution options
Parent and children execute concurrently
Parent waits until children terminate15
![Page 16: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/16.jpg)
PROCESS
CREATION
(CONT.)
Address space
Child duplicate of parent
Child has a 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
Parent process calls wait()waiting for the child to terminate
16
![Page 17: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/17.jpg)
A TREE OF PROCESSES IN LINUX
17
![Page 18: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/18.jpg)
C PROGRAM FORKING SEPARATE PROCESS
18
![Page 19: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/19.jpg)
CREATING A SEPARATE PROCESS VIA WINDOWS API
19
![Page 20: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/20.jpg)
PROCESS TERMINATION
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
Task assigned to child is no longer required
The parent is exiting, and the operating systems does not allow a child to
continue if its parent terminates
20
![Page 21: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/21.jpg)
PROCESS TERMINATION
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);
If no parent waiting (did not invoke wait()) process is a zombie
If parent terminated without invoking wait(), process is an orphan21
![Page 22: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/22.jpg)
R U OK?
The result is still 5 as the child updates its copy of value. When controlreturns to the parent, its value remains at 5.
What the output will be at Line A?
![Page 23: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/23.jpg)
ANDROID PROCESS IMPORTANCE HIERARCHY
Mobile operating systems often have to terminate processes to
reclaim system resources such as memory. From most to least
important:
Foreground process (most important)
Visible process
Service process
Background process
Empty process (Least important)
Android will begin terminating processes that are least
important. 23
![Page 24: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/24.jpg)
MULTIPROCESS ARCHITECTURE – CHROME 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
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
( safely running applications in isolation)
Plug-in process for each type of plug-in (ex: Grammarly )
24
![Page 25: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/25.jpg)
SINGLE AND MULTITHREADED PROCESSES
25
![Page 26: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/26.jpg)
MULTITHREADED SERVER ARCHITECTURE
26
![Page 27: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/27.jpg)
BENEFITS
Responsiveness – may allow continued execution if part of
process is blocked, especially important for user interfaces
Resource Sharing – threads share resources of process,
easier than shared memory or message passing
Economy – cheaper than process creation, thread
switching lower overhead than context switching
Scalability – process can take advantage of multicore
architectures
27
![Page 28: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/28.jpg)
MULTICORE PROGRAMMING
Multicore or multiprocessor systems putting pressure on
programmers, challenges include:
Dividing activities
Balance
Data splitting
Data dependency
Testing and debugging
Parallelism implies a system can perform more than one task
simultaneously
Concurrency supports more than one task making progress
Single processor / core, scheduler providing concurrency 28
![Page 29: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/29.jpg)
CONCURRENCY VS. PARALLELISM
▪ Concurrent execution on single-core system:
▪ Parallelism on a multi-core system:
29
![Page 30: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/30.jpg)
MULTICORE PROGRAMMING
Types of parallelism
Data parallelism – distributes subsets of the same
data across multiple cores, same operation on each
Task parallelism – distributing threads across cores,
each thread performing unique operation
30
![Page 31: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/31.jpg)
DATA AND TASK PARALLELISM
31
![Page 32: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/32.jpg)
AMDAHL’S LAW
32
![Page 33: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/33.jpg)
USER THREADS AND KERNEL THREADS
User threads - management done by user-level threads library
Three primary thread libraries:
POSIX Pthreads
Windows threads
Java threads
Kernel threads - Supported by the Kernel
Examples – virtually all general -purpose operating systems, including:
Windows
Linux
Mac OS X
iOS
Android 33
![Page 34: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/34.jpg)
USER AND KERNEL THREADS
34
![Page 35: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/35.jpg)
MULTITHREADING MODELS
Many-to-One
One-to-One
Many-to-Many
35
![Page 36: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/36.jpg)
MANY-TO-ONE
Many user-level threads mapped to single kernel thread
One thread blocking causes all to block
Multiple threads may not run in parallel on muticore system because only one
may be in kernel at a time
Few systems currently use this model
Examples:
Solaris Green Threads
GNU Portable Threads
36
![Page 37: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/37.jpg)
ONE-TO-ONE
Each user-level thread maps to kernel thread
Creating a user-level thread creates a kernel thread
More concurrency than many-to-one
Number of threads per process sometimes restricted due to overhead
Examples
Windows
Linux
37
![Page 38: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/38.jpg)
MANY-TO-MANY MODEL
Allows many user level threads to be mapped to many kernel threads
Allows the operating system to create a sufficient number of kernel threads
Windows with the ThreadFiber package
Otherwise not very common
38
![Page 39: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/39.jpg)
TWO-LEVEL MODEL
Similar to M:M, except that it allows a user thread to be bound to kernel
thread
39
![Page 40: Operating Systems-1 CS 241, Spring 2020 Processes & Threads: Lec 3 Ass. Prof. Ghada ... · 2020-03-17 · OPERATING SYSTEMS-1 CS 241, SPRING 2020 Processes & Threads: Lec 4 Ass. Prof](https://reader033.vdocument.in/reader033/viewer/2022050300/5f69e1b71578a6515b315671/html5/thumbnails/40.jpg)
R U OK?
2n