Bài giảng Hệ điều hành (Operating Systems) - Chương I: Tổng quan hệ điều hành - Vũ Đức Lung

1.1. Tổng quan

• Giới thiệu

– Định nghĩa hệ điều hành

– Cấu trúc hệ thống máy tính

– Các chức năng chính của hệ điều hành

 

pdf24 trang | Chia sẻ: phuongt97 | Lượt xem: 465 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Hệ điều hành (Operating Systems) - Chương I: Tổng quan hệ điều hành - Vũ Đức Lung, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
vaø ñöôïc thaûo luaän ôû phaàn quaûn lyù boä nhôù. 5Khoa KTMT 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) – SignalChöông naøy seõ taäp trung vaøo ñònh thôøi ngaén haïn 6Khoa KTMT 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 27Khoa KTMT 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 trong moät ñôn vò thôøi gian → cöïc ñaïi. 8Khoa KTMT 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”) 9Khoa KTMT 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. 10Khoa KTMT Preemptive vaø Non-preemptive  Hàm định thời được thực hiện khi (1) Chuyển từ trạng thái running sang waiting (2) Chuyển từ trạng thái running sang ready (3) Chuyển từ trạng thái waiting, new sang ready (4) Kết thúc 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 gọi là định thời nonpreemptive  Trường hợp 2, 3 được gọi là định thời preemptive Thực hiện cơ chế nào khó hơn? Tại sao? 11Khoa KTMT Khaûo saùt giaûi thuaät ñònh thôøi  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 285 564 443 622 301 Service Time Arrival Time Process load store add store read from file wait for I/O inc store write to file load store add store read from file wait for I/O wait for I/O  I/O burst CPU burst CPU burst CPU burst I/O burst I/O burst moät chu kyø CPU-I/O 12Khoa KTMT 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 addrun 313Khoa KTMT FCFS Scheduling  Ví duï : Process Burst Time P1 24 P2 3 P3 3  Giaû söû thöù töï vaøo cuûa caùc tieán trình laø  P1, P2, P3  Thôøi gian chôø  P1 = 0;  P2 = 24;  P3 = 27;  Thôøi gian chôø trung bình  (0+24+27)/3 = 17 0 24 27 30 P1 P2 P3 Gantt Chart for Schedule 14Khoa KTMT FCFS Scheduling  Ví duï: Process Burst Time P1 24 P2 3 P3 3  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;  Thôøi gian chôø trung bình  (6+0+3)/3 = 3 , toát hôn.. 0 3 6 30 P1P2 P3 Gantt Chart for Schedule 15Khoa KTMT 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. 16Khoa KTMT 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 17Khoa KTMT Non-Preemptive SJF Scheduling  Ví duï : Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 0 8 16 P1 P2P3 Gantt Chart for Schedule P4 127 Average waiting time = (0+6+3+7)/4 = 4 18Khoa KTMT Preemptive SJF Scheduling (hay Sortest Remaining Time First - SRTF)  Ví duï 1: Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 0 7 16 P1 P2P3 Gantt Chart for Schedule P4 115 Average waiting time = (9+1+0+2)/4 = 3 P2 P1 2 4 Process Arrival TimeBurst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5 VD2: 419Khoa KTMT 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 20Khoa KTMT 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? 21Khoa KTMT Nhaän xeùt veà giaûi thuaät SJF (Thời gian sử dụng CPU chính là độ dài của CPU burst)  Trung bình tất cả các CPU burst đo được trong quá khứ  Nhưng thông thường những CPU burst càng mới càng phản ánh đúng hành vi của process trong tương lai  Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ (exponential averaging) – τn+1 = a tn + (1 - a) τn , 0 ≤ a ≤ 1 – τn+1 = a tn + (1- a) a tn-1 ++ (1- a)jaτn-j++ (1- a)n+1aτ0 – Nếu chọn a = ½ thì có nghĩa là trị đo được tn và trị dự đoánτn được xem quan trọng như nhau. 22Khoa KTMT Dự đoán thời gian sử dụng CPU Độ dài CPU burst đo được Độ dài CPU burst dự đoán, với a = ½ và τ0 = 10 23Khoa KTMT 3. 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 24Khoa KTMT 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 525Khoa KTMT 3. Priority Scheduling  Vaán ñeà: trì hoaõn voâ haïn ñònh – process coù ñoä öu tieân thaáp coù theå khoâng bao giôø ñöôïc thöïc thi  Giaûi phaùp: laøm môùi (aging) – ñoä öu tieân cuûa process seõ taêng theo thôøi gian  Vd: 26Khoa KTMT 4. Ñònh thôøi luaân phieân (Round Robin -RR)  Moãi process nhaän ñöôïc moät ñôn vò nhoû thôøi gian CPU (time slice, quantum time), thoâng thöôøng töø 10-100 msec ñeå thöïc thi. Sau khoaûng thôøi gian ñoù, process bò ñoaït quyeàn vaø trôû veà cuoái haøng ñôïi ready.  Neáu coù n process trong haøng ñôïi ready vaø quantum time = q thì khoâng coù process naøo phaûi chôø ñôïi quaù (n − 1)q ñôn vò thôøi gian.  Hieäu suaát – Neáu q lôùn: RR ⇒ FCFS – Neáu q nhoû (q khoâng ñöôïc quaù nhoû bôûi vì phaûi toán chi phí chuyeån ngöõ caûnh)  Thôøi gian chôø ñôïi trung bình cuûa giaûi thuaät RR thöôøng khaù lôùn nhöng thôøi gian ñaùp öùng nhoû 27Khoa KTMT Ví duï Round Robin  Time Quantum = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 0 P1 P4P3 Gantt Chart for Schedule P1P2 20 P3 P3 P3P4 P1 37 57 77 97 117 121 134 154 162 turnaround time trung bình lôùn hôn SJF, nhöng ñaùp öùng toát hôn 28Khoa KTMT RR vôùi time quantum = 1  Thôøi gian turn-around trung bình cao hôn so vôùi SJF nhöng coù thôøi gian ñaùp öùng trung bình toát hôn.  Öu tieân CPU-bound process  I/O-bound process thöôøng söû duïng raát ít thôøi gian cuûa CPU, sau ñoù phaûi blocked ñôïi I/O  CPU-bound process taän duïng heát quantum time, sau ñoù quay veà ready queue ⇒ ñöôïc xeáp tröôùc caùc process bò blocked 29Khoa KTMT Time quantum vaø context switch Process time = 10 quantum context switch 0 1 2 3 4 5 6 7 8 9 10 0 106 0 10 12 6 1 0 1 9 30Khoa KTMT Thời gian hoàn thành và quantum time  Thời gian hoàn thành trung bình (average turnaround time) không chắc sẽ được cải thiện khi quantum lớn 631Khoa KTMT Quantum vaø response time  Quantum time phaûi lôùn hôn thôøi gian duøng ñeå xöû lyù clock interrupt (timer) vaø thôøi gian dispatching  Neân lôùn hôn thôøi gian töông taùc trung bình (typical interaction) 32Khoa KTMT Quantum time cho Round Robin*  Khi thực hiện process switch thì OS sẽ sử dụng CPU chứ không phải process của người dùng (OS overhead) – Dừng thực thi, lưu tất cả thông tin, nạp thông tin của process sắp thực thi  Performance tùy thuộc vào kích thước của quantum time (còn gọi là time slice), và hàm phụ thuộc này không đơn giản  Time slice ngắn thì đáp ứng nhanh – Vấn đề: có nhiều chuyển ngữ cảnh. Phí tổn sẽ cao.  Time slice dài hơn thì throughput tốt hơn (do giảm phí tổn OS overhead) nhưng thời gian đáp ứng lớn – Nếu time slice quá lớn, RR trở thành FCFS. 33Khoa KTMT Quantum time cho Round Robin  Quantum time và thời gian cho process switch: – Nếu quantum time = 20 ms và thời gian cho process switch = 5 ms, như vậy phí tổn OS overhead chiếm 5/25 = 20% – Nếu quantum = 500 ms, thì phí tổn chỉ còn ≈ 1%  Nhưng nếu có nhiều người sử dụng trên hệ thống và thuộc loại interactive thì sẽ thấy đáp ứng rất chậm – Tùy thuộc vào tập công việc mà lựa chọn quantum time – Quantum time nên lớn trong tương quan so sánh với thời gian cho process switch – Ví dụ với 4.3 BSD UNIX, quantum time là 1 giây 34Khoa KTMT Round Robin  Nếu có n process trong hàng đợi ready, và quantum time là q, như vậy mỗi process sẽ lấy 1/n thời gian CPU theo từng khối có kích thước lớn nhất là q – Sẽ không có process nào chờ lâu hơn (n - 1)q đơn vị thời gian  RR sử dụng một giả thiết ngầm là tất cả các process đều có tầm quan trọng ngang nhau – Không thể sử dụng RR nếu muốn các process khác nhau có độ ưu tiên khác nhau 35Khoa KTMT Round Robin: nhược điểm  Các process dạng CPU-bound vẫn còn được “ưu tiên” – Ví dụ:  Một I/O-bound process sử dụng CPU trong thời gian ngắn hơn quantum time và bị blocked để đợi I/O. Và  Một CPU-bound process chạy hết time slice và lại quay trở về hàng đợi ready queue (ở phía trước các process đã bị blocked) 36Khoa KTMT 5. Highest Response Ratio Next  Choïn process keá tieáp coù giaù trò RR (Response ratio) lôùn nhaát.  Caùc process ngaén ñöôïc öu tieân hôn (vì service time nhoû) timeservice expected timeservice expected ingspent wait time + =RR 737Khoa KTMT 6. Multilevel Queue Scheduling  Haøng ñôïi ready ñöôïc chia thaønh nhieàu haøng ñôïi rieâng bieät theo moät soá tieâu chuaån nhö – Ñaëc ñieåm vaø yeâu caàu ñònh thôøi cuûa process – Foreground (interactive) vaø background process,  Process ñöôïc gaùn coá ñònh vaøo moät haøng ñôïi, moãi haøng ñôïi söû duïng giaûi thuaät ñònh thôøi rieâng  Heä ñieàu haønh caàn phaûi ñònh thôøi cho caùc haøng ñôïi. – Fixed priority scheduling: phuïc vuï töø haøng ñôïi coù ñoä öu tieân cao ñeán thaâp. Vaán ñeà: coù theå coù starvation. – Time slice: moãi haøng ñôïi ñöôïc nhaän moät khoaûng thôøi gian chieám CPU vaø phaân phoái cho caùc process trong haøng ñôïi khoaûng thôøi gian ñoù. Ví duï: 80% cho haøng ñôïi foreground ñònh thôøi baèng RR vaø 20% cho haøng ñôïi background ñònh thôøi baèng giaûi thuaät FCFS. 38Khoa KTMT Multilevel Queue Scheduling*  Ví dụ phân nhóm các quá trình System Processes Interactive Processes Batch Processes Student Processes Độ ưu tiên thấp nhất Độ ưu tiên cao nhất 39Khoa KTMT 7. Haøng ñôïi phaûn hoài ña caáp Multilevel Feedback Queue  Vaán ñeà cuûa multilevel queue – process khoâng theå chuyeån töø haøng ñôïi naøy sang haøng ñôïi khaùc⇒ khaéc phuïc baèng cô cheá feedback: cho pheùp process di chuyeån moät caùch thích hôïp giöõa caùc haøng ñôïi khaùc nhau.  Multilevel Feedback Queue – Phaân loaïi processes döïa treân caùc ñaëc tính veà CPU-burst – Söû duïng decision mode preemptive – Sau moät khoaûng thôøi gian naøo ñoù, caùc I/O-bound process vaø interactive process seõ ôû caùc haøng ñôïi coù ñoä öu tieân cao hôn coøn CPU-bound process seõ ôû caùc queue coù ñoä öu tieân thaáp hôn. – Moät process ñaõ chôø quaù laâu ôû moät haøng ñôïi coù ñoä öu tieân thaáp coù theå ñöôïc chuyeån ñeán haøng ñôïi coù ñoä öu tieân cao hôn (cô cheá nieân haïn, aging). 40Khoa KTMT 7. Multilevel Feedback Queue  Ví duï: Coù 3 haøng ñôïi – Q0 , duøng RR vôùi quantum 8 ms – Q1 , duøng RR vôùi quantum 16 ms – Q2 , duøng FCFS 41Khoa KTMT 7. Multilevel Feedback Queue (tt)  Ñònh thôøi duøng multilevel feedback queue ñoøi hoûi phaûi giaûi quyeát caùc vaán ñeà sau – Soá löôïng haøng ñôïi bao nhieâu laø thích hôïp? – Duøng giaûi thuaät ñònh thôøi naøo ôû moãi haøng ñôïi? – Laøm sao ñeå xaùc ñònh thôøi ñieåm caàn chuyeån moät process ñeán haøng ñôïi cao hôn hoaëc thaáp hôn? – Khi process yeâu caàu ñöôïc xöû lyù thì ñöa vaøo haøng ñôïi naøo laø hôïp lyù nhaát? 42Khoa KTMT So saùnh caùc giaûi thuaät  Giaûi thuaät ñònh thôøi naøo laø toát nhaát?  Caâu traû lôøi phuï thuoäc caùc yeáu toá sau: – Taàn xuaát taûi vieäc (System workload) – Söï hoã trôï cuûa phaàn cöùng ñoái vôùi dispatcher – Söï töông quan veà troïng soá cuûa caùc tieâu chuaån ñònh thôøi nhö response time, hieäu suaát CPU, throughput, – Phöông phaùp ñònh löôïng so saùnh 843Khoa KTMT Đọc thêm  Policy và Mechanism  Định thời trên hệ thống multiprocessor  Đánh giá giải thuật định thời CPU  Định thời trong một số hệ điều hành thông dụng  Nguồn: Operating System Concepts. Sixth Edition. John Wiley & Sons, Inc. 2002. Silberschatz, Galvin, Gagne

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_he_dieu_hanh_operating_systems_chuong_i_tong_quan.pdf