intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Hệ điều hành - Chương IV: Định thời CPU

Chia sẻ: Lê Tẹt | Ngày: | Loại File: PPT | Số trang:43

128
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo bài thuyết trình 'hệ điều hành - chương iv: định thời cpu', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Hệ điều hành - Chương IV: Định thời CPU

  1. Chöông IV: Ñònh thôøi CPU  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 1
  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 2
  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 3
  4. 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 – Process naøo ñöôïc ñöa vaøo (swap in), ñöa ra khoûi (swap out) boä nhôù chính – Ñöôï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 4
  5. 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: – Ngắt thôøi gian (clock interrupt) – Ngaét ngoaïi vi (I/O interrupt) – Lôøi goïi heä thoáng (operating system call) Chöông naøy seõ taäp trung vaøo ñònh thôøi ngaén haïn – Signal Khoa KTMT 5
  6. 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 cheá ñoä ngöôøi duøng – 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 6
  7. Caùc tieâu chuaån ñònh thôøi CPU  User-oriented – Thôøi gian ñaùp öùng (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 – Thôøi gian quay voøng (hoaøn thaønh) (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 – Thôøi gian chôø (Waiting time): toång thôøi gian moät process ñôïi trong ready queue → cöïc tieåu  System-oriented – Söû duïng CPU (processor utilization): ñònh thôøi sao cho CPU caøng baän caøng toát → cöïc ñaïi – Coâng baèng (fairness): taát caû process phaûi ñöôïc ñoái xöû nhö nhau – Thoâng löôïng (throughput): soá process hoaøn taát coâng vieäc Khoa KTMT 7
  8. 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”) Khoa KTMT 8
  9. Hai yeáu toá cuûa giaûi thuaät ñònh thôøi (tt)  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ä – Khoâng tröng duïng (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 – Tröng duïng (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 process ñoäc chieám CPU quaù laâu. Khoa KTMT 9
  10. Preemptive vaø Non­preemptive  Hàm định thời được thực hiện khi (1) Chuyên̉ từ trang ̣ thaí running sang waiting (2) Chuyên̉ từ trang̣ thaí running sang ready (3) Chuyên̉ từ trang ̣ thaí waiting, new sang ready (4) Kêt́ thuć thực thi 1 và 4 không cần lựa chọn loại định thời biểu, 2 và 3 cần  Trường hợp 1, 4 được goị là đinh ̣ thời nonpreemptive  Trường hợp 2, 3 được goị là đinh ̣ thời preemptive Thực hiên ̣ cơ chế nao ̀ khó hơn? Taị sao? Khoa KTMT 10
  11. 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 Khoaprocess KTMT 11
  12. 1. First­Come First­Served (FCFS)  Haøm löïa choïn: 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  Cheá ñoä quyeát ñònh: 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
  13. FCFS Scheduling  Ví duï :  Giaû söû thöù töï vaøo cuûa caùc tieán trình laø Process Burst Time  P1, P2, P3  Thôøi gian chôø P1 24  P1 = 0; P2 3  P2 = 24; 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
  14. FCFS Scheduling   Ví duï:  Giaû söû thôøi gian vaøo cuûa caùc tieán trình laø Process Burst Time  P2, P3, P1 P1 24  Thôøi gian chôø :  P1 = 6; P2 = 0; P3 = 3; P2 3  Thôøi gian chôø trung bình P3 3  (6+0+3)/3 = 3 , toát hôn.. Gantt Chart for Schedule P2 P3 P1 0 3 6 30 Khoa KTMT 14
  15. 2. Shortest­Job­First(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. Khoa KTMT 15
  16. 2. Shortest­Job­First(SJF) Scheduling  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).) – SJF laø toái öu – cho thôøi gian chôø ñôïi trung bình toái thieåu vôùi moät taäp tieán trình cho tröôùc Khoa KTMT 16
  17. Non­Preemptive 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 17
  18. Preemptive SJF Scheduling(SRTF)  Ví duï 1: Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 VD2: Gantt Chart for Schedule Process Arrival TimeBurst Time P1 0 8 P1 P2 P3 P2 P4 P1 P2 1 4 0 2 4 5 7 11 16 P3 2 9 Average waiting time = P4 3 5 (9+1+0+2)/4 = 3 Khoa KTMT 18
  19. 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 Khoa KTMT 19
  20. Nhaän xeùt veà giaûi thuaät SJF  Tương ứng với mỗi process cần có độ dài của CPU burst tiếp theo  Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ nhất  Chứng minh được: SJF tối ưu trong việc giảm thời gian đợi trung bình  Nhược điểm: Cần phải ước lượng thời gian cần CPU tiếp theo của process  Giải pháp cho vấn đề này? Khoa KTMT 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2