Bài giảng Tổng quan hệ điều hành - Chương 5: Tổng quan hệ điều hành
Bạn đang xem tài liệu "Bài giảng Tổng quan hệ điều hành - Chương 5: Tổng quan 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:
- bai_giang_tong_quan_he_dieu_hanh_chuong_5_tong_quan_he_dieu.pdf
Nội dung text: Bài giảng Tổng quan hệ điều hành - Chương 5: Tổng quan hệ điều hành
- TỔNG QUAN HỆ ĐIỀU HÀNH • Heä ñieàu haønh laø gì? Ngöôøi duøng • “Phaàn meàm trung gian” giöõa phaàn cöùng maùy tính vaø ngöôøi söû duïng, coù chöùc naêng ñieàu khieån phaàn cöùng vaø cung caáp caùc dòch vuï cô baûn cho caùc Caùc öùng duïng öùng duïng • Muïc tieâu Heä Ñieàu Haønh • Giuùp ngöôøi duøng deã daøng söû duïng heä thoáng Phaàn cöùng • Quaûn lyù vaø caáp phaùt taøi nguyeân heä thoáng moät caùch hieäu quaû [yeáu toá kinh teá] 1 Caùc chöùc naêng chính cuûa OS Phaân chia thôøi gian xöû lyù treân CPU (ñònh thôøi) Phoái hôïp vaø ñoàng boä hoaït ñoäng giöõa caùc quaù trình Quaûn lyù taøi nguyeân heä thoáng hieäu quaû Kieåm soaùt quaù trình truy caäp, baûo veä heä thoáng Duy trì söï nhaát quaùn cuûa heä thoáng, kieåm soaùt loãi vaø phuïc hoài heä thoáng khi coù loãi xaûy ra Cung caáp giao dieän laøm vieäc thuaän tieän cho ngöôøi duøng 2 Why study Operating Systems? • Build, modify, or administer an operating system • Understand system performance • Behavior of OS impacts entire machine • Challenge to understand large, complex system • Tune workload performance • Apply knowledge across many areas • Computer architecture, programming languages, data structures and algorithms, and performance modeling 3 1
- Chöông 1 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 Giao dieän giöõa quaù trình vaø heä ñieàu haønh Caùc chöông trình heä thoáng (system program) Caáu truùc heä ñieàu haønh Maùy aûo (virtual machine) 4 Caùc thaønh phaàn cuûa heä ñieàu haønh (1/7) Quaûn lyù quaù trình ● Quaù trình vs chöông trình ● 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ï Taïo vaø huûy quaù trình Taïm ngöng / tieáp tuïc thöïc thi (suspend / resume) quaù trình Cung caáp caùc cô cheá – ñoàng boä hoaït ñoäng caùc quaù trình – giao tieáp giöõa caùc quaù trình – xöû lyù deadlock 3.1.1 5 Caùc thaønh phaàn cuûa heä ñieàu haønh (2/7) Quaûn lyù boä nhôù chính ● Tuøy thuoäc kieán truùc maùy tính ● Ñeå coù hieäu suaát cao, heä ñieàu haønh caàn duøng giaûi thuaät quaûn lyù boä nhôù thích hôïp ● Caùc nhieäm vuï 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ôù 3.1.2 6 2
- Caùc thaønh phaàn cuûa heä ñieàu haønh (3/7) Quaûn lyù file ● 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 taùc vuï xöûû lyù file/thö muïc (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 3.1.3 7 Caùc thaønh phaàn cuûa heä ñieàu haønh (4/7) Quaûn lyù heä thoáng I/O ● Che daáu caùc ñaëc tröng rieâng bieät cuûa töøng thieát bò I/O ñoái vôùi user ● Coù chöùc naêng Quaûn lyù buffering, caching, spooling – Buffer: vuøng nhôù ñeå löu döõ lieäu khi chuùng ñöôïc truyeàn giöõa hai thieát bò hay giöõa thieát bò vaø öùng duïng Cung caáp giao dieän chung ñeán caùc trình ñieàu khieån thieát bò (device-driver interface) Trình ñieàu khieån thieát bò cho moãi chuûng loaïi thieát bò phaàn cöùng khaùc nhau 3.1.4 8 Caùc thaønh phaàn cuûa heä ñieàu haønh (5/7) Quaûn lyù heä thoáng löu tröõ thöù caáp ● 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ï Quaûn lyù vuøng troáng Caáp phaùt khoâng gian löu tröõ (storage allocation) Ñònh thôøi ñóa (disk scheduling) 3.1.5 9 3
- Caùc thaønh phaàn cuûa heä ñieàu haønh (6/7) Heä thoáng baûo veä (protection system) – caàn thieát khi heä thoáng cho pheùp nhieàu user hay nhieàu quaù trình ● 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 chæ nhöõng ngöôøi duøng/quaù trình ñuû quyeàn haïn môùi ñöôïc pheùp söû duïng caùc taøi nguyeân töông öùng ● Caùc nhieäm vuï Cung caáp cô cheá kieåm soaùt ñaêng nhaäp/xuaát (login, logout) 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 3.1.7 10 Caùc thaønh phaàn cuûa heä ñieàu haønh (7/7) Trình thoâng dòch leänh (command line interpreter) ● 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 Heä thoáùng khôûi taïo command line interpreter (shell) cho user, vaø noù chôø nhaän leänh töø ngöôøi duøng, thöïc thi leänh vaø traû keát quaû veà ● Lieân heä chaët cheõ vôùi caùc thaønh phaàn khaùc cuûa heä ñieàu haønh ñeå thöïc thi caùc yeâu caàu cuûa ngöôøi duøng 3.1.8 11 Caùc thaønh phaàn cuûa heä ñieàu haønh (7/7) Trình thoâng dòch leänh (tt) ● Caùc nhoùm leänh trình thoâng dòch leänh ñeå Taïo, huûy, xem thoâng tin quaù trình, heä thoáng Ñieàu khieån truy caäp I/O Quaûn lyù, truy caäp heä thoáng löu tröõ thöù caáp Quaûn lyù, söû duïng boä nhôù Truy caäp heä thoáng file 3.1.8 12 4
- Caùc dòch vuï heä ñieàu haønh cung caáp (1/2) Moät soá dòch vuï chuû yeáu maø ngöôøi duøng hay chöông trình caàn ● Thöïc thi chöông trình ● Thöïc hieän caùc taùc vuï I/O do yeâu caàu cuûa chöông trình ● Caùc taùc vuï leân file Ñoïc/ghi hay taïo/xoùa file ● Giao tieáp, trao ñoåi thoâng tin giöõa caùc quaù trình Shared memory Message passing ● Phaùt hieän loãi Treân thieát bò I/O: döõ lieäu hö, heát giaáy, Chöông trình öùng duïng: chia cho 0, truy caäp ñeán ñòa chæ boä nhôù khoâng ñöôïc pheùp 3.2 13 Caùc dòch vuï heä ñieàu haønh cung caáp (2/2) Caùc dòch vuï khaùc ● Caáp phaùt taøi nguyeân Taøi nguyeân: tape drives, OS coù caùc routine töông öùng ● Keá toaùn (accounting) Ví duï ñeå tính phí 3.2 14 Giao dieän giöõa quaù trình vaø heä ñieàu haønh System call ● 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 library) ● 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 Truyeàn tham soá qua thanh ghi Truyeàn tham soá thoâng 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 Truyeàn tham soá qua stack 3.3 15 5
- Caùc chöông trình heä thoáng Chöông trình heä thoáng (phaân bieät vôùi application program) goàm ● Quaûn lyù file: nhö create, delete, rename, list ● Thoâng tin traïng thaùi heä thoáng: nhö 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 cuoái chuû yeáu laøm vieäc thoâng qua caùc system program (khoâng söû duïng “tröïc tieáp” caùc system call). 3.4 16 Caáu truùc heä ñieàu haønh (1/6) Heä thoáng ñôn khoái (monolithic) ● Caùc thaønh phaàn ñöôïc toå chöùc tuøy tieän, caùc module coù theå tuøy tieän goïi module khaùc www.buyya.com/microkernel/ 17 Caáu truùc heä ñieàu haønh (2/6) Trong heä ñieàu haønh ñöôïc phaân lôùp (layered operating system) moãi lôùp goàm coù caáu truùc döõ lieäu vaø thuû tuïc chæ ñöôïc goïi bôûi caùc lôùp ôû möùc cao hôn. ● Lôùp thaáp nhaát laø phaàn cöùng ● Lôùp cao nhaát laø giao dieän ngöôøi duøng ● Lôùp döôùi che giaáu caáu truùc döõ lieäu vaø caùch hieän thöïc cuûa thuû tuïc ñoái vôùi lôùp cao hôn 18 6
- Caáu truùc heä ñieàu haønh (3/6) Heä thoáng ñôn khoái – ví duï ● MS-DOS: ñöôïc thieát keá döôùi ñieàu kieän giôùi haïn veà dung löôïng boä nhôù – Intel 8088, 1 MB boä nhôù, khoâng dual mode. Nhìn laïi, coù theå phaân lôùp: 19 Caáu truùc heä ñieàu haønh (4/6) Heä thoáng ñôn khoái – ví duï ● UNIX: goàm hai phaàn caùc system program vaø kernel (file system, CPU scheduling, memory management, vaø moät soá chöùc naêng khaùc) Nhìn laïi, coù theå phaân lôùp: signals file system terminal handling swapping character I/O system block I/O system terminal drivers disk and tape drivers 20 Caáu truùc heä ñieàu haønh (5/6) Layered approach thieát keá moät OS baèng caùch phaân chia module thaønh nhieàu lôùp. Vd: heä ñieàu haønh OS/2 21 7
- Caáu truùc heä ñieàu haønh (6/6) Microkernel approach (CMU Mach OS, 1980) ● Dôøi moät soá chöùc naêng cuûa OS töø kernel space sang user space (vd: file server) ● Thu goïn kernel microkernel, chæ 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 duøng kyõ thuaät truyeàn thoâng ñieäp moät module Application POSIX X-application application File POSIX server X-window server server Microkernel 22 Maùy aûo (1/2) Töø OS layer ñeán maùy aûo (VM, 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 23 Maùy aûo (2/2) 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 Intel x86 VM 1. Taïo moät maùy aûo Intel “beân treân” heä ñieàu haønh Solaris vaø heä thoáng VM interpretation Sun Solaris kernel 2. Caùc leänh Intel (x86) ñöôïc maùy aûo Sun hardware Intel chuyeån thaønh leänh töông öùng cuûa heä thoáng Sun. 24 8