Giáo trình Hệ điều hành
OPEN.PTIT.EDU.VN HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGH THƠNG TIN vø w GIÁO TRÌNH H IU HÀNH (OPERATING SYSTEM) BIÊN SON NINH XN HI - HUNH TRNG THA NM 2008 OPEN.PTIT.EDU.VN 2 LI M U H iu Hành (Operating Systems) là mt thành phn không th thiu trong mt h thng máy tính. Mt máy tính mc dù đt tin, cu hình cao nhng nu không có h điu hành thì hu nh không th s dng đc. H điu hành điu khin mi hot đng ca máy tính, giúp vic s dng máy tính tr nên đn gin, d dàng và hiu qa hn rt nhiu. Do v y môn hc “H điu hành” là môn hc quan trng và rt cn thit trong chng trình đào to chuyên nghành tin hc h cao đng và k s. Giáo trình “H điu hành” đc biên son theo chng trình đào to chuyên nghành tin hc h cao đng và k s ca B giáo dc và đào to. Giáo trình đc chia thành 6 chng, chng 1, 2, 3, 4 do ging viên Ninh Xuân Hi biên son, chng 5, 6 do ging viên Hunh Trng Th a biên son. Tuy rng chúng tôi đã có nhiu c gng trong công tác biên son nhng chc chn giáo trình vn còn nhiu thiu sót, nên rt mong đc bn đc cng nh các đng nghip đóng góp ý kin đ giáo trình ngày càng hoàn thin, nhm mc đích phc v tt hn cho vic dy và hc tin hc đang ngày càng phát trin nc ta. Mi s góp ý hoc thc mc xin gi v đa ch Email: hainx@ptithcm.edu.vn hoc htthua@ptithcm.edu.vn. Ngày 21 Tháng 11 Nm 2008 GV. biên son Ninh Xuân Hi - Hunh Trng Tha OPEN.PTIT.EDU.VN 3 CHNG I GII THIU H IU HÀNH Chng “GII THIU V H IU HÀNH ” s gii thiu và gii thích các vn đ sau: 1.1 H điu hành là gì, các khái nim ca h điu hành. 1.2 Lch s phát trin ca h điu hành 1.3 Các loi h điu hành 1.4 Các dch v ca h điu hành. 1.5 Cu trúc ca h điu hành 1.6 Nguyên lý thit k h đi u hành 1.1 CÁC KHÁI NIM 1.1.1 H điu hành là gì? H điu hành (operating systems) là chng trình đóng vai trò trung gian gia ngi s dng và phn cng ca máy tính. H điu hành che du s phc tp, đa dng ca phn cng, giúp vic s dng máy tính tr nên đn gin, hiu qu. Nhim v ca h điu hành là qun lý tài nguyên ca máy tính, thc thi các chng trình ng dng, h tr các chc nng m ng, vv … 1.1.2 Các thành phn ca mt h thng máy tính Mt h thng máy tính đc chia thành 4 thành phn sau: phn cng, h điu hành, chng trình ng dng/chng trình h thng, ngi s dng. + Phn cng (hardware) : CPU, b nh, các thit b nhp/xut,… + H điu hành (operating systems): điu khin và phi hp vic s dng phn cng cho nhiu ng dng vi nhiu ngi s dng khác nhau. + Ch ng trình ng dng và chng trình h thng (system and applications programs): là các chng trình gii quyt nhng vn đ ca ngi s dng nh là chng trình dch, h qun tr c s d liu, chng trình trò chi, chng trình thng mi,… + Ngi s dng (user): ngi s dng hoc máy tính. Hình 1.1: Các thành phn ca mt h thng máy tính OPEN.PTIT.EDU.VN 4 1.1.3 Các thành phn ca mt h thng nhp/xut Mt h thng nhp/xut gm ba thành phn sau: + H thng b nh đm (buffer-caching system) + Chng trình điu khin thit b (Drivers for specific hardware devices). + Chng trình giao tip vi chng trình điu khin thit b (A general device-driver interface). Chng trình giao tip vi chng trình điu khin thit b Chng trình điu khin thit b H thng b nh đm Hình 1.2: Các thành phn ca mt h thng nhp/xut 1.1.4 Các thành phn ca h điu hành H điu hành gm có ba thành phn sau: + B cp phát tài nguyên (Resource allocator): Qun lý và cp phát tài nguyên. + Chng trình kim soát (Control program): Kim soát vic thc thi chng trình và kim soát hot đng ca các thit b nhp/xut. + Phn nhân (Kernel): là chng trình “lõi” ca h điu hành, đc thc thi trc tiên và tn ti trong b nh cho đn khi tt máy (các chng trình khác gi là chng trình ng dng). B cp phát tài nguyên Chng trình kim soát Phn nhân Hình 1.3: Các thành phn ca h điu hành 1.2 LCH S PHÁT TRIN CA H IU HÀNH + Giai đon 1 (1945 – 1955): đã có máy tính ln nhng cha có h điu hành. + Giai đon 2 (1956 – 1965): h thng x lý theo lô (Batch systems) + Giai đon 3 (1966 – 1980): h thng x lý đa chng (Multiprogramming systems) , h thng x lý đa nhim (Multitasking systems). + Giai đon 4 (1981 - 2007 ): h thng đa x lý (Multiprocessor systems), h thng x lý phân tán (Distributed systems), h thng x lý thi gian thc (Real-time systems), h thng nhúng (Embedded systems). 1.3 PHÂN LOI H THNG MÁY TÍNH Mt h thng máy tính gm hai phn là h điu hành và phn cng tng ng đ thc thi h điu hành. 1.3.1 H thng x lý theo lô (Batch Systems) ây là h điu hành đu tiên, thô s nht. i vi h điu hành này thì ti mt thi đim ch có mt công vic trong b nh, khi thc hin xong mt công vic, công vic khác s đc t đng np vào và cho thc thi. H điu hành có mt chng trình, gi là b giám sát, thng trú trong b nh chính, giám sát vic thc hin dãy các công vic theo th t và t đng. OPEN.PTIT.EDU.VN 5 Cách b trí b nh ca h điu hành x lý theo lô nh sau: phn b nh đa ch thp dành cho h điu hành, phn còn li dành cho mt chng trình ca ngi dùng. Hình 1.4: mô hình t chc b nh ca h điu hành x lý theo lô Xem mt ví d v cách thc làm vic vi h thng x lý theo lô: - Lp trình viên mang phiu ghi chng trình đn máy 1401 - Máy s đc chng trình t phiu và ghi chng trình vào bng t - Lp trình viên đem bng t ti máy 7094 đ thc hin tính toán và kt qa đc ghi vào bng t - Lp trình viên đem bng t cha kt qa ti máy 1402 đ in Hình 1.5: ví d v cách thc x lý công vic vi h điu hành x lý theo lô 1.3.2 H thng x lý đa chng (MultiProgramming Systems) Ti mt thi đim có nhiu công vic trong b nh và khi mt công vic đang thc hin, nu có yêu cu nhp/xut thì CPU không ngh mà h điu hành s chuyn sang thc hin công vic khác. Ví d trong b nh hin có ba chng trình thc hin ba công vic. Nu công vic 1 yêu cu nhp/xut thì công vic 1 tm ngng, công vic 2 (hoc công vic 3) s đc th c hin. Khi thao tác nhp/xut ca công vic 1 xong thì công vic 1 s đc thc hin tip, công vic 2 s tm ngng,… Hình 1.6: mô hình t chc b nh ca h thng x lý đa chng OPEN.PTIT.EDU.VN 6 * Các chc nng ca h điu hành trong h thng x lý đa chng + Lp lch CPU (CPU scheduling): chn mt trong nhng công vic trong b nh cho thc thi (cho s dng CPU). Khi chn cn tránh trng hp mt công vic ch trong b nh quá lâu. + Qun lý b nh (Memory management): cn phi qun lý phn b nh nào đã cp phát và cp cho công vic nào (b nh cp phát cho mi công vic phi riêng bit), phn b nh nào cha cp, khi mt công vic th c thi xong cn thu hi phn b nh đã cp cho công vic đó. Nu mt công vic truy xut đn phn b nh đã cp cho công vic khác thì phi ngn cm. Nu b nh b phân mnh quá nhiu, cn dn b nh, vv… + Cp phát thit b (Allocation of devices): tình trng thit b rnh hay không rnh, thit b đã cp cho công vic nào, công vic nào c n đa vào hàng đi đ ch. Thit b nào có th dùng chung và ti đa bao nhiêu công vic s dng chung thit b cùng lúc, thit b nào không th dùng chung,… và phi tránh b tc nghn (các công vic ch vô hn đ đc cp tài nguyên). + Cung cp các hàm x lý nhp/xut (I/O routines): Các hàm nhp/xut s che du s phc tp và đa dng ca các thit b nhp/xut, qun lý vi c s dng chung các thit b nhp/xut. 1.3.3 H thng x lý đa nhim (Multitasking Systems) H thng x lý đa nhim là h thng m rng ca h thng x lý đa chng. i vi h điu hành trong h thng x lý đa nhim, vic chuyn đi công vic không ch công vic đang thc thi có yêu cu nhp/xut, mà khi công vic đang thc thi ht thi gian qui đnh s dng CPU thì vic chuyn đi công vic c ng s xy ra. Mi công vic đc thc hin luân phiên qua c ch chuyn đi CPU, thi gian mi ln chuyn đi din ra rt nhanh nên ngi s dng có cm giác là các công vic đang đc thi hành cùng lúc. H thng x lý đa nhim còn gi là h thng chia x thi gian (Time-Sharing Systems). Ví d h thng có môt CPU và hin có ba công vic A, B, C trong b nh. Ba công vic này s đc thc hin luân phiên: công vic A th c hin trong khong thi gian q (quantum) thì tm ngng, đn lt công vic B thc hin trong khong thi gian q, ri đn lt công vic C. Sau đó li đn lt A, … lp li vic thc thi các công vic cho đn khi tt c các công vic hoàn tt. Hình 1.7: các công vic A,B,C s dng cpu luân phiên trong h thng x lý đa nhim 1.3.4 H thng đa x lý (Multiprocessor Systems) Máy tính có nhiu b x lý cùng chia x h thng đng truyn d liu, đng h, b nh và các thit b ngoi vi. Mi CPU s thc hin mt công vic và khi đó các công vic s thc s din ra đng thi. H thng đa x lý còn gi là h thng x lý song song (Parallel Systems). time tas k A B C OPEN.PTIT.EDU.VN 7 Hình 1.7: mô hình h thng đa x lý: có nhiu cpu nhng s dng chung b nh * u đim ca h thng đa x lý + S hng hóc ca mt b x lý s không nh hng đn toàn b h thng. + H thng s thc hin rt nhanh do thc hin các công vic đng thi trên các b x lý khác nhau + Vic liên lc gia các công vic d dàng bng cách s dng b nh dùng chung. * Phân loi h thng đa x lý + H thng đa x lý đi xng (Symmetric MultiProcessing (SMP)): mi b x lý chy vi mt bn sao ca h điu hành và các b x lý là ngang cp. Các h điu hành hin nay đu h tr SMP. + H thng đa x lý bt đi xng (Asymmetric multiprocessing): Có mt b x lý chính (master processor) kim soát, phân vic cho các b x lý khác (slave processors). 1.3.5 H thng x lý phân tán (Distributed Operating Systems) Tng t nh h thng đa x lý nhng mi b x lý có b nh riêng. Các b x lý liên lc vi nhau thông qua các đng truyn dn mng. Mng LAN, WAN vi h điu hành Windows, UNIX chính là các h thng x lý phân tán. * Phân loi h thng x lý phân tán: có hai loi + Peer-to-peer: h thng mng ngang hàng, các máy tính ngang cp, không có máy nào đóng vai trò qun lý tài nguyên dùng chung. + Client-server: có mt máy đóng vai trò qun lý các tài nguyên dùng chung gi là máy server (máy ch), các máy khác gi là máy client (máy khách). Client mun s dng tài nguyên dùng chung phi đc server cp quyn. Mô hình h thng client-server: Hình 1.8: mô hình h thng x lý phân tán * u đim ca h thng x lý phân tán + Dùng chung tài nguyên: máy in, tp tin … + Tng tc đ tính toán: phân chia công vic đ tính toán trên nhiu v trí khác nhau + An toàn: Nu mt v trí b hng, các v trí khác vn tip tc làm vic. + Truyn thông tin d dàng: download/upload file, gi/nhn mail,… OPEN.PTIT.EDU.VN 8 1.3.6 H thng x lý thi gian thc (Real-Time Systems) H thng s cho kt qu chính xác trong khong thi gian nhanh nht. H thng thng dùng cho nhng ng dng chuyên dng nh là h thng điu khin trong công nghip. * Các loi h thng x lý thi gian thc + H thng x lý thi gian thc cng (Hard real-time): các công vic đc hoàn tt đúng thi đim qui đnh. + H thng x lý thi gian thc mm (Soft real-time): mi công vic có mt đ u tiên riêng và s đc thi hành theo đ u tiên. 1.3.7 H thng nhúng (Embedded Systems) H điu hành đc nhúng trong các thit b gia dng, các máy trò chi, Do các thit b gia dng có b nh ít, b x lý tc đ thp, kích thc màn hình nh nên h điu hành này cn đn gin, nh gn, có tính đc trng cho tng thit b. Ví d h điu hành dùng cho máy PDAs (Personal Digital Assistants), Mobil phones,… H thng nhúng còn đc gi là h thng cm tay (Handheld Systems). 1.4 CÁC DCH V CA H IU HÀNH H điu hành thông thng cn cung cp các dch v sau: - Qun lý tin trình - Qun lý b nh chính (RAM) - Qun lý b nh ph (DISK) - Qun lý h thng nhp xut - Qun lý h thng tp tin - Bo v h thng - H thng dòng lnh - Qun lý mng - Các li gi h thng (system calls). 1.4.1 Dch v qun lý tin trình (Process Management) Tin trình là mt chng trình đang thi hành. Trong b nh, ti mt thi đim có th có nhiu tin trình, mt s tin trình là ca h điu hành, mt s tin trình là ca ngi s dng. Khi tin trình đc to ra hoc đang thi hành s đc h điu hành cung cp các tài nguyên đ tin trình hot đng nh là CPU, b nh, tp tin, các thit b nh p/xut… Khi tin trình kt thúc, h điu hành s thu hi li các tài nguyên đã cp phát. Mt tin trình khi thc thi li có th to ra các tin trình con và hình thành cây tin trình. * Các chc nng ca dch v qun lý tin trình + To và hy các tin trình ca ngi s dng và ca h điu hành. OPEN.PTIT.EDU.VN 9 + Tm ngng và thc hin li mt tin trình. + Cung cp c ch đng b các tin trình. + Cung cp c ch liên lc gia các tin trình. + Cung cp c ch kim soát tc nghn. 1.4.2 Dch v qun lý b nh chính (Main Memory Management) Ti mt thi đim, trong b nh chính có th có nhiu tin trình, h điu hành cn phi qun lý phn b nh đã cp cho mi tin trình đ tránh xung đt. * Các chc nng ca dch v qun lý b nh chính + Lu gi thông tin v các v trí trong b nh đã s dng và tin trình nào đang s dng. + Quyt đnh chn tin trình đ np vào b nh chính khi b nh chính có ch trng. + Cp phát b nh cho tin trình và thu hi b nh khi tin trình thc thi xong. 1.4.3 Dch v qun lý b nh ph (Secondary Management) lu tr d liu lâu dài, d liu cn lu trên đa dng tp tin, ngoài ra đa còn lu gi các tin trình khi b nh RAM không còn đ, vùng nh này gi là b nh o. * Các chc nng ca dch v qun lý b nh ph + Qun lý vùng trng trên đa (Free space management) + Xác đnh v trí ct gi d liu (Storage allocation). + Lp lch cho đa (Disk scheduling). 1.4.4 Dch v qun lý h thng nhp/xut (I/O System Management) H điu hành cn che du nhng đc thù ca các thit b phn cng, bng cách cung cp các chc nng x lý nhp xut đn gin, không ph thuc vào chi tit ca mi loi thit b. 1.4.5 Dch v qun lý h thng tp tin (File Management) Máy tính có th lu tr thông tin trong nhiu dng thit b vt lý khác nhau nh bng t, đa t, đa quang, Mi dng có có kh nng lu tr, tc đ truyn d liu và cách truy xut khác nhau. H điu hành cn đng nht cách truy xut h thng lu tr, đnh ngha mt đn v lu tr là tp tin. * Các chc nng ca dch v qun lý h thng tp tin + H tr các thao tác trên tp tin và th mc (to/xem/xoá/sao chép/di chuyn/đi tên). + Ánh x tp tin trên h thng lu tr ph. + Sao lu tp tin trên các thit b lu tr. OPEN.PTIT.EDU.VN 10 1.4.6 Dch v bo v h thng (Protection System) H điu hành cn cung cp c ch đ đm bo rng tài nguyên ch đc truy xut bi nhng tin trình có quyn. Ví d đm bo rng tin trình ch đc thi hành trong phm vi đa ch ca nó hoc đm bo rng không có tin trình nào đc chim CPU… 1.4.7 Li gi h thng (system call) Li gi h thng là tp lnh do h điu hành cung cp dùng đ giao tip gia tin trình ca ngi dùng và h điu hành, li gi h thng còn gi là ngt. Các li gi h thng có th đc chia thành các loi nh là tp lnh qun lý tin trình, tp lnh qun lý tp tin, tp lnh qun lý thit b, tp lnh dùng đ liên lc gia các tin trình. Mi li gi h thng có mt s hiu duy nht dùng đ phân bit li gi này vi li gi khác. Các đa ch ni cha mã lnh ca các ngt (li gi h thng) đc lu trong mt bng gi là bng vect ngt. Khi tin trình dùng li gi h thng, cn cung cp tham s cho li gi h th ng. Có ba phng pháp mà tin trình dùng đ chuyn tham s cho h điu hành: - Chuyn tham s vào thanh ghi - Lu tr tham s trong mt bng trong b nh và ghi đa ch bng vào thanh ghi - Lu tr tham s vào stack và tham s đc ly ra bi h điu hành . Ví d chuyn đa ch bng X (bng cha các tham s) vào thanh ghi, gi ngt 13. Ngt 13 là li gi h thng do h đ iu hành cung cp. Hình 1.9: truyn tham s dng bng cho ngt 13 Qun lý tin trình Li gi hàm Mô t Pid=fork() To mt tin trình con ging tin trình cha Pid=waitpid(pid, &statloc, options) i mt tin trình con kt thúc Exit(status) Kt thúc vic thc thi tin trình và tr v trng thái [...]... H i u hành c chia thành nhi u ph n (g i là các ti n trình server), m i ti n trình th c hi n m t d ch v nh là d ch v qu n lý t p tin, qu n lý ti n trình, qu n lý b nh , … Các ti n trình yêu c u (g i là ti n trình client) s g i yêu c u n m t ti n trình server, ti n trình server th c hi n và g i k t qu tr l i cho ti n trình client H t nhân ch có nhi m v ki m soát quá trình liên l c gi a các ti n trình. .. x tài nguyên m ng, liên l c gi a các ti n trình trên m ng, … 1.5 C U TRÚC H 1.5.1 C u trúc I U HÀNH n gi n H i u hành không c chia thành nh ng l p (ph n) rõ r t, m t l p có th g i hàm thu c b t k l p nào khác H i u hành này n gi n, d thi t k , d cài t nh ng khó b o v , khó m r ng, và khó nâng c p Ví d h i u hành MSDOS là h i u hành có c u trúc n gi n: ch ng trình 11 ghi tr c ti p lên màn Hình 1.11:... trình th c hi n nh p/xu t và t ch c h th ng nh p/xu t ng trình th c hi n nh p/xu t: + Ch ng trình nh p/xu t c a ng nh p/xu t c l p thi t b i dùng (user program): th c hi n các l i g i n ch ng trình T + Ch ng trình nh p/xu t c l p thi t b : còn g i là l i g i h th ng nh p/xu t ho c ng t nh p/xu t, do h i u hành cung c p, ch ng trình nh p/xu t c l p thi t b cung c p m t giao ti p ng nh t cho ch ng trình. .. máy khác nhau Hình 1.17: Mô hình h i u hành client-server trên m t máy 14 1 6 NGUYÊN LÝ THI T K H N i u hành client-server trên nhi u máy ED U V Hình 1.18: Mô hình h I U HÀNH + H i u hành c n d vi t, d s a l i, d nâng c p (nên vi t h vì d vi t và d s a l i h n là vi t b ng ngôn ng assembly) +H i u hành c n d cài +H i u hành c n d s d ng, d h c, an toàn, có i u hành b ng ngôn ng c p cao t, d b o trì,... cao và th c hi n nhanh + H i u hành c n có tính kh chuy n cao (th c hi n nhau) c trên m t nhóm các ph n c ng khác T + H i u hành c n có ch ng trình SYSGEN (System Generation) thu th p thông tin liên quan n ph n c ng thi t l p c u hình h i u hành cho phù h p v i m i máy tính TI TÓM T T PE N P M t h th ng máy tính g m có ph n c ng, h i u hành và các ch ng trình ng d ng H i u hành giúp cho vi c s d ng máy... n xu t thi t b cung c p? i u hành cung 7 Ch ng trình giao ti p v i ch ng trình i u khi n thi t b (general device-driver interface) do h i u hành hay do hãng s n xu t hay do ngôn ng l p trình hay do ng i l p trình cung c p? 15 8 Ph n nhân (kernel) c a h 9 Nêu khuy t i m c a h i u hành MS-DOS g m nh ng ch i u hành có c u trúc ng trình nào? n gi n TÀI LI U THAM KH O [1] Gary J Nutt, University of Colorado... hay b i u khi n a i u hành MS-DOS (c u trúc n gi n) O PE N P TI T H i u hành UNIX phiên b n u tiên c ng có c u trúc n gi n và c chia thành hai ph n: ph n system calls và ph n kernel Ph n kernel cung c p t t c các d ch v c a h i u hành Các ph n có th g i l n nhau Hình 1.12: c u trúc c a h i u hành UNIX phiên b n u tiên (c u trúc n gi n) 1.5.2 C u trúc phân l p H i u hành c chia thành nhi u l p, m i l... c p + M i d ch v c a h i u hành do m t ti n trình server m nh n, các ti n trình này nhau nên khi m t ti n trình server b l i, h th ng v n ho t ng PE + Các ti n trình server c th c hi n ch ng i dùng (user-mode), không ph i nhân (kernel-mode), nên không truy xu t tr c ti p ph n c ng cl pv i ch h t O + C u trúc client-server r t thích h p v i mô hình h th ng phân tán Các ti n trình server có th th c thi... u khi n thi t b (I/O controller) Hình 2.4: S giao ti p gi a các ch ng trình th c hi n nh p/xu t 19 * T ch c h th ng nh p/xu t th ng qu n lý nh p/xu t c phân chia thành 5 l p là: ti n trình ng i dùng (user processes), ng trình nh p/xu t c l p thi t b (device-independent software), ch ng trình i u khi n t b (device drivers), ch ng trình ki m soát ng t (interrupt handlers), ph n c ng (hardware) i l p... p trình h th ng cho máy vi tính IBM-PC t p 1 và 2, tác gi Michael Tischer i u hành (t p 1 & 2) O PE N P TI T [7] Tr n H nh Nhi & Lê Kh c Nhiên Ân & Hoàng Ki m Giáo trình h HKHTN 2000 16 CH NG 2 QU N LÝ NH P/XU T VÀ QU N LÝ H TH NG T P TIN Ch ng “QU N LÝ NH P/XU T VÀ QU N LÝ H TH NG T P TIN” s gi i thi u và gi i thích các v n sau: 2.1 Qu n lý nh p/xu t i u khi n thi t b nh p/xu t 2.1.3 Các ch ng trình