You are on page 1of 15

1 | Page

OPERATING SYSTEMS
UNIT-II

1. Write a short note on the following:


(1) Long-term Scheduler
(2) Short-term Scheduler
(3) Medium-term Scheduler
OR
Explain 3 different types of scheduler in operating system.
Long-term scheduler (or job scheduler) selects processes from the job
pool and loads them into memory for execution.
The long-term scheduler, on the other hand executes much less
frequently. There may be minutes between the creation of new processes
in the system. The long-term scheduler controls the degree of multi
programming. Thus, the long-term scheduler may need to be
invoked only when a process leaves the system. Because of the longer
interval between executions, the long-term scheduler can afford to take
more time to decide which process should be selected for execution.
It is important that the long-term scheduler make a careful
selection. In general, most processes can be described as either I/O
bound or CPU bound. An I/O-bound process is one that spends more of
its time doing I/O than it spends doing computations. A CPU-bound
process, on the other hand, is one that generates I/O requests
infrequently, using more of its time doing computation than
an I/O-bound process uses. It is important that the long-term scheduler
select a good process mix of I/O-bound and CPU-bound processes.
Short-term scheduler or CPU scheduler selects among the process that
are ready to execute and allocates the CPU to one of them.
This scheduler executes less frequently than long term scheduler.
Because the short term scheduler must select a new process for the CPU
quite frequently. A process may execute for only a few milliseconds
before waiting for an I/O request. Because of the short duration of time
between executions, the short term scheduler must be very fast.
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

2 | Page

Medium-term scheduler: Some OS such as a time sharing system may


introduce an additional intermediate level of scheduling. The key idea
behind a medium term scheduler is that sometimes is advantageous to
remove processes from memory and reduce the degree of multiprogramming. At some later time, the process can be reintroduced into
Memory and its execution can be continued where it left off. This
scheme is called swapping. The process is swapped out and swapped in
later by the medium-term scheduler. Swapping may be necessary to
improve the process mix, or because a change in memory requirements
has overcommitted available memory, requiring memory to be freed up.
2. What are the criteria for CPU scheduling?
Different CPU scheduling algorithms have different properties and
may favor one class of processes over another. In choosing which
algorithm to use in a particular situation, we must consider the
properties of the various algorithms.
Criteria that are used include the following:
CPU utilization: We want to keep the CPU as busy as possible.
CPU utilization may range from 0 to 100 percent.
Throughput: If the CPU is busy executing processes, then work is
being done. One measure of work is the number of processes that
are completed per time unit, called throughput.
Turnaround time: The interval from the time of submission of a
process to the time of completion is. The turnaround time.
Turnaround time is the sum of the periods spent waiting to get into
memory, waiting in the ready queue, executing on the CPU, and
doing I/O.
Waiting time: The CPU scheduling algorithm does not affect the
amount of time during which a process executes or does I/O; it
affects only the amount of time that a process spends waiting in the
ready queue. Waiting time is the sum of the periods spent waiting
in the ready queue.

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

3 | Page

Response time: Another measure is the time from the submission


of a request until the first response is produced. This measure,
called response time, is the amount of time it takes to start
responding, but not the time that it takes to output that response.
The turnaround time is generally limited by the speed of the output
device.
3. With a neat diagram explain process state?
A process is an entity with a program counter specifying the next
instruction to be executed and a set of associated resources.
Process State: As a process executes, it changes state. Each process
may be in one of the following state:
New: The process is being executed.
Running: Instructions are being executed.
Waiting: The process is waiting for some event to occur.
Ready: The process is waiting to be assigned to a processor.
Terminated: The process has finished execution.

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

4 | Page

4. How a process can be controlled by a process control block?


Each process is represented in the OS by a process control block
(PCB), also called a task control block. A PCB is shown in figure below:

It contains many pieces of information associated with a specific process


include these:
Process state: The state may be new, ready, running, waiting,
halted, and be executed for this process.
Program counter: The counter indicates the address of the next
instruction to be executed for this process.
CPU registers: The registers vary in number and type, depending
on the computer architecture. They include accumulators, index
registers, stack pointers, and general-purpose registers, plus any
condition-code information. Along with the program counter, this
state information must be saved when an interrupt occurs, to allow
the process to be continued correctly afterward.
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

5 | Page

CPU scheduling information: This information includes a


process priority, pointers to scheduling queues, and any other
scheduling parameters.
Memory-management information: This information may
include such information as the value of the base and limit
registers, the page tables, or the segment tables depending on the
memory system used by the operating system.
Accounting information: This information includes the amount of
CPU and real time used, time limits, account numbers, job or
process numbers, and so on.
I/O status information: The information includes the list of I/O
devices; (such as tape drives) allocated to this process, a list of
open files, and so on.

