Đề cương môn học Hệ điều hành - Nguyễn Phú Trường (Phần 1)

pdf 112 trang hapham 770
Bạn đang xem 20 trang mẫu của tài liệu "Đề cương môn học Hệ điều hành - Nguyễn Phú Trường (Phần 1)", để 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:

  • pdfde_cuong_mon_hoc_he_dieu_hanh_nguyen_phu_truong_phan_1.pdf

Nội dung text: Đề cương môn học Hệ điều hành - Nguyễn Phú Trường (Phần 1)

  1. Ĉӄ CѬѪNG MÔN HӐC MÔN: HӊĈIӄU HÀNH Mà MÔNHӐC: TH338 SӔĈVHT: 3 HӐC KÌ: 6 GIҦNG VIÊN: NGUYӈN PHÚ TRѬӠNG IMӨC ĈÍCH YÊU CҪU ƒ Giúp sinh viên hiӇu ÿѭӧc vai trò cӫa hӋÿiӅu hành và cѫ chӃ hoҥt ÿӝng cӫa hӋÿiӅu hành. ƒ Cách thiӃt kӃ hӋÿiӅu hành ƒ Cách ӭng dөng các cѫ chӃ trong viӋc thiӃt kӃ các hӋÿiӅu hành hiӋn ÿҥi II KIӂN THӬC NӄN CҪN THIӂT Mӭc ÿӝ yêu cҫu STT Nӝi dung kiӃn thӭc nӅn Vұn dөng khái Vұn dөng kӻ năng/ Tiên quyӃt niӋm/ mô hình phѭѫng pháp 1KiӃn trúc máy tính x III KIӂN THӬC TOÁN CҪN THIӂT STT Nӝi dung kiӃn thӭcMӭc ÿӝ yêu cҫu HiӇu Vұn dөng Chӭng minh Vұn dөng Khái Công thӭc/ Công thӭc/ Phѭѫng pháp niӋm ÿӏnh lý ÿӏnh lý 1Giҧi thuұtx 2 Ngôn ngӳ Pascal và C x IV TÓM TҲT NӜI DUNG MÔN HӐC ƒ Mô tҧ các ÿiӇm chính yӃu cӫa hӋÿiӅu hành ƒ Vai trò và năng lӵc cӫa hӋÿiӅu hành trong hӋ thӕng máy tính. ƒ Nhӳng vҩn ÿӅ phát sinh trong quá trình thiӃt kӃ hӋÿiӅu hành cNJng nhѭ nhӳng tiӃp cұn khác nhau ÿѭӧc dùng ÿӇ phân tích và giҧi quyӃt nhӳng vҩn ÿӅ ÿó. ƒ Xem xét nhӳng chiӃn lѭӧc hӋÿiӅu hành phә biӃn và cách chúng tác ÿӝng ÿӃn nhӳng dӏch vө cӫa các hӋÿiӅu hành hiӋn ÿҥi.
  2. V Ĉӄ CѬѪNG CHI TIӂT CÁC CHѬѪNG CHѬѪNG I - TӘNG QUAN Vӄ HӊĈIӄU HÀNH1 I.1 Mөc tiêu I.2 Giӟi thiӋu I.3 HӋÿiӅu hành là gì? I.4 HӋ thӕng mainframe I.5 HӋÿӇ bàn (Desktop system) I.6 HӋÿa xӱ lý I.7 HӋ phân tán I.8 HӋ thӕng nhóm (Clustered Systems) I.9 HӋ thӡi thӵc I.10 HӋ xách tay I.11 Tóm tҳt CHѬѪNG II - CҨU TRÚC HӊĈIӄU HÀNH II.1 Mөc ÿích II.2 Giӟi thiӋu II.3 Các thành phҫn hӋ thӕng II.4 Các dӏch vө hӋÿiӅu hành II.5 Lӡi gӑi hӋ thӕng II.6 Các chѭѫng trình hӋ thӕng II.7 Cҩu trúc hӋ thӕng II.8 Máy ҧo II.9 Tóm tҳt CHѬѪNG III - QUÁ TRÌNH III.1 Mөc ÿích III.2 Giӟi thiӋu III.3 Khái niӋm quá trình III.4 Lұp thӡi biӇu quá trình III.5 Thao tác trên quá trình III.6 Giao tiӃp liên quá trình III.7 Tóm tҳt CHѬѪNG IV - ĈӎNH THӠI BIӆU CPU IV.1 Mөc tiêu IV.2 Giӟi thiӋu IV.3 Các khái niӋm cѫ bҧn IV.4 Các tiêu chuҭn ÿӏnh thӡi IV.5 Các giҧi thuұt ÿӏnh thӡi IV.6 Ĉӏnh thӡi biӇu ÿa bӝ xӱ lý IV.7 Ĉӏnh thӡi thӡi gian thӵc IV.8 Ĉánh giá giҧi thuұt IV.9 Tóm tҳt CHѬѪNG V - ĈӖNG BӜ HOÁ QUÁ TRÌNH V.1 Mөc tiêu V.2 Giӟi thiӋu V.3 Tәng quan V.4 Vҩn ÿӅ vùng tѭѫng trөc V.5 Giҧi pháp V.6 Các bài toán ÿӗng bӝ hoá nguyên thuӹ V.7 Tóm tҳt CHѬѪNG VI - DEADLOCK VI.1 Mөc ÿích
  3. VI.2 Giӟi thiӋu VI.3 Mô hình hӋ thӕng VI.4 Ĉһc ÿiӇm deadlock VI.5 Các phѭѫng pháp xӱ lý deadlock VI.6 Ngăn chһn deadlock VI.7 Tránh deadlock VI.8 Phát hiӋn Deadlock VI.9 Phөc hӗi deadlock VI.10 Tóm tҳt CHѬѪNG VII - QUҦN LÝ BӜ NHӞ VII.1 Mөc ÿích VII.2 Giӟi thiӋu VII.3 Ĉһt vҩn ÿӅ VII.4 Hoán vӏ VII.5 Cҩp phát bӝ nhӟ liên tөc VII.6 Cҩp phát không liên tөc VII.7 Tóm tҳt CHѬѪNG VIII - BӜ NHӞҦO VIII.1 Mөc ÿích VIII.2 Giӟi thiӋu VIII.3 KiӃn thӭc nӅn VIII.4 Phân trang theo yêu cҫu VIII.5 Thay thӃ trang VIII.6 Cҩp phát khung trang VIII.7 Trì trӋ toàn hӋ thӕng VIII.8 Các vҩn ÿӅ khác VIII.9 Tóm tҳt CHѬѪNG IX - Hӊ THӔNG TҰP TIN IX.1 Mөc ÿích IX.2 Giӟi thiӋu IX.3 Khái niӋm tұp tin IX.4 Các phѭѫng pháp truy xuҩt IX.5 Cҩu trúc thѭ mөc IX.6 Gҳn hӋ thӕng tұp tin IX.7 Chia sҿ tұp tin IX.8 Bҧo vӋ IX.9 Tóm tҳt CHѬѪNG X - CÀI ĈҺT Hӊ THӔNG TҰP TIN X.1 Mөc ÿích X.2 Giӟi thiӋu X.3 Cҩu trúc hӋ thӕng tұp tin X.4 Cài ÿһt hӋ thӕng tұp tin X.5 Cài ÿһt thѭ mөc X.6 Các phѭѫng pháp cҩp phát X.7 Quҧn lý không gian trӕng X.8 Tóm tҳt CHѬѪNG XI - QUҦN LÝ Hӊ THӔNG NHҰP/XUҨTT XI.1 Mөc ÿích XI.2 Giӟi thiӋu XI.3 Các khái niӋm cѫ bҧn XI.4 Phҫn cӭng nhұp/xuҩt XI.5 Giao diӋn nhұp/xuҩt ӭng dөng
  4. XI.6 HӋ thӕng con nhұp/xuҩt cӫa nhân (kernel I/O subsytem) XI.7 ChuyӇn nhұp/xuҩt tӟi hoҥt ÿӝng phҫn cӭng XI.8 Năng lӵc XI.9 Tóm tҳt VI TÀI LIӊU THAM KHҦO 1. [Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003. 2. [NguyӉn Hoàng ViӋt], Bài gi̫ng H͏Ĉi͉u Hành, Khoa CNTT-ĈH Cҫn Thѫ, 1998 3. [Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons, 2003 4. [Lê Khҳc Nhiên Ân, Hoàng KiӃm], Giáo trình Nh̵p môn h͏ÿi͉u hành, Ĉҥi hӑc Khoa hӑc Tӵ nhiên, 2003. 5. [Trҫn Hҥnh Nhi, Hoàng KiӃm], Giáo trình h͏ÿi͉u hành nâng cao, Ĉҥi hӑc Khoa hӑc Tӵ nhiên,1999. Ngày 23 tháng 04 năm 2004 VI.1.1 DUYӊT BӜ MÔN CÁN BӜ BIÊN SOҤN NguyӉn Phú Trѭӡng
  5. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 TӘNG QUAN Vӄ HӊĈIӄU HÀNH IMөc tiêu Sau khi hӑc xong chѭѫng này, ngѭӡi hӑc nҳm ÿѭӧc nhӳng kiӃn thӭc sau: o HiӇu vai trò cӫa hӋÿiӅu hành trong hӋ thӕng máy tính o BiӃt các giai ÿoҥn phát triӇn cӫa hӋÿiӅu hành o HiӇu sӵ khác biӋt cӫa các hӋÿiӅu hành qua tӯng giai ÿoҥn o HiӇu cách giҧi quyӃt các vҩn ÿӅ phát sinh trong tӯng hӋÿiӅu hành II Giӟi thiӋu HӋÿiӅu hành là mӝt chѭѫng trình quҧn lý phҫn cӭng máy tính. Nó cung cҩp nӅn tҧng cho các chѭѫng trình ӭng dөng và ÿóng vai trò trung gian giao tiӃp giӳa ngѭӡi dùng máy tính và phҫn cӭng cӫa máy tính ÿó. HӋÿiӅu hành thiӃt lұp cho các tác vө này rҩt ÿa dҥng. Mӝt vài hӋÿiӅu hành thiӃt kӃ tiӋn dөng trong khi mӝt sӕ khác thiӃt kӃ hiӋu quҧ hoһc kӃt hӧp cҧ hai. ĈӇ hiӇu hӋÿiӅu hành là gì, trѭӟc hӃt chúng ta phҧi hiӇu chúng ÿѭӧc phát triӇn nhѭ thӃ nào. Trong chѭѫng này chúng ta ÿiӇm lҥi sӵ phát triӇn cӫa hӋÿiӅu hành tӯ nhӳng hӋ thӱ nghiӋm ÿҫu tiên tӟi nhӳng hӋÿa chѭѫng và chia thӡi. Thông qua nhӳng giai ÿoҥn khác nhau chúng ta sӁ thҩy cách thӭc mà nhӳng thành phҫn cӫa hӋÿiӅu hành ÿѭӧc cҧi tiӃn nhѭ nhӳng giҧi pháp tӵ nhiên cho nhӳng vҩn ÿӅ trong nhӳng hӋ thӕng máy tính ban ÿҫu. Xem xét nhӳng lý do phía sau sӵ phát triӇn cӫa hӋÿiӅu hành cho chúng ta mӝt ÿánh giá vӅ nhӳng tác vө gì hӋÿiӅu hành làm và cách hӋÿiӅu hành thӵc hiӋn chúng. III HӋÿiӅu hành là gì? Mӝt hӋÿiӅu hành là mӝt thành phҫn quan trӑng cӫa mӑi hӋ thӕng máy tính. Mӝt hӋ thӕng máy tính có thӇÿѭӧc chia thành bӕn thành phҫn: phҫn cӭng, hӋÿiӅu hành, các chѭѫng trình ӭng dөng và ngѭӡi dùng. o Phҫn cӭng (Hardware): bao gӗm bӝ xӱ lý trung tâm (CPU), bӝ nhӟ, thiӃt bӏ xuҩt/nhұp, cung cҩp tài nguyên cѫ bҧn cho hӋ thӕng. o Các chѭѫng trình ӭng dөng (application programs): trình biên dӏch (compiler), trình soҥn thҧo văn bҧn (text editor), hӋ cѫ sӣ dӳ liӋu (database system), trình duyӋt Web, ÿӏnh nghƭa cách mà trong ÿó các tài nguyên ÿѭӧc sӱ dөng ÿӇ giҧi quyӃt yêu cҫu cӫa ngѭӡi dùng. o Ngѭӡi dùng (user): có nhiӅu loҥi ngѭӡi dùng khác nhau, thӵc hiӋn nhӳng yêu cҫu khác nhau, do ÿó sӁ có nhiӅu ӭng dөng khác nhau. o HӋÿiӅu hành (operating system): hay còn gӑi là chѭѫng trình hӋ thӕng, ÿiӅu khiӇn và hӧp tác viӋc sӱ dөng phҫn cӭng giӳa nhӳng chѭѫng trình ӭng dөng khác nhau cho nhӳng ngѭӡi dùng khác nhau. HӋÿiӅu hành có thӇÿѭӧc khám phá tӯ hai phía: ngѭӡi dùng và hӋ thӕng. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 1
  6. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 User1 User2 . . . UserN compliler text editor . . . database t System andOperating Application System Programs Hardware Hình 0-1 Tҫm nhìn trӯu tѭӧng các thành phҫn cӫa mӝt hӋ thӕng máy tính III.1 Tҫm nhìn ngѭӡi dùng Tҫm nhìn ngѭӡi dùng cӫa máy tính rҩt ÿa dҥng bӣi giao diӋn ÿѭӧc dùng. Hҫu hӃt nhӳng ngѭӡi dùng máy tính ngӗi trѭӟc máy tính cá nhân gӗm có màn hình, bàn phím, chuӝt và bӝ xӱ lý hӋ thӕng (system unit). Mӝt hӋ thӕng nhѭ thӃÿѭӧc thiӃt kӃ cho mӝt ngѭӡi dùng ÿӝc quyӅn sӱ dөng tài nguyên cӫa nó ÿӇ tӕi ѭu hoá công viӋc mà ngѭӡi dùng ÿang thӵc hiӋn. Trong trѭӡng hӧp này, hӋÿiӅu hành ÿѭӧc thiӃt kӃ dӉ dàng cho viӋc sӱ dөng vӟi sӵ quan tâm vӅ năng lӵc nhѭng không quan tӟi viӋc sӱ dөng tài nguyên. Năng lӵc thӵc hiӋn là quan trӑng vӟi ngѭӡi dùng nhѭng không là vҩn ÿӅ nӃu hҫu hӃt hӋ thӕng ÿang rãnh, chӡ tӕc ÿӝ xuҩt/nhұp chұm tӯ phía ngѭӡi dùng. Vài ngѭӡi dùng ngӗi tҥi thiӃt bӏÿҫu cuӕi (terminal) ÿѭӧc nӕi kӃt tӟi máy tính lӟn (mainframe) hay máy tính tҫm trung (minicomputer). Nhӳng ngѭӡi khác ÿang truy xuҩt cùng máy tính thông qua các thiӃt bӏÿҫu cuӕi khác. Nhӳng ngѭӡi dùng này chia sҿ các tài nguyên và có thӇ trao ÿәi thông tin. HӋÿiӅu hành ÿѭӧc thiӃt kӃÿӇ tӕi ѭu hoá viӋc sӱ dөng tài nguyên-ÿӇ ÿҧm bҧo rҵng tҩt cҧ thӡi gian sҷn dùng cӫa CPU, bӝ nhӟ và thiӃt bӏ xuҩt nhұp ÿѭӧc sӱ dөng hӳu hiӋu và không cá nhân ngѭӡi dùng sӱ dөng ÿӝc quyӅn tài nguyên hѫn là chia sҿ công bҵng. Nhӳng ngѭӡi dùng khác ngӗi tҥi trҥm làm viӋc, ÿѭӧc nӕi kӃt tӟi mҥng cӫa các trҥm làm viӋc khác và máy chӫ. Nhӳng ngѭӡi dùng này có tài nguyên tұn hiӃn là trҥm làm viӋc cӫa mình nhѭng hӑ cNJng chia sҿ các tài nguyên trên mҥng và các máy chӫ- tұp tin, tính toán và các máy phөc vө in. Do ÿó, hӋÿiӅu hành cӫa hӑÿѭӧc thiӃt kӃÿӇ thoҧ hiӋp giӳa khҧ năng sӱ dөng cá nhân và viӋc tұn dөng tài nguyên. Gҫn ÿây, sӵÿa dҥng cӫa máy tính xách tay trӣ thành thӡi trang cho nhӳng ngѭӡi làm viӋc trong lãnh vӵc công nghӋ thông tin. Các thiӃt bӏ này ÿѭӧc sӱ dөng chӍ bӣi cá nhân ngѭӡi dùng. Mӝt vài máy tính này ÿѭӧc nӕi mҥng hoһc nӕi trӵc tiӃp bҵng dây hay thông qua các modem không dây. Do sӵ giӟi hҥn vӅ năng lѭӧng (ÿiӋn) và giao diӋn, chúng thӵc hiӋn tѭѫng ÿӕi ít các thao tác ӣ xa. HӋÿiӅu hành ÿѭӧc thiӃt kӃ chӫ yӃu cho viӋc sӱ dөng cá nhân nhѭng năng lӵc thӵc hiӋn trên thӡi gian sӕng cӫa pin cNJng là yӃu tӕ quan trӑng. Mӝt sӕ máy tính có rҩt ít hay không có tҫm nhìn ngѭӡi dùng. Thí dө, các máy tính ÿѭӧc nhúng vào các thiӃt bӏ gia ÿình và xe ôtô có thӇ có mӝt bҧng sӕ và các ÿèn hiӇn thӏ trҥng thái mӣ, tҳt nhѭng hҫu hӃt chúng và các hӋÿiӅu hành ÿѭӧc thiӃt kӃÿӇ chҥy mà không cҫn giao tiӃp. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 2
  7. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 III.2 Tҫm nhìn hӋ thӕng Tӯ quan ÿiӇm cӫa máy tính, hӋÿiӅu hành là chѭѫng trình gҫn gӫi vӟi phҫn cӭng. Chúng ta có thӇ thҩy mӝt hӋÿiӅu hành nhѭ bӝ cҩp phát tài nguyên. HӋ thӕng máy tính có nhiӅu tài nguyên - phҫn cӭng và phҫn mӅm - mà có thӇÿѭӧc yêu cҫu ÿӇ giҧi quyӃt mӝt vҩn ÿӅ: thӡi gian CPU, không gian bӝ nhӟ, không gian lѭu trӳ tұp tin, các thiӃt bӏ xuҩt/nhұp, HӋÿiӅu hành hoҥt ÿӝng nhѭ bӝ quҧn lý tài nguyên. Ĉѭѫng ÿҫu vӟi mӝt lѭӧng lӟn các yêu cҫu có thӇ xung ÿӝt vӅ tài nguyên, hӋÿiӅu hành phҧi quyӃt ÿӏnh cách cҩp phát tài nguyên tӟi nhӳng chѭѫng trình cө thӇ và ngѭӡi dùng ÿӇ có thӇ ÿiӅu hành hӋ thӕng máy tính hӳu hiӋu và công bҵng. Mӝt tҫm nhìn khác cӫa hӋÿiӅu hành nhҩn mҥnh sӵ cҫn thiӃt ÿӇ ÿiӅu khiӇn các thiӃt bӏ xuҩt/nhұp khác nhau và chѭѫng trình ngѭӡi dùng. Mӝt hӋÿiӅu hành là mӝt chѭѫng trình ÿiӅu khiӇn. Chѭѫng trình ÿiӅu khiӇn quҧn lý sӵ thӵc thi cӫa các chѭѫng trình ngѭӡi dùng ÿӇ ngăn chһn lӛi và viӋc sӱ dөng không hӧp lý máy tính. Nó ÿһc biӋt quan tâm vӟi nhӳng thao tác và ÿiӅu khiӇn các thiӃt bӏ nhұp/xuҩt. Nhìn chung, không có ÿӏnh nghƭa hoàn toàn ÿҫy ÿӫ vӅ hӋÿiӅu hành. Các hӋ ÿiӅu hành tӗn tҥi vì chúng là cách hӧp lý ÿӇ giҧi quyӃt vҩn ÿӅ tҥo ra mӝt hӋ thӕng máy tính có thӇ sӱ dөng. Mөc tiêu cѫ bҧn cӫa hӋ thӕng máy tính là thӵc thi chѭѫng trình ngѭӡi dùng và giҧi quyӃt vҩn ÿӅ ngѭӡi dùng dӉ dàng hѫn. Hѭӟng ÿӃn mөc tiêu này, phҫn cӭng máy tính ÿѭӧc xây dӵng. Tuy nhiên, chӍÿѫn thuҫn là phҫn cӭng thì không dӉ sӱ dөng và phát triӇn các chѭѫng trình ӭng dөng. Các chѭѫng trình khác nhau này ÿòi hӓi nhӳng thao tác chung nào ÿó, chҷng hҥn nhѭÿiӅu khiӇn thiӃt bӏ xuҩt/nhұp. Sau ÿó, nhӳng chӭc năng chung vӅÿiӅu khiӇn và cҩp phát tài nguyên ÿѭӧc ÿһt lҥi vӟi nhau vào mӝt bӝ phұn phҫn mӅm gӑi là hӋÿiӅu hành. CNJng không có ÿӏnh nghƭa bao quát nào ÿѭӧc chҩp nhұn ÿӇ xác ÿӏnh phҫn gì thuӝc vӅ hӋÿiӅu hành, phҫn gì không. Mӝt quan ÿiӇm ÿѫn giҧn là mӑi thӭ liên quan khi chúng ta ra lӋnh hӋÿiӅu hành nên ÿѭӧc xem xét. Tuy nhiên, nhӳng yêu cҫu vӅ bӝ nhӟ và nhӳng ÿһc ÿiӇm bên trong rҩt khác nhau trong tӯng hӋ thӕng. Mӝt ÿӏnh nghƭa bao quát hѫn vӅ hӋÿiӅu hành là mӝt chѭѫng trình chҥy liên tөc trên máy tính (thѭӡng gӑi là nhân kernel), nhӳng chѭѫng trình còn lҥi thuӝc vӅ chѭѫng trình ӭng dөng. III.3 Mөc tiêu hӋ thӕng Ĉӏnh nghƭa nhӳng gì hӋÿiӅu hành làm thì dӉ hѫn xác ÿӏnh hӋÿiӅu hành là gì. Mөc ÿích chính cӫa hӋÿiӅu hành là dӉ dàng sӱ dөng. Vì sӵ tӗn tҥi cӫa hӋÿiӅu hành hӛ trӧ nhiӅu cho máy tính trong viӋc ÿáp ӭng các ӭng dөng cӫa ngѭӡi dùng. Tҫm nhìn này ÿһc biӋt rõ ràng hѫn khi nhìn hӋÿiӅu hành trên các máy tính cá nhân. Mөc tiêu thӭ hai cӫa hӋÿiӅu hành là ÿiӅu hành hӳu hiӋn hӋ thӕng máy tính. Mөc tiêu này ÿһc biӋt quan trӑng cho các hӋ thӕng lӟn, ÿѭӧc chia sҿ, nhiӅu ngѭӡi dùng. Nhӳng hӋ thӕng tiêu biӇu này khá ÿҳt, khai thác hiӋu quҧ nhҩt các hӋ thӕng này luôn là ÿiӅu mong muӕn. Tuy nhiên, hai mөc tiêu tiӋn dөng và hӳu hiӋu ÿôi khi mâu thuүn nhau. Trong quá khӭ, xem xét tính hӳu hiӋu thѭӡng quan trӑng hѫn tính tiӋn dөng. Do ÿó, lý thuyӃt hӋÿiӅu hành tұp trung nhiӅu vào viӋc tӕi ѭu hoá sӱ dөng tài nguyên tính toán. HӋÿiӅu hành cNJng phát triӇn dҫn theo thӡi gian. Thí dө, UNIX bҳt ÿҫu vӟi bàn phím và máy in nhѭ giao diӋn cӫa nó giӟi hҥn tính tiӋn dөng ÿӕi vӟi ngѭӡi dùng. Qua thӡi gian, phҫn cӭng thay ÿәi và UNIX ÿѭӧc gҳn vào phҫn cӭng mӟi vӟi giao diӋn thân thiӋn vӟi ngѭӡi dùng hѫn. NhiӅu giao diӋn ngѭӡi dùng ÿӗ hoҥ GUIs (graphical user interfaces) ÿѭӧc bә sung cho phép tiӋn dөng hѫn vӟi ngѭӡi dùng trong khi vүn quan tâm tính hiӋu quҧ. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 3
  8. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 ThiӃt kӃ hӋÿiӅu hành là mӝt công viӋc phӭc tҥp. Ngѭӡi thiӃt kӃ gһp phҧi nhiӅu sӵ thoҧ hiӋp trong thiӃt kӃ và cài ÿһt. NhiӅu ngѭӡi tham gia không chӍ mang ÿӃn hӋÿiӅu hành nhӳng lӧi ÿiӇm mà còn liên tөc xem xét và nâng cҩp. ĈӇ thҩy rõ nhӳng hӋÿiӅu hành là gì và nhӳng gì hӋÿiӅu hành làm, chúng ta xem xét cách chúng phát triӇn trong bӕn mѭѫi lăm năm qua. Bҵng cách lҫn theo sӵ tiӃn triӇn, chúng ta có thӇ xác ÿӏnh nhӳng thành phҫn cӫa hӋÿiӅu hành và thҩy cách thӭc và lý do hӋÿiӅu hành phát triӇn nhѭ chúng có. HӋÿiӅu hành và kiӃn trúc máy tính có mӕi quan hӋ khăng khít nhau. ĈӇ dӉ dàng sӱ dөng phҫn cӭng, hӋÿiӅu hành ÿѭӧc phát triӇn. Sau ÿó, các ngѭӡi dùng hӋ ÿiӅu hành ÿӅ nghӏ nhӳng chuyӇn ÿәi trong thiӃt kӃ phҫn cӭng ÿӇ ÿѫn giҧn chúng. Nhìn lҥi lӏch sӱ ngҳn ngӫi này, chú trӑng cách giҧi quyӃt nhӳng vҩn ÿӅ vӅ hӋÿiӅu hành ÿӇ giӟi thiӋu nhӳng ÿһc ÿiӇm phҫn cӭng. IV HӋ thӕng mainframe Nhӳng hӋ thӕng máy tính mainframe là nhӳng máy tính ÿҫu tiên ÿѭӧc dùng ÿӇ xӱ lý ӭng dөng thѭѫng mҥi và khoa hӑc. Trong phҫn này, chúng ta lҫn theo sӵ phát triӇn cӫa hӋ thӕng mainframe tӯ các hӋ thӕng bó (batch systems), ӣÿó máy tính chӍ chҥy mӝt-và chӍ mӝt -ӭng dөng, tӟi các hӋ chia sҿ thӡi gian (time-shared systems), mà cho phép ngѭӡi dùng giao tiӃp vӟi hӋ thӕng máy tính. IV.1 HӋ thӕng bó Nhӳng máy tính thӡi kǤÿҫu là nhӳng máy cӵc lӟn chҥy tӯ mӝt thiӃt bӏ cuӕi (console). Nhӳng thiӃt bӏ nhұp thѭӡng là nhӳng bӝÿӑc thҿ và các әÿƭa băng tӯ. Các thiӃt bӏ xuҩt thông thѭӡng thѭӡng là nhӳng máy in dòng (line printers), các әÿƭa tӯ và các phiӃu ÿөc lӛ. Ngѭӡi dùng không giao tiӃp trӵc tiӃp vӟi các hӋ thӕng máy tính. Thay vào ÿó, ngѭӡi dùng chuҭn bӏ mӝt công viӋc- chӭa chѭѫng trình, dӳ liӋu và các thông tin ÿiӅu khiӇn vӅ tính tӵ nhiên cӫa công viӋc-và gӣi nó ÿӃn ngѭӡi ÿiӅu hành máy tính. Công viӋc này thѭӡng ÿѭӧc thӵc hiӋn trong các phiӃu ÿөc lӛ. Tҥi nhӳng thӡi ÿiӇm sau ÿó (sau vài phút, giӡ hay ngày), dӳ liӋu xuҩt xuҩt hiӋn. Dӳ liӋu xuҩt chӭa kӃt quҧ chѭѫng trình cNJng nhѭ kӃt xuҩt bӝ nhӟ cuӕi cùng và nӝi dung các thanh ghi cho viӋc gӣ rӕi. HӋÿiӅu hành trong các máy tính thӡi kǤÿҫu này tѭѫng ÿӕi ÿѫn giҧn. Tác vө chính là chuyӇn ÿiӅu khiӇn tӵÿӝng tӯ mӝt công viӋc này sang công viӋc khác. HӋ ÿiӅu hành luôn ÿѭӧc thѭӡng trú trong bӝ nhӟ. HӋÿiӅu hành Vùng chѭѫng trình ngѭӡi dùng Hình 0-2 Sҳp xӃp bӝ nhӟ cho mӝt hӋ thӕng bó ÿѫn giҧn Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 4
  9. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 ĈӇ tăng tӕc viӋc xӱ lý, ngѭӡi ÿiӅu hành bó các công viӋc có cùng yêu cҫu và chҥy chúng thông qua máy tính nhѭ mӝt nhóm. Do ÿó, các lұp trình viên sӁÿѭa chѭѫng trình cӫa hӑ cho ngѭӡi ÿiӅu hành. Ngѭӡi ÿiӅu hành sӁ sҳp xӃp chѭѫng trình thành nhӳng bó vӟi cùng yêu cҫu và khi máy tính sҷn dùng sӁ chҥy mӛi bó này. Dӳ liӋu xuҩt tӯ mӛi công viӋc sӁ gӣi lҥi cho lұp trình viên tѭѫng ӭng. Trong môi trѭӡng thӵc thi này, CPU luôn rҧnh vì tӕc ÿӝ cӫa các thiӃt bӏ xuҩt/nhұp dҥng cѫ thӵc chҩt chұm hѫn tӕc ÿӝ cӫa các thiӃt bӏÿiӋn. Ngay cҧ mӝt CPU chұm (vӟi hàng ngàn chӍ thӏ lӋnh ÿѭӧc thӵc thi trên giây) cNJng chӍ làm viӋc trong vài phҫn trăm giây. Thêm vào ÿó, mӝt bӝÿӑc thҿ nhanh có thӇÿӑc 1200 thҿ trong thӡi gian 1 phút (hay 20 thҿ trên giây). Do ÿó, sӵ khác biӋt giӳa tӕc ÿӝ CPU và thiӃt bӏ xuҩt/nhұp cӫa nó có thӇ là 3 lҫn hay nhiӅu hѫn. Dƭ nhiên theo thӡi gian, sӵ tiӃn bӝ trong công nghӋ dүn ÿӃn sӵ ra ÿӡi nhӳng thiӃt bӏ nhұp/xuҩt nhanh hѫn. Tuy nhiên, tӕc ÿӝ CPU tăng tӟi mӝt tӹ lӋ lӟn hѫn vì thӃ vҩn ÿӅ không nhӳng không ÿѭӧc giҧi quyӃt mà còn làm tăng. Giӟi thiӋu công nghӋÿƭa cho phép hӋÿiӅu hành giӳ tҩt cҧ công viӋc trên mӝt ÿƭa hѫn trong mӝt bӝÿӑc thҿ tuҫn tӵ. Vӟi viӋc truy xuҩt trӵc tiӃp tӟi nhiӅu công viӋc, hӋÿiӅu hành có thӇ thӵc hiӋn ÿӏnh thӡi công viӋc, ÿӇ sӱ dөng tài nguyên và thӵc hiӋn các tác vө hӳu hiӋu. IV.2 HӋÿa chѭѫng Mӝt khía cҥnh quan trӑng nhҩt cӫa ÿӏnh thӡi công viӋc là khҧ năng ÿa chѭѫng. Thông thѭӡng, mӝt ngѭӡi dùng giӳ CPU hay các thiӃt bӏ xuҩt/nhұp luôn bұn. Ĉa chѭѫng gia tăng khҧ năng sӱ dөng CPU bҵng cách tә chӭc các công viӋc ÿӇ CPU luôn có mӝt công viӋc ÿӇ thӵc thi. Ý tѭӣng cӫa kӻ thuұt ÿa chѭѫng có thӇ minh hoҥ nhѭ sau: HӋÿiӅu hành giӳ nhiӅu công viӋc trong bӝ nhӟ tҥi mӝt thӡi ÿiӇm. Tұp hӧp các công viӋc này là tұp con cӫa các công viӋc ÿѭӧc giӳ trong vùng công viӋc-bӣi vì sӕ lѭӧng các công viӋc có thӇ ÿѭӧc giӳ cùng lúc trong bӝ nhӟ thѭӡng nhӓ hѫn sӕ công viӋc có thӇ có trong vùng ÿӋm. HӋÿiӅu hành sӁ lҩy và bҳt ÿҫu thӵc thi mӝt trong các công viӋc có trong bӝ nhӟ. Cuӕi cùng, công viӋc phҧi chӡ mӝt vài tác vө nhѭ mӝt thao tác xuҩt/nhұp ÿӇ hoàn thành. Trong hӋ thӕng ÿѫn chѭѫng, CPU sӁ chӡӣ trҥng thái rӛi. Trong hӋ thӕng ÿa chѭѫng, hӋÿiӅu hành sӁ chuyӇn sang thӵc thi công viӋc khác. Cuӕi cùng, công viӋc ÿҫu tiên kӃt thúc viӋc chӡ và nhұn CPU trӣ lҥi. ChӍ cҫn ít nhҩt mӝt công viӋc cҫn thӵc thi, CPU sӁ không bao giӡӣ trҥng thái rӛi. 0 HӋÿiӅu hành Công viӋc 1 Công viӋc 2 Công viӋc 3 Công vi c 4 512K Ӌ Hình 0-3 Sҳp xӃp bӝ nhӟ cho hӋÿa chѭѫng Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 5
  10. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 Ĉa chѭѫng là mӝt trѭӡng hӧp ÿҫu tiên khi hӋÿiӅu hành phҧi thӵc hiӋn quyӃt ÿӏnh cho nhӳng ngѭӡi dùng. Do ÿó, hӋÿiӅu hành ÿa chѭѫng tѭѫng ÿӕi tinh vi. Tҩt cҧ công viӋc ÿѭa vào hӋ thӕng ÿѭӧc giӳ trong vùng công viӋc. Vùng này chӭa tҩt cҧ quá trình ÿӏnh vӏ trên ÿƭa chӡÿѭӧc cҩp phát bӝ nhӟ chính. NӃu nhiӅu công viӋc sҷn sàng ÿѭӧc mang vào bӝ nhӟ và nӃu không ÿӫ không gian cho tҩt cҧ thì hӋÿiӅu hành phҧi chӑn mӝt trong chúng. Khi hӋÿiӅu hành chӑn mӝt công viӋc tӯ vùng công viӋc, nó nҥp công viӋc ÿó vào bӝ nhӟÿӇ thӵc thi. Có nhiӅu chѭѫng trình trong bӝ nhӟ tҥi cùng thӡi ÿiӇm yêu cҫu phҧi có sӵ quҧn lý bӝ nhӟ. Ngoài ra, nӃu nhiӅu công viӋc sҷn sàng chҥy cùng thӡi ÿiӇm, hӋ thӕng phҧi chӑn mӝt trong chúng. Thӵc hiӋn quyӃt ÿӏnh này là ÿӏnh thӡi CPU. Cuӕi cùng, nhiӅu công viӋc chҥy ÿӗng hành ÿòi hӓi hoҥt ÿӝng cӫa chúng có thӇ ҧnh hѭӣng tӟi mӝt công viӋc khác thì bӏ hҥn chӃ trong tҩt cҧ giai ÿoҥn cӫa hӋÿiӅu hành bao gӗm ÿӏnh thӡi quá trình, lѭu trӳÿƭa, quҧn lý bӝ nhӟ. IV.3 HӋ chia thӡi HӋ thӕng bó-ÿa chѭѫng cung cҩp mӝt môi trѭӡng nѫi mà nhiӅu tài nguyên khác nhau (chҷng hҥn nhѭ CPU, bӝ nhӟ, các thiӃt bӏ ngoҥi vi) ÿѭӧc sӱ dөng hiӋu quҧ. Tuy nhiên, nó không cung cҩp giao tiӃp ngѭӡi dùng vӟi hӋ thӕng máy tính. Chia thӡi (hay ÿa nhiӋm) là sӵ mӣ rӝng luұn lý cӫa ÿa chѭѫng. CPU thӵc thi nhiӅu công viӋc bҵng cách chuyӇn ÿәi qua lҥi giӳa chúng, nhѭng nhӳng chuyӇn ÿәi xҧy ra quá thѭӡng xuyên ÿӇ ngѭӡi dùng có thӇ giao tiӃp vӟi mӛi chѭѫng trình trong khi chҥy. Mӝt hӋ thӕng máy tính giao tiӃp (interactive computer) hay thӵc hành (hands- on computer system) cung cҩp giao tiӃp trӵc tuyӃn giӳa ngѭӡi dùng và hӋ thӕng. Ngѭӡi dùng cho nhӳng chӍ thӏ tӟi hӋÿiӅu hành hay trӵc tiӃp tӟi mӝt chѭѫng trình, sӱ dөng bàn phím hay chuӝt và chӡ nhұn kӃt quҧ tӭc thì. Do ÿó, thӡi gian ÿáp ӭng nên ngҳn-ÿiӇn hình trong phҥm vi 1 giây hay ít hѫn. Mӝt hӋ thӕng chia thӡi cho phép nhiӅu ngѭӡi dùng chia sҿ máy tính cùng mӝt thӡi ÿiӇm. Vì mӛi hoҥt ÿӝng hay lӋnh trong hӋ chia thӡi ÿѭӧc phөc vө ngҳn, chӍ mӝt ít thӡi gian CPU ÿѭӧc yêu cҫu cho mӛi ngѭӡi dùng. Khi hӋ thӕng nhanh chóng chuyӇn tӯ mӝt ngѭӡi dùng này sang ngѭӡi dùng kӃ, mӛi ngѭӡi dùng ÿѭӧc cho cҧm giác rҵng toàn bӝ hӋ thӕng máy tính ÿѭӧc tұn hiӃn cho mình, nhѭng thұt sӵ máy tính ÿó ÿang ÿѭӧc chia sҿ cho nhiӅu ngѭӡi dùng. Mӝt hӋÿiӅu hành chia thӡi sӱ dөng ÿӏnh thӡi CPU và ÿa chѭѫng ÿӇ cung cҩp mӛi ngѭӡi dùng vӟi mӝt phҫn nhӓ cӫa máy tính chia thӡi. Mӛi ngѭӡi dùng có ít nhҩt mӝt chѭѫng trình riêng trong bӝ nhӟ. Mӝt chѭѫng trình ÿѭӧc nҥp vào trong bӝ nhӟ và thӵc thi thѭӡng ÿѭӧc gӑi là mӝt quá trình. Khi mӝt quá trình thӵc thi, ÿiӇn hình nó thӵc thi chӍ tҥi mӝt thӡi ÿiӇm ngҳn trѭӟc khi nó kӃt thúc hay cҫn thӵc hiӋn xuҩt/nhұp. Xuҩt/nhұp có thӇÿѭӧc giao tiӃp; nghƭa là dӳ liӋu xuҩt hiӇn thӏ trên màn hình cho ngѭӡi dùng và dӳ liӋu nhұp tӯ bàn phím, chuӝt hay thiӃt bӏ khác. Vì giao tiӃp xuҩt/nhұp chӫ yӃu chҥy ӣ “tӕc ÿӝ ngѭӡi dùng”, nó có thӇ mҩt mӝt khoҧng thӡi gian dài ÿӇ hoàn thành. Thí dө, dӳ liӋu nhұp có thӇ bӏ giӟi hҥn bӣi tӕc ÿӝ nhұp cӫa ngѭӡi dùng; 7 ký tӵ trên giây là nhanh ÿӕi vӟi ngѭӡi dùng, nhѭng quá chұm so vӟi máy tính. Thay vì ÿӇ CPU rҧnh khi ngѭӡi dùng nhұp liӋu, hӋÿiӅu hành sӁ nhanh chóng chuyӇn CPU tӟi mӝt chѭѫng trình khác. HӋÿiӅu hành chia thӡi phӭc tҥp hѫn nhiӅu so vӟi hӋÿiӅu hành ÿa chѭѫng. Trong cҧ hai dҥng, nhiӅu công viӋc ÿѭӧc giӳ cùng lúc trong bӝ nhӟ vì thӃ hӋ thӕng phҧi có cѫ chӃ quҧn lý bӝ nhӟ và bҧo vӋ. ĈӇ ÿҥt ÿѭӧc thӡi gian ÿáp ӭng hӧp lý, các công viӋc có thӇÿѭӧc hoán vӏ vào ra bӝ nhӟ chính. Mӝt phѭѫng pháp chung ÿӇ ÿҥt mөc tiêu này là bӝ nhӟҧo, là kӻ thuұt cho phép viӋc thӵc thi cӫa mӝt công viӋc có thӇ không hoàn toàn ӣ trong bӝ nhӟ. Ѭu ÿiӇm chính cӫa cѫ chӃ bӝ nhӟҧo là các chѭѫng Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 6
  11. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 trình có thӇ lӟn hѫn bӝ nhӟ vұt lý. Ngoài ra, nó trӯu tѭӧng hoá bӝ nhӟ chính thành mҧng lѭu trӳ lӟn và ÿӗng nhҩt, chia bӝ nhӟ luұn lý nhѭÿѭӧc thҩy bӣi ngѭӡi dùng tӯ bӝ nhӟ vұt lý. Sӵ sҳp xӃp này giҧi phóng lұp trình viên quan tâm ÿӃn giӟi hҥn lѭu trӳ cӫa bӝ nhӟ. Các hӋ chia thӡi cNJng phҧi cung cҩp mӝt hӋ thӕng tұp tin. HӋ thӕng tұp tin ÿӏnh vӏ trên mӝt tұp hӧp ÿƭa; do ÿó quҧn lý ÿƭa phҧi ÿѭӧc cung cҩp. HӋ chia thӡi cNJng cung cҩp cѫ chӃ cho viӋc thӵc thi ÿӗng hành, yêu cҫu cѫ chӃÿӏnh thӡi CPU tinh vi. ĈӇ ÿҧm bҧo thӭ tӵ thӵc thi, hӋ thӕng phҧi cung cҩp các cѫ chӃ cho viӋc ÿӗng bӝ hoá và giao tiӃp công viӋc, và có thӇÿҧm bҧo rҵng các công viӋc không bӏ deadlock, chӡ ÿӧi công viӋc khác mãi mãi. Ý tѭӣng chia thӡi ÿѭӧc giӟi thiӋu trong nhӳng năm 1960, nhѭng vì hӋ chia thӡi là phӭc tҥp và rҩt ÿҳt ÿӇ xây dӵng, chúng không phә biӃn cho tӟi nhӳng năm 1970. Mһc dù xӱ lý theo bó vүn ÿѭӧc thӵc hiӋn nhѭng hҫu hӃt hӋ thӕng ngày nay là chia thӡi. Do ÿó, ÿa chѭѫng và chia thӡi là nhӳng chӫÿӃ trung tâm cӫa hӋÿiӅu hành hiӋn ÿҥi và chúng là chӫÿӅ trӑng tâm cӫa giáo trình này. VHӋÿӇ bàn (Desktop system) Máy tính cá nhân (PC) xuҩt hiӋn vào nhӳng năm 1970. Trong suӕt thұp niên ÿҫu, CPU trong PC thiӃu các ÿһc ÿiӇm cҫn thiӃt ÿӇ bҧo vӋ hӋÿiӅu hành tӯ chѭѫng trình ngѭӡi dùng. Do ÿó, các hӋÿiӅu hành PC không là ÿa ngѭӡi dùng hoһc ÿa nhiӋm. Tuy nhiên, các mөc tiêu cӫa hӋÿiӅu hành này thay ÿәi theo thӡi gian; thay vì tӕi ѭu hoá viӋc sӱ dөng CPU và thiӃt bӏ ngoҥi vi, các hӋ thӕng chӑn lӵa tӕi ѭu hoá sӵ tiӋn dөng và ÿáp ӭng ngѭӡi dùng. Các hӋ thӕng này gӗm các PC chҥy các hӋÿiӅu hành Microsoft Windows và Apple Macintosh. HӋÿiӅu hành MS-DOS tӯ Microsoft ÿѭӧc thay thӃ bҵng nhiӅu ҩn bҧn cӫa Microsoft Windows và IBM ÿã nâng cҩp MS-DOS thành hӋÿa nhiӋm OS/2. HӋÿiӅu hành Apple Macintosh ÿѭӧc gҳn nhiӅu phҫn cӭng hiӋn ÿҥi hѫn và ngày nay chӭa nhiӅu ÿһc ÿiӇm mӟi nhѭ bӝ nhӟҧo và ÿa nhiӋm. Vӟi sӵ phát hành MacOS X, lõi cӫa hӋÿiӅu hành ngày nay dӵa trên Mach và FreeBSD UNIX cho sӵ mӣ rӝng, năng lӵc và ÿһc ÿiӇm nhѭng nó vүn giӳ lҥi giao diӋn ÿӗ hoҥ ngѭӡi dùng GUI. LINUX, mӝt hӋÿiӅu hành tѭѫng tӵ nhѭ UNIX sҷn dùng cho máy PC trӣ nên phә biӃn gҫn ÿây. HӋÿiӅu hành cho các máy tính này có nhӳng thuұn lӧi trong nhiӅu cách tӯ sӵ phát triӇn cӫa hӋÿiӅu hành cho mainframes. Máy vi tính (microcomputer) lұp tӭc có thӇÿѭӧc chҩp nhұn mӝt sӕ công nghӋÿѭӧc phát triӇn cho hӋÿiӅu hành lӟn hѫn. Thêm vào ÿó, chi phí phҫn cӭng cho máy vi tính ÿӫ thҩp ÿӇ các cá nhân có thӇ mӝt mình sӱ dөng máy tính, và sӱ dөng CPU không còn quan trӑng nӳa. Do ÿó, nhӳng quyӃt ÿӏnh thiӃt kӃÿѭӧc thӵc hiӋn trong hӋÿiӅu hành cho mainframes có thӇ không hӧp lý cho các hӋ thӕng nhӓ hѫn. Nhӳng quyӃt ÿӏnh thiӃt kӃ khác vүn ÿѭӧc áp dөng. Thí dө, trѭӟc hӃt bҧo vӋ hӋ thӕng tұp tin không cҫn thiӃt trên máy cá nhân. Tuy nhiên, hiӋn nay các máy tính này thѭӡng ÿѭӧc nӕi vào các máy tính khác qua mҥng cөc bӝ hay Internet. Khi nhӳng máy tính khác và ngѭӡi dùng khác có thӇ truy xuҩt các tұp tin này trên mӝt PC, bҧo vӋ tұp tin mӝt lҫn nӳa cNJng trӣ thành mӝt ÿһc ÿiӇm cҫn thiӃt cӫa hӋÿiӅu hành. Sӵ thiӃu bҧo vӋ tҥo ÿiӅu kiӋn dӉ dàng cho nhӳng chѭѫng trình hiӇm phá huӹ dӳ liӋu trên nhӳng hӋ thӕng nhѭ MS-DOS và hӋÿiӅu hành Macintosh. Các chѭѫng trình này có thӇ tӵ nhân bҧn và phát tán nhanh chóng bҵng cѫ chӃ worm hay virus và làm tê liӋt mҥng cӫa các công ty hay thұm chí mҥng toàn cҫu. Ĉһc ÿiӇm chia thӡi ÿѭӧc cҧi tiӃn nhѭ bӝ nhӟ bҧo vӋ và quyӅn tұp tin là chѭa ÿӫ ÿӇ bҧo vӋ mӝt hӋ thӕng tӯ sӵ tҩn công. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 7
  12. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 VI HӋÿa xӱ lý Hҫu hӃt các hӋ thӕng ngày nay là các hӋ thӕng ÿѫn xӱ lý; nghƭa là chӍ có mӝt CPU chính. Tuy nhiên, các hӋ thӕng ÿa xӱ lý (hay còn gӑi là hӋ song song hay hӋ kӃt nӕi chһt) ÿѭӧc phát triӇn rҩt quan trӑng. Các hӋ thӕng nhѭ thӃ có nhiӅu hѫn mӝt bӝ xӱ lý trong giao tiӃp gҫn, chia sҿ bus máy tính, ÿӗng hӗ, ÿôi khi còn là bӝ nhӟ hay thiӃt bӏ ngoҥi vi. HӋ thӕng ÿa xӱ lý có ba ѭu ÿiӇm chính: o Thông lѭӧng ÿѭӧc gia tăng: bҵng cách tăng sӕ lѭӧng bӝ xӱ lý, chúng ta hy vӑng thӵc hiӋn nhiӅu công viӋc hѫn vӟi thӡi gian ít hѫn. TӍ lӋ giӳa sӵ tăng tӕc vӟi N bӝ xӱ lý không là N; ÿúng hѫn nó nhӓ hѫn N. Trong khi nhiӅu bӝ xӱ lý cӝng tác trên mӝt công viӋc, mӝt lѭӧng chi phí phҧi chӏu trong viӋc giӳ các thành phҫn làm viӋc phù hӧp. Chi phí này cӝng vӟi chi phí cҥnh tranh tài nguyên ÿѭӧc chia sҿ, làm giҧm kӃt quҧÿѭӧc mong ÿӧi tӯ nhӳng bӝ xӱ lý bә sung. Tѭѫng tӵ nhѭ mӝt nhóm gӗm N lұp trình viên làm viӋc vӟi nhau không dүn ÿӃn kӃt quҧ công viӋc ÿang ÿҥt ÿѭӧc tăng N lҫn. o Tính kinh tӃ cӫa viӋc mӣ rӝng: hӋ thӕng ÿa xӱ lý có thӇ tiӃt kiӋm nhiӅu chi phí hѫn hӋ thӕng ÿѫn bӝ xӱ lý, bӣi vì chúng có thӇ chia sҿ ngoҥi vi, thiӃt bӏ lѭu trӳ và ÿiӋn. NӃu nhiӅu chѭѫng trình ÿiӅu hành trên cùng tұp hӧp dӳ liӋu thì lѭu trӳ dӳ liӋu ÿó trên mӝt ÿƭa và tҩt cҧ bӝ xӱ lý chia sҿ chúng sӁ rҿ hѫn là có nhiӅu máy tính vӟi ÿƭa cөc bӝ và nhiӅu bҧn sao dӳ liӋu. o Khҧ năng tin cұy ÿѭӧc gia tăng: nӃu các chӭc năng ÿѭӧc phân bә hӧp lý giӳa các bӝ xӱ lý thì lӛi trên mӝt bӝ xӱ lý sӁ không dӯng hӋ thӕng, chӍ năng lӵc bӏ giҧm. NӃu chúng ta có 10 bӝ xӱ lý và có 1 bӝ xӱ lý bӏ sӵ cӕ thì mӛi bӝ xӱ lý trong 9 bӝ xӱ lý còn lҥi phҧi chia sҿ cӫa công viӋc cӫa bӝ xӱ lý bӏ lӛi. Do ÿó, toàn bӝ hӋ thӕng chӍ giҧm 10% năng lӵc hѫn là dӯng hoҥt ÿӝng. Các hӋ thӕng ÿѭӧc thiӃt kӃ nhѭ thӃÿѭӧc gӑi là hӋ thӕng có khҧ năng chӏu lӛi (fault tolerant). ViӋc ÿiӅu hành vүn tiӃp tөc trong sӵ hiӋn diӋn cӫa lӛi yêu cҫu mӝt cѫ chӃ cho phép lӛi ÿѭӧc phát hiӋn, chuҭn ÿoán và sӱa lӛi nӃu có thӇ. HӋ thӕng Tandem sӱ dөng sӵ nhân ÿôi phҫn cӭng và phҫn mӅm ÿӇ ÿҧm bҧo sӵÿiӅu hành vүn tiӃp tөc mһc dù có lӛi xҧy ra. HӋ thӕng này chӭa hai bӝ xӱ lý, mӛi bӝ xӱ lý có bӝ nhӟ cөc bӝ riêng. Các bӝ xӱ lý ÿѭӧc nӕi kӃt bӣi mӝt bus. Mӝt bӝ xӱ lý chính và bӝ xӱ lý kia là dӵ phòng. Cҧ hai bҧn sao ÿѭӧc giӳӣ mӛi bӝ xӱ lý: mӝt là chính và mӝt là dӵ phòng. Tҥi các ÿiӇm kiӇm tra (checkpoints) trong viӋc thӵc thi cӫa hӋ thӕng, thông tin trҥng thái cӫa mӛi công viӋc-gӗm mӝt bҧn sao hình ҧnh bӝ nhӟ-ÿѭӧc chép tӯ máy chính tӟi máy dӵ phòng. NӃu mӝt lӛi ÿѭӧc phát hiӋn, bҧn sao dӵ phòng ÿѭӧc kích hoҥt và ÿѭӧc khӣi ÿӝng lҥi tӯÿiӇm kiӇm tra mӟi nhҩt. Giҧi pháp này ÿҳt vì nó bao gӗm viӋc nhân ÿôi phҫn cӭng. Các hӋ thӕng ÿa xӱ lý thông dөng nhҩt hiӋn nay sӱ dөng ÿa xӱ lý ÿӕi xӭng (symmetric multiprocessing-SMP). Trong hӋ thӕng này mӛi bӝ xӱ lý chҥy bҧn sao cӫa hӋÿiӅu hành và nhӳng bҧn sao này giao tiӃp vӟi các bҧn sao khác khi cҫn. Vài hӋ thӕng sӱ dөng ÿa xӱ lý bҩt ÿӕi xӭng (asymmetric multiprocessing). Trong hӋ thӕng này mӛi bӝ xӱ lý ÿѭӧc gán mӝt công viӋc xác ÿӏnh. Mӝt bӝ xӱ lý chӫÿiӅu khiӇn hӋ thӕng; nhӳng bӝ xӱ lý còn lҥi hoһc chӡ bӝ xӱ lý chӫ ra chӍ thӏ hoһc có nhӳng tác vө ÿѭӧc ÿӏnh nghƭa trѭӟc. Cѫ chӃ này ÿӏnh nghƭa mӕi quan hӋ chӫ-tӟ. Bӝ xӱ lý chính lұp thӡi biӇu và cҩp phát công viӋc tӟi các bӝ xӱ lý tӟ. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 8
  13. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 Ĉa xӱ lý ÿӕi xӭng có nghƭa tҩt cҧ bӝ xӱ lý là ngang hàng; không có mӕi quan hӋ chӫ-tӟ tӗn tҥi giӳa các bӝ xӱ lý. Hình I-4 minh hoҥ mӝt kiӃn trúc ÿa xӱ lý ÿӕi xӭng ÿiӇn hình. Mӝt thí dө cӫa ÿa xӱ lý ÿӕi xӭng là ҩn bҧn cӫa Encore cӫa UNIX cho máy tính Multimax. Máy tính này có thӇÿѭӧc cҩu hình nhѭ nó ÿang thӵc hiӋn nhiӅu bӝ xӱ lý, tҩt cҧ bӝ xӱ lý ÿӅu chҥy bҧn sao cӫa UNIX. Ѭu ÿiӇm cӫa mô hình này là nhiӅu quá trình có thӇ chҥy cùng mӝt lúc - N quá trình có thӇ chҥy nӃu có N CPU- không gây ra sӵ giҧm sút to lӟn vӅ năng lӵc. Tuy nhiên, chúng ta phҧi ÿiӅu khiӇn cҭn thұn xuҩt/nhұp ÿӇ ÿҧm bҧo rҵng dӳ liӋu dүn tӟi bӝ xӱ lý tѭѫng ӭng. Vì các CPU là riêng rҿ, mӝt CPU có thӇÿang rҧnh trong khi CPU khác quá tҧi dүn ÿӃn viӋc sӱ dөng không hӳu hiӋu tài nguyên cӫa hӋ thӕng. Sӵ không hiӋu quҧ này có thӇ tránh ÿѭӧc nӃu các bӝ xӱ lý chia sҿ các cҩu trúc dӳ liӋu. Mӝt hӋ thӕng ÿa xӱ lý cӫa dҥng này sӁ cho phép các quá trình và tài nguyên – nhѭ bӝ nhӟ - ÿѭӧc chia sҿ tӵÿӝng giӳa các quá trình khác nhau và có thӇ làm giҧm sӵ khác biӋt giӳa các bӝ xӱ lý. Hҫu nhѭ tҩt cҧ hӋÿiӅu hành hiӋn ÿҥi - gӗm Windows NT, Solaris, Digital UNIX, OS/2 và LINUX - hiӋn nay cung cҩp sӵ hӛ trӧÿa xӱ lý ÿӕi xӭng. Hình 0-4 KiӃn trúc ÿa xӱ lý ÿӕi xӭng Sӵ khác biӋt giӳa ÿa xӱ lý ÿӕi xӭng và bҩt ÿӕi xӭng có thӇ là do phҫn cӭng hoһc phҫn mӅm. Phҫn cӭng ÿһc biӋt có thӇ khác nhau trên nhiӅu bӝ xӱ lý, hoһc phҫn mӅm có thӇÿѭӧc viӃt ÿӇ cho phép chӍ mӝt chӫ và nhiӅu tӟ. Thí dө, SunOS ҩn bҧn 4 cung cҩp ÿa xӱ lý không ÿӕi xӭng, ngѭӧc lҥi, ҩn bҧn 5 (Solaris 2) là ÿӕi xӭng trên cùng phҫn cӭng. Khi các bӝ vi xӱ lý trӣ nên rҿ hѫn và mҥnh hѫn các chӭc năng bә sung cӫa hӋ ÿiӅu hành là chuyӇn tӟi bӝ xӱ lý tӟ. Thí dө, tѭѫng ÿӕi dӉÿӇ thêm bӝ vi xӱ lý vӟi bӝ nhӟ riêng ÿӇ quҧn lý hӋ thӕng ÿƭa. Bӝ vi xӱ lý có thӇ nhұn mӝt chuӛi các yêu cҫu tӯ bӝ nhӟ chính và cài ÿһt hàng ÿӧi ÿƭa riêng và giҧi thuұt ÿӏnh thӡi. Sӵ sҳp xӃp này làm giҧm chi phí ÿӏnh thӡi ÿƭa cӫa CPU. PC chӭa mӝt bӝ vi xӱ lý trong bàn phím ÿӇ chuyӇn nhӳng phím nóng thành mã ÿӇ gӣi tӟi CPU. Thӵc tӃ, viӋc sӱ dөng các bӝ vi xӱ lý trӣ nên quá phә biӃn ÿӃn nәi mà ÿa xӱ lý không còn ÿѭӧc xem xét. VIIHӋ phân tán Mӝt mҥng, trong thuұt ngӳÿѫn giҧn nhҩt, là mӝt ÿѭӡng dүn truyӅn thông giӳa hai hay nhiӅu hӋ thӕng. HӋ phân tán phө thuӝc vào mҥng vӟi nhӳng khҧ năng cӫa nó. Bҵng cách cho phép truyӅn thông, hӋ phân tán có thӇ chia sҿ các tác vө tính toán và cung cҩp nhiӅu chӭc năng tӟi ngѭӡi dùng. Các mҥng vӟi sӵÿa dҥng vӅ giao thӭc ÿѭӧc dùng, khoҧng cách giӳa các nút và phѭѫng tiӋn truyӅn. TCP/IP là giao thӭc mҥng phә biӃn nhҩt mһc dù ATM và các giao thӭc khác ÿѭӧc sӱ dөng rӝng rãi. Tѭѫng tӵ, hӋÿiӅu hành hӛ trӧ sӵÿa dҥng vӅ giao thӭc. Hҫu hӃt các hӋÿiӅu hành hӛ trӧ TCP/IP, gӗm Windows và UNIX. Mӝt sӕ hӋÿiӅu hành khác hӛ trӧ các giao thӭc riêng phù hӧp vӟi yêu cҫu cӫa chúng. Ĉӕi vӟi mӝt hӋÿiӅu hành, mӝt giao thӭc mҥng chӍ cҫn mӝt thiӃt bӏ giao diӋn – thí dө: mӝt Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 9
  14. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 card mҥng-vӟi mӝt trình ÿiӅu khiӇn thiӃt bӏÿӇ quҧn lý nó và mӝt phҫn mӅm ÿӇ ÿóng gói dӳ liӋu trong giao thӭc giao tiӃp ÿӇ gӣi nó và mӣ gói ÿӇ nhұn nó. Mҥng thѭӡng dӵa trên các khoҧng cách giӳa các nút. Mӝt mҥng cөc bӝ (LAN- Local Area Network) tӗn tҥi trong phҥm vi mӝt phòng, mӝt tҫng, hay mӝt toà nhà. Mӝt mҥng diӋn rӝng (Wide-Area Network) thѭӡng tӗn tҥi giӳa các toà nhà, các thành phӕ, các quӕc gia. Mӝt công ty toàn cҫu có thӇ có mӝt mҥng diӋn rӝng ÿӇ nӕi kӃt tӟi các văn phòng cӫa nó. Các mҥng này có thӇ chҥy vӟi mӝt hay nhiӅu giao thӭc. Sӵ tiӃn bӝ liên tөc cӫa công nghӋ mӟi hình thành nhiӅu dҥng mҥng khác nhau. Thí dө, mҥng ÿô thӏ (MAN-Metropolitan Area Network) cNJng liên kӃt các toà nhà trong cùng mӝt thành phӕ. Các thiӃt bӏ BlueTooth giao tiӃp qua mӝt khoҧng cách ngҳn khoҧng vài bӝ (feet), chӫ yӃu tҥo ra mӝt mҥng phҥm vi nhӓ (small-area network). Các phѭѫng tiӋn truyӅn thông làm các mҥng tѭѫng ÿӕi khác nhau. Chúng gӗm cáp ÿӗng, cáp quang, truyӅn không dây giӳa vӋ tinh, các ÿƭa vi sóng (microware dishes) và sóng radio. Khi các thiӃt bӏ tính toán ÿѭӧc nӕi kӃt tӟi các ÿiӋn thoҥi di ÿӝng, chúng tҥo ra mӝt mҥng. Thұm chí rҩt nhiӅu giao tiӃp hӗng ngoҥi dãy ngҳn có thӇÿѭӧc dùng cho mҥng. Tҥi cҩp ÿӝ cѫ bҧn, bҩt cӭ khi nào các máy tính giao tiӃp chúng sӱ dөng hay tҥo ra mӝt mҥng. Các mҥng này cNJng rҩt khác nhau vӅ năng lӵc và khҧ năng tin cұy. VII.1 HӋ khách hàng-máy phөc vө Mӝt PC có thӇ trӣ nên nhanh hѫn, mҥnh hѫn, rҿ hѫn nӃu ngѭӡi thiӃt kӃ thay ÿәi rҩt xa tӯ kiӃn trúc hӋ thӕng tұp trung. Các thiӃt bӏÿҫu cuӕi ÿѭӧc nӕi kӃt tӟi các hӋ tұp trung hiӋn nay ÿang ÿѭӧc thay thӃ bӣi các PC. Tѭѫng ӭng, chӭc năng giao diӋn ngѭӡi dùng ÿѭӧc dùng quҧn lý trӵc tiӃp bӣi các hӋ tұp trung ÿang ÿѭӧc quҧn lý tăng dҫn bӣi các PC. Do ÿó, các hӋ tұp trung ngày nay hoҥt ÿӝng nhѭ hӋ máy phөc vөÿӇ thoҧ mãn các yêu cҫu phát sinh bӣi hӋ thӕng khách hàng. Ĉһc ÿiӇm chung cӫa hӋ khách hàng- máy phөc vөÿѭӧc mô tҧ trong hình-I-5: Hình 0-5 Cҩu trúc chung cӫa hӋ khách hàng-máy phөc vө Các hӋ máy chӫ có thӇÿѭӧc phân loҥi rӝng rãi nhѭ máy phөc vө tính toán và máy phөc vө tұp tin o HӋ máy phөc vө tính toán (Compute-server systems): cung cҩp giao diӋn mà khách hàng có thӇ gӣi các yêu cҫu ÿӇ thӵc hiӋn hoҥt ÿӝng. Chúng thӵc thi hoҥt ÿӝng và gӣi kӃt quҧ cho khách hàng. o HӋ máy phөc vө tұp tin (File-server systems ): cung cҩp mӝt giao diӋn hӋ thӕng tұp tin nѫi khách hàng có thӇ tҥo, cұp nhұt, ÿӑc và xoá tұp tin. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 10
  15. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 VII.2 HӋ ngang hàng Sӵ phát triӇn cӫa mҥng máy tính-ÿһc biӋt là Internet và Word Wide Web (WWW)-có ҧnh hѭӣng sâu sҳc ÿӃn sӵ phát triӇn gҫn ÿây cӫa hӋÿiӅu hành. Khi PC ÿѭӧc giӟi thiӋu vào nhӳng năm 1970, chúng ÿѭӧc thiӃt kӃ cho viӋc sӱ dөng “cá nhân” và thѭӡng ÿѭӧc xem nhѭ là các máy tính ÿѫn lҿ (standalone computer). Vӟi viӋc bҳt ÿҫu sӱ dөng Internet phә biӃn và rӝng rãi vào nhӳng năm 1980 vӟi e-mail, ftp, gopher, nhiӅu PC ÿѭӧc nӕi vào mҥng máy tính. Vӟi sӵ giӟi thiӋu dӏch vө Web vào giӳa nhӳng năm 1990, nӕi kӃt mҥng trӣ thành mӝt thành phҫn quan trӑng cӫa mӝt hӋ thӕng mҥng máy tính. Gҫn nhѭ tҩt cҧ máy tính PC hiӋn ÿҥi và các trҥm làm viӋc có thӇ chҥy trình duyӋt Web ÿӇ truy xuҩt tài liӋu siêu văn bҧn trên Web. Các hӋÿiӅu hành (nhѭ Windows, OS/2, MacOS và UNIX) hiӋn nay cNJng chӭa phҫn mӅm hӋ thӕng (nhѭ TCP/IP và PPP) cho phép mӝt máy tính truy xuҩt Internet qua mӝt mҥng cөc bӝ hay nӕi kӃt qua ÿѭӡng ÿiӋn thoҥi. NhiӅu hӋÿiӅu hành chӭa trình duyӋt Web cNJng nhѭ khách hàng và máy phөc vө e-mail, ÿăng nhұp tӯ xa, và ftp. Tѭѫng phҧn vӟi các hӋ thӕng kӃt nӕi chһt ÿѭӧc thҧo luұn trong phҫn I.6, mҥng máy tính ÿѭӧc dùng trong các ӭng dөng này gӗm tұp hӧp các bӝ xӱ lý không chia sҿ bӝ nhӟ hay ÿӗng hӗ. Thay vào ÿó, mӛi bӝ xӱ lý có bӝ nhӟ cөc bӝ riêng. Bӝ xӱ lý giao tiӃp vӟi bӝ xӱ lý khác thông qua các ÿѭӡng truyӅn thông nhѭ các bus tӕc ÿӝ cao hay các ÿѭӡng ÿiӋn thoҥi. Các hӋ thӕng này thѭӡng ÿѭӧc xem nhѭ các hӋ thӕng kӃt nӕi lӓng (hay hӋ thӕng phân tán). Vài hӋÿiӅu hành thӵc hiӋn khái niӋm mҥng hѫn là chú trӑng cung cҩp nӕi kӃt mҥng. Mӝt hӋÿiӅu hành mҥng là mӝt hӋÿiӅu hành cung cҩp các ÿһc tính nhѭ chia sҿ tұp tin qua mҥng, nó chӭa mӝt cѫ chӃ giao tiӃp cho phép các quá trình khác nhau trên các máy khác nhau trao ÿәi thông ÿiӋp. Mӝt máy tính chҥy mӝt hӋÿiӅu hành mҥng hoҥt ÿӝng tӵ trӏ tӯ tҩt cҧ máy tính khác trên mҥng, mһc dù nó nhұn thӭc sӵ hiӋn diӋn cӫa mҥng và có thӇ giao tiӃp vӟi các máy tính ÿѭӧc nӕi mҥng khác. Mӝt hӋÿiӅu hành phân tán là mӝt môi trѭӡng ít tӵ trӏ hѫn: Các hӋÿiӅu hành phân tán giao tiӃp ÿӫ gҫn ÿӇ cung cҩp mӝt hình ҧnh mà chӍ mӝt hӋÿiӅu hành ÿѫn lҿÿiӅu khiӇn mҥng. VIIIHӋ thӕng nhóm (Clustered Systems) Tѭѫng tӵ các hӋ song song, hӋ thӕng nhóm tұp hӧp nhiӅu CPUs vӟi nhau ÿӇ thӵc hiӋn công viӋc tính toán. Tuy nhiên, hӋ thӕng nhóm khác hӋ thӕng song song ӣ ÿiӇm chúng ÿѭӧc hӧp thành tӯ hai hay nhiӅu hӋ thӕng ÿѫn ÿѭӧc kӃt hӧp vӟi nhau. Ĉӏnh nghƭa cӫa thuұt ngӳ nhóm (clustered) là không cө thӇ. Ĉӏnh nghƭa thông thѭӡng có thӇ chҩp nhұn là các máy tính nhóm chia sҿ viӋc lѭu trӳ và ÿѭӧc liên kӃt gҫn qua LAN. Nhóm thѭӡng ÿѭӧc thӵc hiӋn ÿӇ cung cҩp khҧ năng sҷn dùng cao. Mӝt lӟp phҫn mӅm nhóm chҥy trên các nút nhóm (cluster nodes). Mӛi nút có thӇ kiӇm soát mӝt hay nhiӅu hѫn mӝt nút (qua mҥng LAN). NӃu máy bӏ kiӇm soát gһp sӵ cӕ, máy kiӇm soát có thӇ lҩy quyӅn sӣ hӳu viӋc lѭu trӳ cӫa nó và khӣi ÿӝng lҥi (các) ӭng dөng mà chúng ÿang chҥy trên máy bӏ sӵ cӕ. Máy bӏ sӵ cӕ vүn chѭa hoҥt ÿӝng nhѭng ngѭӡi dùng và khách hàng cӫa ӭng dөng chӍ thҩy mӝt sӵ gián ÿoҥn ngҳn cӫa dӏch vө. Trong nhóm bҩt ÿӕi xӭng (asymmetric clustering), mӝt máy ӣ trong chӃÿӝ dӵ phòng nóng (hot standby) trong khi các máy khác ÿang chҥy các ӭng dөng. Máy dӵ phòng không là gì cҧ ngoҥi trӯ theo dõi server hoҥt ÿӝng. NӃu server ÿó bӏ lӛi, máy chӫ dӵ phòng nóng trӣ thành server hoҥt ÿӝng. Trong chӃÿӝÿӕi xӭng (symmetric mode), hai hay nhiӅu máy chӫÿang chҥy ӭng dөng và chúng ÿang kiӇm soát lүn nhau. ChӃÿӝ Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 11
  16. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 này chú trӑng tính hiӋu quҧ khi nó sӱ dөng tҩt cҧ phҫn cӭng sҷn có. Nó thӵc hiӋn yêu cҫu nhiӅu hѫn mӝt ӭng dөng sҷn dùng ÿӇ chҥy. Các hình thӭc khác cӫa nhóm gӗm các nhóm song song (parallel clusters) và nhóm qua mӝt WAN. Các nhóm song song cho phép nhiӅu máy chӫ truy xuҩt cùng dӳ liӋu trên thiӃt bӏ lѭu trӳÿѭӧc chia sҿ. Vì hҫu hӃt các hӋÿiӅu hành hӛ trӧ nghèo nàn viӋc truy xuҩt dӳ liӋu ÿӗng thӡi bӣi nhiӅu máy chӫ, các nhóm song song thѭӡng ÿѭӧc thӵc hiӋn bӣi các ҩn bҧn phҫn mӅm ÿһc biӋt và sӵ phát hành cӫa các ӭng dөng ÿһc biӋt. Thí dө, Oracle Parallel Server là mӝt ҩn bҧn cѫ sӣ dӳ liӋu cӫa Oracle, và lӟp phҫn mӅm ghi vӃt viӋc truy xuҩt tӟi ÿƭa ÿѭӧc chia sҿ. Mӛi máy có truy xuҩt ÿҫy ÿӫ tӟi dӳ liӋu trong cѫ sӣ dӳ liӋu. Mһc dù có nhiӅu cҧi tiӃn trong tính toán phân tán, hҫu hӃt các hӋ thӕng không cung cҩp các hӋ thӕng tұp tin phân tán mөc ÿích chung (general-purpose distributed file systems). Do ÿó, hҫu hӃt các nhóm không cho phép truy xuҩt ÿѭӧc chia sҿ tӟi dӳ liӋu trên ÿƭa. Cho mөc ÿích này, các hӋ thӕng tұp tin phân tán phҧi cung cҩp ÿiӅu khiӇn truy xuҩt và khoá các tұp tin ÿӇ ÿҧm bҧo không có các thao tác xung ÿӝt xҧy ra. Loҥi dӏch vө này thѭӡng ÿѭӧc gӑi là bӝ quҧn lý khoá phân tán (distributed lock manager-DLM). Công nghӋ nhóm ÿang nhanh chóng thay ÿәi. Nhӳng ÿӏnh hѭӟng nhóm gӗm các nhóm toàn cөc, trong ÿó các máy có thӇÿӏnh vӏ bҩt cӭ nѫi nào trên thӃ giӟi (hay bҩt cӭ nѫi nào mӝt WAN ÿҥt tӟi). Các dӵ án nhѭ thӃ vүn là chӫÿӅ cho nghiên cӭu và phát triӇn. ViӋc sӱ dөng hӋ thӕng nhóm và các ÿһc tính nên mӣ rӝng nhѭ mҥng vùng lѭu trӳ (storage-area networks-SANs) chiӃm ѭu thӃ. SANs cho phép gán dӉ dàng nhiӅu máy chӫ tӟi nhiӅu ÿѫn vӏ lѭu trӳ. Các nhóm hiӋn tҥi thѭӡng bӏ giӟi hҥn tӟi hai hay bӕn máy chӫ do sӵ phӭc tҥp cӫa nӕi kӃt các máy chӫ tӟi thiӃt bӏ lѭu trӳÿѭӧc chia sҿ. IX HӋ thӡi thӵc Mӝt dҥng khác cӫa hӋÿiӅu hành có mөc ÿích ÿһc biӋt là hӋ thӡi thӵc (real-time system). HӋ thӡi thӵc ÿѭӧc dùng khi các yêu cҫu thӡi gian khҳt khe ÿѭӧc ÿһt trên thao tác cӫa mӝt bӝ xӱ lý hay dòng dӳ liӋu; do ÿó, nó thѭӡng ÿѭӧc dùng nhѭ mӝt thiӃt bӏ ÿiӅu khiӇn trong mӝt ӭng dөng tұn hiӃn. Các bӝ cҧm biӃn mang dӳ liӋu tӟi máy tính. Máy tính phҧi phân tích dӳ liӋu và có thӇ thích ӭng các ÿiӅu khiӇn ÿӇ hiӋu chӍnh các dӳ liӋu nhұp cҧm biӃn. Các hӋ thӕng ÿiӅu khiӇn các thí nghiӋm khoa hӑc, hӋ thӕng ҧnh hoá y tӃ, hӋ thӕng ÿiӅu khiӇn công nghӋ và các hӋ thӕng hiӇn thӏ, Các hӋ thӕng phun dҫu ÿӝng cѫ ôtô, các bӝÿiӅu khiӇn dөng cө trong nhà, hӋ thӕng vNJ khí cNJng là các hӋ thӕng thӡi thӵc. Mӝt hӋ thӕng thӡi thӵc có sӵ ràng buӝc cӕÿӏnh, rõ ràng. Xӱ lý phҧi ÿѭӧc thӵc hiӋn trong phҥm vi các ràng buӝc ÿѭӧc ÿӏnh nghƭa hay hӋ thӕng sӁ thҩt bҥi. Mӝt hӋ thӡi thӵc thӵc hiӋn ÿúng chӭc năng chӍ nӃu nó trҧ vӅ kӃt quҧÿúng trong thӡi gian ràng buӝc. Tѭѫng phҧn vӟi yêu cҫu này trong hӋ chia thӡi, ӣÿó nó mong muӕn (nhѭng không bҳt buӝc) ÿáp ӭng nhanh, hay ÿӕi vӟi hӋ thӕng bó, nó không có ràng buӝc thӡi gian gì cҧ. HӋ thӡi thӵc có hai dҥng: cӭng và mӅm. HӋ thӡi thӵc cӭng ÿҧm bҧo rҵng các tác vө tӟi hҥn ÿѭӧc hoàn thành ÿúng giӡ. Mөc tiêu này ÿòi hӓi tҩt cҧ trì hoãn trong hӋ thӕng bӏ giӟi hҥn, tӯ viӋc lҩy lҥi dӳ liӋu ÿѭӧc lѭu trӳ thӡi gian hӋÿiӅu hành hoàn thành bҩt cӭ yêu cҫu cho nó. Các ràng buӝc thӡi gian nhѭ thӃ ra lӋnh các phѭѫng tiӋn sҷn có trong hӋ thӡi thӵc cӭng. ThiӃt bӏ lѭu trӳ phө cӫa bҩt cӭ thӭ hҥng nào thѭӡng bӏ giӟi hҥn hay bӏ mҩt vӟi dӳ liӋu ÿang ÿѭӧc lѭu trong bӝ nhӟ lѭu trӳ ngҳn hҥn (short- term memory) hay trong bӝ nhӟ chӍÿӑc (ROM). Hҫu hӃt các hӋÿiӅu hành hiӋn ÿҥi Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 12
  17. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 không cung cҩp ÿһc ÿiӇm này vì chúng có khuynh hѭӟng tách rӡi ngѭӡi dùng tӯ phҫn cӭng và sӵ tách rӡi này dүn ÿӃn lѭӧng thӡi gian không xác ÿӏnh mà thao tác sӁ mҩt. Thí dө, bӝ nhӟҧo hҫu nhѭ chѭa bao giӡ thҩy trong hӋ thӡi thӵc. Do ÿó, nhӳng hӋ thӡi thӵc cӭng xung ÿӝt vӟi thao tác cӫa hӋ chia thӡi và hai hӋ này không thӇÿan xen nhau. Vì không có hӋÿiӅu hành ÿa mөc ÿích ÿã có hӛ trӧ chӭc năng thӡi thӵc cӭng; chúng ta không tұp trung vӟi loҥi hӋ thӕng này trong chѭѫng này. Mӝt loҥi thӡi thӵc ít hҥn chӃ hѫn là hӋ thӡi thӵc mӅm, ӣÿó tác vө thӡi thӵc tӟi hҥn có ÿӝ ѭu tiên hѫn các tác vө khác và duy trì ÿӝ ѭu tiên ÿó cho ÿӃn khi chúng hoàn thành. Nhѭ trong hӋ thӡi thӵc cӭng, sӵ trì hoãn nhân (kernel) cӫa hӋÿiӅu hành trì hoãn yêu cҫu ÿѭӧc giӟi hҥn. Mӝt tác vө thӡi thӵc không thӇ giӳ viӋc chӡ không xác ÿӏnh ÿӕi vӟi nhân ÿӇ thӵc thi. Thӡi thӵc mӅm là mөc tiêu có thӇÿҥt ÿѭӧc và có thӇ ÿѭӧc ÿan xen vӟi các loҥi hӋ thӕng khác. Tuy nhiên, hӋ thӡi thӵc mӅm có nhӳng tiӋn ích giӟi hҥn hѫn hӋ thӡi thӵc cӭng. Vì không hӛ trӧ tӕt cho thӡi ÿiӇm tӟi hҥn, nên hӋ thӡi thӵc mӅm dӉ gây rӫi ro khi dùng cho viӋc kiӇm soát công nghӋ và tӵÿӝng hoá. Tuy nhiên, chúng có ích trong nhiӅu lƭnh vӵc nhѭÿa phѭѫng tiӋn, thӵc tӃҧo, dӵ án khoa hӑc tiên tiӃn-nhѭ khám phá trong lòng ÿҥi dѭѫng và khám phá hành tinh. Nhӳng hӋ thӕng này cҫn nhӳng ÿһc ÿiӇm hӋÿiӅu hành tiên tiӃn mà không ÿѭӧc hӛ trӧ bӣi hӋ thӡi thӵc cӭng. Vì viӋc sӱ dөng chӭc năng thӡi thӵc mӅm ÿѭӧc mӣ rӝng nên chúng ta ÿang tìm cách ÿѭa chúng vào trong hҫu hӃt các hӋÿiӅu hành hiӋn tҥi, gӗm các ҩn bҧn chính thӭc cӫa UNIX. XHӋ xách tay HӋ xách tay gӗm các máy hӛ trӧ cá nhân dùng kӻ thuұt sӕ (personal digital assistants-PDAs) nhѭ Palm hay ÿiӋn thoҥi di ÿӝng (cellular telephone) vӟi nӕi kӃt tӟi mҥng nhѭ Internet. Nhӳng ngѭӡi phát triӇn hӋ xách tay và ӭng dөng gһp phҧi nhiӅu thӱ thách, nhҩt là sӵ giӟi hҥn vӅ kích thѭӟc cӫa thiӃt bӏ. Thí dө, mӝt PDA ÿiӇn hình cao khoҧng 5 inches và rӝng khoҧng 3 inches và trӑng lѭӧng cӫa nó ít hѫn 0.5 pound. Do sӵ giӟi hҥn vӅ kích thѭӟc này, hҫu hӃt các thiӃt bӏ xách tay có bӝ nhӟ nhӓ gӗm các bӝ xӱ lý thҩp và màn hình hiӇn thӏ nhӓ. Bây giӡ chúng ta sӁ xem xét mӛi sӵ giӟi hҥn này. NhiӅu thiӃt bӏ xách tay có dung lѭӧng bӝ nhӟ 512KB và 8 MB (ngѭӧc lҥi, các máy PC hay trҥm làm viӋc có hàng trăm MB bӝ nhӟ). Do ÿó, hӋÿiӅu hành và các ӭng dөng phҧi quҧn lý bӝ nhӟ hiӋu quҧ. ĈiӅu này gӗm trҧ vӅ tҩt cҧ bӝ nhӟÿѭӧc cҩp phát tӟi bӝ quҧn lý bӝ nhӟ mӝt khi bӝ nhӟ không còn ÿѭӧc dùng nӳa. HiӋn nay, nhiӅu thiӃt bӏ xách tay không dùng kӻ thuұt bӝ nhӟҧo do ÿó buӝc ngѭӡi phát triӇn chѭѫng trình làm viӋc trong phҥm vi giӟi hҥn cӫa bӝ nhӟ vұt lý. Vҩn ÿӅ thӭ hai quan tâm ÿӃn ngѭӡi phát triӇn các thiӃt bӏ xách tay là tӕc ÿӝ cӫa bӝ xӱ lý ÿѭӧc dùng trong thiӃt bӏ. Các bӝ xӱ lý ÿӕi vӟi hҫu hӃt các thiӃt bӏ xách tay thѭӡng chҥy vӟi tӕc ÿӝ chӍ bҵng mӝt phҫn tӕc ÿӝ cӫa mӝt bӝ xӱ lý trong máy PC. Các bӝ xӱ lý nhanh hѫn yêu cҫu ÿiӋn năng nhiӅu hѫn. ĈӇ chӭa mӝt bӝ xӱ lý nhanh hѫn bên trong thiӃt bӏ xách tay nên yêu cҫu nhiӅu pin hѫn hѫn và phҧi ÿѭӧc nҥp lҥi thѭӡng xuyên. ĈӇ tӕi thiӇu hoá kích thѭӟc cӫa các thiӃt bӏ xách tay ÿòi hӓi bӝ xӱ lý nhӓ hѫn, chұm hѫn tiêu thө ít ÿiӋn năng hѫn. Do ÿó, hӋÿiӅu hành và các ӭng dөng phҧi ÿѭӧc thiӃt kӃ không ÿòi hӓi sӱ dөng nhiӅu bӝ xӱ lý. Vҩn ÿӅ cuӕi cùng gây khó khăn cho ngѭӡi thiӃt kӃ chѭѫng trình cho các thiӃt bӏ xách tay là màn hình hiӇn thӏ nhӓ. Trong khi mӝt màn hình cho máy tính ӣ nhà kích thѭӟc có thӇ 21 inches, màn hình cho thiӃt bӏ xách tay thѭӡng có diӋn tích không quá 3 inches. Nhӳng tác vө quen thuӝc nhѭÿӑc e-mail hay hiӇn thӏ các trang web, phҧi ÿѭӧc cô ÿӑng vào màn hình nhӓ hѫn. Mӝt phѭѫng pháp ÿӇ hiӇn thӏ nӝi dung các trang Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 13
  18. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 web là cҳt xén web (web clipping), ӣÿó chӍ mӝt tұp hӧp nhӓ trang web ÿѭӧc phân phát và hiӇn thӏ trên thiӃt bӏ xách tay. Mӝt sӕ thiӃt bӏ xách tay có thӇ dùng công nghӋ không dây nhѭ BlueTooth, cho phép truy xuҩt tӯ xa tӟi e-mail và trình duyӋt web. Các ÿiӋn thoҥi di ÿӝng vӟi nӕi kӃt Internet thuӝc loҥi này. Tuy nhiên, nhiӅu PDAs hiӋn tҥi không cung cҩp truy xuҩt không dây. ĈӇ tҧi dӳ liӋu xuӕng các thiӃt bӏ này, trѭӟc tiên ngѭӡi dùng tҧi dӳ liӋu xuӕng PC hay trҥm và sau ÿó tҧi dӳ liӋu xuӕng PDA. Mӝt sӕ PDA cho phép dӳ liӋu chép trӵc tiӃp tӯ mӝt thiӃt bӏ này tӟi thiӃt bӏ khác dùng liên kӃt hӗng ngoҥi. Nhìn chung, các giӟi hҥn trong chӭc năng cӫa PDA ÿѭӧc cân bҵng bӣi nhӳng tiӋn dөng và linh ÿӝng cӫa chúng. ViӋc sӱ dөng chúng tiӃp tөc mӣ rӝng khi các nӕi kӃt mҥng trӣ nên sҷn dùng và các chӑn lӵa khác nhѭ máy ҧnh và MP3 players, mӣ rӝng tiӋn ích cӫa chúng. XI Tóm tҳt HӋÿiӅu hành ÿѭӧc phát triӇn hѫn 45 năm qua vӟi hai mөc ÿích chính. Mөc ÿích thӭ nhҩt, hӋÿiӅu hành cӕ gҳng lұp thӡi biӇu các hoҥt ÿӝng tính toán ÿӇ ÿҧm bҧo năng lӵc thӵc hiӋn cӫa hӋ thӕng là tӕt. Mөc ÿích thӭ hai, nó cung cҩp mӝt môi trѭӡng tiӋn dөng ÿӇ phát triӇn và thӵc thi chѭѫng trình. Ban ÿҫu, hӋ thӕng máy tính ÿѭӧc dùng tӯ mӝt màn hình và bàn phím (thiӃt bӏÿҫu cuӕi). Các phҫn mӅm nhѭ bӝ hӧp ngӳ (assembler), bӝ nҥp (loader), bӝ liên kӃt (linkers) và các trình biên dӏch (compiler) cҧi tiӃn sӵ tiӋn dөng cӫa viӋc lұp trình hӋ thӕng nhѭng cNJng yêu cҫu thӡi gian thiӃt lұp ÿáng kӇ. ĈӇ giҧm thӡi gian thiӃt lұp, các phѭѫng tiӋn thuê ngѭӡi ÿiӅu hành và các công viӋc tuѫng tӵÿѭӧc bó. Các hӋ thӕng xӱ lý theo lô cho phép sҳp xӃp công viӋc tӵÿӝng bӣi hӋÿiӅu hành và cҧi tiӃn rҩt nhiӅu viӋc tұn dөng toàn bӝ máy tính. Máy tính không còn phҧi chӡ các thao tác cӫa ngѭӡi dùng. Tuy nhiên, viӋc tұn dөng CPU vүn còn thҩp vì tӕc ÿӝ cӫa thiӃt bӏ xuҩt nhұp thҩp hѫn nhiӅu so vӟi tӕc ÿӝ cӫa CPU. Thao tác ngoҥi vi (off-line operation) cӫa các thiӃt bӏ chұm cung cҩp mӝt phѭѫng tiӋn sӱ dөng nhiӅu hӋ thӕng bӝ ÿӑc tӟi băng tӯ (reader-to-tape) và băng tӯ tӟi máy in (tape-to-printer) cho mӝt CPU. ĈӇ cҧi tiӃn toàn bӝ năng lӵc thӵc hiӋn cӫa hӋ thӕng máy tính, ngѭӡi phát triӇn giӟi thiӋu khái niӋm ÿa chѭѫng ÿӇ mà nhiӅu công viӋc có thӇÿѭӧc giӳ cùng lúc trong bӝ nhӟ tҥi cùng mӝt thӡi ÿiӇm. CPU ÿѭӧc chuyӇn qua lҥi giӳa chúng ÿӇ gia tăng viӋc tұn dөng CPU và giҧm toàn bӝ thӡi gian ÿѭӧc yêu cҫu ÿӇ thӵc thi các công viӋc. Ĉa chѭѫng cNJng cho phép chia sҿ thӡi gian. HӋÿiӅu hành chia sҿ thӡi gian cho phép nhiӅu ngѭӡi dùng (tӯ mӝt tӟi vài trăm) sӱ dөng hӋ thӕng máy tính giao tiӃp tҥi cùng mӝt thӡi ÿiӇm. PC là máy vi tính; chúng xem nhѭ nhӓ hѫn và rҿ hѫn hӋ thӕng mainframe. Các hӋÿiӅu hành cho các máy tính này lӧi hѫn viӋc phát triӇn hӋÿiӅu hành cho máy tính mainframe trong nhiӅu cách. Tuy nhiên, vì mӛi cá nhân là ngѭӡi dùng duy nhҩt sӱ dөng máy tính nên viӋc tұn dөng CPU không còn là mӕi quan tâm chӫ yӃu. Do ÿó, mӝt vài quyӃt ÿӏnh thiӃt kӃÿѭӧc thӵc hiӋn cho hӋÿiӅu hành cho máy mainframe có thӇ không phù hӧp cho cҧ hӋ thӕng nhӓ và lӟn, hiӋn nay khi các PCs có thӇÿѭӧc nӕi kӃt tӟi các máy tính khác và ngѭӡi dùng thông qua mҥng và Web. Các hӋ song song có nhiӅu hѫn mӝt CPU trong giao tiӃp gҫn; các CPU chia sҿ bus máy tính và ÿôi khi chia sҿ bӝ nhӟ và các thiӃt bӏ ngoҥi vi. Nhӳng hӋ thӕng nhѭ thӃ có thӃ cung cҩp thông lѭӧng và khҧ năng tin cұy tăng. Các hӋ thӕng phân tán cho phép chia sҿ tài nguyên trên nhӳng máy chӫÿѭӧc phân tán vӅ mһt ÿӏa lý. Các hӋ thӕng ÿѭӧc nhóm cho phép nhiӅu máy thӵc hiӋn viӋc tính toán trên dӳ liӋu ÿѭӧc chӭa trên Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 14
  19. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 thiӃt bӏ lѭu trӳ chia sҿ và ÿӇ viӋc tính toán tiӃp tөc trong trѭӡng hӧp lӛi cӫa tұp hӧp con các thành viên nhóm. Mӝt hӋ thӡi thӵc cӭng thѭӡng ÿѭӧc dùng nhѭ mӝt thiӃt bӏÿiӅu khiӇn trong mӝt ӭng dөng tұn hiӃn. Mӝt hӋÿiӅu hành thӡi thӵc cӭng có ràng buӝc hoàn toàn xác ÿӏnh và thӡi gian cӕÿӏnh. Xӱ lý phҧi ÿѭӧc thӵc hiӋn trong các ràng buӝc ÿѭӧc xác ÿӏnh hoһc hӋ thӕng sӁ bӏ lӛi. Các hӋ thӕng thӡi thӵc mӅm có ràng buӝc thӡi gian ít nghiêm khҳc hѫn và không hӛ trӧ thӡi biӇu tӟi hҥn. Gҫn ÿây sӵ tác ÿӝng cӫa Internet và World Wide Web khuyӃn khích sӵ phát triӇn cӫa các hӋÿiӅu hành hiӋn ÿҥi. Các hӋÿiӅu hành này chӭa các trình duyӋt Web, mҥng và phҫn mӅm truyӅn thông nhѭ là các ÿһc ÿiӇm tích hӧp. Chúng ta ÿã thӇ hiӋn tiӃn trình luұn lý cӫa sӵ phát hӋÿiӅu hành, ÿѭӧc ÿӏnh hѭӟng bӣi sӵ bao gӗm các ÿһc ÿiӇm trong phҫn cӭng CPU ÿѭӧc yêu cҫu cho chӭc năng tiên tiӃn. Xu hѭӟng này có thӇÿѭӧc thҩy ngày nay trong cuӝc cách mҥng cӫa PC, vӟi phҫn cӭng ngày mӝt rҿ hѫn và ÿang ÿѭӧc cҧi tiӃn ÿӫ ÿӇ cho phép cҧi tiӃn các ÿһc ÿiӇm. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 15
  20. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 CҨU TRÚC HӊĈIӄU HÀNH IMөc ÿích Sau khi hӑc xong chѭѫng này, ngѭӡi hӑc nҳm ÿѭӧc nhӳng kiӃn thӭc sau: o HiӇu hӋÿiӅu hành tӯ ba khía cҥnh: ngѭӡi dùng, ngѭӡi lұp trình và ngѭӡi thiӃt kӃ o HiӇu các dӏch vө mà hӋÿiӅu hànhcung cҩp o BiӃt các phѭѫng pháp ÿѭӧc dùng ÿӇ thiӃt kӃ kiӃn trúc hӋÿiӅu hành II Giӟi thiӋu HӋÿiӅu hành cung cҩp môi trѭӡng cho các chѭѫng trình thӵc thi. Nӝi tҥi, các hӋ ÿiӅu hành rҩt khác biӋt nhau vӅ kiӃn trúc, chúng ÿѭӧc tә chӭc cùng vӟi các dòng khác nhau. ThiӃt kӃ mӝt hӋÿiӅu hành mӟi là mӝt công viӋc quan trӑng. Các mөc ÿích cӫa hӋ thӕng phҧi ÿѭӧc ÿӏnh nghƭa rõ ràng trѭӟc khi thiӃt kӃ bҳt ÿҫu. KiӇu hӋ thӕng mong muӕn là cѫ sӣ cho viӋc chӑn lӵa giӳa các giҧi thuұt và chiӃn lѭӧc khác nhau. HӋÿiӅu hành có thӇÿѭӧc nhìn tӯ nhiӅu lӧi ÿiӇm khác nhau. Ngѭӡi này xem xét các dӏch vө mà hӋÿiӅu hành cung cҩp. Ngѭӡi kia quan tâm ÿӃn giao diӋn mà hӋÿiӅu hành mang lҥi cho ngѭӡi dùng và ngѭӡi lұp trình. Ngѭӡi khác lҥi phân rã hӋ thӕng thành nhӳng thành phҫn và các mӕi quan hӋ bên trong cӫa chúng. Trong chѭѫng này chúng ta tìm hiӇu cҧ ba khía cҥnh cӫa hӋÿiӅu hành, thӇ hiӋn ba quan ÿiӇm cӫa ngѭӡi dùng, ngѭӡi lұp trình và ngѭӡi thiӃt kӃ hӋÿiӅu hành. Chúng ta xem xét các dӏch vө mà hӋÿiӅu hành cung cҩp, cách chúng ÿѭӧc cung cҩp và các phѭѫng pháp khác nhau ÿѭӧc dùng cho viӋc thiӃt kӃ hӋÿiӅu hành. III Các thành phҫn hӋ thӕng Chúng ta có thӇ tҥo ra mӝt hӋ thӕng lӟn và phӭc tҥp nhѭ hӋÿiӅu hành chӍ khi phân chia hӋÿiӅu hành thành nhӳng phҫn nhӓ hѫn. Mӛi phҫn nên là mӝt thành phҫn ÿѭӧc mô tҧ rõ ràng cӫa hӋ thӕng, vӟi xuҩt, nhұp và các chӭc năng ÿѭӧc ÿӏnh nghƭa cҭn thұn. Tuy nhiên, nhiӅu hӋ thӕng hiӋn ÿҥi chia sҿ mөc tiêu hӛ trӧ các thành phҫn hӋ thӕng ÿѭӧc liӋt kê sau ÿây: III.1 Quҧn lý quá trình Mӝt chѭѫng trình không làm gì trӯ khi các chӍ thӏ cӫa nó ÿѭӧc thӵc thi bӣi mӝt CPU. Mӝt quá trình có thӇÿѭӧc xem nhѭ mӝt chѭѫng ÿang thӵc thi, nhѭng ÿӏnh nghƭa cӫa nó sӁ mӣ rӝng khi chúng ta khám phá chi tiӃt hѫn. Mӝt chѭѫng trình ngѭӡi dùng ÿѭӧc chia thӡi chҷng hҥn nhѭ mӝt trình biên dӏch là mӝt quá trình. Mӝt chѭѫng trình xӱ lý văn bҧn ÿang ÿѭӧc thӵc thi bӣi mӝt ngѭӡi dùng trên mӝt PC cNJng là mӝt quá trình. Mӝt tác vө hӋ thӕng, nhѭ gӣi dӳ liӋu xuҩt ra máy in cNJng ÿѭӧc xem là mӝt quá trình. Bây giӡ chúng ta có thӇ xem xét mӝt quá trình là mӝt công viӋc hay chѭѫng trình chia thӡi, nhѭng chúng ta sӁ nghiên cӭu khái niӋm này tәng quát hѫn trong các chѭѫng sau. Mӝt quá trình cҫn các tài nguyên xác ÿӏnh-gӗm thӡi gian CPU, bӝ nhӟ, tұp tin, các thiӃt bӏ xuҩt/nhұp-ÿӇ hoàn thành tác vө cӫa nó. Các tài nguyên này ÿѭӧc cҩp cho Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 18
  21. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 quá trình khi nó ÿѭӧc tҥo ra, hay ÿѭӧc cҩp phát tӟi nó khi nó ÿang chҥy. Ngoài ra, các tài nguyên vұt lý và luұn lý khác nhau mà quá trình nhұn ÿѭӧc khi nó ÿѭӧc tҥo, dӳ liӋu khӣi tҥo khác nhau (hay nhұp) có thӇÿѭӧc truyӅn qua. Thí dө, xem xét mӝt quá trình có chӭc năng hiӇn thӏ trҥng thái cӫa mӝt tұp tin trên màn hình cӫa mӝt thiӃt bӏ ÿҫu cuӕi. Quá trình này sӁÿѭӧc cho dӳ liӋu vào là tên cӫa tұp tin, và sӁ thӵc thi các chӍ thӏ thích hӧp và các lӡi gӑi hӋ thӕng ÿҥt ÿѭӧc và xuҩt trên thiӃt bӏ cuӕi thông tin mong muӕn. Khi quá trình này kӃt thúc, hӋÿiӅu hành sӁÿòi lҥi bҩt cӭ tài nguyên nào có thӇ dùng lҥi. Chúng ta nhҩn mҥnh mӝt chѭѫng trình chính nó không phҧi là mӝt quá trình; mӝt chѭѫng trình là mӝt thӵc thӇ thөÿӝng, nhѭ là nӝi dung cӫa tұp tin ÿѭӧc lѭu trên ÿƭa, trái lҥi mӝt quá trình là mӝt thӵc thӇ hoҥt ÿӝng, vӟi mӝt bӝÿӃm chѭѫng trình xác ÿӏnh chӍ thӏ kӃ tiӃp ÿӇ thӵc thi. ViӋc thӵc thi cӫa quá trình phҧi là tuҫn tӵ. CPU thӵc thi mӝt chӍ thӏ cӫa quá trình sau khi ÿã thӵc thi mӝt chӍ thӵc trѭӟc ÿó cho ÿӃn khi quá trình hoàn thành. Ngoài ra, tҥi bҩt kǤ thӡi ÿiӇm nào, tӕi ÿa mӝt chӍ thӏÿѭӧc thӵc thi cho quá trình. Do ÿó, mһc dù hai quá trình có thӇÿѭӧc liên kӃt vӟi cùng mӝt quá trình, vì thӃ chúng ÿѭӧc xem nhѭ hai chuӛi thӵc thi riêng. Thông thѭӡng có mӝt chѭѫng trình sinh ra nhiӅu quá trình khi nó thӵc thi. Mӝt quá trình là mӝt ÿѫn vӏ công viӋc trong hӋ thӕng. Mӝt hӋ thӕng chӭa tұp các quá trình, mӝt vài quá trình này là các quá trình hӋÿiӅu hành (thӵc thi mã hӋ thӕng) và các quá trình còn lҥi là các quá trình ngѭӡi dùng (chúng thӵc thi mã ngѭӡi dùng). Tҩt cҧ các quá trình này có tiӅm năng thӵc thi ÿӗng hành bҵng cách ÿa hӧp CPU giӳa các quá trình. HӋÿiӅu hành có nhiӋm vө cho các hoҥt ÿӝng sau khi ÿӅ cұp ÿӃn chӭc năng quҧn lý quá trình: o Tҥo và xoá các quá trình ngѭӡi dùng và hӋ thӕng o Tҥm dӯng và thӵc thi tiӃp quá trình o Cung cҩp các cѫ chӃÿӗng bӝ hoá quá trình o Cung cҩp các cѫ chӃ giao tiӃp quá trình o Cung cҩp cѫ chӃ quҧn lý deadlock III.2 Quҧn lý bӝ nhӟ chính Bӝ nhӟ chính là trung tâm ÿiӅu hành cӫa mӝt máy tính hiӋn ÿҥi. Bӝ nhӟ chính là mӝt mҧng các tӯ (words) hay bytes có kích thѭӟc lӟn tӯ hàng trăm ngàn tӟi hàng tӍ. Mӛi tӯ hay byte có ÿӏa chӍ riêng. Bӝ nhӟ chính là mӝt kho chӭa dӳ liӋu có khҧ năng truy xuҩt nhanh ÿѭӧc chia sҿ bӣi CPU và các thiӃt bӏ xuҩt/nhұp. Bӝ xӱ lý trung tâm ÿӑc các chӍ thӏ tӯ bӝ nhӟ trong chu kǤ lҩy chӍ thӏ, nó ÿӑc và viӃt dӳ liӋu tӯ bӝ nhӟ chính trong chu kǤ lҩy dӳ liӋu. Bӝ nhӟ chính thѭӡng là thiӃt bӏ lѭu trӳ lӟn mà CPU có thӇÿӏnh ÿӏa chӍ và truy xuҩt trӵc tiӃp. Thí dө, ÿӕi vӟi CPU xӱ lý dӳ liӋu tӯÿƭa, dӳ liӋu trѭӟc tiên ÿѭӧc chuyӇn tӟi bӝ nhӟ chính bӣi lӡi gӑi xuҩt/nhұp ÿѭӧc sinh ra bӣi CPU. Tѭѫng tӵ, các chӍ thӏ phҧi ӣ trong bӝ nhӟ cho CPU thӵc thi chúng. Ĉӕi vӟi mӝt chѭѫng trình ÿѭӧc thӵc thi, nó phҧi ÿѭӧc ánh xҥ các ÿӏa chӍ và ÿѭӧc nҥp vào bӝ nhӟ. Khi chѭѫng trình thӵc thi, nó truy xuҩt các chӍ thӏ chѭѫng trình và dӳ liӋu tӯ bӝ nhӟ bҵng cách tҥo ra các ÿӏa chӍ tuyӋt ÿӕi này. Cuӕi cùng, chѭѫng trình kӃt thúc, không gian bӝ nhӟ cӫa nó ÿѭӧc khai báo sҷn, và chѭѫng trình có thӇ ÿѭӧc nҥp và thӵc thi. ĈӇ cҧi tiӃn viӋc sӱ dөng CPU và tӕc ÿӝ ÿáp ӭng cӫa máy tính cho ngѭӡi dùng, chúng ta phҧi giӳ nhiӅu chѭѫng trình vào bӝ nhӟ. NhiӅu cѫ chӃ quҧn lý bӝ nhӟ khác nhau ÿѭӧc dùng và tính hiӋu quҧ cӫa các giҧi thuұt phө thuӝc vào tӯng trѭӡng hӧp cө thӇ. Chӑn mӝt cѫ chӃ quҧn lý bӝ nhӟ cho mӝt hӋ thӕng xác ÿӏnh phө thuӝc vào nhiӅu Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 19
  22. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 yӃu tӕ-ÿһc biӋt trên thiӃt kӃ phҫn cӭng cӫa hӋ thӕng. Mӛi giҧi thuұt ÿòi hӓi sӵ hӛ trӧ phҫn cӭng cӫa nó. HӋÿiӅu hành có nhiӋm vө cho các hoҥt ÿӝng sau khi ÿӅ cұp tӟi viӋc quҧn lý bӝ nhӟ o Giӳ vӃt vӅ phҫn nào cӫa bӝ nhӟ hiӋn ÿang ÿѭӧc dùng và quá trình nào ÿang dùng. o QuyӃt ÿӏnh quá trình nào ÿѭӧc nҥp vào bӝ nhӟ khi không gian bӝ nhӟ trӣ nên sҷn dùng. o Cҩp phát và thu hӗi không gian bӝ nhӟ khi ÿѭӧc yêu cҫu. III.3 Quҧn lý tұp tin Quҧn lý tұp tin là mӝt trong nhӳng thành phҫn có thӇ nhìn thҩy nhҩt cӫa hӋ ÿiӅu hành. Máy tính có thӇ lѭu thông tin trên nhiӅu loҥi phѭѫng tiӋn lѭu trӳ vұt lý khác nhau. Băng tӯ, ÿƭa tӯ, ÿƭa quang là nhӳng phѭѫng tiӋn thông dөng nhҩt. Mӛi phѭѫng tiӋn này có ÿһc ÿiӇm và tә chӭc riêng. Mӛi phѭѫng tiӋn ÿѭӧc ÿiӅu khiӇn bӣi mӝt thiӃt bӏ, nhѭ mӝt әÿƭa hay ә băng tӯ. Các thuӝc tính này bao gӗm tӕc ÿӝ truy xuҩt, dung lѭӧng, tӕc ÿӝ truyӅn dӳ liӋu và phѭѫng pháp truy xuҩt (tuҫn tӵ hay ngүu nhiên). Nhӡ vào viӋc sӱ dөng thuұn lӧi hӋ thӕng máy tính, hӋÿiӅu hành cung cҩp tҫm nhìn luұn lý cӫa viӋc lѭu trӳ thông tin ÿӗng nhҩt. HӋÿiӅu hành trӯu tѭӧng hoá các thuӝc tính vұt lý cӫa các thiӃt bӏ lѭu trӳÿӇÿӏnh nghƭa mӝt ÿѫn vӏ lѭu trӳ luұn lý là tұp tin. HӋÿiӅu hành ánh xҥ các tұp tin trên các thiӃt bӏ lѭu trӳ vұt lý, và truy xuҩt các tұp tin này bҵng các thiӃt bӏ lѭu trӳ. Tұp tin là tұp hӧp thông tin có quan hӋÿѭӧc ÿӏnh nghƭa bӣi ngѭӡi tҥo. Thông thѭӡng, các tұp tin biӇu diӉn chѭѫng trình và dӳ liӋu. Các tұp tin dӳ liӋu có thӇ là sӕ, chӳ cái, chӳ sӕ. Các tұp tin có dҥng bҩt kǤ (thí dө, các tұp tin văn bҧn) hay có thӇ ÿѭӧc ÿӏnh dҥng có cҩu trúc (thí dө, các trѭӡng cӕÿӏnh). Mӝt tұp tin chӭa mӝt chuӛi các bits, bytes, các dòng hay các mүu tin mà ý nghƭa cӫa nó ÿѭӧc ÿӏnh nghƭa bӣi ngѭӡi tҥo. Khái niӋm tұp tin là mӝt khái niӋm cӵc kǤ thông dөng. HӋÿiӅu hành cài ÿһt mӝt khái niӋm trӯu tѭӧng cӫa tұp tin bҵng cách quҧn lý phѭѫng tiӋn lѭu trӳ nhѭÿƭa, băng tӯ và các thiӃt bӏÿiӅu khiӇn chúng. Các tұp tin cNJng thѭӡng ÿѭӧc tә chӭc trong các thѭ mөc ÿӇ dӉ dàng sӱ dөng chúng. Cuӕi cùng, khi nhiӅu ngѭӡi dùng truy xuҩt tұp tin, chúng ta muӕn kiӇm soát ai và trong cách gì (thí dө: ÿӑc, viӃt, chèn, ) các tұp tin có thӇÿѭӧc truy xuҩt. HӋÿiӅu hành có nhiӋm vө thӵc hiӋn các hoҥt ÿӝng trong viӋc quҧn lý hӋ thӕng tұp tin: o Tҥo và xoá tұp tin o Tҥo và xoá thѭ mөc o Hӛ trӧ các hàm nguyên thuӹÿӇ thao tác tұp tin và thѭ mөc o Ánh xҥ các tұp tin trên các thiӃt bӏ lѭu trӳ phө o Sao lѭu dӵ phòng tұp tin trên các phѭѫng tiӋn lѭu trӳәÿӏnh III.4 Quҧn lý hӋ thӕng xuҩt/nhұp Mӝt trong nhӳng mөc ÿích cӫa hӋÿiӅu hành là che giҩu sӵ khác biӋt cӫa các thiӃt bӏ phҫn cӭng tӯ ngѭӡi dùng. Thí dө, trong UNIX sӵ khác biӋt cӫa các thiӃt bӏ xuҩt/nhұp bӏ che giҩu tӯ phҫn chính cӫa hӋÿiӅu hành bӣi các hӋ thӕng con xuҩt/nhұp. HӋ thӕng con xuҩt/nhұp chӭa: o Thành phҫn quҧn lý bӝ nhӟ chӭa vùng ÿӋm (buffering), lѭu trӳ (caching) và spooling (vùng chӭa). Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 20
  23. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 o Giao diӋn trình ÿiӅu khiӇn thiӃt bӏ chung. o Trình ÿiӅu khiӇn cho các thiӃt bӏ xác ÿӏnh. ChӍ trình ÿiӅu khiӇn thiӃt bӏ biӃt sӵ khác biӋt cӫa các thiӃt bӏ xác ÿӏnh mà nó ÿѭӧc gán III.5 Quҧn lý viӋc lѭu trӳ phө Mөc ÿích chính cӫa mӝt hӋ thӕng máy tính là thӵc thi các chѭѫng trình. Nhӳng chѭѫng trình này vӟi dӳ liӋu chúng truy xuҩt phҧi nҵm trong bӝ nhӟ chính hay lѭu trӳ chính trong quá trình thӵc thi. Vì bӝ nhӟ chính quá nhӓÿӇ lѭu tҩt cҧ dӳ liӋu và chѭѫng trình và vì dӳ liӋu quҧn lý bӏ mҩt khi mҩt ÿiӋn, hӋ thӕng máy tính phҧi cung cҩp viӋc lѭu trӳ phөÿӇ lѭu dӵ phòng bӝ nhӟ chính. Hҫu hӃt các hӋ thӕng máy tính hiӋn ÿҥi dùng ÿƭa nhѭ phѭѫng tiӋn lѭu trӳ trӵc tuyӃn cho cҧ chѭѫng trình và dӳ liӋu. Hҫu hӃt các chѭѫng trình – gӗm trình biên dӏch, trình dӏch hӧp ngӳ, thӫ tөc sҳp xӃp, trình soҥn thҧo và trình ÿӏnh dҥng – ÿѭӧc lѭu trên ÿƭa cho tӟi khi ÿѭӧc nҥp vào trong bӝ nhӟ và sau ÿó dùng ÿƭa khi cҧ hai nguӗn và ÿích cӫa viӋc xӱ lý. Do ÿó, quҧn lý hӧp lý viӋc lѭu trӳÿƭa có vai trò quan trӑng ÿӕi vӟi mӝt hӋ thӕng máy tính. HӋÿiӅu hành có nhiӋm vө thӵc hiӋn các hoҥt ÿӝng sau trong viӋc quҧn lý ÿƭa: o Quҧn lý không gian trӕng o Cҩp phát lѭu trӳ o Ĉӏnh thӡi ÿƭa Vì lѭu trӳ phөÿѭӧc dùng thѭӡng xuyên nên nó phҧi ÿѭӧc dùng mӝt cách hiӋu quҧ. Tӕc ÿӝ toàn bӝ cӫa các thao tác cӫa máy tính có thӇ xoay quanh tӕc ÿӝ hӋ thӕng con ÿƭa và các giҧi thuұt thao tác trên hӋ thӕng con ÿó. III.6 Mҥng HӋ phân tán là tұp hӧp các bӝ xӱ lý, chúng không chia sҿ bӝ nhӟ, các thiӃt bӏ ngoҥi vi hay ÿӗng hӗ. Thay vào ÿó mӛi bӝ xӱ lý có bӝ nhӟ, ÿӗng hӗ và các bӝ xӱ lý giao tiӃp vӟi nhau thông qua các ÿѭӡng giao tiӃp nhѭ bus tӕc ÿӝ cao hay mҥng. Các bӝ xӱ lý trong hӋ thӕng phân tán khác nhau vӅ kích thѭӟc và chӭc năng. Chúng có thӇ chӭa các bӝ vi xӱ lý, trҥm làm viӋc, máy vi tính và các hӋ thӕng máy tính thông thѭӡng. Các bӝ xӱ lý trong hӋ thӕng ÿѭӧc nӕi vӟi nhau thông qua mҥng truyӅn thông có thӇÿѭӧc cҩu hình trong nhiӅu cách khác nhau. Mҥng có thӇÿѭӧc nӕi kӃt mӝt phҫn hay toàn bӝ. ThiӃt kӃ mҥng truyӅn thông phҧi xem xét vҥch ÿѭӡng thông ÿiӋp và các chiӃn lѭӧc nӕi kӃt, và các vҩn ÿӅ cҥnh tranh hay bҧo mұt. HӋ thӕng phân tán tұp hӧp nhӳng hӋ thӕng vұt lý riêng rҿ, có thӇ có kiӃn trúc không ÿӗng nhҩt thành mӝt hӋ thӕng chһt chҿ, cung cҩp ngѭӡi dùng vӟi truy xuҩt tӟi các tài nguyên khác nhau mà hӋ thӕng duy trì. Truy xuҩt tӟi các tài nguyên chia sҿ cho phép tăng tӕc ÿӝ tính toán, chӭc năng, khҧ năng sҷn dùng cӫa dӳ liӋu, khҧ năng tin cұy. HӋ ÿiӅu hành thѭӡng tәng quát hoá viӋc truy xuҩt mҥng nhѭ mӝt dҥng truy xuҩt tұp tin, vӟi nhӳng chi tiӃt mҥng ÿѭӧc chӭa trong trình ÿiӅu khiӇn thiӃt bӏ cӫa giao diӋn mҥng. Các giao thӭc tҥo mӝt hӋ thӕng phân tán có thӇ có mӝt ҧnh hѭӣng to lӟn trên tiӋn ích và tính phә biӃn cӫa hӋ thӕng ÿó. Sӵÿәi mӟi cӫa World Wide Web ÿã tҥo ra mӝt phѭѫng pháp truy xuҩt mӟi cho thông tin chia sҿ. Nó ÿã cҧi tiӃn giao thӭc truyӅn tұp tin (File Transfer Protocol-FTP) và hӋ thӕng tұp tin mҥng (Network File System-NFS) ÿã có bҵng cách xoá yêu cҫu cho mӝt ngѭӡi dùng ÿăng nhұp trѭӟc khi ngѭӡi dùng ÿó ÿѭӧc phép dùng tài nguyên ӣ xa. Ĉӏnh nghƭa mӝt giao thӭc mӟi, giao thӭc truyӅn siêu văn bҧn (hypertext transfer protocol-http), dùng trong giao tiӃp giӳa mӝt trình phөc vө web và trình duyӋt web. Trình duyӋt web chӍ cҫn gӣi yêu cҫu thông tin tӟi mӝt trình Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 21
  24. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 phөc vө web cӫa máy ӣ xa, thông tin (văn bҧn, ÿӗ hoҥ, liên kӃt tӟi nhӳng thông tin khác) ÿѭӧc trҧ vӅ. III.7 HӋ thӕng bҧo vӋ NӃu mӝt hӋ thӕng máy tính có nhiӅu ngѭӡi dùng và cho phép thӵc thi ÿӗng hành cӫa nhiӅu quá trình, thì các quá trình khác nhau phҧi ÿѭӧc bҧo vӋ tӯ các hoҥt ÿӝng cӫa quá trình khác. Cho mөc ÿích này, các cѫ chӃÿҧm bҧo rҵng các tұp tin, phân ÿoҥn bӝ nhӟ, CPU, và các tài nguyên khác có thӇÿѭӧc ÿiӅu hành chӍ bӣi các quá trình có quyӅn phù hӧp tӯ hӋÿiӅu hành. Thí dө, phҫn cӭng ÿӏnh ÿӏa chӍ bӝ nhӟÿҧm bҧo rҵng mӝt quá trình có thӇ thӵc thi chӍ trong không gian ÿӏa chӍ cӫa chính nó. Bӝÿӏnh thӡi ÿҧm bҧo rҵng không có quá trình nào có thӇÿҥt ÿѭӧc ÿiӅu khiӇn cӫa CPU mà cuӕi cùng không trҧ lҥi ÿiӅu khiӇn. Các thanh ghi ÿiӅu khiӇn thiӃt bӏ không thӇ truy xuҩt tӟi ngѭӡi dùng vì thӃ tính ÿúng ÿҳn cӫa các thiӃt bӏ ngoҥi vi khác nhau ÿѭӧc bҧo vӋ. Bҧo vӋ là mӝt cѫ chӃÿӇÿiӅu khiӇn truy xuҩt cӫa các chѭѫng trình, quá trình hay ngѭӡi dùng tӟi tài nguyên ÿѭӧc ÿӏnh nghƭa bӣi mӝt hӋ thӕng máy tính. Cѫ chӃ này phҧi cung cҩp phѭѫng tiӋn ÿӇ ÿһc tҧ các ÿiӅu khiӇn ÿѭӧc áp ÿһt và phѭѫng tiӋn cho viӋc ép buӝc. Bҧo vӋ có thӇ cҧi tiӃn khҧ năng tin cұy bҵng cách phát hiӋn các lӛi tiӅm tàng tҥi các giao diӋn giӳa các hӋ thӕng con thành phҫn. Phát hiӋn các lӛi giao diӋn sӟm thѭӡng có thӇ ngăn chһn nguy cѫҧnh hѭӣng tӟi hӋ thӕng con bӣi mӝt hӋ thӕng con khác. Tài nguyên không ÿѭӧc bҧo vӋ không thӇ ngăn chһn viӋc sӱ dөng bӣi ngѭӡi dùng không có quyӅn. HӋ thӕng hѭӟng bҧo vӋ (protection-oriented system) cung cҩp mӝt phѭѫng tiӋn ÿӇ phân biӋt giӳa viӋc dùng có quyӅn và không có quyӅn. III.8 HӋ thӕng thông dӏch lӋnh Mӝt trong nhӳng chѭѫng trình hӋ thӕng quan trӑng nhҩt ÿӕi vӟi hӋÿiӅu hành là trình thông dӏch lӋnh. Nó là giao diӋn giӳa ngѭӡi dùng và hӋÿiӅu hành. Mӝt vài hӋ ÿiӅu hành chӭa trình thông dӏch lӋnh trong nhân (kernel). Các hӋÿiӅu hành khác nhau nhѭ MS-DOS và UNIX xem trình thông dӏch lӋnh nhѭ mӝt chѭѫng trình ÿһc biӋt ÿang chҥy khi mӝt công viӋc ÿѭӧc khӣi tҥo hay khi ngѭӡi dùng ÿăng nhұp lҫn ÿҫu tiên (trên các hӋ thӕng chia thӡi). NhiӅu lӋnh (commands) ÿѭӧc cung cҩp tӟi hӋÿiӅu hành bӣi các lӋnh ÿiӅu khiӇn (control statements). Khi mӝt công viӋc mӟi ÿѭӧc bҳt ÿҫu trong hӋ thӕng bó, hay khi mӝt ngѭӡi dùng ÿăng nhұp tӟi hӋ thӕng chia thӡi, mӝt chѭѫng trình ÿӑc và thông dӏch các câu lӋnh ÿiӅu khiӇn ÿѭӧc thӵc thi tӵÿӝng. Chѭѫng trình này còn ÿѭӧc gӑi trình thông dӏch thҿÿiӅu khiӇn (control-card interpreter) hay trình thông dӏch dòng lӋnh và thѭӡng ÿѭӧc biӃt nhѭ shell. Chӭc năng cӫa nó ÿѫn giҧn là: lҩy câu lӋnh tiӃp theo và thӵc thi nó. Các hӋÿiӅu hành thѭӡng khác nhau trong vùng shell, vӟi mӝt trình thông dӏch lӋnh thân thiӋn vӟi ngѭӡi dùng làm cho hӋ thӕng có thӇ chҩp nhұp nhiӅu hѫn ÿӕi vӟi ngѭӡi dùng. Mӝt dҥng giao diӋn thân thiӋn ngѭӡi dùng là hӋ thӕng trình ÿѫn-cӱa sә trên cѫ sӣ chuӝt (mouse-based window-and-menu system) ÿѭӧc dùng trong Macintosh và Microsoft Windows. Chuӝt ÿѭӧc di chuyӇn tӟi vӏ trí con trӓ chuӝt trên ҧnh hay biӇu tѭӧng trên màn hình biӇu diӉn các chѭѫng trình, tұp tin, và các hàm hӋ thӕng. Phө thuӝc vào vӏ trí con trӓ chuӝt, nhҩn mӝt nút trên chuӝt có thӇ nҥp mӝt chѭѫng trình, chӑn mӝt tұp tin hay thѭ mөc hay kéo xuӕng mӝt trình ÿѫn chӭa các câu lӋnh. Các shell mҥnh hѫn, phӭc tҥp hѫn và khó hӑc hѫn ÿѭӧc ÿánh giá cao bӣi mӝt sӕ ngѭӡi dùng khác. Trong nhӳng shell này, các lӋnh ÿѭӧc ÿánh vào tӯ bàn phím Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 22
  25. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 ÿѭӧc hiӇn thӏ trên màn hình hay in ra thiӃt bӏÿҫu cuӕi, vӟi phím enter (hay return) chӍ rҵng mӝt lӋnh hoàn thành và sҷn sàng ÿѭӧc thӵc thi. Shell cӫa MS-DOS và UNIX ÿiӅu hành theo cách này. Các câu lӋnh giҧi quyӃt viӋc tҥo và quҧn lý quá trình, quҧn lý xuҩt/nhұp, quҧn lý viӋc lѭu trӳ phө, quҧn lý bӝ nhӟ chính, truy xuҩt hӋ thӕng tұp tin, bҧo vӋ và mҥng. IV Các dӏch vө hӋÿiӅu hành HӋÿiӅu hành cung cҩp mӝt môi trѭӡng cho viӋc thӵc thi các chѭѫng trình. Nó cung cҩp các dӏch vө xác ÿӏnh tӟi chѭѫng trình và tӟi ngѭӡi dùng cӫa các chѭѫng trình ÿó. Dƭ nhiên, các dӏch vөÿѭӧc cung cҩp khác nhau tӯ hӋÿiӅu hành này vӟi hӋ ÿiӅu hành kia nhѭng chúng có thӇ xác ÿӏnh các lӟp chung. Các dӏch vө hӋÿiӅu hành ÿѭӧc cung cҩp sӵ tiӋn dөng cho ngѭӡi lұp trình ÿӇ thӵc hiӋn tác vө lұp trình dӉ dàng. o Thӵc thi chѭѫng trình: hӋ thӕng phҧi có thӇ nҥp chѭѫng trình vào bӝ nhӟ và chҥy chѭѫng trình ÿó. Chѭѫng trình phҧi có thӇ kӃt thúc viӋc thӵc thi cӫa nó bình thѭӡng hay không bình thѭӡng (hiӇn thӏ lӛi). o Thao tác xuҩt/nhұp: mӝt chѭѫng trình ÿang chҥy có thӇ yêu cҫu xuҩt/nhұp. Xuҩt/nhұp này có thӇ liên quan tӟi tұp tin hay thiӃt bӏ xuҩt/nhұp. Ĉӕi vӟi các thiӃt bӏ cө thӇ, các chӭc năng ÿһc biӋt có thӇÿѭӧc mong muӕn (nhѭ quay lҥi tӯÿҫu mӝt ә băng tӯ, hay xoá màn hình). Ĉӕi vӟi tính hiӋu quҧ và tính bҧo vӋ, ngѭӡi dùng thѭӡng không thӇÿiӅu khiӇn các thiӃt bӏ xuҩt/nhұp trӵc tiӃp. Do ÿó, hӋÿiӅu hành phҧi cung cҩp mӝt phѭѫng tiӋn ÿӇ thӵc hiӋn xuҩt/nhұp o Thao tác hӋ thӕng tұp tin: hӋ thӕng tұp tin có sӵ quan tâm ÿһc biӋt. Các chѭѫng trình cҫn ÿӑc tӯ và viӃt tӟi các tұp tin. Chѭѫng trình cNJng cҫn tҥo và xoá tұp tin bҵng tên. o Giao tiӃp: trong nhiӅu trѭӡng hӧp, mӝt quá trình cҫn trao ÿәi thông tin vӟi các quá trình khác. Giao tiӃp nhѭ thӃ có thӇ xҧy ra trong hai cách chính. Cách ÿҫu tiên xҧy ra giӳa các quá trình ÿѭӧc thӵc thi trên cùng máy tính; cách thӭ hai xҧy ra giӳa hai quá trình ÿang ÿѭӧc thӵc thi trên các máy tính khác nhau ÿѭӧc kӃt nӕi vӟi nhau bӣi mӝt mҥng máy tính. Các giao tiӃp có thӇÿѭӧc thӵc hiӋn bҵng bӝ nhӟÿѭӧc chia sҿ, hay bҵng kӻ thuұt truyӅn thông ÿiӋp, trong ÿó các gói tin ÿѭӧc di chuyӇn giӳa các quá trình bӣi hӋ ÿiӅu hành. o Phát hiӋn lӛi: hӋÿiӅu hành liên tөc yêu cҫu nhұn biӃt các lӛi có thӇ phát sinh. Các lӛi có thӇ xҧy ra trong CPU và phҫn cӭng bӝ nhӟ (nhѭ lӛi bӝ nhӟ hay lӛi vӅÿiӋn), trong các thiӃt bӏ xuҩt/nhұp (nhѭ lӛi chҷn lҿ trên băng tӯ, lӛi nӕi kӃt mҥng, hӃt giҩy in) và trong chѭѫng trình ngѭӡi dùng (nhѭ tràn sӕ hӑc, cӕ gҳng truy xuҩt mӝt vӏ trí bӝ nhӟ không hӧp lӋ, dùng quá nhiӅu thӡi gian CPU). Ĉӕi vӟi mӛi loҥi lӛi, hӋÿiӅu hành nên thӵc hiӋn mӝt hoҥt ÿӝng hӧp lý ÿӇ ÿҧm bҧo tính toán ÿúng và không ÿәi. Ngoài ra, mӝt tұp chӭc năng khác cӫa hӋÿiӅu hành tӗn tҥi không giúp ngѭӡi dùng, nhѭng ÿҧm bҧo các ÿiӅu hành hӳu hiӋu cӫa chính hӋ thӕng. Các hӋ thӕng vӟi nhiӅu ngѭӡi dùng có thӇÿҥt tính hӳu hiӋu bҵng cách chia sҿ tài nguyên máy tính giӳa các ngѭӡi dùng. o Cҩp phát tài nguyên: khi nhiӅu ngѭӡi dùng ÿăng nhұp vào hӋ thӕng hay nhiӅu công viӋc ÿang chҥy cùng lúc, tài nguyên phҧi ÿѭӧc cҩp tӟi mӛi ngѭӡi dùng. NhiӅu loҥi tài nguyên khác nhau ÿѭӧc quҧn lý bӣi hӋÿiӅu hành. Mӝt sӕ tài nguyên (nhѭ chu kǤ CPU, bӝ nhӟ chính, lѭu trӳ tұp tin) có mã cҩp Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 23
  26. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 phát ÿһt biӋt, trái lҥi các tài nguyên khác (nhѭ thiӃt bӏ xuҩt/nhұp) có mã yêu cҫu và giҧi phóng thѭӡng hѫn. Thí dө, xác ÿӏnh cách tӕt nhҩt ÿӇ dùng CPU, hӋÿiӅu hành có các thӫ tөc ÿӏnh thӡi biӇu CPU. Các thӫ tөc này xem xét tӕc ÿӝ CPU, các công viӋc phҧi ÿѭӧc thӵc thi, sӕ thanh ghi sҷn dùng và các yӃu tӕ khác. CNJng có các thӫ tөc cҩp phát ә băng tӯÿӇ dùng cho mӝt công viӋc. Mӝt thӫ tөc nhѭ thӃÿӏnh vӏә băng tӯ chѭa ÿѭӧc dùng và ÿánh dҩu mӝt bҧng bên trong ÿӇ ghi ngѭӡi dùng mӟi cӫa ә băng tӯ. Mӝt thӫ tөc khác ÿѭӧc dùng ÿӇ xoá bҧng ÿó. Các thӫ tөc này cNJng có thӇ cҩp phát các máy vӁ, modem, các thiӃt bӏ ngoҥi vi khác. o Tính toán: chúng ta muӕn giӳ vӃt ngѭӡi dùng nào sӱ dөng bao nhiêu và loҥi tài nguyên máy tính nào. Giӳ vӃt này có thӇÿѭӧc dùng ÿӇ tính toán (tính tiӅn ngѭӡi dùng) hay ÿѫn giҧn thӕng kê sӱ dөng. Thӕng kê sӱ dөng có thӇ là công cө có giá trӏ cho ngѭӡi nghiên cӭu muӕn cҩu hình lҥi hӋ thӕng ÿӇ cҧi tiӃn các dӏch vө tính toán. o Bҧo vӋ: ngѭӡi sӣ hӳu thông tin ÿѭӧc lѭu trong hӋ thӕng máy tính ÿa ngѭӡi dùng muӕn ÿiӅu khiӇn thông tin này. Khi nhiӅu quá trình riêng rҿ thӵc thi ÿӗng hành, không thӇ cho mӝt quá trình can thiӋp tӟi các quá trình khác hay tӟi chính hӋÿiӅu hành. Bҧo vӋÿҧm bҧo rҵng tҩt cҧ truy xuҩt tài nguyên cӫa hӋ thӕng ÿѭӧc kiӇm soát. An toàn hӋ thӕng tӯ ngѭӡi dùng bên ngoài cNJng là vҩn ÿӅ quan trӑng. An toàn bҳt ÿҫu vӟi mӛi ngѭӡi dùng có quyӅn ÿӕi vӟi hӋ thӕng, thѭӡng bҵng mұt khҭu ÿӇ ÿѭӧc phép truy xuҩt tài nguyên. Mӣ rӝng viӋc bҧo vӋÿӕi vӟi các thiӃt bӏ xuҩt/nhұp bên ngoài, bao gӗm modem, card mҥng tӯ nhӳng truy xuҩt không hӧp lӋ, và ghi lҥi các nӕi kӃt ÿӇ phát hiӋn ÿӝt nhұp vào hӋ thӕng. NӃu hӋ thӕng bҧo vӋ và bҧo mұt, nhӳng cҧnh báo phҧi ÿѭӧc thiӃt lұp xuyên suӕt. VLӡi gӑi hӋ thӕng Lӡi gӑi hӋ thӕng cung cҩp giao diӋn giӳa mӝt quá trình và hӋÿiӅu hành. Các lӡi gӑi này thѭӡng sҷn dùng nhѭ các chӍ thӏ hӧp ngӳ và chúng thѭӡng ÿѭӧc liӋt kê trong nhӳng tài liӋu hѭӟng dүn sӱ dөng ÿѭӧc dùng bӣi nhӳng ngѭӡi lұp trình hӧp ngӳ. Nhӳng hӋ thӕng xác ÿӏnh cho phép lӡi gӑi hӋ thӕng ÿѭӧc thӵc hiӋn trӵc tiӃp tӯ mӝt chѭѫng trình ngôn ngӳ cҩp cao, trong ÿó các lӡi gӑi thѭӡng tѭѫng tӵ lӡi gӑi hàm hay thӫ tөc ÿѭӧc ÿӏnh nghƭa trѭӟc. Chúng có thӇ tҥo ra mӝt lӡi gӑi tӟi mӝt chѭѫng trình con tҥi thӡi ÿiӇm thӵc thi cө thӇ. Lӡi gӑi hӋ thӕng xҧy ra trong nhiӅu cách khác nhau, phө thuӝc vào máy tính ÿang dùng. Thѭӡng nhiӅu thông tin ÿѭӧc yêu cҫu hѫn là ÿѫn giҧn xác ÿӏnh lӡi gӑi hӋ thӕng mong muӕn. Loҥi chính xác và lѭӧng thông tin khác nhau dӵa vào hӋÿiӅu hành và lӡi gӑi cө thӇ. Thí dө, ÿӇ nhұp dӳ liӋu, chúng ta có thӇ cҫn xác ÿӏnh tұp tin hay thiӃt bӏ dùng nhѭ nguӗn nhұp, ÿӏa chӍ và chiӅu dài vùng ÿӋm bӝ nhӟ mà dӳ liӋu nhұp sӁÿѭӧc ÿӑc vào. Dƭ nhiên, thiӃt bӏ hay tұp tin và chiӅu dài có thӇҭn trong lӡi gӑi. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 24
  27. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 Hình 0-1-TruyӅn tham sӕ nhѭ bҧng Có ba phѭѫng pháp thông dөng ÿӇ truyӅn tham sӕ tӟi hӋÿiӅu hành. Phѭѫng pháp ÿѫn giҧn nhҩt là truyӅn tham sӕ trong các thanh ghi. Trong mӝt vài trѭӡng hӧp, các tham sӕ thѭӡng lѭu trӳ trong mӝt khӕi hay bҧng trong bӝ nhӟ và ÿӏa chӍ cӫa khӕi ÿѭӧc truyӅn nhѭ mӝt tham sӕ trong thanh ghi (Hình II.1). Các tham sӕ cNJng có thӇ ÿѭӧc thay thӃ, hay ÿѭӧc ÿҭy vào trong ngăn xӃp bӣi chѭѫng trình, và ÿѭӧc lҩy ra khӓi ngăn xӃp bӣi hӋÿiӅu hành. Mӝt vài hӋÿiӅu hành dùng phѭѫng pháp khӕi hay ngăn xӃp vì các phѭѫng pháp này không giӟi hҥn sӕ lѭӧng hay chiӅu dài cӫa tham sӕÿang ÿѭӧc truyӅn. VI Các chѭѫng trình hӋ thӕng Mӝt khía cҥnh khác cӫa hӋ thӕng hiӋn ÿҥi là tұp hӧp các chѭѫng trình hӋ thӕng. Xem lҥi hình I.1, nó minh hӑa cҩu trúc phân cҩp máy tính luұn lý. Tҥi cҩp thҩp nhҩt là phҫn cӭng. KӃÿӃn là hӋÿiӅu hành, sau ÿó các chѭѫng trình hӋ thӕng và cuӕi cùng là các chѭѫng trình ӭng dөng. Các chѭѫng trình hӋ thӕng cung cҩp môi trѭӡng thuұn lӧi cho viӋc phát triӇn và thӵc thi chѭѫng trình. Vài trong chúng là các giao diӋn ngѭӡi dùng ÿѫn giҧn cho các lӡi gӑi hӋ thӕng; các hӋ thӕng còn lҥi ÿѭӧc xem xét phӭc tҥp hѫn. Chúng có thӇÿѭӧc chia thành các loҥi sau: o Quҧn lý tұp tin: các chѭѫng trình tҥo, xóa, chép, ÿәi tên, in, kӃt xuҩt, liӋt kê, và các thao tác tұp tin thѭ mөc thông thѭӡng. o Thông tin trҥng thái: mӝt vài chѭѫng trình ÿѫn giҧn yêu cҫu hӋ thӕng ngày, giӡ, lѭӧng bӝ nhӟ hay ÿƭa sҷn dùng, sӕ lѭӧng ngѭӡi dùng, hay thông tin trҥng thái tѭѫng tӵ. Sau ÿó, thông tin ÿѭӧc ÿӏnh dҥng và ÿѭӧc in tӟi thiӃt bӏÿҫu cuӕi hay thiӃt bӏ xuҩt khác hoһc tұp tin. o Thay ÿәi tұp tin: nhiӅu trình soҥn thҧo văn bҧn có thӇ sҷn dùng ÿӇ tҥo và thay ÿәi nӝi dung cӫa tұp tin ÿѭӧc lѭu trên ÿƭa hay băng tӯ. o Hӛ trӧ ngôn ngӳ lұp trình: trình biên dӏch, trình hӧp ngӳ và trình thông dӏch cho các ngôn ngӳ lұp trình thông dөng (nhѭ C, C++, Java, Visual Basic và PERL) thѭӡng ÿѭӧc cung cҩp tӟi ngѭӡi dùng vӟi hӋÿiӅu hành. HiӋn nay, mӝt vài chѭѫng trình này ÿѭӧc cung cҩp riêng và có giá cҧ riêng. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 25
  28. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 o Nҥp và thӵc thi chѭѫng trình: mӝt khi chѭѫng trình ÿѭӧc tұp hӧp hay ÿѭӧc biên dӏch, nó phҧi ÿѭӧc nҥp vào bӝ nhӟÿӇÿѭӧc thӵc thi. HӋ thӕng có thӇ cung cҩp bӝ nҥp tuyӋt ÿӕi, bӝ nҥp có thӇ tái ÿӏnh vӏ, bӝ soҥn thҧo liên kӃt và bӝ nҥp phӫ lҳp. Các hӋ thӕng gӥ rӕi cho các ngôn ngӳ cҩp cao hay ngôn ngӳ máy cNJng ÿѭӧc yêu cҫu. o Giao tiӃp: các chѭѫng trình này cung cҩp cѫ chӃ tҥo các nӕi kӃt ҧo giӳa các quá trình, ngѭӡi dùng, các hӋ thӕng máy tính khác. Chúng cho phép ngѭӡi dùng gӣi các thông ÿiӋp tӟi màn hình cӫa ngѭӡi dùng khác, hiӇn thӏ các trang web, gӣi thѭÿiӋn tӱ, ÿăng nhұp tӯ xa hay ÿӇ chuyӇn các tұp tin tӯ máy tính này tӟi máy tính khác. NhiӅu hӋÿiӅu hành ÿѭӧc cung cҩp vӟi các chѭѫng trình giҧi quyӃt các vҩn ÿӅ giao tiӃp thông thѭӡng hay thӵc hiӋn các thao tác phә biӃn. Nhӳng chѭѫng trình nhѭ thӃ gӗm các trình duyӋt Web, bӝ xӱ lý văn bҧn và bӝÿӏnh dҥng văn bҧn, hӋ cѫ sӣ dӳ liӋu, trình biên dӏch, các gói phҫn mӅm ÿӗ hӑa và phân tích thӕng kê, trò chѫi, Nhӳng chѭѫng trình này ÿѭӧc gӑi là các tiӋn ích hӋ thӕng hay chѭѫng trình ӭng dөng. Hҫu hӃt ngѭӡi dùng nhìn hӋÿiӅu hành nhѭ các chѭѫng trình hӋ thӕng hѫn các lӡi gӑi hӋ thӕng thӵc sӵ. Nghƭ vӅ viӋc sӱ dөng mӝt PC. Khi máy tính cӫa chúng ta chҥy hӋÿiӅu hành Microsoft Windows, chúng ta có thӇ thҩy mӝt trình thông dӏch dòng lӋnh MS-DOS hay giao diӋn cӱa sә và trình ÿѫn ÿӗ hӑa. Cҧ hai sӱ dөng cùng mӝt tұp lӡi gӑi hӋ thӕng nhѭ lӡi gӑi hӋ thӕng trông rҩt khác và hoҥt ÿӝng trong các cách khác nhau. Do ÿó, tҫm nhìn cӫa chúng ta vӅ thӵc chҩt có thӇ bӏ tách rӡi vӟi cҩu trúc hӋ thӕng thӵc sӵ. Vì thӃ, thiӃt kӃ mӝt giao diӋn tiӋn dөng và thân thiӋn không là mӝt chӭc năng trӵc tiӃp cӫa hӋÿiӅu hành. Trong giáo trình này chúng ta sӁ tұp trung các vҩn ÿӅ cѫ bҧn cӫa viӋc cung cҩp dӏch vөÿҫy ÿӫ cho các chѭѫng trình ngѭӡi dùng. Tӯ quan ÿiӇm hӋÿiӅu hành, chúng ta không phân biӋt sӵ khác nhau giӳa các chѭѫng trình ngѭӡi dùng và các chѭѫng trình hӋ thӕng. VIICҩu trúc hӋ thӕng Mӝt hӋ thӕng lӟn và phӭc tҥp nhѭ mӝt hӋÿiӅu hành hiӋn ÿҥi phҧi ÿѭӧc xây dӵng cҭn thұn nӃu nó thӵc hiӋn chӭc năng hӧp lý và ÿѭӧc hiӋu chӍnh dӉ dàng. Mӝt phѭѫng pháp thông thѭӡng là chia tác vө thành các thành phҫn nhӓ hѫn là có mӝt hӋ thӕng nguyên khӕi. Mӛi modules này nên là mӝt thành phҫn hoàn toàn xác ÿӏnh vӟi nhұp, xuҩt, chӭc năng ÿѭӧc ÿӏnh nghƭa cҭn thұn. Trong phҫn này chúng ta sӁ thҧo luұn vӅ cách thӭc mà các thành phҫn ÿѭӧc nӕi kӃt và trӝn lүn trong mӝt nhân. VII.1 Cҩu trúc ÿѫn giҧn Hình 0-2-Cҩu trúc phân tҫng cӫa MS-DOS Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 26
  29. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 NhiӅu hӋ thӕng thѭѫng mҥi không có kiӃn trúc rõ ràng. Thѭӡng các hӋÿiӅu hành nhѭ thӃÿѭӧc bҳt ÿҫu nhѭ các hӋ thӕng nhӓ, ÿѫn giҧn và có giӟi hҥn. Sau ÿó chúng lӟn lên ngoài giӟi hҥn mã ban ÿҫu cӫa chúng. MS-DOS là mӝt thí dө cho hӋ thӕng dҥng này. Ban ÿҫu, nó ÿѭӧc thiӃt kӃ và thӵc hiӋn bӣi mӝt vài ngѭӡi mà hӑ không tѭӣng rҵng chúng sӁ trӣ nên quá phә biӃn. Nó ÿѭӧc viӃt ÿӇ cung cҩp các khҧ năng nhiӅu nhҩt trong không gian ít nhҩt (vì bӏ giӟi hҥn bӣi phҫn cӭng mà nó ÿang chҥy) vì nó không ÿѭӧc phân chia thành các modules mӝt cách cҭn thұn. Hình II.2, hiӇn thӏ cҩu trúc cӫa nó. UNIX là mӝt hӋÿiӅu hành khác mà ban ÿҫu nó bӏ giӟi hҥn bӣi chӭc năng phҫn cӭng. Nó chӭa hai phҫn có thӇ tách rӡi nhau: nhân và các chѭѫng trình hӋ thӕng. Nhân lҥi ÿѭӧc chia thành mӝt loҥt các giao diӋn và trình ÿiӅu khiӇn thiӃt bӏ mà chúng ÿѭӧc thêm vào và mӣ rӝng qua nhiӅu năm khi UNIX ÿѭӧc cҧi tiӃn. Chúng ta có thӇ hiӇn thӏ hӋÿiӅu hành UNIX truyӅn thӕng khi nó ÿѭӧc phân tҫng nhѭ hình II.3. Mӑi thӭ bên dѭӟi giao diӋn lӡi gӑi hӋ thӕng và bên trên phҫn cӭng vұt lý là nhân. Nhân cung cҩp hӋ thӕng tұp tin, bӝÿӏnh thӡi CPU, quҧn lý bӝ nhӟ và các chӭc năng khác cӫa hӋÿiӅu hành thông qua lӡi gӑi hӋ thӕng. Có rҩt nhiӅu chӭc năng ÿѭӧc nӕi kӃt trong cҩp thӭ nhҩt. ĈiӅu này làm cho UNIX khó có thӇ nâng cҩp khi nhӳng thay ÿәi trong phҫn mӝt ҧnh hѭӣng bҩt lӧi cho nhӳng phҫn khác. Hình 0-3 – Cҩu trúc hӋ thӕng cӫa UNIX Lӡi gӑi hӋ thӕng ÿӏnh nghƭa giao diӋn lұp trình ӭng dөng (API-Application Programming Interface) cho UNIX; tұp hӧp các chѭѫng trình hӋ thӕng thѭӡng sҷn dùng ÿӏnh nghƭa giao diӋn ngѭӡi dùng. Ngѭӡi lұp trình và giao diӋn ngѭӡi dùng ÿӏnh nghƭa ngӳ cҧnh mà nhân phҧi hӛ trӧ. Nhӳng ҩn bҧn mӟi cӫa UNIX ÿѭӧc thiӃt kӃÿӇ dùng phҫn cӭng tiên tiӃn hѫn. Ĉѭӧc cung cҩp sӵ hӛ trӧ phҫn cӭng hӧp lý, các hӋÿiӅu hành có thӇÿѭӧc chia thành nhiӅu phҫn nhӓ hѫn và phù hӧp hѫn là các hӋ thӕng MS-DOS và UNIX ban ÿҫu. Sau ÿó, các hӋÿiӅu hành có thӇ giӳ lҥi viӋc ÿiӅu khiӇn lӟn hѫn qua máy tính và qua các ӭng dөng thӵc hiӋn viӋc sӱ dөng máy tính ÿó. Nhӳng ngѭӡi cài ÿһt thoҧi mái hѫn trong viӋc thӵc hiӋn nhӳng thay ÿәi các hoҥt ÿӝng bên trong cӫa hӋ thӕng và trong viӋc tҥo các hӋÿiӅu hành theo module. Dѭӟi phѭѫng pháp tӯ trên-xuӕng (top-down), toàn bӝ các chӭc năng và ÿһc ÿiӇm ÿѭӧc xác ÿӏnh và ÿѭӧc chia thành các thành phҫn. Sӵ phân chia này cho phép các ngѭӡi lұp trình che giҩu thông tin; do ÿó hӑ tӵ do cài ÿһt các thӫ tөc cҩp thҩp khi hӑ thҩy thích hӧp, ÿѭӧc cung cҩp các giao diӋn bên ngoài cӫa các thӫ tөc không bӏ thay ÿәi do chính thӫ tөc ÿó thӵc hiӋn các tác vө thông thѭӡng. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 27
  30. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 VII.2 Phѭѫng pháp phân tҫng ViӋc phân chia tӯng phҫn cӫa mӝt hӋ thӕng có thӇÿѭӧc thӵc hiӋn trong nhiӅu cách. Mӝt trong nhӳng phѭѫng pháp này là thӵc hiӋn tiӃp cұn phân tҫng. Trong tiӃp cұn này hӋÿiӅu hành ÿѭӧc chia thành nhiӅu tҫng (hay cҩp), mӛi tҫng ÿѭӧc xây dӵng trên ÿӍnh cӫa tҫng dѭӟi nó. Tҫng cuӕi cùng (tҫng 0) là phҫn cӭng; tҫng cao nhҩt (tҫng N) là giao diӋn ngѭӡi dùng. Mӝt tҫng hӋÿiӅu hành là sӵ cài ÿһt cӫa mӝt ÿӕi tѭӧng trӯu tѭӧng. Ĉӕi tѭӧng trӯu tѭӧng này là sӵ bao gói dӳ liӋu và các ÿiӅu hành có thӇ thao tác dӳ liӋu ÿó. Mӝt tҫng hӋÿiӅu hành ÿiӇn hình –tҫng M- ÿѭӧc mô tҧ trong hình II.4. Nó chӭa các cҩu trúc dӳ liӋu và tұp hӧp các thӫ tөc có thӇÿѭӧc gӑi bӣi các tҫng cҩp cao hѫn. Sau ÿó, tҫng M có thӇ gӑi các thao tác trên tҫng cҩp thҩp hѫn. Hình 0-4-Mӝt tҫng hӋÿiӅu hành Lӧi ÿiӇm chӫ yӃu cӫa tiӃp cұn phân tҫng là tính module. Các tҫng ÿѭӧc chӑn dӵa trên cѫ sӣ tҫng trên sӱ dөng chӭc năng (hay các ÿiӅu hành) và các dӏch vө chӍ cӫa tҫng cҩp dѭӟi nó. TiӃp cұn này ÿѫn giҧn hóa viӋc gӥ rӕi và kiӇm tra hӋ thӕng. Tҫng ÿҫu tiên có thӇÿѭӧc gӥ rӕi mà không có bҩt cӭ sӵ quan tâm nào cho phҫn còn lҥi cӫa hӋ thӕng. Bӣi vì theo ÿӏnh nghƭa, nó chӍ sӱ dөng phҫn cӭng cѫ bҧn ÿӇ cài ÿһt các chӭc năng cӫa nó. Mӝt khi tҫng ÿҫu tiên ÿѭӧc gӥ rӕi, chӭc năng sӱa lӛi cӫa nó có thӇÿѭӧc ÿҧm ÿѭѫng trong khi tҫng thӭ hai ÿѭӧc gӥ rӕi, NӃu mӝt lӛi ÿѭӧc tìm thҩy trong khi gӥ rӕi cho mӝt tҫng xác ÿӏnh, lӛi phҧi ÿѭӧc nҵm trên tҫng ÿó vì các tҫng bên dѭӟi ÿã ÿѭӧc gӥ rӕi rӗi. Do ÿó, thiӃt kӃ và cài ÿһt hӋ thӕng ÿѭӧc ÿѫn giҧn hóa khi hӋ thӕng ÿѭӧc phân chia thành nhiӅu tҫng. Mӛi tҫng ÿѭӧc cài ÿһt chӍ vӟi các thao tác ÿѭӧc cung cҩp bӣi các tҫng bên dѭӟi. Mӝt tҫng không cҫn biӃt các thao tác ÿѭӧc cài ÿһt nhѭ thӃ nào; nó chӍ cҫn biӃt các thao tác ÿó làm gì. Do ÿó, mӛi tҫng che giҩu sӵ tӗn tҥi cӫa cҩu trúc dӳ liӋu, thao tác và phҫn cӭng tӯ các tҫng cҩp cao hѫn. Khó khăn chính cӫa tiӃp cұn phân tҫng liên quan tӟi viӋc ÿӏnh nghƭa cҭn thұn các tҫng vì mӝt tҫng chӍ có thӇ sӱ dөng các tҫng bên dѭӟi nó. Thí dө, trình ÿiӅu khiӇn thiӃt bӏ cho không gian ÿƭa ÿѭӧc dùng bӣi các giҧi thuұt bӝ nhӟҧo phҧi nҵm ӣ tҥi cҩp thҩp hѫn trình ÿiӅu khiӇn thiӃt bӏ cӫa các thӫ tөc quҧn lý bӝ nhӟ vì quҧn lý bӝ nhӟ yêu cҫu khҧ năng sӱ dөng không gian ÿƭa. Các yêu cҫu có thӇ không thұt sӵ rõ ràng. Thѭӡng thì các trình ÿiӅu khiӇn lѭu trӳ dӵ phòng nҵm trên bӝÿӏnh thӡi CPU vì trình ÿiӅu khiӇn cҫn phҧi chӡ nhұp/xuҩt và CPU có thӇÿѭӧc ÿӏnh thӡi lҥi trong thӡi gian này. Tuy nhiên, trên hӋ thӕng lӟn, bӝ Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 28
  31. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 ÿӏnh thӡi có thӇ có nhiӅu thông tin hѫn vӅ tҩt cҧ quá trình ÿang hoҥt ÿӝng hѫn là có thӇÿһt vӯa trong bӝ nhӟ. Do ÿó, thông tin này có thӇ cҫn ÿѭӧc hoán vӏ vào và ra bӝ nhӟ, yêu cҫu thӫ tөc trình ÿiӅu khiӇn lѭu trӳ dӵ phòng nҵm bên dѭӟi bӝÿӏnh thӡi CPU. Vҩn ÿӅ cuӕi cùng vӟi các cài ÿһt phân tҫng là chúng có khuynh hѭӟng ít hiӋu quҧ hѫn các loҥi khác. Thí dө, khi chѭѫng trình ngѭӡi dùng thӵc thi thao tác nhұp/xuҩt, nó thӵc thi mӝt lӡi gӑi hӋ thӕng. Lӡi gӑi hӋ thӕng này ÿѭӧc bүy (trapped) tӟi tҫng nhұp/xuҩt, nó yêu cҫu tҫng quҧn lý bӝ nhӟ, sau ÿó gӑi tҫng ÿӏnh thӡi CPU, sau ÿó ÿѭӧc truyӅn tӟi phҫn cӭng. Tҥi mӛi tҫng, các tham sӕ có thӇÿѭӧc hiӋu chӍnh, dӳ liӋu có thӇÿѭӧc truyӅn, Mӛi tҫng thêm chi phí cho lӡi gӑi hӋ thӕng; kӃt quҧ thӵc sӵ là lӡi gӑi hӋ thӕng mҩt thӡi gian lâu hѫn khi chúng thӵc hiӋn trên hӋ thӕng không phân tҫng. Hình 0-5 Cҩu trúc phân tҫng cӫa OS/2 Nhӳng giӟi hҥn này gây mӝt phҧn ӭng nhӓ chӕng lҥi viӋc phân tҫng trong nhӳng năm gҫn ÿây. Rҩt ít các tҫng vӟi nhiӅu chӭc năng ÿѭӧc thiӃt kӃ, cung cҩp nhiӅu lӧi ÿiӇm cӫa mã ÿѭӧc module trong khi tránh nhӳng vҩn ÿӅ khó khăn cӫa ÿӏnh nghƭa và giao tiӃp tҫng. Thí dө, OS/2 bә sung thêm tính năng ÿa tác vө và ÿiӅu hành hai chӃ ÿӝ cùng mӝt sӕÿһc ÿiӇm mӟi. Vì tính phӭc tҥp ÿѭӧc bә sung và phҫn cӭng mҥnh hѫn mà OS/2 ÿѭӧc thiӃt kӃ, hӋ thӕng ÿѭӧc cài ÿһt trong dҥng phân tҫng. VII.3 Vi nhân (Microkernels) Khi hӋÿiӅu hành UNIX ÿѭӧc mӣ rӝng, nhân trӣ nên lӟn và khó quҧn lý. Vào giӳa nhӳng năm 1980, các nhà nghiên cӭu tҥi ÿҥi hӑc Carnegie Mellon phát triӇn mӝt hӋÿiӅu hành ÿѭӧc gӑi là Match mà module hóa nhân dùng ti͇p c̵n vi nhân (micro kernel). Phѭѫng pháp này ÿӏnh kiӃn trúc cӫa hӋÿiӅu hành bҵng xóa tҩt cҧ thành phҫn không quan trӑng tӯ nhân và cài chúng nhѭ các chѭѫng trình cҩp ngѭӡi dùng và hӋ thӕng. KӃt quҧ này làm cho nhân nhӓ hѫn. Có rҩt ít sӵ nhҩt trí liên quan ÿӃn viӋc quyӃt ÿӏnh dӏch vө nào nên ÿӇ lҥi trong nhân và dӏch vө nào nên ÿѭӧc cài ÿһt trong không gian ngѭӡi dùng. Tuy nhiên, thѭӡng thì các vi nhân ÿiӇn hình cung cҩp quá trình và quҧn lý bӝ nhӟ tӕi thiӇu ngoài phѭѫng tiӋn giao tiӃp. Chӭc năng chính cӫa vi nhân là cung cҩp tiӋn nghi giao tiӃp giӳa chѭѫng trình khách hàng và các dӏch vө khác mà chúng ÿang chҥy trong không gian ngѭӡi dùng. Giao tiӃp ÿѭӧc cung cҩp bҵng truyӅn thông ÿiӋp. Thí dө, nӃu chѭѫng trình khách hàng muӕn truy xuҩt mӝt tұp tin, nó phҧi giao tiӃp vӟi trình phөc vө tұp tin (file server). Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 29
  32. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 Chѭѫng trình ngѭӡi dùng và dӏch vө không bao giӡ giao tiӃp trӵc tiӃp. Ĉúng hѫn là chúng giao tiӃp gián tiӃp bҵng cách truyӅn thông ÿiӋp vӟi vi nhân. Thuұn lӧi cӫa tiӃp cұn vi nhân là dӉ dàng mӣ rӝng hӋÿiӅu hành. Tҩt cҧ dӏch vө mӟi ÿѭӧc thêm tӟi không gian ngѭӡi dùng và do ÿó không yêu cҫu phҧi hiӋu chӍnh nhân. KӃt quҧ là hӋÿiӅu hành dӉ dàng hѫn ÿӇ chuyӇn ÿәi tӯ thiӃt kӃ phҫn cӭng này sang thiӃt kӃ phҫn cӭng khác. Vi nhân cNJng cung cҩp khҧ năng an toàn và tin cұy hѫn vì hҫu hӃt các dӏch vөÿang chҥy nhѭ ngѭӡi dùng –hѫn là nhân- các quá trình. NӃu mӝt dӏch vө bӏ lӛi, phҫn còn lҥi cӫa hӋÿiӅu hành vүn không bӏҧnh hѭӣng. Mӝt sӕ hӋÿiӅu hành hiӋn ÿҥi dùng tiӃp cұn vi nhân. Tru64 UNIX (Digital UNIX trѭӟc ÿây) cung cҩp giao diӋn UNIX tӟi ngѭӡi dùng, nhѭng nó ÿѭӧc cài ÿһt vӟi nhân Mach. Nhân Mach ánh xҥ các lӡi gӑi hӋ thӕng vào các thông ÿiӋp tӟi các dӏch vө cҩp ngѭӡi dùng tѭѫng ӭng. HӋÿiӅu hành Apple MacOS Server ÿѭӧc dӵa trên cѫ sӣ nhân Mach. QNX là hӋÿiӅu hành thӡi thӵc cNJng dӵa trên cѫ sӣ thiӃt kӃ vi nhân. Vi nhân QNX cung cҩp các dӏch vө cho viӋc truyӅn thông ÿiӋp và ÿӏnh thӡi quá trình. Nó cNJng quҧn lý giao tiӃp mҥng cҩp thҩp và các ngҳt phҫn cӭng. Tҩt cҧ dӏch vө khác trong QNX ÿѭӧc cung cҩp bӣi các quá trình chuҭn chҥy bên ngoài nhân trong chӃÿӝ ngѭӡi dùng. Windows NT dùng mӝt cҩu trúc tәng hӧp. Windows NT ÿѭӧc thiӃt kӃÿӇ chҥy các ӭng dөng khác nhau, gӗm Win32 (ӭng dөng thuҫn Windows), OS/2, và POSIX (Portable Operating System Interface for uniX). Nó cung cҩp mӝt server chҥy trong không gian ngѭӡi dùng cho mӛi loҥi ӭng dөng. Các chѭѫng trình khách hàng cho mӛi loҥi ӭng dөng chҥy trong không gian ngѭӡi dùng. Nhân ÿiӅu phӕi viӋc truyӅn thông ÿiӋp giӳa các ӭng dөng khách hàng và server ӭng dөng. Cҩu trúc client-server cӫa Windows NT ÿѭӧc mô tҧ trong hình II.6 Hình 0-6 – Cҩu trúc client-server cӫa Windows NT VIIIMáy ҧo VӅ mһt khái niӋm, mӝt hӋ thӕng máy tính ÿѭӧc cҩu thành tӯ các tҫng. Phҫn cӭng là cҩp thҩp nhҩt trong tҩt cҧ hӋ thӕng nhѭ thӃ. Nhân chҥy tҥi cҩp kӃ tiӃp dùng các chӍ thӏ phҫn cӭng ÿӇ tҥo mӝt tұp lӡi gӑi hӋ thӕng cho viӋc sӱ dөng các tҫng bên ngoài. Do ÿó, các chѭѫng trình hӋ thӕng trên nhân có thӇ dùng các lӡi gӑi hӋ thӕng hay các chӍ thӏ phҫn cӭng. Trong nhiӅu trѭӡng hӧp, các chѭѫng trình này không có sӵ khác biӋt giӳa hai cách thӵc hiӋn. Do ÿó, mһc dù chúng ÿѭӧc truy xuҩt khác nhau, nhѭng cҧ hai cung cҩp chӭc năng mà chѭѫng trình có thӇ dùng ÿӇ tҥo thұm chí nhiӅu chӭc năng tiên tiӃn hѫn. Sau ÿó, các chѭѫng trình hӋ thӕng xem phҫn cӭng và các lӡi gӑi hӋ thӕng nhѭ chúng ÿang ӣ cùng mӝt cҩp. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 30
  33. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 Mӝt vài hӋ thӕng thӵc hiӋn cѫ chӃ này mӝt cách chi tiӃt hѫn bҵng cách cho phép các chѭѫng trình hӋ thӕng ÿѭӧc gӑi dӉ dàng bӣi các chѭѫng trình ӭng dөng. Trѭӟc ÿó, mһc dù các chѭѫng trình hӋ thӕng ӣ tҥi cҩp cao hѫn các thӫ tөc khác, nhѭng các chѭѫng trình ӭng dөng có thӇ hiӇn thӏ mӑi thӭ dѭӟi chúng trong cҩu trúc phân cҩp nhѭ là mӝt phҫn cӫa chính máy ÿó. TiӃp cұn phân tҫng này ÿѭӧc ÿѭa ÿӃn mӝt kӃt luұn luұn lý trong khái niӋm máy ҧo (virtual machine). Mӝt hӋÿiӅu hành máy ҧo cho các hӋ thӕng IBM là mӝt thí dөÿiӇn hình nhҩt vӅ khái niӋm máy ҧo vì IBM tiên phong thӵc hiӋn trong lƭnh vӵc này. Bҵng cách sӱ dөng bӝÿӏnh thӡi CPU và kӻ thuұt bӝ nhӟҧo, mӝt hӋÿiӅu hành có thӇ tҥo mӝt hình ҧnh mà mӝt quá trình có bӝ xӱ lý cӫa chính nó vӟi bӝ nhӟ (ҧo) cӫa chính nó. Dƭ nhiên, thѭӡng thì mӝt quá trình có các ÿһc ÿiӇm khác nhau, nhѭ các lӡi gӑi hӋ thӕng và hӋ thӕng tұp tin, mà không ÿѭӧc cung cҩp bӣi phҫn cӭng trѫ. Thêm vào ÿó, tiӃp cұn máy ҧo không cung cҩp bҩt kǤ chӭc năng bә sung nào; nhѭng ÿúng hѫn là cung cҩp mӝt giao diӋn giӕng hӋt nhѭ phҫn cӭng trѫӣ bên dѭӟi. Mӛi quá trình ÿѭӧc cung cҩp vӟi mӝt bҧn sao (ҧo) cӫa máy tính bên dѭӟi (Hình II.7). Mӝt khó khăn chính vӟi tiӃp cұn máy ҧo liên quan ÿӃn hӋ thӕng ÿƭa. Giҧ sӱ rҵng máy vұt lý có ba әÿƭa nhѭng muӕn hӛ trӧ bҧy máy ҧo. Rõ ràng, nó không thӇ cҩp phát mӝt әÿƭa tӟi mӛi máy ҧo. Nhӟ rҵng chính phҫn mӅm máy ҧo sӁ cҫn không gian ÿƭa liên tөc ÿӇ cung cҩp bӝ nhӟҧo. Giҧi pháp này cung cҩp ÿƭa ҧo, mà nó ÿúng trong tҩt cҧ khía cҥnh ngoҥi trӯ kích thѭӟc-ÿѭӧc thuұt ngӳ hóa ÿƭa nh͗ (minidisks) trong hӋ ÿiӅu hành máy ҧo cӫa IBM. HӋ thӕng cài ÿһt nhiӅu ÿƭa nhӓ bҵng cách cҩp phát nhiӅu rҧnh ghi trên ÿƭa vұt lý nhѭ là các ÿƭa nhӓ khi cҫn. HiӇn nhiên, tәng kích thѭӟc cӫa tҩt cҧÿƭa nhӓ là nhӓ hѫn kích thѭӟc cӫa không gian ÿƭa vұt lý sҷn có. Hình 0-7-Các mô hình hӋ thӕng. (a) Máy không ҧo. (b) máy ҧo Do ÿó, ngѭӡi dùng ÿѭӧc cho máy ҧo cӫa chính hӑ. Sau ÿó, hӑ có thӇ chҥy bҩt kǤ hӋÿiӅu hành hay gói phҫn mӅm nào sҷn dùng trên phҫn cӭng bên dѭӟi. Ĉӕi vӟi hӋ thӕng IBM VM, mӝt ngѭӡi dùng thѭӡng chҥy CMS-mӝt hӋÿiӅu hành giao tiӃp ÿѫn ngѭӡi dùng. Phҫn mӅm máy ҧo ÿѭӧc quan tâm vӟi ÿa máy ҧo ÿa chѭѫng trên mӝt máy vұt lý nhѭng không cҫn xem xét bҩt cӭ phҫn mӅm hӛ trӧ ngѭӡi dùng. ViӋc sҳp xӃp này có thӇ cung cҩp mӝt sӵ phân chia hӳu ích thành hai phҫn nhӓ hѫn cӫa vҩn ÿӅ thiӃt kӃ mӝt hӋ thӕng giao tiӃp ÿa ngѭӡi dùng. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 31
  34. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 VIII.1 Cài ÿһt Mһc dù khái niӋm máy ҧo là hӳu ích nhѭng rҩt khó cài ÿһt. NhiӅu công viӋc ÿѭӧc yêu cҫu cung cҩp mӝt bҧn sao chính xác cӫa máy bên dѭӟi. Máy bên dѭӟi có hai chӃÿӝ: chӃÿӝ ngѭӡi dùng và chӃÿӝ kiӇm soát. Phҫn mӅm máy ҧo có thӇ chҥy trong chӃÿӝ kiӇm soát vì nó là hӋÿiӅu hành. Chính máy ҧo có thӇ thӵc thi chӍ trong chӃÿӝ ngѭӡi dùng. Tuy nhiên, chӍ khi máy vұt lý có hai chӃÿӝ thì nó mӟi là máy ҧo. Do ÿó, chúng ta phҧi có mӝt chӃÿӝ ngѭӡi dùng ҧo và mӝt chӃÿӝ kiӇm soát ҧo. Cҧ hai ÿӅu chҥy trong chӃÿӝ ngѭӡi dùng vұt lý. Các hoҥt ÿӝng ÿó gây ra sӵ chuyӇn tӯ chӃÿӝ ngѭӡi dùng tӟi chӃÿӝ kiӇm soát trên mӝt máy thұt (nhѭ lӡi gӑi hӋ thӕng hay cӕ gҳng thӵc thi mӝt chӍ thӏÿѭӧc cҩp quyӅn) cNJng phҧi gây ra sӵ chuyӇn ÿәi tӯ chӃÿӝ ngѭӡi dùng ҧo tӟi chӃÿӝ kiӇm soát ҧo trên mӝt máy ҧo. VIII.2 Lӧi ÿiӇm Có hai lӧi ÿiӇm chính trong viӋc sӱ dөng máy ҧo. Thӭ nhҩt, bҵng cách bҧo vӋ hoàn toàn các tài nguyên hӋ thӕng, máy ҧo cung cҩp mӭc ÿӝ bҧo mұt cao. Thӭ hai, máy ҧo cho phép phát triӇn hӋ thӕng ÿѭӧc thӵc hiӋn mà không cҫn phá vӥ hoҥt ÿӝng hӋ thӕng thông thѭӡng. Mӛi máy ҧo hoàn toàn bӏ cô lұp tӯ các máy ҧo khác, vì thӃ chúng ta không gһp phҧi bҩt kǤ vҩn ÿӅ bҧo mұt nào nhѭ tài nguyên hӋ thӕng khác hoàn toàn ÿѭӧc bҧo vӋ. Thí dө, các ӭng dөng không ÿѭӧc tin cұy ÿѭӧc tҧi vӅ tӯ Internet có thӇÿѭӧc chҥy trong mӝt máy ҧo riêng. Mӝt bҩt lӧi cӫa môi trѭӡng này là không có sӵ chia sҿ tài nguyên trӵc tiӃp. Hai tiӃp cұn cung cҩp sӵ chia sҿÿѭӧc cài ÿһt. Thӭ nhҩt, có thӇ chia sҿ mӝt ÿƭa nhӓ. Cѫ chӃ này ÿѭӧc làm mүu sau mӝt ÿƭa ÿѭӧc chia sҿ vұt lý. Thӭ hai, có thӇÿӏnh nghƭa mӝt mҥng cӫa các máy ҧo, mӛi máy ҧo có thӇ gӱi thông tin qua các mҥng giao tiӃp này nhѭng nó ÿѭӧc cài ÿһt bҵng phҫn mӅm. Nhӳng hӋ thӕng máy ҧo nhѭ thӃ là mӝt phѭѫng tiӋn truyӅn thông hӳu hiӋu cho viӋc nghiên cӭu và phát triӇn hӋÿiӅu hành. Thông thѭӡng, thay ÿәi mӝt hӋÿiӅu hành là mӝt tác vө khó. Vì các hӋÿiӅu hành là các chѭѫng trình lӟn và phӭc tҥp, sӵ thay ÿәi trên mӝt phҫn này có thӇ gây mӝt lӛi khó hiӇu trong nhӳng phҫn khác. Sӭc mҥnh cӫa hӋÿiӅu hành làm cho trѭӡng hӧp này là cӵc kǤ nguy hiӇm. Vì hӋÿiӅu hành thӵc thi trong chӃÿӝ kiӇm soát, mӝt thay ÿәi sai trong mӝt con trӓ có thӇ gây lӛi và có thӇ phá hӫy toàn hӋ thӕng tұp tin. Do ÿó, cҫn phҧi kiӇm tra tҩt cҧ thay ÿәi cӫa hӋÿiӅu hành mӝt cách cҭn thұn. Tuy nhiên, hӋÿiӅu hành chҥy trên máy và ÿiӅu khiӇn hoàn toàn máy ÿó. Do ÿó, hӋ thӕng hiӋn hành phҧi bӏ dӯng và ngӯng viӋc sӱ dөng trong khi nhӳng thay ÿәi ÿѭӧc thӵc hiӋn và kiӇm tra. Thӡi ÿiӇm này thѭӡng ÿѭӧc gӑi là thӡi gian phát triӇn hӋ thӕng. Vì nó làm cho hӋ thӕng không sҷn dùng ÿӕi vӟi ngѭӡi sӱ dөng nên thӡi gian phát triӇn hӋ thӕng thѭӡng ÿѭӧc lұp thӡi biӇu vào buәi tӕi hay cuӕi tuҫn, khi tҧi hӋ thӕng thҩp. Mӝt hӋ thӕng máy ҧo có thӇ loҥi trӯ nhiӅu vҩn ÿӅ này. Ngѭӡi lұp trình hӋ thӕng ÿѭӧc cung cҩp chính máy ҧo cӫa hӑ, và phát triӇn hӋ thӕng ÿѭӧc thӵc hiӋn trên máy ҧo thay vì trên máy vұt lý thұt sӵ. Mӝt hӋÿiӅu hành thông thѭӡng ít khi bӏ phá vӥ vì phát triӇn hӋ thӕng. Mһc dù nhӳng thuұn lӧi này, nhѭng rҩt ít cҧi tiӃn trên kӻ thuұt này ÿѭӧc thӵc hiӋn gҫn ÿây. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 32
  35. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 IX Tóm tҳt HӋÿiӅu hành cung cҩp mӝt sӕ dӏch vө. Tҥi cҩp thҩp nhҩt, lӡi gӑi hӋ thӕng cho phép mӝt chѭѫng trình ÿang chҥy thӵc hiӋn yêu cҫu trӵc tiӃp tӯ hӋ thӕng. Tҥi cҩp cao hѫn, trình thông dӏch cung cҩp cѫ chӃ cho ngѭӡi dùng ÿѭa ra yêu cҫu mà không viӃt chѭѫng trình. Các lӋnh có thӇ xuҩt phát tӯ tұp tin trong suӕt thӡi gian thӵc thi theo chӃÿӝ xӱ lý theo lô, hay trӵc tiӃp tӯ bàn phím trong chӃÿӝ tѭѫng tác hay chia sҿ thӡi gian. Các chѭѫng trình hӋ thӕng ÿѭӧc cung cҩp ÿӇ thoҧ mãn nhiӅu yêu cҫu thông thѭӡng cӫa ngѭӡi dùng. Các loҥi yêu cҫu khác nhau dӵa theo cҩp yêu cҫu. Cҩp gӑi hӋ thӕng phҧi cung cҩp các chӭc năng cѫ bҧn, nhѭÿiӅu khiӇn quá trình, quҧn lý tұp tin và thiӃt bӏ. Các yêu cҫu cҩp cao hѫn ÿѭӧc thoҧ mãn bӣi trình thông dӏch lӋnh và chѭѫng trình hӋ thӕng ÿѭӧc dӏch vào mӝt chuӛi các lӡi gӑi hӋ thӕng. Các dӏch vө hӋ thӕng có thӇÿѭӧc phân cҩp thành nhiӅu loҥi: ÿiӅu khiӇn chѭѫng trình, yêu cҫu trҥng thái, yêu cҫu nhұp/xuҩt. Lӛi chѭѫng trình ÿѭӧc xem xét các yêu cҫu ҭn cho dӏch vө. Mӝt khi dӏch vө hӋ thӕng ÿѭӧc ÿӏnh nghƭa, cҩu trúc cӫa hӋÿiӅu hành ÿѭӧc phát triӇn. Các bҧng khác nhau cҫn ÿѭӧc ghi thông tin ÿӏnh nghƭa trҥng thái cӫa hӋ thӕng máy tính và trҥng thái cӫa công viӋc hӋ thӕng. ThiӃt kӃ mӝt hӋÿiӅu hành mӟi là công viӋc rҩt quan trӑng. ThiӃt kӃ hӋ thӕng nhѭ thӭ tӵ cӫa các tҫng hay sӱ dөng vi nhân ÿѭӧc xem là mӝt kӻ thuұt tӕt. Khái niӋm máy ҧo thӵc hiӋn tiӃp cұn phân tҫng và xem nhân cӫa hӋÿiӅu hành và phҫn cӭng nhѭ là phҫn cӭng cӫa nó. Các hӋÿiӅu hành khác có thӇÿѭӧc nҥp trên ÿӍnh cӫa máy ҧo. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 33
  36. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 QUÁ TRÌNH IMөc ÿích Sau khi hӑc xong chѭѫng này, ngѭӡi hӑc nҳm ÿѭӧc nhӳng kiӃn thӭc sau: x HiӇu các khái niӋm vӅ quá trình x HiӇu cách lұp thӡi biӇu quá trình x BiӃt các thao tác trên quá trình x HiӇu cách giao tiӃp liên quá trình II Giӟi thiӋu Nhӳng hӋ thӕng máy tính ban ÿҫu cho phép chӍ mӝt chѭѫng trình ÿѭӧc thӵc thi tҥi mӝt thӡi ÿiӇm. Chѭѫng trình này có toàn quyӅn ÿiӅu khiӇn hӋ thӕng và có truy xuҩt tӟi tҩt cҧ tài nguyên cӫa hӋ thӕng. Nhӳng hӋ thӕng máy tính hiӋn nay cho phép nhiӅu chѭѫng trình ÿѭӧc nҥp vào bӝ nhӟ và ÿѭӧc thӵc thi ÿӗng hành. Sӵ phát triӇn này yêu cҫu sӵÿiӅu khiӇn mҥnh mӁ hѫn và phân chia nhiӅu hѫn giӳa các quá trình. Yêu cҫu này dүn ÿӃn khái niӋm quá trình, mӝt chѭѫng trình ÿang thӵc thi. Quá trình là mӝt ÿѫn vӏ công viӋc trong mӝt hӋÿiӅu hành chia thӡi hiӋn ÿҥi. Mӝt hӋÿiӅu hành phӭc tҥp hѫn ÿѭӧc mong ÿӧi nhiӅu hѫn trong viӋc thӵc hiӋn các hành vi cӫa ngѭӡi dùng. Mһc dù quan tâm chӫ yӃu cӫa hӋÿiӅu hành là thӵc thi chѭѫng trình ngѭӡi dùng, nhѭng nó cNJng quan tâm ÿӃn các tác vө khác nhau bên ngoài nhân. Do ÿó, mӝt hӋ thӕng chӭa tұp hӧp các quá trình: quá trình hӋÿiӅu hành thӵc thi mã hӋ thӕng, quá trình ngѭӡi dùng thӵc thi mã ngѭӡi dùng. Tҩt cҧ quá trình này có tiӅm năng thӵc thi ÿӗng hành, vӟi mӝt CPU (hay nhiӅu CPU) ÿѭӧc ÿa hӧp giӳa chúng. Bҵng cách chuyӇn ÿәi CPU giӳa các quá trình, hӋÿiӅu hành có thӇ làm cho máy tính hoҥt ÿӝng vӟi năng suҩt cao hѫn. III Khái niӋm quá trình Mӝt vҩn ÿӅ cҫn thҧo luұn là cái gì ÿѭӧc gӑi trong tҩt cҧ hoҥt ÿӝng cӫa CPU? Mӝt hӋ thӕng bó thӵc thi công viӋc, trái lҥi mӝt hӋ thӕng chia thӡi thӵc thi chѭѫng trình ngѭӡi dùng hay tác vө. Thұm chí trên hӋ thӕng ÿѫn ngѭӡi dùng nhѭ Microsoft Windows và Macintosh OS, mӝt ngѭӡi dùng có thӇ chҥy nhiӅu chѭѫng trình tҥi mӝt thӡi ÿiӇm: bӝ xӱ lý văn bҧn, trình duyӋt web, e-mail. Thұm chí nӃu ngѭӡi dùng có thӇ thӵc thi chӍ mӝt quá trình tҥi mӝt thӡi ÿiӇm, thì mӝt hӋÿiӅu hành cҫn hӛ trӧ nhӳng hoҥt ÿӝng ÿѭӧc lұp trình bên trong, nhѭ quҧn lý bӝ nhӟ. Trong nhiӅu khía cҥnh, tҩt cҧ hoҥt ÿӝng là tѭѫng tӵ vì thӃ chúng ta gӑi tҩt cҧ chúng là quá trình. Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 37
  37. Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋĈiӅu Hành – V1.0 III.1 Quá trình Thұt vұy, mӝt quá trình là mӝt chѭѫng trình ÿang thӵc thi. Mӝt quá trình không chӍ là mà chѭѫng trình, nó còn bao gӗm hoҥt ÿӝng hiӋn hành nhѭÿѭӧc hiӋn diӋn bӣi giá trӏ cӫa bӝÿӃm chѭѫng trình và nӝi dung các thanh ghi cӫa bӝ xӱ lý. Ngoài ra, mӝt quá trình thѭӡng chӭa ngăn xӃp quá trình, chӭa dӳ liӋu tҥm thӡi (nhѭ các tham sӕ phѭѫng thӭc, các ÿӏa chӍ trҧ vӅ, các biӃn cөc bӝ) và phҫn dӳ liӋu chӭa các biӃn toàn cөc. Chúng ta nhҩn mҥnh rҵng, mӝt chѭѫng trình không phҧi là mӝt quá trình; mӝt chѭѫng trình là mӝt thӵc thӇ thөÿӝng, nhѭ nӝi dung cӫa các tұp tin ÿѭӧc lѭu trên ÿƭa, trái lҥi mӝt quá trình là mӝt thӵc thӇ chӫÿӝng, vӟi mӝt bӝÿӃm chѭѫng trình xác ÿӏnh chӍ thӏ lӋnh tiӃp theo sӁ thӵc thi và tұp hӧp tài nguyên có liên quan. Mһc dù hai quá trình có thӇÿѭӧc liên kӃt vӟi cùng chѭѫng trình nhѭng chúng ÿѭӧc chӭa hai thӭ tӵ thӵc thi riêng rҿ. Thí dө, nhiӅu ngѭӡi dùng có thӇÿang chҥy các bҧn sao cӫa chѭѫng trình gӣi nhұn thѭ, hay cùng ngѭӡi dùng có thӇ nҥp lên nhiӅu bҧn sao cӫa mӝt chѭѫng trình soҥn thҧo văn bҧn. Mӛi bҧn sao cӫa chúng là mӝt quá trình riêng và mһc dù các phҫn văn bҧn là giӕng nhau, các phҫn dӳ liӋu khác nhau. Ngoài ra, mӝt quá trình có thӇ tҥo ra nhiӅu quá trình khi nó thӵc thi. III.2 Trҥng thái quá trình Khi mӝt quá trình thӵc thi, nó thay ÿәi trҥng thái. Trҥng thái cӫa quá trình ÿѭӧc ÿӏnh nghƭa bӣi các hoҥt ÿӝng hiӋn hành cӫa quá trình ÿó. Mӛi quá trình có thӇӣ mӝt trong nhӳng trҥng thái sau: x Mӟi (new): quá trình ÿang ÿѭӧc tҥo ra x Ĉang chҥy (running): các chӍ thӏÿang ÿѭӧc thӵc thi x Chӡ (waiting): quá trình ÿang chӡ sӵ kiӋn xҧy ra (nhѭ hoàn thành viӋc nhұp/xuҩt hay nhұn tín hiӋu) x Sҷn sàng (ready): quá trình ÿang chӡÿѭӧc gán tӟi mӝt bӝ xӱ lý. x KӃt thúc (terminated): quá trình hoàn thành viӋc thӵc thi x Các tên trҥng thái này là bҩt kǤ, và chúng khác nhau ӣ các hӋÿiӅu hành khác nhau. Tuy nhiên, các trҥng thái mà chúng hiӋn diӋn ÿѭӧc tìm thҩy trên tҩt cҧ hӋ thӕng. Các hӋÿiӅu hành xác ÿӏnh mô tҧ trҥng thái quá trình. ChӍ mӝt quá trình có thӇÿang chҥy tӭc thì trên bҩt kǤ bӝ xӱ lý nào mһc dù nhiӅu quá trình có thӇӣ trҥng thái sҷn sàng và chӡ. Hình 0-1-Lѭu ÿӗ trҥng thái quá trình Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 38