0% found this document useful (0 votes)
217 views22 pages

Algoritma Penjadwalan Proses

- For an airline, optimize for revenue - prioritize high-paying passengers to fill the plane. - For a sweatshop, optimize for throughput - prioritize the fastest workers to maximize output. - For a restaurant, optimize for wait time - prioritize shorter orders to minimize customer wait. - For the DMV, optimize for fairness - prioritize customers based on arrival time to be equitable. - For finding a partner, optimize for skill match - prioritize those with complementary abilities. - For a software deadline, optimize for timeliness - prioritize critical paths to ensure on-time delivery.

Uploaded by

nuwakalan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
217 views22 pages

Algoritma Penjadwalan Proses

- For an airline, optimize for revenue - prioritize high-paying passengers to fill the plane. - For a sweatshop, optimize for throughput - prioritize the fastest workers to maximize output. - For a restaurant, optimize for wait time - prioritize shorter orders to minimize customer wait. - For the DMV, optimize for fairness - prioritize customers based on arrival time to be equitable. - For finding a partner, optimize for skill match - prioritize those with complementary abilities. - For a software deadline, optimize for timeliness - prioritize critical paths to ensure on-time delivery.

Uploaded by

nuwakalan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

ALGORITM PENJADWALAN PROSES

SCHEDULING ALGORITHMS FCFS


First-come First-served (FCFS) (FIFO)
 Jobs are scheduled in order of arrival
 Non-preemptive
Problem:
 Average waiting time depends on arrival order

P1 P2 P3
time
0 16 20 24
P2 P3 P1
0 4 8 24
Advantage: really simple!
CONVOY EFFECT
A CPU bound job will hold CPU until done,
 or it causes an I/O burst
 rare occurrence, since the thread is CPU-bound
 long periods where no I/O requests issued, and CPU held
 Result: poor I/O device utilization
Example: one CPU bound job, many I/O bound
 CPU bound runs (I/O devices idle)
 CPU bound blocks
 I/O bound job(s) run, quickly block on I/O
 CPU bound runs again
 I/O completes
 CPU bound still runs while I/O devices idle (continues…)
 Simple hack: run process whose I/O completed?
 What is a potential problem?
SCHEDULING ALGORITHMS LIFO
Last-In First-out (LIFO)
 Newly arrived jobs are placed at head of ready queue
 Improves response time for newly created threads

Problem:
 May lead to starvation – early processes may never get CPU
PROBLEM
You work as a short-order cook
 Customers come in and specify which dish they want
 Each dish takes a different amount of time to prepare
Your goal:
 minimize average time the customers wait for their food
What strategy would you use ?
 Note: most restaurants use FCFS.
SCHEDULING
Shortest JobALGORITHMS:
First (SJF) SJF
 Choose the job with the shortest next CPU burst
 Provably optimal for minimizing average waiting time

P1 P3 P2
0 15 21 24
PP2 2 PP3 3 P1
Problem:
0 3 to know 9the length of the next CPU burst
 Impossible 24
SCHEDULING ALGORITHMS SRTF
SJF can be either preemptive or non-preemptive
 New, short job arrives; current process has long time to execute

Preemptive SJF is called shortest remaining time first


P2

P3 P1
0 6 10 21

P3 P1 P2 P1
0 6 10 13 24
Shortest Job First Prediction
Approximate next CPU-burst duration
 from the durations of the previous bursts
 The past can be a good predictor of the future

No need to remember entire past history


Use exponential average:
tn duration of the nth CPU burst
n+1 predicted duration of the (n+1)st CPU burst
n+1 =  tn + (1- ) n
where 0    1
 determines the weight placed on past behavior
PRIORITY SCHEDULING
Priority Scheduling
 Choose next job based on priority
 For SJF, priority = expected CPU burst
 Can be either preemptive or non-preemptive

Problem:
 Starvation: jobs can wait indefinitely

Solution to starvation
 Age processes: increase priority as a function of waiting time
ROUND ROBIN
Round Robin (RR)
 Often used for timesharing
 Ready queue is treated as a circular queue (FIFO)
 Each process is given a time slice called a quantum
 It is run for the quantum or until it blocks
 RR allocates the CPU uniformly (fairly) across participants.
 If average queue length is n, each participant gets 1/n
RR WITH TIME QUANTUM = 20
Process Burst Time
P1 53
P2 17
P3 68
P4 24
The Gantt chart is:

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162


Higher average turnaround than SJF,
But better response time
TURNAROUND TIME W/ TIME QUANTA
RR: CHOICE OF TIME QUANTUM
Performance depends on length of the timeslice
 Context switching isn’t a free operation.
 If timeslice time is set too high
 attempting to amortize context switch cost, you get FCFS.
 i.e. processes will finish or block before their slice is up anyway

 If it’s set too low


 you’re spending all of your time context switching between threads.

 Timeslice frequently set to ~100 milliseconds


 Context switches typically cost < 1 millisecond

Moral:
Context switch is usually negligible (< 1% per timeslice)
unless you context switch too frequently and lose all productivity
SCHEDULING ALGORITHMS
Multi-level Queue Scheduling
Implement multiple ready queues based on job “type”
 interactive processes
 CPU-bound processes
 batch jobs
 system processes
 student programs

Different queues may be scheduled using different algos


Intra-queue CPU allocation is either strict or proportional
Problem: Classifying jobs into queues is difficult
 A process may have CPU-bound phases as well as interactive ones
MULTILEVEL QUEUE SCHEDULING
Highest priority
System Processes

Interactive Processes

Batch Processes

Student Processes
Lowest priority
SCHEDULING ALGORITHMS
Multi-level Feedback Queues
Implement multiple ready queues
 Different queues may be scheduled using different algorithms
 Just like multilevel queue scheduling, but assignments are not static
Jobs move from queue to queue based on feedback
 Feedback = The behavior of the job,
 e.g. does it require the full quantum for computation, or
 does it perform frequent I/O ?

Very general algorithm


Need to select parameters for:
 Number of queues
 Scheduling algorithm within each queue
 When to upgrade and downgrade a job
MULTILEVEL FEEDBACK QUEUES
Highest priority
Quantum = 2

Quantum = 4

Quantum = 8

FCFS

Lowest priority
A MULTI-LEVEL SYSTEM
I/O bound jobs
high

priority
CPU bound jobs

high
low timeslice
THREAD SCHEDULING
Since all threads share code & data segments
Option 1: Ignore this fact
Option 2: Gang scheduling
 run all threads belonging to a process together (multiprocessor only)
 if a thread needs to synchronize with another thread
 the other one is available and active
Option 3: Two-level scheduling:
 Medium level scheduler
 schedule processes, and within each process, schedule threads
 reduce context switching overhead and improve cache hit ratio
Option 4: Space-based affinity:
 assign threads to processors (multiprocessor only)
 improve cache hit ratio, but can bite under low-load condition
REAL-TIME SCHEDULING
Real-time processes have timing constraints
 Expressed as deadlines or rate requirements
Common RT scheduling policies
 Rate monotonic
 Just one scalar priority related to the periodicity of the job
 Priority = 1/rate
 Static
 Earliest deadline first (EDF)
 Dynamic but more complex
 Priority = deadline
Both require admission control to provide guarantees
POSTSCRIPT
The best schemes are adaptive.
To do absolutely best we’d have to predict the future.
 Most current algorithms give highest priority to those that need the least!

Scheduling become increasingly ad hoc over the years.


 1960s papers very math heavy, now mostly “tweak and see”
PROBLEM
What are metrics that schedulers should optimize for ?
 There are many, the right choice depends on the context

Suppose:
 You own an airline, have one expensive plane, and passengers waiting all
around the globe
 You own a sweatshop, and need to evaluate workers
 You are at a restaurant, and are waiting for food
 You are an efficiency expert, and are evaluating government procedures at
the DMV
 You are trying to find a project partner or a co-author
 You own a software company that would like to deliver a product by a
deadline

You might also like