• No results found

Operating System: Scheduling

N/A
N/A
Protected

Academic year: 2022

Share "Operating System: Scheduling"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Operating System:

Scheduling

CIT 595 Spring 2010

Based on slides © OS Concepts by Silberschatz, Galvin and Gagne, 2008 Additional material by Diana Palsetia

Process Management

„ OS maintains a data structure for each process called Process Control Block(PCB)

„ Information associated with each PCB:

„Process state: e.g. ready, or waiting etc.

„Program counter: address of next instruction

„CPU registers: PC, working registers, stack pointer, condition code

„CPU scheduling information: scheduling order and priority

„Memory-management information: page table/segment table pointers

CIT 595 2

Memory management information: page table/segment table pointers

„Accounting information: book keeping info e.g. amt CPU used

„I/O status information: list of I/O devices allocated to this process

Process(Running Program) Behavior

„

Maximum CPU utilization obtained with

multiprogramming

„

CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait

CIT 595 3

CPU Scheduler

„

Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them

„

CPU scheduling decisions may take place when a

„

CPU scheduling decisions may take place when a process:

1. Switches from running to waiting state 2. Switches from running to ready state 3. Switches from waiting to ready 4. Terminates

„

Scheduling under 1 and 4 is non-preemptive

CIT 595

„

Scheduling under 1 and 4 is non preemptive

„

All other scheduling is preemptive

4

(2)

Ready Queue Representation

CIT 595 Source: Operating System Concept (7 Ed) – Silberschatz, Gavin and Gagne 5

Dispatcher

„

Dispatcher module gives control of the CPU to the process selected by the scheduler

„

This involves:

„

This involves:

„switching context

„switching to user mode

„jumping to the proper location in the user program to restart that program

„

Dispatch latency

CIT 595

„

Dispatch latency

„Time it takes for the dispatcher to stop one process and start another running

6

Context Switch

Time due to context

switch

Issues to Consider

„

Efficiency

„If scheduler is invoked every 100 ms & it takes 10 ms to decide the order of execution of the processes then 10/(100 + 10) = 9 % of the CPU is being used simply for scheduling the

k work

„

Context switch overhead (Dispatcher latency)

„Saving PCB on process, loading PCB of other

„

Fairness

„Give each process a fair share

„

Priority

(3)

Scheduling Algorithm Metrics

„ CPU utilization: Fraction of time CPU is utilized

„ Throughput: # of processes that completed per time unit

„ Turnaround time: amount of time to execute a particular processp p

„Waiting in Ready Queue + Executing on CPU + doing I/O

„ Response time: amount of time it takes from when a request was submitted until the first response is produced

„Ideal for interactive systems

„ Note:

„For simplicity illustration and discussion only one CPU burst per

CIT 595 9

p y y p

process is used in examples

„Measure of comparison is done with Average Waiting Time

¾Waiting Time is the sum of the periods spent waiting in ready queue

„Context switch time is negligible

Scheduling Scheme: FCFS

„

First Come First Served (FCFS)

„The process that requests the CPU first is allocated the CPU

„

Implemented using a FIFO queue

„

Implemented using a FIFO queue

„When the process enters the read queue, its PCB is linked to the tail

„The process at the head of the queue is given to the CPU

„

FCFS is non-preemptive and hence easy to implement

CIT 595 10

implement

„

Wait time varies substantially if the processes that comes first are CPU intensive

FCFS Example (Execution Time)

Process Execution Time

P1 24

P2 3

P3 3

„ Suppose that the processes arrive in the order: P1, P2, P3 The Gantt/Time Chart for the schedule is:

P1 P2 P3

CIT 595 11

„ Waiting time for P1 = 0; P2 = 24; P3 = 27

„ Average waiting time: (0 + 24 + 27)/3 = 17

24 27 30

0

FCFS Example (contd..)

„

Suppose that the processes arrive in the order:

P

2

, P

3

, P

1

„

The time chart for the schedule is:

„

Waiting time for P

1

= 6; P

2

= 0

;

P

3

= 3

„

Average waiting time: (6 + 0 + 3)/3 = 3

P1

P3

P2

6

3 30

0

CIT 595 12

„

Average waiting time: (6 + 0 + 3)/3 = 3

„Much better than previous case

„

Convoy effect: all processes wait for the one big

process to get off the CPU

(4)

Scheduling Algorithm: Shortest Job First (SJF)

„ The process with the shortest execution time takes priority over others

„ Associate with each process the length of its next CPU execution time

execution time

„Achieved by guessing the run time of process for its next execution

„ Non-preemptive

„Once CPU given to the process it cannot be preempted until completes its CPU execution time is complete.

¾If 2 short jobs with same execution time then use their time of arrival to break the tie

CIT 595 13

„ Preemptive

„If a new process arrives with CPU execution time less than remaining time of current executing process, preempt

SJF with Preemption Example

Process Arrival Time Next CPU Ex Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

„ SJF (preemptive) P1 P2 P3

4

2 11

0

P4

5 7

P2 P1

16

CIT 595 14

„ Average waiting time = (9 + 1 + 0 +2)/4 = 3

„ Also known as Shortest Remaining Time First 4

2 11

0 5 7 16

SJF Advantages and Disadvantages

Advantage

„

SJF is optimal – gives minimum average waiting time for a given set of processes

Disadvantage

„

Need to have a good heuristic to guess the next CPU execution time

„

Short duration processes will starve longer ones

Estimating the Next CPU Execution Time

„

Use previous value of the execution time

„

Predict new time using Exponential Averaging

„

Method:

( 1 ) .

