Lecture 11, 12
- 2. Àãóóëãà
• ¯Ñ áè÷èõ.
• Ïðîöåññèéí çàð÷èì
• Ïðîöåññ òºëºâëºëò
• Ïðîöåññóóä äýýðõ ¿éëäë¿¿ä
• Ïðîöåññóóäûí õàìòðàí àæèëëàãàà
• Client-Server õàðèëöàà
- 3. ¯éëäëèéí ñèñòåì áè÷èõ
• Ñèñòåìèéí ïðîãðàì÷ëàëûí õýë àøèãëàí áè÷äýã.
• ALGOL
• Assembler
• C
• C++
• Ýõíèé ¿åèéí ¯Ñ-¿¿äèéã èõýâ÷ëýí äîîä òºâøíèé õýë áîëîõ
assembler õýë äýýð áè÷äýã áàéñàí.
• Äàðàà íü èë¿¿ äýýä òºâøíèé õýë áîëîõ Ñ, Ñ++ äýýð áè÷äýã
áîëñîí.
(UNIX, OS/2, Windows NT)
• Äýýä òºâøíèé õýë äýýð áè÷èõèéí äàâóó òàë íü:
• Îéëãîæ õºãæ¿¿ëýõýä õÿëáàð.
• Èë¿¿ áàãà áè÷èãëýëòýé.
• ªºð á¿òýöòýé êîìïüþòåð ðóó øèëæ¿¿ëýõýä áîëîìæòîé. Æèøýý
íü MS-DOS ñèñòåì íü 8088 ïðîöåññîðò ë õýðýãëýãääýã
êîìàíäóóäààñ òîãòîõ àññåìáëåð õýë äýýð áè÷èãäñýí òóë áóñàä
òºðëèéí êîìïüþòåð äýýð àæèëäàãã¿é. Äýýä òºâøíèé õýë íü (C,
C++) ïðîöåññîðîîñ ¿ë õàìààðñàí åðºíõèé õýëáýðèéí
êîìàíäóóäòàé áàéäàã.
- 4. ¯éëäëèéí ñèñòåì áè÷èõ
• UNIX íü Ñ äýýð áè÷èãäñýí áºãººä äàðààõ òºðëèéí
êîìïüþòåðóóä äýýð àñóóäàëã¿é àæèëëàæ ÷àäíà:
• Intel 8086
• Pentium
• Motorola 680X0
• Ultra SPARC
• Compaq Alpha
• MIPS RX000
• Äýýä òºâøíèé õýë àøèãëàí ¯Ñ áè÷èõèéí ãîë äóòàãäàëòàé òàë
íü:
• ¯Ñ-í õóðä äîîä òºâøíèé õýëýýð áè÷èãäñýí ¯Ñ-òýé õàðüöóóëáàë
óäààí áîëîõ áîëîìæòîé. Ó÷èð íü äýýä òºâøíèé õýëýýð
áè÷èãäñýí ¯Ñ-ã êîìïèëÿòîð íü äîîä òºâøíèé õýë ð¿¿
õºðâ¿¿ëýõäýý íýìýëò èë¿¿ îëîí êîä ¿¿ñãýäýã.
- 5. ¯éëäëèéí ñèñòåì áè÷èõ
• Ãýõäýý íýãýíò ¯Ñ áè÷èãäýýä àëäààã¿é àæèëëàæ
áàéâàë ñèñòåìèéí õàìãèéí èõ à÷ààëàëòàé
àøèãëàãääàã (ñàíàõ îéí ìåíåæìåíò, ïðîöåññîð
õóâààðèëàëò) æèæèã õýìæýýíèé êîäûã òóñä íü
àññåìáëåðààð áè÷èæ ºã÷ áîëíî.
• ¯Ñ-ã áè÷ñýíèé äàðàà êîìïüþòåðò ñóóëãàæ ºãíº.
Êîìïüþòåð íü kernel-ã õààíààñ à÷ààëàõàà ÿàæ
ìýäýõ âý?
• Êîìïüþòåð àñààä êåðíåëèéã îëæ à÷ààëàõûã boot
õèéæ áàéíà ãýäýã.
• Èõýíõ êîìïüþòåðóóäûí ROM äîòîð æèæèã
õýìæýýíèé êîä áàéäàã. Ýíý êîä íü êîìïüþòåð
àñàíãóóò àæèëëàäàã áºãººä ¿¿ðýã íü êåðíåëèéã
äèñêíýýñ îëæ à÷ààëàõ ÿâäàë þì. Ýíý ïðîãðàìûã
bootstrap program ãýäýã.
- 6. ¯éëäëèéí ñèñòåì áè÷èõ
• ¯Ñ - ¿¿ä íü õýìæýýãýýðýý õýäýí Mb-c õýä
õýäýí Gb õ¿ðòýë áàéæ áîëäëîã.
• Æèøýý íü DOS ñèñòåì íü íýã óÿí äèñê äýýð
áàãòäàã. ¯¿íèéã áèä ñèñòåì äèñê ãýæ
íýðëýäýã. Ñèñòåì äèñêèéã õèéãýýä
êîìïüþòåðèéã àñààõàä bootstrap ïðîãðàì íü
óÿí äèñêýíä áàéãàà ¯Ñ-ã (DOS) à÷ààëæ
óäèðäëàãûã øèëæ¿¿ëäýã.
• ¯¿íèé ¿ð ä¿íä æèæèã Êîìàíäûí
Áîëîâñðóóëàã÷ ãàð÷ èðäýã. ¯¿íèéã àøèãëàí
ãàðààð êîìàíä ºãñíººð ¯Ñ-í ýíãèéí
¿éëäë¿¿äèéã ã¿éöýòãýõ áîëîìæòîé áîëäîã.
- 7. ¯éëäëèéí ñèñòåì áè÷èõ
• DOS ñèñòåì àøèãëàí óÿí äèñê äýýð áàéãàà
bod1.java ôàéëûã c äèñêíèé java õàâòàñ ðóó õóóëæ
áàéíà:
- 8. Ïðîöåññ ìåíåæìåíò
• Ïðîöåññ íü (process çàðèìäàà job ÷ ãýäýã) ñàíàõ îéä
à÷ààëàãäñàí ïðîãðàì þì.
• Ïðîöåññò:
• Ïðîãðàìûí òîîëóóð (program counter): Îäîî
àæèëëàæ áàéãàà çàõèðàìæûí äàðàà àëü çàõèðàìæ
àæèëëàõûã çààæ áàéäàã. Ïðîöåññîð íü îäîî
àæèëëóóëæ áàéãàà çàõèðàìæàà àæèëëóóëñíû äàðàà
Ïðîãðàìûí Òîîëóóðò áàéãàà õàÿãààð äàðàà÷èéí
çàõèðàìæèéã îëæ àâ÷ àæèëëóóëàõ áà ýíý ¿åä òýðíèé
äàðàà÷èéí çàõèðàìæèéí õàÿã ýíý òîîëóóðò îðäîã.
• Còåê (Stack): Ëîêàë õóâüñàã÷, ôóíêöèéí àðãóìåíò,
áóöààõ óòãûí áàéðëàõ õàÿã çýðãèéã àãóóëñàí æèæèã
õýìæýýíèé ñàíàõ îé.
• ªãºãäëèéí õýñýã (Data section): Ýíä ïðîãðàìûí
ãëîáàëü õóâüñàã÷èä áàéðëàäàã.
- 9. Ïðîöåññèéí òºëºâ
• Ïðîöåññèéã á¿ðä¿¿ëæ áóé çàõèðàìæóóä íü äàðààëëàí
àæèëäàã.
• Ïðîöåññ á¿ðò òºëºâ áàéäàã áºãººä ¯Ñ íü ýíý òºëºâèéã õÿíàæ
ººð÷èëæ áàéäàã.
• Ïðîöåññèéí òºëºâ íü
• Øèíý (New): Ïðîöåññ ¿¿ñãýãäýæ áàéõäàà ýíý òºëºâò
îðøèíî.
• Àæèëëàõ (Running): Çàõèðàìæóóä íü ïðîöåññîðîîð
¿éë÷ë¿¿ëæ áàéõ ¿åä.
• Õ¿ëýýõ (Waiting): Ïðîöåññ íü ÿìàð íýã ¿éë ÿâäëûã õ¿ëýýæ
áàéõ ¿åä èéì òºëºâò áàéíà. (æø: îðîëò ãàðàëòûã äóóñàõûã
õ¿ëýýõ, ººð ïðîöåññîîñ ìýññýæ èðýõèéã õ¿ëýýõ…)
• Áýëýí (Ready): Ïðîöåññ òºâ ïðîöåññîðîîð ¿éë÷ë¿¿ëýõýä
áýëýí áîëñîí ¿åä ýíý òºëºâò îðíî.
• Äóóññàí (Terminated): Ïðîöåññ àæèëëàæ äóóññàí (á¿õ
çàõèðàìæóóä íü àæèëëàààä äóóññàí)
- 10. Õýðâýý ïðîöåññèéí á¿õ
çàõèðàìæ àæèëëàæ äóóñâàë
Õýðýâ ïðîöåññèéã Ïðîöåññ àíõ ñàíàõ îéä
Ïðîöåññèéí òºëºâ
óã ïðîöåññèéã äóóñëàà ãýæ
àæèëëàæ áàéõ ÿâöàä à÷ààëàãäàæ áàéõ ¿åä “Øèíý”
¿çýýä “Äóóññàí” òºëºâò Ïðîöåññ ¿¿ñãýãäýæ äóóñàíãóóò
“òàñàëäàë” ¿¿ñâýë òºëºâò áàéäàã.
îðóóëäàã. ¯Ñ íü “äóóññàí” ò¿¿íèéã “Áýëýí” òºëºâ ð¿¿ ¯Ñ
ò¿¿íèéã çîãñîîæ “Áýëýí”
òºëºâò áàéãàà ïðîöåññóóäûã
òºëºâò îðóóëààä ¿¿ññýí òºëºâèéí äèàãðàì:
• Ïðîöåññèéí øèëæ¿¿ëíý.
ñàíàõ îéãîîñ çàéëóóëæ
òàñàëäëûã òºâ ïðîöåññîð àæèëëàæ Ïðîöåññ õóâààðèëàã÷ íü
Õýðýâ ïðîöåññ
ñàíàõ îéã ÷ºëººëäºã.
áîëîâñðóóëæ ýõýëäýã. õèéæ ýõýëáýë “Áýëýí” òºëºâò áàéãàà
áàéõäàà Î/Ã
Óã ïðîöåññèéí Î/Ã-í (ýðõèéã
ïðîöåññóóäààñ ñîíãîí
ò¿¿íèéã ¿¿íèéãýý äóóñãàòàë
àæèëëàãàà äóóñâàë ¯Ñïðîöåññîðò
íü õàðãàëçàí) òºâ ò¿¿íèé
íü ò¿ð ïðîöåññîðîîñ
òºëºâèéã “Áýëýí” òºëºâò Ýíý
¿éë÷ë¿¿ëýõýýð ºãíº.
ãàðãàæ “Õ¿ëýýõ” òºëºâò
îðóóëíà. Èíãýñíýýð óã òºëºâ
ñîíãîãäñîí ïðîöåññèéí
îðóóëäàã. Ýíý íü Î/Ã-ã
ïðîöåññ òºâ ïðîöåññîðîîð
íü “Àæèëëàõ” áîëíî.
äóóñàõûã óã ïðîöåññ
¿éë÷ë¿¿ëýõýä áýëýí áîëëîî
õ¿ëýýæ áàéíà ãýñýí ¿ã.
ãýäãèéã èëòãýäýã.
- 11. Ïðîöåññ Óäèðäàõ Áëîê - ÏÓÁ
(Process Control Block - PCB)
• ¯Ñ íü ïðîöåññ á¿ðò ÏÓÁ õýìýýõ òóõàéí ïðîöåññòîé õîëáîîòîé
ìýäýýëëèéã àãóóëàõ îðîí çàéã ºãäºã. Ýíä áàéãàà ìýäýýëëèéã
íü àøèãëàí ïðîöåññèéã áîëîâñðóóëäàã.
• ÏÓÁ-ä :
• Ïðîöåññèéí òºëºâ (process state)
• Ïðîöåññèéí äóãààð (process number)
• Ïðîãðàìûí Òîîëóóð (program counter)
• Ïðîöåññîðûí ðåãèñòåð¿¿ä (CPU registers)
• Ïðîöåññîð õóâààðèëàõ ìýäýýëýë (SPU scheduling info)
• Ñàíàõ îé õóâààðèëàõ ìýäýýëýë (memory management info)
• Á¿ðòãýëèéí ìýäýýëýë (accounting info)
• Î/Ã-ûí òºëºâèéí ìýäýýëýë (I/O status info)
- 12. Ïðîöåññ Óäèðäàõ Áëîê - ÏÓÁ
(Process Control Block - PCB)
• Ïðîöåññèéí òºëºâ (process state)
• Ýíä Øèíý, Àæèëëàõ, Õ¿ëýýõ, Áýëýí, Äóóññàí
çýðýã óòãóóäûí àëü íýã íü áàéíà.
• Ïðîöåññèéí äóãààð (process number)
• Ïðîöåññèéí ¿éëäëèéí ñèñòåì äýõ äàõèí
äàâòàãäàõã¿é äóãààð. Ýíý äóãààðààð íü
ïðîöåññóóäûã ÿëãàíà.
• Ïðîãðàìûí Òîîëóóð (program counter)
• Ýíý ïðîöåññèéí òºâ ïðîöåññîð ðóó îðîõ
äàðàà÷èéí çàõèðàìæèéí õàÿãèéã àãóóëíà.
- 13. Ïðîöåññ Óäèðäàõ Áëîê - ÏÓÁ
(Process Control Block - PCB)
• Ïðîöåññîðûí ðåãèñòåð¿¿ä (CPU registers)
• Êîìïüþòåðèéí òºð뺺ñ õàìààð÷ ýíý ðåãèñòåð¿¿äèéí òîî
øèðõýã áîëîí õýìæýý íü ÿíç á¿ð áàéæ áîëíî. Ïðîãðàìûã
àæèëëàæ áàéõ ÿâöàä òàñàëäàë ¿¿ñýí óã ïðîãðàìûã çîãñîîõ
øààðäëàãà ãàðâàë òóõàéí ¿åä áàéñàí ðåãèñòð¿¿äèéí óòãûã
Ïðîãðàìûí Òîîëóóðûí õàìò õàäãàëäàã. Òàñàëäëûã
áîëîâñðóóëæ äóóññàíû äàðàà óã ïðîãðàìûí àæèëëàãààã
ñýðãýýõäýý ýíä õàäãàëñàí óòãóóäûã ïðîöåññîðûí
õàðãàëçàõ ðåãèñòåð¿¿äýä à÷ààëààä Ïðîãðàìûí Òîîëóóðûã
ìºí ñýðãýýñíèé äàðàà àæèëëóóëíà. Ðåãèñòåðèéí òºðºë íü:
• Öóãëóóëàã÷ ðåãèñòåð¿¿ä
• Èíäåêñ ðåãèñòåð¿¿ä
• Ñòåêèéí çààã÷ ðåãèñòð
• Åðºíõèé çîðèóëàëòûí ðåãèñòð
• Òºëºâèéí ðåãèñòð
• Ïðîöåññîð õóâààðèëàõ ìýäýýëýë (SPU scheduling info)
• Ñàíàõ îé õóâààðèëàõ ìýäýýëýë (memory management info)
• Á¿ðòãýëèéí ìýäýýëýë (accounting info)
• Î/Ã-ûí òºëºâèéí ìýäýýëýë (I/O status info)
- 14. Ïðîöåññ Óäèðäàõ Áëîê - ÏÓÁ
(Process Control Block - PCB)
• Ïðîöåññîð õóâààðèëàõ ìýäýýëýë (SPU scheduling info)
• Ïðîöåññèéí ýðõ
• Ïðîöåññóóäûí æàãñààëòàíä áàéðëàæ áàéãàà äóãààð
• Ñàíàõ îé õóâààðèëàõ ìýäýýëýë (memory management info)
• Ñóóðü ðåãèñòåð
• Õÿçãààð ðåãèñòð
• Õóóäàñíû õ¿ñíýãò
• Ñåãìåíòèéí õ¿ñíýãò
• Á¿ðòãýëèéí ìýäýýëýë (accounting info)
• Ïðîöåññîðò áàéõ õóãàöàà
• Íèéò áàéñàí õóãàöàà
• Ïðîöåññèéí äóãààð
• Î/Ã-ûí òºëºâèéí ìýäýýëýë (I/O status info)
• Óã ïðîöåññòîé õîëáîãäîæ àæèëëàæ áàéãàà òºõººðºìæ¿¿äèéí
æàãñààëò
• Ýíý ïðîöåññèéí îíãîéëãîñîí îäîî àøèãëàãäàæ áàéãàà
ôàéëóóäûí æàãñààëò
- 17. Ïðîöåññ P1 àæèëëàæ áàéíà.
Ýíý õîîðîíä ïðîöåññ P0
Ïðîöåññ P1 àæèëëàæ áàéíà.
Äàõèí òàñàëäàë ¿¿ññýí òóë
“Áýëýí” Ïðîöåñ P0 áîëîí P1
òºëºâòýéãýýð
Ýõëýýä ïðîöåññ P0 àæèëëàæ
P1 ïðîöåññûí òºëºâèéã
õ¿ëýýñýýð¯Ñ õýðõýí ýýëæëýí
õî¸ðûã áàéíà.
áàéíà.
ÏÓÁ-ä íü àæèëëóóëæ áàéãààã õàðúÿ.
(PCB1) õèéæ
õàäãàëààä ¿¿ññýí òàñàëäëûã
Òàñàëäëûã
áîëîâñðóóëíà.
¯¿ññýí òàñàëäëûã áîëîâñðóóëñíû äàðàà ¯Ñ
áîëîâñðóóëæ áàéíà. íü P0 ïðîöåññûã
Ãýíýò òàñàëäàë ¿¿ññýí òóëñîíãîâ.
àæèëëóóëàõààð
ïðîöåñ P0-ãÒèéìýýñ ò¿¿íèé òºëºâèéã
çîãñîîæ òýð ¿åèéí
¯¿ññýí òàñàëäëûã òºâ
ðåãèñòð¿¿äèéí ÏÓÁ-ñ íü (PCB0)
íü óòãà áîëîí
ïðîöåññîðîîð áîëîâñðóóëæ
Òàñàëäëûã áîëîâñðóóëæ äóóññàíû óòãûã ¯Ñ
Ïðîãðàìûí Òîîëóóðûíõ íü äàðàà
P0 ïðîöåññ àæèëëàæ ñýðãýýãýýä óäèðäëàãûã
áàéíà. Ýíý õîîðîíä P0 áîëîí P1
íü “áýëýí” ïðîöåññóóäûí äàðààëëààñ P1
áàéíà.
óã ïðîöåññèéí ÏÓÁ-ä õàäãàëíà
P0-ä øèëæ¿¿ëæ áàéíà.
ïðîöåññóóä “Áýëýí”
ïðîöåññûã àæèëëóóëàõààð ñîíãîâ. Òèéìýýñ óã
(PCB0)
ïðîöåññóóäûí äàðààëàëä ñóë
ïðîöåññûí ÏÓÁ-ñ ýíý ïðîöåññèéí õàìãèéí
çîãñîí (idle) ïðîöåññîðûã
ñ¿¿ëä àæèëëàæ áàéõàä áàéñàí ïðîöåññîðûí
ñóëðàõûã õ¿ëýýæ áàéíà.
ðåãèñòåð¿¿äèéí óòãà, Ïðîãðàìûí Òîîëóóðûí
óòãûã àâ÷ ïðîöåññîðò õèéãýýä óäèðäëàãûã P1-ä
øèëæ¿¿ëíý.
- 18. Ïðîöåññèéí äàðààëàë
• Ïðîöåññ ñàíàõ îéä à÷ààëàãäìàãöàà Ïðîöåññèéí
Äàðààëàëä (Process Queue) á¿ðòãýãäýíý.
• Ýíý äàðààëàëä ñàíàõ îéä áàéãàà á¿õ ïðîöåññóóä
æàãñäàã.
• Ñàíàõ îéä áàéãàà “Áýëýí” òºëºâòýé ïðîöåññóóä íü
“Áýëýí Äàðààëàë”-ä (Ready Queue) õàäãàëàãäàíà.
• Ýíý äàðààëàëä ïðîöåññóóäûí ÏÓÁ-ûí ýõëýë áà
òºãñãºëèéí õàÿãóóä áàéðëàíà.
• ̺í ÏÓÁ á¿ð íü äàðàà÷èéí ïðîöåññèéí ÏÓÁ-í
õàÿãèéã àãóóëñíààð äàðààëàë áîëíî.
- 19. Ïðîöåññèéí äàðààëàë
• ¯Ñ-ä ìºí ººð äàðààëëóóä áàéäàã.
• Ïðîöåññóóä Î/Ã-ã õ¿ëýýæ “Õ¿ëýýõ” ãîðèìä
îðñîí áîë ÿìàð òºõººðºìæèéã õ¿ëýýæ
áàéñàí óã òºõººðºìæèéã õ¿ëýýæ áàéãàà
ïðîöåññóóäûí äàðààëàëä æàãñàíà.
• Êîìïüþòåðò àøèãëàãäàæ áàéãàà
òºõººðºìæ á¿ðò çîðèóëñàí èéì
äàðààëëóóäûã ¯Ñ çîõèîí áàéãóóëäàã.
• Èéì äàðààëëóóäûã “Òºõººðºìæèéí
Äàðààëàë” (device queue) ãýíý.
- 20. Õàìãèéí ñ¿¿ë÷èéí ÏÓÁ- Äàðààëàë äàõü
í äàðàà÷èéí çààã÷ íü ÏÓÁ-óóä áèå
Terminal unit 0 òºõººðºìæèéí äàðààëàëä íýãáèåýý çààñàí
Õîîñîí áóþó “NULL” ïðîöåññ
áàéíà. Ýíý ïðîöåññ óòãà “Õ¿ëýýõ” òºëºâò îðøèíî.
ìºí çààäàã. áàéäàã.
Òºõººðºì溺ñ ìýäýýëýë àâ÷ äóóññàíûõàà äàðàà ýíý
ïðîöåññ “Áýëýí” òºëºâòýé ïðîöåññóóäûí äàðààëàë
Ýíý äàðààëëûí Tail áóþó
ðóó äàðààëëûí Head áóþó
Ýíý øèëæèõ äàðààëàëä PCB7 áà PCB2
Ýíý áîëíî.
Òîëãîé õýñýãò äàðààëàë
Áýëýí òºëºâò îðøèæ õî¸ð ÏÓÁ æàãññàí áàéíà.
ãýñýí
Ñ¿¿ë õýñýãò äàðààëàë äàõ
áàéãàà ïðîöåññóóäûí ýõíèé ÏÓÁ-í àæèëëàõàä
äàõ õàìãèéí õýëáýë îäîî
ªºðººð
õàìãèéí ñ¿¿ëèéí
äàðààëàë (Áýëýí áàéíà. õàÿã
õàÿã
ïðîöåññèéí ÏÓÁ-í ïðîöåññ ñèñòåìä
áýëýí õî¸ð
áàéíà tape unit0
Mag
áàéíà. ãýñýí ¿ã. Ïðîöåññîð
Äàðààëàë) òºõººðºìæèéí äàðààëàëä
Mag tape unit1
÷ºëººòýé áîëîíãóóò ýíý õî¸ð
îäîîãîîð ïðîöåññóóä
ïðîöåññèéí àëü äàðààëàëä ÷
òºõººðºìæèéí íýãèéã íü ñîíãîí
îðîîã¿é áàéíà. àëãà.íü óã
àâ÷ïðîöåññ Ýíý áîëíî.
àæèëëóóëàõ
òºõººðºìæèéã õýðýãëýõèéã
õ¿ññýí ïðîöåññ îäîîãîîð
Õàðèí disk unit 0 òºõººðºìæèéí
ãàðààã¿é áàéíà ãýñýí ¿ã.
äàðààëàëä ãóðâàí ïðîöåññ æàãññàí
áàéíà. Ýíý ãóðâàí ïðîöåññ íü
äèñêòýé àæèëëàõûí òóëä “Õ¿ëýýõ”
òºëºâò áàéãàà þì.
- 21. Ïðîöåññ òºëºâëºëò
• Øèíýýð ¿¿ññýí ïðîöåññ íü “Áýëýí Äàðààëàë”-ä
îðíî.
• Áýëýí Äàðààëëààñ ïðîöåññîðò îðæ àæèëëàäàã.
Ïðîöåññîðò áàéõ ¿åä äàðààõ òîõèîëäëóóäûí àëü
íýã íü áîëäîã:
• Ïðîöåññ íü Î/Ã-í õ¿ñýëò ãàðãàæ “Òºõººðºìæ Äàðààëàë”-ä
îðíî. Î/Ã äóóñàõ ¿åä ò¿¿íèéã áóöààí “Áýëýí Äàðààëàë”-ä
îðóóëíà.
• Õ¿¿ ïðîöåññ ¿¿ñãýýä ò¿¿íèéã àæèëëàæ äóóñàõûã õ¿ëýýíý.
Õ¿¿ ïðîöåññ äóóñàõàä óã ïðîöåññ “Áýëýí Äàðààëàë”-ä
îðæ àæèëëàõ ýýëæýýõ õ¿ëýýíý.
• Òàñàëäàë ¿¿ñâýë óã ïðîöåññûã õ¿÷ýýð ïðîöåññîðîîñ
ãàðãàí “Áýëýí Äàðààëàë”-ä áàéðëóóëíà.
- 22. Ïðîöåññ òºëºâëºëò
• Ïðîöåññîîñ ººðººñºº õ¿¿ ïðîöåññ
(child process) ¿¿ñãýæ ººðèéí àæëûí
çàðèì õýñãèéã õèéëãýæ áîëíî.
• Íýã ïðîöåññîîñ õýäýí ÷ õ¿¿ ïðîöåññ
¿¿ñýæ áîëíî.
• Õ¿¿ ïðîöåññ ¿¿ñãýõèéí òóëä
ñèñòåìèéí “Fork” äóóäàëòûã
àøèãëàäàã.
- 23. Èéì áàéäëààð óã ïðîöåññ á¿õ àæëàà
äóóñãàí ñèñòåìýýñ ãàðòëàà ýíý çàìààð
Ïðîöåññ òºëºâëºëòèéíäóóñìàãö
öèêëäýí àæèëëàäàã. Ïðîöåññ äèàãðàì
ò¿¿íèé ÏÓÁ-ã á¿õ äàðààëëààñ óñòãàäàã.
Õ¿¿ ïðîöåññïðîöåññ àæèëëàæ
Õ¿¿ ¿¿ñãýýä óã
ïðîöåññèéã àæèëëàæ äóóñòàë íü
äóóñâàë ýõ ïðîöåññ Õ¿¿ ïðîöåññ íü àæèëëàæ
õ¿ëýýæ áîëíî. Ýíý õîîðîíä îðæ
“áýëýí äàðààëàë”-ä áàéíà.
“Õ¿ëýýõ” òºëºâò îðøèíî.
ßìàð àæèëëàõ ýýëæýý
íýã òàñàëäëûã
Îðîëòûí ¿éë àæèëëàãàà
õ¿ëýýíý.
õ¿ëýýõýýð
Óã òàñàëäëûã
Õ¿ëýýñýí òàñàëäàë ïðîöåññîðîîñ(æø óÿí äèñêíýýñ
äóóñìàãö ãàð÷
àæèëëàæ äóóññàíû
Ïðîöåññ Ïðîöåññ òºâ
¿¿ñýíã¿¿òýý
ôàéëûíõàà ºãºãäëèéã
¿¿ñýæ áàéíà. “Áýëýí áîëíî. “Áýëýí Àæèëëàõ ýýëæ íü
äàðàà ïðîöåññîðîî𠺺𺺠äóóñààä
ìºí Ïðîöåññ
Äàðààëàë”-ä îðíî.
àâ÷èõñàí áîë) áóöààä áýëýí
Äàðààëàë”-ä ñèñòåìýýñ ãàð÷ áîëíî. ïðîöåññ “Áýëýí
Ýíä àæèëëàõàäîðíî.áýëýí
¿éë÷ë¿¿ëæ áàéõàä áîëîíãóóò
Î/Ã-ã äàðààõáîëíî. Æèøýý íüîðæ Äàðààëàë”-ñ
ïðîöåññóóäûí äàðààëàëä
ïðîöåññóóä “îî÷èðëîäîã” Î/Ã-í ¿éë àæèëëàãàà ãàð÷
õ¿ñýæ òîõèîëäëóóäûí
ïðîöåññîðîîð ¿éë÷ë¿¿ëýõ
Òºâ ïðîöåññîðîîð ¿éë÷ë¿¿ëýõ õóãàöààîðîëòûí äóóñòàë óã õàíäñàí
Õ¿ëýýñýí íü
óÿí(Ready Queue) áîëíî. ïðîöåññîðîîð ¿éë÷ë¿¿ëíý.
äèñêíýýñ ôàéë óíøèõ
àëü íýã ¿¿ñýæ
ýýëæýý õ¿ëýýæ ýõýëíý.
¿éë àæèëëàãàà
õ¿ñýëò ãàðãàõ.
äóóñàæ áîëíî. Òýãâýë õóãàöààíû¯¿íä: òºõººðºìæíèéõºº
ÿâàãäàæ áàéíà
òàñàëäàë ¿¿ñýí óã ïðîöåññûã äàðààëàëä õ¿ëýýíý.
ïðîöåññîðîîñ õ¿÷ýýð ãàðãàí “áýëýí
äàðààëàë”-ä îðóóëíà.
- 24. Ïðîöåññ òºëºâëºã÷
(Process Scheduler)
• Îéðûí òºëºâëºã÷ (short-term scheduler)
• Áýëýí ïðîöåññóóäûí äàðààëëààñ àëü ïðîöåññèéã ñîíãîæ
ïðîöåññîðò îðóóëàí àæèëëóóëàõ âý ãýäãèéã øèéääýã
ïðîãðàì
• Ýíý ïðîãðàì ìàø èõ äàâòàìæòàé àæèëëàäàã òóë êîä íü
àëü áîëîõ áîãèíîõîí áàéõ õýðýãòýé. Èõ áàéâàë ç¿ãýýð ë
àæèëëàõ ïðîöåññ ñîíãîõîä ¯Ñ íü èõ öàã çàðäàã áîëíî.
• Õîëûí òºëºâëºã÷ (long-term scheduler)
• ßìàð ïðîöåññèéã “Áýëýí” ïðîöåññóóäûí äàðààëàëä
îðóóëàõ âý ãýäãèéã øèéääýã ïðîãðàì. Òºõººðºìæ á¿ð
äýýð îëîí òîîíû ïðîöåññóóä õ¿ëýýæ áàéæ áîëäîã òóõàé
¿çñýí. Òýãâýë ýäãýýðýýñ àëèéã íü áýëýí äàðààëàëä
îðóóëàõûã ýíý ïðîöåññ øèéäíý.
- 25. Ïðîöåññ òºëºâëºã÷
(Process Scheduler)
• Õýðâýý îëîí òîîíû ïðîöåññóóä à÷ààëàãäààä
ñàíàõ îé ä¿¿ðâýë ñàíàõ îéä áàéãàà ïðîöåññóóäààñ
õàìãèéí áàãà ýðõòýéãýýñ íü ýõëýýä ñîíãîí àâ÷
ñàíàõ îéãîîñ ãàðãàí õàòóó äèñê äýýðõ ò¿ð ñàíàõ
îéí çàéä õóóëäàã (¿¿íèéã swapp out áóþó 纺ëò
ãýíý). Òýãýýä òýäíèé îðîíä ¿¿ññýí ñàíàõ îéí
÷ºëººò çàéíä ºíäºð ýðõ á¿õèé øèíý ïðîöåññóóäûã
à÷ààëäàã.
• Ïðîöåññóóä àæèëëàñààð äóóñàæ ñàíàõ îé ñóëðààä
èðâýë óã äèñê äýýð ò¿ð õàäãàëàãäñàí “Õ¿ëýýëò”-íä
áàéãàà ïðîöåññóóäûã áóöààí ñàíàõ îé ðóó 纺æ
(swap in) ¿ðãýëæë¿¿ëýí àæèëëóóëíà.
• Õàòóó äèñê äýýð èíãýæ ïðîöåññóóäûã ò¿ð õàäãàëàõ
çîðèóëàëòòàé àøèãëàäàã ñàíàõ îéã Âèðòóàë Ñàíàõ
Îé (Virtual Memory) ãýäýã.
- 26. Õàòóó äèñê äýýðõ
Âèðòóàë ñàíàõ îé
Ïðîöåññ òºëºâëºã÷
äîòîð îãò àæèëëààã¿é
ýñâýë òàë íü Âèðòóàë ñàíàõ îé ðóó
(Process Scheduler)
àæèëëàñàí
ïðîöåññóóä ñàíàõ îéã
纺ãäºæ áîëíî.
Ñàíàõ îé ñóëðàíãóóò Õîëûí
Òºëºâëºã÷ íü ýäãýýð õ¿ëýýæ Áýëýí ïðîöåññóóäûí
ñóëðàõûã õ¿ëýýí áàéæ ïðîöåññ òºâ
Óã áàéãàà ïðîöåññóóäààñ àëü
Òºâ Ïðîöåññîðîîñ óã
áàéäàã. äàðààëëààñ Îéðûí
ïðîöåññîðîîð íü àæëàà
ïðîöåññ
íýãèéã íü ñîíãîí àâ÷ áóöààí Òºëºâëºã÷ íü ïðîöåññ
¿éë÷ë¿¿ëæ áàéíà.
äóóñãààä ñèñòåìýýñ
ñàíàõ îé äàõü “Áýëýí ñîíãîí òºâ ïðîöåññîð
ãàð÷ áîëíî.
Äàðààëàë”-ä îðóóëäàã. ðóó îðóóëäàã
- 27. Ïðîöåññ ¿¿ñãýõ
• Ïðîöåññ íü create-process ñèñòåìèéí
äóóäàëòûã àøèãëàí øèíý ïðîöåññ ¿¿ñãýæ
áîëíî.
• ¯¿ñãýñýí ïðîöåññèéã ýöýã ïðîöåññ (parent
process), ¿¿ññýí ïðîöåññèéã óã ïðîöåññèéí
õ¿¿ ïðîöåññ (children process) ãýæ íýðëýäýã.
• Õ¿¿ ïðîöåññóóä íü ÷ áàñ öààøàà ïðîöåññ
¿¿ñãýæ áîëíî. Èíãýñíýýð ìîä á¿òýö ¿¿ñäýã.
- 28. Ïðîöåññ ¿¿ñãýõ
• Õ¿¿ ïðîöåññóóäàä ¿éë àæèëëàãààãàà ÿâóóëàõûí
òóëä ñàíàõ îé, ïðîöåññîðîîð ¿éë÷ë¿¿ëýõ õóãàöàà,
Î/à òºõººðºìæ õýðýãòýé áîëíî.
• ͺºö õóâààëöàõ:
• Ýöýã õ¿¿ ïðîöåññ á¿õ íººöºº õóâààëöàõ.
• Õ¿¿ ïðîöåññ íü ýöýã ïðîöåñèéí íººöèéí çàðèì õýñãèéã
ýçýìøèõ.
• Ýöýã õ¿¿ ïðîöåññóóä íººö õóâààëöàõã¿é.
• Àæèëëàõ:
• Ýöýã õ¿¿ ïðîöåññ çýðýã àæèëëàõ.
• Ýöýã íü õ¿¿ ïðîöåññîî äóóñòàë õ¿ëýýõ.
- 29. Ïðîöåññ ¿¿ñãýõ
• Õ¿¿ ïðîöåññèéí ñàíàõ îéí õàÿã:
• Ýöýã ïðîöåññòîéãîî èæèëõýí õàÿãòàé.
• ªºð ïðîãðàìûí õàÿãòàé.
• UNIX ñèñòåìèéí õóâüä:
• Fork ñèñòåìèéí äóóäàëòààð õ¿¿ ïðîöåññ
¿¿ñãýíý.
• Exec ñèñòåìèéí äóóäàëòûã fork-í äàðàà
õýðýãëýñíýýð ýíý ïðîöåññèéí ñàíàõ îéä
øèíý ïðîãðàì à÷ààëàãäàíà.
- 30. Ïðîöåññ ¿¿ñãýõ
• Ïðîöåññ íü ñ¿¿ë÷èéí çàõèðàìæàà àæèëëóóëæ
äóóññàíû äàðàà ¯Ñ-ä äóóñãàõ õ¿ñýëò òàâüäàã (exit).
• Ýöýã ïðîöåññ äóóñâàë õ¿¿ ïðîöåññóóäûã íü ¯Ñ
àæèëëàõûã çºâøººðºõã¿é áàéæ áîëíî. Ýíý
òîõèîëäîëä á¿ãäèéã íü äóóñãàíà.
• Ýöýã ïðîöåññ íü õ¿¿ ïðîöåññîî äóóñãàæ áîëíî
(abort):
• Õ¿¿ ïðîöåññ õóâààðèëæ ºãñºí íººöººñ èë¿¿ã õýðýãëýæ
ýõýëáýë (èë¿¿ èõ ñàíàõ îé øààðäâàë)
• Õ¿¿ ïðîöåññò ºãñºí äààëãàâàð öààøèä õýðýãã¿é áîëáîë.
• Ýöýã ïðîöåññ äóóñâàë
- 31. Ïðîöåññ ¿¿ñãýõ
• Æèøýý àâ÷ ¿çüå:
• ×àò ñåðâåð ïðîöåññ À àæèëëàæ áàéñàí áàéã.
• Óã ïðîöåññ ðóó B, C ãàäíû ïðîöåññóóä õàíäàí õîëáîãäîõ
õ¿ñýëò òàâüæýý.
• Ýíý òîõèîëäîëä À ïðîöåññ B, C ïðîöåññòîé ÿàæ çýðýã
àæèëëàõ âý?
• ¯¿íèéã øèéäýõèéí òóëä À ïðîöåññ ãàäíààñ õîëáîãäîõ õ¿ñýëò
îðæ èðýõ áîëãîíä óã õ¿ñýëòèéã øèéäýæ óã ïðîöåññòîé
õàðèëöàõ õ¿¿ ïðîöåññ ¿¿ñãýí ò¿¿íä äààòãàäàã.
• Ãàäíààñ õýäýí ïðîöåññ õîëáîãäîíî, òýð òîîãîîð ñåðâåð
ïðîöåññ íü õ¿¿ ïðîöåññóóä ¿¿ñãýí àæèëëóóëäàã.
• Õîëáîî òàñðàõàä óã õîëáîîòîé àæèëëàæ áàéñàí õ¿¿ ïðîöåññ
àæëàà äóóñãàí óñòäàã.
- 33. Ïðîöåññóóäûí õîëáîî
• Ïðîöåññûí õîëáîîíû äàâóó òàë:
• Íýã áîäëîãûã îëîí ïðîöåññóóä õóâààí áîäîæ
áîëíî. Æèøýý íü 1996 îíä Êàñïàðîâòîé
äýëõèéí àâàðãûí òºëºº òîãëîñîí Deep Blue
øàòðûí ïðîãðàìûí í¿¿äëèéí òîîöîîëîëòûã 255
ø ïðîöåññîð äýýðõ ïðîöåññóóä õóâààí áîäîæ
áàéñàí. Ýíý òýìöýýíä Deep Blue ÿëñàí.
• Äóíäàà íººö õóâààí ýçýìøèõ. Æèøýý íü
ñ¿ëæýýãýýð ôàéë áèå áèåäýý äàìæóóëàõ ãýõ
ìýò.
- 34. Ïðîöåññóóäûí õîëáîî
• Ïðîöåññóóä ìýäýýëýë ñîëèëöîõ àðãà:
• Øóóä
• Øóóä áóñ ãýæ õî¸ð ÿíç áàéíà.
• Ïðîöåññóóä ìýäýýëýë Øóóä äàìæóóëàõûí òóëä:
• Ýõëýýä õîëáîãäîíî.
• Ìýäýýëýë èëãýýõäýý send (P, ìýäýýëýë) ãýæ èëãýýíý. Ýíý
íü P ïðîöåññ ðóó ìýäýýëýë äàìæóóëàõ ñèñòåìèéí
äóóäàëò þì.
• Ìýäýýëýë õ¿ëýýí àâàõäàà receive (Q, ìýäýýëýë) ãýíý.
Ýíý íü Q ïðîöåññîîñ ìýäýýëýë õ¿ëýýí àâàõ ñèñòåìèéí
äóóäàëò þì.
- 35. Ïðîöåññóóäûí õîëáîî
• Øóóä áóñ õîëáîîíä ïðîöåññóóä
ìýäýýëëýý ººð ïðîöåññ ðóó áèø
õàðèí ìýéë õàÿã ðóó èëãýýäýã.
• Õ¿ëýýæ àâàõ ïðîöåññ íü ìýéë õàÿãààñ
èðñýí ìýäýýëëèéã õ¿ëýýí àâíà.
- 36. ClientServer õîëáîî
• Ñîêåòóóä (sockets)
• Ñîêåò àøèãëàí èíòåðíýò, äîòîîä
ñ¿ëæýý, áàéãóóëëàãûí ñ¿ëæýýí áàéãàà
ïðîöåññóóä õîîðîíäîî ìýäýýëýë
äàìæóóëæ ÷àäíà.
• Ðàçåòêèéã (òîãíèé çàëãóóð) áàñ
àíãëèàð Socket ãýäýã (õîëáîæ áàéãàà
ãýñýí ñàíààòàé).
- 37. Ñîêåò
• Ýíý àðãààð õî¸ð òàë õîëáîãäîõäîî õî¸ð
ñîêåò àøèãëàí õîëáîãäîíî.
• Ñîêåò á¿ð íü õîëáîãäîæ áàéãàà òàëóóäûí
IP õàÿã áîëîí ìýäýýëëèéã õ¿ëýýæ àâàõ
ïðîöåññèéí ïîðòûí äóãààðûã àãóóëñàí
áàéäàã.
• (192.168.155.3:1524) ãýñýí ñîêåòûí
192.168.155.3 íü IP õàÿã, 1524 íü ïîðòûí
äóãààð íü þì.
• Õîëáîî íü õîñ ñîêåòîîð ¿¿ñíý.
- 39. Java äýýð áè÷ñýí “Öàã
õàðèóëàã÷” ñåðâåðèéí êîä.
Àøèãëàõ ñîêåòóóäàà çàðëàæ
áàéíà
Ýíý ñåðâåð ð¿¿ õîëáîãäñîí
ïðîöåññ ðóó îäîî áîëæ
5155 ïîðò äýýð àæèëëàõ
áàéãàà öàãèéã äàìæóóëíà.
ÎäîîÃàäíû Ñîêåò ðóóáàéíà.
Ñåðâåð ñîêåò õèéí ãàäíààñ
äàâòàëò ¿¿ñãýæ ºãºãäºë
êëèåíò ïðîöåññ
Ãàäíààñ õîëáîãäîõ ñîêåòûã
äàìæóóëàõûí òóëä PrintWriter
Õî¸ð ïðîöåññûí õîîðîíäûí
õîëáîãäîõûãàøèãëàíà. Ýíý
îáüåêòèéã õ¿ëýýíý.
õîëáîîãõ¿ëýýæ àâíà.
ýíä Ñîêåòîîð ã¿éöýòãýæ
îáüåêòèéã àøèãëàí ñåðâåð
áàéíà.
Îäîî áîëæ áàéãàà öàãèéã
ìààíü ýíãèéí println ôóíêöèéã
êëèåíòèéí ñîêåòñîêåò ðóó
àøèãëàí ãàäíû ðóó áè÷èæ
áàéíà.
ºãºãäºë îðóóëæ ÷àäíà.
Ñîêåòóóäûã õààæ õîëáîîñûã
òàñëàíà.
ßìàð íýã àëäàà ãàðâàë ýíä
óã àëäààã áàðüæ àâààä
õýâëýæ ¿ç¿¿ëíý.
Àëäààòàé áàéãàà áîë
ñîêåòóóäûã õààíà.
- 40. “Öàã õàðèóëàã÷”
ñåðâåð ð¿¿
õîëáîãäîí öàã
àâäàã êëèåíò
ïðîãðàìûí êîä.
127.0.0.1 õàÿãòàé õîñò ðóó
(ýíý êîìïüþòåðòàà
õîëáîãäîíî) 5155 ïîðòîîð
õîëáîãäîõûã îðîëäîõ ãýæ
áàéíà. Ñåðâåð ïðîãðàì
Ñîêåòîîð îðæ èðñýí
ìààíü ýíý ïîðòîîð õ¿ëýýæ
ºãºãäëèéã in îáüåêòîä îëãîæ
áàéãàà.
áàéíà.
Îðæ èðñýí ºãºãäëèéã (îäîî
áîëæ áàéãàà öàãèéã) õýâëýí
¿ç¿¿ëæ áàéíà.
- 41. Øèíý ¿ãñ
• booting: Êîìïüþòåð àñàíãóóò ¯Ñ-í öºìèéã îëæ
à÷ààëàõ ïðîöåññèéã õýëäýã.
• Bootstrap program: ROM äîòîð áàéäàã áºãººä
êîìïüþòåðèéã àñàíãóóò õàìãèéí ò¿ð¿¿íä àæèëëààä
¯Ñ-í êåðíåëèéã îëæ ñàíàõ îéä à÷ààëàí
àæèëëóóëäàã õýñýã êîä.
• process: Ñàíàõ îéä à÷ààëàãäñàí ïðîãðàì.
• Run: Àæèëëàõ. Ïðîöåññ òºâ ïðîöåññîðîîð
¿éë÷ë¿¿ëæ áàéõ ¿åèéã àæèëëàæ áàéíà ãýäýã.
• State: Òºëºâ. Ïðîöåññèéí òºëºâ.
- 42. Øèíý ¿ãñ
• queue: Äàðààëàë.
• Fork: Ïðîöåññîîñ õ¿¿ ïðîöåññ ¿¿ñãýäýã ñèñòåìèéí
äóóäàëò.
• Process scheduler: Ïðîöåññ òºëºâëºã÷. Áýëýí
ïðîöåññèéí äàðààëëààñ àëèéã íü ïðîöåññîð ðóó
îðóóëæ àæèëëóóëàõ âý ãýäãèéã ñîíãîã÷ ïðîãðàì.
• Process Swapping: Ïðîöåññèéã ñàíàõ îéãîîñ
äèñê 𿿠纺õèéã õýëíý.
• Virtual memory: Âèðòóàë ñàíàõ îé. Ñàíàõ îéí õàòóó
äèñêýí äýýðõ õýñãèéã õýëäýã. Ñàíàõ îé ä¿¿ðýõ
òîõèîëäîëä ïðîöåññóóäûã ñàíàõ îéãîîñ âèðòóàë
ñàíàõ îé ðóó 纺äºã. ¯¿íèé à÷ààð ñàíàõ îéä
õÿçãààð áàéõã¿é áîëäîã.