Các thành phҫn phҫn cӭng cѫ bҧn ÿѭӧc nҥp vào nhұp/xuҩt là các bus, các bӝ
ÿiӅu khiӇn thiӃt bӏ, và chính các thiӃt bӏ. Công viӋc chuyӇn dӳ liӋu giӳa thiӃt bӏ và bӝ
nhӟ chính ÿѭӧc thӵc hiӋn bӣi CPU khi nhұp/xuҩt ÿѭӧc lұp trình, hay ÿѭӧc chuyӇn tҧi
tӟi bӝ ÿiӅu khiӇn DMA. Module nhân ÿiӅu khiӇn mӝt thiӃt bӏ là mӝt trình ÿiӅu khiӇn
thiӃt bӏ. Giao diӋn lӡi gӑi hӋ thӕng cung cҩp tӟi ӭng dөng ÿѭӧc thiӃt kӃ ÿӇ quҧn lý
nhiӅu chӫng loҥi cѫ bҧn cӫa phҫn cӭng, sockets mҥng và bӝ ÿӃm thӡi gian ÿӃn ÿѭӧc
lұp trình.
HӋ con nhұp/xuҩt cӫa nhân cung cҩp nhiӅu dӏch vө. Các dӏch vө này là ÿӏnh
thӡi biӇu nhұp/xuҩt, vùng ÿӋm, vùng chӭa, quҧn lý lӛi và ÿһt trѭӟc thiӃt bӏ. Mӝt dӏch
vө khác là dӏch tên, ÿӇ tҥo nӕi kӃt giӳa các thiӃt bӏ phҫn cӭng và tên tұp tin tѭӧng
trѭng ÿѭӧc dùng bӣi ӭng dөng. Nó liên quan nhiӅu cҩp ánh xҥ mà dӏch tӯ tên chuӛi
ký tӵ tӟi mӝt trình ÿiӅu khiӇn thiӃt bӏ xác ÿӏnh và ÿӏa chӍ thiӃt bӏ và sau ÿó tӟi ÿӏa chӍ
vұt lý cӫa cәng nhұp/xuҩt hay bӝ ÿiӅu khiӇn bus
Các lӡi gӑi hӋ thӕng nhұp/xuҩt tính chi phí theo thuұt ngӳ tiêu tӕn CPU vì
nhiӅu lӟp phҫn mӅm giӳa thiӃt bӏ vұt lý và ӭng dөng. Các lӟp này ngө ý chi phí
chuyӇn ngӳ cҧnh ÿӇ ÿi qua phҥm vi bҧo vӋ cӫa nhân, cӫa tín hiӋu và bӝ quҧn lý ngҳt
ÿӇ phөc vө các thiӃt bӏ nhұp/xuҩt, và cӫa tҧi trên CPU và hӋ thӕng bӝ nhӟ ÿӇ chép dӳ
liӋu giӳa vùng ÿӋm nhân và không gian ӭng dөng
125 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 987 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình hệ điều hành – V1.0 - Deadlock, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ҩp phát nhiӅu không gian hѫn và
chҥy chѭѫng trình lҥi. ViӋc lһp này có thӇ gây ra chi phí. ĈӇ ngăn chһn chúng, ngѭӡi
dùng sӁ mô phӓng nhiӅu hѫn lѭӧng không gian ÿѭӧc yêu cҫu. ĈiӅu này dүn ÿӃn
không gian bӏ lãng phí.
Mӝt khҧ năng khác là tìm mӝt lӛ trӕng lӟn hѫn, chép nӝi dung cӫa tұp tin tӟi
không gian trӕng mӟi, và giҧi phóng không gian trѭӟc ÿó. Mӝt loҥt các hoҥt ÿӝng này
có thӇ ÿѭӧc lһp lҥi vӟi ÿiӅu kiӋn là không gian tӗn tҥi mһc dù nó tiêu tӕn nhiӅu thӡi
gian. Tuy nhiên, trong trѭӡng hӧp này ngѭӡi dùng không bao giӡ yêu cҫu ÿѭӧc thông
báo vӅ nhӳng gì ÿang xҧy ra; hӋ thӕng tiӃp tөc mһc dù vҩn ÿӅ phát sinh.
Ngay cҧ nӃu toàn bӝ không gian ÿѭӧc yêu cҫu cho tұp tin ÿѭӧc biӃt trѭӟc, cҩp phát
trѭӟc là không ÿӫ. Mӝt tұp tin sӁ lӟn lên trong khoҧng thӡi gian dài phҧi ÿѭӧc cҩp
phát ÿӫ không gian cho kích thѭӟc cuӕi cùng cӫa nó mһc dù không gian ÿó có thӇ
không ÿѭӧc dùng cho khoҧng thӡi gian dài. Do ÿó, tұp tin có lѭӧng lӟn phân mãnh
trong.
ĈӇ tӕi thiӇu các khó khăn này, mӝt sӕ hӋ ÿiӅu hành dùng mӝt cѫ chӃ cҩp phát
kӅ ÿѭӧc hiӋu chӍnh. Trong cѫ chӃ này ÿoҥn không gian kӅ ÿѭӧc cҩp phát trѭӟc và sau
ÿó khi lѭӧng không gian ÿó không ÿӫ lӟn, mӝt ÿoҥn không gian kӅ khác, mӝt ÿo̩n
mͧ r͡ng (extent), ÿѭӧc thêm vào cҩp phát ban ÿҫu. Sau ÿó, vӏ trí cӫa các khӕi tұp tin
ÿѭӧc ghi lҥi nhѭ mӝt vӏ trí và mӝt bӝ ÿӃm khӕi cӝng vӟi mӝt liên kӃt tӟi khӕi ÿҫu tiên
cӫa ÿoҥn mӣ rӝng tiӃp theo. Trên mӝt sӕ hӋ thӕng, ngѭӡi sӣ hӳu tұp tin có thӇ ÿһt
kích thѭӟc ÿoҥn mӣ rӝng, nhѭng viӋc ÿһt này có thӇ không hiӋu quҧ nӃu ngѭӡi sӣ hӳu
không ÿúng. Phân mãnh trong vүn còn là vҩn ÿӅ nӃu ÿoҥn mӣ rӝng quá lӟn và phân
mãnh ngoài có thӇ là vҩn ÿӅ khi các ÿoҥn mӣ rӝng có kích thѭӟc khác nhau ÿѭӧc cҩp
phát và thu hӗi.
VI.2 Cҩp phát liên kӃt
Cҩp phát liên kӃt giҧi quyӃt vҩn ÿӅ cӫa cҩp phát kӅ. Vӟi cҩp phát liên kӃt, mӛi
tұp tin là mӝt danh sách các khӕi ÿƭa ÿѭӧc liên kӃt; các khӕi ÿƭa có thӇ ÿѭӧc phân tán
khҳp nѫi trên ÿƭa. Thѭ mөc chӭa mӝt con trӓ chӍ tӟi khӕi ÿҫu tiên và các khӕi cuӕi
cùng cӫa tұp tin. Thí dө, mӝt tұp tin có 5 khӕi có thӇ bҳt ÿҫu tҥi khӕi sӕ 9, tiӃp tөc là
khӕi 16, sau ÿó khӕi 1, khӕi 10 và cuӕi cùng khӕi 25 (nhѭ hình X-6). Mӛi khӕi chӭa
mӝt con trӓ chӍ tӟi khӕi kӃ tiӃp. Các con trӓ này không ÿѭӧc làm sҷn dùng cho ngѭӡi
dùng. Do ÿó, nӃu mӛi khӕi là 512 bytes, và ÿӏa chӍ ÿƭa (con trӓ) yêu cҫu 4 bytes thì
phҫn chӭa dӳ liӋu cӫa khӕi là 508 bytes.
ĈӇ tҥo mӝt tұp tin mӟi, chúng ta ÿѫn giҧn tҥo mӝt mөc tӯ mӟi trong thѭ mөc.
Vӟi cҩp phát liên kӃt, mӛi mөc tӯ thѭ mөc có mӝt con trӓ chӍ tӟi khӕi ÿƭa ÿҫu tiên cӫa
tұp tin. Con trӓ này ÿѭӧc khӣi tҥo tӟi nil (giá trӏ con trӓ cuӕi danh sách) ÿӇ chӍ mӝt
tұp tin rӛng. Trѭӡng kích thѭӟc cNJng ÿѭӧc ÿһt tӟi 0. Mӝt thao tác viӃt tӟi tұp tin làm
mӝt khӕi trӕng ÿѭӧc tìm thҩy bҵng hӋ thӕng quҧn lý không gian trӕng, sau ÿó khӕi
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 231
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
mӟi này ÿѭӧc viӃt tӟi và ÿѭӧc liên kӃt tӟi cuӕi tұp tin. ĈӇ ÿӑc mӝt tұp tin, chúng ta
ÿѫn giҧn ÿӑc các khӕi bҵng cách lҫn theo các con trӓ tӯ khӕi này tӟi khӕi khác.
Không có sӵ phân mãnh ngoài vӟi cҩp phát liên kӃt, và bҩt cӭ khӕi trӕng trên
danh sách không gian trӕng có thӇ ÿѭӧc dùng ÿӇ thoҧ mãn yêu cҫu. Kích thѭӟc cӫa
mӝt tұp tin không cҫn ÿѭӧc khai báo khi tұp tin ÿó ÿѭӧc tҥo. Mӝt tұp tin có thӇ tiӃp
tөc lӟn lên vӟi ÿiӅu kiӋn là các khӕi trӕng sҷn có. Do ÿó, nó không bao giӡ cҫn thiӃt
ÿӇ hӧp nhҩt không gian trӕng.
Hình 0-6 cҩp phát không gian ÿƭa liên kӃt
Tuy nhiên, cҩp phát liên kӃt có mӝt vài nhѭӧc ÿiӇm. Vҩn ÿӅ chӫ yӃu là nó có
thӇ ÿѭӧc dùng hiӋu quҧ chӍ cho các tұp tin truy xuҩt tuҫn tӵ. ĈӇ tìm khӕi thӭ i cӫa tұp
tin, chúng ta phҧi bҳt ÿҫu tҥi ÿiӇm bҳt ÿҫu cӫa tұp tin ÿó, và lҫn theo con trӓ cho ÿӃn
khi chúng ta nhұn ÿѭӧc khӕi thӭ i. Mӛi truy xuҩt tӟi con trӓ yêu cҫu mӝt thao tác ÿӑc
ÿƭa, và ÿôi khi là mӝt tìm kiӃm ÿƭa. Do ÿó, nó không ÿӫ hӛ trӧ mӝt khҧ năng truy xuҩt
trӵc tiӃp cho các tұp tin cҩp phát liên kӃt.
Mӝt nhѭӧc ÿiӇm khác cӫa cҩp phát liên kӃt là không gian ÿѭӧc yêu cҫu cho
các con trӓ. NӃu mӝt con trӓ yêu cҫu 4 bytes cӫa khӕi 512 bytes thì 0.77% cӫa ÿƭa
ÿѭӧc dùng cho các con trӓ thay vì là thông tin.
Mӝt giҧi pháp thông thѭӡng ÿӇ giҧi quyӃt vҩn ÿӅ này là tұp hӧp các khӕi vào
các nhóm (clusters) và cҩp phát các nhóm hѫn là các khӕi. Thí dө, hӋ thӕng tұp tin có
thӇ ÿӏnh nghƭa nhóm gӗm 4 khӕi và thao tác trên ÿƭa chӍ trong ÿѫn vӏ nhóm thì các
con trӓ dùng % nhӓ hѫn cӫa không gian cӫa tұp tin. Phѭѫng pháp này cho phép ánh
xҥ khӕi luұn lý tӟi vұt lý vүn còn ÿѫn giҧn, nhѭng cҧi tiӃn thông lѭӧng ÿƭa và giҧm
không gian ÿѭӧc yêu cҫu cho cҩp phát khӕi và quҧn lý danh sách trӕng. Chi phí cӫa
tiӃp cұn này là tăng phân mãnh trong vì nhiӅu không gian hѫn bӏ lãng phí nӃu mӝt
nhóm chӍ ÿҫy mӝt phҫn hѫn là mӝt khӕi ÿҫy mӝt phҫn. Các nhóm có thӇ ÿѭӧc dùng
ÿӇ cҧi tiӃn thӡi gian truy xuҩt ÿƭa cho nhiӅu giҧi thuұt khác nhau vì thӃ chúng ÿѭӧc
dùng trong hҫu hӃt các hӋ ÿiӅu hành.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 232
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Mӝt vҩn ÿӅ khác cӫa cҩp phát liên kӃt là khҧ năng tin cұy. Vì các tұp tin ÿѭӧc
liên kӃt vӟi nhau bӣi các con trӓ ÿѭӧc phân tán khҳp ÿƭa, xem xét ÿiӅu gì xҧy ra nӃu
mӝt con trӓ bӏ mҩt hay bӏ phá hӓng. Mӝt con bӑ (bug) trong phҫn mӅm hӋ ÿiӅu hành
hay lӛi phҫn cӭng ÿƭa có thӇ dүn tӟi viӋc chӑn con trӓ sai. Lӛi này có thӇ dүn tӟi viӋc
liên kӃt vào danh sách không gian trӕng hay vào mӝt tұp tin khác. Các giҧi pháp mӝt
phҫn là dùng các danh sách liên kӃt ÿôi hay lѭu tên tұp tin và sӕ khӕi tѭѫng ÿӕi trong
mӛi khӕi; tuy nhiên, các cѫ chӃ này yêu cҫu nhiӅu chi phí hѫn cho mӛi tұp tin.
Mӝt thay ÿәi quan trӑng trên phѭѫng pháp cҩp phát liên kӃt là dùng bҧng cҩp
phát tұp tin (file allocation table-FAT). ĈiӅu này ÿѫn giҧn nhѭng là phѭѫng pháp
cҩp phát không gian ÿƭa hiӋu quҧ ÿѭӧc dùng bӣi hӋ ÿiӅu hành MS-DOS và OS/2. Mӝt
phҫn ÿƭa tҥi phҫn bҳt ÿҫu cӫa mӛi phân khu ÿѭӧc thiӃt lұp ÿӇ chӭa bҧng này. Bҧng
này có mӝt mөc tӯ cho mӛi khӕi ÿƭa và ÿѭӧc lұp chӍ mөc bӣi khӕi ÿƭa. FAT ÿѭӧc
dùng nhiӅu nhѭ là mӝt danh sách liên kӃt. Mөc tӯ thѭ mөc chӭa sӕ khӕi cӫa khӕi ÿҫu
tiên trong tұp tin. Mөc tӯ bҧng ÿѭӧc lұp chӍ mөc bӣi sӕ khӕi ÿó sau ÿó chӭa sӕ khӕi
cӫa khӕi tiӃp theo trong tұp tin. Chuӛi này tiӃp tөc cho ÿӃn khi khӕi cuӕi cùng, có giá
trӏ cuӕi tұp tin ÿһc biӋt nhѭ mөc tӯ bҧng. Các khӕi không ÿѭӧc dùng ÿѭӧc hiӇn thӏ bӣi
giá trӏ bҧng 0. Cҩp phát mӝt khӕi mӟi tӟi mӝt tұp tin là mӝt vҩn ÿӅ ÿѫn giҧn cho viӋc
tìm mөc tӯ bҧng có giá trӏ 0 ÿҫu tiên và thay thӃ giá trӏ kӃt thúc tұp tin trѭӟc ÿó vӟi
ÿӏa chӍ cӫa khӕi mӟi. Sau ÿó, sӕ 0 ÿѭӧc thay thӃ vӟi giá trӏ kӃt thúc tұp tin. Mӝt thí dө
minh hoҥ là cҩu trúc FAT cӫa hình X-7 cho mӝt tұp tin chӭa các khӕi ÿƭa 217, 618 và
339.
Hình 0-7 Bҧng cҩp phát tұp tin
Cѫ chӃ cҩp phát FAT có thӇ dүn tӟi sӕ lѭӧng lӟn tìm kiӃm ÿҫu ÿӑc ÿƭa nӃu
FAT không ÿѭӧc lѭu trӳ(cache). Ĉҫu ÿӑc ÿƭa phҧi di chuyӇn tӟi ÿiӇm bҳt ÿҫu cӫa
phân khu ÿӇ ÿӑc FAT và tìm vӏ trí khӕi sau ÿó di chuyӇn tӟi vӏ trí cӫa chính khӕi ÿƭa
ÿó. Trong trѭӡng hӧp xҩu nhҩt, cҧ hai di chuyӇn xҧy ra cho mӛi khӕi ÿƭa. Lӧi ÿiӇm là
thӡi gian truy xuҩt ngүu nhiên ÿѭӧc cҧi tiӃn vì ÿҫu ÿӑc ÿƭa có thӇ tìm vӏ trí cӫa bҩt cӭ
khӕi nào bҵng cách ÿӑc thông tin trong FAT.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 233
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
VI.3 Cҩp phát ÿѭӧc lұp chӍ mөc
Cҩp phát liên kӃt giҧi quyӃt viӋc phân mãnh ngoài và vҩn ÿӅ khai báo kích
thѭӟc cӫa cҩp phát kӅ. Tuy nhiên, cҩp phát liên kӃt không hӛ trӧ truy xuҩt trӵc tiӃp
hiӋu quҧ vì các con trӓ chӍ tӟi các khӕi ÿѭӧc phân tán vӟi chính các khӕi ÿó qua ÿƭa
và cҫn ÿѭӧc lҩy lҥi trong thӭ tӵ. Cҩp phát ÿѭӧc lұp chӍ mөc giҧi quyӃt vҩn ÿӅ này
bҵng cách mang tҩt cҧ con trӓ vào mӝt vӏ trí: khӕi chӍ mөc (index block).
Mӛi tұp tin có khӕi chӍ mөc cӫa chính nó, khӕi này là mӝt mҧng các ÿӏa chӍ
khӕi ÿƭa. Mөc tӯ thӭ i trong khӕi chӍ mөc chӍ tӟi khӕi i cӫa tұp tin. Thѭ mөc chӭa ÿӏa
chӍ cӫa khӕi chӍ mөc (nhѭ hình X-8). ĈӇ ÿӑc khӕi i, chúng ta dùng con trӓ trong mөc
tӯ khӕi chӍ mөc ÿӇ tìm và ÿӑc khӕi mong muӕn. Cѫ chӃ này tѭѫng tӵ nhѭ cѫ chӃ phân
trang.
Hình 0-8 Cҩp phát không gian ÿƭa ÿѭӧc lұp chӍ mөc
Khi mӝt tұp tin ÿѭӧc tҥo, tҩt cҧ con trӓ trong khӕi chӍ mөc ÿѭӧc ÿһt tӟi nil.
Khi khӕi thӭ i ÿѭӧc viӃt ÿҫu tiên, khӕi ÿѭӧc chӭa tӯ bӝ quҧn lý không gian trӕng và
ÿӏa chӍ cӫa nó ÿѭӧc ÿһt trong mөc tӯ khӕi chӍ mөc.
Cҩp phát ÿѭӧc lұp chӍ mөc hӛ trӧ truy xuҩt trӵc tiӃp, không gһp phҧi sӵ phân
mãnh ngoài vì bҩt cӭ khӕi trӕng trên ÿƭa có thӇ ÿáp ӭng yêu cҫu thêm không gian.
Cҩp phát ÿѭӧc lұp chӍ mөc gһp phҧi sӵ lãng phí không gian. Chi phí con trӓ cӫa khӕi
chӍ mөc thѭӡng lӟn hѫn chi phí con trӓ cӫa cҩp phát liên kӃt. Xét trѭӡng hӧp thông
thѭӡng trong ÿó chúng ta có mӝt tұp tin vӟi chӍ mӝt hoһc hai khӕi. Vӟi cҩp phát liên
kӃt, chúng ta mҩt không gian cӫa chӍ mӝt con trӓ trên khӕi (mӝt hay hai con trӓ). Vӟi
cҩp phát ÿѭӧc lұp chӍ mөc, toàn bӝ khӕi chӍ mөc phҧi ÿѭӧc cҩp phát thұm chí nӃu mӝt
hay hai con trӓ là khác nil.
ĈiӇm này sinh ra câu hӓi khӕi chӍ mөc nên lӟn bao nhiêu? Mӛi tұp tin phҧi có
mӝt khӕi chӍ mөc ÿӇ mà chúng ta muӕn khӕi chӍ mөc nhӓ nhҩt có thӇ. Tuy nhiên, nӃu
khӕi chӍ mөc quá nhӓ nó không thӇ quҧn lý ÿӫ các con trӓ cho mӝt tұp tin lӟn và mӝt
cѫ chӃ sӁ phҧi sҷn có ÿӇ giҧi quyӃt vҩn ÿӅ này:
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 234
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
x Cѫ chӃ liên kӃt (linked scheme): mӝt khӕi chӍ mөc thѭӡng là mӝt khӕi
ÿƭa. Do ÿó, nó có thӇ ÿѭӧc ÿӑc và viӃt trӵc tiӃp bӣi chính nó. ĈӇ cho phép
ÿӕi vӟi các tұp tin lӟn, chúng ta có thӇ liên kӃt nhiӅu khӕi chӍ mөc vӟi
nhau. Thí dө, mӝt khӕi chӍ mөc có thӇ chӭa mӝt header nhӓ cho tên tұp tin
và mӝt tұp hӧp cӫa các ÿӏa chӍ 100 khӕi ÿƭa ÿҫu tiên. Ĉӏa chӍ tiӃp theo (tӯ
cuӕi cùng trong khӕi chӍ mөc) là nil (ÿӕi vӟi mӝt tұp tin nhӓ) hay mӝt con
trӓ tӟi khӕi chӍ mөc khác (cho mӝt tұp tin lӟn)
x ChӍ mөc nhiӅu cҩp (multilevel index): mӝt biӃn dҥng cӫa biӇu diӉn liên
kӃt là dùng khӕi chӍ mөc cҩp 1 ÿӇ chӍ tӟi khӕi chӍ mөc cҩp 2. Khӕi cҩp 2
chӍ tӟi các khӕi tұp tin. ĈӇ truy xuҩt mӝt khӕi, hӋ ÿiӅu hành dùng chӍ mөc
cҩp 1 ÿӇ tìm mӝt khӕi chӍ mөc cҩp 2 và khӕi ÿó tìm khӕi dӳ liӋu mong
muӕn. TiӃp cұn này có thӇ ÿѭӧc tiӃp tөc tӟi cҩp 3 hay cҩp 4, tuǤ thuӝc vào
kích thѭӟc tұp tin lӟn nhҩt ÿѭӧc mong muӕn. Vӟi khӕi có kích thѭӟc
4,096 bytes, chúng ta có thӇ lѭu 1,024 con trӓ 4 bytes trong mӝt khӕi chӍ
mөc. ChӍ mөc hai cҩp cho phép 1,048,576 khӕi dӳ liӋu, cho phép tұp tin có
kích thѭӟc tӟi 4GB.
x Cѫ chӃ kӃt hӧp (combined scheme): mӝt biӃn dҥng khác ÿѭӧc dùng trong
UFS là giӳ 15 con trӓ ÿҫu tiên cӫa khӕi chӍ mөc trong inode cӫa tұp tin.
12 con trӓ ÿҫu tiên cӫa 15 con trӓ này chӍ tӟi khӕi trӵc tiӃp (direct blocks);
nghƭa là chúng chӭa các ÿӏa chӍ cӫa khӕi mà chӭa dӳ liӋu cӫa tұp tin. Do
ÿó, dӳ liӋu ÿӕi vӟi các tұp tin nhӓ (không lӟn hѫn 12 khӕi) không cҫn mӝt
khӕi chӍ mөc riêng. NӃu kích thѭӟc khӕi là 4 KB, thì tӟi 48 KB dӳ liӋu có
thӇ truy xuҩt trӵc tiӃp. 3 con trӓ tiӃp theo chӍ tӟi các khӕi gián tiӃp
(indirect blocks). Con trӓ khӕi gián tiӃp thӭ nhҩt là ÿӏa chӍ cӫa khӕi gián
tiӃp ÿѫn (single indirect blocks). Khӕi gián tiӃp ÿѫn là mӝt khӕi chӍ mөc
không chӭa dӳ liӋu nhѭng chӭa ÿӏa chӍ cӫa các khӕi chӭa dӳ liӋu. Sau ÿó,
có con trӓ khӕi gián tiӃp ÿôi (double indirect block) chӭa ÿӏa chӍ cӫa mӝt
khӕi mà khӕi này chӭa ÿӏa chӍ cӫa các khӕi chӭa con trӓ chӍ tӟi khӕi dӳ
liӋu thұt sӵ. Con trӓ cuӕi cùng chӭa chӭa ÿӏa chӍ cӫa khӕi gián tiӃp ba
(triple indirect block). Vӟi phѭѫng pháp này, sӕ khӕi có thӇ ÿѭӧc cҩp phát
tӟi mӝt tұp tin vѭӧt quá lѭӧng không gian có thӇ ÿánh ÿӏa chӍ bӣi các con
trӓ tұp tin 4 bytes hay 4 GB. NhiӅu cài ÿһt UNIX gӗm Solaris và AIX cӫa
IBM hӛ trӧ tӟi 64 bit con trӓ tұp tin. Các con trӓ có kích thѭӟc này cho
phép các tұp tin và hӋ thӕng tұp tin có kích thѭӟc tӟi terabytes. Mӝt inode
ÿѭӧc hiӇn thӏ trong hình X-9:
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 235
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Hình 0-9 Inode cӫa UNIX
Cѫ chӃ cҩp phát lұp chӍ mөc gһp mӝt sӕ khó khăn vӅ năng lӵc nhѭ cҩp phát
liên kӃt. Ĉһc biӋt, các khӕi chӍ mөc có thӇ ÿѭӧc lѭu trӳ (cache) trong bӝ nhӟ; nhѭng
các khӕi dӳ liӋu có thӇ ÿѭӧc trãi rӝng khҳp phân khu.
VI.4 Năng lӵc
Các phѭѫng pháp cҩp phát ӣ trên khác nhau vӅ tính hiӋu quҧ lѭu trӳ và thӡi
gian truy xuҩt khӕi dӳ liӋu. Cҧ hai yӃu tӕ này là tiêu chuҭn quan trӑng trong viӋc chӑn
phѭѫng pháp hӧp lý hay các phѭѫng pháp cho mӝt hӋ ÿiӅu hành cài ÿһt.
Trѭӟc khi chӑn mӝt phѭѫng pháp, chúng ta cҫn xác ÿӏnh hӋ thӕng sӁ ÿѭӧc dùng nhѭ
thӃ nào. Mӝt hӋ thӕng vӟi hҫu hӃt truy xuҩt tuҫn tӵ nên dùng mӝt phѭѫng pháp khác
tӯ hӋ thӕng vӟi hҫu hӃt truy xuҩt ngүu nhiên. Ĉӕi vӟi bҩt cӭ loҥi truy xuҩt nào, cҩp
phát kӅ yêu cҫu chӍ mӝt truy xuҩt ÿӇ ÿҥt ÿѭӧc mӝt khӕi ÿƭa. Vì chúng ta có thӇ giӳ dӉ
dàng ÿӏa chӍ khӣi ÿҫu cӫa tұp tin trong bӝ nhӟ, chúng ta có thӇ tính lұp tӭc ÿӏa chӍ ÿƭa
cӫa khӕi thӭ i (hay khӕi kӃ tiӃp) và ÿӑc nó trӵc tiӃp.
Ĉӕi vӟi cҩp phát liên kӃt, chúng ta cNJng có thӇ giӳ ÿӏa chӍ khӕi kӃ tiӃp trong
bӝ nhӟ và ÿӑc nó trӵc tiӃp. Phѭѫng pháp này là tӕt cho truy xuҩt tuҫn tӵ; tuy nhiên,
ÿӕi vӟi truy xuҩt trӵc tiӃp mӝt truy xuҩt tӟi khӕi thӭ i phҧi yêu cҫu ÿӑc I ÿƭa. Vҩn ÿӅ
này minh hoҥ lý do cҩp phát liên kӃt không ÿѭӧc dùng cho mӝt ӭng dөng yêu cҫu truy
xuҩt trӵc tiӃp.
Do ÿó, mӝt sӕ hӋ thӕng hӛ trӧ các tұp tin truy xuҩt trӵc tiӃp bҵng cách dùng
cҩp phát kӅ và truy xuҩt tuҫn tӵ bӣi cҩp phát liên kӃt. Ĉӕi vӟi các hӋ thӕng này, loҥi
truy xuҩt ÿѭӧc thӵc hiӋn phҧi ÿѭӧc khai báo khi tұp tin ÿѭӧc tҥo. Mӝt tұp tin ÿѭӧc tҥo
cho truy xuҩt tuҫn tӵ sӁ ÿѭӧc liên kӃt và không thӇ ÿѭӧc dùng cho truy xuҩt trӵc tiӃp.
Mӝt tұp tin ÿѭӧc tҥo cho truy xuҩt trӵc tiӃp sӁ kӅ nhau và có thӇ hӛ trӧ cҧ hai truy
xuҩt trӵc tiӃp và truy xuҩt tuҫn tӵ nhѭng chiӅu dài tӕi ÿa cӫa nó phҧi ÿѭӧc khai báo
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 236
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
khi nó ÿѭӧc tҥo. Trong trѭӡng hӧp này, hӋ ÿiӅu hành phҧi có cҩu trúc dӳ liӋu hӧp lý
và các giҧi thuұt ÿӇ hӛ trӧ cҧ hai phѭѫng pháp cҩp phát. Các tұp tin có thӇ ÿѭӧc
chuyӇn tӯ mӝt kiӇu này sang mӝt kiӇu khác bҵng cách tҥo mӝt tұp tin mӟi cӫa loҥi
mong muӕn và các nӝi dung cӫa tұp tin cNJ ÿѭӧc chép vào tұp tin mӟi. Sau ÿó, tұp tin
cNJ có thӇ bӏ xoá và tұp tin mӟi ÿѭӧc ÿәi tên.
Cҩp phát dҥng chӍ mөc phӭc tҥp hѫn. NӃu khӕi chӍ mөc ÿã ӣ trong bӝ nhӟ rӗi
thì truy xuҩt có thӇ ÿѭӧc thӵc hiӋn trӵc tiӃp. Tuy nhiên, giӳ khӕi chӍ mөc trong bӝ
nhӟ yêu cҫu không gian có thӇ xem xét. NӃu không gian bӝ nhӟ này không sҷn dùng
thì chúng ta phҧi ÿӑc trѭӟc khӕi chӍ mөc và sau ÿó khӕi dӳ liӋu mong muӕn. Ĉӕi vӟi
chӍ mөc hai cҩp, ÿӑc hai khӕi chӍ mөc là cҫn thiӃt. Ĉӕi vӟi tұp tin rҩt lӟn, truy xuҩt
mӝt khӕi gҫn cuӕi tұp tin yêu cҫu ÿӑc tҩt cҧ khӕi chӍ mөc ÿӇ lҫn theo chuӛi con trӓ
trѭӟc khi khӕi dӳ liӋu ÿѭӧc yêu cҫu cuӕi cùng ÿѭӧc ÿӑc. Do ÿó, năng lӵc cӫa cҩp phát
chӍ mөc phө thuӝc cҩu trúc chӍ mөc trên kích thѭӟc tұp tin và vӏ trí cӫa khӕi mong
muӕn.
Mӝt sӕ hӋ thӕng kӃt hӧp cҩp phát kӅ và cҩp phát chӍ mөc bҵng cách dùng cҩp
phát kӅ cho các tұp tin nhӓ (ba hay bӕn khӕi) và tӵ ÿӝng chuyӇn tӟi cҩp phát chӍ mөc
nӃu tұp tin lӟn lên. Vì hҫu hӃt các tұp tin là nhӓ và cҩp phát kӅ là hiӋu quҧ cho các tұp
tin nhӓ, năng lӵc trung bình là rҩt tӕt.
NhiӅu tӕi ѭu khác là có thӇ và ÿang ÿѭӧc dùng. Vӟi sӵ chênh lӋch tӕc ÿӝ giӳa
CPU và ÿƭa, nó là không hӧp lý ÿӇ thêm hàng ngàn chӍ thӏ tӟi hӋ ÿiӅu hành ÿӇ tiӃt
kiӋm chӍ mӝt vài di chuyӇn cӫa ÿҫu ÿӑc. Ngoài ra, sӵ chênh lӋch này tăng theo thӡi
gian, tӟi ÿiӇm nѫi mà hàng trăm cӫa hàng ngàn chӍ thӏ phù hӧp có thӇ ÿѭӧc dùng ÿӇ
tӕi ѭu sӵ di chuyӇn cӫa ÿҫu ÿӑc.
VIIQuҧn lý không gian trӕng
Vì không gian trӕng là giӟi hҥn nên chúng ta cҫn dùng lҥi không gian tӯ các tұp
tin bӏ xoá cho các tұp tin mӟi nӃu có thӇ. ĈӇ giӳ vӃt cӫa không gian ÿƭa trӕng, hӋ
thӕng duy trì mӝt danh sách không gian trӕng. Danh sách không gian trӕng ghi lҥi tҩt
cҧ khӕi ÿƭa trӕng. ĈӇ tҥo tұp tin, chúng ta tìm trong danh sách không gian trӕng lѭӧng
không gian ÿѭӧc yêu cҫu và cҩp phát không gian ÿó tӟi tұp tin mӟi. Sau ÿó, không
gian này ÿѭӧc xoá tӯ danh sách không gian trӕng. Khi mӝt tұp tin bӏ xoá, không gian
ÿƭa cӫa nó ÿѭӧc thêm vào danh sách không gian trӕng. Mһc dù tên cӫa nó là danh
sách nhѭng danh sách không gian trӕng có thӇ không ÿѭӧc cài nhѭ mӝt danh sách.
VII.1 Bit vector
Thѭӡng thì danh sách không gian trӕng ÿѭӧc cài ÿһt nhѭ mӝt bҧn ÿӗ bit (bit
map) hay mӝt vector bit (bit vector). Mӛi khӕi ÿѭӧc biӇu diӉn bӣi 1 bit. NӃu khӕi là
trӕng, bit cӫa nó ÿѭӧc ÿһt là 1, nӃu khӕi ÿѭӧc cҩp phát bit cӫa nó ÿѭӧc ÿһt là 0.
Thí dө, xét mӝt ÿƭa khi các khӕi 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, và 27 là
trӕng và các khӕi còn lҥi ÿѭӧc cҩp phát. Bҧn ÿӗ bit không gian trӕng sӁ là:
001111001111110001100000011100000
Lӧi ÿiӇm chính cӫa tiӃp cұn này là tính tѭѫng ÿӕi ÿѫn giҧn và hiӋu quҧ cӫa nó
trong viӋc tìm khӕi trӕng ÿҫu tiên, hay n khӕi trӕng tiӃp theo trên ÿƭa.
Mӝt lҫn nӳa, chúng ta thҩy các ÿһc ÿiӇm phҫn cӭng ÿӏnh hѭӟng chӭc năng
phҫn mӅm. Tuy nhiên, các vector bit là không ÿӫ trӯ khi toàn bӝ vector ÿѭӧc giӳ
trong bӝ nhӟ chính. Giӳ nó trong bӝ nhӟ chính là có thӇ cho các ÿƭa nhӓ hѫn, nhѭ trên
các máy vi tính nhѭng không thӇ cho các máy lӟn hѫn. Mӝt ÿƭa 1.3 GB vӟi khӕi 512
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 237
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
bytes sӁ cҫn mӝt bҧn ÿӗ bit 332 KB ÿӇ ghi lҥi các khӕi trӕng. Gom bӕn khӕi vào mӝt
nhóm có thӇ giҧm sӕ này xuӕng còn 83 KB trên ÿƭa.
VII.2 Danh sách liên kӃt
Hình 0-10 danh sách không gian trӕng ÿѭӧc liên kӃt trên ÿƭa
Mӝt tiӃp cұn khác ÿӇ quҧn lý bӝ nhӟ trӕng là liên kӃt tҩt cҧ khӕi trӕng, giӳ mӝt
con trӓ tӟi khӕi trӕng ÿҫu tiên trong mӝt vӏ trí ÿһc biӋt trên ÿƭa và lѭu nó trong bӝ
nhӟ. Khӕi ÿҫu tiên này chӭa con trӓ chӍ tӟi khӕi ÿƭa trӕng tiӃp theo,..Trong thí dө trên,
chúng ta có thӇ giӳ mӝt con trӓ chӍ tӟi khӕi 2 nhѭ là khӕi trӕng ÿҫu tiên. Khӕi 2 sӁ
chӭa mӝt con trӓ chӍ tӟi khӕi 3, khӕi này sӁ chӍ tӟi khӕi 4,(nhѭ hình X-10). Tuy
nhiên, cѫ chӃ này không hiӋu quҧ ÿӇ duyӋt danh sách, chúng ta phҧi ÿӑc mӛi khӕi,
yêu cҫu thӡi gian nhұp/xuҩt ÿáng kӇ. Tuy nhiên, duyӋt danh sách trӕng không là hoҥt
ÿӝng thѭӡng xuyên. Thѭӡng thì, hӋ ÿiӅu hành cҫn mӝt khӕi trӕng ÿӇ mà nó có thӇ cҩp
phát khӕi ÿó tӟi mӝt tұp tin, vì thӃ khӕi ÿҫu tiên trong danh sách trӕng ÿѭӧc dùng.
Phѭѫng pháp FAT kӃt hӧp vӟi ÿӃm khӕi trӕng thành cҩu trúc dӳ liӋu cҩp phát.
VII.3 Nhóm
Thay ÿәi tiӃp cұn danh sách trӕng ÿӇ lѭu ÿӏa chӍ cӫa n khӕi trӕng trong khӕi
trӕng ÿҫu tiên. n-1 khӕi ÿҫu tiên này thұt sӵ là khӕi trӕng. Khӕi cuӕi cùng chӭa ÿӏa
chӍ cӫa n khӕi trӕng khác, Sӵ quan trӑng cӫa viӋc cài ÿһt này là ÿӏa chӍ cӫa mӝt sӕ
lѭӧng lӟn khӕi trӕng có thӇ ÿѭӧc tìm thҩy nhanh chóng, không giӕng nhѭ trong tiӃp
cұn danh sách liên kӃt chuҭn.
VII.4 Bӝ ÿӃm
Mӝt tiӃp cұn khác ÿҥt ÿѭӧc lӧi ÿiӇm trong thӵc tӃ là nhiӅu khӕi kӅ có thӇ ÿѭӧc
cҩp phát và giҧi phóng cùng lúc, ÿһc biӋt khi không gian ÿѭӧc cҩp phát vӟi giҧi thuұt
cҩp phát kӅ hay thông qua nhóm. Do ÿó, thay vì giӳ mӝt danh sách n ÿӏa chӍ ÿƭa trӕng,
chúng ta có thӇ giӳ ÿӏa chӍ cӫa khӕi trӕng ÿҫu tiên và sӕ n khӕi kӅ trӕng theo sau khӕi
ÿҫu tiên. Mӛi mөc tӯ trong danh sách không gian trӕng sau ÿó chӭa mӝt ÿӏa chӍ ÿƭa và
bӝ ÿӃm. Mһc dù mӛi mөc tӯ yêu cҫu nhiӅu không gian hѫn mӝt ÿӏa chӍ ÿƭa ÿѫn,
nhѭng toàn bӝ danh sách sӁ ngҳn hѫn vӟi ÿiӅu kiӋn là bӝ ÿӃm lӟn hѫn 1.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 238
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
VIIITóm tҳt
HӋ thӕng tұp tin ÿӏnh vӏ không ÿәi trên thiӃt bӏ lѭu trӳ phө ÿѭӧc thiӃt kӃ ÿӇ
quҧn lý mӝt lѭӧng lӟn dӳ liӋu không ÿәi. Phѭѫng tiӋn lѭu trӳ phө phә biӃn nhҩt là
ÿƭa.
Ĉƭa vұt lý có thӇ ÿѭӧc chia thành nhiӅu phân khu ÿӇ ÿiӅu khiӇn viӋc sӱ dөng
phѭѫng tiӋn và cho phép nhiӅu hӋ thӕng tұp tin (có thӇ khác nhau) trên ÿƭa. Các hӋ
thӕng tұp tin này ÿѭӧc gҳn vào kiӃn trúc hӋ thӕng tұp tin luұn lý ÿӇ làm cho chúng sҷn
dùng. Các hӋ thӕng tұp tin thѭӡng ÿѭӧc cài ÿһt trong mӝt kiӃn trúc phân tҫng hay
module. Nhӳng cҩp thҩp hѫn giҧi quyӃt các thuӝc tính vұt lý cӫa các thiӃt bӏ lѭu trӳ.
Cҩp cao hѫn giҧi quyӃt các tên tұp tin biӇu tѭӧng và các thuӝc tính luұn lý cӫa tұp tin.
Các cҩp trung gian ánh xҥ các khái niӋm tұp tin luұn lý thành các thuӝc tính thiӃt bӏ
vұt lý.
Mӛi kiӇu hӋ thӕng tұp tin có các cҩu trúc và giҧi thuұt khác nhau. Mӝt tҫng VFS
cho phép các tҫng cao hѫn giҧi quyӃt mӛi kiӇu hӋ thӕng tұp tin khác nhau trong cùng
mӝt cách. Ngay cҧ các hӋ thӕng tұp tin ӣ xa có thӇ ÿѭӧc tích hӧp vào cҩu trúc thѭ
mөc cӫa hӋ thӕng và ÿѭӧc hoҥt ÿӝng trên các lӡi gӑi hӋ thӕng chuҭn bҵng giao diӋn
VFS.
Nhӳng tұp tin khác nhau có thӇ ÿѭӧc cҩp phát không gian trên ÿƭa trong 3 cách:
kӅ, liên kӃt hay chӍ mөc. Cҩp phát kӅ có thӇ gһp phҧi sӵ phân mãnh ngoài. Truy xuҩt
trӵc tiӃp là kém hiӋu quҧ vӟi cҩp phát liên kӃt. Cҩp phát chӍ mөc yêu cҫu chi phí ÿáng
kӇ cho khӕi chӍ mөc cӫa nó. Các giҧi thuұt này có thӇ tӕi ѭu trong nhiӅu cách. Không
gian kӅ có thӇ lӟn lên thông qua ÿoҥn mӣ rӝng ÿӇ tăng khҧ năng linh hoҥt và giҧm
phân mãnh ngoài. Cҩp phát chӍ mөc có thӇ ÿѭӧc thӵc hiӋn trong viӋc nhóm nhiӅu
khӕi ÿӇ tăng thông lѭӧng và giҧm sӕ lѭӧng các mөc tӯ chӍ mөc ÿѭӧc yêu cҫu. Lұp chӍ
mөc trong các nhóm là tѭѫng tӵ nhѭ cҩp phát kӅ vӟi các ÿoҥn mӣ rӝng.
Các phѭѫng pháp cҩp phát không gian trӕng cNJng ҧnh hѭӣng tӟi tính hiӋu quҧ
cӫa không gian ÿƭa, năng lӵc hӋ thӕng tұp tin và khҧ năng tin cұy cӫa thiӃt bӏ lѭu trӳ
phө. Các phѭѫng pháp ÿѭӧc dùng gӗm các vector bit và các danh sách liên kӃt. Các
tӕi ѭu gӗm nhóm, ÿӃm và FAT, mà ÿһt danh sách liên kӃt trong mӝt vùng kӅ.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 239
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
QUҦN LÝ Hӊ THӔNG NHҰP/XUҨT
I Mөc ÿích
Sau khi hӑc xong chѭѫng này, ngѭӡi hӑc nҳm ÿѭӧc nhӳng kiӃn thӭc sau:
x HiӇu các cѫ sӣ cӫa phҫn cӭng nhұp/xuҩt
x HiӇu các dӏch vө nhұp/xuҩt ÿѭӧc cung cҩp bӣi hӋ ÿiӅu hành
x HiӇu cách hӋ ÿiӅu hành làm cҫu nӕi giӳa giao diӋn phҫn cӭng và giao diӋn ӭng
dөng
x BiӃt các khía cҥnh năng lӵc cӫa nhұp/xuҩt và các nguyên lý thiӃt kӃ hӋ ÿiӅu
hành ÿӇ cҧi tiӃn năng lӵc nhұp/xuҩt
II Giӟi thiӋu
Vai trò cӫa hӋ ÿiӅu hành trong nhұp/xuҩt máy tính là quҧn lý và ÿiӅu khiӇn các
thao tác nhұp/xuҩt và các thiӃt bӏ nhұp/xuҩt. Trong chѭѫng này chúng ta sӁ mô tҧ các
khái niӋm cѫ bҧn cӫa phҫn cӭng nhұp/xuҩt. KӃ ÿӃn chúng ta sӁ thҧo luұn các dӏch vө
nhұp/xuҩt ÿѭӧc cung cҩp bӣi hӋ ÿiӅu hành và hiӋn thân cӫa các dӏch vө này trong giao
diӋn ӭng dөng nhұp/xuҩt. Sau ÿó, chúng ta giҧi thích hӋ ÿiӅu hành làm cҫu nӕi giӳa
giao diӋn phҫn cӭng và giao diӋn ӭng dөng nhѭ thӃ nào. Cuӕi cùng, chúng ta thҧo
luұn các khía cҥnh năng lӵc cӫa nhұp/xuҩt và các nguyên lý thiӃt kӃ hӋ ÿiӅu hành ÿӇ
cҧi tiӃn năng lӵc nhұp/xuҩt.
III Các khái niӋm cѫ bҧn
ĈiӅu khiӇn các thiӃt bӏ ÿѭӧc nӕi kӃt tӟi máy tính là mӕi quan tâm chӫ yӃu cӫa
ngѭӡi thiӃt kӃ hӋ ÿiӅu hành. Vì các thiӃt bӏ nhұp/xuҩt rҩt khác nhau vӅ chӭc năng và
tӕc ÿӝ (xem xét chuӝt, ÿƭa cӭng, và CD-ROM) nên sӵ ÿa dҥng vӅ phѭѫng pháp là cҫn
thiӃt ÿӇ ÿiӅu khiӇn chúng. Các phѭѫng pháp này hình thành mӝt hӋ thӕng nhұp/xuҩt
con (I/O subsystem) cӫa nhân, tách rӡi phҫn còn lҥi cӫa nhân tӯ sӵ phӭc tҥp cӫa viӋc
quҧn lý các thiӃt bӏ nhұp/xuҩt.
Công nghӋ thiӃt bӏ nhұp/xuҩt thӇ hiӋn hai xu hѭӟng trái ngѭӧc nhau. Xu hѭӟng
thӭ nhҩt, chúng ta tăng sӵ chuҭn hoá phҫn mӅm và giao diӋn phҫn cӭng. Xu hѭӟng
này giúp chúng ta hӧp tác nhӳng thӃ hӋ thiӃt bӏ ÿѭӧc cҧi tiӃn vào các máy tính và hӋ
ÿiӅu hành ÿã có. Xu hѭӟng thӭ hai, chúng ta tăng sӵ ÿa dҥng cӫa các thiӃt bӏ
nhұp/xuҩt. ThiӃt bӏ mӟi là rҩt khác vӟi các thiӃt bӏ trѭӟc ÿó ÿã tҥo ra mӝt trӣ ngҥi ÿӇ
hӧp nhҩt chúng vào máy tính và hӋ ÿiӅu hành cӫa chúng ta. Trӣ ngҥi này ÿѭӧc giҧi
quyӃt bӣi sӵ kӃt hӧp kӻ thuұt phҫn cӭng và phҫn mӅm. Các thành phҫn phҫn cӭng
nhұp/xuҩt cѫ bҧn nhѭ cәng, bus và bӝ ÿiӅu khiӇn thiӃt bӏ chӭa trong mӝt dãy rӝng các
thiӃt bӏ nhұp/xuҩt. ĈӇ ÿóng gói các chi tiӃt và sӵ khác biӋt cӫa các thiӃt bӏ khác nhau,
nhân cӫa hӋ ÿiӅu hành ÿѭӧc chӍ dүn ÿӇ dùng các modules trình ÿiӅu khiӇn thiӃt bӏ.
Các trình ÿiӅu khiӇn thiӃt bӏ (device driver) hiӋn diӋn mӝt giao diӋn truy xuҩt thiӃt bӏ
ÿӗng nhҩt tӟi hӋ thӕng con nhұp/xuҩt, nhѭ các lӡi gӑi hӋ thӕng cung cҩp mӝt giao
diӋn chuҭn giӳa ӭng dөng và hӋ ÿiӅu hành.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 242
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
IV Phҫn cӭng nhұp/xuҩt
Các máy tính ÿiӅu hành nhiӅu loҥi thiӃt bӏ. Hҫu hӃt chúng thuӝc các chӫng loҥi
phә biӃn nhѭ thiӃt bӏ lѭu trӳ (ÿƭa, băng tӯ), thiӃt bӏ truyӅn (card mҥng, modem) và
thiӃt bӏ giao diӋn ngѭӡi dùng (màn hình, bàn phím, chuӝt),.... Mһc dù có sӵ ÿa dҥng
vӅ các thiӃt bӏ nhұp/xuҩt, nhѭng chúng ta chӍ cҫn hiӇu mӝt vài khái niӋm nhѭ các thiӃt
bӏ ÿѭӧc gán nhѭ thӃ nào và phҫn mӅm có thӇ ÿiӅu khiӇn phҫn cӭng nhѭ thӃ nào.
Mӝt thiӃt bӏ giao tiӃp vӟi mӝt hӋ thӕng máy tính bҵng cách gӣi các tín hiӋu qua
dây cáp hay thұm chí qua không khí. Các thiӃt bӏ giao tiӃp vӟi máy bҵng mӝt ÿiӇm nӕi
kӃt (cәng-port) nhѭ cәng tuҫn tӵ. NӃu mӝt hay nhiӅu thiӃt bӏ dùng mӝt tұp hӧp dây
dүn, nӕi kӃt ÿѭӧc gӑi là bus. Mӝt bus là mӝt tұp hӧp dây dүn và giao thӭc ÿѭӧc ÿӏnh
nghƭa chһt chӁ ÿӇ xác ÿӏnh tұp hӧp thông ÿiӋp có thӇ ÿѭӧc gӣi qua dây. Trong thuұt
ngӳ ÿiӋn tӱ, các thông ÿiӋp ÿѭӧc truyӅn bӣi các mүu ÿiӋn thӃ ÿiӋn tӱ ÿѭӧc áp dөng
tӟi các dây dүn vӟi thӡi gian ÿѭӧc xác ÿӏnh. Khi thiӃt bӏ A có mӝt cáp gán vào thiӃt bӏ
B, thiӃt bӏ B có mӝt cáp gán vào thiӃt bӏ C và thiӃt bӏ C gán vào mӝt cәng máy tính,
sӵ sҳp xӃp này ÿѭӧc gӑi là chuӛi nӕi tiӃp. Mӝt chuӛi nӕi tiӃp thѭӡng ÿiӅu hành nhѭ
mӝt bus.
IV.1 Thăm dò
Giao thӭc hoàn chӍnh cho viӋc giao tiӃp giӳa máy tính và bӝ ÿiӅu khiӇn rҩt phӭc
tҥp nhѭng ký hiӋu bҳt tay (handshaking) là ÿѫn giҧn. Chúng ta giҧi thích bҳt tay bҵng
thí dө sau. Chúng ta giҧ sӱ rҵng 2 bits ÿѭӧc dùng ÿӇ hӧp tác trong mӕi quan hӋ ngѭӡi
sҧn xuҩt-ngѭӡi tiêu thө giӳa bӝ ÿiӅu khiӇn và máy chӫ. Bӝ ÿiӅu khiӇn hiӇn thӏ trҥng
thái cӫa nó thông qua bit bұn (busy bit) trong thanh ghi trҥng thái. Bӝ ÿiӅu khiӇn ÿһt
bit bұn khi nó ÿang làm viӋc và xoá bit bұn khi nó sҷn sàng nhұn lӋnh tiӃp theo. Máy
tính ra tín hiӋu mong muӕn bҵng bit sҷn sàng nhұn lӋnh (command-ready bit) trong
thanh ghi lӋnh. Máy tính thiӃt lұp bit sҷn sàng nhұn lӋnh khi mӝt lӋnh sҷn dùng cho bӝ
ÿiӅu khiӇn thӵc thi. Thí dө, máy tính viӃt dӳ liӋu xuҩt thông qua mӝt cәng, hӧp tác
vӟi bӝ ÿiӅu khiӇn bҵng cách bҳt tay nhѭ sau:
1. Máy tính lһp lҥi viӋc ÿӑc bit bұn cho tӟi khi bit này bӏ xoá
2. Máy tính thiӃt lұp bit viӃt trong thanh ghi lӋnh và viӃt mӝt byte vào thanh ghi
dӳ liӋu xuҩt
3. Máy tính ÿһt bit sҷn sàng nhұn lӋnh
4. Khi bӝ ÿiӅu khiӇn nhұn thҩy rҵng bit sҷn sàng nhұn lӋnh ÿѭӧc ÿһt, nó ÿһt bit
bұn
5. Bӝ ÿiӅu khiӇn ÿӑc thanh ghi lӋnh và thҩy lӋnh viӃt. Nó ÿӑc thanh ghi xuҩt dӳ
liӋu ÿӇ lҩy mӝt byte và thӵc hiӋn nhұp/xuҩt tӟi thiӃt bӏ.
6. Bӝ ÿiӅu khiӇn xoá bit sҷn sàng nhұn lӋnh, xoá bit lӛi trong thanh ghi trҥng thái
ÿӇ hiӇn thӏ rҵng thiӃt bӏ nhұp/xuҩt thành công, và xoá bit bұn ÿӇ hiӇn thӏ rҵng
nó ÿѭӧc kӃt thúc.
Vòng lһp này ÿѭӧc lһp cho mӛi byte.
Trong bѭӟc 1, máy tính là chӡ ÿӧi bұn hay thăm dò. Nó ӣ trong mӝt vòng lһp, ÿӑc
thanh ghi trҥng thái cho ÿӃn khi bit bұn ÿѭӧc xoá. NӃu bӝ ÿiӅu khiӇn và thiӃt bӏ nhanh
thì phѭѫng pháp này là mӝt phѭѫng pháp phù hӧp. Nhѭng nӃu chӡ lâu máy chӫ
chuyӇn sang mӝt tác vө khác. Sau ÿó, máy tính làm thӃ nào ÿӇ biӃt khi nào bӝ ÿiӅu
khiӇn rҧnh? Ĉӕi vӟi mӝt sӕ thiӃt bӏ, máy tính phҧi phөc vө thiӃt bӏ nhanh chóng hoһc
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 243
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
dӳ liӋu sӁ bӏ mҩt. Thí dө, khi dӳ liӋu ÿang truyӅn vào cәng tuҫn tӵ tӯ bàn phím, mӝt
vùng ÿӋm nhӓ trên bӝ ÿiӅu khiӇn sӁ tràn và dӳ liӋu sӁ bӏ mҩt nӃu máy tính chӡ quá lâu
trѭӟc khi trҧ vӅ các bytes ÿѭӧc ÿӑc.
Trong nhiӅu kiӃn trúc máy tính, 3 chu kǤ lӋnh CPU ÿӫ ÿӇ thăm dò mӝt thiӃt bӏ:
read mӝt thanh ghi thiӃt bӏ, thӵc hiӋn phép tính luұn lý and ÿӇ lҩy bit trҥng thái và
tách ra (branch) nӃu khác 0. Rõ ràng, thao tác thăm dò cѫ bҧn là ÿӫ. Nhѭng thăm dò
trӣ nên không ÿӫ khi ÿѭӧc lһp lҥi nhiӅu lҫn, hiӃm khi tìm mӝt thiӃt bӏ sҷn sàng phөc
vө trong lҫn thăm dò ÿҫu tiên, trong khi cҫn dùng CPU ÿӇ xӱ lý cho các công viӋc
khác. Trong trѭӡng hӧp nhѭ thӃ, sӁ hiӋu quҧ hѫn ÿӇ sҳp xӃp bӝ ÿiӅu khiӇn phҫn cӭng
thông báo cho CPU khi nào thiӃt bӏ sҷn sàng phөc vө hѫn là yêu cҫu CPU lһp lҥi viӋc
thăm dò cho viӋc hoàn thành nhұp/xuҩt. Cѫ chӃ phҫn cӭng cho phép mӝt thiӃt bӏ
thông báo tӟi CPU ÿѭӧc gӑi là ngҳt (interrupt).
IV.2 Ngҳt
Hình 0-1 Chu kǤ nhұp/xuҩt hѭӟng ngҳt
Cѫ chӃ ngҳt cѫ bҧn làm viӋc nhѭ sau: phҫn cӭng CPU có mӝt dây dүn ÿѭӧc
gӑi là dòng yêu c̯u ng̷t (interrup-request line) mà CPU cҧm ӭng sau khi thӵc thi
mӛi chӍ thӏ. Khi mӝt CPU phát hiӋn mӝt bӝ ÿiӅu khiӇn xác nhұn mӝt tín hiӋu trên
dòng yêu cҫu ngҳt thì CPU lѭu mӝt lѭӧng nhӓ trҥng thái nhѭ giá trӏ hiӋn hành cӫa con
trӓ lӋnh, và nhҧy tӟi thӫ tөc cӫa bӝ quҧn lý ngҳt (interrupt-handler) tҥi ÿӏa chӍ cӕ
ÿӏnh trong bӝ nhӟ. Bӝ quҧn lý ngҳt xác ÿӏnh nguyên nhân gây ra ngҳt, thӵc hiӋn xӱ lý
cҫn thiӃt, thӵc thi chӍ thӏ return from interrupt ÿӇ trҧ vӅ CPU trҥng thái thӵc thi trѭӟc
khi ngҳt. Chúng ta nói rҵng bӝ ÿiӅu khiӇn thiӃt bӏ sinh ra mӝt ngҳt bҵng cách xác ÿӏnh
tín hiӋu trên dòng yêu cҫu ngҳt và bӝ quҧn lý xoá ngҳt bҵng cách phөc vө thiӃt bӏ.
Hình XI-1 tóm tҳt chu kǤ nhұp/xuҩt hѭӟng ngҳt (interrupt-driven I/O cycle)
IV.3 Truy xuҩt bӝ nhӟ trӵc tiӃp
Ĉӕi vӟi mӝt thiӃt bӏ thӵc hiӋn viӋc truyӅn lӟn nhѭ ә ÿƭa, nó sӁ lãng phí khi dùng
bӝ vi xӱ lý ÿӇ theo dõi các bit trҥng thái và ÿҭy dӳ liӋu vào thanh ghi ÿiӅu khiӇn tӯng
byte mӝt. NhiӅu máy tính muӕn giҧm ÿi gánh nһng cho CPU bҵng cách chuyӇn mӝt
sӕ công viӋc này tӟi mӝt bӝ ÿiӅu khiӇn có mөc ÿích ÿһc biӋt ÿѭӧc gӑi là b͡ ÿi͉u
khi͋n truy xṷt b͡ nhͣ trc ti͇p (direct memory-access-DMA).
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 244
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Hình 0-2 Các bѭӟc trong viӋc truyӅn dӳ liӋu cӫa DMA
ĈӇ khӣi tҥo mӝt thao tác chuyӇn DMA, máy tính viӃt mӝt khӕi lӋnh DMA vào
bӝ nhӟ. Khӕi này chӭa mӝt con trӓ chӍ tӟi nguӗn chuyӇn, mӝt con trӓ chӍ tӟi ÿích
chuyӇn và ÿӃm sӕ lѭӧng byte ÿѭӧc chuyӇn. CPU viӃt ÿӏa chӍ cӫa khӕi lӋnh này tӟi bӝ
ÿiӅu khiӇn DMA, sau ÿó CPU tiӃp tөc làm công viӋc khác. Bӝ ÿiӅu khiӇn DMA xӱ lý
ÿӇ ÿiӅu hành bus bӝ nhӟ trӵc tiӃp, ÿһt các ÿӏa chӍ trên bus ÿӇ thӵc hiӋn viӋc chuyӇn
mà không có sӵ trӧ giúp cӫa CPU. Mӝt bӝ ÿiӅu khiӇn DMA ÿѫn giҧn là mӝt thành
phҫn chuҭn trong PCs, và b̫ng nh̵p/xṷt bus chính (bus-mastering I/O boards) ÿӇ
PC thѭӡng chӭa phҫn cӭng DMA tӕc ÿӝ cao. Quá trình này ÿѭӧc mô tҧ trong hình
XI-2.
V Giao diӋn nhұp/xuҩt ӭng dөng
Trong phҫn này, chúng ta thҧo luұn các kӻ thuұt cҩu trúc và các giao diӋn cho
hӋ ÿiӅu hành cho phép các thiӃt bӏ nhұp/xuҩt ÿѭӧc ÿӕi xӱ trong cách chuҭn, không
ÿәi. Thí dө, chúng ta giҧi thích mӝt ӭng dөng có thӇ mӣ mӝt tұp tin trên ÿƭa mà không
biӃt loҥi ÿƭa ÿó là gì và các ÿƭa mӟi và các thiӃt bӏ khác có thӇ ÿѭӧc thêm tӟi máy tính
nhѭ thӃ nào mà không làm hӋ ÿiӅu hành bӏ gián ÿoҥn.
Nhѭ nhӳng vҩn ÿӅ công nghӋ phҫn mӅm phӭc tҥp khác, tiӃp cұn ӣ ÿây liên quan
ÿӃn tính trӯu tѭӧng, bao gói và phân tҫng phҫn mӅm. Ĉһc biӋt, chúng ta có thӇ trӯu
tѭӧng sӵ khác nhau chi tiӃt trong các thiӃt bӏ nhұp/xuҩt bҵng cách xác ÿӏnh mӝt vài
loҥi thông dөng. Mӛi loҥi thông dөng ÿѭӧc truy xuҩt thông qua mӝt tұp hӧp hàm
chuҭn-mӝt giao diӋn. Sӵ khác biӋt này ÿѭӧc bao gói trong module nhân ÿѭӧc gӑi là
trình ÿi͉u khi͋n thi͇t b͓ (device driver) mà qui ÿӏnh bên trong ÿѭӧc áp ÿһt cho mӛi
thiӃt bӏ, nhѭng ÿѭӧc nhұp vào mӝt trong nhӳng giao diӋn chuҭn. Hình XI-3 hiӇn thӏ
cách các thành phҫn liên quan nhұp/xuҩt cӫa nhân ÿѭӧc cҩu trúc trong các tҫng phҫn
mӅm.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 245
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Hình 0-3 Cҩu trúc cӫa nhân nhұp/xuҩt
Mөc ÿích cӫa tҫng chӭa trình ÿiӅu khiӇn thiӃt bӏ là che ÿұy sӵ khác biӋt giӳa
các bӝ ÿiӅu khiӇn thiӃt bӏ tӯ hӋ con nhұp/xuҩt cӫa nhân, nhiӅu lӡi gӑi hӋ thӕng
nhұp/xuҩt ÿóng gói các hành vi cӫa thiӃt bӏ trong mӝt vài lӟp phát sinh ÿӇ che ÿұy sӵ
khác biӋt tӯ các ӭng dөng. Thӵc hiӋn hӋ thӕng con nhұp/xuҩt ÿӝc lұp vӟi phҫn cӭng
ÿѫn giҧn hóa công viӋc cӫa ngѭӡi phát triӇn hӋ ÿiӅu hành. Nó cNJng ÿem lҥi sӵ thuұn
lӧi cho các nhà sҧn xuҩt phҫn cӭng. Hӑ thiӃt kӃ các thiӃt bӏ mӟi tѭѫng thích vӟi giao
diӋn bӝ ÿiӅu khiӇn chӫ ÿã có (nhѭ SCSI-2) hay hӑ viӃt các trình ÿiӅu khiӇn thiӃt bӏ ÿӇ
giao tiӃp phҫn cӭng mӟi ÿӕi vӟi các hӋ ÿiӅu hành phә biӃn. Do ÿó, các thiӃt bӏ ngoҥi
vi mӟi có thӇ ÿѭӧc gán tӟi mӝt máy tính mà không phҧi chӡ nhà cung cҩp hӋ ÿiӅu
hành phát triӇn thêm mã.
Tuy nhiên, ÿӕi vӟi mӝt sӕ nhà sҧn xuҩt thiӃt bӏ phҫn cӭng, mӛi loҥi hӋ ÿiӅu
hành có chuҭn riêng cӫa nó cho giao diӋn trình ÿiӅu khiӇn thiӃt bӏ. Mӝt thiӃt bӏ ÿѭӧc
cho có thӇ mang nhiӅu trình ÿiӅu khiӇn-thí dө, trình ÿiӅu khiӇn cho MS-DOS,
Windows 95/98, Windows NT/2000 và Solaris. Các thiӃt bӏ khác nhau trong nhiӅu
hѭӟng nhѭ ÿѭӧc hiӇn thӏ trong hình XI-4.
Hình 0-4 Các ÿһc ÿiӇm cӫa các thiӃt bӏ nhұp/xuҩt
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 246
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
x Dòng ký tӵ hay khӕi: các thiӃt bӏ dòng ký tӵ chuyӇn tӯng byte mӝt,
ngѭӧc lҥi mӝt thiӃt bӏ khӕi chuyӇn ÿѫn vӏ là khӕi byte.
x Truy xuҩt tuҫn tӵ và ngүu nhiên: thiӃt bӏ tuҫn tӵ chuyӇn dӳ liӋu theo
mӝt thӭ tӵ cӕ ÿӏnh ÿѭӧc ÿӏnh nghƭa bӣi thiӃt bӏ, ngѭӧc lҥi ngѭӡi dùng
cӫa mӝt thiӃt bӏ truy xuҩt ngүu nhiên có thӇ chӍ dүn thiӃt bӏ ÿӇ tìm bҩt
cӭ vӏ trí lѭu trӳ dӳ liӋu sҷn có.
x Ĉӗng bӝ và bҩt ÿӗng bӝ: mӝt thiӃt bӏ ÿӗng bӝ là mӝt thiӃt bӏ thӵc hiӋn
viӋc chuyӇn dӳ liӋu vӟi sӕ lҫn ÿáp ӭng có thӇ ÿoán trѭӟc. Mӝt thiӃt bӏ
bҩt ÿӗng bӝ hiӇn thӏ sӕ lҫn ÿáp ӭng không ÿӅu ÿһn hay không thӇ ÿoán
trѭӟc.
x Có thӇ chia sҿ hay tұn hiӃn: mӝt thiӃt bӏ có thӇ chia sҿ ÿѭӧc dùng ÿӗng
hành bӣi nhiӅu quá trình hay luӗng; mӝt thiӃt bӏ tұn hiӃn thì không thӇ.
x Tӕc ÿӝ thao tác: tӕc ÿӝ thiӃt bӏ trҧi dài tӯ mӝt vài byte trên giây tӟi mӝt
vài gigabyte trên giây.
x Ĉӑc-viӃt, chӍ ÿӑc, hay chӍ viӃt: mӝt sӕ thiӃt bӏ thӵc hiӋn cҧ hai nhұp,
xuҩt, nhѭng mӝt sӕ thiӃt bӏ khác hӛ trӧ chӍ mӝt hѭӟng dӳ liӋu
VI HӋ thӕng con nhұp/xuҩt cӫa nhân (kernel I/O
subsytem)
Nhân cung cҩp nhiӅu dӏch vө liên quan ÿӃn nhұp/xuҩt. Mӝt vài dӏch vө-ÿӏnh
thӡi biӇu, vùng ÿӋm (buffering), vùng lѭu trӳ (cache), ÿһt trѭӟc thiӃt bӏ, quҧn lý lӛi-
ÿѭӧc cung cҩp bӣi hӋ thӕng con nhұp/xuҩt cӫa nhân và xây dӵng trên phҫn cӭng và
cѫ sӣ hҥ tҫng trình ÿiӅu khiӇn thiӃt bӏ.
VI.1 Ĉӏnh thӡi biӇu nhұp/xuҩt
Ĉӏnh thӡi biӇu cho tұp hӧp các yêu cҫu nhұp xuҩt có nghƭa là xác ÿӏnh mӝt thӭ
tӵ tӕt ÿӇ thӵc thi chúng. Thӭ tӵ các ӭng dөng phát ra lӡi gӑi hӋ thӕng rҩt hiӃm khi là
mӝt chӑn lӵa tӕt nhҩt. Ĉӏnh thӡi biӇu có thӇ cҧi tiӃn năng toàn bӝ lӵc hӋ thӕng, có thӇ
chia sҿ truy xuҩt thiӃt bӏ ÿӗng ÿӅu giӳa các quá trình và có thӇ giҧm thӡi gian chӡ ÿӧi
trung bình cho nhұp/xuҩt hoàn thành. .
Ngѭӡi phát triӇn hӋ ÿiӅu hành cài ÿһt bӝ ÿӏnh thӡi biӇu bҵng cách duy trì mӝt
hàng ÿӧi cho mӛi thiӃt bӏ. Khi mӝt ӭng dөng phát ra mӝt lӡi gӑi hӋ thӕng nhұp/xuҩt
nghӁn, yêu cҫu ÿѭӧc ÿһt vào hàng ÿӧi cho thiӃt bӏ ÿó. Bӝ ÿӏnh thӡi biӇu nhұp/xuҩt sҳp
xӃp lҥi thӭ tӵ cӫa hàng ÿӧi ÿӇ cҧi tiӃn toàn bӝ tính hiӋu quҧ hӋ thӕng và thӡi gian ÿáp
ӭng trung bình dӵa theo kinh nghiӋm bӣi ӭng dөng. HӋ ÿiӅu hành cNJng cӕ gҳng giӳ
bình ÿҷng ÿӇ mà không ӭng dөng nào nhұn ÿѭӧc dӏch vө nghèo nàn hay nó cho dӏch
vө ѭu tiên ÿӕi vӟi các yêu cҫu trì hoãn nhҥy cҧm. Thí dө, các yêu cҫu tӯ hӋ thӕng con
bӝ nhӟ ҧo có thӇ lҩy ÿӝ ѭu tiên qua các yêu cҫu cӫa ӭng dөng.
Mӝt cách mà hӋ thӕng con nhұp/xuҩt cҧi tiӃn tính hiӋu quҧ cӫa máy tính là bҵng
cách ÿӏnh thӡi biӇu các hoҥt ÿӝng nhұp/xuҩt. Mӝt cách khác là dùng không gian lѭu
trӳ trong bӝ nhӟ chính hay trên ÿƭa, vӟi các kӻ thuұt ÿѭӧc gӑi là vùng ÿӋm, vùng lѭu
trӳ và vùng chӭa.
VI.2 Vùng ÿӋm
Vùng ÿ͏m là mӝt vùng bӝ nhӟ lѭu trӳ dӳ liӋu trong khi chúng ÿѭӧc chuyӇn giӳa
hai thiӃt bӏ hay giӳa thiӃt bӏ và ӭng dөng. Vùng ÿӋm ÿѭӧc thӵc hiӋn vӟi 3 lý do.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 247
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
x Lý do thӭ nhҩt là ÿӕi phó vӟi viӋc không tѭѫng thích vӅ tӕc ÿӝ giӳa ngѭӡi sҧn
xuҩt và ngѭӡi tiêu dùng cӫa dòng dӳ liӋu.
x Lý do thӭ hai cho viӋc sӱ dөng vùng là làm thích ӭng giӳa các thiӃt bӏ có kích
thѭӟc truyӅn dӳ liӋu khác nhau.
x Lý do thӭ ba cho viӋc dùng vùng ÿӋm là hӛ trӧ ngӳ nghƭa sao chép cho
nhұp/xuҩt ӭng dөng.
VI.3 Vùng lѭu trӳ
Vùng l˱u trͷ (cache) là mӝt vùng bӝ nhӟ nhanh quҧn lý các bҧn sao dӳ liӋu.
Truy xuҩt tӟi mӝt bҧn sao ÿѭӧc lѭu trӳ hiӋu quҧ hѫn truy xuҩt tӟi bҧn gӕc. Thí dө, các
chӍ thӏ cӫa quá trình hiӋn ÿang chҥy ÿѭӧc lѭu trên ÿƭa, ÿѭӧc lѭu trӳ trong bӝ nhӟ vұt
lý và ÿѭӧc sao chép mӝt lҫn nӳa trong vùng lѭu trӳ phө và chính. Sӵ khác nhau giӳa
vùng ÿӋm là vùng lѭu trӳ là vùng ÿӋm có thӇ giӳ chӍ bҧn sao cӫa thành phҫn dӳ liӋu
ÿã có, ngѭӧc lҥi mӝt vùng lѭu trӳ giӳ vӯa ÿӫ mӝt bҧn sao trên thiӃt bӏ lѭu trӳ nhanh
hѫn cӫa mӝt thành phҫn nҵm ӣ mӝt nѫi nào khác.Vùng lѭu trӳ và vùng ÿӋm có chӭc
năng khác nhau nhѭng ÿôi khi mӝt vùng bӝ nhӟ có thӇ ÿѭӧc dùng cho cҧ hai mөc
ÿích.
VI.4 Vùng chӭa và ÿһt trѭӟc thiӃt bӏ
M͡t vùng chͱa (spool) là mӝt vùng ÿӋm giӳ dӳ liӋu xuҩt cho mӝt thiӃt bӏ nhѭ
máy in mà không thӇ chҩp nhұn các dòng dӳ liӋu ÿan xen nhau. Mһc dù mӝt máy in
có thӇ phөc vө chӍ mӝt công viӋc tҥi mӝt thӡi ÿiӇm, nhѭng nhiӅu ӭng dөng muӕn in
ÿӗng thӡi mà không có dӳ liӋu xuҩt cӫa chúng ÿan xen vӟi nhau. HӋ ÿiӅu hành giҧi
quyӃt vҩn ÿӅ này bҵng cách ngăn chһn tҩt cҧ dӳ liӋu xuҩt tӟi máy in. Dӳ liӋu xuҩt cӫa
mӛi ӭng dөng ÿѭӧc chӭa trong mӝt tұp tin riêng. Khi mӝt ӭng dөng kӃt thúc viӋc in,
hӋ thӕng vùng chӭa xӃp tұp tin chӭa tѭѫng ӭng cho dӳ liӋu xuҩt tӟi máy in. HӋ thӕng
vùng chӭa chép các tұp tin ÿѭӧc xӃp hàng tӟi máy in mӝt tұp tin tҥi mӝt thӡi ÿiӇm.
Trong mӝt hӋ ÿiӅu hành, vùng chӭa ÿѭӧc quҧn lý bӣi mӝt quá trình hӋ thӕng chҥy ӣ
chӃ ÿӝ nӅn. Trong mӝt sӕ hӋ ÿiӅu hành khác, nó ÿѭӧc quҧn lý bӣi luӗng nhân. Trong
mӛi trѭӡng hӧp, hӋ ÿiӅu hành cung cҩp mӝt giao diӋn ÿiӅu khiӇn cho phép ngѭӡi
dùng và ngѭӡi quҧn trӏ hӋ thӕng hiӇn thӏ hàng ÿӧi ÿӇ xóa các công viӋc không mong
muӕn trѭӟc khi các công viӋc ÿó in, ÿӇ tҥm dӯng viӋc in trong khi máy in ÿѭӧc phөc
vө,..
VI.5 Quҧn lý lӛi
Mӝt hӋ ÿiӅu hành sӱ dөng bӝ nhӟ bҧo vӋ có thӇ chӕng lҥi nhiӅu lӛi phҫn cӭng
và ӭng dөng vì thӃ mӝt lӛi toàn hӋ thӕng không là kӃt quҧ cӫa mӛi sӵ trөc trһc cѫ hӑc
thӭ yӃu. Các thiӃt bӏ và truyӅn nhұp/xuҩt có thӇ bӏ lӛi trong nhiӅu cách, có thӇ là các
lý do tҥm thӡi nhѭ mҥng trӣ nên quá tҧi, hay các lý do thѭӡng xuyên nhѭ trình ÿiӅu
khiӇn ÿƭa bӏ lӛi. Các hӋ ÿiӅu hành thѭӡng trҧ giá cho tính hiӋu quҧ vì các lӛi tҥm thӡi.
Thí dө, lӛi ÿӑc ÿƭa read() dүn ÿӃn cӕ gҳng làm lҥi read() và lӛi gӣi dӳ liӋu trên
mҥng send() dүn tӟi viӋc gӣi lҥi resend() nӃu giao thӭc ÿѭӧc xác ÿӏnh rõ. Tuy nhiên,
nӃu mӝt thành phҫn quan trӑng bӏ lӛi thѭӡng xuyên thì hӋ ÿiӅu hành không nghƭ ÿӃn
viӋc phөc hӗi.
Nhѭ mӝt qui tҳc thông thѭӡng, mӝt lӡi gӑi hӋ thӕng nhұp/xuҩt trҧ vӅ 1 bit cӫa
thông tin vӅ trҥng thái cӫa lӡi gӑi, biӇu thӏ thành công hay thҩt bҥi. Trong hӋ ÿiӅu
hành UNIX, mӝt biӃn nguyên có tên errno ÿѭӧc dùng ÿӇ trҧ vӅ mӝt mã lӛi- mӝt trong
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 248
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
100 giá trӏ-hiӇn thӏ tính tӵ nhiên cӫa lӛi (thí dө: ÿӕi sӕ vѭӧt quá giӟi hҥn, lӛi con trӓ,
tұp tin không thӇ mӣ,..). Ngѭӧc lҥi, mӝt sӕ phҫn cӭng cung cҩp thông tin lӛi ÿѭӧc mô
tҧ chi tiӃt mһc dù nhiӅu hӋ ÿiӅu hành hiӋn tҥi không ÿѭӧc thiӃt kӃ ÿӇ truyӅn ÿҥt thông
tin này tӟi ӭng dөng.
VI.6 Cҩu trúc dӳ liӋu nhân
Nhân cҫn giӳ thông tin trҥng thái vӅ viӋc dùng các thành phҫn nhұp/xuҩt. Nó thӵc
hiӋn nhѭ thӃ thông qua mӝt dãy các cҩu trúc dӳ liӋu trong nhân nhѭ bҧng tұp tin ÿang
mӣ. Nhân dùng nhiӅu cҩu trúc tѭѫng tӵ ÿӇ ghi vӃt các nӕi kӃt mҥng, giao tiӃp thiӃt bӏ
dҥng ký tӵ và các hoҥt ÿӝng nhұp/xuҩt khác.
Tóm lҥi, hӋ thӕng con nhұp/xuҩt ÿiӅu phӕi tұp hӧp dӏch vө mӣ rӝng sҷn có ÿӕi vӟi
ӭng dөng và nhӳng phҫn khác cӫa nhân. HӋ thӕng con nhұp/xuҩt ÿiӅu khiӇn
x Quҧn lý không gian tên cho các tұp tin và các thiӃt bӏ
x ĈiӅu khiӇn truy xuҩt tӟi các tұp tin và các thiӃt bӏ
x ĈiӅu khiӇn hoҥt ÿӝng (thí dө, mӝt modem không thӇ tìm seek())
x Cҩp phát không gian hӋ thӕng tұp tin
x Cҩp phát thiӃt bӏ
x Vùng ÿӋm, vùng lѭu trӳ và vùng chӭa
x Ĉӏnh thӡi biӇu nhұp/xuҩt
x ĈiӅu khiӇn trҥng thái thiӃt bӏ, quҧn lý lӛi, và phөc hӗi lӛi
x Cҩu hình và khӣi tҥo trình ÿiӅu khiӇn thiӃt bӏ
Cҩp cao hѫn cӫa hӋ thӕng con nhұp/xuҩt truy xuҩt thiӃt bӏ qua giao diӋn ÿӗng nhҩt
ÿѭӧc cung cҩp bӣi các trình ÿiӅu khiӇn thiӃt bӏ
VIIChuyӇn nhұp/xuҩt tӟi hoҥt ÿӝng phҫn cӭng
Phҫn trѭӟc chúng ta mô tҧ viӋc bҳt tay giӳa mӝt trình ÿiӅu khiӇn thiӃt bӏ và bӝ
ÿiӅu khiӇn thiӃt bӏ, nhѭng chúng ta không giҧi thích cách hӋ ÿiӅu hành nӕi kӃt yêu cҫu
ӭng dөng tӟi tұp hӧp dây mҥng hay mӝt sector ÿƭa xác ÿӏnh nhѭ thӃ nào. Chúng ta hãy
xem xét mӝt thí dө ÿӑc mӝt tұp tin tӯ ÿƭa. Ӭng dөng tham chiӃu tӟi dӳ liӋu bҵng tên
tұp tin. Trong mӝt ÿƭa, hӋ thӕng tұp tin ánh xҥ tӯ tên tұp tin thông qua các thѭ mөc hӋ
thӕng tұp tin ÿӇ lҩy không gian cҩp phát cӫa tұp tin.
Các hӋ ÿiӅu hành hiӋn ÿҥi ÿҥt ÿѭӧc khҧ năng linh hoҥt cao tӯ nhiӅu giai ÿoҥn
cӫa bҧng tra cӭu trong ÿѭӡng dүn giӳa yêu cҫu và bӝ ÿiӅu khiӇn thiӃt bӏ vұt lý. Các cѫ
chӃ truyӅn yêu cҫu giӳa ӭng dөng và trình ÿiӅu khiӇn là phә biӃn. Do ÿó, chúng ta có
thӇ giӟi thiӋu các thiӃt bӏ mӟi và trình ÿiӅu khiӇn vào máy tính mà không biên dӏch lҥi
nhân. Thұt vұy, mӝt sӕ hӋ ÿiӅu hành có khҧ năng nҥp trình ÿiӅu khiӇn thiӃt bӏ theo yêu
cҫu. Tҥi thӡi ÿiӇm khӣi ÿӝng, hӋ thӕng ÿҫu tiên thăm dò các bus phҫn cӭng ÿӇ xác
ÿӏnh thiӃt bӏ nào hiӋn diӋn và sau ÿó hӋ thӕng nҥp các trình ÿiӅu khiӇn cҫn thiӃt ngay
lұp tӭc hay khi ÿѭӧc yêu cҫu bӣi mӝt yêu cҫu nhұp/xuҩt ÿҫu tiên.
Bây giӡ chúng ta mô tҧ chu trình sӕng ÿiӇn hình cӫa mӝt yêu cҫu ÿӑc bӏ nghӁn,
nhѭ trong hình XI-5. Hình này ÿӅ nghӏ rҵng mӝt thao tác nhұp/xuҩt yêu cҫu nhiӅu
bѭӟc và tiêu tӕn sӕ lѭӧng lӟn chu kǤ CPU.
1) Mӝt quá trình phát ra mӝt lӡi gӑi hӋ thӕng read() tӟi bӝ mô tҧ tұp tin ÿã ÿѭӧc
mӣ trѭӟc ÿó.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 249
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
2) Mã lӡi gӑi hӋ thӕng trong nhân kiӇm tra tính ÿúng ÿҳn cӫa các tham sӕ. Trong
trѭӡng hӧp nhұp, nӃu dӳ liӋu ÿã có sҷn trong vùng ÿӋm thì dӳ liӋu ÿѭӧc trҧ vӅ
tӟi quá trình và yêu cҫu nhұp/xuҩt ÿѭӧc hoàn thành.
3) Ngѭӧc lҥi, nhұp/xuҩt vұt lý cҫn ÿѭӧc thӵc hiӋn ÿӇ mà quá trình ÿѭӧc xóa tӯ
hàng ÿӧi thӵc thi và ÿѭӧc ÿһt vào hàng ÿӧi chӡ cho thiӃt bӏ, và yêu cҫu
nhұp/xuҩt ÿѭӧc lұp thӡi biӇu. Cuӕi cùng, hӋ con nhұp/xuҩt gӣi yêu cҫu tӟi
trình ÿiӅu khiӇn thiӃt bӏ. Phө thuӝc vào hӋ ÿiӅu hành, yêu cҫu ÿѭӧc gӣi bҵng
lӡi gӑi thӫ tөc con hay bҵng thông ÿiӋp trong nhân.
4) Trình ÿiӅu khiӇn thiӃt bӏ cҩp phát vùng ÿӋm nhân ÿӇ nhұn dӳ liӋu và lұp thӡi
biӇu nhұp/xuҩt. Cuӕi cùng, trình ÿiӅu khiӇn gӣi lӋnh tӟi bӝ ÿiӅu khiӇn thiӃt bӏ
bҵng cách viӃt vào thanh ghi ÿiӅu khiӇn cӫa thiӃt bӏ.
5) Trình ÿiӅu khiӇn thiӃt bӏ thao tác trên phҫn cӭng thiӃt bӏ ÿӇ thӵc hiӋn truyӅn
dӳ liӋu.
6) Trình ÿiӅu khiӇn có thӇ thăm dò trҥng thái và dӳ liӋu hay thiӃt lұp truyӅn
DMA vào bӝ nhӟ nhân. Chúng ta thӯa nhұn rҵng truyӅn ÿѭӧc quҧn lý bӣi bӝ
ÿiӅu khiӇn DMA sinh ra mӝt ngҳt khi viӋc truyӅn hoàn thành.
7) Bӝ quҧn lý ngҳt tѭѫng ӭng nhұn ngҳt bҵng bҵng vector ngҳt, lѭu bҩt cӭ dӳ liӋu
cҫn thiӃt, báo hiӋu trình ÿiӅu khiӇn thiӃt bӏ và trҧ vӅ tӯ ngҳt.
8) Trình ÿiӅu khiӇn thiӃt bӏ nhұn tín hiӋu, xác ÿӏnh yêu cҫu nhұp/xuҩt hoàn thành,
xác ÿӏnh trҥng thái yêu cҫu và báo hiӋu cho hӋ con nhұp/xuҩt nhân rҵng yêu
cҫu ÿã hoàn thành.
9) Nhân truyӅn dӳ liӋu hay trҧ vӅ mã tӟi không gian ÿӏa chӍ cӫa quá trình ÿѭӧc
yêu cҫu và di chuyӇn quá trình tӯ hàng ÿӧi chӡ tӟi hàng ÿӧi sҷn sàng.
10) Di chuyӇn quá trình tӟi hàng ÿӧi sҷn sàng không làm nghӁn quá trình. Khi bӝ
ÿӏnh thӡi biӇu gán quá trình tӟi CPU, quá trình tiӃp tөc thӵc thi tҥi thӡi ÿiӇm
hoàn thành cӫa lӡi gӑi hӋ thӕng.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 250
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Hình 0-5 Chu trình sӕng cӫa yêu cҫu nhұp/xuҩt
VIIINăng lӵc
Nhұp/xuҩt là mӝt yӃu tӕ quan trӑng trong năng lӵc hӋ thӕng. Nó ÿһt nhiӅu yêu
cҫu trên CPU ÿӇ thӵc thi mã trình ÿiӅu khiӇn thiӃt bӏ và ÿӏnh thӡi biӇu quá trình công
bҵng và hiӋu quҧ khi các quá trình này nghӁn và không nghӁn. ChuyӇn ÿәi ngӳ cҧnh
chú trӑng ÿӃn CPU và vùng lѭu trӳ phҫn cӭng. Nhұp/xuҩt cNJng hiӇn thӏ tính không
hiӋu quҧ trong các cѫ chӃ quҧn lý ngҳt trong nhân, và nhұp/xuҩt tҧi xuӕng bus bӝ nhӟ
trong suӕt thӡi gian chép giӳa vùng ÿӋm nhân và không gian dӳ liӋu ӭng dөng. Chép
mӝt cách hӧp lý tҩt cҧ yêu cҫu này là mӝt trong nhӳng quan tâm chính cӫa kiӃn trúc
máy tính.
Mһc dù các máy tính hiӋn ÿҥi có thӇ quҧn lý hàng ngàn ngҳt trên giây, quҧn lý
ngҳt là mӝt tác vө tѭѫng ÿӕi ÿҳt: mӛi ngҳt gây cho hӋ thӕng thӵc hiӋn mӝt thay ÿәi
trҥng thái, ÿӇ thӵc thi bӝ quҧn lý ngҳt và sau ÿó phөc hӗi trҥng thái. Nhұp/xuҩt ÿѭӧc
lұp trình có thӇ hiӋu quҧ hѫn nhұp/xuҩt hѭӟng ngҳt (interrupt-driven I/O) nӃu sӕ chu
kǤ tiêu tӕn cho viӋc chӡ ÿӧi bұn là không quá mӭc. Hoàn thành mӝt thao tác
nhұp/xuҩt không nghӁn mӝt quá trình dүn ÿӃn toàn bӝ chi phí cӫa viӋc chuyӇn ÿәi
ngӳ cҧnh.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 251
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
Chúng ta có thӇ tұn dөng nhiӅu nguyên tҳc ÿӇ cҧi tiӃn tính hiӋu quҧ cӫa
nhұp/xuҩt:
x Cҳt giҧm sӕ lѭӧng chuyӇn ngӳ cҧnh
x Cҳt giҧm sӕ lҫn dӳ liӋu phҧi ÿѭӧc chép vào bӝ nhӟ trong khi truyӅn giӳa thiӃt
bӏ và ӭng dөng.
x Cҳt giҧm tҫn sӕ xuҩt hiӋn ngҳt bҵng cách dùng sӵ truyӅn lӟn, bӝ ÿiӅu khiӇn
thông tin và vùng chӭa (nӃu chӡ ÿӧi bұn có thӇ là nhӓ nhҩt).
x Gia tăng tính ÿӗng hành dùng các bӝ ÿiӅu khiӇn tri thӭc DMA (DMA-
knowledgeable controllers) hay các kênh ÿӇ giҧm gánh nһng chép dӳ liӋu ÿѫn
giҧn tӯ CPU.
x Di chuyӇn các hàm xӱ lý cѫ bҧn vào phҫn cӭng, ÿӇ cho phép hӑat ÿӝng cӫa
chúng trong các bӝ ÿiӅu khiӇn thiӃt bӏ ÿӗng hành vӟi các thao tác CPU và bus.
x Cân bҵng CPU, hӋ con bӝ nhӟ, bus và năng lӵc nhұp/xuҩt vì quá tҧi trong mӝt
vùng bҩt kǤ sӁ gây rҧnh rӛi trong vùng khác.
Ӣ ÿây các chӭc năng nhұp/xuҩt nên ÿѭӧc cài ÿһt-trong phҫn cӭng thiӃt bӏ, trong
trình ÿiӅu khiӇn thiӃt bӏ hay trong phҫn mӅm ӭng dөng? Chúng ta quan sát tiӃn trình
ÿѭӧc mô tҧ trong hình XI-6.
Hình 0-6 TiӃn trình mô tҧ chӭc năng thiӃt bӏ
x Khӣi ÿҫu, chúng ta cài ÿһt giҧi thuұt nhұp/xuҩt thӱ nghiӋm tҥi cҩp ӭng dөng vì
mã ӭng dөng là linh hӑat và nhӳng lӛi ӭng dөng là không chҳc gây ra sӵ sөp
ÿә hӋ thӕng. Ngoài ra, bҵng phát triӇn mã tҥi cҩp ӭng dөng, chúng ta tránh yêu
cҫu khӣi ÿӝng hay nҥp lҥi trình ÿiӅu khiӇn thiӃt bӏ sau mӑi thay ÿәi tӟi mã.
Tuy nhiên, cài ÿһt cҩp ӭng dөng có thӇ không ÿӫ vì chi phí chuyӇn ngӳ cҧnh
và vì ӭng dөng không thӇ lҩy lӧi ÿiӇm cӫa nhӳng cҩu trúc dӳ liӋu nhân bên
trong và chӭc năng nhân (nhѭ truyӅn thông ÿiӋp hӳu hiӋu trong nhân, luӗng và
khóa).
x Khi mӝt giҧi thuұt cҩp ӭng dөng chӭng minh tính giá trӏ cӫa nó, chúng ta có
thӇ cài ÿһt lҥi nó trong nhân. ĈiӅu này có thӇ cҧi tiӃn năng lӵc nhѭng nӛ lӵc
phát triӇn có thӱ thách nhiӅu hѫn vì nhân hӋ ÿiӅu hành lӟn, phҫn mӅm hӋ
thӕng phӭc tҥp. Ngoài ra, viӋc cài ÿһt trong nhân phҧi ÿѭӧc gӥ rӕi toàn bӝ ÿӇ
tránh hѭ hӓng dӳ liӋu và sөp ÿә hӋ thӕng.
x Năng lӵc cao nhҩt có thӇ ÿҥt ÿѭӧc bӣi cài ÿһt chuyên dөng trong phҫn cӭng,
trong thiӃt bӏ hay trong bӝ ÿiӅu khiӇn. Sӵ bҩt lӧi cӫa viӋc cài ÿһt phҫn cӭng
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 252
Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0
gӗm khó khăn và chi phí cӫa viӋc tҥo nhӳng cҧi tiӃn xa hѫn hay sӱa lӛi, thӡi
gian phát triӇn tăng (tháng hѫn là ngày) và khҧ năng linh hoҥt giҧm.
IX Tóm tҳt
Các thành phҫn phҫn cӭng cѫ bҧn ÿѭӧc nҥp vào nhұp/xuҩt là các bus, các bӝ
ÿiӅu khiӇn thiӃt bӏ, và chính các thiӃt bӏ. Công viӋc chuyӇn dӳ liӋu giӳa thiӃt bӏ và bӝ
nhӟ chính ÿѭӧc thӵc hiӋn bӣi CPU khi nhұp/xuҩt ÿѭӧc lұp trình, hay ÿѭӧc chuyӇn tҧi
tӟi bӝ ÿiӅu khiӇn DMA. Module nhân ÿiӅu khiӇn mӝt thiӃt bӏ là mӝt trình ÿiӅu khiӇn
thiӃt bӏ. Giao diӋn lӡi gӑi hӋ thӕng cung cҩp tӟi ӭng dөng ÿѭӧc thiӃt kӃ ÿӇ quҧn lý
nhiӅu chӫng loҥi cѫ bҧn cӫa phҫn cӭng, sockets mҥng và bӝ ÿӃm thӡi gian ÿӃn ÿѭӧc
lұp trình.
HӋ con nhұp/xuҩt cӫa nhân cung cҩp nhiӅu dӏch vө. Các dӏch vө này là ÿӏnh
thӡi biӇu nhұp/xuҩt, vùng ÿӋm, vùng chӭa, quҧn lý lӛi và ÿһt trѭӟc thiӃt bӏ. Mӝt dӏch
vө khác là dӏch tên, ÿӇ tҥo nӕi kӃt giӳa các thiӃt bӏ phҫn cӭng và tên tұp tin tѭӧng
trѭng ÿѭӧc dùng bӣi ӭng dөng. Nó liên quan nhiӅu cҩp ánh xҥ mà dӏch tӯ tên chuӛi
ký tӵ tӟi mӝt trình ÿiӅu khiӇn thiӃt bӏ xác ÿӏnh và ÿӏa chӍ thiӃt bӏ và sau ÿó tӟi ÿӏa chӍ
vұt lý cӫa cәng nhұp/xuҩt hay bӝ ÿiӅu khiӇn bus
Các lӡi gӑi hӋ thӕng nhұp/xuҩt tính chi phí theo thuұt ngӳ tiêu tӕn CPU vì
nhiӅu lӟp phҫn mӅm giӳa thiӃt bӏ vұt lý và ӭng dөng. Các lӟp này ngө ý chi phí
chuyӇn ngӳ cҧnh ÿӇ ÿi qua phҥm vi bҧo vӋ cӫa nhân, cӫa tín hiӋu và bӝ quҧn lý ngҳt
ÿӇ phөc vө các thiӃt bӏ nhұp/xuҩt, và cӫa tҧi trên CPU và hӋ thӕng bӝ nhӟ ÿӇ chép dӳ
liӋu giӳa vùng ÿӋm nhân và không gian ӭng dөng.
Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 253
Các file đính kèm theo tài liệu này:
- giaotrinhhedieuhanh2_0328.pdf