Chapter 2 Processes Threads Chapter 2 Processes and

  • Slides: 42
Download presentation
Chapter 2: Processes & Threads Chapter 2

Chapter 2: Processes & Threads Chapter 2

Processes and threads n n n Processes Threads Scheduling Interprocess communication Classical IPC problems

Processes and threads n n n Processes Threads Scheduling Interprocess communication Classical IPC problems CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 2

What is a process? n Code, data, and stack n n Program state n

What is a process? n Code, data, and stack n n Program state n n Usually (but not always) has its own address space CPU registers Program counter (current location in the code) Stack pointer Only one process can be running in the CPU at any given time! CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 3

The process model Single PC (CPU’s point of view) Multiple PCs (process point of

The process model Single PC (CPU’s point of view) Multiple PCs (process point of view) n n A B Multiprogramming of four programs Conceptual model n A C B D B C D n n 4 independent processes Processes run sequentially Only one program active at any instant! n That instant can be very short… D C B A Time CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 4

When is a process created? n Processes can be created in two ways n

When is a process created? n Processes can be created in two ways n n n System initialization: one or more processes created when the OS starts up Execution of a process creation system call: something explicitly asks for a new process System calls can come from n n User request to create a new process (system call executed from user shell) Already running processes n n User programs System daemons CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 5

Process Creation n Parent process creates children processes, which, in turn create other processes,

Process Creation n Parent process creates 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 n n Execution options n n 6 Parent and children share all resources Children share subset of parent’s resources Parent and child share no resources Parent and children execute concurrently Parent waits until children terminate Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

Process Creation (Cont. ) n Address space n n n UNIX examples n n

Process Creation (Cont. ) n Address space n n n UNIX examples n n 7 Child duplicate of parent Child has a program loaded into it fork() system call creates new process exec() system call used after a fork() to replace the process’ memory space with a new program Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

When do processes end? n Conditions that terminate processes can be n n n

When do processes end? n Conditions that terminate processes can be n n n Voluntary Involuntary Normal exit Error exit Involuntary n n Fatal error (only sort of involuntary) Killed by another process CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 8

Process Termination n Process executes last statement and then asks the operating system to

Process Termination n Process executes last statement and then asks the operating system to delete it using the exit() system call. n n n Parent may terminate the execution of children processes using the abort() system call. Some reasons for doing so: n n n 9 Returns status data from child to parent (via wait()) Process’ resources are deallocated by operating system CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab 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 Spring 2018

Process Termination n Some operating systems do not allow a child to exist if

Process Termination n Some operating systems do not allow a child to exist if its parent has terminated. If a process terminates, then all its children must also be terminated. n n n 10 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 orphan Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

Process hierarchies n Parent creates a child process n n Forms a hierarchy n

Process hierarchies n Parent creates a child process n n Forms a hierarchy n n n Child processes can create their own children UNIX calls this a “process group” If a process exits, its children are “inherited” by the exiting process’s parent Windows has no concept of process hierarchy n All processes are created equal CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 11

Process states n Created Process in one of 5 states n n 1 n

Process states n Created Process in one of 5 states n n 1 n n Ready n 2 5 n 3 Blocked (waiting) Running 4 7 7 Exit CS 1550, cs. pitt. edu (originaly modified by Ethan 6 Created Ready Running Blocked Exit Transitions between states 1 - Process enters ready queue 2 - Scheduler picks this process 3 - Scheduler picks a different process 4 - Process waits for event (such as I/O) 5 - Event occurs 6 - Process exits 7 - Process ended by another process Chapter 2 12

Processes in the OS n n n Two “layers” for processes Lowest layer of

Processes in the OS n n n Two “layers” for processes Lowest layer of process-structured OS handles interrupts, scheduling Above that layer are sequential processes n n Processes tracked in the process table Each process has a process table entry Processes 0 1 … N-2 N-1 Scheduler CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 13

What’s in a process table entry? May be stored on stack Process management File

What’s in a process table entry? May be stored on stack Process management File management Registers Program counter CPU status word Stack pointer Process state Priority / scheduling parameters Process ID Parent process ID Signals Process start time Total CPU usage Root directory Working (current) directory File descriptors User ID Group ID CS 1550, cs. pitt. edu (originaly modified by Ethan Memory management Pointers to text, data, stack or Pointer to page table Chapter 2 14

What happens on a trap/interrupt? 1. Hardware saves program counter (on stack or in

What happens on a trap/interrupt? 1. Hardware saves program counter (on stack or in a 2. 3. 4. 5. 6. 7. 8. special register) Hardware loads new PC, identifies interrupt Assembly language routine saves registers Assembly language routine sets up stack Assembly language calls C to run service routine Service routine calls scheduler Scheduler selects a process to run next (might be the one interrupted…) Assembly language routine loads PC & registers for the selected process CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 15

Threads: “processes” sharing memory n n n Process == address space Thread == program

Threads: “processes” sharing memory n n n Process == address space Thread == program counter / stream of instructions Two examples n n Three processes, each with one thread One process with three threads Process 1 Process 2 Process 3 Process 1 User space Threads System space CS 1550, cs. pitt. edu (originaly modified by Ethan Threads Kernel Chapter 2 16

Process & thread information Per process items Address space Open files Child processes Signals

Process & thread information Per process items Address space Open files Child processes Signals & handlers Accounting info Global variables Per thread items Program counter Registers Stack & stack pointer State CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 17

Threads & Stacks Thread 1 Thread 2 Thread 3 User space Process Thread 1’s

Threads & Stacks Thread 1 Thread 2 Thread 3 User space Process Thread 1’s stack Thread 3’s stack Thread 2’s stack Kernel => Each thread has its own stack! CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 18

Why use threads? n Allow a single application to do many things at once

Why use threads? n Allow a single application to do many things at once n n n destructive of these ends, it is the Right of the People to alter or to abolish it, and to institute new Government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their Safety and Happiness. Prudence, indeed, will dictate that Governments long established should not be changed for light and transient causes; and accordingly all No separate address space Overlap computation and I/O n n We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness. --That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, --That whenever any Form of Government becomes Threads are faster to create or destroy n n Simpler programming model Less waiting When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. Could be done without threads, but it’s harder Kernel Example: word processor n n n Thread to read from keyboard Thread to format document Thread to write to disk CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 19

Multithreaded Web server Dispatcher thread Worker thread Kernel Network connection CS 1550, cs. pitt.

Multithreaded Web server Dispatcher thread Worker thread Kernel Network connection CS 1550, cs. pitt. edu (originaly modified by Ethan Web page cache while(TRUE) { get. Next. Request(&buf); handoff. Work(&buf); } while(TRUE) { wait. For. Work(&buf); look. For. Page. In. Cache(&buf, &page); if(page. Not. In. Cache(&page)) { read. Page. From. Disk(&buf, &page); } return. Page(&page); } Chapter 2 20

Three ways to build a server n Thread model n n n Single-threaded process:

Three ways to build a server n Thread model n n n Single-threaded process: slow, but easier to do n n n Parallelism Blocking system calls No parallelism Blocking system calls Finite-state machine n n n Each activity has its own state States change when system calls complete or interrupts occur Parallelism Nonblocking system calls Interrupts CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 21

Implementing threads Process Thread Kernel Run-time system Thread table Process table User-level threads +

Implementing threads Process Thread Kernel Run-time system Thread table Process table User-level threads + No need for kernel support - May be slower than kernel threads - Harder to do non-blocking I/O CS 1550, cs. pitt. edu (originaly modified by Ethan Kernel Thread table Kernel-level threads + More flexible scheduling + Non-blocking I/O - Not portable Chapter 2 22

Interprocess Communication n Processes within a system may be independent or cooperating Cooperating process

Interprocess Communication n 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: n n n Cooperating processes need interprocess communication (IPC) Two models of IPC n n 23 Information sharing Computation speedup Modularity Convenience Shared memory Message passing Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

Producer-Consumer Problem n 24 Paradigm for cooperating processes, producer process produces information that is

Producer-Consumer Problem n 24 Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

Bounded-Buffer – Shared-Memory Solution n Shared data n #define BUFFER_SIZE 10 n typedef struct

Bounded-Buffer – Shared-Memory Solution n Shared data n #define BUFFER_SIZE 10 n typedef struct { n. . . n } item; item buffer[BUFFER_SIZE]; n int in = 0; n int out = 0; n n 25 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab Solution is correct, but can only use BUFFER_SIZE 1 elements Spring 2018

Bounded-Buffer – Producer item next_produced; while (true) { /* produce an item in next

Bounded-Buffer – Producer item next_produced; while (true) { /* produce an item in next produced */ while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = next_produced; in = (in + 1) % BUFFER_SIZE; } 26 Spring 2018 CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab

Bounded Buffer – Consumer item next_consumed; while (true) { while (in == out) ;

Bounded Buffer – Consumer item next_consumed; while (true) { while (in == out) ; /* do nothing */ next_consumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; CS/ CO E 155 0– Ope rati ng Syst ems – She rif Kha ttab /* consume the item in next consumed */ 27 Spring 2018

Scheduling n What is scheduling? n n n Goals Mechanisms Scheduling on batch systems

Scheduling n What is scheduling? n n n Goals Mechanisms Scheduling on batch systems Scheduling on interactive systems Other kinds of scheduling n Real-time scheduling CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 28

Why schedule processes? n n n Bursts of CPU usage alternate with periods of

Why schedule processes? n n n Bursts of CPU usage alternate with periods of I/O wait Some processes are CPU-bound: they don’t make many I/O requests Other processes are I/O-bound and make many kernel requests Total CPU usage CPU bound CPU bursts I/O waits I/O bound Total CPU usage Time CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 29

When are processes scheduled? n At the time they enter the system n n

When are processes scheduled? n At the time they enter the system n n Common in batch systems Two types of batch scheduling n n n Submission of a new job causes the scheduler to run Scheduling only done when a job voluntarily gives up the CPU (i. e. , while waiting for an I/O request) At relatively fixed intervals (clock interrupts) n n n Necessary for interactive systems May also be used for batch systems Scheduling algorithms at each interrupt, and picks the next process from the pool of “ready” processes CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 30

Scheduling goals n All systems n n Batch systems n n Throughput: maximize jobs

Scheduling goals n All systems n n Batch systems n n Throughput: maximize jobs per unit time (hour) Turnaround time: minimize time users wait for jobs CPU utilization: keep the CPU as busy as possible Interactive systems n n n Fairness: give each process a fair share of the CPU Enforcement: ensure that the stated policy is carried out Balance: keep all parts of the system busy Response time: respond quickly to users’ requests Proportionality: meet users’ expectations Real-time systems n n Meet deadlines: missing deadlines is a system failure! Predictability: same type of behavior for each time slice CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 31

Measuring scheduling performance n Throughput n n n Response time is time from when

Measuring scheduling performance n Throughput n n n Response time is time from when a command is submitted until results are returned Can measure average, variance, minimum, maximum, … May be more useful to measure time spent waiting Turnaround time n n Amount of work completed per second (minute, hour) Higher throughput usually means better utilized system Like response time, but for batch jobs (response is the completion of the process) Usually not possible to optimize for all metrics with the same scheduling algorithm CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 32

First Come, First Served (FCFS) n Current job queue 4 3 6 3 A

First Come, First Served (FCFS) n Current job queue 4 3 6 3 A B C D n 4 3 6 3 A B C D Fair in the same way a bank teller line is fair Simple algorithm! Problem: long jobs delay every job after them n Execution order CS 1550, cs. pitt. edu (originaly modified by Ethan n n FCFS scheduler Goal: do jobs in the order they arrive Many processes may wait for a single long job Chapter 2 33

Shortest Job First (SJF) n Current job queue 4 3 6 Goal: do the

Shortest Job First (SJF) n Current job queue 4 3 6 Goal: do the shortest job first n 3 n A B C D n SJF scheduler 3 B D CS 1550, cs. pitt. edu (originaly modified by Ethan Jobs sorted in increasing order of execution time n Execution order 3 4 6 A C n n Short jobs complete first Long jobs delay every job after them Ordering of ties doesn’t matter Shortest Remaining Time First (SRTF): preemptive form of SJF Problem: how does the scheduler know how long a job will take? Chapter 2 34

Three-level scheduling CPU scheduler Arriving jobs Input queue n n n Memory scheduler Jobs

Three-level scheduling CPU scheduler Arriving jobs Input queue n n n Memory scheduler Jobs held in input queue until moved into memory n n Admission scheduler Main memory Pick “complementary jobs”: small & large, CPU- & I/O-intensive Jobs move into memory when admitted CPU scheduler picks next job to run Memory scheduler picks some jobs from main memory and moves them to disk if insufficient memory space CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 35

Round Robin (RR) scheduling n Round Robin scheduling n n Give each process a

Round Robin (RR) scheduling n Round Robin scheduling n n Give each process a fixed time slot (quantum) Rotate through “ready” processes Each process makes some progress What’s a good quantum? n n n Too short: many process switches hurt efficiency Too long: poor response to interactive requests Typical length: 10– 50 ms CS 1550, cs. pitt. edu (originaly modified by Ethan A B C D E E D C B A Time Chapter 2 36

Priority scheduling n n “Ready” process with highest priority allowed to run Running process

Priority scheduling n n “Ready” process with highest priority allowed to run Running process may be interrupted after its quantum expires Priority 4 Priority 3 Priority 2 Priorities may be assigned dynamically n n n “Ready” processes Assign a priority to each process High Reduced when a process uses CPU time Increased when a process waits for I/O Priority 1 Low Often, processes grouped into multiple queues based on priority, and run round-robin per queue CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 37

Shortest process next n Run the process that will finish the soonest n n

Shortest process next n Run the process that will finish the soonest n n Guess at completion time based on previous runs n n n In interactive systems, job completion time is unknown! Update estimate each time the job is run Estimate is a combination of previous estimate and most recent run time Not often used because round robin with priority works so well! CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 38

Lottery scheduling n Give processes “tickets” for CPU time n n Each quantum, pick

Lottery scheduling n Give processes “tickets” for CPU time n n Each quantum, pick a ticket at random n n More tickets => higher share of CPU If there are n tickets, pick a number from 1 to n Process holding the ticket gets to run for a quantum Over the long run, each process gets the CPU m/n of the time if the process has m of the n existing tickets Tickets can be transferred n n Cooperating processes can exchange tickets Clients can transfer tickets to server so it can have a higher priority CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 39

Policy versus mechanism n Separate what may be done from how it is done

Policy versus mechanism n Separate what may be done from how it is done n Mechanism allows n n Policy set by what priorities are assigned to processes Scheduling algorithm parameterized n n n Priorities to be assigned to processes CPU to select processes with high priorities Mechanism in the kernel Priorities assigned in the kernel or by users Parameters may be set by user processes n n n Don’t allow a user process to take over the system! Allow a user process to voluntarily lower its own priority Allow a user process to assign priority to its threads CS 1550, cs. pitt. edu (originaly modified by Ethan Chapter 2 40

Scheduling user-level threads Process A Process B n n Kernel picks a process to

Scheduling user-level threads Process A Process B n n Kernel picks a process to run next Run-time system (at user level) schedules threads n n Kernel n Run-time system Thread table CS 1550, cs. pitt. edu (originaly modified by Ethan Process table n Run each thread for less than process quantum Example: processes get 40 ms each, threads get 10 ms each Example schedule: A 1, A 2, A 3, A 1, B 3, B 2, B 3 Not possible: A 1, A 2, B 1, B 2, A 3, B 3, A 2, B 1 Chapter 2 41

Scheduling kernel-level threads Process A Process B n Kernel schedules each thread n n

Scheduling kernel-level threads Process A Process B n Kernel schedules each thread n n n Kernel Process table CS 1550, cs. pitt. edu (originaly modified by Ethan n Thread table No restrictions on ordering May be more difficult for each process to specify priorities Example schedule: A 1, A 2, A 3, A 1, B 3, B 2, B 3 Also possible: A 1, A 2, B 1, B 2, A 3, B 3, A 2, B 1 Chapter 2 42