Hệ điều hành 1 - Chương 4: Định thời CPU
lượt xem 10
download
Trong các hệ thống multitasking - Thực thi nhiều chương trình đồng thời làm tăng hiệu suất hệ thống. - Tại mỗi thời điểm, chỉ có một process được thực thi. Do đó, cần phải giải quyết vấn đề phân chia, lựa chọn process thực thi sao cho được hiệu quả nhất chiến lược định thời CPU. Định thời CPU - Chọn một process (từ ready queue) thực thi. - Với một multithreaded kernel, việc định thời CPU là do OS chọn kernel thread được...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Hệ điều hành 1 - Chương 4: Định thời CPU
- Chöông 4: Ñònh thôøi CPU Khoa KTMT 1
- Noäi dung Khaùi nieäm cô baûn Caùc boä ñònh thôøi – long-term, mid-term, short-term Caùc tieâu chuaån ñònh thôøi CPU Caùc giaûi thuaät ñònh thôøi – First-Come, First-Served (FCFS) – Round-Robin (RR) – Shortest Job First (SJF) vaø Shortest Remaining Time First (SRTF) – Priority Scheduling – Highest Response Ratio Next (HRRN) – Multilevel Queue – Multilevel Feedback Queue Khoa KTMT 2
- Khaùi nieäm cô baûn Trong caùc heä thoáng multitasking – Thöïc thi nhieàu chöông trình ñoàng thôøi laøm taêng hieäu suaát heä thoáng. – Taïi moãi thôøi ñieåm, chæ coù moät process ñöôïc thöïc thi. Do ñoù, caàn phaûi giaûi quyeát vaán ñeà phaân chia, löïa choïn process thöïc thi sao cho ñöôïc hieäu quaû nhaát → chieán löôïc ñònh thôøi CPU. Ñònh thôøi CPU – Choïn moät process (töø ready queue) thöïc thi. – Vôùi moät multithreaded kernel, vieäc ñònh thôøi CPU laø do OS choïn kernel thread ñöôïc chieám CPU. Khoa KTMT 3
- Caùc boä ñònh thôøi new new Long-term Long-term scheduling scheduling Medium-term suspended suspended scheduling Short-term ready ready ready ready scheduling running running Medium-term suspended suspended scheduling blocked blocked terminated blocked blocked terminated Khoa KTMT 4
- Caùc haøng ñôïi ñònh thôøi Khoa KTMT 5
- Caùc boä ñònh thôøi Long-term scheduling – Xaùc ñònh chöông trình naøo ñöôïc chaáp nhaän naïp vaøo heä thoáng ñeå thöïc thi – Ñieàu khieån möùc ñoä multiprogramming cuûa heä thoáng – Long term scheduler thöôøng coá gaéng duy trì xen laãn CPU-bound vaø I/O-bound process Medium-term scheduling – Söï chuyeån ñoåi döïa treân söï caàn thieát ñeå quaûn lyù multiprogramming – Ñöôïc thöïc hieän bôûi phaàn quaûn lyù boä nhôù vaø ñöôïc thaûo luaän ôû phaàn quaûn lyù boä nhôù. Khoa KTMT 6
- Caùc boä ñònh thôøi (tt) • Short term scheduling Xaùc ñònh process naøo trong ready queue seõ ñöôïc chieám CPU ñeå thöïc thi keá tieáp (coøn ñöôïc goïi laø ñònh thôøi CPU, CPU scheduling) Short term scheduler coøn ñöôïc goïi vôùi teân khaùc laø dispatcher Boä ñònh thôøi short-term ñöôïc goïi moãi khi coù moät trong caùc söï kieän/interrupt sau xaûy ra: – clock interrupt – I/O interrupt – operating system call, trap – signal Khoa KTMT 7
- Dispatcher* Dispatcher seõ chuyeån quyeàn ñieàu khieån CPU veà cho process ñöôïc choïn bôûi boä ñònh thôøi ngaén haïn Bao goàm: – Chuyeån ngöõ caûnh (söû duïng thoâng tin ngöõ caûnh trong PCB) – Chuyeån veà user mode – Nhaûy ñeán vò trí thích hôïp trong chöông trình öùng duïng ñeå khôûi ñoäng laïi chöông trình (chính laø program counter trong PCB) Coâng vieäc naøy gaây ra phí toån – Dispatch latency: thôøi gian maø dispatcher döøng moät process vaø khôûi ñoäng moät process khaùc Khoa KTMT 8
- Caùc tieâu chuaån ñònh thôøi CPU User-oriented – Response time: khoaûng thôøi gian process nhaän yeâu caàu ñeán khi yeâu caàu ñaàu tieân ñöôïc ñaùp öùng (time- sharing, interactive system) → cöïc tieåu – Turnaround time: khoaûng thôøi gian töø luùc moät process ñöôïc naïp vaøo heä thoáng ñeán khi process ñoù keát thuùc → cöïc tieåu – Waiting time: toång thôøi gian moät process ñôïi trong ready queue → cöïc tieåu System-oriented – processor utilization: ñònh thôøi sao cho CPU caøng baän caøng toát → cöïc ñaïi – fairness: taát caû process phaûi ñöôïc ñoái xöû nhö nhau – throughput: soá process hoaøn taát coâng vieäc trong moät ñôn vò thôøi gian → cöïc ñaïi. Khoa KTMT 9
- Hai yeáu toá cuûa giaûi thuaät ñònh thôøi Haøm choïn löïa (selection function): duøng ñeå choïn process naøo trong ready queue ñöôïc thöïc thi (thöôøng döïa treân ñoä öu tieân, yeâu caàu veà taøi nguyeân, ñaëc ñieåm thöïc thi cuûa process,…), ví duï • w = toång thôøi gian ñôïi trong heä thoáng • e = thôøi gian ñaõ ñöôïc phuïc vuï • s = toång thôøi gian thöïc thi cuûa process (bao goàm caû “e”) Cheá ñoä quyeát ñònh (decision mode): choïn thôøi ñieåm thöïc hieän haøm choïn löïa ñeå ñònh thôøi. Coù hai cheá ñoä – Non-preemptive Khi ôû traïng thaùi running, process seõ thöïc thi cho ñeán khi keát thuùc hoaëc bò blocked do yeâu caàu I/O – Preemptive Process ñang thöïc thi (traïng thaùi running) coù theå bò ngaét nöûa chöøng vaø chuyeån veà traïng thaùi ready bôûi heä ñieàu haønh Chi phí cao hôn non-preemptive nhöng ñaùnh ñoåi laïi baèng thôøi gian ñaùp öùng toát hôn vì khoâng coù tröôøng hôïp moät Khoa KTMT ñoäc chieám CPU quaù laâu.10 process
- Khaûo saùt giaûi thuaät ñònh thôøi load store add store CPU burst moät chu kyø read from file CPU-I/O Arrival Service wait for I/O I/O burst Process Time Time inc store 1 0 3 CPU burst write to file 2 2 6 wait for I/O I/O burst 3 4 4 load store 4 6 5 add store CPU burst 5 8 2 read from file wait for I/O I/O burst … Service time = thôøi gian process caàn CPU trong moät chu kyø CPU-I/O Process coù service time lôùn laø caùc CPU-bound process Khoa KTMT 11
- FirstCome FirstServed (FCFS) Cô cheá : Tieán trình naøo yeâu caàu CPU tröôùc seõ ñöôïc caáp phaùt CPU tröôùc; Process seõ thöïc thi ñeán khi keát thuùc hoaëc bò blocked do I/O FCFS laø non-preemptive algorithm Hieän thöïc : söû duïng haøng ñôïi FIFO (FIFO queues) – Tieán trình ñi vaøo ñöôïc theâm vaøo cuoái haøng ñôïi – Tieán trình ñöôïc löïa choïn ñeå xöû lyù ñöôïc laáy töø ñaàu cuûa queues 0 5 10 15 20 P1 P2 P3 P4 P5 run add Khoa KTMT 12
- FCFS Scheduling Ví duï : Giaû söû thöù töï vaøo cuûa caùc tieán trình laø P1, P2, P3 Thôøi gian chôø Process Burst Time P1 = 0; P1 24 P2 = 24; P2 3 P3 3 P3 = 27; Thôøi gian chôø trung bình (0+24+27)/3 = 17 Gantt Chart for Schedule P1 P2 P3 0 24 27 30 Khoa KTMT 13
- FCFS Scheduling Ví duï: Giaû söû thôøi gian vaøo cuûa caùc tieán trình laø P2, P3, P1 Thôøi gian chôø : P1 = 6; P2 = 0; P3 = 3; Process Burst Time Thôøi gian chôø trung bình P1 24 (6+0+3)/3 = 3 , toát hôn.. P2 3 P3 3 Gantt Chart for Schedule P2 P3 P1 0 3 6 30 Khoa KTMT 14
- ShortestJobFirst(SJF) Scheduling Ñònh thôøi bieåu coâng vieäc ngaén nhaát tröôùc Khi CPU ñöôïc töï do, noù seõ caáp phaùt cho tieán trình yeâu caàu ít thôøi gian nhaát ñeå keát thuùc ( tieán trình ngaén nhaát) Lieân quan ñeán chieàu daøi thôøi gian söû duïng CPU cho laàn tieáp theo cuûa moãi tieán trình. Söû duïng nhöõng chieàu daøi naøy ñeå laäp lòch cho tieán trình vôùi thôøi gian ngaén nhaát. Hai hình thöùc (Schemes): – Scheme 1: Non-preemptive( tieán trình ñoäc quyeàn CPU) Khi CPU ñöôïc trao cho quaù trình noù khoâng nhöôøng cho ñeán khi noù keát thuùc chu kyø xöû lyù cuûa noù – Scheme 2: Preemptive( tieán trình khoâng ñoäc quyeàn) Neáu moät tieán trình CPU môùi ñöôïc ñöa vaøo danh saùch vôùi chieàu daøi söû duïng CPU cho laàn tieáp theo nhoû hôn thôøi gian coøn laïi cuûa tieán trình ñang xöû lyù noù seõ döøng hoaït ñoäng tieán trình hieän haønh (hình thöùc naøy coøn goïi laø Shortest-Remaining-Time- First (SRTF).) 15 Khoa KTMT
- NonPreemptive SJF Scheduling Ví duï : Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 Gantt Chart for Schedule P1 P3 P2 P4 0 7 8 12 16 Average waiting time = (0+6+3+7)/4 = 4 Khoa KTMT 16
- Preemptive SJF Scheduling(SRTF) Ví duï : Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 Gantt Chart for Schedule P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16 Average waiting time = (9+1+0+2)/4 = 3 Khoa KTMT 17
- Nhaän xeùt veà giaûi thuaät SJF Coù theå xaûy ra tình traïng “ñoùi” (starvation) ñoái vôùi caùc process coù CPU-burst lôùn khi coù nhieàu process vôùi CPU-burst nhoû ñeán heä thoáng. Cô cheá non-preemptive khoâng phuø hôïp cho heä thoáng time sharing (interactive) Giaûi thuaät SJF ngaàm ñònh ra ñoä öu tieân theo burst time Caùc CPU-bound process coù ñoä öu tieân thaáp hôn so vôùi I/O-bound process, nhöng khi moät process khoâng thöïc hieän I/O ñöôïc thöïc thi thì noù ñoäc chieám CPU cho ñeán khi keát thuùc 18 Khoa KTMT
- Priority Scheduling* Moãi process seõ ñöôïc gaùn moät ñoä öu tieân CPU seõ ñöôïc caáp cho process coù ñoä öu tieân cao nhaát Ñònh thôøi söû duïng ñoä öu tieân coù theå: – Preemptive hoaëc – Nonpreemptive Khoa KTMT 19
- Gaùn ñoä öu tieân* SJF laø moät giaûi thuaät ñònh thôøi söû duïng ñoä öu tieân vôùi ñoä öu tieân laø thôøi-gian-söû-duïng-CPU- döï-ñoaùn Gaùn ñoä öu tieân coøn döïa vaøo: – Yeâu caàu veà boä nhôù – Soá löôïng file ñöôïc môû – Tæ leä thôøi gian duøng cho I/O treân thôøi gian söû duïng CPU – Caùc yeâu caàu beân ngoaøi ví duï nhö: soá tieàn ngöôøi duøng traû khi thöïc thi coâng vieäc Khoa KTMT 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Hướng dẫn: Cài đặt nhiều hệ điều hành trên máy ảo
11 p | 1694 | 400
-
1. Linux là gì? Linux là hệ điều hành. Về mặt nguyên tắc hệ điều hành cũng
5 p | 1841 | 292
-
Nhập môn hệ điều hành Linux part 1
0 p | 560 | 179
-
Giáo trình Hệ điều hành Linux: Phần 1 - Viện CNTT - ĐH quốc gia Hà Nội
20 p | 786 | 172
-
Giáo trình Hệ điều hành phân tán: Phần 1
102 p | 155 | 13
-
Bài giảng Hệ điều hành linux: Phần 1 - Trường TCN Đông Sài Gòn
61 p | 55 | 10
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 p | 42 | 9
-
Bài giảng Nhập môn Hệ điều hành Unix (Bài giảng tuần 1) – Nguyễn Hải Châu
6 p | 220 | 8
-
Bài giảng Hệ điều hành nâng cao - Chapter 1: Introduction
48 p | 142 | 8
-
Giáo trình Hệ điều hành - NXB Hà Nội: Phần 1
70 p | 74 | 8
-
Bài giảng Hệ điều hành: Phần 1 - Trường Đại học Kiến trúc Hà Nội
98 p | 19 | 7
-
Giáo trình Hệ điều hành: Phần 1 (Năm 2015)
91 p | 23 | 5
-
Bài giảng Hệ điều hành: Chapter 1 - ThS. Trần Thị Như Nguyệt
42 p | 69 | 5
-
Bài giảng Nhập môn Công nghệ thông tin 1: Giới thiệu về hệ điều hành
38 p | 40 | 4
-
Bài giảng Tin học căn bản - Bài 1: Hệ điều hành
43 p | 25 | 3
-
Giáo trình Hệ điều hành Linux 1 (Ngành: Quản trị mạng máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Hòa Bình Xuân Lộc
82 p | 4 | 3
-
Giáo trình Hệ điều hành Linux 2 (Ngành: Quản trị mạng máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Hòa Bình Xuân Lộc
79 p | 4 | 3
-
Giáo trình Hệ điều hành Linux (Ngành: Quản trị mạng máy tính – Trình độ Trung cấp) - Trường Cao đẳng Hòa Bình Xuân Lộc
79 p | 0 | 0
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn