ñoàng thôøi cuøng hoaït ñoäng trong moät khoâng gian ñòa chæ => cuøng chia seû taøi nguyeân. (server, OS, caùc chöông trình tính toaùn song song : nhaân ma traän…)[r]
(1)QUẢN LÝ TIẾN TRÌNH
(2)MỤC TIÊU
Mô hình Tiến trình
Trạng thái tiến trình
Thông tin quản lý tiến trình
Quá trình điều phối tiến trình
Các thuật tốn điều phối
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(3)ĐA NHIỆM VÀ ĐA CHƯƠNG ???
Vì muốn xử lý đồng thời nhiều cơng việc máy tính ?04/19
/2
02
1
3
Tr
n H
nh N
hi
ầ
ạ
IO CPU IO
CPU
Job 1
CPU
Job 1
CPU IO
IO CPU IO
CPU
Job 2
(4)ĐA NHIỆM VÀ ĐA CHƯƠNG ???
Vì muốn xử lý đồng thời nhiều cơng việc máy tính ?04/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Job : kq = a*b + c*d;
CPU #1 CPU #1 CPU #2
x = a * b y = c * d
kq = x+y
x = a * b
y = c *d
kq = x+y
(5)ĐA NHIỆM VÀ ĐA CHƯƠNG
Multitasking (đa nhiệm): cho phép nhiều tác
vụ/ cơng việc xử lý đồng thời
Người dùng mong muốn HĐH đa nhiệm Nhưng: Máy tính thường có CPU?
Multiprogramming (đa chương): kỹ thuật cho
phép nhiều chương trình thực đồng thời (trên CPU)
Giả lập nhiều CPU ảo từ CPU thật
phép thi hành nhiều chương trình đồng thời
Ảo hoá cách nào? Xây dựng thuật
tốn để ln chuyển CPU chương trình
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(6)XỬ LÝ ĐỒNG HAØNH, NHỮNG KHÓ
KHĂN ?
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
- Tài nguyên giới hạn, ứng dụng “vô hạn”
- Nhiều hoạt động đan xen
??? Phân chia tài nguyên ? ??? Chia sẻ tài nguyên ? ??? Bảo vệ?
Excel
Visual C++
CDplayer
(7)GIẢI PHÁP
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
- “Chia để trị”, cô lập hoạt động. - Mỗi thời điểm
giải yêu cầu.
- o hố tài ngun: biến thành nhiều
Winword
CDPlayer
Visual C ++
(8)GIẢI PHÁP
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
(9)KHÁI NIỆM TIẾN TRÌNH (PROCESS)
Tiến trình chương trình
q trình thực
Mỗi tiến trình sở hữu
Một CPU (ảo) riêng
Một khơng gian nhớ riêng
Chiếm giữ số tài nguyên hệ thống
Vd: Một chương trình Word chạy
2 lần tạo tiến trình khác nhau:
Microsoft Word – [Bai tap1.doc]
Microsoft Word – [Bai tap2.doc]
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(10)HAI PHẦN CỦA TIẾN TRÌNH
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
int a;
int a;
P1
P2
(11)TRẠNG THÁI TIẾN TRÌNH?
Tại thời điểm, tiến trình
trạng thái sau:
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
ready
Rs CPU
running
Rs CPU
blocked
Rs
Nhận CPU Trả CPU
(12)KHỐI QUẢN LÝ TIẾN TRÌNH
Định danh (Process ID) Tr ng thaùi ti n trìnhạ ế Ng c nh ti n trìnhữ ả ế
Tr ng thái CPUạ
B x lý (cho máy nhi u CPU)ộ ề B nh chínhộ
Tài nguyên s d ng/t o l pử ụ ậ Thông tin giao ti pế
Ti n trình cha, ti n trình conế ế Độ u tiêên
Thông tin th ng kêố
Thời gian sử dụng CPU
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
pid
State
(State, details)
Context
(IP, Mem, Files…)
Scheduling statistic
Relatives
(13)KHỐI QUẢN LÝ TIẾN TRÌNH – VÍ DỤ
typedef struct machpcb { char mpcb_frame[REGOFF];
struct regs mpcb_regs; // user's saved registers
struct rwindow mpcb_wbuf[MAXWIN]; //user window save buffer char *mpcb_spbuf[MAXWIN]; //sp's for each wbuf
int mpcb_wbcnt; //number of saved windows in pcb_wbuf struct v9_fpu *mpcb_fpu; // fpu state
struct fq mpcb_fpu_q[MAXFPQ]; // fpu exception queue int mpcb_flags; // various state flags int mpcb_wocnt; // window overflow count int mpcb_wucnt; // window underflow count kthread_t *mpcb_thread; // associated thread } machpcb_t;
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(14)CAÙC THAO TÁC TRÊN TIẾN TRÌNH
Tạo lập tiến trình
Kết thúc tiến trình
Thay đổi trạng thái tiến trình :
Assign() Block() Awake() Suspend() Resume()
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(15)TẠO LẬP TIẾN TRÌNH
Các tình :
Khởi động batch job User logs on
Kích hoạt service (print )
Process gọi hàm tạo tiến trình khác
Các tiến trình tạo tiến trình con,
hình thành tiến trình hệ thống
Các tiến trình tạo thừa
hưởng tài nguyên từ cha, hay cấp tài nguyên
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(16)KẾT THÚC TIẾN TRÌNH
Tình :
Tiến trình xử lý xong lệnh cuối hay gọi exit () Kết thúc Batch job , Halt instruction
User logs off
Do lỗi chương trình
Một tiến trình kết thúc tiến trình khác
nếu có ID (định danh) tiến trình
Ví dụ: kill –-s SIGKILL 1234: huỷ tiến trình có ID
1234
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(17)MÔ HÌNH ĐA TIẾN TRÌNH
(MULTIPROCESSES)
Hệ thống tập tiến trình hoạt
động đồng thời
Các tiến trình độc lập với => khơng có
sự trao đổi thơng tin hiển nhiên
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
winword
Visual C CDplayer Excel
(18)VÍ DỤ MÔ HÌNH ĐA TIẾN TRÌNH
Giờ thi lý thuyết mơn Hệ Điều hành
Mỗi sinh viên tiến trình :
Cùng làm => Hoạt động đồng hành
Có thi , bút, giấy…riêng => Tài nguyên riêng biệt Độc lập => Không trao đổi (về nguyên tắc)
Thực hành môn Hệ Điều hành
sinh viên/nhóm Hợp tác đồng hành Nhu cầu trao đổi
Dùng tài nguyên chung
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(19)MÔ HÌNH ĐA TIỂU TRÌNH
(MULTITHREADS)
Nhiều tình cần có nhiều dịng xử lý
đồng thời hoạt động không gian địa => chia sẻ tài nguyên
(server, OS, chương trình tính tốn song song : nhân ma trận…)
Khái niệm : tiểu trình (thread)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
(20)VÍ DỤ MÔ HÌNH ĐA TIỂU TRÌNH
Thực hành mơn Hệ Điều hành
Mỗi nhóm sinh viên tiến
trình :
Mỗi sinh viên tiểu trình
Cùng làm => Hoạt động đồng hành
Cóù thực hành chung => Tài nguyên
chung
Trao đổi với
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(21)TIỂU TRÌNH VS TIẾN TRÌNH
Tiểu trình : dịng xử lý
Tiến trình :
khơng gian địa nhiều tiểu trình
Các tiến trình độc lập
Các tiểu trình
tiến trình khơng có bảo vệ lẫn (cần thiết ? )
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P1
int a;
T1 T2 T
(22)TIỂU TRÌNH HẠT NHÂN (KERNEL
THREAD)
Khái niệm tiểu trình xây dựng bên hạt
nhaân
Đơn vị xử lý tiểu trình
Ví dụ :
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
T1
T2
Kernel Thread System call
(23)PHAÂN CHIA CPU ?
CPU vật lý : làm để tạo ảo giác
tiến trình sở hữu CPU riêng ? Luân chuyển CPU tiến trình
thành phần đảm nhiệm vai trị điều phối:
Scheduler chọn tiến trình Dispatcher chuyển CPU cho
tiến trình chọn
(24)CÁC DANH SÁCH TIẾN TRÌNH
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Ready List
P1
P4
P5
Waiting Lists
R1
P2
P7
P10
P3
(25)SCHEDULER - NHIỆM VỤ
Ra định chọn tiến trình để cấp
phát CPU :
Ứng cử viên = {Các tiến trình ready list} tiến trình : CPU rảnh rỗi (idle)!
tiến trình : khơng cần suy nghĩ nhiều,
khoâng ?
>1 : chọn ? Cần có thuật tốn điều
phoái
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(26)DISPATCHER - NHIỆM VỤ
Nhiệm vụ Dispatcher: Chuyển đổi ngữ cảnh
Xét ví dụ
Tiến trình A dùng CPU chút bị HĐH thu hồi
CPU
HĐH cấp CPU cho B dùng chút, HĐH thu hồi lại
CPU
HĐH cấp CPU trở lại cho A
Giá trị ghi lần chuyển đổi CPU ?
Kịch :
Lưu ngữ cảnh tiến trình hành
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(27)04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(28)DISPATCHER - THẢO LUẬN
Bản thân HĐH phần mềm, nghĩa sử
dụng CPU để chạy
Câu hỏi: Khi tiến trình A chiếm CPU, làm
nào HĐH thu hồi CPU lại ? (vì lúc HĐH không giữ CPU)
Ép buộc NSD trả CPU lại cho HĐH ? Có khả
thi ?
Máy tính phải có CPU, dành riêng cho HĐH ?
HĐH sử dụng ngắt đồng hồ (ngắt điều phối) để kiểm sốt
hệ thống
Mỗi có ngắt đồng hồ, HĐH kiểm tra xem có cần thu hồi CPU từ
1 tiến trình lại hay không ?
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(29)LỰA CHỌN TIẾN TRÌNH ?
Tác vụ Scheduler
Mục tiêu ?
Sử dụng CPU hiệu
Đảm bảo tất tiến trình tiến triển xử
lý
Tiêu chuẩn lựa chọn ?
Tất tiến trình ?
Đề xuất độ ưu tiên cho tiến trình ?
Thời điểm lựa chọn ? (Thời điểm kích hoạt
Scheduler())
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(30)MỤC TIÊU ĐIỀU PHỐI
Hiệu qủa (Efficiency)
Thời gian
Đáùp ứng (Response time)
Hoàn tất (Turnaround Time = Tquit -Tarrive): Chờ (Waiting Time = T in Ready ) :
Thông lượng (Throughput = # jobs/s )
Hiệu suất Tài nguyên Chi phí chuyển đổi
Công ( Fairness): Tất tiến trình
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(31)HAI NGUYÊN TẮC ĐIỀU PHỐI CPU
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Không độc quyền
while (true) {
interrupt Pcur
save state Pcur
Scheduler.NextP() Pnext
load state pnext
resume Pnext Độc quyền
while (true) {
save state Pcur
Scheduler.NextP() Pnext
load state pnext
resume Pnext
wait for Pnext
(32)THỜI ĐIỂM RA QUYẾT ĐỊNH ĐIỀU
PHỐI
Điều phối độc quyền (non-preemptive
scheduling): tiến trình chọn có quyền độc chiếm CPU
Các thời điểm kích hoạt Scheduler
P cur kết thúc P
cur : running ->blocked
Điều phối không độc quyền (preemptive
scheduling): tiến trình chọn bị cướp CPU tiến trình có độ ưu tiên cao
Các thời điểm kích hoạt Scheduler
P
cur kết thúc
P : Running -> Blocked
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(33)ĐÁNH GIÁ CHIẾN LƯỢC ĐIỀU PHỐI
Sử dụng đại lượng đo :
Turn- around time = Tquit –Tarrive: từ lúc vào HT
đến hoàn tất
Waiting time = T in Ready
Xét trường hợp trung bình
N tiến trình
Avg Turn- around time = (Σ Turn- around time Pi )/N
Avg Waiting time = (Σ Waiting time Pi )/N
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(34)CÁC CHIẾN LƯỢC ĐIỀU PHỐI
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
FIFO (FCFS)
Xoay vòng (Round Robin)
Theo độ ưu tiên
Công việc ngắn (SJF)
(35)FCFS (FIRST COMES FIRST
SERVED)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Tiến trình vào RL lâu
nhất chọn trước
Theo th t vaøo RLứ ự Độc quy nề
A B
C
CPU
Ready List
CPU
B C
Ready List
CPU
C
(36)MINH HOÏA FCFS
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TarriveRL CPU burst
P1 0 24
P2 1 3
P3 2 3
P TT WT
P1 24 0
P2 27-1 24-1
P3 30-2 27-2
0: P1 vào RL 24: P1 kết thúc
AvgWT = (23+25)/3 = 16
P1 P2 P3
(37)NHẬN XÉT FCFS
Đơn giản
Chịu đựng tượng tích lũy thời gian chờ
Tiến trình có thời gian xử lý ngắn đợi tiến trình
có thời gian xử lý dài
Ưu tiên tiến trình cpu-bounded
Có thể xảy tình trạng độc chiếm CPU
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(38)ĐIỀU PHỐI ROUND ROBIN (RR)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
A B
C
CPU
Ready List
A chiếm CPU q ms
B C
A
CPU
Ready List
B giao quyền sử dụng CPU trong q ms kế tiếp
Ready List
Điều phối theo nguyên tắc FCFS
Mỗi tiến trình sử dụng lượng q cho
mỗi lần sử dụng CPU Quantum/
(39)MINH HOÏA RR, Q=4
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
39 P TarriveRL CPU burst
P1 0 24
P2 1 3
P3 2 3
P TT WT
P1 30 0+(10-4)
P2 7-1 4-1
P3 10-2 7-2
AvgWT = (6+3+5)/3 = 4.66
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30 0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (đợi) 0:02 P3 vào (đợi)
(40)MINH HOÏA RR, Q=4
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TarriveRL CPU burst
P1 0 24
P2 4 3
P3 12 3
P1 P1 P2 P1 P3 P1 P1 P1
0 4 8 11 15 18 22 26 30 RL
0:00 P1 0:8 P2 P1
?
Tranh chấp vị trí RL :
“Chung thuûy”
1. P : running -> ready
2. P : blocked -> ready
3. P: new ->ready
Không phải luôn có thứ
tự điều phối P1 P2 P3 P4P1 P2 P3 P4
0:11 P1
(41)ROUND ROBIN
Khi kết thúc lượt sử dụng CPU
Hết thời lượng q ms (quantum) cho phép Tiến trình kết thúc
Tiến trình bị khóa
Ch Rsờ
Ch bi n cờ ế ố
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(42)ROUND ROBIN – NHẬN XÉT
Sử dụng chế không độc quyền
Mỗi tiến trình khơng phải đợi q lâu
Loại bỏ tượng độc chiếm CPU
Hiệu ?
Phụ thuộc vào việc chọn lựa quantum q
q quaùù l n ???ớ q quaù nh ???ỏ
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Bao lâu ?
Giảm tíùnh tương tác
(43)ĐIỀU PHỐI VỚI ĐỘ ƯU TIÊN
04
/19
/2
02
1
43
Tr
n H
nh N
hi
ầ
ạ
Phân bi t ti n trình quan tr ng >< ti n trình bình thệ ế ọ ế ường?
WinAmp
độ ưu tiên: cao (3)
Outlook
độ ưu tiên: thấp (-3)
WinWord
độ ưu tiên: trung bình (0)
Đ
ộ ư
u
ti
ên
(44)ĐIỀU PHỐI VỚI ĐỘ ƯU TIÊN
Cách tính độ ưu tiên?
Hệ thống gán: CPU times,… Người dùng gán tường minh
Tính chất độ ưu tiên :
Tĩnh Động
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(45)VÍ DỤ: ĐỘ ƯU TIÊN CỦA HĐH
WINNT
WinNT gán cho tiến trình độ ưu tiên có giá
trị & 31
(độ ưu tiên nhỏ nhất): dành riêng cho trạng thái
system idle
Độ ưu tiên phân theo nhóm: Realtime : (16 - 31)
Thích hợp cho tiến trình thời gian thực
Dành riêng cho tiến trình người quản trị hệ thống Dynamic : (0 - 15)
Thích hợp cho tiến trình người dùng thường Chia thành mức :
high (11 - 15) normal (6 - 10)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(46)BIỂU ĐỒ PHÂN BỐ ĐỘ ƯU TIÊN CỦA
WINNT
04 /19 /2 02 Tr n H nh N hi ầ 24 realtime 13 high 8 normal dynamic time-critical realtime idle realtime time-critical 15 dynamic levels 1-15 16 31 realtime levels 16-31 lowest (-2) below normal (-1)normal (0) above normal (+1)
highest (+2)
(47)NGUYÊN TẮC ĐIỀU PHỐI
Độc quy nề
L t s d ng CPU k t thuùc khi: ượ ụ ế
ti n trình k t thúc,ế ế ti n trình b khóaế ị
Không c quy nđộ ề
L t s d ng CPU k t thuùc khi: ượ ụ ế
ti n trình k t thúc, ế ế ti n trình b khóa, ế ị
cóti n trình với u tiên cao h n vào RLế độ
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(48)ĐỘ ƯU TIÊN – KHÔNG ĐỘC QUYỀN
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TRL Priority CPU burst
P1 0 0 24
P2 1 2 3
P3 2 1 3
P TT WT
P1 30 0+(7-1)
P2 4-1 0
P3 7-2 4-2
AvgWT = (6+0+2)/3 = 2.66
0: P1 vào, P1 dùng CPU
1: P2 vào (độ ưu tiên cao P1) P2 dành quyền dùng CPU
4: P2 kết thúc, P3 dùng CPU 7: P3 dừng, P1 dùng CPU 30: P1 dừng
P1 P3 P1
0 30
P2
4
1 7
P2
(49)ĐỘ ƯU TIÊN - KHÔNGĐỘC QUYỀN - NHẬN
XÉT
Số phận tiến trình có độ ưu tiên thấp?
Chờ lâu, lâu, lâu
Giải quyết: tăng độ ưu tiên cho tiến trình chờ lâu hệ thống (Aging)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
(50)SHORTEST JOB FIRST (SJF)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P3
(cần chu kỳ)
P1
(cần chu kỳ)
P2
(cần chu kỳ) Ngắn
Ready List
CPU
p
= thời_gian_còn_lại(Process
)
(51)MINH HỌA SJF (ĐỘC QUYỀN)(1)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TarriveRL CPU burst
P1 0 24
P2 1 3
P3 2 3
P TT WT
P1 24 0
P2 27-1 24-1
P3 30-2 27-2
AvgWT = (23+25)/3 = 16
0:00 P1 vào, P1 dùng CPU 0:01 P2 vào RL
0:24 P1 kết thúc, P2 dùng CPU 0:27 P2 dừng, P3 dùng CPU
P1 P2 P3
(52)MINH HỌA SJF (ĐỘC QUYỀN)(2)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TarriveRL CPU burst
P1 0 24
P2 1 3
P3 1 2
P TT WT
P1 24 0
P2 29-1 26-1
P3 26-1 24-1
AvgWT = (24+22)/3 = 15.33
0:00 P1 vào, P1 dùng CPU 0:24 P1 kết thúc, P3 dùng CPU
P1 P3 P2
(53)MINH HỌA SJF (KHÔNGĐỘC QUYỀN)
(1)
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
P TarriveRL CPU burst
P1 0 24
P2 1 3
P3 2 3
P TT WT
P1 30 0+(7-1)
P2 4-1 0
P3 7-2 4-2
AvgWT = (6+0+2)/3 = 2.66
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (độ ưu tiên cao P1)
0:4 P2 kết thúc, P3 dùng CPU 0:7 P3 dừng, P1 dùng CPU
P1 P3 P1
0 30
P2
4
(54)MINH HỌA SJF (KHÔNGĐỘC QUYỀN)
(2)
04 /19 /2 02 Tr n H nh N hi ầP TarriveRL CPU burst
P1 0 24
P2 1 5
P3 3 4
P TT WT
P1 33 0+(10-1)
P2 5 0
P3 7 6-3
AvgWT = (9+0+3)/3 = 4
0:00 P1 vào, P1 dùng CPU
0:01 P2 vào (độ ưu tiên cao P1) P2 dành quyền dùng CPU
0:6 P2 kết thúc, P3 dùng CPU 0:10 P3 dừng, P1 dùng CPU 0:33 P1 dừng
P1 P3 P1
(55)MINH HOÏA SJF (NHIỀU CHU KỲ
CPU)
04 /19 /2 02 Tr n H nh N hi ầ 55 P TarriveRL CPU1burst IO1 R IO1 T CPU2 burst IO2 R IO2 T
P1 0 5 R1 2 2 R2 2
P2 2 1 R1 10 1 R1 4
P3 10 8 R2 1 0 Null 0
(56)ĐIỀU PHỐI VỚI NHIỀU MỨC ƯU TIÊN
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Tổ chức N RL
ứng với nhiều mức ưu tiên
Mỗi RLi áp dụng
một chiến lược điều phối thích hợp
Giữa RL áp
dụng điều phối theo độ ưu tiên :
Đ u tiênộ ư
1
…
2
n
C
P
(57)KHUYẾT ĐIỂM
04
/19
/2
02
1
Tr
n H
nh N
hi
ầ
ạ
Starvation !!!
Giải pháp Aging :
Chờ lâu : chuyển lên
RL với độ ưu tiên cao
Chiếm CPU lâu :
chuyển xuống RL với độ ưu tiên thấp
2
1
CPUCh lâu quáờ
(58)Tiến trình
Thời điểm vào Ready
list
CPU1
IO laàn 1
CPU2
IO lần 2 Thời
gian
Thiết bị
Thời gian
Thiết bò
P1 0 8 5 R1 1 0 Null
P2 2 1 8 R2 2 5 R1
P3 10 6 5 R1 2 3 R2