1 n n

n

α t α τ

τ

+

= + − :

Formula:

4.

1 0 , 3.

CPU next the for value predicted 2.

Execution Time CPU

of length actual 1.

=

=

+

α α τ

n 1

th

n

n

t

Execution Time

„

Method:

„

Since both α and (1 - α) are less than or equal to 1,

each successive term has less weight than its

predecessor

(5)

Example of Exponential Averaging

Actual CPU burst time ti

Predicted CPU burst time τi with α= 1/2 and τ0= 10

CIT 595 17

Scheduling Scheme: Priority

„ A priority number (integer) is associated with each process

„ CPU is allocated to the process with the highest priority

„If processes have same priority then schedule according t FCFS

to FCFS

„ SJF is an example of a priority scheduling

„ Problem: Starvation – low priority processes may never execute

„ Solution: Aging – as time progresses increase the priority

CIT 595 18

g g p g p y

of the process

Scheduling Scheme: Round Robin (RR)

„

Each process gets a small unit of CPU time called time quantum or slice

„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

„

Performance

CIT 595 19

„

Performance

„If q is large then RR becomes like FCFS

„q should not be so small such that it requires too many context switches

What do real systems use?

„

Multi-level Feedback queues

„N priority levels

„Priority scheduling between levels

„RR within a level

„Quantum size decreases as priority level increase

„Process in a given level not scheduled until all higher priority queues are empty

„If process does not complete in a given quantum at a priority level it is moved to next lower priority level

„If processes voluntarily relinquishes CPU (becomes I/O bound) then move process to a higher priority queue

CIT 595 20

bound) then move process to a higher priority queue

(6)

User Threads

„

Implemented by a library at the user level

„

Supports thread creation, scheduling, and management with no support from the kernel Ad t

„

Advantage

„

Fast and easy to create (no overhead of system calls)

„

Disadvantage

„

If one thread blocks then all block

CIT 595 21

Kernel Threads

„

OS having its own threads

„Also known as LWP (Light Weight Processes)

„A LWP can be viewed as “virtual CPUs” to which the scheduler of threads library schedules user-level threadsy

„

Advantage

„ If one thread blocks then OS can schedule another thread of the application to execute

„

Disadvantage

CIT 595

„

Disadvantage

„Slower to create and manage as creation and management is happening via system calls

22

Thread Models: Many to One Model

„

All application-level threads map to a single kernel-level scheduled entity

„

Threads of a process are not visible to the os/kernel

os/kernel

„

Threads are not kernel scheduled entities

„

Process is the only kernel scheduled entity

„

Problem with this model is that it constrains concurrency

„Since there is only one kernel scheduled entity only one

„Since there is only one kernel scheduled entity, only one thread per process can execute at a time

„Cannot benefit from the hardware acceleration on multi- threaded processors or multi-processor computers

Many to One model

(7)

Thread Models: One to One Model

„

Maps each user thread to schedulable entity in the kernel

„

All user threads are visible to the kernel

„

All user threads are kernel scheduled entities, and all threads can concurrently execute

CIT 595

„

The drawback to this model is that the creation and management of the threads entails

creation of corresponding kernel thread

25

One to One Model

CIT 595 26

Thread Models: Hybrid Models

„

Offers the speed of library threads and the concurrency of kernel threads

„

Multiplexes many user-level threads to a smaller or equal number of kernel threads

„

There are two levels of thread scheduling:

„

Library manages the scheduling of library threads

CIT 595

y g g y

onto kernel scheduled entities

„

Kernel manages the scheduling of kernel scheduled entities onto processor(s)

27

Many to Many Model

CIT 595 28

(8)

Thread Scheduling: Contention Scope

„

Many-to-one and many-to-many models, thread library schedules user-level threads to run on LWP

„Known as process-contention scope (PCS) since scheduling competition is within the process

„

Kernel thread scheduled onto available CPU is system-contention scope (SCS)

„Competition among all threads in system

„

In Pthreads, scope can be set with thread attribute

CIT 595

, p

object (pthread_attr_t) via the pthread_attr_getscope(..)

„By default the scope used is PCS

„.h also provided macros PTHREAD_SCOPE_PROCESS and PTHREAD_SCOPE_SYSTEM

29

Thread Scheduling: Scheme

„

Most user-level thread libraries provide getting/setting scheduling policies

„

Example Pthreads API

„

Example Pthreads API

„int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);

int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int

*policy);

¾policy -> SCHED_FIFO, SCHED_RR and SCED_OTHER

CIT 595 30

References

Related documents

FIGURE 42: ANIMATION STUDIOS IN KOREA BASED ON CAPABILITIES FIGURE 43: ANIMATION STUDIOS IN KOREA BASED ON APPLICATIONS FIGURE 44: PEOPLE EMPLOYED IN THE KOREAN ANIMATION INDUSTRY

[r]

This research was aimed at finding out: (1) whether or not Collaborative Writing Technique is more effective than Direct Instruction in teaching writing of

On the next screen enter the user information for the PC that LightJockey 2 will be used on and click

Although social networks can remain stable and supportive before and after bereavement (Utz et al., 2014), bereaved spouses might experience reduced support from close family

By expanding our services to include online spaces, including a WASH Resources website, a Biosand Filter Knowledge Base, and webinars, CAWST has successfully been able to

risk reward ratio, I set the highest point of uptrend as a target of profit, and the lowest. point of the downtrend as the stop

Figure 3(a) to 3(d) that representing the rainfall, temperature, humidity and wind speed variable illustrates vividly the fitted generated from the forecasting model and the