Académique Documents
Professionnel Documents
Culture Documents
Copyright Notice: The lecture notes are modifications of the slides accompanying the course
book “Operating System Concepts”, 9th edition, 2013 by Silberschatz, Galvin and Gagne.
Process Concept
• Program is passive entity stored on disk (executable file), process is active. Consider
multiple users executing the same program
• Multiple parts
– The program code, also called text section
local variables
Information associated with each process (also called task control block)
• 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
CPU Switch From Process to Process
Process Scheduling
• Maximize CPU use, quickly switch processes onto CPU for time sharing
• Queueing diagram
Schedulers
• Short-term scheduler (or CPU scheduler) – selects which process should be executed next and
allocates CPU
• Long-term scheduler (or job scheduler) – selects which processes should be brought into the
ready queue
– I/O-bound process – spends more time doing I/O than computations, many short CPU bursts
– CPU-bound process – spends more time doing computations; few very long CPU bursts
• Execution options
– Parent and children execute concurrently
– Parent waits until children terminate
Operations on Processes:
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
Operations on Processes:
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())
– The parent is exiting and the operating systems does not allow
a child to continue if its parent terminates
Operations on Processes: Inter-process
Communication
• Processes within a system may be independent or cooperating
– Computation speedup
– Modularity
– Convenience
– Message passing
Operations on Processes:
Communications Models
(a) Message passing. (b) shared memory.
Threads: Motivation
• Most modern applications are multithreaded
– Fetch data
– Spell checking
• Parallelism implies a system can perform more than one task simultaneously
• 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
Concurrency vs. Parallelism
• Concurrent execution on single-core system:
• S is serial portion
• N processing cores
– Windows threads
– Java threads
– Solaris
– Linux
– Mac OS X
Multithreading Models:
Many-to-One
• Many user-level threads mapped to
single kernel thread
4. Terminates
• Waiting time – amount of time a process has been waiting in the ready
queue
P1 24
P2 3
P3 3
P1 P2 P3
0 24 27 30
P2 , P3 , P1
P2 P3 P1
0 3 6 30
• Associate with each process the length of its next CPU burst
– Use these lengths to schedule the process with the shortest
time
P4 P1 P3 P2
0 3 9 16 24
• Can be done using length of previous CPU bursts, using exponential averaging
1. 𝑡𝑛 = 𝑎𝑐𝑡𝑢𝑎𝑙 𝑙𝑒𝑛𝑔𝑡ℎ 𝑜𝑓 𝑛𝑡ℎ 𝐶𝑃𝑈 𝑏𝑢𝑟𝑠𝑡
3. 𝛼: 0 ≤ 𝛼 ≤ 1
4. 𝐷𝑒𝑓𝑖𝑛𝑒: 𝜏𝑛+1 = 𝛼 𝑡𝑛 + 1 − 𝛼 𝜏𝑛
• Commonly, α set to ½
• Now we add the concepts of varying arrival times and preemption to the
analysis
ProcessAarri Arrival TimeT Burst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
• Preemptive SJF Gantt Chart
P1 P2 P4 P1 P3
0 1 5 10 17 26
• The CPU is allocated to the process with the highest priority (smallest
integer highest priority)
– Preemptive
– Non-preemptive
P2 P5 P1 P3 P4
0 1 6 16 18 19
• Average waiting time = 8.2 msec
Round Robin (RR)
• Each process gets a small unit of CPU time (time quantum q), usually
10-100 milliseconds. After this time has elapsed, the process is
preempted and added to the end of the ready queue.
• If there are n processes in the ready queue and the time quantum is q,
then each process gets 1/n of the CPU time in chunks of at most q time
units at once. No process waits more than (n-1)q time units.
• Timer interrupts every quantum to schedule next process
• Performance
– q large FIFO
– q small q must be large with respect to context switch, otherwise overhead is
too high
Example of RR with Time Quantum = 4
Process Burst Time
P1 24
P2 3
P3 3
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
• Typically, higher average turnaround than SJF, but better response
– background (batch)
– background – FCFS
– Time slice – each queue gets a certain amount of CPU time which it can schedule
amongst its processes; i.e., 80% to foreground in RR
• A process can move between the various queues; aging can be implemented
this way
– method used to determine which queue a process will enter when that process
needs service
Example of Multilevel Feedback
Queue
• Three queues:
– Q0 – RR with time quantum 8 milliseconds
– Q2 – FCFS
• Scheduling
– A new job enters queue Q0 which is served FCFS