Giáo trình Hệ điều hành

201 126 0
Giáo trình Hệ điều hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 IU HÀNH (OPERATING SYSTEM) BIÊN SON NINH XN HI - HUNH TRNG THA NM 2008 OPEN.PTIT.EDU.VN 2 LI M U H iu Hành (Operating Systems) là mt thành phn không th thiu trong mt h thng máy tính. Mt máy tính mc dù đt tin, cu hình cao nhng nu không có h điu hành thì hu nh không th s dng đc. H điu hành điu khin mi hot đng ca máy tính, giúp vic s dng máy tính tr nên đn gin, d dàng và hiu qa hn rt nhiu. Do v y môn hc “H điu hành” là môn hc quan trng và rt cn thit trong chng trình đào to chuyên nghành tin hc  h cao đng và k s. Giáo trình “H điu hành” đc biên son theo chng trình đào to chuyên nghành tin hc  h cao đng và k s ca B giáo dc và đào to. Giáo trình đc chia thành 6 chng, chng 1, 2, 3, 4 do ging viên Ninh Xuân Hi biên son, chng 5, 6 do ging viên Hunh Trng Th a biên son. Tuy rng chúng tôi đã có nhiu c gng trong công tác biên son nhng chc chn giáo trình vn còn nhiu thiu sót, nên rt mong đc bn đc cng nh các đng nghip đóng góp ý kin đ giáo trình ngày càng hoàn thin, nhm mc đích phc v tt hn cho vic dy và hc tin hc đang ngày càng phát trin  nc ta. Mi s góp ý hoc thc mc xin gi v đa ch Email: hainx@ptithcm.edu.vn hoc htthua@ptithcm.edu.vn. Ngày 21 Tháng 11 Nm 2008 GV. biên son Ninh Xuân Hi - Hunh Trng Tha OPEN.PTIT.EDU.VN 3 CHNG I GII THIU H IU HÀNH Chng “GII THIU V H IU HÀNH ” s gii thiu và gii thích các vn đ sau: 1.1 H điu hành là gì, các khái nim ca h điu hành. 1.2 Lch s phát trin ca h điu hành 1.3 Các loi h điu hành 1.4 Các dch v ca h điu hành. 1.5 Cu trúc ca h điu hành 1.6 Nguyên lý thit k h đi u hành 1.1 CÁC KHÁI NIM 1.1.1 H điu hành là gì? H điu hành (operating systems) là chng trình đóng vai trò trung gian gia ngi s dng và phn cng ca máy tính. H điu hành che du s phc tp, đa dng ca phn cng, giúp vic s dng máy tính tr nên đn gin, hiu qu. Nhim v ca h điu hành là qun lý tài nguyên ca máy tính, thc thi các chng trình ng dng, h tr các chc nng m ng, vv … 1.1.2 Các thành phn ca mt h thng máy tính Mt h thng máy tính đc chia thành 4 thành phn sau: phn cng, h điu hành, chng trình ng dng/chng trình h thng, ngi s dng. + Phn cng (hardware) : CPU, b nh, các thit b nhp/xut,… + H điu hành (operating systems): điu khin và phi hp vic s dng phn cng cho nhiu ng dng vi nhiu ngi s dng khác nhau. + Ch ng trình ng dng và chng trình h thng (system and applications programs): là các chng trình gii quyt nhng vn đ ca ngi s dng nh là chng trình dch, h qun tr c s d liu, chng trình trò chi, chng trình thng mi,… + Ngi s dng (user): ngi s dng hoc máy tính. Hình 1.1: Các thành phn ca mt h thng máy tính OPEN.PTIT.EDU.VN 4 1.1.3 Các thành phn ca mt h thng nhp/xut Mt h thng nhp/xut gm ba thành phn sau: + H thng b nh đm (buffer-caching system) + Chng trình điu khin thit b (Drivers for specific hardware devices). + Chng trình giao tip vi chng trình điu khin thit b (A general device-driver interface). Chng trình giao tip vi chng trình điu khin thit b Chng trình điu khin thit b H thng b nh đm Hình 1.2: Các thành phn ca mt h thng nhp/xut 1.1.4 Các thành phn ca h điu hành H điu hành gm có ba thành phn sau: + B cp phát tài nguyên (Resource allocator): Qun lý và cp phát tài nguyên. + Chng trình kim soát (Control program): Kim soát vic thc thi chng trình và kim soát hot đng ca các thit b nhp/xut. + Phn nhân (Kernel): là chng trình “lõi” ca h điu hành, đc thc thi trc tiên và tn ti trong b nh cho đn khi tt máy (các chng trình khác gi là chng trình ng dng). B cp phát tài nguyên Chng trình kim soát Phn nhân Hình 1.3: Các thành phn ca h điu hành 1.2 LCH S PHÁT TRIN CA H IU HÀNH + Giai đon 1 (1945 – 1955): đã có máy tính ln nhng cha có h điu hành. + Giai đon 2 (1956 – 1965): h thng x lý theo lô (Batch systems) + Giai đon 3 (1966 – 1980): h thng x lý đa chng (Multiprogramming systems) , h thng x lý đa nhim (Multitasking systems). + Giai đon 4 (1981 - 2007 ): h thng đa x lý (Multiprocessor systems), h thng x lý phân tán (Distributed systems), h thng x lý thi gian thc (Real-time systems), h thng nhúng (Embedded systems). 1.3 PHÂN LOI H THNG MÁY TÍNH Mt h thng máy tính gm hai phn là h điu hành và phn cng tng ng đ thc thi h điu hành. 1.3.1 H thng x lý theo lô (Batch Systems) ây là h điu hành đu tiên, thô s nht. i vi h điu hành này thì ti mt thi đim ch có mt công vic trong b nh, khi thc hin xong mt công vic, công vic khác s đc t đng np vào và cho thc thi. H điu hành có mt chng trình, gi là b giám sát, thng trú trong b nh chính, giám sát vic thc hin dãy các công vic theo th t và t  đng. OPEN.PTIT.EDU.VN 5 Cách b trí b nh ca h điu hành x lý theo lô nh sau: phn b nh  đa ch thp dành cho h điu hành, phn còn li dành cho mt chng trình ca ngi dùng. Hình 1.4: mô hình t chc b nh ca h điu hành x lý theo lô Xem mt ví d v cách thc làm vic vi h thng x lý theo lô: - Lp trình viên mang phiu ghi chng trình đn máy 1401 - Máy s đc chng trình t phiu và ghi chng trình vào bng t - Lp trình viên đem bng t ti máy 7094 đ thc hin tính toán và kt qa đc ghi vào bng t - Lp trình viên đem bng t cha kt qa ti máy 1402 đ in Hình 1.5: ví d v cách thc x lý công vic vi h điu hành x lý theo lô 1.3.2 H thng x lý đa chng (MultiProgramming Systems) Ti mt thi đim có nhiu công vic trong b nh và khi mt công vic đang thc hin, nu có yêu cu nhp/xut thì CPU không ngh mà h điu hành s chuyn sang thc hin công vic khác. Ví d trong b nh hin có ba chng trình thc hin ba công vic. Nu công vic 1 yêu cu nhp/xut thì công vic 1 tm ngng, công vic 2 (hoc công vic 3) s đc th c hin. Khi thao tác nhp/xut ca công vic 1 xong thì công vic 1 s đc thc hin tip, công vic 2 s tm ngng,… Hình 1.6: mô hình t chc b nh ca h thng x lý đa chng OPEN.PTIT.EDU.VN 6 * Các chc nng ca h điu hành trong h thng x lý đa chng + Lp lch CPU (CPU scheduling): chn mt trong nhng công vic trong b nh cho thc thi (cho s dng CPU). Khi chn cn tránh trng hp mt công vic ch trong b nh quá lâu. + Qun lý b nh (Memory management): cn phi qun lý phn b nh nào đã cp phát và cp cho công vic nào (b nh cp phát cho mi công vic phi riêng bit), phn b nh nào cha cp, khi mt công vic th c thi xong cn thu hi phn b nh đã cp cho công vic đó. Nu mt công vic truy xut đn phn b nh đã cp cho công vic khác thì phi ngn cm. Nu b nh b phân mnh quá nhiu, cn dn b nh, vv… + Cp phát thit b (Allocation of devices): tình trng thit b rnh hay không rnh, thit b đã cp cho công vic nào, công vic nào c n đa vào hàng đi đ ch. Thit b nào có th dùng chung và ti đa bao nhiêu công vic s dng chung thit b cùng lúc, thit b nào không th dùng chung,… và phi tránh b tc nghn (các công vic ch vô hn đ đc cp tài nguyên). + Cung cp các hàm x lý nhp/xut (I/O routines): Các hàm nhp/xut s che du s phc tp và đa dng ca các thit b nhp/xut, qun lý vi c s dng chung các thit b nhp/xut. 1.3.3 H thng x lý đa nhim (Multitasking Systems) H thng x lý đa nhim là h thng m rng ca h thng x lý đa chng. i vi h điu hành trong h thng x lý đa nhim, vic chuyn đi công vic không ch công vic đang thc thi có yêu cu nhp/xut, mà khi công vic đang thc thi ht thi gian qui đnh s dng CPU thì vic chuyn đi công vic c ng s xy ra. Mi công vic đc thc hin luân phiên qua c ch chuyn đi CPU, thi gian mi ln chuyn đi din ra rt nhanh nên ngi s dng có cm giác là các công vic đang đc thi hành cùng lúc. H thng x lý đa nhim còn gi là h thng chia x thi gian (Time-Sharing Systems). Ví d h thng có môt CPU và hin có ba công vic A, B, C trong b nh. Ba công vic này s đc thc hin luân phiên: công vic A th c hin trong khong thi gian q (quantum) thì tm ngng, đn lt công vic B thc hin trong khong thi gian q, ri đn lt công vic C. Sau đó li đn lt A, … lp li vic thc thi các công vic cho đn khi tt c các công vic hoàn tt. Hình 1.7: các công vic A,B,C s dng cpu luân phiên trong h thng x lý đa nhim 1.3.4 H thng đa x lý (Multiprocessor Systems) Máy tính có nhiu b x lý cùng chia x h thng đng truyn d liu, đng h, b nh và các thit b ngoi vi. Mi CPU s thc hin mt công vic và khi đó các công vic s thc s din ra đng thi. H thng đa x lý còn gi là h thng 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 thng đa x lý: có nhiu cpu nhng s dng chung b nh * u đim ca h thng đa x lý + S hng hóc ca mt b x lý s không nh hng đn toàn b h thng. + H thng s thc hin rt nhanh do thc hin các công vic đng thi trên các b x lý khác nhau + Vic liên lc gia các công vic d dàng bng cách s dng b nh dùng chung. * Phân loi h thng đa x lý + H thng đa x lý đi xng (Symmetric MultiProcessing (SMP)): mi b x lý chy vi mt bn sao ca h điu hành và các b x lý là ngang cp. Các h điu hành hin nay đu h tr SMP. + H thng đa x lý bt đi xng (Asymmetric multiprocessing): Có mt b x lý chính (master processor) kim soát, phân vic cho các b x lý khác (slave processors). 1.3.5 H thng x lý phân tán (Distributed Operating Systems) Tng t nh h thng đa x lý nhng mi b x lý có b nh riêng. Các b x lý liên lc vi nhau thông qua các đng truyn dn mng. Mng LAN, WAN vi h điu hành Windows, UNIX chính là các h thng x lý phân tán. * Phân loi h thng x lý phân tán: có hai loi + Peer-to-peer: h thng mng ngang hàng, các máy tính ngang cp, không có máy nào đóng vai trò qun lý tài nguyên dùng chung. + Client-server: có mt máy đóng vai trò qun lý các tài nguyên dùng chung gi là máy server (máy ch), các máy khác gi là máy client (máy khách). Client mun s dng tài nguyên dùng chung phi đc server cp quyn. Mô hình h thng client-server: Hình 1.8: mô hình h thng x lý phân tán * u đim ca h thng x lý phân tán + Dùng chung tài nguyên: máy in, tp tin … + Tng tc đ tính toán: phân chia công vic đ tính toán trên nhiu v trí khác nhau + An toàn: Nu mt v trí b hng, các v trí khác vn tip tc làm vic. + Truyn thông tin d dàng: download/upload file, gi/nhn mail,… OPEN.PTIT.EDU.VN 8 1.3.6 H thng x lý thi gian thc (Real-Time Systems) H thng s cho kt qu chính xác trong khong thi gian nhanh nht. H thng thng dùng cho nhng ng dng chuyên dng nh là h thng điu khin trong công nghip. * Các loi h thng x lý thi gian thc + H thng x lý thi gian thc cng (Hard real-time): các công vic đc hoàn tt đúng thi đim qui đnh. + H thng x lý thi gian thc mm (Soft real-time): mi công vic có mt đ u tiên riêng và s đc thi hành theo đ u tiên. 1.3.7 H thng nhúng (Embedded Systems) H điu hành đc nhúng trong các thit b gia dng, các máy trò chi, Do các thit b gia dng có b nh ít, b x lý tc đ thp, kích thc màn hình nh nên h điu hành này cn đn gin, nh gn, có tính đc trng cho tng thit b. Ví d h điu hành dùng cho máy PDAs (Personal Digital Assistants), Mobil phones,… H thng nhúng còn đc gi là h thng cm tay (Handheld Systems). 1.4 CÁC DCH V CA H IU HÀNH H điu hành thông thng cn cung cp các dch v sau: - Qun lý tin trình - Qun lý b nh chính (RAM) - Qun lý b nh ph (DISK) - Qun lý h thng nhp xut - Qun lý h thng tp tin - Bo v h thng - H thng dòng lnh - Qun lý mng - Các li gi h thng (system calls). 1.4.1 Dch v qun lý tin trình (Process Management) Tin trình là mt chng trình đang thi hành. Trong b nh, ti mt thi đim có th có nhiu tin trình, mt s tin trình là ca h điu hành, mt s tin trình là ca ngi s dng. Khi tin trình đc to ra hoc đang thi hành s đc h điu hành cung cp các tài nguyên đ tin trình hot đng nh là CPU, b nh, tp tin, các thit b nh p/xut… Khi tin trình kt thúc, h điu hành s thu hi li các tài nguyên đã cp phát. Mt tin trình khi thc thi li có th to ra các tin trình con và hình thành cây tin trình. * Các chc nng ca dch v qun lý tin trình + To và hy các tin trình ca ngi s dng và ca h điu hành. OPEN.PTIT.EDU.VN 9 + Tm ngng và thc hin li mt tin trình. + Cung cp c ch đng b các tin trình. + Cung cp c ch liên lc gia các tin trình. + Cung cp c ch kim soát tc nghn. 1.4.2 Dch v qun lý b nh chính (Main Memory Management) Ti mt thi đim, trong b nh chính có th có nhiu tin trình, h điu hành cn phi qun lý phn b nh đã cp cho mi tin trình đ tránh xung đt. * Các chc nng ca dch v qun lý b nh chính + Lu gi thông tin v các v trí trong b nh đã s dng và tin trình nào đang s dng. + Quyt đnh chn tin trình đ np vào b nh chính khi b nh chính có ch trng. + Cp phát b nh cho tin trình và thu hi b nh khi tin trình thc thi xong. 1.4.3 Dch v qun lý b nh ph (Secondary Management)  lu tr d liu lâu dài, d liu cn lu trên đa dng tp tin, ngoài ra đa còn lu gi các tin trình khi b nh RAM không còn đ, vùng nh này gi là b nh o. * Các chc nng ca dch v qun lý b nh ph + Qun lý vùng trng trên đa (Free space management) + Xác đnh v trí ct gi d liu (Storage allocation). + Lp lch cho đa (Disk scheduling). 1.4.4 Dch v qun lý h thng nhp/xut (I/O System Management) H điu hành cn che du nhng đc thù ca các thit b phn cng, bng cách cung cp các chc nng x lý nhp xut đn gin, không ph thuc vào chi tit ca mi loi thit b. 1.4.5 Dch v qun lý h thng tp tin (File Management) Máy tính có th lu tr thông tin trong nhiu dng thit b vt lý khác nhau nh bng t, đa t, đa quang, Mi dng có có kh nng lu tr, tc đ truyn d liu và cách truy xut khác nhau. H điu hành cn đng nht cách truy xut h thng lu tr, đnh ngha mt đn v lu tr là tp tin. * Các chc nng ca dch v qun lý h thng tp tin + H tr các thao tác trên tp tin và th mc (to/xem/xoá/sao chép/di chuyn/đi tên). + Ánh x tp tin trên h thng lu tr ph. + Sao lu tp tin trên các thit b lu tr. OPEN.PTIT.EDU.VN 10 1.4.6 Dch v bo v h thng (Protection System) H điu hành cn cung cp c ch đ đm bo rng tài nguyên ch đc truy xut bi nhng tin trình có quyn. Ví d đm bo rng tin trình ch đc thi hành trong phm vi đa ch ca nó hoc đm bo rng không có tin trình nào đc chim CPU… 1.4.7 Li gi h thng (system call) Li gi h thng là tp lnh do h điu hành cung cp dùng đ giao tip gia tin trình ca ngi dùng và h điu hành, li gi h thng còn gi là ngt. Các li gi h thng có th đc chia thành các loi nh là tp lnh qun lý tin trình, tp lnh qun lý tp tin, tp lnh qun lý thit b, tp lnh dùng đ liên lc gia các tin trình. Mi li gi h thng có mt s hiu duy nht dùng đ phân bit li gi này vi li gi khác. Các đa ch ni cha mã lnh ca các ngt (li gi h thng) đc lu trong mt bng gi là bng vect ngt. Khi tin trình dùng li gi h thng, cn cung cp tham s cho li gi h th ng. Có ba phng pháp mà tin trình dùng đ chuyn tham s cho h điu hành: - Chuyn tham s vào thanh ghi - Lu tr tham s trong mt bng trong b nh và ghi đa ch bng vào thanh ghi - Lu tr tham s vào stack và tham s đc ly ra bi h điu hành . Ví d chuyn đa ch bng X (bng cha các tham s) vào thanh ghi, gi ngt 13. Ngt 13 là li gi h thng do h đ iu hành cung cp. Hình 1.9: truyn tham s dng bng cho ngt 13 Qun lý tin trình Li gi hàm Mô t Pid=fork() To mt tin trình con ging tin trình cha Pid=waitpid(pid, &statloc, options) i mt tin trình con kt thúc Exit(status) Kt thúc vic thc thi tin trình và tr v trng 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

Ngày đăng: 27/03/2014, 15:40

Tài liệu cùng người dùng

Tài liệu liên quan