Giáo trình hệ điều hành – V1.0 - Deadlock

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

pdf125 trang | Chia sẻ: nguyenlam99 | Lượt xem: 987 | Lượt tải: 0download
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ͣ tr͹c 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:

  • pdfgiaotrinhhedieuhanh2_0328.pdf
Tài liệu liên quan