Giáo trình Nguyên lý hệ điều hành (Phần 1)

Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Chѭѫng 1: Giӟi thiӋu chung vӅ HӋꢀÿLӅu hành.  
1.1Khái niӋm vӅ hӋꢀÿLӅu hành  
1.1.1 Tài nguyên h͏ th͙ng và ÿánh giá  
Tài nguyên cӫa mӝt trung tâm máy tính ÿѭӧc tәng hӧp tӯ 3 nhân tӕ, ÿó là tài nguyên vӅ phҫn  
cӭng, tài nguyên vӅ phҫn mӅm và tài nguyên vӅ nhân lӵc cӫa trung tâm máy tính ÿó.  
Trong các tài liӋu giӟi thiӋu vӅ mӝt trung tâm máy tính bҩt kǤ, các sӕ liӋu thӕng kê vӅ phҫn  
cӭng (sӕ lѭӧng và chӫng loҥi máy tính, hӋ thӕng thiӃt bӏ ngoҥi vi, khҧ năng liên kӃt nӝi bӝ và liên kӃt  
vӟi môi trѭӡng ngoài .v.v) luôn là nhӳng yӃu tӕꢀÿѭӧc quan tâm sӟm nhҩt và là thành tӕ dӉ nhұn biӃt  
nhҩt vӅ sӭc mҥnh cӫa trung tâm máy tính ÿó.  
Tài nguyên vӅ phҫn mӅm cNJng ÿѭӧc chú ý thông qua các thông tin vӅ hӋꢀÿLӅu hành ÿѭӧc sӱ  
dөng, vӅ các phҫn mӅm ӭng dөng ÿã có tҥi cѫ sӣ tính toán ÿó. HiӋn nay, tҥi nhӳng trung tâm tính toán  
mҥnh, giá trӏ (tính theo tiӅn) thӵc sӵ cӫa tài nguyên phҫn mӅm lҥi cao hѫn và vѭӧt trӝi nhiӅu so vӟi giá  
trӏ tài nguyên phҫn cӭng.  
Tài nguyên vӅ nguӗn nhân lӵc cNJng ÿѭӧc chú ý, tuy vұy trong mӝt sӕ trѭӡng hӧp thành tӕ này  
lҥi khó nhұn biӃt và khó ÿánh hѫn so vӟi hai loҥi tài nguyên ÿã nói ӣ trên. Năng lӵc vӅ nguӗn nhân lӵc  
trong hӋ thӕng nhҵm ÿҧm bҧo viӋc thӵc hiӋn các chӭc năng bҧo trì, phөc vө và phát triӇn hӋ thӕng (kӻ  
hӋ thӕng, kӻ thuұt viên, thao tác viên …) thӵc sӵ lҥi ÿáng giá hѫn nhiӅu so vӟi phҫn cӭng và phҫn  
mӅm.  
Tuy nhiên, trong giáo trình này, chúng ta hҥn chӃ trong mӝt phҥm vi tiӃp cұn là mӑi công viӋc  
cӫa hӋꢀÿLӅu hành bҳt ÿҫu tӯ hӋ thӕng phҫn cӭng có sҹn và hӋꢀÿLӅu hành cҫn phҧi hoҥt ÿӝng nhҵm phát  
huy cao nhҩt năng lӵc cӫa hӋ thӕng phҫn cӭng ÿó và vì vұy chúng ta chӍꢀÿӅ cұp ÿӃn tài nguyên vӅ phҫn  
cӭng (có thӇ kӇ tӟi mӝt phҫn vӅ tài nguyên phҫn mӅm) và ÿӏnh hѭӟng tӟi vҩn ÿӅ phát huy hiӋu quҧ  
khai thác các tài nguyên ÿó.  
ĈӇꢀÿӏnh hѭӟng tӟi mөc tiêu phát huy hiӋu quҧ các thành phҫn trong tài nguyên phҫn cӭng, cҫn  
xem xét mӝt sӕꢀÿһc trѭng cѫ bҧn và ÿánh giá giá trӏ cӫa mӛi thành phҫn trong hӋ thӕng phҫn cӭng,  
Kѭӟng tӟi mөc ÿích ÿѭa ra ÿѭӧc các chiӃn lѭӧc ѭu tiên thích ÿáng (hoһc khҧ dөng) ÿӕi vӟi mӛi thành  
phҫn khi xây dӵng hӋ thӕng các chѭѫng tình ÿiӅu khiӇn sӵ hoҥt ÿӝng cӫa máy tính.  
a) Phҫn cӭng, ÿánh giá tài nguyên phҫn cӭng  
Theo cách tiӋp cұn cӫa hӋꢀÿLӅu hành, các tài nguyên ÿiӇn hình thuӝc phҫn cӭng bao gӗm: thiӃt  
bӏ xӱ lý trung tâm (CPU), bӝ nhӟ trong, hӋ thӕng vào/ra (kênh, thiӃt bӏꢀÿLӅu khiӇn thiӃt bӏ vào ra và  
thiӃt bӏ vào/ra), bӝ nhӟ ngoài … CPU và bӝ nhӟ trong thuӝc vào khu vӵc trung tâm còn hӋ thӕng vào  
ra thѭӡng ÿѭӧc xӃp vào khu vӵc ngoҥi vi cӫa hӋ thӕng máy tính.  
Trong các thiӃt bӏ nói trên ÿáng chú ý nhҩt phҧi kӇꢀÿӃn CPU và bӝ nhӟ trong.  
Thi͇t b͓ x͵ lý trung tâm (Central Processing Unit – vi͇t t̷t là CPU)  
Trѭӟc hӃt chúng ta xem xét vӅ các ÿһc trѭng liên quan ÿӃn CPU. ViӋc ÿánh giá tài nguyên CPU  
vӅ cѫ bҧn cNJng dӵa trên các ÿһc trѭng này: tӕc ÿӝ xӱ lý, dӝ dài tӯ máy, phѭѫng pháp thiӃt kӃ hӋ lӋnh  
máy trong CPU.  
Tӕc ÿӝ xӱ lý là thông sӕ thӇ hiӋn mӭc ÿӝ làm viӋc nhanh chұm cӫa CPU dӵa trên các ÿѫn vӏ  
biӇu diӉn tӕc ÿӝ. Tӕc ÿӝ xӱ lý cӫa CPU thѭӡng ÿѭӧc tính theo tҫn sӕꢀÿӗng hӗ nhӏp (vӟi ÿѫn vӏ là MHz  
– triӋu nhӏp trong 1 giây) khi xem xét tҫn sӕꢀÿӗng hӗ nhӏp hoһc sӕ lѭӧng phép tính cѫ bҧn ÿѭӧc thӵc  
hiӋn trong mӝt giây (vӟi ÿѫn vӏ là MIPS – Million Instruction Per Second – triӋu phép tính cѫ bҧn  
trong mӝt giây) khi xem xét theo tӕc ÿӝ thӵc hiӋn phép tính (phép cӝng tƭnh – không dҩu cӫa mӝt CPU  
thѭӡng ÿѭӧc coi là phép tính cѫ bҧn cӫa CPU ÿó). Thông thѭӡng, ÿѫn vӏꢀÿo MHz ÿѭӧc dùng cho mӝt  
CPU cө thӇ hoһc mӝt máy tính còn ÿѫn vӏꢀÿo MIPS ÿѭӧc dùng cho mӝt hӋ thӕng CPU cӫa mӝt máy  
tính lӟn.  
Ĉӝ dài tӯ máy: tӯ máy là lѭӧng thông tin ÿӗng thӡi mà CPU xӱ lý trong mӝt nhӏp làm viӋc. Ĉӝ  
dài tӯ máy chính là sӕ lѭӧng bit nhӏ phân cӫa toán hҥng ÿӕi sӕ trong phép tính cѫ bҧn cӫa CPU. Trong  
thӡi gian gҫn ÿây, chúng ta ÿã quen thuӝc vӟi CPU 8 bit, 16 bit, 32 bit .v.v và sӕ lѭӧng bit nói trên  
Tài li͏u l˱u hành n͡i b͡ - 1 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
chính là ÿӝ dài tӯ máy. Trong nhӳng máy tính thuӝc thӃ hӋ trѭӟc ÿây (máy tính thӃ hӋ 1,2), tӯ máy có  
thӇ không phҧi là bӝi cӫa byte (nghƭa là không phҧi bӝi cӫa 8 bit; chҷng hҥn, máy tính MINSK-22 ӣ  
miӅn Bҳc nѭӟc ta trong nhӳng năm 1960 có tӯ máy 37 bit), song hiӋn nay CPU phә biӃn có ÿӝ dài tӯ  
máy là bӝi cӫa byte: 2 byte, 4 byte v.v. HiӋn nay, tӯ máy có ÿӝ dài lӟn nhҩt là 8 byte trong các  
supercomputer nhѭ CRAY-1, ILLIAC-IV v.v.  
Ĉӝ dài tӯ máy có quan hӋ vӟi tӕc ÿӝ xӱ lý. Khi nói ÿӃn năng lӵc hoҥt ÿӝng (tӕc ÿӝ xӱ lý thông  
tin) thӵc sӵ cӫa mӝt CPU mà chӍ nói ÿӃn tӕc ÿӝ xӱ lý không nói kèm theo ÿӝ dài tӯ máy là chѭa hoàn  
toàn ÿҫy ÿӫ. ĈLӅu ÿó có thӇꢀÿѭӧc diӉn giҧi theo phát biӇu nhѭ sau “năng lӵc hoҥt ÿӝng thӵc sӵ cӫa mӝt  
CPU ÿѭӧc ÿánh giá thông qua tӕc ÿӝ xӱ lý và ÿӝ dài tӯ máy.”. Chҷng hҥn, mӝt máy tính có ÿӝ dài tӯ  
máy là 4 byte (32 bit) tuy chӍ sӕ vӅ tӕc ÿӝ CPU có thӇ nhӓ hѫn mӝt máy tính có ÿӝ dài tӯ máy 2 byte  
(16 bit), song tӕc ÿӝ xӱ lý thông tin thұt sӵ cӫa máy 4 byte lҥi có thӇ cao n rҩt nhiӅu. ĈLӅu ÿó ÿѭӧc  
lý giҧi theo phép toán ví dө nhѭ sau: ÿӇ thӵc hiӋn ÿѭӧc phép cӝng hai sӕ ÿӝ dài 4 byte (các tính toán  
chính xác thѭӡng ÿòi hӓi ÿӝ dài xӱ lý phҧi lӟn) thì ÿӕi vӟi CPU có ÿӝ dài tӯ máy 2 byte phҧi sӱ dөng  
mӝt ÿRҥn chѭѫng tình qua nhiӅu phép cӝng ÿӕi sӕ 2 byte vҫ mӝt sӕ thao tác phө khác mӟi hoàn thiӋn  
ÿѭӧc; trong khi ÿó ÿӕi vӟi CPU có ÿӝ dài tӯ máy 4 byte thì chӍ cҫn qua mӝt phép tính cѫ bҧn.  
ĈiӅu ÿó có thӇꢀÿѭa ÿӃn hѭӟng suy nghƭ vӅ mӝt giҧi pháp nhҵm tăng năng lӵc cӫa CPU bҵng  
cách tăng giá trӏ cӫa cҧ hai yӃu tӕ: tӕc ÿӝ xӱ lý và ÿӝ dài tӯ máy. TiӃn bӝ vӅ công nghӋꢀÿã thӇ hiӋn  
Wѭӡng minh viӋc tăng tӕc ÿӝ xӱ lý cӫa các CPU: tӯ vài chөc MHz, vài trăm MHz ÿӃn hàng GHz. Mһt  
khác, ÿӝ dài tӯ máy cӫa các vi xӱ lý cNJng ngày càng ÿѭӧc nâng cҩp: 8 bit, 16 bit, 32 bit, 64 bit. Tuy  
nhiên, nӃu ÿӝ dài tӯ máy quá lӟn lҥi dүn tӟi sӵ lãng phí công suҩt cӫa CPU: hҫu hӃt các tính toán hiӋn  
tҥi thӓa mãn ÿѭӧc nhu cҫu thѭӡng xuyên cӫa con ngѭӡi thѭӡng không vѭӧt quá toán hҥng 8 byte, thұm  
chí ÿҥi ÿa sӕ trѭӡng hӧp là ÿӝ dài cӫa toán hҥng chӍ cҫn 4 byte và nhѭ vұy, nӃu mӑi thao tác ÿӅu thӵc  
hiӋn trên các toán hҥng có ÿӝ dài lӟn thì ÿiӅu ÿó là không cҫn thiӃt và sӁ gây ra sӵ lãng phí ÿáng kӇ.  
Mӛi loҥi CPU có mӝt bӝ lӋnh máy (chӍ thӏ - instruction) mà cách thӭc thiӃt kӃ các lӋnh máy  
cNJng ÿѭӧc coi là ÿһc trѭng cӫa CPU. Có hai cách thӭc phә biӃn ÿӕi vӟi viӋc thiӃt kӃ lӋnh: lӋnh ÿѭӧc  
thiӃt kӃ cӭng hóa và lӋnh ÿѭӧc thiӃt kӃ theo dҥng vi chѭѫng trình.  
LӋnh ÿѭӧc cӭng hóa ÿѭӧc mô tҧ nhѭ sau: mӛi lӋnh máy ÿã ÿѭӧc gán cӕꢀÿӏnh thông qua mӝt  
mҥch vi ÿLӋn tӱ tѭѫng ӭng ÿã ÿѭӧc thiӃt kӃ, tұp hӧp lӋnh tѭѫng ӭng vӟi bӝ vi mҥch ÿLӅu khiӇn và tính  
toán cӕꢀÿӏnh.  
Vi chѭѫng trình: theo phѭѫng pháp này, cách thӭc cӭng hóa chӍꢀÿѭӧc triӇn khai thông qua các  
lӋnh cѫ bҧn (lӋnh sѫ cҩp, còn ÿѭӧc gӑi là vi lӋnh) còn lӋnh máy thӵc sӵ lҥi ÿѭӧc biӇu diӉn qua mӝt dãy  
các vi lӋnh nói trên; dãy các vi lӋnh ÿó ÿѭӧc gӑi là vi chѭѫng trình.  
Chúng ta ÿѭa ra nhұn xét so sánh sѫ bӝ giӳa hai cách thӭc thiӃt kӃ lӋnh theo vi chѭѫng trình và  
theo cӭng hóa: cách thѭc vi chѭѫng trình cho phép thiӃt kӃ lӋnh máy linh hoҥt hѫn, dӉ thay ÿәi và nâng  
cҩp; cách thӭc cӭng hóa làm khó khăn khi biӃn ÿәi và nâng cҩp chӭc năng cӫa máy tính, song bù lҥi là  
vӟi thiӃt kӃ cӭng hóa, viӋc thӵc hiӋn lӋnh là trӵc tiӃp (không phҧi thông qua mӝt vi chѭѫng trình nӳa)  
và nhѭ vұy ÿҧm bҧo ÿѭӧc mӝt tӕc ÿӝ xӱ lý cao.  
Chѭѫng trình chӍ có thӇ thӵc hiӋn ÿѭӧc khi có CPU và hiӋu quҧ hoҥt ÿӝng cӫa hӋ thӕng phө  
thuӝc rҩt nhiӅu vào cách thӭc các chѭѫng tình sӱ dөng CPU (cách thӭc hӋꢀÿLӅu hành phҩn phӕi CPU  
cho các chѭѫng trình). Chính vì lӁꢀÿó, bài toán ÿiӅu khiӇn CPU ÿѭӧc coi là có ÿӝ ѭu tiên cao nhҩt khi  
thiӃt kӃ HӋꢀÿLӅu hành.  
B͡ nhͣ trong (Operative Memory – OM) có m͡t s͙ꢀÿ̿c tr˱ng tiêu bi͋u nh˱ sau:  
Dung lѭӧng bӝ nhӟ: khҧ năng ÿӗng thӡi lѭu trӳ thông tin cӫa bӝ nhӟ trong. HiӋn tҥi dung lѭӧng  
cӫa bӝ nhӟ trong tӯ vài MB ÿӃn vài GB.  
Ĉһc trѭng tiӃp theo cӫa bӝ nhӟ trong phù hӧp vӟi nguyên lý thӭ hai theo Von Neumann là: Bӝ  
nhӟꢀÿѭӧc ÿӏa chӍ hóa ÿӇ truy nhұp. Ĉa sӕ các máy tính ÿѭӧc ÿӏa chӍ hóa theo byte và trong mӝt sӕ  
trѭӡng hӧp lҥi ÿѭӧc ÿӏa chӍ hóa theo tӯ máy.  
Ĉӏa chӍꢀÿҫu tiên trong bӝ nhӟ ÿӏa chӍ 0. Lý do cӫa viӋc chӑn ÿӏa chӍꢀÿҫu tiên là 0 liên quan  
ÿӃn tính chia hӃt, bӣi sӕ 0 chia hӃt cho mӑi sӕ. Khi phân phӕi bӝ nhӟ trong cho mӝt ÿӕi tѭӧng, trong  
nhiӅu trѭӡng hӧp ÿӏa chӍ vùng bӝ nhӟ trong cӫa ÿӕi tѭӧng phҧi chia hӃt cho ÿӝ dài vùng bӝ nhӟ dành  
Tài li͏u l˱u hành n͡i b͡ - 2 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
cho ÿӕi tѭӧng ÿó hoһc chia hӃt cho sӕ nào ÿó (ví dө, phân phӕi cho mӝt chѭѫng trình trong MSDOS  
ÿѭӧc bҳt ÿҫu bӣi ÿӏa chӍꢀÿRҥn là ÿӏa chӍ chia hӃt cho 16).  
Mӝt ÿһc trѭng (hay cNJng vұy là mӝt yêu cҫu) mang tính bҧn chҩt ÿӕi vӟi bӝ nhӟ trong là: thͥi  
gian truy c̵p b͡ nhͣ trong tͣi m͕i ÿ͓a ch͑ nhͣ ph̫i ÿ͛ng nh̯t; không thӇ có sӵ khác biӋt giӳa thӡi  
gian truy nhұp tӟi ÿӏa chӍ cao vӟi thӡi gian truy nhұp tӟi ÿӏa chӍ thҩp. Tӯꢀÿһc trѭng này dүn ÿӃn viӋc  
ÿһt ra mӝt yêu cҫu là phҧi tә chӭc bӝ nhӟ trong theo các khӕi phân cҩp ÿӇ cөc bӝ dҫn và viӋc cөc bӝ  
dҫn nhѭ vұy sӁ làm cho viӋc truy nhұpꢀÿѭӧc cân bҵng. Nguӗn gӕc cӫa yêu cҫu này liên quan ÿӃn tính  
xác ÿӏnh cӫa thuұt toán, hay nói khác ÿi, yêu cҫu này nhҵm mөc tiêu ÿҧm bҧo ÿӝ tin cұy cӫa hӋ thӕng  
máy tính. Chúng ta thѭӡng thҩy bӝ nhӟꢀÿѭӧc cҩu trúc tӯ các “thanh bӝ nhӟ”, mӛi thanh bӝ nhӟ lҥi có  
thӇꢀÿѭӧc phân nhӓ hѫn và viӋc truy nhұp bӝ nhӟ theo cách phân cҩp dҫn theo tӯng thanh, trong mӛi  
thanh lҥi theo tӯng bӝ phұn nhӓ hѫn có trong thanh ÿó .v.v cho ÿӃn khi truy nhұp tuҫn tӯ trong phҫn  
nhӓ nhҩt chӍ có sai khác thӡi gian không ÿáng kӇ.  
CPU  
ĈӇ tăng tӕc ÿӝ truy nhұp cӫa CPU ÿӕi vӟi bӝ nhӟ trong, ngѭӡi ta  
thѭӡng gҳn CPU vӟi bӝ nhӟ tҥm thӡi cӫa CPU (ÿѭӧc gӑi là bӝ nhӟ cache  
cӫa CPU, hình 1.1). Bӝ nhӟ cache cӫa CPU là thiӃt bӏ nhӟꢀÿһc biӋt vӟi tӕc  
ÿӝ truy nhұp cӫa CPU tӟi cache cӫa nó cao hѫn rҩt nhiӅu so vӟi tӕc ÿӝ truy  
nhұp vào bӝ nhӟ trong. Trong cache chӭa mӝt phҫn nӝi dung cӫa bӝ nhӟ  
trong thѭӡng là phҫn bӝ nhӟ hiӋn thӡi (chѭѫng trình và dӳ liӋu) ÿѭӧc CPU  
Cache  
ÿang hѭӟng tӟi. Quá trình hѭӟng truy nhұp bӝ nhӟ (theo ÿӏa chӍ) cӫa CPU  
ÿѭӧc bҳt ÿҫu tӯ viӋc hѭӟng tӟi cache, nӃu cache chӭa phҫn bӝ nhӟꢀÿó thì  
viӋc hѭӟng ÿӏa chӍ kӃt thúc và thӵc hiӋn công viӋc, ngѭӧc lҥi thӵc hiӋn  
viӋc hѭӟng tӟi bӝ nhӟ trong theo quy tҳc thông thѭӡng.  
Bӝ nhӟ trong  
Chѭѫng trình chӍ chҥy ÿѭӧc khi chѭѫng trình và dӳ liӋu tѭѫng ӭng  
cӫa chѭѫng trình ÿó phҧi có mһt tҥi bӝ nhӟ trong (chính xác hѫn là chӍ cҫn  
bӝ phұn hiӋn thӡi cӫa chѭѫng trình và dӳ liӋu liên quan ÿӃn bӝ phұn ÿó  
nҵm trong bӝ nhӟ trong). Cách thӭc sӱ dөng bӝ nhӟ trong ÿóng vai trò  
quan trӑng nhҵm ÿҧm bҧo chҩt lѭӧng hoҥt ÿӝng cӫa hӋ thӕng và vì vұy, bài  
toán ÿiӅu khiӇn bӝ nhӟ trong có ÿӝ ѭu tiên cao chӍ sau bài toán ÿiӅu khiӇn  
CPU.  
Nӝi dung  
ĈiӅu khiӇn  
Hình 1.1 CPU sӱ  
dөng cache nhӟ  
H͏ th͙ng ngo̩i vi  
HӋ thӕng ngoҥi vi ÿҧm bҧo viӋc chuyӇn ÿәi thông tin giӳa môi trѭӡng ngoài và khu vӵc trung  
tâm. Có sӵ phân cҩp trong hӋ thӕng ngoҥi vi: gҫn khu vӵc trung tâm nhҩt là kênh, sau ÿó là thiӃt bӏ  
ÿiӅu khiӇn thiӃt bi ngoҥi vi, và ngoài cùng là thiӃt bӏ ngoҥi vi. Trong hӋ thӕng ngoҥi vi, chúng ta chú ý  
nhҩt tӟi kênh.  
Kênh (channel; b͡ x͵ lý vào / ra): có chӭc năng thay CPU ÿҧm nhұn ÿLӅu khiӇn sӵ trao ÿәi  
thông tin giӳa bӝ nhӟ trong vӟi thiӃt bӏ ngoài. Công viӋc vào/ra thông thѭӡng ÿѭӧc thӵc hiӋn vӟi tӕc  
ÿӝ chұm (phө thuӝc vào tӕc ÿӝ cӫa thiӃt bӏ vào/ra và nhiӅu thiӃt bӏ vào ra nhѭ bàn phím, máy in .v.v  
hoҥt ÿӝng vӟi tӕc ÿӝ rҩt chұm, nhҩt là khi ÿһt trong ngӳ cҧnh tӕc ÿӝ hoҥt ÿӝng cӫa CPU là rҩt nhanh).  
Kênh là bӝ xӱ lý vào/ra, ÿiӅu khiӇn các thiӃt bӏ ngoҥi vi và làm tăng hiӋu quҧ sӱ dөng hӋ thӕng.  
Khi kênh ÿiӅu khiӇn quá trình vào/ra dӳ liӋu thì CPU có thӇꢀÿѭӧc sӱ dөng ÿӇ thӵc hiӋn các chѭѫng  
trình khác và nhѭ vұy sӁ khai thác tӕt hѫn CPU ÿӇ làm tăng hiӋu suҩt làm viӋc cӫa nó.  
ĈӇ thӵc hiӋn ÿѭӧc viӋc chuyӇn thông tin tӯ bӝ nhӟ trong ra ngoài (khi ra) và chuyӇn thông tin  
tӯ ngoài vào bӝ nhӟ trong (khi vào), kênh phҧi truy nhұp ÿѭӧc bӝ nhӟ trong. Nhѭꢀÿã biӃt, trong sѫꢀÿӗ  
chung vӅ hӋ thӕng máy tính, truy nhұp bӝ nhӟ trong là chӭc năng cӫa CPU. ĈӇꢀÿҧm bҧo ÿѭӧc sӵ hoҥt  
ÿӝng ÿӗng thӡi cӫa kênh vӟi CPU, kênh truy nhұp bӝ nhӟ trong theo quy chӃꢀÿһc biӋt, song song và  
ÿӝc lұp vӟi CPU. Cách thӭc phә biӃn thiӃt lұp cѫ chӃꢀÿһc biӋt ÿó là thông qua các thiӃt bӏ bә trӧ mà  
phә biӃn nhҩt là thông qua thiӃt bӏ truy nhұp bӝ nhӟ trӵc tiӃp (DMA: Direct Memory Access).  
Kênh cNJng nhѭ CPU là bӝ xӱ lý, có thӇꢀÿѭӧc xây dӵng tӯ các mҥch logic mà các mҥch logic lҥi  
có thӇꢀÿѭӧc thiӃt kӃ tӵꢀÿӝng hóa.  
Tài li͏u l˱u hành n͡i b͡ - 3 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Kênh có bӝ lӋnh riêng và hoҥt ÿӝng theo chѭѫng trình (ÿѭӧc gӑi là chѭѫng trình kênh). CPU  
không trӵc tiӃp thӵc hiӋn viӋc ÿLӅu khiӇn quá trình vào/ra dӳ liӋu, song chính CPU ÿҧm nhұn nhiӋm  
vө khӣi ÿӝng các chѭѫng trình kênh thӵc hiӋn viӋc ÿLӅu khiӇn vào/ra ÿó.  
Do tính ÿa dҥng cӫa thiӃt bӏ ngoҥi vi, trong mӝt máy tính có thӇ có tӯ mӝt ÿӃn mӝt vài kênh và  
ÿѭӧc phân loҥi nhѭ dѭӟi ÿây.  
Kênh chұm (ÿa tuyӃn): mӝt kênh nӕi vӟi nhiӅu thiӃt bӏ tӕc ÿӝ chұm (bàn phím, máy in .v.v),  
truyӅn 1 byte ÿӕi vӟi thiӃt bӏ này có thӇ chuyӇn sang làm viӋc vӟi thiӃt bӏ khác v.v… Kênh chұm lҥi  
ÿѭӧc tә chӭc tӯ mӝt sӕ kênh con, mӛi kênh con ÿҧm bҧo sӵ làm viӋc cӫa mӝt thiӃt bӏ vào/ra hoһc mӝt  
nhóm nhӓ thiӃt bӏ vào/ra.  
Kênh nhanh (kênh chӑn): mӝt kênh nӕi vӟi mӝt loҥi thiӃt bӏ làm viӋc nhanh (ÿƭa tӯ, băng tӯ).  
Kênh nhanh thѭӡng gҳn vӟi mӝt loҥi thiӃt bӏ, trong mӝt lҫn làm viӋc phөc vө mӝt thiӃt bӏ riêng biӋt;  
vӟi mӝt lҫn phөc vө thì mӝt yêu cҫu vào/ra ÿѭӧc thӵc hiӋn trӑn vҽn (mӝt yêu cҫu vào/ra thѭӡng liên  
quan ÿӃn mӝt khӕi mang thông tin). ChӍ khi thӵc hiӋn xong yêu cҫu vào/ra cho thiӃt bӏꢀÿó, kênh mӟi  
chuyӇn sang làm viӋc cho thiӃt bӏ khác. Cҫn phân biӋt sӵ hoҥt ÿӝng cӫa kênh nhanh vӟi sӵ hoҥt ÿӝng  
cӫa kênh chұm: kênh chұm phөc vө lҫn lѭӧt tӯng thiӃt bӏ vào/ra sau mӛi byte ÿѭӧc vào/ra, còn kênh  
nhanh phөc vө mӝt thiӃt bӏ trӑn vҽn mӝt yêu cҫu vào/ra.  
KӃt hӧp hai loҥi trên là kênh chұm theo khӕi. Mӛi loҥi kênh nhanh hay kênh chұm có các mһt  
mҥnh, yӃu khác nhau và hiӋn nay, vӟi sӵ tiӃn bӝ cӫa công nghӋ ngѭӡi ta ÿã kӃt hӧp hai loҥi kênh trên  
thành “kênh chұm theo khӕi”: hoҥt ÿӝng theo nguyên tҳc cӫa kênh chұm, song ÿѫn vӏ vào/ra luân phiên  
không phҧi là mӝt byte mà là mӝt khӕi (mӝt ÿѫn vӏ lѭu trӳꢀӣ bӝ nhӟ ngoài).  
ThiӃt bӏÿu khiӇn thiӃt bӏ ngoҥi vi: phân cҩp chӭc năng cӫa hӋ thӕng vào ra, dѭӟi sӵÿu  
khiӇn cӫa kênh là thiӃt bӏ ÿiӅu khiӇn thiӃt bӏ vào/ra. ThiӃt bӏꢀÿLӅu khiӇn thiӃt bӏ vào/ra nhұn ÿLӅu khiӇn  
tӯ kênh, nhұn thông tin theo ÿѭӡng truyӅn ÿӇꢀÿѭa ra hoһc ÿѭa vào tùy theo bit dҩu hiӋu.  
ThiӃt bӏ ngoҥi vi (thiӃt bӏ vào/ra): trӵc tiӃp thӵc hiӋn thao tác ÿѭa thông tin vào/ra tӯ (hoһc tӟi)  
vұt dүn ngoài.  
Nhѭꢀÿã ÿѭӧc giӟi thiӋu ӣ trên, có thӇ nhұn thҩy rҵng hӋ thӕng phҫn cӭng trong mӝt máy tính  
vӯa nhiӅu vӅ sӕ lѭӧng lҥi vӯa ÿa dҥng vӅ tính năng hoҥt ÿӝng (tính chҩt, tӕc ÿӝ), vӅ giá thành (cao,  
thҩp).  
b) Sӵ cҫn thiӃt phҧi có hӋꢀÿLӅu hành  
Vҩn ÿӅꢀÿһt ra là cҫn phҧi ÿLӅu khiӇn, phân phӕi công viӋc cho hê thӕng thiӃt bӏꢀÿӇ phát huy hiӋu  
quҧ nhҩt năng lӵc hӋ thӕng máy tính, ÿһc biӋt là CPU và bӝ nhӟ trong. Mӝt hӋ thӕng thiӃt bӏꢀÿӗ sӝ,  
ÿang dҥng vӅ tính năng hoҥt ÿӝng, vӅ giá thành, vӅ vӏ trí chӭc năng cӫa mӛi thành phҫn trong hӋ thӕng  
v.v. cҫn hoҥt ÿӝng sao cho hiӋu quҧ nhҩt theo mӝt sӕ chӍ tiêu ÿánh giá nào ÿó, chăng hҥn nhѭ sӕ lѭӧng  
công viӋc xӱ lý thông tin ÿѭӧc hoàn thành trong máy tính là nhiӅu nhҩt. ĈӇ làm ÿѭӧc ÿiӅu ÿó phҧi có  
cách thӭc ÿLӅu khiӇn phân công công viӋc trong hӋ thӕng thiӃt bӏꢀÿó “mӝt cách tӕi ѭu”.  
Mӝt vҩn ÿӅ khác cNJng phҧi ÿѭӧc hӃt sӭc quan tâm là cҫn ÿáp ӭng mӝt cách tӕt nhҩt yêu cҫu  
ngày càng cao và ÿa dҥng cӫa ngѭӡi dùng. HiӋn nay, máy tính dã thâm nhұp sâu rӝng tӟi mӑi lƭnh vӵc  
hoҥt ÿӝng vұt chҩt và tinh thҫn cӫa xã hӝi loài ngѭӡi. Sӵ gҳn bó giӳa các hoҥt ÿӝng con ngѭӡi vӟi máy  
tính ÿã trӣ thành thѭӡng xuyên và phә biӃn. Do tính ÿa dҥng cӫa hoҥt ÿӝng xã hӝi, mөc ÿích sӱ dөng  
máy tính cӫa con ngѭӡi cNJng rҩt ÿa dҥng (tính toán khoa hӑc kӻ thuұt, quҧn trӏ dӳ liӋu, quҧn lý văn bҧn  
hay thұm chí chӍ là giҧi trí v.v.). Phөc vө tӕt cho hoҥt ÿӝng cӫa ngѭӡi sӱ dөng cNJng là mөc tiêu cӫa  
viӋc ÿLӅu khiӇn hoҥt ÿӝng hӋ thӕng máy tính.  
Nhѭꢀÿã ÿѭӧc trình bày ӣ trên, hӋ thӕng máy tính là mӝt hӋ thӕng phӭc hӧp các thiӃt bӏ và bài  
toán ÿiӅu khiӇn, phân phӕi công viӋc trong toàn hӋ thӕng là mӝt bài toán rҩt phӭc tҥp. ĈӇ giҧi quyӃt bài  
toán trên, không thӇ sӱ dөng các cách thӭc thӫ công mà cҫn phҧi tӵÿӝng hóa công viӋc ÿiӅu khiӇn  
hoҥt ÿӝng cӫa hӋ thӕng máy tính. Nhѭ vұy, cҫn thiӃt phҧi có mӝt bӝ các chѭѫng trình ÿҧm bҧo viӋc  
giҧi quyӃt vҩn ÿӅ nói trên và h͏ꢀÿL͉u hành chính là bӝ chѭѫng trình nhѭ thӃ.  
1.1.2 Khái ni͏m h͏ꢀÿL͉u hành.  
Tài li͏u l˱u hành n͡i b͡ - 4 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Khái ni͏m h͏ꢀÿL͉u hành (Operating System)  
HӋꢀÿLӅu hành là mӝt bӝ chѭѫng trình (và dӳ liӋu – tham sӕ hӋ thӕng) ÿã ÿѭӧc cài ÿһt sҹn (dѭӟi  
dҥng các File trên các vұt mang tin: băng tӯ, ÿƭa tӯ) có chӭc năng:  
- ĈiӅu phӕi (chӑn lӵa) và phân phӕi các công viӋc cho các thành phҫn chӭc năng trong máy tính  
ÿiӋn tӱꢀÿӇ sӱ dөng hiӋu quҧ nhҩt hӋ thӕng máy tính.  
(Theo góc ÿӝ nhìn nhұn tӯ chӭc năng này thì hӋꢀÿLӅu hành ÿѭӧc quan niӋm nhѭ là mӝt h͏ th͙ng  
qu̫n tr͓ tài nguyên.)  
- Thӓa mãn ӣ mӭc ÿӝ cao nhҩt yêu cҫu ÿa dҥng cӫa ngѭӡi dùng.  
(Theo góc ÿӝ nhìn nhұn tӯ chӭc năng ÿáp ӭng nhu cҫu ngѭӡi dùng, hӋꢀÿLӅu hành ÿѭӧc quan  
niӋm nhѭ mӝt máy tính mͧ r͡ng (hoһc máy tính ̫o)).  
Trong thӡi kǤ hiӋn nay, khi nói ÿӃn viӋc sӱ dөng mӝt máy tính là nói ÿӃn viӋc sӱ dөng máy tính  
ÿó cùng vӟi mӝt hӋꢀÿLӅu hành cө thӇ. Trên cùng mӝt máy tính, lúc này có thӇ làm viӋc theo mӝt hӋꢀÿLӅu  
hành này và lúc khác, lҥi có thӇ làm theo mӝt hӋꢀÿLӅu hành khác. Ngѭӡi dùng khi làm viӋc trên máy  
tính là làm viӋc vӟi máy tính ÿó thông qua mӝt hӋꢀÿLӅu hành xác ÿӏnh nào ÿó.  
H͏ÿu hành là mӝt ch˱˯ng trình hay mӝt h͏ ch˱˯ng trình hoҥt ÿӝng giӳa ngѭӡi sӱ dөng  
(user) và phҫn cӭng cӫa máy tính. Mөc tiêu cӫa hӋꢀÿLӅu hành là cung cҩp mӝt môi trѭӡng ÿӇ ngѭӡi sӱ  
dөng có thӇ thi hành các chѭѫng trình. Nó làm cho máy tính dӇ sӱ dөng hѫn, thuұn lӧi hѫn và hiӋu quҧ  
n.  
HӋꢀÿLӅu hành là mӝt phҫn quan trӑng cӫa hҫu hӃt các hӋ thӕng máy tính. Mӝt hӋ thӕng máy tính  
thѭӡng ÿѭӧc chia làm bӕn phҫn chính: phҫn cӭng, hӋꢀÿLӅu hành, các chѭѫng trình ӭng dөng và ngѭӡi  
sӱ dөng.  
Ph̯n cͱng bao gӗm CPU, bӝ nhӟ, các thiӃt bӏ nhұp xuҩt, ÿây là nhӳng tài nguyên cӫa máy tính.  
Ch˱˯ng trình ͱng dͭng nhѭ các chѭѫng trình dӏch, hӋ thӕng cѫ sӣ dӳ liӋu, các trò chѫi, và các  
chѭѫng trình thѭѫng mҥi. Các chѭѫng trình này sӱ dөng tài nguyên cӫa máy tính ÿӇ giҧi quyӃt các yêu  
cҫu cӫa ngѭӡi sӱ dөng. H͏ꢀÿL͉u hànhꢀÿiӅu khiӇn và phӕi hӧp viӋc sӱ dөng phҫn cӭng cho nhӳng ӭng  
dөng khác nhau cӫa nhiӅu ngѭӡi sӱ dөng khác nhau. HӋꢀÿLӅu hành cung cҩp mӝt môi trѭӡng mà các  
chѭѫng trình có thӇ làm viӋc hӳu hiӋu trên ÿó.  
Hình 1.2 Mô hình trӯu tѭӧng cӫa hӋ thӕng máy tính  
HӋÿLӅu hành có thӇꢀÿѭӧc coi nhѭ là bӝ phân phӕi tài nguyên cӫa máy tính. NhiӅu tài nguyên  
cӫa máy tính nhѭ thӡi gian sӱ dөng CPU, vùng bӝ nhӟ, vùng lѭu trӳ tұp tin, thiӃt bӏ nhұp xuҩt v.v…  
Tài li͏u l˱u hành n͡i b͡ - 5 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
ÿѭӧc các chѭѫng trình yêu cҫu ÿӇ giҧi quyӃt vҩn ÿӅ. HӋꢀÿLӅu hành hoҥt ÿӝng nhѭ mӝt bӝ quҧn lý các  
tài nguyên và phân phӕi chúng cho các chѭѫng trình và ngѭӡi sӱ dөng khi cҫn thiӃt. Do có rҩt nhiӅu  
yêu cҫu, hӋꢀÿLӅu hành phҧi giҧi quyӃt vҩn ÿӅ tranh chҩp và phҧi quyӃt ÿӏnh c̭p phát tài nguyên cho  
nhӳng yêu cҫu theo thӭ tӵ nào ÿӇ hoҥt ÿӝng cӫa máy tính là hiӋu quҧ nhҩt. Mӝt hӋꢀÿLӅu hành cNJng có  
thӇꢀÿѭӧc coi nhѭ là mӝt chѭѫng trình kiӇm soát viӋc sӱ dөng máy tính, ÿһc biӋt là các thiӃt bӏ nhұp  
xuҩt.  
Tuy nhiên, nhìn chung chѭa có ÿӏnh nghƭa nào là hoàn hҧo vӅ hӋꢀÿLӅu hành. HӋꢀÿLӅu hành tӗn tҥi  
ÿӇ giҧi quyӃt các vҩn ÿӅ sӱ dөng hӋ thӕng máy tính. Mөc tiêu cѫ bҧn cӫa nó là giúp cho viӋc thi hành  
các chѭѫng trình dӉ dàng hѫn. Mөc tiêu thӭ hai là hӛ trӧ cho các thao tác trên hӋ thӕng máy tính hiӋu  
quҧ hѫn. Mөc tiêu này ÿһc biӋt quan trӑng trong nhӳng hӋ thӕng nhiӅu ngѭӡi dùng và trong nhӳng hӋ  
thӕng lӟn(phҫn cӭng + quy mô sӱ dөng). Tuy nhiên hai mөc tiêu này cNJng có phҫn tѭѫng phҧn vì vұy  
lý thuyӃt vӅ hӋꢀÿLӅu hành tұp trung vào viӋc tӕi ѭu hóa viӋc sӱ dөng tài nguyên cӫa máy tính.  
Giao ti͇p vͣi h͏ꢀÿL͉u hành  
HӋÿLӅu hành là môi trѭӡng trung gian, là cҫu nӕi giao tiӃp giӳa ngѭӡi dùng và hӋ thӕng máy  
tính ӣ mӭc thҩp hѫn (phҫn cӭng); ÿӇ ngѭӡi dùng và hӋꢀÿLӅu hành giao tiӃp, hӝi thoҥi vӟi nhau cҫn có  
mӝt ngôn ngӳ chung.trong mӝt sӕ hӋÿLӅu hành, ngôn ngӳ nhѭ vұy ÿѭӧc ÿӏnh dҥng và trình bày khá  
hoàn chӍnh(chҷng hҥn, hӋꢀÿLӅu hành OS trên máy IBM 360/50 dùng ngôn ngӳꢀÿLӅu khiӇn công viӋc –  
JOB CONTROL LANGUAGE:JCL).  
Trong mӝt sӕ hӋꢀÿLӅu hành khác thì vҩn ÿӅ giao tiӃp lҥi ÿѫn giҧn hѫn, chӍ cҫn sӱ dөng các lӋnh  
trong mӝt hӋ thӕng lӋnh: ngѭӡi dùng ÿѭa yêu cҫu cӫa mình thông qua viӋc gõ lӋnh và hӋÿLӅu hành  
thӵc hiӋn yêu cҫu ÿó (nhӋꢀÿLӅu hành UNIX, MS-DOS v.v.). Tuy nhiên trong các hӋꢀÿLӅu hành nhѭ  
vұy, cách thӭc chѭѫng trình lӋnh (batch program file trong MS-DOS hoһc script file trong UNIX) cNJng  
ÿѭӧc sӱ dөng ÿӇ tҥo ra nhӳnh tiӋn ích mӟi hiӋu quҧ cho ngѭӡi dùng.  
Giao tiӃp theo biӇu tѭӧng (icon) là cách thӭc giao tiӃp hӃt sӭc thân thiӋn ÿѭӧc bҳt ÿҫu tӯ hӋꢀÿLӅu  
hành cӫa máy Apple Macintosh và sau này ÿѭӧc phә dөng ÿӕi vӟi nhiӅu hӋꢀÿLӅu hành, ÿһc biӋt trong  
các hӋ thӕng Window (Microsoft Windows, X-window…).  
Phҫn 1.2.3 sӁ trình bày chi tiӃt hѫn vӅ các mӭc giao tiӃp nӝi tҥi trong hӋ thӕng máy tính.  
1.2 Phân loҥi hӋꢀÿLӅu hành  
1.2.1 Các thành ph̯n cͯa h͏ꢀÿL͉u hành  
Theo ÿӏnh nghƭa trên ÿây hӋꢀÿLӅu hành là mӝt tұp hӧp các chѭѫng trình ÿã ÿѭӧc cài sҹn, mӛi  
chѭѫng trình ÿҧm nhұn mӝt chӭc năng nào ÿó trong hӋ thӕng chӭc năng cӫa hӋꢀÿLӅu hành. Mӝt trong  
nhӳng nguyên tҳc phә biӃn nhҩt ÿӇ nhұn biӃt các thành phҫn cӫa hӋÿLӅu hành là dӵa theo chӭc năng  
cӫa các chѭѫng trình có trong thành phҫn ÿó. Theo nguyên tҳc này thì các thành phҫn cѫ bҧn cӫa hӋ  
ÿiӅu hành là thành phҫn ÿLӅu khiӇn (control programs), thành phҫn ӭng dөng (application programs,  
còn gӑi là thành phҫn xӱ lý) và các chѭѫng trình tiӋn ích (utilities).  
Thành ph̯n ÿL͉u khi͋n  
Thành phҫn ÿLӅu khiӇn liên quan ÿӃn chӭc năng ÿLӅu khiӇn, phân phӕi công viӋc cӫa hӋꢀÿLӅu  
hành. Khi mӝt chѭѫng trình ÿiӅu khiӇn hoҥt ÿӝng, nó không cho ra mӝt sҧn phҭm mӟi (s̫n pẖm nói ӣ  
ÿây là các File trên ÿƭa tӯ, mӝt kӃt quҧꢀÿѭӧc in ra) mà cho tác ÿӝng ÿӕi vӟi sӵꢀÿLӅu khiӇn hoҥt ÿӝng cӫa  
máy tính. Dѭӟi ÿây liӋt kê mӝt sӕ ÿun chѭѫng trình ÿiӇn hình thuӝc vào thành phҫn ÿLӅu khiӇn:  
- Chѭѫng trình dүn dҳt (ÿLӅu phӕi chính, monitor, chѭѫng trình giҧi thích lӋnh): TiӃp nhұn các  
nhiӋm vө (yêu cҫu cӫa ngѭӡi dùng) tӯ dòng vào các nhiӋm vө, sҳp xӃp phân phӕi lӏch thӵc hiӋn v.v.  
ÿӕi vӟi tӯng nhiӋm vө, sau ÿó trҧ lҥi kӃt quҧ cho ngѭӡi dùng.  
Tài li͏u l˱u hành n͡i b͡ - 6 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
- ĈiӅu khiӇn quá trình (bài toán): Thӵc hiӋn luân phiên các quá trình (process; bài toán-task )  
ÿang tӗn tҥi trong bӝ nhӟ, mӛi bài toán có các khӕi chӭa thông tin liên quan ÿӇ chuyӇn viӋc thӵc hiӋn  
tӯ quá trình này sang quá trình khác sao cho viӋc sӱ dөng CPU ÿҥt hiӋu quҧ.  
- ĈiӅu khiӇn dӳ liӋu: Tә chӭc lѭu trӳ dӳ liӋu trên vұt dүn ngoài và ÿҧm bҧo truy nhұp dӳ liӋu  
theo yêu cҫu cӫa chѭѫng trình ngѭӡi dùng. Công viӋc vào/ra giӳa bӝ nhӟ ngoài và bӝ nhӟ trong cNJng  
nhѭ do liên quan ÿӃn mӝt hӋ thӕng thiӃt bӏ ngoҥi vi ÿa dҥng và phong phú nên ÿiӅu khiӇn dӳ liӋu cNJng  
rҩt ÿa dҥng.  
- Môÿun chѭѫng trình tҧi (loader): Ĉҧm bҧo viӋc ÿѭa các môÿun chѭѫng trình tӯ bӝ nhӟ ngoài  
vào bӝ nhӟ trong tҥi mӝt ÿӏa chӍ trong bӝ nhӟ trong. Trong nhiӅu trѭӡng hӧp, môÿun chѭѫng trình tҧi  
còn ÿҧm bҧo viӋc chuyӇn ÿLӅu khiӇn ÿӇ thӵc hiӋn (execute) chѭѫng trình ÿѭӧc tҧi vào.  
- Và nhiӅu thành phҫn khác …  
Thành ph̯n ͱng dͭng  
Thành phҫn ӭng dөng có trong hӋꢀÿiӅu hành bao gӗm nhӳng chѭѫng trình mà khi ÿѭӧc thӵc  
hiӋn sӁ tҥo ra mӝt sҧn phҭm mӟi. Các bӝ dӏch ngôn ngӳ lұp trình (compiler), các chѭѫng trình tính  
toán, các chѭѫng trình soҥn thҧo v.v. ÿѭӧc các hӋꢀÿLӅu hành cung cҩp nhҵm giúp cho ngѭӡi sӱ dөng có  
thӇ chӑn lӵa phҫn mӅm thích hӧp trong lƭnh vӵc khai thác máy tính cӫa mình. Thành phҫn ӭng dөng  
rҩt ÿa dҥng do tính chҩt ÿa dҥng cӫa yêu cҫu ngѭӡi dùng.  
Thành phҫn ÿLӅu khiӇn hѭӟng ÿích là sӵ hiӋu quҧ khai thác máy tính; còn thành phҫn ӭng dөng  
Kѭӟng ÿích là viӋc thӓa mãn nhu cҫu cӫa ngѭӡi dùng, tăng hiӋu suҩt sӱ dөng máy tính ÿӕi vӟi tӯng lӟp  
ngѭӡi dùng.  
Thành phҫn ÿLӅu khiӇn là thành phҫn hoҥt ÿӝng nhҩt trong khi ÿó thành phҫn ӭng dөng lҥi gҳn  
bó vӟi ngѭѫi dùng hѫn.  
Các ch˱˯ng trình ti͏n ích  
Các chѭѫng trình tiӋn ích cung cҩp thêm cho ngѭӡi dùng các phѭѫng tiӋn phҫn mӅm làm viӋc  
vӟi hӋ thӕng máy tính thuұn tiӋn hѫn. Các chѭѫng trình liên quan ÿӃn cách thӭc thâm nhұp hӋ thӕng,  
các chѭѫng trình sao chép, in ҩn nӝi dung cӫa File, các chѭѫng trình làm viӋc vӟiꢀÿƭa v.v. ÿѭӧc xӃp  
vào thành phҫn tiӋn ích.  
1.2.2 Phân lo̩i h͏ꢀÿL͉u hành  
Mӝt trong nhӳng nguyên tҳc phә biӃn nhҩt ÿӇ phân loҥi các hӋꢀÿLӅu hành (truyӅn thӕng) là dӵa  
theo tính chҩt hoҥt ÿӝng cӫa thành phҫn ÿLӅu khiӇn và viӋc phân loҥi hӋꢀÿLӅu hành ӣꢀÿâyÿѭӧc thӵc  
hiӋn theo nguyên tҳc ÿó. Tính chҩt hoҥt ÿӝng cӫa chѭѫng trình ÿiӅu khiӇn liên quan ÿӃn cách thӭc ÿѭa  
chѭѫng trình vào bӝ nhӟ trong, chӑn chѭѫng trình ÿã có ӣ bӝ nhӟ trong ra thӵc hiӋn v.v. Theo cách  
thӭc phân loҥi này, có thӇ kӇꢀÿӃn hӋꢀÿLӅu hànhꢀÿѫn chѭѫng trình, hӋꢀÿLӅu hành ÿa chѭѫng trình và hӋ  
ÿiӅu hành thӡi gian thӵc.  
Chú ý rҵng, hӋꢀÿLӅu hành mҥng, hӋꢀÿLӅu hành phân tán và hӋÿLӅu hành tӵ trӏ phӕi hӧp không  
nҵm trong hӋ thӕng phân loҥi này. Các giáo trình vӅ hӋꢀÿLӅu hành mҥng, hӋꢀÿLӅu hành phân tán sӁ trình  
bày chi tiӃt nhӳng nӝi dung liên quan.  
a) H͏ th͙ng x͵ lý theo lô - H͏ꢀÿL͉u hành ÿ˯n ch˱˯ng trình  
Trong hӋꢀÿLӅu hành ÿѫn chѭѫng trình, toàn bӝ hӋ thӕng máy tính phөc vө mӝt chѭѫng trình tӯ  
lúc bҳt ÿҫu khi chѭѫng trình ÿó ÿѭӧc ÿѭa vào bӝ nhӟ trong cho ÿӃn thӡi ÿLӇm kӃt thúc chѭѫng trình  
ÿó. Khi mӝt chѭѫng trình ngѭӡi dùng ÿã ÿѭӧc ÿѭa vào bӝ nhӟ thì nó chiӃm giӳ mӑi tài nguyên cӫa hӋ  
thӕng và vì vұy chѭѫng trình cӫa ngѭӡi dùng khác không thӇꢀÿѭӧc ÿѭa vào bӝ nhӟ trong.  
Do các thiӃt bӏ vào/ra có tӕc ÿӝ làm viӋc chұm, nên ngѭӡi ta ÿã cҧi tiӃn chӃꢀÿӝꢀÿѫn chѭѫng trình  
theo hѭӟng sӱ dөng cách thӭc ÿһc biӋt (có tên gӑi là SPOOLING: Simultaneous Peripheral Operation  
Online; ÿôi lúc dùng thuұt ngӳ ch͇ÿ͡ SPOOLING cNJng vӟi nghƭa là cách thӭc này), mà theo cách  
thӭc này, mӑi vҩn ÿӅ vào/ra liên quan ÿӃn chѭѫng trình ÿѭӧc thӵc hiӋn thông qua ÿƭa tӯ. Chѭѫng trình  
Tài li͏u l˱u hành n͡i b͡ - 7 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
ngѭӡi dùng thông qua hӋÿLӅu hành, chӍ thӵc hiӋn vào/ra vӟi ÿƭa tӯ, còn viӋc vào/ra vӟi các thiӃt bӏ  
khác lҥi do cѫ chӃ khác ÿҧm nhұn và do vұy, thӡi gian giҧi bài toán (thӡi gian chѭѫng trình thӵc hiӋn)  
giҧm ÿi.  
Bӝ giám sát thѭӡng trӵc :  
Khi mӝt công viӋc chҩm dӭt, hӋ thӕng sӁ thӵc hiӋn công viӋc kӃ tiӃp mà không cҫn sӵ can thiӋp cӫa  
ngѭӡi lұp trình, do ÿó thӡi gian thӵc hiӋn sӁ mau hѫn. Mӝt chѭѫng trình, còn gӑi là bӝ giám sát thѭӡng  
trӵc ÿѭӧc thiӃt kӃÿӇ giám sát viӋc thӵc hiӋn dãy các công viӋc mӝt cách tӵꢀÿӝng, chѭѫng trình này  
luôn luôn thѭӡng trú trong bӝ nhӟ chính.  
H͏ꢀÿL͉u hành theo lô thӵc hiӋn các công viӋc lҫn lѭӧt theo nhӳng chӍ thӏꢀÿӏnh trѭӟc.  
CPU và thao tác nhұp xuҩt :  
CPU thѭӡng hay nhàn rӛi do tӕc ÿӝ làm viӋc cӫa các thiӃt bӏ nhұp xuҩt (thѭӡng là thiӃt bӏ cѫ) chұm  
n rҩt nhiӅu lҫn so vӟi các thiӃt bӏÿLӋn tӱ. Cho dù là mӝt CPU chұm nhҩt, nó cNJng nhanh hѫn rҩt  
nhiӅu lҫn so vӟi thiӃt bӏ nhұp xuҩt. Do ÿó phҧi có các phѭѫng pháp ÿӇꢀÿӗng bӝ hóa viӋc hoҥt ÿӝng cӫa  
CPU và thao tác nhұp xuҩt.  
X͵ lý off_line :  
Xӱ lý off_line là thay vì CPU phҧi ÿӑc trӵc tiӃp tӯ thiӃt bӏ nhұp và xuҩt ra thiӃt bӏ xuҩt, hӋ thӕng dùng  
mӝt b͡ l˱u trͷ trung gian. CPU chӍ thao thác vӟi bӝ phұn này. ViӋc ÿӑc hay xuҩt ÿӅu ÿӃn và tӯ bӝ lѭu  
trӳ trung gian.  
Spooling :  
Spool (simultaneous peripheral operation on-line) là ÿӗng bӝ hóa các thao tác bên ngoài on-line. Cѫ  
chӃ này cho phép xӱ lý cӫa CPU là on-line, sӱ dөng ÿƭa ÿӇ lѭu các dӳ liӋu nhұp cNJng nhѭ xuҩt.  
b) H͏ꢀÿL͉u hành ÿa ch˱˯ng trình  
Ĉӕi vӟi hӋÿLӅu hành ÿa chѭѫng trình thì trong máy tính, tҥi mӛi thӡi ÿLӇm có nhiӅu chѭѫng  
trình có mһt ÿӗng thӡi có măti ӣ bӝ nhӟ trong. Các chѭѫng trình này ÿӅu có nhu cҫu ÿѭӧc phân phӕi  
bӝ nhӟ và CPU ÿӇ thӵc hiӋn. Nhѭ vұy, bӝ nhӟ, CPU, các thiӃt bӏ ngoҥi vi v.v. là cá tài nguyên cӫa hӋ  
thӕng ÿѭӧc chia xҿ cho các chѭѫng trình ÿó. Ĉһc ÿLӇm quan trӑng cҫn lѭu ý là các chѭѫng trình này  
phҧi ÿѭӧc “bình ÿҷng” khi giҧi quyӃt các ÿòi hӓi vӅ tài nguyên. Khái niӋm ch˱˯ng trình nói trong chӃ  
ÿӝꢀÿa chѭѫng trình ÿѭӧc dùng ÿӇ chӍ cҧ chѭѫng trình ngѭӡi dùng lүn cKѭѫng trình cӫa hӋꢀÿLӅu hành.  
Khi so sánh vӟi hӋꢀÿLӅu hành ÿѫn chѭѫng trình, có thӇ nhұn thҩy ngay mӝt ÿLӅu là ÿӕi vӟi mӝt  
chѭѫng trình cө thӇ thì trong chӃÿӝꢀÿѫn chѭѫng trình, chѭѫng trình ÿó sӁ kӃt thúc nhanh hѫn (thӡi  
gian chҥy ngҳn hѫn) so vӟi khi nó chҥy trong chӃꢀÿӝꢀÿa chѭѫng trình, nhѭng bù lҥi, trong mӝt khoҧng  
thӡi gian xác ÿӏnh thì theo chӃꢀÿӝꢀÿa chѭѫng trình sӁ hoàn thiӋn ÿѭӧc nhiӅu chѭѫng trình (giҧi ÿѭӧc  
nhiӅu bài toán) hѫn, do ÿó hiӋu quҧ sӱ dөng máy tính cao hѫn.  
Nhѭÿã ÿánh giá ӣ phҫn trên, mӝt trong nhӳng tài nguyên quan trӑng nhҩt cӫa hӋ thӕng máy  
tính là CPU và viӋc chia xҿ CPU lҥi phân lӟp các hӋꢀÿLӅu hành ÿa chѭѫng trình thành các lӟp con: hӋ  
ÿiӅu hành hoҥt ÿӝng theo ch͇ꢀÿ͡ m̓ (batch) và hӋꢀÿLӅu hành hoҥt ÿӝng theo ch͇ꢀÿ͡ phân chia thͥi gian  
(time shared).  
HӋ thӕng xӱ lý theo lô ÿa chѭѫng  
Tài li͏u l˱u hành n͡i b͡ - 8 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Khi có nhiӅu công viӋc cùng truy xuҩt lên thiӃt bӏ, vҩn ÿӅ lұp lӏch cho các công viӋc là cҫn thiӃt. Khía  
cҥnh quan trӑng nhҩt trong viӋc lұp lӏch là khҧ năng ÿa chѭѫng. Ĉa ch˱˯ng (multiprogram) gia tăng  
khai thác CPU bҵng cách tә chӭc các công viӋc sao cho CPU luôn luôn phҧi trong tình trҥng làm viӋc .  
Ý tѭӣng nhѭ sau : hӋꢀÿLӅu hành lѭu giӳ mӝt phҫn cӫa các công viӋc ӣ nѫi lѭu trӳ trong bӝ nhӟ . CPU  
sӁ lҫn lѭӧt thӵc hiӋn các phҫn công viӋc này. Khiꢀÿang thӵc hiӋn, nӃu có yêu cҫu truy xuҩt thiӃt bӏ thì  
CPU không nghӍ mà thӵc hiӋn tiӃp công viӋc thӭ hai…  
Vӟi hӋꢀÿa chѭѫng hӋꢀÿLӅu hành ra quyӃt ÿӏnh cho ngѭӡi sӱ dөng vì vұy, h͏ꢀÿL͉u hành ÿa ch˱˯ng rҩt  
tinh vi. HӋ phҧi xӱ lý các vҩn ÿӅ lұp lӏch cho công viӋc, lұp lӏch cho bӝ nhӟ và cho cҧ CPU nӳa.  
H͏ꢀÿL͉u hành ho̩t ÿ͡ng theo ch͇ꢀÿ͡ m̓  
Ĉây là loҥi hӋꢀÿLӅu hành ÿình hѭӟng tӟi mөc tiêu làm c͹c ÿ̩i s͙ l˱ͫng các bài toán ÿ˱ͫc gi̫i  
quy͇t trong mӝt khoҧng ÿѫn vӏ thӡi gian (có nghƭa là trong mӝt khaӓng ÿѫn vӏ thӡi gian thì hѭӟng mөc  
tiêu vào viӋc hoàn thiӋn ÿѭӧc càng nhiӅu chѭѫng trình càng tӕt). Ӣ nѭӟc ta nhӳng năm trѭӟc ÿây, các  
máy tính EC-1022, EC-1035 (hӋÿLӅu hành OS), IBM 360/40-50 (hӋÿu hành DOS) phә biӃn hoҥt  
ÿӝng theo chӃꢀÿӝ mҿ.  
Các hӋꢀÿLӅu hành hoҥt ÿӝng theo chӃꢀÿӝ mҿ lҥi có thӇ phân biӋt thành hai loҥi ÿLӇn hình là MFT  
và MVT.  
MFT: Multiprogamming with Fixed number of Tasks  
Khi hӋ thӕng làm viӋc, ÿã qui ÿӏnh sҹ mӝt sӕ lѭӧng cӕꢀÿӏnh các bài toán ÿӗng thӡi ӣ bӝ nhӟ  
trong: Bӝ nhӟ trong ÿѭӧc chia thành mӝt sӕ vùng nhӟ cӕꢀÿӏnh, các vùng này có biên cӕꢀÿӏnh mà mӕi  
vùng ÿѭӧc dùng ÿӇ chӭa mӝt chѭѫng trình. Mӛi chѭѫng trình ngѭӡi dùng chӍꢀÿѭӧc ÿѭa vào mӝt vùng  
nhӟ xác ÿӏnh tѭѫng ӭng vӟi chѭѫng trình ÿó. Mӝt chѭѫng trình chӍ có thӇ làm viӋc trong giӟi hҥn cӫa  
vùng bӝ nhӟ trong ÿang chӭa nó.  
MVT: Multiprogamming with Variable number of Tasks  
Khác vӟi chӃꢀÿӝ MFT, trong chӃꢀÿӝ MVT, bӝ nhӟ trong không bӏ chia sҹn thành các vùng, viӋc  
nҥp chѭѫng trình mӟi vào bӝ nhӟ trong còn ÿѭӧc tiӃp diӉn khi mà bӝ nhӟ trong còn ÿӫꢀÿӇ chѭa nó.  
Có thӇ quan niӋm rҵng trong chӃÿӝ MFT bӝ nhӟ trong ÿѭӧc phân thành các vùng có  
vách ngăn cӕÿӏnh, còn trong chӃꢀÿӝ MVT, không có vách ngăn sҹn,mӛi khi chѭѫng trình mӟi  
ÿѭӧc nҥp vào vào mӟi hình thành mӝt vách ngănn tҥm thӡi. NӃu chӍ gһp các chѭѫng trình ÿòi  
hӓi ít bӝ nhӟ tthì theo chӃÿӝ MVT, sӕ lѭӧng chѭѫng trình ÿӗng thӡi có mһt trong bӝ nhӟ sӁ  
nhiӅu.  
HӋ thӕng chia xҿ thӡi gian  
HӋ thӕng chia xҿ thӡi gian là mӝt mӣ rӝng logic cӫa hӋꢀÿa chѭѫng. HӋ thӕng này còn ÿѭӧc gӑi là h͏  
th͙ng ÿa nhi͏m (multitasking). NhiӅu công viӋc cùng ÿѭӧc thӵc hiӋn thông qua cѫ chӃ chuyӇn ÿәi cӫa  
CPU nhѭ hӋꢀÿa chѭѫng nhѭng thӡi gian mӛi lҫn chuyӇn ÿәi diӉn ra rҩt nhanh.  
HӋ thӕng chia xҿꢀÿѭӧc phát triӇn ÿӇ cung cҩp viӋc sӱ dөng bên trong cӫa mӝt máy tính có giá trӏ hѫn.  
H͏ꢀÿL͉u hành chia x̓ thӡi gian dùng lұp lӏch CPU và ÿa chѭѫng ÿӇ cung cҩp cho mӛi ngѭӡi sӱ dөng  
mӝt phҫn nhӓ trong máy tính chia xҿ. Mӝt chѭѫng trình khi thi hành ÿѭӧc gӑi là mӝt tiӃn trình. Trong  
quá trình thi hành cӫa mӝt tiӃn trình, nó phҧi thӵc hiӋn các thao tác nhұp xuҩt và trong khoҧng thӡi  
gian ÿó CPU sӁ thi hành mӝt tiӃn trình khác. HӋꢀÿLӅu hành chia xҿ cho phép nhiӅu ngѭӡi sӱ dөng chia  
xҿ máy tính mӝt cách ÿӗng bӝ do thӡi gian chuyӇn ÿәi nhanh nên hӑ cҧm giác là các tiӃn trình ÿang  
ÿѭӧc thi hành cùng lúc.  
HӋꢀÿLӅu hành chia xҿ phӭc tҥp hѫn hӋꢀÿLӅu hành ÿa chѭѫng. Nó phҧi có các chӭc năng : quҧn trӏ và bҧo  
vӋ bӝ nhӟ, sӱ dөng bӝ nhӟꢀҧo. Nó cNJng cung cҩp hӋ thӕng tұp tin truy xuҩt on-line…  
Tài li͏u l˱u hành n͡i b͡ - 9 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
HӋꢀÿLӅu hành chia xҿ là kiӇu cӫa các hӋꢀÿLӅu hành hiӋn ÿҥi ngày nay.  
Ch͇ꢀÿ͡ phân chia thͥi gian (Time Shared System: TSS)  
ChӃꢀÿӝ phân chia thӡi gian là chӃꢀÿӝ hoҥt ÿӝng ÿLӇn hình cӫa các hӋꢀÿLӅu hành ÿa ngѭӡi dùng  
(multi-users). HӋꢀÿLӅu hành hoҥt ÿӝng theo chӃꢀÿӝ này ÿӏnh hѭӟng phөc vө trӵc tiӃp ngѭӡi dùng khi  
chѭѫng trình cӫa ngѭӡi dùng ÿó ÿang thӵc hiӋn, làm cho giao tiӃp cӫa ngѭӡi dùng vӟi máy tính là hӃt  
sӭc thân thiӋn. liên quan ÿӃn hӋꢀÿLӅu hành hoҥt ÿӝng theo chӃꢀÿӝ này là các khái niӋm lѭӣng tӱ thӡi  
gian, bӝ nhӟꢀҧo v.v.  
Trong hӋ TSS, tҥi cùng thӡi ÿiӇm có nhiӅu ngѭӡi dùng ÿӗng thӡi làm viӋc vӟi máy tính: Mӛi  
ngѭӡi làm viӋc vӟi máy tính thông qua mӝt trҥm cuӕi (terminal) và vì vұy, hӋ thӕng ÿã cho phép máy  
tính thân thiӋn vӟi ngѭӡi dùng.  
HӋÿu hành phân phӕi CPU lҫn lѭӧt cho tӯng chѭѫng trình nJѭӡi dùng, mӛi chѭѫng trình  
ÿѭӧc chiӃm giӳ CPU trong mӝt khoҧng thӡi gian nhѭ nhau (khoҧng thӡi gian ÿó ÿѭӧc gӑi là lѭӧng tӱ  
thӡi gian): có thӇ thҩy phә biӃn vӅ lѭӧng tӱ thӡi gian ÿLӇn hình là khoҧng 0,05s. Máy tính làm viӋc vӟi  
tӕc ÿӝ cao, chu kǤ quay laӏ phөc vө cho tӯng chѭѫng trình ngѭӡi dùng là rҩt nhanh, và vì vұy, mӛi  
ngѭӡi dùng ÿӅu có cҧm giác rҵng mình chiӃm hӳu toàn bӝ tài nguyên hӋ thӕng.  
Bӝ nhӟ luôn chӭa chѭѫng trình cӫa mӑi ngѭӡi dùng, vì vұy xҧy ra tình huӕng toàn bӝ bӝ nhӟ  
trong không ÿӫꢀÿӇ chӭa tҩt cҧ chѭѫng trình ngѭӡi dùng hiӋn ÿang thӵc hiӋn; vì vұy, ÿӕi vӟi hӋꢀÿLӅu  
hành TSS nҧy sinh giҧi pháp sӱ dөng bӝ nhӟꢀҧo: sӱ dөng ÿƭa tӯ nhѭ vùng mӣ rӝng không gian nhӟ cӫa  
bӝ nhӟ trong.  
Có thӇ nhұn xét rҵng, tính qu̫n tr͓ tài nguyên ÿѭӧc nhҩn mҥnh trong hӋꢀÿLӅu hành mҿ tính  
ch̭t máy tính ̫o ÿѭӧc quan tâm hѫn trong hӋꢀÿLӅu hành ÿa ngѭӡi dùng.  
HӋ thӕng song song  
Ngoài các hӋ thӕng chӍ có mӝt bӝ xӱ lý còn có các hӋ thӕng có nhiӅu bӝ xӱ lý cùng chia xҿ hӋ thӕng  
ÿѭӡng truyӅn dӳ liӋu, ÿӗng hӗ, bӝ nhӟ và các thiӃt bӏ ngoҥi vi. Các bӝ xӱ lý này liên lҥc bên trong vӟi  
nhau .  
Có nhiӅu nguyên nhân xây dӵng dҥng hӋ thӕng này. Vӟi sӵ gia tăng sӕ lѭӧng bӝ xӱ lý, công viӋc ÿѭӧc  
thӵc hiӋn nhanh chóng hѫn, Nhѭng không phҧi theo ÿúng tӍ lӋ thӡi gian, nghƭa là có n bӝ xӱ lý không  
có nghƭa là sӁ thӵc hiӋn nhanh hѫn n lҫn.  
HӋ thӕng vӟi máy nhiӅu bӝ xӱ lý sӁ tӕi ѭu hѫn hӋ thӕng có nhiӅu máy có mӝt bӝ xӱ lý vì các bӝ xӱ lý  
chia xҿ các thiӃt bӏ ngoҥi vi, hӋ thӕng lѭu trӳ, nguӗn … và rҩt thuұn tiӋn cho nhiӅu chѭѫng trình cùng  
làm viӋc trên cùng mӝt tұp hӧp dӳ liӋu.  
Mӝt lý do nӳa là ÿӝ tin cұy. Các chӭc năng ÿѭӧc xӱ lý trên nhiӅu bӝ xӱ lý và sӵ hӓng hóc cӫa mӝt bӝ  
xӱ lý sӁ không ҧnh hѭӣng ÿӃn toàn bӝ hӋ thӕng.  
H͏ th͙ng ÿa x͵ thông thѭӡng sӱ dөng cách ÿa x͵ ÿ͙i xͱng, trong cách này mӛi bӝ xӱ lý chҥy  
vӟi mӝt bҧn sao cӫa hӋꢀÿLӅu hành, nhӳng bҧn sao này liên lҥc vӟi nhau khi cҫn thiӃt. Mӝt sӕ hӋ thӕng  
sӱ dөng ÿa xӱ lý bҩt ÿӕi xӭng, trong ÿó mӛi bӝ xӱ ÿѭӧc giao mӝt công viӋc riêng biӋt.. Mӝt bӝ xӱ lý  
chính kiӇm soát toàn bӝ hӋ thӕng, các bӝ xӱ lý khác thӵc hiӋn theo lӋnh cӫa bӝ xӱ lý chính hoһc theo  
nhӳng chӍ thӏꢀÿã ÿѭӧc ÿӏnh nghƭa trѭӟc. Mô hình này theo dҥng quan hӋ chӫ tӟ. Bӝ xӱ lý chính sӁ lұp  
lӏch cho các bӝ xӱ lý khác.  
Mӝt ví dө vӅ hӋ thӕng xӱ ÿӕi xӭng là version Encore cӫa UNIX cho máy tính Multimax. HӋ thӕng  
này có hàng tá bӝ xӱ lý. Ѭu ÿiӇm cӫa nó là nhiӅu tiӃn trình có thӇ thӵc hiӋn cùng lúc . Mӝt hӋ thӕng ÿa  
xӱ lý cho phép nhiӅu công viӋc và tài nguyên ÿѭӧc chia xҿ tӵꢀÿӝng trong nhӳng bӝ xӱ lý khác nhau.  
Tài li͏u l˱u hành n͡i b͡ - 10 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
HӋ thӕng ÿa xӱ lý không ÿӗng bӝ thѭӡng xuҩt hiӋn trong nhӳng hӋ thӕng lӟn, trong ÿó hҫu hӃt thӡi  
gian hoҥt ÿӝng ÿӅu dành cho xӱ lý nhұp xuҩt.  
HӋ thӕng phân tán  
HӋ thӕng này cNJng tѭѫng tӵ nhѭ hӋ thӕng chia xҿ thӡi gian nhѭng các bӝ xӱ lý không chia xҿ bӝ nhӟ  
ÿӗng hӗ, thay vào ÿó mӛi bӝ xӱ lý có bӝ nhӟ cөc bӝ riêng. Các bӝ xӱ lý thông tin vӟi nhau thông  
qua các ÿѭӡng truyӅn thông nhѭ nhӳng bus tӕc ÿӝ cao hay ÿѭӡng dây ÿLӋn thoҥi.  
Các bӝ xӱ lý trong hӋ phân tán thѭӡng khác nhau vӅ kích thѭӟc và chӭc năng. Nó có thӇ bao gӗm máy  
vi tính, trҥm làm viӋc, máy mini, và nhӳng hӋ thӕng máy lӟn. Các bӝ xӱ lý thѭӡng ÿѭӧc tham khҧo vӟi  
nhiӅu tên khác nhau nhѭ site, node, computer v.v.... tùy thuӝc vào trҥng thái làm viӋc cӫa chúng.  
Các nguyên nhân phҧi xây dӵng hӋ thӕng phân tán là:  
Chia x̓ tài nguyên : Mӝt ngѭӡi sӱ dөng A có thӇ sӱ dөng máy in laser cӫa ngѭӡi sӱ dөng B và ngѭӡi  
sӱ dөng B có thӇ truy xuҩt nhӳng tұp tin cӫa A. Tәng quát, chia xҿ tài nguyên trong hӋ thӕng phân tán  
cung cҩp mӝt cѫ chӃꢀÿӇ chia xҿ tұp tin ӣ vӏ trí xa, xӱ lý thông tin trong mӝt cѫ sӣ dӳ liӋu phân tán, in  
ҩn tҥi mӝt vӏ trí xa, sӱ dөng nhӳng thiӃt bӏꢀӣ xa ÿӇõ thӵc hiӋn các thao tác.  
ng t͙c ÿ͡ tính toán : Mӝt thao tác tính toán ÿѭӧc chia làm nhiӅu phҫn nhӓ cùng thӵc hiӋn mӝt lúc.  
HӋ thӕng phân tán cho phép phân chia viӋc tính toán trên nhiӅu vӏ trí khác nhau ÿӇ tính toán song song.  
An toàn : NӃu mӝt vӏ trí trong hӋ thӕng phân tán bӏ hӓng, các vӏ trí khác vүn tiӃp tөc làm viӋc.  
Thông tin liên l̩c vͣi nhau :Có nhiӅu lúc , chѭѫng trình cҫn chuyӇn ÿәi dӳ liӋu tӯ vӏ trí này sang vӏ  
trí khác. Ví dө trong hӋ thӕng Windows, tKѭӡng có sӵ chia xҿ và chuyӇn dӳ liӋu giӳa các cӱa sә. Khi  
các vӏ trí ÿѭӧc nӕi kӃt vӟi nhau trong mӝt hӋ thӕng mҥng, viӋc trao ÿәi dӳ liӋu diӉn ra rҩt dӉ. Ngѭӡi sӱ  
dөng có thӇ chuyӇn tұp tin hay các E_mail cho nhau tӯ cùng vӏ trí hay nhӳng vӏ trí khác.  
c) H͏ꢀÿL͉u hành thͥi gian th͹c  
NhiӅu bài toán trong lƭnh vӵc ÿLӅu khiӇn cҫn ÿѭӧc giҧi quyӃt không muӝn hѫn mӝt thӡi ÿLӇm  
nhҩt ÿӏnh, và vì vұy, ÿӕi vӟi các máy tính trong lƭnh vӵc ÿó cҫn hӋꢀÿLӅu hành thӡi gian thӵc (RT: Real  
Time). Trong hӋ thӡi gian thӵc, mӛi bài toán ÿѭӧc gҳn vӟi mӝt thӡi ÿLӇm thӡi gian (ÿôi lúc ÿѭӧc gӑi là  
deadtime) và bài toán phҧi ÿѭӧc giҧi quyӃt không muӝn hѫn thӡi ÿLӇm ÿã cho ÿó: nӃu bài toán hoàn  
thiӋn muӝn hѫn thӡi ÿLӇm ÿó thì viӋc giҧi quyӃt nó trӣ nên không còn có ý nghiã nӳa. hӋ thӡi gian thӵc  
có thӇꢀÿѭӧc coi nhѭ mӝt trѭӡng hӧp cӫa hӋꢀÿa chѭѫng trình hoҥt ÿӝng theo chӃꢀÿӝ mҿ có gҳn thêm thӡi  
ÿiӇm kӃt thúc cho mӛi bài toán.  
Chú ý rҵng, các nhà thiӃt kӃ hӋꢀÿLӅu hành hiӋn ÿҥi cNJng cho phép mӝt hӋꢀÿLӅu hành do hӑ thiӃt  
kӃ có khҧ nănng ÿѭӧc khӣi tҥo hoҥt ÿӝng theo mӝt trong mӝt sӕ chӃꢀÿӝ hoҥt ÿӝng cӫa hӋꢀÿLӅu hành ÿã  
nói trên ÿây. Chҷng hҥn, hӋꢀÿLӅu hành OS cho hӋ thӕng máy EC hoһc IBM có thӇ hoҥt ÿӝng hoһc theo  
chӃꢀÿӝ mҿ (MFT,MVT), hoһc theo chӃꢀÿӝ phân chia thӡi gian (SYS); hoһc hӋꢀÿLӅu hành LINUX hoҥt  
ÿӝng theo chӃÿӝÿѫn ngѭӡi dùng (vӟi superuser) hoһc chӃÿӝÿa ngѭӡi dùng (vӟi các ngѭӡi dùng  
khác).  
HӋ thӕng xӱ lý thӡi gian thӵc  
H͏ th͙ng x͵ lý thͥi gian th͹c ÿѭӧc sӱ dөng khi có nhӳng ÿòi hӓi khҳt khe vӅ thӡi gian trên các thao  
tác cӫa bӝ xӱ lý hoһc dòng dӳ liӋu, nó thѭӡng ÿѭӧc dùng ÿiӅu khiӇn các thiӃt bӏ trong các ӭng dөng  
tұn hiӃn (dedicated). Máy tính phân tích dӳ liӋu và có thӇ chӍnh các ÿLӅu khiӇn giҧi quyӃt cho dӳ liӋu  
nhұp.  
Tài li͏u l˱u hành n͡i b͡ - 11 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Mӝt hӋꢀÿLӅu hành xӱ lý thӡi gian thӵc phҧi ÿѭӧc ÿӏnh nghƭa tӕt, thӡi gian xӱ lý nhanh. HӋ thӕng phҧi  
cho kӃt quҧ chính xác trong khoҧng thӡi gian bӏ thúc ép nhanh nhҩt. Có hai hӋ thӕng xӱ lý thӡi gian  
thӵc là hӋ thӕng thӡi gian thӵc cӭng và hӋ thӕng thӡi gian thӵc mӅm..  
HӋ thӕng thӡi gian thӵc cӭng là công viӋc ÿѭӧc hoàn tҩt ÿúng lúc. Lúc ÿó dӳ liӋu thѭӡng ÿѭӧc lѭu  
trong bӝ nhӟ ngҳn hҥn hay trong ROM. ViӋc xӱ lý theo thӡi gian thӵc sӁ xung ÿӝt vӟi tҩt cҧ hӋ thӕng  
liӋt kê ӣ trên.  
Dҥng thӭ hai là hӋ thӕng thӡi gian thӵc mӅm, mӛi công viӋc có mӝt ÿӝ ѭu tiên riêng và sӁÿѭӧc thi  
hành theo ÿӝ ѭu tiên ÿó. Có mӝt sӕ lƭnh vӵc áp dөng hӳu hiӋu phѭѫng pháp này là multimedia hay  
thӵc tҥi ҧo.  
1.2.3. Nhân cͯa h͏ꢀÿL͉u hành. T̫i h͏ꢀÿL͉u hành  
Nhân cͯa h͏ꢀÿL͉u hành (Kernel, mӝt sӕ tác giҧ còn sӱ dөng thuұt ngӳ tiӃng ViӋt là lõi )  
HӋꢀÿLӅu hành là bӝ bao gӗm mӝt sӕ lѭӧng lӟn các chѭѫng trình, trong nhiӅu trѭӡng hӧp ÿó là  
mӝt bӝ chѭѫng trìnhꢀÿӗ sӝ và vì vұy không thӇꢀÿѭa tҩt cҧ các chѭѫng trình cӫa hӋÿLӅu hành vào bӝ  
nhӟ trong ÿѭӧc. nhѭ vұy, các chѭѫng trình thành phҫn thuӝc hӋꢀÿLӅu hànhꢀÿѭӧc chia ra thành hai loҥi:  
có nhӳng môÿun chѭѫng trình cӫa hӋ thӕng luôn có mһt trong bӝ nhӟ trong ÿӇ ÿiӅu khiӇn máy tính làm  
viӋc: các chѭѫng trình thuӝc vào nhân cӫa hӋ thӕng và các chѭѫng trình thuӝc loҥi thӭ hai chӍꢀÿѭӧc  
nҥp vào bӝ nhӟ trong khi cҫn thiӃt. Mӝt ÿLӅu dӉ nhұn thҩy là, các môÿun chѭѫng trìnhꢀÿѭӧc ÿѭa vào  
nhân là nhӳng môÿun thѭӡng xuyên nhҩt ÿѭӧc sӱ dөng.  
Nhân cӫa hӋꢀÿLӅu hành thông thѭӡng bao gӗm:  
- Môÿun chѭѫng trình tҧi (Loader). Nhѭꢀ ÿã trình bày ӣ trên, chӭc năng chӫ yӃu cӫa môÿun  
chѭѫng trình tҧi là ÿѭa mӝt chѭѫng trình vào bӝ nhӟ trong bҳt ÿҫu tӯꢀÿӏa chӍ nào ÿó ÿӇ sau ÿó  
cho phép chѭѫng trìnhꢀÿã ÿѭӧc tҧi nhұn ÿiӅu khiӇnꢀÿӇ chҥy hoһc không.  
- Môÿun chѭѫng trình dҹn dҳt (monitor). ViӋc chӑn lӵa các bѭӟc làm viӋc cӫa toàn bӝ hӋ thӕng  
do môÿun chѭѫng trình dүn dҳt ÿҧm nhiӋm.  
- Môÿun chѭѫng trình lұp lӏch (scheduler): chon chѭѫng trình tiӃp theo ÿӇ chҥy.  
- Mӝt sӕ ÿun chѭѫng trình khác.  
- Cùng mӝt sӕ thông tin hӋ thӕng là các tham sӕ hӋ thӕng.  
Nҧy sinh mӝt sӕ vҩn ÿӅ liên quan tӟi nhân cӫa hӋꢀÿLӅu hành nhѭꢀÿѭӧc trình bày sau ÿây:  
Vҩn ÿӅ (bài toán) ÿҫu tiên liên quan ÿӃn nhân cӫa hӋꢀÿLӅu hành là: Chӑn nhӳng môÿun hӋ thӕng  
nào ÿӇꢀÿѭa vào nhân? Nhân quá lӟn (nhân chӭa nhiӅu môÿun chѭѫng trình) thì ÿӥ tӕn thӡi gian tҧi các  
ÿun trong hӋꢀÿLӅu hành vào bӝ nhӟ trong song do chiӃm nhiӅu bӝ nhӟ trong nên lҥi làm giҧm dung  
Oѭӧng bӝ nhӟ trong có thӇ sӱ dөng ÿѭӧc cho chѭѫng trình cӫa ngѭӡi sӱ dөng. Nhân quá bé (nhân chӭa  
quá ít môÿun chѭѫng trình) thì công viӋc tҧi sӁ thѭӡng xuyên hѫn, phҧi làm viӋc vӟi ÿƭa tӯ nhiӅu hѫn,  
thӡi gian dành cho viӋc nҥp các môÿun cӫa hӋ thӕng vào bӝ nhӟ trong sӁ tăng lên và nhѭ thӃ thӡi gian  
CPU dành cho chѭѫng trình ngѭӡi dùng sӁ giҧm ÿi và vì thӃ, hiӋu suҩt sӱ dөng CPU cNJng thҩp. Có  
mӝt sӕ giҧi pháp ÿӅ xác ÿӏnh nhân cӫa hӋꢀÿLӅu hành, nói chung là dung hòa hai xu thӃ nêu trên.  
HiӋn nay, nҧy sinh mӝt giҧi pháp mӟi ÿѭӧc gӑi là “vi nhân” mà theo giҧi pháp này các môÿun  
chѭѫng trình trong rҩt nhӓ. Các môÿun khác (ÿáng lӁ thuӝc vào nhân) lҥi là các ÿoҥn chѭѫng trình nhӓ  
theo các môÿun chѭѫng trình thuӝc nhân cho nên viӋc tҧi chúng là ÿѫn giҧn, và vì vұy, dù có nҥp các  
ÿun này mӝt cách thѭӡng xuyên song hoҥt ÿӝng cӫa hӋ thӕng vүn trӣ nên hiӋu quҧ và trӣ nên linh  
hoҥt hѫn.  
Giҧi pháp vi nhân còn ÿѭӧc thӵc hiӋn theo hѭӟng: bӝ phұn các môÿun chѭѫng trình trong hӋ  
ÿiӅu hành phө thuӝc phҫn cӭng trӣ thành các môÿun trong vi nhân còn các môÿun chѭѫng trình khác  
ÿѭӧc thiӃt kӃ là hoàn toàn ÿӝc lұp máy tính và dӵa trên cѫ sӣ các môÿun chѭѫng trìnhꢀÿѭӧc coi là ÿã  
có trong vi nhân. ĈiӅu ÿó cho phép dӉ dàng chuyӇn ÿәi hӋꢀÿLӅu hành tӯ hӋ thӕngv máy tính này sang  
hӋ thӕng máy tính khác vì khi chuyӇn ÿәi chӍ bә sung các môÿun thuӝc vi nhân.  
Tài li͏u l˱u hành n͡i b͡ - 12 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Vҩn ÿӅ thӭ hai ÿӕi vӟi nhân là: Phân phӕi bӝ nhӟ trong cho nhân (ÿһt nhân vào bӝ nhӟ trong)  
nhѭ thӃ nào? Phân phӕi liên tөc hay rӡi rҥc? Phân phӕi vùng ÿӏa chӍ cao hay ÿӏa chӍ thҩp v.v… Mӝt  
trong nhӳng nguyên lý cѫ bҧn nhҩt cӫa viӋc nҥp nhân là phân pphӕi bӝ nhӟ cho nhân phҧi ÿҧm bҧo là  
vùng b͡ nhͣ liên tͭc còn l̩i ÿ̩t lͣn nh̭t có thӇ có và không gây cҧn trӣ cho viӋc nâng c̭p h͏ꢀÿL͉u  
hành. Mӝt giҧi pháp ÿѫn giҧn nhҩt dӉ thҩy là nҥp nhân tҥi các vùng biên cӫa bӝ nhӟ trong mà ÿһc biӋt  
là nҥp vào các vùng biên dѭӟi (vùng bӝ nhӟ ÿӏa chӍ thҩp).  
Các mͱc giao ti͇p trong h͏ th͙ng máy tính  
Phҫn 1.1.2 ÿã giӟi thiӋu sѫ bӝ vӅ giao tiӃp giӳa ngѭӡi dùng và hӋ thӕng máy tính. Hình 1.3 mô  
tҧ mӝt cách chi tiӃt hѫn vӅ các mӭc giao tiӃp trong hӋ thӕng máy tính.  
ĈӇ thӵc hiӋn yêu cҫu cӫa mình, ngѭӡi dùng gõ lӋnh gӑi chѭѫng trình ӭng dөng tѭѫng ӭng vӟi  
yêu cҫu cӫa mình ÿӇ làm viӋc vӟi hӋꢀÿLӅu hành. Các mӭc làm viӋc trong hӋꢀÿLӅu hành gӗm có dӏch vө  
hӋ thӕng (mӭc trên) và nhân (mӭc dѭӟi). Cuӕi cùng, nhân làm viӋc vӟi phҫn cӭng máy tính (máy tính  
vұt lý).  
Ngѭӡi dùng  
Do tính ÿa dҥng cӫa hӋ thӕng  
thiӃt bӏ ngoҥi vi cho nên trong ÿa sӕ  
Chѭѫng trình ӭng dөng  
các trѭӡng hӧp, tѭѫng ӭng mӛi thiӃt bӏ  
ngoҥi vi ÿòi hӓi mӝt chѭѫng trình phҫn  
mӅm riêng, ÿi kèm vӟi mӛi loҥi thiӃt bӏ  
ch vө hӋ thӕng  
ÿѭӧc gӑi là chѭѫng trình ÿiӅu khiӇn  
thiӃt bӏ (device driven) có chӭc năng  
Nhân  
Phҫn cӭng máy tính  
liên kӃt giӳa nhân cӫa hӋꢀÿLӅu hành vӟi  
mӛi thiӃt bӏ vào/ra tѭѫng ӭng.  
Hình 1.3 Cҩu trúc mӭc cӫa hӋ thӕng máy tính  
T̫i h͏ꢀÿL͉u hành  
HӋꢀÿLӅu hành không thӇ tӵꢀÿһt ÿѭӧc ngay trong máy tính ÿѭӧc. Do hӋꢀÿLӅu hành là tұp hӧp các  
chѭѫng trìnhꢀÿѭӧc cài ÿһt sҹn nhѭng ӣ trên vұt dүn ngoài (các file trên ÿƭa tӯ) và muӕn máy tính hoҥt  
ÿӝng ÿѭӧc (ÿӕi vӟi các máy tính hiӋn nay) phҧi qua mӝt giai ÿRҥn ÿѭa hӋꢀÿLӅu hành vào trong máy tính  
ÿӇ làm viӋc. Giai ÿRҥn nói trên là giai ÿoҥn tҧi (nҥp) hӋꢀÿLӅu hành. VӅ qui trình chung giai ÿoҥn tҧi hӋ  
ÿiӅu hành (còn ÿѭӧc gӑi là t̫i h͏ th͙ng) có thӇꢀÿѭӧc phân ra các bѭӟc sauꢀÿây:  
Khӣi ÿӝng chѭѫng trình tҧi nguyên thӫy. trong máy tính thѭӡng có ÿRҥn chѭѫng trình tҧi  
nguyên thӫy vӟi tên IPL (Initial Program Loader) ÿã ÿѭӧc cӭng hóa (thѭӡng ÿѭӧc ÿһt trong EPROM)  
sӁ tӵ bӏ kích hoҥt ÿӇ thӵc hiӋn mӛi khi bұt máy gây xung ÿLӋn. Sau khi ÿѭӧc kích hoҥt ÿӇ hoҥt ÿӝng,  
IPL bҳt ÿҫu làm viӋc.  
IPL kiӇm tra tính sҹn sàng cӫa hӋ thӕng thiӃt bӏ. Tѭѫng ӭng vӟi mӛi thiӃt bӏ, IPL lұp ra khӕi  
ÿiӅu khiӇn thiӃt bӏ UCB (Unit Control Block) chӭa các thông sӕ vӅ thiӃt bӏꢀÿó. Các thông sӕ vӅ thiӃt bӏ  
trong UCB cung cҩp các thông tinꢀÿӇ thuұn tiӋn cho viӋc ÿiӅu khiӇn các hӋ thӕng (nhҩt là ÿiӅu khiӇn  
vào/ra) sau này. IPL còn tҥo ra danh sách các thiӃt bӏ ngoҥi vi ÿѭӧc kӃt nӕi vào hӋ thӕng máy tính.  
Ĉӗng thӡi các chѭѫng trình ÿiӅu khiӇn thiӃt bӏ (device driven) cNJng ÿѭӧc tҧi vào trong giai ÿoҥn này  
và các chӍ dүn ÿӃn chúng ÿѭӧc thiӃt lұp.  
IPL tҧi ÿRҥn chѭѫng trình “mӗi”, thѭӡng ÿһt ӣ sector ÿҫu tiên (R0) ӣꢀÿƭa chӭa hӋꢀÿLӅu hành, vào  
bӝ nhӟ trong tҥi nhӳng ÿӏa chӍꢀÿӏnh sҹn và truyӅn ÿiӅu khiӇn cho ÿoҥn chѭѫng trình mӗi. trong mӝt sӕ  
hӋꢀÿLӅu hành ngѭӡi ta gӑi ÿRҥn chѭѫng trình mӗi là chѭѫng trình khӣi ÿӝng nhân (viӃt tҳt là NIP cӫa  
cөm tӯ Nucleus Initial Program). ĈRҥn chѭѫng trình mӗi NIP thӵc hiӋn chӭc năng tҧi nhân cӫa hӋꢀÿLӅu  
hành vào.  
Tài li͏u l˱u hành n͡i b͡ - 13 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Sau khi tҧi nhân xong, chѭѫng trình mӗi sӁ trao ÿiӅu khiӇn cho chѭѫng trình dүn dҳt ÿӇ hӋ  
thӕng bҳt ÿҫu làm viӋc.  
1.2.4 Phân lͣp các ch˱˯ng trình trong thành ph̯n ÿL͉u khi͋n  
Mӝt trong nhӳng cách phân lӟp các chѭѫng trình thuӝc thành phҫn ÿLӅu khiӇn là dӵa theo bài  
toán mà lӟp chѭѫng trình ÿó giҧi quyӃt. Các bài toán cѫ bҧn nhҩt nҧy sinh trong quá trình ÿiӅu khiӇn  
hӋ thӕng máy tính ÿѭӧc liӋt kê nhѭ dѭӟi ÿây.  
Ĉi͉u khi͋n dͷ li͏u  
ĈiӅu khiӇn dӳ liӋu (ÿiӅu khiӇn file, ÿiӅu khiӇn vào/ra) bao gӗm các module chѭѫng trình cӫa hӋ  
ÿiӅu hành liên quan ÿӃn viӋc tә chӭc lѭu trӳ và quҧn lý dӳ liӋu trên vұt dүn ngoài, chuyӇn dӳ liӋu tӯ  
vұt dүn ngoài vào bӝ nhӟ trong và ngѭӧc lҥi. Quá trình chuyӇn dӳ liӋu thѭӡng ÿѭӧc thӵc hiӋn qua hai  
giai ÿoҥn: chuyӇn ÿәi dӳ liӋu thӵc sӵ giӳa khu vӵc ngoҥi vi vӟi bӝ nhӟ trong và chuyӇn ÿәi dӳ liӋu nӝi  
bӝ bӝ nhӟ trong. Tính ÿa dҥng cӫa thiӃt bӏ ngoài dүn tӟi viӋc có nhiӅu cách thӭc tә chӭc, lѭu trӳ, cұp  
nhұt dӳ liӋu v.v.  
Ĉi͉u khi͋n CPU, ÿi͉u khi͋n quá trình  
ĈӇ tӕi ѭu hóa sӵ làm viӋc cӫa CPU thì hoҥt ÿӝng cӫa CPU ÿѭӧc ÿҧm bҧo tӯ hӋ thӕng ÿiӅu khiӇn  
CPU: làm thӃ nào ÿӇ thӡi gian hoҥt ÿӝng có ích cӫa CPU là cao nhҩt. Có thӇ tiӃp cұn theo khía cҥnh  
ÿiӅu khiӇn quá trình (chѭѫng trình, bài toán) vӟi viӋc phân chia tài nguyên dùng chung, ÿӗng bӝ hóa,  
xӱ lý song song v.v. khi quan tâm ÿӃn mӕi quan hӋ giӳa các quá trình ÿang ÿӗng thӡi tӗn tҥi.  
ĈiӅu khiӇn CPU còn ÿѭӧc xem xét trong trѭӡng hӧp máy tính vӟi nhiӅu bӝ xӱ lý.  
Ĉi͉u khi͋n b͡ nhͣ  
ViӋc quҧn lý bӝ nhӟ trong ÿӇ nҳm vӳng vùng nhӟ nào rӛi, vùng nhӟ nào bұn và viӋc phân phӕi  
bӝ nhӟ cho mӝt chѭѫng trình và giҧi phóng bӝ nhӟ khi nó thӵc hiӋn xong là chӭc năng chính cӫa ÿiӅu  
khiӇn bӝ nhӟ. ĈLӅu khiӇn bӝ nhӟ làm sao ÿҥt mөc tiêu sӱ dөng bӝ nhӟ càng tӕi ѭu càng tӕt. ĈiӅu khiӇn  
bӝ nhӟ trong chӃꢀÿӝꢀÿѫn chѭѫng trình là ÿѫn giҧn nhѭng trong chӃꢀÿӝꢀÿa chѭѫng trình thì hӃt sӭc phӭc  
tҥp v.v.  
Ĉӕi vӟi các bài toán ÿiӅu khiӇn trên ÿây, giҧi pháp cӫa hӋꢀÿLӅu hành thѭӡng theo các thuұt toán  
tӭc thӡi: thuұt toán có ÿӝ phӭc tҥp thӡi gian ÿa thӭc mà ÿҥt ÿѭӧc nghiӋm xҩp xӍ tӕi ѭu. Lý do căn bҧn  
cӫa viӋc chӑn các thuұt toán tӭc thӡi bҳt nguӗn tӯ mөc tiêu cӫa hӋꢀÿLӅu hành cҫn ÿҥt tӟi là tài nguyên  
cӫa hӋ thӕng, ÿһc biӋt là CPU, phҧi ÿѭӧc hѭӟng ÿích phөc vө cho chѭѫng trình ngѭӡi dùng.  
1.2.5 C̭u trúc cͯa h͏ꢀÿL͉u hành  
III.1 Các thành phҫn cӫa hӋ thӕng  
Quҧn lý tiӃn trình  
Mӝt chѭѫng trình không thӵc hiӋn ÿѭӧc gì cҧ nӃøu nhѭ nó không ÿѭӧc CPU thi hành. Mӝt ti͇n trình là  
mӝt chѭѫng trình ÿang ÿѭӧc thi hành, nhѭng ý nghƭa cӫa nó còn rӝng hѫn. Mӝt công viӋc theo lô là  
mӝt tiӃn trình. Mӝt chѭѫng trình ngѭӡi dùng chia xҿ thӡi gian là mӝt tiӃn trình, mӝt công viӋc cӫa hӋ  
thӕng nhѭ soopling xuҩt ra máy in cNJng là mӝt tiӃn trình.  
Tài li͏u l˱u hành n͡i b͡ - 14 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Mӝt tiӃn trình phҧi sӱ dөng tài nguyên nhѭ thӡi gian sӱ dөng CPU, bӝ nhӟ, tұp tin, các thiӃt bӏ nhұp  
xuҩt ÿӇ hoàn tҩt công viӋc cӫa nó. Các tài nguyên này ÿѭӧc cung cҩp khi tiӃn trình ÿѭӧc tҥo hay trong  
quá trình thi hành. Khi tiӃn trình ÿѭӧc tҥo, nó sӱ dөng rҩt nhiӅu tài nguyên vұt lý và luұn lý.cNJng nhѭ  
mӝt sӕ khӣi tҥo dӳ liӋu nhұp. Ví dө , khҧo sát tiӃn trình hiӇn thӏ trҥng thái cӫa tұp tin lên màn hình.  
Ĉҫu vào cӫa tiӃn trình là tên tұp tin, và tiӃn trình sӁ thӵc hiӋn nhӳng chӍ thӏ thích hӧp, thӵc hiӋn lӡi gӑi  
hӋ thӕng ÿӇ nhұn ÿѭӧc nhӳng thông tin mong muӕn và hiӇn thӏ nó lên màn hình. Khi tiӃn trình kӃt  
thúc, hӋꢀÿLӅûu hành sӁ tái tҥo lҥi các tài nguyên có thӇꢀÿѭӧc dùng lҥi..  
Mӝt tiӃn trình là hoҥt ÿӝng (active) hoàn toàn-ngѭӧc lҥi vӟi mӝt tұp tin trên ÿƭa là thөꢀÿӝng (passive)-  
vӟi mӝt bӝꢀÿӃm chѭѫng trình cho biӃt lӋnh kӃ tiӃp ÿѭӧc thi hành.ViӋc thi hành ÿѭӧc thӵc hiӋn theo cѫ  
chӃ tuҫn tӵ , CPU sӁ thi hành tӯ lӋnh ÿҫu ÿӃn lӋnh cuӕi.  
Mӝt tiӃn trình ÿѭӧc coi là mӝt ÿѫn vӏ làm viӋc cӫa hӋ thӕng. Mӝt hӋ thӕng có thӇ có nhiӅu tiӃn trình  
cùng lúc , trong ÿó mӝt sӕ tiӃn trình là cӫa hӋꢀÿLӅu hành, mӝt sӕ tiӃn trình là cӫa ngѭӡi sӱ dөng. các  
tiӃn trình này có thӇ diӉn ra ÿӗng thӡi.  
Vai trò cӫa hӋꢀÿLӅu hành trong viӋc quҧn lý tiӃn trình là :  
Tҥo và hӫy các tiӃn trình cӫa ngѭӡi sӱ dөng và cӫa hӋ thӕng.  
Ngѭng và thӵc hiӋn lҥi mӝt tiӃn trình.  
Cung cҩp cѫ chӃꢀÿӗng bӝ tiӃn trình.  
Cung cҩp cách thông tin giӳa các tiӃn trình.  
Cung cҩp cѫ chӃ kiӇm soát deadlock(khái niӋm này sӁꢀÿѭӧc trình bày trong chѭѫng II).  
Quҧn lý bӝ nhӟ chính :  
Trong hӋ thӕng máy tính hiӋn ÿҥi, b͡ nhͣ chính là trung tâm cӫa các thao tác, xӱ lý. Bӝ nhӟ chính có  
thӇ xem nhѭ mӝt mҧng kiӇu byte hay kiӇu word. Mӛi phҫn tӱꢀÿӅu có ÿӏa chӍ. Ĉó là nѫi lѭu dӳ liӋu  
ÿѭӧc CPU truy xuҩt mӝt cách nhanh chóng so vӟi các thiӃt bӏ nhұp/xuҩt. CPU ÿӑc nhӳng chӍ thӏ tӯ bӝ  
nhӟ chính. Các thiӃt bӏ nhұp/xuҩt cài ÿһt cѫ chӃ DMA(xem chѭѫng IV) cNJng ÿӑc và ghi dӳ liӋu trong  
bӝ nhӟ chính. Thông thѭӡng bӝ nhӟ chính chӭa các thiӃt bӏ mà CPU có thӇÿӏnh vӏ trӵc tiӃp. Ví dө  
CPU truy xuҩt dӳ liӋu tӯꢀ ÿƭa, nhӳng dӳ liӋu này ÿѭӧc chuyӇn vào bӝ nhӟ qua lӡi gӑi hӋ thӕng  
nhұp/xuҩt.  
Mӝt chѭѫng trình muӕn thi hành trѭӟc hӃt phҧi ÿѭӧc ánh xҥ thành ÿӏa chӍ tuyӋt ÿӕi và nҥp vào bӝ nhӟ  
chính.Khi chѭѫng trình thi hành, hӋ thӕng truy xuҩt các chӍ thӏ và dӳ liӋu cӫa chѭѫng trình trong bӝ  
nhӟ chính. Ngay cҧ khi tiӃn trình kӃt thúc , dӳ liӋu vүn còn trong bӝ nhӟ cho ÿӃn khi mӝt tiӃn trình  
khác ÿѭӧc ghi chӗng lên.  
ĈӇ tӕi ѭu hóa quá trình hoҥt ÿӝng cӫa CPU và tӕc ÿӝ cӫa máy tính, mӝt sӕ tiӃn trình ÿѭӧc lѭu giӳ  
trong bӝ nhӟ. Có rҩt nhiӅu kӃ hoҥch quҧn trӏ bӝ nhӟ do có nhiӅu ӭng dөng bӝ nhӟ khác nhau và hiӋu  
quҧ cӫa các thuұt toán phө thuӝc vào tùy tình huӕng cө thӇ. Lӵa chӑn mӝt thuұt toán cho mӝt hӋ thӕng  
ÿѭӧc mô tҧ trѭӟc phө thuӝc vào nhiӅu yӃu tӕ, ÿһc biӋt là phҫn cӭng cӫa hӋ thӕng.  
HӋꢀÿLӅu hành có nhӳng vai trò nhѭ sau trong viӋc quҧn lý bӝ nhӟ chính :  
u giӳ thông tin vӅ các vӏ trí trong bӝ nhӟꢀÿã ÿѭӧc sӱ dөng và ai sӱ dөng.  
Tài li͏u l˱u hành n͡i b͡ - 15 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
QuyӃt ÿӏnh tiӃn trình nào ÿѭӧc nҥp vào bӝ nhӟ chính, khi bӝ nhӟꢀÿã có thӇ dùng ÿѭӧc.  
Cҩp phát và thu hӗi bӝ nhӟ khi cҫn thiӃt.  
Quҧn lý bӝ nhӟ phө :  
Mөc tiêu chính cӫa hӋ thӕng máy tính là thi hành chѭѫng trình. Nhӳng chѭѫng trình vӟi dӳ liӋu truy  
xuҩt cӫa chúng phҧi ÿѭӧc ÿһt trong bӝ nhӟ chính trong suӕt quá trình thi hành. Nhѭng bӝ nhӟ chính  
quá nhӓꢀÿӇ có thӇ lѭu giӳ mӑi dӳ liӋu và chѭѫng trình, ngoài ra dӳ liӋu sӁ mҩt khi không còn ÿѭӧc  
cung cҩp năng lѭӧng. HӋ thӕng máy tính ngày nay cung cҩp h͏ th͙ng l˱u trͷ phͭ. Ĉa sӕ các máy tính  
ÿӅu dùng ÿƭa ÿӇ lѭu trӳ cҧ chѭѫng trình và dӳ liӋu. Hҫu nhѭ tҩt cҧ chѭѫng trình : chѭѫng trình dӏch,  
hӧp ngӳ, thӫ tөc, trình soҥn thҧo, ÿӏnh dҥng... ÿӅu ÿѭӧc lѭu trӳ trên ÿƭa cho tӟi khi nó ÿѭӧc thӵc hiӋn,  
nҥp vào trong bӝ nhӟ chính và cNJng sӱ dөng ÿƭa ÿӇ chӭa dӳ liӋu và kӃt quҧ xӱ lý. Vì vұy mӝt bӝ quҧn  
lý hӋ thӕng ÿƭa rҩt quan trӑng cho hӋ thӕng máy tính.  
Vai trò cӫa hӋꢀÿLӅu hành trong viӋc quҧn lý ÿƭa :  
Quҧn lý vùng trӕng trên ÿƭa.  
Ĉӏnh vӏ lѭu trӳ.  
Lұp lӏch cho ÿƭa.  
Vì hӋ thӕng ÿƭa ÿѭӧc sӱ dөng thѭӡng xuyên, nên nó phҧi ÿѭӧc dùng hiӋu quҧ.Tӕc ÿӝ cӫa toàn bӝ hӋ  
thӕng tuǤ thuӝc rҩt nhiӅu vào tӕc ÿӝ truy xuҩt ÿƭa.  
Quҧn lý hӋ thӕng nhұp xuҩt :  
Mӝt trong nhӳng mөc tiêu cӫa hӋꢀÿLӅu hành là che ḓu nhӳng ÿһc thù cӫa các thiӃt bӏ phҫn cӭng ÿӕi  
vӟi ngѭӡi sӱ dөng thay vào ÿó là mӝt lӟp thân thiӋn hѫn, ngѭӡi sӱ dөng dӇ thao tác hѫn. Mӝt hӋ thӕng  
nhұp/xuҩt bao gӗm :  
HӋ thӕng buffer caching.  
Giao tiӃp ÿLӅu khiӇn thiӃt bӏ (device drivers) tәng quát.  
BӝꢀÿLӅu khiӇn cho các thiӃt bӏ phҫn cӭng.  
ChӍ có device driver mӟi hiӇu ÿӃn cҩu trúc ÿһc thù cӫa thiӃt bӏ mà nó mô tҧ.  
Quҧn lý hӋ thӕng tұp tin :  
HӋ thӕng quҧn lý tұp tin là thành phҫn rõ ràng nhҩt trong hӋꢀÿLӅu hành. Máy tính có thӇ lѭu trӳ thông  
tin trong nhiӅu dҥng thiӃt bӏ vұt lý khác nhau : băng tӯ, ÿƭa tӯ, , ÿƭa quang, ... Mӛi dҥng có nhӳng ÿһc  
thù riêng vӅ mһt tә chӭc vұt lý. Mӛi thiӃt bӏ mӝt bӝ kiӇm soát nhѭ bӝꢀÿLӅu khiӇn ÿƭa (disk driver) và  
có nhӳng tính chҩt riêng. Nhӳng tính chҩt này là tӕc ÿӝ, khҧ năng lѭu trӳ, tӕc ÿӝ truyӅn dӳ liӋu và cách  
truy xuҩt.  
ĈӇ cho viӋc sӱ dөng hӋ thӕng máy tính thuұn tiӋn, hӋꢀÿLӅu hành cung cҩp mӝt cái nhìn logic ÿӗng nhҩt  
vӅ hӋ thӕng lѭu trӳ thông tin. HӋꢀÿLӅu hành ÿӏnh nghƭa mӝt ÿѫn vӏ lѭu trӳ logic là tұp tin. HӋꢀÿLӅu hành  
tҥo mӝt ánh xҥ tӯ tұp tin ÿӃn vùng thông tin trên ÿƭa và truy xuҩt nhӳng tұp tin này thông qua thiӃt bӏ  
u trӳ.  
Tài li͏u l˱u hành n͡i b͡ - 16 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Mӝt tұp tin là mӝt tұp hӧp nhӳng thông tin do ngѭӡi tҥo ra nó xác ÿӏnh. Thông thѭӡng mӝt tұp tin ÿҥi  
diӋn cho mӝt chѭѫng trình và dӳ liӋu. Dӳ liӋu cӫa tұp tin có thӇ là sӕ, là ký tӵ, hay ký sӕ. Tұp tin  
thѭӡng có dҥng tӵ do, nhѭ tұp tin văn bҧn, nhӏ phân...(là tұp tin chӭa dãy các bit). (Xem bài VIII)  
Vai trò cӫa hӋꢀÿLӅu hành trong viӋc quҧn lý tұp tin :  
Tҥo và xoá mӝt tұp tin.  
Tҥo và xoá mӝt thѭ mөc.  
Hӛ trӧ các thao tác trên tұp tin và thѭ mөc.  
Ánh xҥ tұp tin trên hӋ thӕng lѭu trӳ phө.  
Backup tұp tin trên các thiӃt bӏ lѭu trӳ.  
HӋ thӕng bҧo vӋ :  
Trong mӝt hӋ thӕng nhiӅu ngѭӡi sӱ dөng và cho phép nhiӅu tiӃn trình diӉn ra ÿӗng thӡi, các tiӃn trình  
phҧi ÿѭӧc bҧo vӋꢀÿӕi vӟi nhӳng hoҥt ÿӝng khác.Do ÿó, hӋ thӕng cung cҩp cѫ chӃꢀÿӇꢀÿҧm bҧo rҵng tұp  
tin, bӝ nhӟ, CPU, và nhӳng tài nguyên khác chӍꢀÿѭӧc truy xuҩt bӣi nhӳng tiӃn trình có quyӅn. Ví dө,  
bӝ nhӟꢀÿҧm bҧo rҵng tiӃn trình chӍꢀÿѭӧc thi hành trong phҥm vi ÿӏa chӍ cӫa nó. Bӝ thӡi gian ÿҧm bҧo  
rҵng không có tiӃn trình nào ÿӝc chiӃm CPU. Cuӕi cùng các thiӃt bӏ ngoҥi vi cNJng ÿѭӧc bҧo vӋ.  
H͏ th͙ng b̫o v͏ là mӝt cѫ chӃ kiӇm soát quá trình truy xuҩt cӫa chѭѫng trình, tiӃn trình, hoһc ngѭӡi  
sӱ dөng vӟi tài nguyên cӫa hӋ thӕng. Cѫ chӃ này cNJng cung cҩp cách thӭc ÿӇ mô tҧ lҥi mӭc ÿӝ kiӇm  
soát.  
HӋ thӕng bҧo vӋ cNJng làm tăng ÿӝ an toàn khi kiӇm tra lӛi trong giao tiӃp giӳa nhӳng hӋ thӕng nhӓ bên  
trong.  
HӋ thӕng cѫ chӃ dòng lӋnh :  
Mӝt trong nhӳng phҫn quan trӑng cӫa chѭѫng trình hӋ thӕng trong mӝt hӋꢀÿLӅu hành là cѫ chӃ dòng  
l͏nh, ÿó là giao tiӃp giӳa ngѭӡi sӱ dөng và hӋꢀÿLӅu hành. Mӝt sӕ hӋꢀÿLӅu hành ÿһt cѫ chӃ dòng lӋnh  
bên trong hҥt nhân, sӕ khác nhѭ MS-DOS và UNIX thì xem hӋꢀÿLӅu hành nhѭ là mӝt chѭѫng trình ÿһt  
biӋt, ÿѭӧc thi hành khi các công viӋc bҳt ÿҫu hoһc khi ngѭӡi sӱ dөng login lҫn ÿҫu tiên.  
Các lӋnh ÿѭa vào hӋꢀÿLӅu hành thông qua b͡ꢀÿL͉u khi͋n l͏nh. Trong các hӋ thӕng chia xҿ thӡi gian mӝt  
chѭѫng trình có thӇꢀÿӑc và thông dӏch các lӋnh ÿLӅu khiӇn ÿѭӧc thӵc hiӋn mӝt cách tӵꢀÿӝng. Chѭѫng  
trình này thѭӡng ÿѭӧc gӑi là bӝ thông dӏch ÿLӅu khiӇn card, cѫ chӃ dòng lӋnh hoһc Shell. Chӭc năng  
cӫa nó rҩt ÿѫn giҧn ÿó là lҩy lӋnh kӃ tiӃp và thi hành.  
Mӛi hӋꢀÿLӅu hành sӁ có nhӳng giao tiӃp khác nhau, dҥng ÿѫn giҧn theo cѫ chӃ dòng lӋnh, dҥng thân  
thiӋn vӟi ngѭӡi sӱ dөng nhѭ giao diӋn cӫa Macintosh có các biӇu tѭӧng, cӱa sә thao tác dùng chuӝt.  
Các lӋnh có quan hӋ vӟi viӋc tҥo và quҧn lý các tiӃn trình, kiӇm soát nhұp xuҩt, quҧn lý bӝ lѭu trӳ phө,  
quҧn lý bӝ nhӟ chính, truy xuҩt hӋ thӕng tұp tin và cѫ chӃ bҧo vӋ.  
Tài li͏u l˱u hành n͡i b͡ - 17 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
III.2 Các dӏch vө cӫa hӋꢀÿLӅu hành  
HӋꢀÿLӅu hành cung cҩp mӝt môi trѭӡng ÿӇ thi hành các chѭѫng trình, bҵng cách cung cҩp các dӏch vө  
cho chѭѫng trình và cho ngѭӡi sӱ dөng. Các dӏch vө này trên mӛi hӋ thӕng là khác nhau nhѭng cNJng  
có nhӳng lӟp chung. Các dӏch vө này giúp cho các lұp trình viên thuұn tiӋn hѫn và viӋc lұp trình dӇ  
dàng hѫn.  
Thi hành ch˱˯ng trình : hӋ thӕng phҧi có khҧ năng nҥp chѭѫng trình vào bӝ nhӟ và thi hành nó.  
Chѭѫng trình phҧi chҩm dӭt thi hành theo cách thông thѭӡng hay bҩt thѭӡng (có lӛi).  
Thao tác nh̵p xṷt : Mӝt chѭѫng trình thi hành có thӇ yêu cҫu nhұp xuҩt. Nhұp xuҩt này có thӇ là  
tұp tin hay thiӃt bӏ. Ĉӕi vӟi thiӃt bӏ có mӝt hàm ÿһc biӋt ÿѭӧc thi hành. ĈӇ tăng hiӋu quҧ, ngѭӡi sӱ  
dөng không truy xuҩt trӵc tiӃp các thiӃt bӏ nhұp xuҩt mà thông qua cách thӭc do hӋÿLӅu hành cung  
cҩp.  
Thao tác trên h͏ th͙ng t̵p tin .  
Thông tin : có nhiӅu tình huӕng mӝt tiӃn trình cҫn trao ÿәi thông tin vӟi mӝt tiӃn trình khác. Có hai  
cách thӵc hiӋn: Mӝt là thӵc hiӋn thay thӃ tiӃn trình trên cùng máy tính, hai là thay thӃ tiӃn trình trên hӋ  
thӕng khác trong hӋ thӕng mҥng. Thông tin có thӇꢀÿѭӧc cài ÿһt qua chia xҿ bӝ nhӟ, hoһc bҵng kӻ thuұt  
chuyӇn thông ÿLӋp. ViӋc chuyӇn thông tin ÿѭӧc thӵc hiӋn bӣi hӋꢀÿLӅu hành.  
Phát hi͏n l͟i : hӋꢀÿLӅu hành phҧi có khҧ năng báo lӛi. Lӛi xҧy ra có thӇ do CPU, bӝ nhӟ, trong thiӃt bӏ  
nhұp xuҩt, … hay trong các chѭѫng trình. Ĉӕi vӟi mӛi dҥng lӛi, hӋꢀÿLӅu hành sӁ có cách giҧi quyӃt  
Wѭѫng ӭng.  
III.3 Lӡi gӑi hӋ thӕng  
Lͥi g͕i h͏ th͙ng cung cҩp mӝt giao tiӃp giӳa tiӃn trình và hӋꢀÿLӅu hành. Lӡi gӑi này cNJng nhѭ các lӋnh  
hӧp ngӳ.  
Mӝt sӕ hӋ thӕng cho phép lӡi gӑi hӋ thӕng ÿѭӧc thӵc hiӋn tӯ cҩp lұp trình ngôn ngӳ cҩp cao, nhѭ các  
hàm và lӡi gӑi hàm. Nó có thӇ phát sinh lӡi gӑi tӯ các thӫ tөc hay gӑi trӵc tiӃp trong dòng.  
ĈӇ hiӇu quá trình hoҥt ÿӝng cӫa lӡi gӑi hӋ thӕng chúng ta cùng khҧo sát mӝt chѭѫng trình nhӓ dùng ÿӇ  
ÿӑc dӳ liӋu tӯ mӝt tұp tin chép qua tұp tin khác. Dӳ liӋu nhұp ÿҫu tiên cӫa cӫa chѭѫng trình là tên cӫa  
hai tұp tin : tұp tin nhұp và tұp tin xuҩt. Tên này ÿѭӧc mô tҧ bҵng nhiӅu cách tùy thuӝc vào thiӃt kӃ hӋ  
ÿiӅu hành nhѭ : chѭѫng trình yêu cҫu ngѭӡi sӱ dөng cho biӃt tên cӫa hai tұp tin, hӑ cNJng có thӇ cung  
cҩp bҵng cách lӵa chӑn vӟi chuӝt. Khi có tên cӫa hai tұp tin, chѭѫng trình mӣ tұp tin nhұp và tҥo tұp  
tin xuҩt. Mӛi thao tác này ÿѭӧc thӵc hiӋn bӣi nhӳng lӡi gӑi hӋ thӕng khác. CNJng có nhӳng trѭӡng hӧp  
phát sinh lӛi : Khi chѭѫng trình mӣ tұp tin nhұp, có thӇ xҧy ra trѭӡng hӧp không có tұp tin có tên nhѭ  
mô tҧ hoһc tұp tin bӏ cҩm truy cұp. Trong trѭӡng hӧp này chѭѫng trình phҧi xuҩt thông ÿLӋp lên màn  
hình. NӃu tұp tin nhұp tӗn tҥi, phҧi tҥo tұp tin mӟi. HӋ thӕng phҧi kiӇm tra tiӃp xem ÿã có tұp tin xuҩt  
tӗn tҥi không và sӁ có nhӳng lӡi gӑi hӋ thӕng tѭѫng ӭng ÿӇ giҧi quyӃt hoһc là hӫy tiӃn trình, hai là xóa  
tұp tin ÿã tӗn tҥi và tҥo tұp tin mӟi. Sau khi ÿã thiӃt lұp xong tұp tin, hӋ thӕng tiӃp tөc tҥo vòng lһp ÿӑc  
dӳ liӋu tӯ tұp tin nhұn và ghi lên tұp tin xuҩt. Mӛi bѭӟc ÿӅu có kiӇm tra lӛi. Sau khi chép xong, chѭѫng  
trình sӁꢀÿóng hai tұp tin lҥi (dùng mӝt lӡi gӑi hӋ thӕng khác), xuҩt thông báo lên màn hình (dùng lӡi  
gӑi hӋ thӕng) cuӕi cùng chҩm dӭt chѭѫng trình (lӡi gӑi hӋ thӕng cuӕi cùng).  
Trong các ngôn ngӳ lұp trình cҩp cao, ngѭӡi sӱ dөng không cҫn quan tâm ÿӃn chi tiӃt mà chӍ cҫn thông  
qua các hàm hay các lӋnh ÿӇ thӵc hiӋn.Lӡi gӑi hӋ thӕng có thӇ diӉn ra theo mӝt cách khác. KiӇu và  
khӕi lѭӧng thông tin tùy thuӝc vào hӋ thӕng và lúc gӑi.  
Tài li͏u l˱u hành n͡i b͡ - 18 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Có ba phѭѫng pháp ÿѭӧc sӱ dөng ÿӇ chuyӇn tham sӕ cho hӋꢀÿLӅu hành. Cách ÿѫn giҧn nhҩt là chuyӇn  
tham sӕ vào thanh ghi. NӃu có nhiӅu tham sӕ, nó sӁꢀÿѭӧc lѭu trӳ trong khӕi hoһc bҧng trong bӝ nhӟ.  
Cách cuӕi cùng là dùng cѫ chӃ stack.  
Lӡi gӑi hӋ thӕng có thӇꢀÿѭӧc chia thành các loҥi : kiӇm soát tiӃn trình, thao tác tұp tin, thao tác thiӃt bӏ,  
thông tin.  
III.4 Cҩu trúc hӋ thӕng  
Cҩu trúc ÿѫn giҧn  
Cҩu trúc này trong mӝt sӕ hӋ thӕng thѭѫng mҥi và không có cҩu trúc ÿѭӧc ÿӏnh nghƭa tӕt. Thông  
thѭӡng hӋꢀÿLӅu hành bҳt ÿҫu là mӝt hӋ thӕng nhӓ, ÿѫn giҧn và có giӟi hҥn.  
MS-DOS là mӝt hӋꢀÿLӅu hành có cҩu trúc ÿѫn giҧn, nó cung cҩp nhӳng chӭc năng cҫn thiӃt nhҩt trong  
mӝt không gian nhӓ nhҩt do sӵ giӟi hҥn cӫa phҫn cӭng mà nó chҥy trên ÿó và không chia thành nhӳng  
ÿѫn thӇ rõ rӋt.  
Hình 1.4 Cҩu trúc cӫa MS-DOS  
Mһc dù MS-DOS có cҩu trúc nhѭng giӳa giao diӋn và chӭc năng không có sӵ phân chia rõ rӋt. Các  
chѭѫng trình ӭng dөng có thӇ truy xuҩt trӵc tiӃp các thӫ tөc nhұp xuҩt cѫ bҧn và ghi trӵc tiӃp lên màn  
hình hay bӝꢀÿLӅu khiӇn ÿƭa.  
Mӝt hӋꢀÿLӅu hành cNJng có cҩu trúc ÿѫn giҧn là UNIX vӟi nhӳng version ÿҫu tiên. Cҩu trúc cӫa nó chӍ  
bao gӗm hai phҫn : hҥt nhân và các chѭѫng trình hӋ thӕng. Hҥt nhân ÿѭӧc chia thành mӝt chuӛi giao  
tiӃp và device driver(bӝꢀÿLӅu khiӇn thiӃt bӏ, xem bài XI).  
Tài li͏u l˱u hành n͡i b͡ - 19 -  
Giáo trình Nguyên lý h͏ꢀÿL͉u hành – KS. Trҫn Ngӑc Thái, môn Tin h͕c – Ĉ̩i h͕c DL H̫i Phòng  
Hình 1.5 Cҩu trúc cӫa UNIX  
Nhӳng gì dѭӟi lӡi gӑi hӋ thӕng và trên phҫn cӭng là h̩t nhân. Hҥt nhân cung cҩp hӋ thӕng tұp tin, lұp  
lӏch CPU, quҧn trӏ bӝ nhӟ và nhӳng chӭc năng hӋꢀÿLӅu hành khác thông qua lӡi gӑi hӋ thӕng. Tóm lҥi  
là toàn bӝ chӭc năng cӫa hӋ thӕng ÿѭӧc kӃt hӧp trong mӝt lӟp. Nhӳng chѭѫng trình hӋ thӕng dùng  
nhӳng lӡi gӑi hӋ thӕng ÿѭӧc hӛ trӧ bӣi hҥt nhân ÿӇ cung cҩp nhӳng chӭc năng hӳu ích nhѭ biên dӏch  
và thao tác tұp tin. Lӡi gӑi hӋ thӕng ÿӏnh nghƭa mӝt giao tiӃp lұp trình cho UNIX, ÿó là tұp hӧp nhӳng  
chѭѫng trình hӋ thӕng thông thѭӡng trong ÿó có ÿӏnh nghƭa giao tiӃp vӟi ngѭӡi sӱ dөng.  
Cҩu trúc theo lӟp  
Hình 1.5 Cҩu trúc cӫa UNIX  
Nhӳng version mӟi cӫa UNIX ng phӭc tҥp hѫn, do ÿó hӋꢀÿLӅu hành  
ÿѭӧc chia thành nhiӅu phҫn nhӓ hѫn.  
Bҵng cách sӱ dөng kӻ thuұt topdown, nhӳng chӭc năng và ÿһc tính cӫa hӋ thӕng ÿѭӧc chia làm nhiӅu  
thành phҫn nhӓ. Che dҩu thông tin, không cho chѭѫng trình cӫa ngѭӡi sӱ dөng có thӇ cài ÿһt nhӳng  
hàm truy xuҩt cҩp thҩp , thay vào ÿó là nhӳng lӟp giao tiӃp bên trong.  
HӋÿLӅu hành ÿѭӧc chia thành nhiӅu lӟp. Lӟp dѭӟi cùng là phҫn cӭng, lӟp trên cùng là giao tiӃp vӟi  
ngѭӡi sӱ dөng. Lӟp hӋꢀÿLӅu hành ÿѭӧc cài ÿһt thành nhӳng ÿӕi tѭӧng trӯu tѭӧng. Thông thѭӡng mӝt  
lӟp cӫa hӋꢀÿLӅu hành bao gӗm mӝt sӕ cҩu trúc dӳ liӋu và các hàm có thӇꢀÿѭӧc gӑi bӣi lӟp ӣ trên và bҧn  
thân nó gӑi nhӳng chӭc năng cӫa lӟp bên dѭӟi. Mӛi lӟp cài ÿһt chӍ sӱ dөng nhӳng thao tác do lӟp dѭӟi  
cung cҩp. Mӝt lӟp cNJng không cҫn biӃt hӋꢀÿLӅu hành ÿѭӧc cài ÿһt nhѭ thӃ nào, nó chӍ cҫn biӃt nhӳng  
thao tác này làm gì thôi.  
Cҩu trúc lӟp này lҫn ÿҫu tiên ÿѭӧc thiӃt kӃ và áp dөng cho hӋꢀÿLӅu hành THE (Technische Hogeschool  
Eindhoven). HӋ thӕng này ÿѭӧc chia thành sáu lӟp nhѭ hình sau:  
Hình 1.6 Cҩu trúc cӫa hӋꢀÿLӅu hành THE  
Tài li͏u l˱u hành n͡i b͡ - 20 -  
Tải về để xem bản đầy đủ
pdf 50 trang yennguyen 13/04/2022 6920
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Nguyên lý hệ điều hành (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_nguyen_ly_he_dieu_hanh_phan_1.pdf