Suggested Exercises 2 Sarah Diesburg Operating Systems CS
Suggested Exercises #2 Sarah Diesburg Operating Systems CS 3430
Process != Program? n Find a creative/funny analogy to distinguish between a process and a program. n Program: a recipe Process: everything needed to cook (e. g. , kitchen) Two chefs can cook the same recipe in different kitchens One complex recipe can involve several chefs n n n
Uniprogramming? n Give an example where a uniprogramming environment is appropriate. n Runs one process at a time Appropriate for embedded systems (like remote control) or other simple systems. Process can have multiple threads (e. g. One thread per remote control button) n n
Multithreading vs running multiple single-thread processes n Multithreading - A process with three threads sharing a single address space. Threads may corrupt one another. n Multiple single-threaded processes is multiprogramming
Thread State Diagram Running Scheduled Ready I/O request Yield, timer I/O complete Blocked
Three Processes Process A Process B Process C Time 0 100 200 300 400 500 600 700 800
First In, First Out Process A Process B Process C FIFO Time 0 100 200 300 400 500 600 700 800
First In, First Out Process A Process B Process C FIFO C A B Time 0 100 200 300 400 500 600 700 800
First In, First Out Process A Process B Process C FIFO C A B Time 0 100 200 300 400 500 600 700 800 Average response time = [(300 -50) + (500 -150) + 0]/3 = 200
First In, First Out Process A Process B Process C FIFO C A B Time 0 100 200 300 400 500 600 700 800 Average wait time = [(300 -50) + (500 -150) + 0]/3 = 200
First In, First Out Process A Process B Process C FIFO C AA BB Time 0 100 200 300 400 500 600 700 800 Average turnaround time = [(500 -50) + (900 -150) + (300 -0)]/3 = 500
Round Robin (Time slice = 100) Process A Process B Process C RR Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B A Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B A Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B A C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B A C Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800 Average response time = [(100 -50) + (300 – 150) + 0]/3 = 66. 7
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800 Average wait time = {[(100– 50) + (400– 200)] + [(300– 150) + (600– 400)] + [0 + (200– 100) + (500– 300)]}/3 = [250 + 300]/3 = 300
Round Robin (Time slice = 100) Process A Process B Process C RR C A C B Time 0 100 200 300 400 500 600 700 800 Average turnaround time = [(500 – 50) + (900 – 150) + (600 – 0)]/3 = 600
Shortest Job Next Process A Process B Process C SJN Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A B Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A B Time 0 100 200 300 400 500 600 700 800
Shortest Job Next Process A Process B Process C SJN C A B Time 0 100 200 300 400 500 600 700 800 Average response time = [(300 -50) + (500 -150) + 0]/3 = 200
Shortest Job Next Process A Process B Process C SJN C A B Time 0 100 200 300 400 500 600 700 800 Average wait time = [(300 -50) + (500 -150) + 0]/3 = 200
Shortest Job Next Process A Process B Process C SJN C A B Time 0 100 200 300 400 500 600 700 800 Average turnaround time = [(500 -50) + (900 -150) + (300 -0)]/3 = 500
Shortest Remaining Time First Process A Process B Process C SRTF Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A C Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A C Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A C B Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A C B Time 0 100 200 300 400 500 600 700 800
Shortest Remaining Time First Process A Process B Process C SRTF C A C B Time 0 100 200 300 400 500 600 700 800 Average response time = [0 + (500 -150) + 0]/3 = 117
Shortest Remaining Time First Process A Process B Process C SRTF C A C B Time 0 100 200 300 400 500 600 700 800 Average wait time = [0 + (500 – 150) + (250 – 50)]/3 = 183
Shortest Remaining Time First Process A Process B Process C SRTF C A C B Time 0 100 200 300 400 500 600 700 800 Average turnaround time = [(250 – 50) + (900 – 150) + (500 – 0)]/3 = 483
- Slides: 52