SlideShare a Scribd company logo
Chapter 2
Chapter 2: Processes & Threads
Chapter 2 2
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Processes and threads
 Processes
 Threads
 Scheduling
 Interprocess communication
 Classical IPC problems
Chapter 2 3
CS 1550, cs.pitt.edu
(originaly modified by Ethan
What is a process?
 Code, data, and stack
 Usually (but not always) has its own address space
 Program state
 CPU registers
 Program counter (current location in the code)
 Stack pointer
 Only one process can be running in the CPU at any
given time!
Chapter 2 4
CS 1550, cs.pitt.edu
(originaly modified by Ethan
The process model
 Multiprogramming of four
programs
 Conceptual model
 4 independent processes
 Processes run sequentially
 Only one program active at any
instant!
 That instant can be very short…
A
C
D
Single PC
(CPU’s point of view)
A
B
C D
Multiple PCs
(process point of view)
B
B
A
B
C
D
Time
Chapter 2 5
CS 1550, cs.pitt.edu
(originaly modified by Ethan
When is a process created?
 Processes can be created in two ways
 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
 User request to create a new process (system call executed
from user shell)
 Already running processes
 User programs
 System daemons
Process Creation
 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
 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 terminate
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
6
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
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
7
Chapter 2 8
CS 1550, cs.pitt.edu
(originaly modified by Ethan
When do processes end?
 Conditions that terminate processes can be
 Voluntary
 Involuntary
 Voluntary
 Normal exit
 Error exit
 Involuntary
 Fatal error (only sort of involuntary)
 Killed by another process
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
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
9
Process Termination
 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.
 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
10
Chapter 2 11
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Process hierarchies
 Parent creates a child process
 Child processes can create their own children
 Forms a hierarchy
 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
 All processes are created equal
Chapter 2 12
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Blocked
(waiting)
Created
Exit
Ready
Running
Process states
 Process in one of 5 states
 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
1
5
4
3
2
7
7
6
Chapter 2 13
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Processes in the OS
 Two “layers” for processes
 Lowest layer of process-structured OS handles interrupts,
scheduling
 Above that layer are sequential processes
 Processes tracked in the process table
 Each process has a process table entry
Scheduler
0 1 N-2 N-1
…
Processes
Chapter 2 14
CS 1550, cs.pitt.edu
(originaly modified by Ethan
What’s in a process table entry?
File management
Root directory
Working (current) directory
File descriptors
User ID
Group ID
Memory management
Pointers to text, data, stack
or
Pointer to page table
Process 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
May be
stored
on stack
Chapter 2 15
CS 1550, cs.pitt.edu
(originaly modified by Ethan
What happens on a trap/interrupt?
1. Hardware saves program counter (on stack or in a
special register)
2. Hardware loads new PC, identifies interrupt
3. Assembly language routine saves registers
4. Assembly language routine sets up stack
5. Assembly language calls C to run service routine
6. Service routine calls scheduler
7. Scheduler selects a process to run next (might be
the one interrupted…)
8. Assembly language routine loads PC & registers
for the selected process
Chapter 2 16
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Threads: “processes” sharing memory
 Process == address space
 Thread == program counter / stream of instructions
 Two examples
 Three processes, each with one thread
 One process with three threads
Kernel Kernel
Threads
Threads
System
space
User
space
Process 1 Process 2 Process 3 Process 1
Chapter 2 17
CS 1550, cs.pitt.edu
(originaly modified by Ethan
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
Per thread items
Program counter
Registers
Stack & stack pointer
State
Per thread items
Program counter
Registers
Stack & stack pointer
State
Chapter 2 18
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Threads & Stacks
Kernel
Process
Thread 1 Thread 2 Thread 3
Thread 1’s
stack
Thread 3’s
stack
Thread 2’s
stack
User space
=> Each thread has its own stack!
Chapter 2 19
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Why use threads?
 Allow a single application
to do many things at once
 Simpler programming model
 Less waiting
 Threads are faster to create
or destroy
 No separate address space
 Overlap computation and
I/O
 Could be done without
threads, but it’s harder
 Example: word processor
 Thread to read from keyboard
 Thread to format document
 Thread to write to disk
Kernel
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.
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
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
Chapter 2 20
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Multithreaded Web server
Kernel
Network
connection
Dispatcher
thread
Worker
thread
Web page
cache
while(TRUE) {
getNextRequest(&buf);
handoffWork(&buf);
}
while(TRUE) {
waitForWork(&buf);
lookForPageInCache(&buf,&page);
if(pageNotInCache(&page)) {
readPageFromDisk(&buf,&page);
}
returnPage(&page);
}
Chapter 2 21
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Three ways to build a server
 Thread model
 Parallelism
 Blocking system calls
 Single-threaded process: slow, but easier to do
 No parallelism
 Blocking system calls
 Finite-state machine
 Each activity has its own state
 States change when system calls complete or interrupts
occur
 Parallelism
 Nonblocking system calls
 Interrupts
Chapter 2 22
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Implementing threads
Kernel
Run-time
system
Thread
table
Process
table
Kernel
Thread
Process
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
Kernel-level threads
+ More flexible scheduling
+ Non-blocking I/O
- Not portable
Interprocess Communication
 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)
 Two models of IPC
 Shared memory
 Message passing
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
23
Producer-Consumer Problem
 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
24
Bounded-Buffer – Shared-Memory
Solution
 Shared data
 #define BUFFER_SIZE 10
 typedef struct {
 . . .
 } item;
 item buffer[BUFFER_SIZE];
 int in = 0;
 int out = 0;
 Solution is correct, but can only use BUFFER_SIZE-
1 elements
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
25
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;
} Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
26
Bounded Buffer – Consumer
item next_consumed;
while (true) {
while (in == out)
; /* do nothing */
next_consumed = buffer[out];
out = (out + 1) %
BUFFER_SIZE;
/* consume the item in next
consumed */
Spring 2018
CS/
CO
E
155
0 –
Ope
rati
ng
Syst
ems
–
She
rif
Kha
ttab
27
Chapter 2 28
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Scheduling
 What is scheduling?
 Goals
 Mechanisms
 Scheduling on batch systems
 Scheduling on interactive systems
 Other kinds of scheduling
 Real-time scheduling
Chapter 2 29
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Why schedule processes?
 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
CPU bound
I/O bound
CPU bursts I/O waits
Total CPU usage
Total CPU usage
Time
Chapter 2 30
CS 1550, cs.pitt.edu
(originaly modified by Ethan
When are processes scheduled?
 At the time they enter the system
 Common in batch systems
 Two types of batch scheduling
 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)
 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
Chapter 2 31
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Scheduling goals
 All systems
 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
 Batch systems
 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
 Response time: respond quickly to users’ requests
 Proportionality: meet users’ expectations
 Real-time systems
 Meet deadlines: missing deadlines is a system failure!
 Predictability: same type of behavior for each time slice
Chapter 2 32
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Measuring scheduling performance
 Throughput
 Amount of work completed per second (minute, hour)
 Higher throughput usually means better utilized system
 Response time
 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
 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
Chapter 2 33
CS 1550, cs.pitt.edu
(originaly modified by Ethan
First Come, First Served (FCFS)
 Goal: do jobs in the order
they arrive
 Fair in the same way a bank
teller line is fair
 Simple algorithm!
 Problem: long jobs delay
every job after them
 Many processes may wait for
a single long job
A B C D
4 3 6 3
Current job queue
Execution order
FCFS scheduler
A B C D
4 3 6 3
Chapter 2 34
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Shortest Job First (SJF)
 Goal: do the shortest job
first
 Short jobs complete first
 Long jobs delay every job
after them
 Jobs sorted in increasing
order of execution time
 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?
A B C D
4 3 6 3
A
B C
D
4
3 6
3
Current job queue
Execution order
SJF scheduler
Chapter 2 35
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Three-level scheduling
CPU
Main
memory
CPU scheduler
Memory
scheduler
Admission
scheduler
Input
queue
Arriving
jobs
 Jobs held in input queue until moved into 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
Chapter 2 36
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Round Robin (RR) scheduling
 Round Robin scheduling
 Give each process a fixed
time slot (quantum)
 Rotate through “ready”
processes
 Each process makes some
progress
 What’s a good quantum?
 Too short: many process
switches hurt efficiency
 Too long: poor response to
interactive requests
 Typical length: 10–50 ms
A B C D E
Time
A
B
C
D
E
Chapter 2 37
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Priority scheduling
 Assign a priority to each process
 “Ready” process with highest
priority allowed to run
 Running process may be
interrupted after its quantum
expires
 Priorities may be assigned
dynamically
 Reduced when a process uses
CPU time
 Increased when a process waits
for I/O
 Often, processes grouped into
multiple queues based on priority,
and run round-robin per queue
Priority 4
Priority 3
Priority 2
Priority 1
High
Low
“Ready” processes
Chapter 2 38
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Shortest process next
 Run the process that will finish the soonest
 In interactive systems, job completion time is unknown!
 Guess at completion time based on previous runs
 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!
Chapter 2 39
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Lottery scheduling
 Give processes “tickets” for CPU time
 More tickets => higher share of CPU
 Each quantum, pick a ticket at random
 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
 Cooperating processes can exchange tickets
 Clients can transfer tickets to server so it can have a higher
priority
Chapter 2 40
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Policy versus mechanism
 Separate what may be done from how it is done
 Mechanism allows
 Priorities to be assigned to processes
 CPU to select processes with high priorities
 Policy set by what priorities are assigned to processes
 Scheduling algorithm parameterized
 Mechanism in the kernel
 Priorities assigned in the kernel or by users
 Parameters may be set by user processes
 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
Chapter 2 41
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Scheduling user-level threads
Kernel
Run-time
system
Thread
table
Process
table
 Kernel picks a process to
run next
 Run-time system (at user
level) schedules threads
 Run each thread for less than
process quantum
 Example: processes get 40ms
each, threads get 10ms each
 Example schedule:
A1,A2,A3,A1,B1,B3,B2,B3
 Not possible:
A1,A2,B1,B2,A3,B3,A2,B1
Process A Process B
Chapter 2 42
CS 1550, cs.pitt.edu
(originaly modified by Ethan
Scheduling kernel-level threads
 Kernel schedules each
thread
 No restrictions on ordering
 May be more difficult for
each process to specify
priorities
 Example schedule:
A1,A2,A3,A1,B1,B3,B2,B3
 Also possible:
A1,A2,B1,B2,A3,B3,A2,B1
Process A Process B
Kernel
Thread
table
Process
table

More Related Content

Similar to Here we can see detailed explanation on processes and their methods

Ch2_Processes_and_process_management_1.ppt
Ch2_Processes_and_process_management_1.pptCh2_Processes_and_process_management_1.ppt
Ch2_Processes_and_process_management_1.pptMohammad Almuiet
 
Tarea - 3 Actividad intermedia trabajo colaborativo 2
Tarea - 3 Actividad intermedia trabajo colaborativo 2Tarea - 3 Actividad intermedia trabajo colaborativo 2
Tarea - 3 Actividad intermedia trabajo colaborativo 2HectorFabianPintoOsp
 
What is-a-computer-process-os
What is-a-computer-process-osWhat is-a-computer-process-os
What is-a-computer-process-osManish Singh
 
Unix Shell and System Boot Process
Unix Shell and System Boot ProcessUnix Shell and System Boot Process
Unix Shell and System Boot ProcessArvind Krishnaa
 
OperatingSystem02..(B.SC Part 2)
OperatingSystem02..(B.SC Part 2)OperatingSystem02..(B.SC Part 2)
OperatingSystem02..(B.SC Part 2)Muhammad Osama
 
Process management
Process managementProcess management
Process managementBirju Tank
 
operating system for computer engineering ch3.ppt
operating system for computer engineering ch3.pptoperating system for computer engineering ch3.ppt
operating system for computer engineering ch3.pptgezaegebre1
 
OS - Chapter # 3 for the development of os
OS - Chapter # 3 for the development of osOS - Chapter # 3 for the development of os
OS - Chapter # 3 for the development of osTahaShahid18
 
System Calls - Introduction
System Calls - IntroductionSystem Calls - Introduction
System Calls - IntroductionTo Sum It Up
 
Introto netthreads-090906214344-phpapp01
Introto netthreads-090906214344-phpapp01Introto netthreads-090906214344-phpapp01
Introto netthreads-090906214344-phpapp01Aravindharamanan S
 
Chapter 01
Chapter 01Chapter 01
Chapter 01 Google
 

Similar to Here we can see detailed explanation on processes and their methods (20)

Ch2_Processes_and_process_management_1.ppt
Ch2_Processes_and_process_management_1.pptCh2_Processes_and_process_management_1.ppt
Ch2_Processes_and_process_management_1.ppt
 
Tarea - 3 Actividad intermedia trabajo colaborativo 2
Tarea - 3 Actividad intermedia trabajo colaborativo 2Tarea - 3 Actividad intermedia trabajo colaborativo 2
Tarea - 3 Actividad intermedia trabajo colaborativo 2
 
What is-a-computer-process-os
What is-a-computer-process-osWhat is-a-computer-process-os
What is-a-computer-process-os
 
Unix Shell and System Boot Process
Unix Shell and System Boot ProcessUnix Shell and System Boot Process
Unix Shell and System Boot Process
 
OperatingSystem02..(B.SC Part 2)
OperatingSystem02..(B.SC Part 2)OperatingSystem02..(B.SC Part 2)
OperatingSystem02..(B.SC Part 2)
 
CH03.pdf
CH03.pdfCH03.pdf
CH03.pdf
 
Process threads operating system.
Process threads operating system.Process threads operating system.
Process threads operating system.
 
Process management
Process managementProcess management
Process management
 
Linux Programming
Linux ProgrammingLinux Programming
Linux Programming
 
Computer Science Assignment Help
Computer Science Assignment HelpComputer Science Assignment Help
Computer Science Assignment Help
 
Os notes
Os notesOs notes
Os notes
 
operating system for computer engineering ch3.ppt
operating system for computer engineering ch3.pptoperating system for computer engineering ch3.ppt
operating system for computer engineering ch3.ppt
 
CS6401 OPERATING SYSTEMS Unit 2
CS6401 OPERATING SYSTEMS Unit 2CS6401 OPERATING SYSTEMS Unit 2
CS6401 OPERATING SYSTEMS Unit 2
 
OS - Chapter # 3 for the development of os
OS - Chapter # 3 for the development of osOS - Chapter # 3 for the development of os
OS - Chapter # 3 for the development of os
 
System Calls - Introduction
System Calls - IntroductionSystem Calls - Introduction
System Calls - Introduction
 
Chapter 01 New
Chapter 01 NewChapter 01 New
Chapter 01 New
 
Introto netthreads-090906214344-phpapp01
Introto netthreads-090906214344-phpapp01Introto netthreads-090906214344-phpapp01
Introto netthreads-090906214344-phpapp01
 
unit-2.pdf
unit-2.pdfunit-2.pdf
unit-2.pdf
 
OS (1).pptx
OS (1).pptxOS (1).pptx
OS (1).pptx
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 

Recently uploaded

一比一原版(TWU毕业证)西三一大学毕业证成绩单
一比一原版(TWU毕业证)西三一大学毕业证成绩单一比一原版(TWU毕业证)西三一大学毕业证成绩单
一比一原版(TWU毕业证)西三一大学毕业证成绩单ocavb
 
Predicting Product Ad Campaign Performance: A Data Analysis Project Presentation
Predicting Product Ad Campaign Performance: A Data Analysis Project PresentationPredicting Product Ad Campaign Performance: A Data Analysis Project Presentation
Predicting Product Ad Campaign Performance: A Data Analysis Project PresentationBoston Institute of Analytics
 
standardisation of garbhpala offhgfffghh
standardisation of garbhpala offhgfffghhstandardisation of garbhpala offhgfffghh
standardisation of garbhpala offhgfffghhArpitMalhotra16
 
Jpolillo Amazon PPC - Bid Optimization Sample
Jpolillo Amazon PPC - Bid Optimization SampleJpolillo Amazon PPC - Bid Optimization Sample
Jpolillo Amazon PPC - Bid Optimization SampleJames Polillo
 
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单ewymefz
 
tapal brand analysis PPT slide for comptetive data
tapal brand analysis PPT slide for comptetive datatapal brand analysis PPT slide for comptetive data
tapal brand analysis PPT slide for comptetive datatheahmadsaood
 
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...Innovative Methods in Media and Communication Research by Sebastian Kubitschk...
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...correoyaya
 
Computer Presentation.pptx ecommerce advantage s
Computer Presentation.pptx ecommerce advantage sComputer Presentation.pptx ecommerce advantage s
Computer Presentation.pptx ecommerce advantage sMAQIB18
 
Uber Ride Supply Demand Gap Analysis Report
Uber Ride Supply Demand Gap Analysis ReportUber Ride Supply Demand Gap Analysis Report
Uber Ride Supply Demand Gap Analysis ReportSatyamNeelmani2
 
一比一原版(NYU毕业证)纽约大学毕业证成绩单
一比一原版(NYU毕业证)纽约大学毕业证成绩单一比一原版(NYU毕业证)纽约大学毕业证成绩单
一比一原版(NYU毕业证)纽约大学毕业证成绩单ewymefz
 
Q1’2024 Update: MYCI’s Leap Year Rebound
Q1’2024 Update: MYCI’s Leap Year ReboundQ1’2024 Update: MYCI’s Leap Year Rebound
Q1’2024 Update: MYCI’s Leap Year ReboundOppotus
 
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单nscud
 
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单nscud
 
Business update Q1 2024 Lar España Real Estate SOCIMI
Business update Q1 2024 Lar España Real Estate SOCIMIBusiness update Q1 2024 Lar España Real Estate SOCIMI
Business update Q1 2024 Lar España Real Estate SOCIMIAlejandraGmez176757
 
Tabula.io Cheatsheet: automate your data workflows
Tabula.io Cheatsheet: automate your data workflowsTabula.io Cheatsheet: automate your data workflows
Tabula.io Cheatsheet: automate your data workflowsalex933524
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样axoqas
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP
 
Opendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptxOpendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptxOpendatabay
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单ewymefz
 
How can I successfully sell my pi coins in Philippines?
How can I successfully sell my pi coins in Philippines?How can I successfully sell my pi coins in Philippines?
How can I successfully sell my pi coins in Philippines?DOT TECH
 

Recently uploaded (20)

一比一原版(TWU毕业证)西三一大学毕业证成绩单
一比一原版(TWU毕业证)西三一大学毕业证成绩单一比一原版(TWU毕业证)西三一大学毕业证成绩单
一比一原版(TWU毕业证)西三一大学毕业证成绩单
 
Predicting Product Ad Campaign Performance: A Data Analysis Project Presentation
Predicting Product Ad Campaign Performance: A Data Analysis Project PresentationPredicting Product Ad Campaign Performance: A Data Analysis Project Presentation
Predicting Product Ad Campaign Performance: A Data Analysis Project Presentation
 
standardisation of garbhpala offhgfffghh
standardisation of garbhpala offhgfffghhstandardisation of garbhpala offhgfffghh
standardisation of garbhpala offhgfffghh
 
Jpolillo Amazon PPC - Bid Optimization Sample
Jpolillo Amazon PPC - Bid Optimization SampleJpolillo Amazon PPC - Bid Optimization Sample
Jpolillo Amazon PPC - Bid Optimization Sample
 
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
 
tapal brand analysis PPT slide for comptetive data
tapal brand analysis PPT slide for comptetive datatapal brand analysis PPT slide for comptetive data
tapal brand analysis PPT slide for comptetive data
 
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...Innovative Methods in Media and Communication Research by Sebastian Kubitschk...
Innovative Methods in Media and Communication Research by Sebastian Kubitschk...
 
Computer Presentation.pptx ecommerce advantage s
Computer Presentation.pptx ecommerce advantage sComputer Presentation.pptx ecommerce advantage s
Computer Presentation.pptx ecommerce advantage s
 
Uber Ride Supply Demand Gap Analysis Report
Uber Ride Supply Demand Gap Analysis ReportUber Ride Supply Demand Gap Analysis Report
Uber Ride Supply Demand Gap Analysis Report
 
一比一原版(NYU毕业证)纽约大学毕业证成绩单
一比一原版(NYU毕业证)纽约大学毕业证成绩单一比一原版(NYU毕业证)纽约大学毕业证成绩单
一比一原版(NYU毕业证)纽约大学毕业证成绩单
 
Q1’2024 Update: MYCI’s Leap Year Rebound
Q1’2024 Update: MYCI’s Leap Year ReboundQ1’2024 Update: MYCI’s Leap Year Rebound
Q1’2024 Update: MYCI’s Leap Year Rebound
 
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
 
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单
一比一原版(CBU毕业证)不列颠海角大学毕业证成绩单
 
Business update Q1 2024 Lar España Real Estate SOCIMI
Business update Q1 2024 Lar España Real Estate SOCIMIBusiness update Q1 2024 Lar España Real Estate SOCIMI
Business update Q1 2024 Lar España Real Estate SOCIMI
 
Tabula.io Cheatsheet: automate your data workflows
Tabula.io Cheatsheet: automate your data workflowsTabula.io Cheatsheet: automate your data workflows
Tabula.io Cheatsheet: automate your data workflows
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdf
 
Opendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptxOpendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptx
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单
 
How can I successfully sell my pi coins in Philippines?
How can I successfully sell my pi coins in Philippines?How can I successfully sell my pi coins in Philippines?
How can I successfully sell my pi coins in Philippines?
 

Here we can see detailed explanation on processes and their methods

  • 1. Chapter 2 Chapter 2: Processes & Threads
  • 2. Chapter 2 2 CS 1550, cs.pitt.edu (originaly modified by Ethan Processes and threads  Processes  Threads  Scheduling  Interprocess communication  Classical IPC problems
  • 3. Chapter 2 3 CS 1550, cs.pitt.edu (originaly modified by Ethan What is a process?  Code, data, and stack  Usually (but not always) has its own address space  Program state  CPU registers  Program counter (current location in the code)  Stack pointer  Only one process can be running in the CPU at any given time!
  • 4. Chapter 2 4 CS 1550, cs.pitt.edu (originaly modified by Ethan The process model  Multiprogramming of four programs  Conceptual model  4 independent processes  Processes run sequentially  Only one program active at any instant!  That instant can be very short… A C D Single PC (CPU’s point of view) A B C D Multiple PCs (process point of view) B B A B C D Time
  • 5. Chapter 2 5 CS 1550, cs.pitt.edu (originaly modified by Ethan When is a process created?  Processes can be created in two ways  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  User request to create a new process (system call executed from user shell)  Already running processes  User programs  System daemons
  • 6. Process Creation  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  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 terminate Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 6
  • 7. 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 Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 7
  • 8. Chapter 2 8 CS 1550, cs.pitt.edu (originaly modified by Ethan When do processes end?  Conditions that terminate processes can be  Voluntary  Involuntary  Voluntary  Normal exit  Error exit  Involuntary  Fatal error (only sort of involuntary)  Killed by another process
  • 9. 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 Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 9
  • 10. Process Termination  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.  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 10
  • 11. Chapter 2 11 CS 1550, cs.pitt.edu (originaly modified by Ethan Process hierarchies  Parent creates a child process  Child processes can create their own children  Forms a hierarchy  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  All processes are created equal
  • 12. Chapter 2 12 CS 1550, cs.pitt.edu (originaly modified by Ethan Blocked (waiting) Created Exit Ready Running Process states  Process in one of 5 states  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 1 5 4 3 2 7 7 6
  • 13. Chapter 2 13 CS 1550, cs.pitt.edu (originaly modified by Ethan Processes in the OS  Two “layers” for processes  Lowest layer of process-structured OS handles interrupts, scheduling  Above that layer are sequential processes  Processes tracked in the process table  Each process has a process table entry Scheduler 0 1 N-2 N-1 … Processes
  • 14. Chapter 2 14 CS 1550, cs.pitt.edu (originaly modified by Ethan What’s in a process table entry? File management Root directory Working (current) directory File descriptors User ID Group ID Memory management Pointers to text, data, stack or Pointer to page table Process 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 May be stored on stack
  • 15. Chapter 2 15 CS 1550, cs.pitt.edu (originaly modified by Ethan What happens on a trap/interrupt? 1. Hardware saves program counter (on stack or in a special register) 2. Hardware loads new PC, identifies interrupt 3. Assembly language routine saves registers 4. Assembly language routine sets up stack 5. Assembly language calls C to run service routine 6. Service routine calls scheduler 7. Scheduler selects a process to run next (might be the one interrupted…) 8. Assembly language routine loads PC & registers for the selected process
  • 16. Chapter 2 16 CS 1550, cs.pitt.edu (originaly modified by Ethan Threads: “processes” sharing memory  Process == address space  Thread == program counter / stream of instructions  Two examples  Three processes, each with one thread  One process with three threads Kernel Kernel Threads Threads System space User space Process 1 Process 2 Process 3 Process 1
  • 17. Chapter 2 17 CS 1550, cs.pitt.edu (originaly modified by Ethan 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 Per thread items Program counter Registers Stack & stack pointer State Per thread items Program counter Registers Stack & stack pointer State
  • 18. Chapter 2 18 CS 1550, cs.pitt.edu (originaly modified by Ethan Threads & Stacks Kernel Process Thread 1 Thread 2 Thread 3 Thread 1’s stack Thread 3’s stack Thread 2’s stack User space => Each thread has its own stack!
  • 19. Chapter 2 19 CS 1550, cs.pitt.edu (originaly modified by Ethan Why use threads?  Allow a single application to do many things at once  Simpler programming model  Less waiting  Threads are faster to create or destroy  No separate address space  Overlap computation and I/O  Could be done without threads, but it’s harder  Example: word processor  Thread to read from keyboard  Thread to format document  Thread to write to disk Kernel 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. 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 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
  • 20. Chapter 2 20 CS 1550, cs.pitt.edu (originaly modified by Ethan Multithreaded Web server Kernel Network connection Dispatcher thread Worker thread Web page cache while(TRUE) { getNextRequest(&buf); handoffWork(&buf); } while(TRUE) { waitForWork(&buf); lookForPageInCache(&buf,&page); if(pageNotInCache(&page)) { readPageFromDisk(&buf,&page); } returnPage(&page); }
  • 21. Chapter 2 21 CS 1550, cs.pitt.edu (originaly modified by Ethan Three ways to build a server  Thread model  Parallelism  Blocking system calls  Single-threaded process: slow, but easier to do  No parallelism  Blocking system calls  Finite-state machine  Each activity has its own state  States change when system calls complete or interrupts occur  Parallelism  Nonblocking system calls  Interrupts
  • 22. Chapter 2 22 CS 1550, cs.pitt.edu (originaly modified by Ethan Implementing threads Kernel Run-time system Thread table Process table Kernel Thread Process 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 Kernel-level threads + More flexible scheduling + Non-blocking I/O - Not portable
  • 23. Interprocess Communication  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)  Two models of IPC  Shared memory  Message passing Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 23
  • 24. Producer-Consumer Problem  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 24
  • 25. Bounded-Buffer – Shared-Memory Solution  Shared data  #define BUFFER_SIZE 10  typedef struct {  . . .  } item;  item buffer[BUFFER_SIZE];  int in = 0;  int out = 0;  Solution is correct, but can only use BUFFER_SIZE- 1 elements Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 25
  • 26. 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; } Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 26
  • 27. Bounded Buffer – Consumer item next_consumed; while (true) { while (in == out) ; /* do nothing */ next_consumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; /* consume the item in next consumed */ Spring 2018 CS/ CO E 155 0 – Ope rati ng Syst ems – She rif Kha ttab 27
  • 28. Chapter 2 28 CS 1550, cs.pitt.edu (originaly modified by Ethan Scheduling  What is scheduling?  Goals  Mechanisms  Scheduling on batch systems  Scheduling on interactive systems  Other kinds of scheduling  Real-time scheduling
  • 29. Chapter 2 29 CS 1550, cs.pitt.edu (originaly modified by Ethan Why schedule processes?  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 CPU bound I/O bound CPU bursts I/O waits Total CPU usage Total CPU usage Time
  • 30. Chapter 2 30 CS 1550, cs.pitt.edu (originaly modified by Ethan When are processes scheduled?  At the time they enter the system  Common in batch systems  Two types of batch scheduling  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)  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
  • 31. Chapter 2 31 CS 1550, cs.pitt.edu (originaly modified by Ethan Scheduling goals  All systems  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  Batch systems  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  Response time: respond quickly to users’ requests  Proportionality: meet users’ expectations  Real-time systems  Meet deadlines: missing deadlines is a system failure!  Predictability: same type of behavior for each time slice
  • 32. Chapter 2 32 CS 1550, cs.pitt.edu (originaly modified by Ethan Measuring scheduling performance  Throughput  Amount of work completed per second (minute, hour)  Higher throughput usually means better utilized system  Response time  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  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
  • 33. Chapter 2 33 CS 1550, cs.pitt.edu (originaly modified by Ethan First Come, First Served (FCFS)  Goal: do jobs in the order they arrive  Fair in the same way a bank teller line is fair  Simple algorithm!  Problem: long jobs delay every job after them  Many processes may wait for a single long job A B C D 4 3 6 3 Current job queue Execution order FCFS scheduler A B C D 4 3 6 3
  • 34. Chapter 2 34 CS 1550, cs.pitt.edu (originaly modified by Ethan Shortest Job First (SJF)  Goal: do the shortest job first  Short jobs complete first  Long jobs delay every job after them  Jobs sorted in increasing order of execution time  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? A B C D 4 3 6 3 A B C D 4 3 6 3 Current job queue Execution order SJF scheduler
  • 35. Chapter 2 35 CS 1550, cs.pitt.edu (originaly modified by Ethan Three-level scheduling CPU Main memory CPU scheduler Memory scheduler Admission scheduler Input queue Arriving jobs  Jobs held in input queue until moved into 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
  • 36. Chapter 2 36 CS 1550, cs.pitt.edu (originaly modified by Ethan Round Robin (RR) scheduling  Round Robin scheduling  Give each process a fixed time slot (quantum)  Rotate through “ready” processes  Each process makes some progress  What’s a good quantum?  Too short: many process switches hurt efficiency  Too long: poor response to interactive requests  Typical length: 10–50 ms A B C D E Time A B C D E
  • 37. Chapter 2 37 CS 1550, cs.pitt.edu (originaly modified by Ethan Priority scheduling  Assign a priority to each process  “Ready” process with highest priority allowed to run  Running process may be interrupted after its quantum expires  Priorities may be assigned dynamically  Reduced when a process uses CPU time  Increased when a process waits for I/O  Often, processes grouped into multiple queues based on priority, and run round-robin per queue Priority 4 Priority 3 Priority 2 Priority 1 High Low “Ready” processes
  • 38. Chapter 2 38 CS 1550, cs.pitt.edu (originaly modified by Ethan Shortest process next  Run the process that will finish the soonest  In interactive systems, job completion time is unknown!  Guess at completion time based on previous runs  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!
  • 39. Chapter 2 39 CS 1550, cs.pitt.edu (originaly modified by Ethan Lottery scheduling  Give processes “tickets” for CPU time  More tickets => higher share of CPU  Each quantum, pick a ticket at random  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  Cooperating processes can exchange tickets  Clients can transfer tickets to server so it can have a higher priority
  • 40. Chapter 2 40 CS 1550, cs.pitt.edu (originaly modified by Ethan Policy versus mechanism  Separate what may be done from how it is done  Mechanism allows  Priorities to be assigned to processes  CPU to select processes with high priorities  Policy set by what priorities are assigned to processes  Scheduling algorithm parameterized  Mechanism in the kernel  Priorities assigned in the kernel or by users  Parameters may be set by user processes  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
  • 41. Chapter 2 41 CS 1550, cs.pitt.edu (originaly modified by Ethan Scheduling user-level threads Kernel Run-time system Thread table Process table  Kernel picks a process to run next  Run-time system (at user level) schedules threads  Run each thread for less than process quantum  Example: processes get 40ms each, threads get 10ms each  Example schedule: A1,A2,A3,A1,B1,B3,B2,B3  Not possible: A1,A2,B1,B2,A3,B3,A2,B1 Process A Process B
  • 42. Chapter 2 42 CS 1550, cs.pitt.edu (originaly modified by Ethan Scheduling kernel-level threads  Kernel schedules each thread  No restrictions on ordering  May be more difficult for each process to specify priorities  Example schedule: A1,A2,A3,A1,B1,B3,B2,B3  Also possible: A1,A2,B1,B2,A3,B3,A2,B1 Process A Process B Kernel Thread table Process table