5. With a neat diagram explain process scheduling using queuing


diagram?
Process Scheduling: The objective of multiprogramming is to
have some process running at all times, to maximize CPU utilization.
Scheduling Queues: As processes enter the system, they are put into a
job queue. This queue consists of all processes in the system. The
processes that are residing in main memory and are ready and waiting to
execute are kept on a list called the ready queue.
Ready queue is generally stored as a linked list; a ready-queue
header will contain pointers to the first and last PCBs in the list. "Each
PCB has a pointer field that points to the next process in the ready
queue. The list of processes waiting for a particular I/O device is called a
device queue.
A new process is initially put in the ready queue. It waits in the
ready queue until it is selected for execution and is given the CPU. Once
the process is allocated the CPU and is executing, one of several events
could occur:
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

6 | Page

The process could issue an I/O request and then be placed in an I/O
queue.
The process could be removed forcibly from the CPU, as the result
of an interrupt and be put back in the ready queue.

6. Explain priority scheduling algorithm with an example?


The SJF algorithm is a special case of the general priority
scheduling algorithm. A priority is associated with each process
with the highest priority. Equal priority process is scheduled in
FCFS order. An SJF algorithm is simply a priority algorithm where
the priority (P) is the inverse of the (predicate) next CPU burst, the
lower the priority and vice versa. As an example, consider the
following set of processes, assumed to have arrived at time 0 in the
order P1, P2..P5 with the length of the CPU burst given in
milliseconds.

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

7 | Page

Using priority scheduling, we would schedule these process


according to the following Gantt chart:

Average waiting time = (0+1+6+16+18+19) /5 = 8.2 ms


7. Explain multilevel feedback queues scheduling.
The multilevel queue-scheduling algorithm, in contrast,
allows a process to move between queues. The idea is to separate
processes accordingly to the characteristic of their CPU burst. If a
process uses too much CPU time, it will be moved to a lowerpriority queue. This schema leaves I/O bound interactive processes
in the higher-priority queues. In addition, a process that waits too
long in a lower-priority queue may be used to a lower priority
queue. This form of aging prevents starvation.

8. Define thread. What are the benefits of multithreaded


programming?
A thread is a light weight process is a basic unit of CPU
utilization and consist of program counter, register set and a stack
space. It shares with peer threads its code section, data section and
operating system resources such as open files and signals
collectively known as task. The benefits of multithreaded
programming can be broken down into four major categories:
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

8 | Page

Responsiveness: Multithreading an interactive application


may allow a program to continue running even if a part of it
is performing a lengthy operations, thereby increasing
responsiveness to the user.
Resource Sharing: Process may only share resources
through techniques such as shared memory or message
passing. Such technique must be explicitly arranged by the
programmer.
Economy: Allocating memory and resources for process
creation is costly, because their address share the resources of
the process to which they belong, it is more economical to
create and context switch thread.
Scalability: The benefits of multithreading can be greatly
increased in a multiprocessor architecture, where their
address may be running in parallel processors. A single
threaded process can only run on one processor, regardless
how many are available.

9. Explain Round Robin scheduling algorithm with an example.


The round-robin (RR) scheduling algorithm is designed especially
for timesharing systems. It is similar to FCFS scheduling, but
preemption is added to switch between processes. A small unit of time,
called a time quantum, or time quantum is designed, a time quantum is
generally from 10 to 100 milliseconds. The ready queue is treated as a
circular queue. The CPU scheduler goes around the ready queue,
allocating the CPU to each process for a time interval of up to 1 time
quantum.
To implement RR scheduling, we keep the ready queue as a FIFO
queue of processes. New processes are added to the tail of the ready

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

9 | Page

queue. The CPU scheduler picks the first process from the ready queue,
sets a timer to interrupt after 1 time quantum, and dispatches the process.
If the process is having CPU burst of less than 1 time quantum, the
process will release the CPU voluntarily. The scheduler will then
proceed to the next process in the ready queue. If the CPU burst is
longer than 1 time quantum times will go off and will cause an interrupt
to the OS. A context switch will be executed and the processes will be
put at the tail of the ready queue. The CPU schedulers will then select
the next process in the ready queue. The average waiting time is very
long.
Eg.

Quantum time will be 4


Gantt chart

Average waiting time = (10+0+7) /3 = 17/3 = 5.66 ms


