5.3.1 Semaphore
Hình 5-5: truy͉n thơng q trình
Semaphores là mӝt cҩu trúc dӳ liӋu ÿѭӧc ÿӏnh nghƭD ÿӇ loҥi trӯ khҧ năng xung ÿӝt trong quá trình chia sҿtài nguyên cӫa các tác vөtrong hoҥt ÿӝng cӫa hӋthӕng.
Semaphores hӛ trӧhai hoҥtÿӝng chínhQKѭsau:
wait(semaphore): giҧm và khoá cho tӟi khisemaphore ÿѭӧc mӣ
signal(semaphore): WăQJ và cho phép thêm mӝt luӗng mӟi ÿѭӧc tham gia
hoҥtÿӝng
Trong hoҥt ÿӝng phӕi hӧp cùng vӟi semaphore có mӝt hàng ÿӧi gӗm các tác vө cҫn ÿѭӧc thӵc thi sӁcó mӝt sӕtình huӕng hoҥtÿӝng cѫbҧnQKѭ sau:
Khi mӝt luӗng (thread) gӑiwait():
x NӃusemaphore ÿѭӧc mӣ thì luӗngÿysӁ ÿѭӧc gia nhұp và tiӃp tөc thӵc thi
x NӃu semaphore ÿDQJ bӏ ÿyQJWKì nhánh ÿy sӁ bӏ khoá và phҧi nҵm
http://www.ebook.edu.vn
This Document is Prepared by Dr. Bui Trung Thanh
9
signal() sӁmӣsemaphore:
x nӃu mӝt luӗngÿDQJnҵm trong hàngÿӧi và khơng bӏkhố
x nӃu khơng có luӗng nào trong hàng ÿӧi và tín hiӋu signal sӁ ÿѭӧc nhӟ và dành cho luӗng tiӃp theo
Các loҥiSemaphore
Mutex semaphore
9 Cho phép ÿLӅu khiӇn hoҥt ÿӝng truy nhұp ÿѫQ lҿ vào tài nguyên chia sҿ cӫa hӋthӕng.
9 Ĉҧm bҧo loҥi trӯ xung ÿӝt trong hoҥt ÿӝng truy nhұp ÿӗng thӡi cӫa nhiӅu tác vө, và chӍcó mӝt tác vө ÿѭӧc thӵc thi tҥi mӛi thӡiÿiӇm.
Counting semaphore
9 ĈLӅu khiӇn tài nguyên mà có thӇ phөc vө cùng mӝt lúc nhiӅu tác vө hoһc mӝt nguӗn tài nguyên cho phép phөc vө mӝt sӕ nhҩt ÿӏnh các tác vө khơng ÿӗng bӝvà hoҥtÿӝngÿӗng thӡi.
9 NhiӅu luӗng có thӇtruyӅn Semaphore
9 Sӕ Oѭӧng luӗng ÿѭӧc quyӃt ÿӏnh bӣi biӃn ÿӃm N cӫaSemaphore
Thӵc chҩt mutex semaphore là mӝt dҥng ÿһc biӋt cӫa counting semaphore vӟi
biӃn ÿӃm N=1. Thӵc thiSemaphore
http://www.ebook.edu.vn
This Document is Prepared by Dr. Bui Trung Thanh
9 Sӱ dөng Semaphore trong viӋc ÿӗng bӝ hai q trình tҥo và sӱ dөng hҥng mөc thơng qua bӝ ÿӋm trung gian.
Nhұn xét:
9 Semaphores có thӇ ÿѭӧc sӱ dөng ÿӇ giҧi quyӃt bҩt kǤmӝt bài toán hay vҩn ÿӅÿӗng bӝtruyӅn thӕng nào
9 Tuy nhiên chúng có mӝt sӕnhѭӧcÿLӇm
http://www.ebook.edu.vn
This Document is Prepared by Dr. Bui Trung Thanh
9 ÿӝng ÿӗng bӝ nên có thӇ truy nhұp bҩt kǤ ÿkX trong hӋ thӕng o khó kiӇm sốt
o Khơng có sӵ liên kӃt chһt chӁ giӳasemaphore và dӳ liӋu màÿѭӧc nó ÿLӅu khiӇn.
o Ĉѭӧc sӱ dөng ÿӗng thӡi cho cҧ viӋc loҥi trӯ xung ÿӝt (mutual
exclusion) và hoҥtÿӝngÿӗng bӝcho các tác vө(scheduling)
5.3.2 Monitor
Monitor là mӝt ngơn ngӳ lұp trình ÿѭӧc xây dӵng ÿӇ ÿLӅu khiӇn viӋc truy nhұp vào vùng dӳ liӋu chia sҿ trong hoҥtÿӝng cӫa hӋ thӕng. Mã FKѭѫQJ trình ÿӗng bӝ ÿѭӧc bә sung vào trong bӝbiên dӏch và thӵc thi khi chҥyFKѭѫng trình.
9 Monitorlà mӝtmodulÿyQJgói
x Các cҩu trúc dӳliӋѭӧc chia sҿ
x Các thӫtөc hoҥtÿӝng thao tác trên các cҩu trúc dӳliӋu chia sҿ
x Ĉӗng bӝ các luӗng thӵc thiÿӗng thӡi mà có thӇ kích hoҥt các thӫ tөc trong hoҥtÿӝng hӋthӕng
9 Monitor có thӇ bҧo vӋ dӳ liӋu khӓi sӵ truy nhұp khơng có cҩu trúc. Nó ÿҧm
bҧo rҵng các luӗng truy nhұp vào dӳliӋu thông qua các thӫ tөc WѭѫQJ tác theo nhӳng cách hӧp pháp và có kiӇm sốt.
9 Monitorÿҧm bҧo loҥi trӯxungÿӝt
x ChӍ có mӝt luӗng có thӇ thӵc thi bҩt kǤ thӫ tөc nào tҥi mӛi mӝt thӡi ÿLӇm (luӗng trong monitor)
x NӃu có mӝt luӗng ÿDQJ thӵc thi bên trong mӝt monitor nó sӁ khố các luӗng khác muӕn vào, doÿymonitorcNJQJphҧi có mӝt hàngÿӧi.
http://www.ebook.edu.vn
This Document is Prepared by Dr. Bui Trung Thanh
9