Hệ điều hành - Chương II: Cấu trúc hệ điều hành

pdf 20 trang vanle 2530
Bạn đang xem tài liệu "Hệ điều hành - Chương II: Cấu trúc hệ điều hành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfhe_dieu_hanh_chuong_ii_cau_truc_he_dieu_hanh.pdf

Nội dung text: Hệ điều hành - Chương II: Cấu trúc hệ điều hành

  1. Chöông II: Caáu Truùc Heä Ñieàu Haønh  Caùc thaønh phaàn cuûa heä ñieàu haønh  Caùc dòch vuï heä ñieàu haønh cung caáp  Lôøi goïi heä thoáng (System call)  Caùc chöông trình heä thoáng (system programs)  Caáu truùc heä thoáng  Maùy aûo (virtual machine) 10/07/2013 Khoa KTMT 1
  2. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh „2.1.1. Quaûn lyù quaù trình (process management) - Quaù trình (hay tieán trình ‟ process) laø gì? - Quaù trình khaùc chöông trình ôû ñieåm gì? - Moät quaù trình caàn caùc taøi nguyeân cuûa heä thoáng nhö CPU, boä nhôù, file, thieát bò I/O, ñeå hoaøn thaønh coâng vieäc. - Caùc nhieäm vuï cuûa thaønh phaàn . Taïo vaø huûy quaù trình . Taïm dừng/thöïc thi tieáp (suspend/resume) quaù trình . Cung caáp caùc cô cheá ‟ ñoàng boä hoaït ñoäng caùc quaù trình (synchronization) ‟ giao tieáp giöõa caùc quaù trình (interprocess communication) ‟ khoáng cheá tắc nghẽn (deadlock) 10/07/2013 Khoa KTMT 2
  3. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.2. Quaûn lyù boä nhôù chính – Boä nhôù chính laø trung taâm cuûa caùc thao taùc, xöû lyù – Ñeå naâng caoù hieäu suaát söû duïng CPU, heä ñieàu haønh caàn quaûn lyù boä nhôù thích hôïp – Caùc nhieäm vuï cuûa thaønh phaàn . Theo doõi, quaûn lyù caùc vuøng nhôù troáng vaø ñaõ caáp phaùt . Quyeát ñònh seõ naïp chöông trình naøo khi coù vuøng nhôù troáng . Caáp phaùt vaø thu hoài caùc vuøng nhôù khi caàn thieát 10/07/2013 Khoa KTMT 3
  4. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.3. Quaûn lyù file (file management) ‟ Heä thoáng file (file system) . File . Thö muïc ‟ Caùc dòch vuï maø thaønh phaàn cung caáp . Taïo vaø xoaù file/thö muïc. . Caùc thao taùc xöû lyù file/thö muïc (mkdir, rename, copy, move, new, ) . “AÙnh xaï” file/thö muïc vaøo thieát bò löu tröõ thöù caáp töông öùng . Sao löu vaø phuïc hoài döõ lieäu 10/07/2013 Khoa KTMT 4
  5. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.4. Quaûn lyù heä thoáng I/O (I/O system management) ‟ Che daáu söï khaùc bieät cuûa caùc thieát bò I/O tröôùc ngöôøi duøng ‟ Coù chöùc naêng . Cô cheá: buffering, caching, spooling . Cung caáp giao dieän chung ñeán caùc trình ñieàu khieån thieát bò (device-driver interface ) . Boä ñieàu khieån caùc thieát bò (device driver) phaàn cöùng. 10/07/2013 Khoa KTMT 5
  6. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.5. Quaûn lyù heä thoáng löu tröõ thöù caáp (secondary storage management) ‟ Boä nhôù chính: kích thöôùc nhoû, laø moâi tröôøng chöùa tin khoâng beàn vöõng => caàn heä thoáng löu tröõ thöù caáp ñeå löu tröõ beàn vöõng caùc döõ lieäu, chöông trình ‟ Phöông tieän löu tröõ thoâng duïng laø ñóa töø, ñóa quang ‟ Nhieäm vuï cuûa heä ñieàu haønh trong quaûn lyù ñóa . Quaûn lyù khoâng gian troáng treân ñóa (free space management) . Caáp phaùt khoâng gian löu tröõ (storage allocation) . Ñònh thôøi hoïat ñoäng cho ñóa (disk scheduling)  Söû duïng thöôøng xuyeân => aûnh höôûng lôùn ñeán toác ñoä cuûa caû heä thoáng => caàn hieäu quaû 10/07/2013 Khoa KTMT 6
  7. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.6. Heä thoáng baûo veä Trong heä thoáng cho pheùp nhieàu user hay nhieàu process dieãn ra ñoàng thôøi: ‟ Kieåm soaùt quaù trình ngöôøi duøng ñaêng nhaäp/xuaát vaø söû duïng heä thoáng ‟ Kieåm soaùt vieäc truy caäp caùc taøi nguyeân trong heä thoáng ‟ Baûo ñaûm nhöõng user/process chæ ñöôïc pheùp söû duïng caùc taøi nguyeân daønh cho noù ‟ Caùc nhieäm vuï cuûa heä thoáng baûo veä . Cung caáp cô cheá kieåm soaùt ñaêng nhaäp/xuaát (login, log out) . Phaân ñònh ñöôïc söï truy caäp taøi nguyeân hôïp phaùp vaø baát hôïp phaùp (authorized/unauthorized) . Phöông tieän thi haønh caùc chính saùch (enforcement of policies) Chính saùch: caàn baûo veä döõ lieäu cuûa ai ñoái vôùi ai 10/07/2013 Khoa KTMT 7
  8. 2.1. Caùc thaønh phaàn cuûa heä ñieàu haønh •2.1.7. Heä thoáng thoâng dòch leänh ‟ Laø giao dieän chuû yeáu giöõa ngöôøi duøng vaø OS „ Ví duï: shell, mouse-based window-and-menu ‟ Khi user login „ command line interpreter (shell) chaïy, vaø chôø nhaän leänh töø ngöôøi duøng, thöïc thi leänh vaø traû keát quaû veà. ‟ Caùc leänh ->boä ñieàu khieån leänh ->heä ñieàu haønh ‟ Caùc leänh coù quan heä vôùi caùc vieäc: . Taïo, huûy, vaø quaûn lyù quaù trình, heä thoáng . Kieåm soaùt I/O . Quaûn lyù boä löu tröõ thöù caáp . Quaûn lyù boä nhôù chính . Truy caäp heä thoáng file vaø cô cheá baûo maät 10/07/2013 Khoa KTMT 8
  9. 2.2. Caùc dòch vuï heä ñieàu haønh cung caáp ‟ Thöïc thi chöông trình ‟ Thöïc hieän caùc thao taùcï I/O theo yeâu caàu cuûa chöông trình ‟ Caùc thao taùc treân heä thoáng file „ Ñoïc/ghi hay taïo/xoùa file ‟ Trao ñoåi thoâng tin giöõa caùc quaù trình qua hai caùch: . Chia xeû boä nhôù (Shared memory ) . Chuyeån thoâng ñieäp (Message passing) ‟ Phaùt hieän loãi . Trong CPU, boä nhôù, treân thieát bò I/O (döõ lieäu hö, heát giaáy, ) . Do chöông trình: chia cho 0, truy caäp ñeán ñòa chæ boä nhôù khoâng cho pheùp. 10/07/2013 Khoa KTMT 9
  10. 2.2. Caùc dòch vuï heä ñieàu haønh cung caáp Ngoaøi ra coøn caùc dòch vuï giuùp taêng hieäu suaát cuûa heä thoáng: ‟ Caáp phaùt taøi nguyeân (resource allocation) „ Taøi nguyeân: CPU, boä nhôù chính, tape drives, „ OS coù caùc routine töông öùng ‟ Keá toaùn (accounting) „ Nhaèm löu veát user ñeå tính phí hoaëc ñôn giaûn ñeå thoáng keâ. ‟ Baûo veä (protection) „ Hai quaù trình khaùc nhau khoâng ñöôïc aûnh höôûng nhau „ Kieåm soaùt ñöôïc caùc truy xuaát taøi nguyeân cuûa heä thoáng ‟ An ninh (security) „ Chæ caùc user ñöôïc pheùp söû duïng heä thoáng môùi truy caäp ñöôïc taøi nguyeân cuûa heä thoáng (vd: thoâng qua username vaø password) 10/07/2013 Khoa KTMT 10
  11. 2.3. Lôøi goïi heä thoáng (System call) • Duøng ñeå giao tieáp giöõa quaù trình vaø heä ñieàu haønh ‟ Cung caáp giao dieän giöõa quaù trình vaø heä ñieàu haønh „ Vd: open, read, write file ‟ Thoâng thöôøng ôû daïng thö vieän nhò phaân (binary libraries) hay gioáng nhö caùc leänh hôïp ngöõ. ‟ Trong caùc ngoân ngöõ laäp trình caáp cao, moät soá thö vieän laäp trình ñöôïc xaây döïng döïa treân caùc thö vieän heä thoáng (ví duï Windows API, thö vieän GNU C/C++ nhö glibc, glibc++, ) ‟ Ba phöông phaùp truyeàn tham soá khi söû duïng system call . Qua thanh ghi . Qua moät vuøng nhôù, ñòa chæ cuûa vuøng nhôù ñöôïc göûi ñeán heä ñieàu haønh qua thanh ghi . Qua stack 10/07/2013 Khoa KTMT 11
  12. 2.4. Caùc chöông trình heä thoáng  Chöông trình heä thoáng (system program, phaân bieät vôùi application program) goàm ‟ Quaûn lyù heä thoáng file: nhö create, delete, rename, list ‟ Thoâng tin traïng thaùi: nhö date, time, dung löôïng boä nhôù troáng ‟ Soaïn thaûo file: nhö file editor ‟ Hoã trôï ngoân ngöõ laäp trình: nhö compiler, assembler, interpreter ‟ Naïp, thöïc thi, giuùp tìm loãi chöông trình: nhö loader, debugger ‟ Giao tieáp: nhö email, talk, web browser ‟  Ngöôøi duøng chuû yeáu laøm vieäc thoâng qua caùc system program (khoâng laøm vieäc “tröïc tieáp” vôùi caùc system call) 10/07/2013 Khoa KTMT 12
  13. 2.5. Caáu truùc heä thoáng  Caáu truùc ñôn giaûn (monolithic) ‟ MS-DOS: khi thieát keá, do giôùi haïn veà dung löôïng boä nhôù neân khoâng phaân chia thaønh caùc module (modularization) vaø chöa phaân chia roõ chöùc naêng giöõa caùc phaàn cuûa heä thoáng. Caáu truùc phaân taàng cuûa MS-DOS 10/07/2013 Khoa KTMT 13
  14. 2.5. Caáu truùc heä thoáng  Caáu truùc ñôn giaûn (monolithic) UNIX: goàm hai phaàn coù theå taùch rôøi nhau . Nhaân (cung caáp file system, CPU scheduling, memory management, vaø moät soá chöùc naêng khaùc) vaø system program 10/07/2013 Khoa KTMT 14
  15. 2.5. Caáu truùc heä thoáng  Caáu truùc phaân taàng: HÑH ñöôïc chi thaønh nhieàu lôùp (layer). . Lôùp döôùi cuøng: hardware . Lôùp treân cuøng laø giao tieáp vôùi user . Lôùp treân chæ phuï thuoäc lôùp döôùi . Moät lôùp chæ coù theå goïi caùc haøm cuûa lôùp döôùi vaø caùc haøm cuûa noù ñöôïc goïi bôûi lôùp treân . Moãi lôùp töông ñöông moät ñoái töôïng tröøu töôïng: caáu truùc döõ lieäu + thao taùc . Phaân lôùp coù lôïi ích gì? Gôõ roái (debugger, kieåm tra heä thoáng, thay ñoåi chöùc naêng) 10/07/2013 Khoa KTMT 15
  16. 2.5. Caáu truùc heä thoáng  Caáu truùc phaân taàng: . Laàn ñaàu tieân ñöôïc aùp duïng cho HÑH THE (Technische Hogeschool Eindhoven) Lôùp 5 user programm Lôùp 4 Taïo buffer cho thieát bò I/O Lôùp 3 Device driver thao taùc maøn hình Lôùp 2 Quaûn lyù boä nhôù Lôùp 1 Laäp lòch CPU Lôùp 0 Phaàn cöùng 10/07/2013 Khoa KTMT 16
  17. 2.5. Caáu truùc heä thoáng  Vi nhaân: phaân chia module theo microkernel (CMU Mach OS, 1980)  Chuyeån moät soá chöùc naêng cuûa OS töø kernel space sang user space  Thu goïn kernel => microkernel, microkernel chæ bao goàm caùc chöùc naêng toái thieåu nhö quaûn lyù quaù trình, boä nhôù vaø cô cheá giao tieáp giöõa caùc quaù trình  Giao tieáp giöõa caùc module qua cô cheá truyeàn thoâng ñieäp moät module Application OS/2 POSIX application application File POSIX server OS/2 server server Microkernel 10/07/2013 Khoa KTMT 17
  18. 2.5. Caáu truùc heä thoáng  Vi nhaân: - Lôïi ích: deã môû roäng HÑH - Moät soá HÑH hieän ñaïi söû duïng vi nhaân: + Tru64 UNIX (Digital UNIX tröôùc ñaây): nhaân Mach + Apple MacOS Server : nhaân Mach + QNX ‟ vi nhaân cung caáp: truyeàn thoâng ñieäp, ñònh thôøi CPU, giao tieáp maïng caáp thaáp vaø ngaét phaàn cöùng + Windows NT: chaïy caùc öùng duïng khaùc nhau win32, OS/2, POSIX (Portable OS for uniX) 10/07/2013 Khoa KTMT 18
  19. 2.6. Maùy aûo „ Töø OS layer ñeán maùy aûo (virtual machine) processes processes processes processes programming kernel kernel kernel interface VM1 VM2 VM3 kernel Virtual-machine implementation hardware hardware Non-virtual machine Virtual machine system model system model 10/07/2013 Khoa KTMT 19
  20. 2.6. Maùy aûo  Hieän thöïc yù nieäm VM ‟ Laøm theá naøo ñeå thöïc thi moät chöông trình MS-DOS treân moät heä thoáng Sun vôùi heä ñieàu haønh Solaris ? Intel x86 Application 1. Taïo moät maùy aûo Intel beân treân heä ñieàu Intel x86 VM haønh Solaris vaø heä thoáng Sun VM interpretation 2. Caùc leänh Intel (x86) ñöôïc maùy aûo Solaris kernel Intel chuyeån thaønh leänh töông öùng cuûa Sun hardware heä thoáng Sun. 10/07/2013 Khoa KTMT 20