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ӻ
Vѭ 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 Kѫ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ӕ có ÿӝ 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ӟ là ÿӏ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ӏꢀÿLӅ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ӵꢀÿLӅ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͏ꢀÿL͉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ҧ
Kѫ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 ÿó (nKѭ hӋꢀÿ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ӕ môÿ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
Kѫ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 cc ÿ̩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ӋꢀÿLӅ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ó 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ӋꢀÿLӅ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ҿ và 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͵ lý thông thѭӡng sӱ dөng cách ÿa x͵ lý ÿ͙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ӱ lý ÿѭӧ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ӱ lý ÿӕ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ӟ
và ÿӗ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.
7ă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 thc
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 thc ÿѭӧ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ӕ môÿ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
môÿ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
môÿ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ӟ có ÿӏ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ӏ có 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ӏ
Oѭ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 đủ
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:
- giao_trinh_nguyen_ly_he_dieu_hanh_phan_1.pdf