10. Discuss FCFS and SJF CPU scheduling with example and also
compare the same.
FCFS: The simplest form of disk scheduling is, of course the
first-come, first served algorithm. This algorithm is intrinsically fair, but
generally does not provide the fastest service. With this scheme the
process that request first is allocated in the CPU first. The
implementation of FCFS policy is easily managed with a FIFO queue.
When a process enters the ready queue, its PCB is linked onto the
tail of the queue. When the CPU is free it is allocated to the process at
the head of the queue. The running process is then removed from the
queue. The code of FCFS scheduling is simple to write and understand.
Eg.
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

10 | P a g e

If the processes arrive in the order P1, P2, P3 and served in FCFS order,
we get the result in the following Gantt chart

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


If the processes arrived in the order P2, P3, P1 then the result will be,
Average waiting time:

SJF (Shortest job first scheduling): A different approach to CPU


scheduling is the shortest job first scheduling with each process the
length of latters next CPU burst. When the CPU is available it is
assigned to a process that has the smallest next CPU burst. If two
process have the same length next CPU burst, FCFS scheduling is used
to break the tie.
Note that a more appropriate term would be the shortest next CPU
burst, because the scheduling done by examining the length of the next
CPU burst of a process rather than its total length.
Eg. Consider the following set of processes with the length of CPU-burst
time given in milliseconds.

Using SJF scheduling we should schedule these processes according to


the following Gantt chart

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

11 | P a g e

Average waiting time = (3+16+9+0) /4 = 7 ms


If we were using the FCFS scheduling scheme, then the average waiting
time would be

Average waiting time = (0+6+14+21) /4 = 10.25 ms


The SJF algorithm may be preemptive or non preemptive. The choice
arises when a new process arrives at the ready queue while the previous
process is executing. A preemptive SJF algorithm will preempt the
currently executing process, where as a non-preemptive SJF algorithm
will allow the currently running process to finish its CPU burst.
Preemptive SJF scheduling is sometimes called shortest remaining
time first scheduling.
Eg.

Average waiting time = [ (10-1)+(1-1)+(5-3) ] /4 = 26/4 =6.5 ms


11. Consider the following set of processes, with a length of CPUburst time given in milliseconds.

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

12 | P a g e

Draw Gantt chart and find the average waiting time using SJF
scheduling?
SJF: Shortest job first come
Non-preemptive

Average access time = (10+16+0+7) /4 = 33/4 = 8.25 ms


Preemptive

Average waiting time =[ (10-2)+(16-1)+(6-3)+(3-3) ] /4 =26/4= 6.5 ms


12. Consider the following set of processes, with a length of CPU
time given in milliseconds.

Processes have arrived in order P0.P1.P2.P3 at time t=0. Schedule


the process under Round Robin scheduling using time quantum of 3
ms and SJF. Find the average waiting time using two algorithms.
Round Robin scheduling
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

13 | P a g e

Quantum time = 3 ms

Average waiting time = (0+22+25+21) /4 = 17 ms


SJF: Non-preemptive

Average access time = (0+10+6+17) /4 = 8.25 ms


SJP: Preemptive

Average waiting time = (4+17+10+0) /4 = 31/4 = 7.75 ms


13. Consider the following set of processes

Schedule the process under SJF algorithm both in preemptive mode


and non preemptive mode and also compare the average time.
SJF: Preemptive
Gantt chart

Average waiting time


Waiting time of P0: (4-1)
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

14 | P a g e

Waiting time of P1: (3-1)


Waiting time of P2: (2-2)
Waiting time of P3: (7-3)
AWT = (3+2+0+4) /4 =9/4 =2.25 ms
SJF: Non-preemptive
Gantt chart

Waiting time of P0: (0)


Waiting time of P1: (5-1)
Waiting time of P2: (4-2)
Waiting time of P3: (7-3)
AWT = (0+4+2+4) /4 = 10/4 = 2.5 ms
14. Explain Co-operative process.
The concurrent processes executing in the operating system may
be either independent processes or cooperating processes. A process is
independent if it cannot affect or be affected by the other processes
executing in the system. On the other hand, a process is cooperating if it
can affect or be affected by the other processes executing in the system.
Clearly, any process that shares data with other processes is a
cooperating process.
We may want to provide an environment that allows process
cooperation for several reasons.
Information sharing: Since several users may be interested in the
same piece of information , we must provide an environment to allow
concurrent access to these types of resources.
Computation speedup: If we want a particular task to run faster, we
must break it into subtasks, each of which will be executing in parallel
with the others.
OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

15 | P a g e

Modularity: We may want to construct the system in a modular


fashion, dividing the system functions into separate processes or threads.
Convenience: Even an individual user may have many tasks to work
on at one time. For instance, a user may be editing, printing, and
compiling in parallel.

OPERATING SYSTEMS

NOMAN MOHAMED HANIF III SEMESTER (B.C.A.)

You might also like