Lecture 18 Syed Mansoor Sarwar Operating Systems Lecture 18 Syed Mansoor Sarwar
© Copyright Virtual University of Pakistan Agenda for Today Review of previous lecture UNIX System V scheduling Algorithm evaluation Process synchronization Recap of lecture 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Review of Lecture 17 Multi-level queues scheduling Multi-level feedback queues scheduling UNIX System V scheduling algorithm 27 February 2019 © Copyright Virtual University of Pakistan
UNIX System V Scheduling Algorithm Every second, the priority number of all those processes that are in the main memory and ready to run is updated by using the following formula: Priority# = (Recent CPU Usage)/2 + Thr. Pri.+ nice Threshold priority and nice values are always positive to prevent a user from migrating out of its assigned group 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan UNIX System V Example PA PB PC CPU Count 1 … 60 30 15 7 8 67 33 16 CPU Count 1 … 60 30 15 7 8 67 33 CPU Count 1 … 60 30 15 7 Time Priority 60 75 67 63 76 68 Priority 60 75 67 63 76 Priority 60 75 67 63 1 2 3 4 5 27 February 2019 © Copyright Virtual University of Pakistan
Round Robin Scheduling and Process Priorities 60 B Higher Priority B A A A 1 2 3 B A B B A runs first A 27 February 2019 © Copyright Virtual University of Pakistan 4 5 6
© Copyright Virtual University of Pakistan Algorithm Evaluation Analytic Evaluation The algorithm and some system workload are used to produce a formula or number which gives the performance of the algorithm for that workload. Deterministic modeling Queuing models Implementation 27 February 2019 © Copyright Virtual University of Pakistan
Deterministic Modeling Predetermined workload and performance of each algorithm for that workload. Use of Gantt charts. Simple and fast Exact numbers for comparison Requires exact input Performance figures may not be true in general 27 February 2019 © Copyright Virtual University of Pakistan
Deterministic Modeling Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 Gantt chart Average waiting time = (9 + 1 + 0 +2)/4 = 3 P3 P2 4 2 11 P4 5 7 P1 16 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Queuing Modeling Computer system viewed as a network of queues and servers: ready queue, I/O queue, event queues, CPUs, I/O device controllers, etc. Input: Arrival and service rates Output: CPU utilization, average queue length, average waiting time, … 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Queuing Modeling Little’s Formula: n = λ* W where n = average queue length λ = average arrival rate W = average waiting time in a queue 27 February 2019 © Copyright Virtual University of Pakistan
Queuing Modeling Let the average job arrival rate be 0.5 Algorithm Average Wait Time W=tw Average Queue Length(n) FCFS 4.6 2.3 SJF 3.6 1.8 SRTF 3.2 1.6 RR (q=1) 7.0 3.5 RR (q=4) 6.0 3.0 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Queuing Modeling Complicated mathematics Distributions (Poisson, uniform, exponential, etc) for the arrival and departure rates can be difficult to work with Assumptions may not be accurate Approximation of the real system 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Simulation Programming model for the computer system Workload generated by assuming some distribution and a random number generator, or by collecting data from the actual system. 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Simulation Characteristics Expensive: hours of programming and execution time May be erroneous because of the assumptions about distributions 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Simulation 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Implementation Best Most expensive Good option due to Open Source kernels such as Linux 27 February 2019 © Copyright Virtual University of Pakistan
Process Synchronization Concurrent access to shared data may result in data inconsistency. Maintaining data consistency requires mechanisms to ensure that cooperating processes access shared data sequentially. 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem Shared data #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0, out = 0; int counter = 0; 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem Producer process item nextProduced; … while (1) { while (counter == BUFFER_SIZE) ; buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; } 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem Consumer process item nextConsumed; while (1) { while (counter == 0) ; nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; counter--; } 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem “counter++” in assembly language MOV R1, counter INC R1 MOV counter, R1 “counter--” in assembly language MOV R2, counter DEC R2 MOV counter, R2 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem If both the producer and consumer attempt to update the buffer concurrently, the machine language statements may get interleaved. Interleaving depends upon how the producer and consumer processes are scheduled. 27 February 2019 © Copyright Virtual University of Pakistan
Bounded-Buffer Problem Assume counter is initially 5. One interleaving of statements is: producer: MOV R1, counter (R1 = 5) INC R1 (R1 = 6) consumer: MOV R2, counter (R2 = 5) DEC R2 (R2 = 4) producer: MOV counter, R1 (counter = 6) consumer: MOV counter, R2 (counter = 4) The value of count may be either 4 or 6, where the correct result should be 5. 27 February 2019 © Copyright Virtual University of Pakistan
Process Synchronization Race Condition: The situation where several processes access and manipulate shared data concurrently, the final value of the data depends on which process finishes last. 27 February 2019 © Copyright Virtual University of Pakistan
Process Synchronization Critical Section: A piece of code in a cooperating process in which the process may updates shared data (variable, file, database, etc.). Critical Section Problem: Serialize executions of critical sections in cooperating processes 27 February 2019 © Copyright Virtual University of Pakistan
Solution of the Critical Problem Software based solutions Hardware based solutions Operating system based solution 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Structure of Solution do { critical section reminder section } while (1); entry section exit section 27 February 2019 © Copyright Virtual University of Pakistan
© Copyright Virtual University of Pakistan Recap of Lecture UNIX System V scheduling Algorithm evaluation Process synchronization Recap of lecture 27 February 2019 © Copyright Virtual University of Pakistan
Lecture 18 Syed Mansoor Sarwar Operating Systems Lecture 18 Syed Mansoor Sarwar