0% found this document useful (0 votes)
11 views

OS

Solution to operating system questions

Uploaded by

hb.hosna077
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

OS

Solution to operating system questions

Uploaded by

hb.hosna077
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

‫‪God‬‬

‫‪۹۸۰۱۲۲۶۸۰۰۱۹‬‬ ‫ﺣﺴﻨﺎ ﺣﺒﯿ)(‬


‫ﺗﻤ‪32‬ﻦ ﭼ‪6‬ﺎرم‬

‫ﺳﻮال اول(‬
‫‪f‬‬
‫‪ ،Emulation‬ﻓﺮآﯾﻨﺪی اﺳﺖ ﮐﻪ ‪R‬ﻪ ‪S‬ﮏ ﺳ‪U‬ﺴﺘﻢ اﻟ‪Z[Y‬وﻧ]^ اﺟﺎزە ﻣ]ﺪﻫﺪ ﮐﻪ و‪3‬ﮋ‪g e‬ﺎری‬
‫ﻣﺸﺎﺑ‪R j‬ﺎ ﺳﺎﯾﺮ ﺳ‪U‬ﺴﺘﻢ ﻫﺎی ‪g‬ﺎﻣﭙﯿﻮﺗﺮی داﺷﺘﻪ ‪R‬ﺎﺷﺪ‪ ،‬اﻣﺎ ‪ ،simulation‬ﮐ‪ (o‬ﮐﺮدن ﻣﺪل‬
‫اﻧ [ ‪Zq‬ا‪S r‬ﮏ ﺳ‪U‬ﺴﺘﻢ ‪g‬ﺎﻣﭙﯿﻮﺗﺮی ﺧﺎص اﺳﺖ‪.‬‬
‫ﻫﺪف از ‪ ،emulation‬ﺗﮑﺮار ﺗﺠ‪z2‬ﻪ اﺳﺘﻔﺎدە از ﺳﺨﺖ اﻓﺰار و ‪S‬ﺎ ﻧﺮم اﻓﺰار اور‪3‬ﺠﯿﻨﺎل اﺳﺖ‪،‬‬
‫‪f‬‬
‫اﻣﺎ ﻫﺪف ‪ simulation‬ا‪S‬ﺠﺎد ‪S‬ﮏ ﻣﺤ]ﻂ ﻋﻤ• و ا‪S‬ﻤﻦ اﺳﺖ ﮐﻪ در آن ﺑﺘﻮاﻧ]ﻢ ﻫﺮ و‪3‬ﮋ‪ e‬را‬
‫آزﻣﺎ‚ﺶ ﮐﻨ]ﻢ‪ emulation .‬ﺑﺮای ﺗﻘﻠ]ﺪ رﻓﺘﺎر ‪S‬ﮏ ﺑﺮﻧﺎﻣﻪ ‪S‬ﺎ دﺳﺘ†ﺎە د‪S‬ﮕﺮ‪ ،‬اﺟﺮای ﺳ‪U‬ﺴﺘﻢ‬
‫ﻋﺎﻣﻞ در ‪‰‬ﻠﺖ ﻓﺮم ﺳﺨﺖ اﻓﺰاری و ﻏ‹‪Z‬ە اﺳﺘﻔﺎدە ﻣ‪U‬ﺸﻮد اﻣﺎ ‪ simulator‬ﺑﺮای ﭘ‪U‬ﺸ‪Ž‬ﯿ‪ (q‬رﻓﺘﺎر‬
‫آﯾﻨﺪە ﺳ‪U‬ﺴﺘﻢ‪ ،‬ﻣﻄﺎﻟﻌﻪ رﻓﺘﺎر دﯾﻨﺎﻣ]^ اﺷ]ﺎ ‪S‬ﺎ ﺳ‪U‬ﺴﺘﻢ ﻫﺎ‪ ،‬ﺷ‪]Ž‬ﻪ ﺳﺎزی ﻓﻨﺎوری ﺑﺮای آزﻣﺎ‚ﺶ‪،‬‬
‫آﻣﻮزش و ﻏ‹‪Z‬ە اﺳﺘﻔﺎدە ﻣ‪U‬ﺸﻮد‪.‬‬
‫‪q‬‬
‫‪R ،Emulation‬ﻪ دﻟ]ﻞ اﯾﻨﮑﻪ ﺷﺎﻣﻞ ﺗﺮﺟﻤﻪ ‪R‬ﺎﯾ‪Z‬ی )‪ (binary translation‬اﺳﺖ‪ ،‬ﮐﻨﺪ ﺗﺮ‬
‫اﺳﺖ‪ .‬در واﻗﻊ ‪ simulator‬ﻫﺎ —‪3‬ـ ـﻊ ﺗﺮ از ‪ emulator‬ﻫﺎ ﻋﻤﻞ ﻣ]ﮑﻨﻨﺪ‪.‬‬
‫‪S š‬ﺎ ز‪z‬ﺎن اﺳﻤ›• ﻧﻮﺷﺘﻪ ﻣ‪U‬ﺸﻮﻧﺪ ز‪3‬ﺮا ‪S‬ﮏ ‪emulator‬‬ ‫‪ Emulator‬ﻫﺎ ﻋﻤﺪﺗﺎ در ﺳﻄﺢ ﻣﺎﺷ ‹ ‪q‬‬
‫‪f‬‬
‫ﺳ‪ œ‬ﻣ]ﮑﻨﺪ ﺗﻤﺎم و‪3‬ﮋ‪ e‬ﻫﺎی ﺳﺨﺖ اﻓﺰاری و ﻧﺮم اﻓﺰاری ‪S‬ﮏ ﻣﺤ]ﻂ ﺗﻮﻟ]ﺪ را ﺗﻘﻠ]ﺪ ﮐﻨﺪ •ﺲ‬
‫ﻋﻤﺪﺗﺎ ﺑﺮای دﺳ‪]Ÿ‬ﺎ ) ‪R‬ﻪ آن ﻧ]ﺎز ‪R‬ﻪ اﺳﺘﻔﺎدە از ز‪z‬ﺎن اﺳﻤ›• دار‪3‬ﻢ‪ .‬اﻣﺎ ﻣﺎ اﻏﻠﺐ از ز‪z‬ﺎن ﺳﻄﺢ‬
‫‪R‬ﺎﻻﺗﺮی ﺑﺮای ﺗﻮﺳﻌﻪ ‪ simulator‬ﻫﺎ اﺳﺘﻔﺎدە ﻣ]ﮑﻨ]ﻢ ز‪3‬ﺮا آن ﻫﺎ ﻓﻘﻂ ﻣﺤ]ﻂ ﻫﺎی ﻧﺮم اﻓﺰاری‬
‫‪ š‬دﯾ›ﺎ‪ £‬ﮐﺮدن ‪ simulation‬راﺣﺖ ﺗﺮ از ‪ emulation‬اﺳﺖ‪.‬‬ ‫را ا‪S‬ﺠﺎد ﻣ]ﮑﻨﻨﺪ‪ .‬ﻫﻢ ﭼﻨ ‹ ‪q‬‬
‫از ﻣﺰا‪S‬ﺎی ‪ emulation‬ﻣﯿﺘﻮان ‪R‬ﻪ ﮐ]ﻔ]ﺖ ﮔﺮاﻓ]^ ﺑ‪¥ ،Z[6‬ﻓﻪ ﺟﻮ ¦ در ﻓﻀﺎ‪ ،‬ﺷ‪]Ž‬ﻪ ﺳﺎزی‬
‫‪R‬ﺎزی ﻫﺎی و‪3‬ﺪﺋﻮ ¦ ‪ ،‬اﻓﺰودن اﻓﮑﺖ •ﺲ از ﭘﺮدازش و ‪ ...‬اﺷﺎرە ﮐﺮد‪.‬‬
‫‪q‬‬
‫از ﻣﺰا‪S‬ﺎی ‪ simulation‬ﻣﯿﺘﻮان ‪R‬ﻪ اﻓﺰا‚ﺶ ا‪S‬ﻤ‪ (q‬و ‪g‬ﺎرا ¦ ‪ ،‬ﺟﻠﻮﮔ‹‪Z‬ی از ﺧﻄﺮ و ﺗﻠﻔﺎت ﺟﺎ ‪،‬‬
‫ﻣﻄﺎﻟﻌﻪ دﻗﯿﻖ ﺗﺮ و ‪ ...‬اﺷﺎرە ﮐﺮد‪.‬‬

‫ﺳﻮال دوم(‬
‫در ‪ ،spooling‬ﺑ‪U‬ﺶ از ‪S‬ﮏ ﻋﻤﻠ]ﺎت ‪ I/O‬را ﻣﯿﺘﻮان ‪R‬ﻪ ﺻﻮرت ﻫﻤﺰﻣﺎن اﻧﺠﺎم داد‪S .‬ﻌ‪ (q‬زﻣﺎ ‪q‬‬
‫ﮐﻪ ‪ CPU‬در ﺣﺎل اﺟﺮای ﺑﺮ‪ ´q‬از ﻓﺮآﯾﻨﺪ ﻫﺎﺳﺖ‪ ،‬ﺑ‪U‬ﺶ از ‪S‬ﮏ ﻋﻤﻠ]ﺎت ‪ I/O‬ﻧ ‹ ‪ Zq‬ﻣﯿﺘﻮاﻧﺪ‬
‫ﻫﻤﺰﻣﺎن اﻧﺠﺎم ﺷﻮد‪.‬‬
‫‪ š‬از‬ ‫‪ š‬ﺣ‹ ‪q‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ از ‪ ۰‬ﺗﺎ ‪ ۶‬ورود ‪ p1‬اﺳﺖ‪ .‬از ‪ ۶‬ﺗﺎ ‪g ۱۰‬ﺎر ﭘﺮدازﺷﺶ اﻧﺠﺎم ﻣ‪U‬ﺸﻮد و در ﻫﻤ ‹ ‪q‬‬
‫‪ ۶‬ﺗﺎ ‪ p2 ۸‬وارد ﻣ‪U‬ﺸﻮد‪ .‬از ‪ ۸‬ﺗﺎ ‪ ۱۴‬ﻫﻢ ‪ p3‬وارد ﻣ‪U‬ﺸﻮد‪ .‬از ‪ ۱۰‬ﺗﺎ ‪ p1 ۱۱‬ﺧﺎرج ﻣ‪U‬ﺸﻮد و از‬
‫‪ š‬از ‪ ۱۴‬ﺗﺎ ‪۱۷‬‬ ‫‪ š‬ﺣ‹ ‪q‬‬
‫‪ ۱۰‬ﺗﺎ ‪ p2 ۱۲‬ﭘﺮدازش ﻣ‪U‬ﺸﻮد‪ .‬از ‪ ۱۲‬ﺗﺎ ‪ p2 ۱۵‬ﺧﺎرج ﻣ‪U‬ﺸﻮد و در ﻫﻤ ‹ ‪q‬‬
‫ﭘﺮدازش ‪ p3‬ﻃﻮل ﻣ]ﮑﺸﺪ‪ .‬از ‪ ۱۷‬ﺗﺎ ‪ ۱۹‬ﻫﻢ ‪ p3‬ﺧﺎرج ﻣ‪U‬ﺸﻮد‪• .‬ﺲ ‪ ۱۹‬واﺣﺪ زﻣﺎ ‪ q‬ﻃﻮل‬
‫ﻣ]ﮑﺸﺪ ﺗﺎ ﻫﺮ ﺳﻪ ﻓﺮاﯾﻨﺪ ‪R‬ﻪ ﻃﻮر ‪g‬ﺎﻣﻞ اﻧﺠﺎم ﺷﻮﻧﺪ‪.‬‬

‫ﺳﻮال ﺳﻮم(‬
‫از ﻣﺰا‪S‬ﺎی ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎی ﻻ‪S‬ﻪ ای ﻣﯿﺘﻮان ‪R‬ﻪ ﻣﻮارد ز‪3‬ﺮ اﺷﺎرە ﮐﺮد‪:‬‬
‫‪q‬‬
‫‪.۱‬ﻣﺎژوﻻر ﺑﻮدن‪ :‬اﯾﻦ ﻃﺮا´ ﺳ¿ﺐ ارﺗﻘﺎی ﻣﺎژوﻻر ﺑﻮدن ﻣ‪U‬ﺸﻮد ز‪3‬ﺮا ﻫﺮ ﻻ‪S‬ﻪ ﻓﻘﻂ وﻇﺎ‪ ÁS‬را‬
‫ﮐﻪ ﺑﺮای اﻧﺠﺎم آن ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی ﺷﺪە اﺳﺖ را اﻧﺠﺎم ﻣ]ﺪﻫﺪ‪.‬‬
‫‪.۲‬دﯾ›ﺎ‪ £‬ﮐﺮدن آﺳﺎن ﺗﺮ‪R :‬ﻪ دﻟ]ﻞ ﮔﺴﺴﺘﻪ ﺑﻮدن ﻻ‪S‬ﻪ ﻫﺎ‪ ،‬دﯾ›ﺎ‪ £‬ﮐﺮدن ‪Â‬ﺴ]ﺎر آﺳﺎن ﺗﺮ ﻣ‪U‬ﺸﻮد‪.‬‬
‫ﻣﺜﻼ ا‪Å‬ﺮ ﺧﻄﺎ ¦ در ﻻ‪S‬ﻪ زﻣﺎﻧ‪Ž‬ﻨﺪی ‪ CPU‬رخ ‪R‬ﺪﻫﺪ‪ ،‬ﺗﻮﺳﻌﻪ دﻫﻨﺪە ﻣﯿﺘﻮاﻧﺪ ﻓﻘﻂ آن ﻻ‪S‬ﻪ‬
‫ﺧﺎص را ﺑﺮای دﯾ›ﺎ‪ £‬ﮐﺮدن ﺟﺴﺘﻮﺟﻮ ﮐﻨﺪ‪.‬‬
‫‪.۳‬آ‪‰‬ﺪ‪S‬ﺖ ﺷﺪن آﺳﺎن ﺗﺮ‪ :‬ﺗﻐﯿ‹‪Z‬ی ﮐﻪ روی ‪S‬ﮏ ﻻ‪S‬ﻪ ﺧﺎص اﻧﺠﺎم ﺷﻮد‪ ،‬روی ﺳﺎﯾﺮ ﻻ‪S‬ﻪ ﻫﺎ‬
‫ﺗﺎﺛ‹‪ Z‬ﻧﺨﻮاﻫﺪ داﺷﺖ‪.‬‬
‫‪.۴‬ﻋﺪم دﺳ[‪ ÊZ‬ﻣﺴﺘﻘ]ﻢ ‪R‬ﻪ ﺳﺨﺖ اﻓﺰار‪ :‬ﻻ‪S‬ﻪ ﺳﺨﺖ اﻓﺰار داﺧ• ﺗ‪32‬ﻦ ﻻ‪S‬ﻪ ﻣﻮﺟﻮد در‬
‫ﻃﺮا´ اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ‪g‬ﺎر‪z‬ﺮ ﻣﯿﺘﻮاﻧﺪ از ﺧﺪﻣﺎت ﺳﺨﺖ اﻓﺰاری اﺳﺘﻔﺎدە ﮐﻨﺪ اﻣﺎ ﻧﻤﯿﺘﻮاﻧﺪ‬
‫ﻣﺴﺘﻘ]ﻤﺎ ‪R‬ﻪ آن دﺳ[‪ ÊZ‬داﺷﺘﻪ ‪R‬ﺎﺷﺪ و ‪S‬ﺎ آن را ﺗﻐﯿ‹‪ Z‬دﻫﺪ‪.‬‬
‫‪ .۵‬ﻫﺮ ﻻ‪S‬ﻪ ‪R‬ﺎ ﻋﻤﻠ‪Y‬ﺮد ﺧﺎص ﺧﻮد —و‪g‬ﺎر دارد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺗﻮاﺑﻊ و ﭘ]ﺎدە ﺳﺎزی ﻻ‪S‬ﻪ ﻫﺎی د‪S‬ﮕﺮ‬
‫ﺑﺮای آن اﻧ [ ‪Zq‬ا‪ r‬ﻫﺴ‪Ÿ‬ﻨﺪ‪.‬‬
‫ﻣﻌﺎ‪S‬ﺐ‪:‬‬
‫‪.۱‬اﺟﺮای ﭘ]ﭽ]ﺪە و دﻗﯿﻖ‪R :‬ﻪ دﻟ]ﻞ اﯾﻨﮑﻪ ‪S‬ﮏ ﻻ‪S‬ﻪ ﻣﯿﺘﻮاﻧﺪ ‪R‬ﻪ ﺧﺪﻣﺎت ﻻ‪S‬ﻪ ﻫﺎی ز‪3‬ﺮ ﺧﻮد‬
‫دﺳ[‪ ÊZ‬داﺷﺘﻪ ‪R‬ﺎﺷﺪ‪ ،‬ﭼ]ﺪﻣﺎن ﻻ‪S‬ﻪ ﻫﺎ ‪R‬ﺎ‪S‬ﺪ ‪R‬ﺎ دﻗﺖ اﻧﺠﺎم ﺷﻮد ﺑﻨﺎﺑﺮاﯾﻦ ﭘ]ﺎدە ﺳﺎزی ﭘ]ﭽ]ﺪە‬
‫ای ‪R‬ﻪ وﺟﻮد ﻣ]ﺎ‪S‬ﺪ‪.‬‬
‫‪.۲‬ﮐﻨﺪ ﺗﺮ در اﺟﺮا‪ :‬ا‪Å‬ﻪ ﻻ‪S‬ﻪ ای ‪R‬ﺨﻮاﻫﺪ ‪R‬ﺎ ﻻ‪S‬ﻪ ی د‪S‬ﮕﺮی ﺗﻌﺎﻣﻞ داﺷﺘﻪ ‪R‬ﺎﺷﺪ‪ ،‬درﺧﻮاﺳ[( را‬
‫‪ š‬دو ﻻ‪S‬ﻪ ﺗﻌﺎﻣ• ﻋﺒﻮر ﮐﻨﺪ‪ .‬ﮐﻪ اﯾﻦ‬ ‫ارﺳﺎل ﻣ]ﮑﻨﺪ ﮐﻪ ‪R‬ﺎ‪S‬ﺪ از ﺗﻤﺎم ﻻ‪S‬ﻪ ﻫﺎی ﻣﻮﺟﻮد در ﺑ ‹ ‪q‬‬
‫ﻣﻮﺿ‪Í‬ع زﻣﺎن ‪‰‬ﺎﺳﺦ را اﻓﺰا‚ﺶ ﻣ]ﺪﻫﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ اﻓﺰا‚ﺶ ﺗﻌﺪاد ﻻ‪S‬ﻪ ﻫﺎ ﻣﻤﮑﻦ اﺳﺖ ﻣﻨﺠﺮ ‪R‬ﻪ‬
‫ﻃﺮا´ ‪Â‬ﺴ]ﺎر ﻧﺎ‪Ð‬ﺎرآﻣﺪی ‪Â‬ﺸﻮد‪.‬‬
‫‪ .۳‬ﻫﺮ ﭼﻪ ﺗﻌﺪاد ﻻ‪S‬ﻪ ﺑ‪U‬ﺸ[‪R Z‬ﺎﺷﺪ ر‪Ñ‬ﺴﮏ ﺧﺮا ) ‪S‬ﺎ ‪Ò‬ﻢ ﺷﺪن ‪ data‬ﻫﻢ ﺑ‪U‬ﺸ[‪ Z‬ﻣ‪U‬ﺸﻮد‪.‬‬
‫‪ š‬ﺳ‪U‬ﺴﺘﻢ ﻻ‪S‬ﻪ ای ﺑﻮد و ‪ ۶‬ﻻ‪S‬ﻪ داﺷﺖ را ﻣﯿﺘﻮان ‪R‬ﻪ ﻋﻨﻮان‬ ‫‪ Windows NT‬و ‪ THE‬ﮐﻪ اوﻟ ‹ ‪q‬‬
‫‪.UNIX š‬‬ ‫ﻧﻤﻮﻧﻪ ﻫﺎ از ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎی ﻻ‪S‬ﻪ ای ﻧﺎم ﺑﺮد و ﻫﻤﭽﻨ ‹ ‪q‬‬
‫¦‬

‫ﺳﻮال ﭼ‪6‬ﺎرم(‬
‫[‬
‫‪R Exokernel‬ﺎ ﺟﺎ‪R‬ﺠﺎ ﮐﺮدن ﻧﻪ ﺗﻨ‪6‬ﺎ ﺳﺎب ﺳ‪U‬ﺴﺘﻢ ﻫﺎ ‪R‬ﻠ‪Y‬ﻪ ‪R‬ﺎ ﺟﺎ‪R‬ﺠﺎ ﮐﺮدن ﺑ‪U‬ﺸ‪ Z‬ﻗﺎ‪R‬ﻠ]ﺖ ﻫﺎی‬
‫اﺻ• در ﻫﺮ ﺑﺮﻧﺎﻣﻪ‪ ،‬رو‪3‬ﮑﺮد ﺗ‪6‬ﺎﺟ‪ Ý‬ﺗﺮی اﺗﺨﺎذ ﻣ]ﮑﻨﺪ و اﺳﺎﺳﺎ ﻫﺮ ﺑﺮﻧﺎﻣﻪ ‪g‬ﺎر‪z‬ﺮدی را ‪R‬ﺎ ‪S‬ﮏ‬
‫ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﮐﺘﺎ‪R‬ﺨﺎﻧﻪ ﺳﻔﺎر‪ Êß‬ﻣﺮﺗ›ﻂ ﻣ]ﮑﻨﺪ‪ .‬ﺧﻮد ‪ minimal ،kernel‬ﻣ‪U‬ﺸﻮد‪ .‬اﯾﻦ‬
‫ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎ ﻣﻨﺎﺑﻊ ﺳﺨﺖ اﻓﺰاری را از ﻃ‪32‬ﻖ ‪S‬ﮏ را‪R‬ﻂ اﺑﺘﺪا ¦ ﺗﺮ و درﺷﺖ ﺗﺮ ‪à‬ﺴ¿ﺖ ‪R‬ﻪ‬
‫ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎی ﺳﻨ[( ‪R‬ﻪ اﺷ[‪Z‬ا‪ á‬ﻣ]ﮕﺬارد‪ .‬ﻓﺮاﺧﻮا ‪ q‬ﻫﺎی ا‪Å‬ﺰوﮐﺮﻧﻞ ‪Â‬ﺴ]ﺎر ﺷ‪]Ž‬ﻪ ﻓﺮاﺧﻮا ‪q‬‬
‫‪ š‬ﻫﺎی ﻣﺠﺎزی اﺳﺖ‪ .‬ا‪Å‬ﺰوﮐﺮﻧﻞ اﯾﻦ اﺟﺎزە را ﻣ]ﺪﻫﺪ ﺗﺎ ﭘ]ﺎدە ﺳﺎزی‬ ‫در ﻧ‪Í‬ع ﺧﺎ‪ ã‬از ﻣﺎﺷ ‹ ‪q‬‬
‫‪f‬‬
‫ﻫﺎی ﻫﺴﺘﻪ ‪Â‬ﺴ]ﺎر ﺑ‪6‬ﯿﻨﻪ ﺷﺪە و ﺑﺮای ﻫﺮ ﺑﺮﻧﺎﻣﻪ ﻣﺨﺘﻠﻒ ﺳﻔﺎر‪ Êß‬ﺳﺎزی ﮐﻨﺪ‪ .‬اﻣﺎ ﻫﻤﺎﻫﻨ^ و‬
‫‪ š‬ﻣﺠﺎزی ﻣﯿﺘﻮاﻧﺪ در‬‫زﻣﺎن ﺑﻨﺪی در ﻣﻮرد ﭼﻨﺪﯾﻦ ﻓﺮآﯾﻨﺪ ﺑﺮﻧﺎﻣﻪ را دﺷﻮار ﺗﺮ ﻣ]ﮑﻨﺪ‪ .‬ﻫﺮ ﻣﺎﺷ ‹ ‪q‬‬
‫ﺳﻄﺢ ‪g‬ﺎر‪z‬ﺮ ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﺧﻮد را اﺟﺮا ﮐﻨﺪ‪ .‬اﻟﺒﺘﻪ ‪R‬ﺎ اﯾﻦ ﺗﻔﺎوت ﮐﻪ ﻫﺮ ﮐﺪام ﻣﺤﺪود ‪R‬ﻪ‬
‫اﺳﺘﻔﺎدە از ﻣﻨﺎ‪ œR‬ﻫﺴ‪Ÿ‬ﻨﺪ ﮐﻪ ‪R‬ﻪ آﻧ‪6‬ﺎ ﺗﺨﺼ]ﺺ دادە ﺷﺪە اﺳﺖ‪.‬‬

‫ﺳﻮال ﭘﻨﺠﻢ(‬
‫‪q‬‬
‫ﺗﻐﯿ‹‪ Z‬ﺣﺎﻟﺖ‪ ،‬ﺗﻐﯿ‹‪ Z‬اﻣﺘ]ﺎز ﻓﺮاﯾﻨﺪ ﺑ‹‪ š‬ﺣﺎﻟﺖ ﻫﺎ ¦ ﻣﺎﻧﻨﺪ ‪g‬ﺎر‪z‬ﺮ و ﻫﺴﺘﻪ اﺳﺖ و ﻣﻤﮑﻦ اﺳﺖ‬
‫‪R‬ﺪون ﺗﻐﯿ‹‪ Z‬وﺿﻌ]ﺖ ﻓﺮاﯾﻨﺪ در ﺣﺎل اﺟﺮا اﺗﻔﺎق ﺑ]ﻔﺘﺪ‪ .‬در ﺣﺎ‪ è‬ﮐﻪ ﺗﻐﯿ‹‪ Z‬ﻓﺮاﯾﻨﺪ‪ ،‬ﺗﻐﯿ‹‪Z‬‬
‫‪ š‬وﺿﻌ]ﺖ ﻫﺎ ¦ ﻣﺎﻧﻨﺪ آﻣﺎدە و ‪R‬ﻠﻮک اﺳﺖ‪S .‬ﻌ‪ (q‬ﺗﻌ‪3Í‬ﺾ ﻓﺮاﯾﻨﺪ در‪z‬ﺮﮔ‹‪Z‬ﻧﺪە‬ ‫وﺿﻌ]ﺖ ﻓﺮاﯾﻨﺪ ﺑ ‹ ‪q‬‬
‫ﺗﻐﯿ‹‪ Z‬ﺣﺎﻟﺖ اﺳﺖ‪ .‬ﻟﺬا ﺗﻐﯿ‹‪ Z‬ﺣﺎﻟﺖ ‪à‬ﺴ¿ﺖ ‪R‬ﻪ ﺗﻐﯿ‹‪ Z‬ﻓﺮاﯾﻨﺪ ﻫ‪3ë‬ﻨﻪ ‪g‬ﻤ[‪Z‬ی دارد‪.‬‬

‫ﺳﻮال ﺷﺸﻢ(‬
‫ﺗﻮﺿﯿﺢ ﺣﺎﻟﺖ ﻫﺎ‬
‫‪f‬‬
‫‪ :Created‬ﭘﺮوﺳﺲ ‪R‬ﻪ ﺗﺎز‪ e‬ا‪S‬ﺠﺎد ﺷﺪە و ﻫﻨﻮز آﻣﺎدە ران ﺷﺪن ﻧ‪U‬ﺴﺖ‪.‬‬
‫‪-‬ا‪Å‬ﺮ ﺗﻤﺎم ﺣﺎﻓﻈﻪ ﻻزم ﺗﻮﺳﻂ ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ‪R‬ﻪ ﭘﺮوﺳﺲ اﺧﺘﺼﺎص ﭘ]ﺪا ﮐﻨﺪ‪ ،‬وارد ‪ready‬‬
‫‪ to run state‬ﻣ‪U‬ﺸ‪3Í‬ﻢ‪.‬‬
‫‪-‬اﻣﺎ ا‪Å‬ﺮ ﺣﺎﻓﻈﻪ ‪g‬ﺎ‪ îq‬ﻧ›ﺎﺷﺪ وارد ‪ ready to run swapped state‬ﻣ‪U‬ﺸ‪3Í‬ﻢ‪.‬‬
‫‪ :Ready to Run, in Memory‬آﻣﺎدە ﺑﺮای اﺟﺮا درﺳﺖ زﻣﺎ ‪ q‬ﮐﻪ ﮐﺮﻧﻞ آن را ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی‬
‫ﮐﻨﺪ‪.‬‬
‫‪ :Ready to Run, swapped‬ﭘﺮوﺳﺲ آﻣﺎدە اﺟﺮاﺳﺖ اﻣﺎ ‪R swapper‬ﺎ‪S‬ﺪ ﭘﺮوﺳﺲ را‬
‫داﺧﻞ ﺣﺎﻓﻈﻪ اﺻ• ‪ swap‬ﮐﻨﺪ ﻗ›ﻞ از اﯾﻨﮑﻪ ﮐﺮﻧﻞ ﺑﺮای اﺟﺮا ﮐﺮدن آن ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی ﮐﻨﺪ‪.‬‬
‫)‪S swap‬ﻌ‪ (q‬ﻧﮕ‪6‬ﺪاری ﭘﺮوﺳﺲ در ‪R secondary memory‬ﻪ ﻃﻮر ﻣﻮﻗﺖ و ﺑﺮﮔﺮداﻧﺪن‬
‫آن ‪R‬ﻪ ﺣﺎﻓﻈﻪ اﺻ• اﺳﺖ(‪.‬‬
‫‪ ready to run in memory š‬و ‪ready to run‬‬ ‫‪•-‬ﺲ ‪ swap out‬و ‪ swap in‬ﺑ ‹ ‪q‬‬
‫‪ swapped‬اﻧﺠﺎم ﻣ‪U‬ﺸﻮد‪.‬‬
‫‪-‬ا‪Å‬ﺮ ﭘﺮوﺳﺲ ﺑﺮای اﺟﺮا ﺷﺪن ﻧ]ﺎز ‪R‬ﻪ ورودی ﺧﺮو )´ داﺷﺘﻪ ‪R‬ﺎﺷﺪ و آن ﻫﺎ آﻣﺎدە ﻧ›ﺎﺷﻨﺪ وارد‬
‫ﺣﺎﻟﺖ ‪ Asleep Memory‬ﻣ‪U‬ﺸ‪3Í‬ﻢ‪.‬‬
‫‪-‬اﻣﺎ ا‪Å‬ﺮ ﺣﺎﻓﻈﻪ رم ‪R‬ﻪ اﻧﺪازە ‪g‬ﺎ‪ îq‬ﻧ›ﺎﺷﺪ وارد ‪ sleep, swapped state‬ﻣ‪U‬ﺸ‪3Í‬ﻢ‪.‬‬
‫‪ :Asleep in Memory‬ﻗﺎ‪R‬ﻠ]ﺖ اﺟﺮا ﻧﺪارد ﺗﺎ زﻣﺎ ‪ q‬ﮐﻪ ‪S‬ﮏ رﺧﺪاد رخ دﻫﺪ‪ .‬در واﻗﻊ ﭘﺮوﺳﺲ‬
‫در ﺣﺎﻓﻈﻪ اﺻ• اﺳﺖ و ‪S‬ﮏ ﺣﺎﻟﺖ ‪R‬ﻼ ‪ á‬اﺳﺖ‪.‬‬
‫‪ :Sleep, swapped‬ﭘﺮوﺳﺲ ﻣﻨﺘﻈﺮ ‪S‬ﮏ رﺧﺪاد اﺳﺖ و ‪R‬ﻪ ‪S‬ﮏ ﺣﺎﻓﻈﻪ دو‪ swap õ‬ﺷﺪە‬
‫اﺳﺖ‪S .‬ﮏ ﺣﺎﻟﺖ ‪R‬ﻼ ‪ á‬اﺳﺖ‪.‬‬
‫•ﺲ از ‪ wake up‬ا‪Å‬ﺮ ﭘﺮوﺳﺲ در ‪ secondary storage‬در ﺣﺎﻟﺖ ‪R sleep‬ﺎﺷﺪ وارد‬
‫‪ ready to run swap‬ﻣ‪U‬ﺸﻮد ﺗﺎ آﻣﺎدە ‪ swap‬ﺷﺪن ‪R‬ﻪ ﺣﺎﻓﻈﻪ اﺻ• ‪R‬ﺎﺷﺪ‪ .‬و‪ è‬ا‪Å‬ﺮ در‬
‫ﺣﺎﻓﻈﻪ اﺻ• ‪R asleep‬ﺎﺷﺪ وارد ﺣﺎﻟﺖ ‪ ready to run in memory‬ﻣ‪U‬ﺸﻮد‪.‬‬
‫‪ :Preempted‬ﭘﺮوﺳﺲ در ﺣﺎل ﺑﺮﮔﺸﺖ ازﮐﺮﻧﻞ ‪R‬ﻪ ‪ user mode‬اﺳﺖ اﻣﺎ ﮐﺮﻧﻞ ﭘ‪U‬ﺸﺪﺳ[(‬
‫ﮐﺮدە اﺳﺖ و ‪S‬ﮏ ﺗﻐﯿ‹‪ Z‬ﭘﺮوﺳﺲ ﺑﺮای ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی ﺑﺮای ‪S‬ﮏ ﭘﺮوﺳﺲ د‪S‬ﮕﺮ اﻧﺠﺎم ﻣ]ﺪﻫﺪ‪.‬‬
‫‪ š‬آﻧ‪6‬ﺎ ارﺗ›ﺎط‬ ‫‪-‬ﺣﺎﻟﺖ ‪ preempted‬و ‪ ready to run in memory‬ﮐﻪ ‪R‬ﺎ ﻧﻘﻄﻪ ﭼ ‹ ‪q‬‬
‫‪ š‬ﺑ‹ ‪q‬‬
‫‪ š‬آﻧ‪6‬ﺎ ﺗﻤﺎﯾﺰ ا‪S‬ﺠﺎد ﺷﺪە ﺗﺎ ﺑﺮ رو‪ Êß‬ﮐﻪ ﺣﺎﻟﺖ ‪ preempted‬وارد‬ ‫ا‪S‬ﺠﺎد ﺷﺪە اﺳﺖ‪ .‬اﻣﺎ ﺑ ‹ ‪q‬‬
‫ﻣ‪U‬ﺸﻮد ﺗﺎ÷]ﺪ ﮐﻨﺪ‪ .‬وﻗ[( ‪S‬ﮏ ﻓﺮاﯾﻨﺪ در ﺣﺎﻟﺖ ‪ kernel mode‬اﺟﺮا ﻣ‪U‬ﺸﻮد زﻣﺎ ‪ q‬ﻓﺮا ﻣ‹‪Z‬ﺳﺪ‬
‫ﮐﻪ ﻫﺴﺘﻪ ‪g‬ﺎر ﺧﻮدش را ‪g‬ﺎﻣﻞ ﮐﺮدە و آﻣﺎدە اﺳﺖ ﺗﺎ ﮐﻨ[‪Z‬ل را ‪R‬ﻪ ﺑﺮﻧﺎﻣﻪ ‪g‬ﺎر‪z‬ﺮ ﺑﺮﮔﺮداﻧﺪ‪ .‬در اﯾﻦ‬
‫ﻣﺮﺣﻠﻪ ﻣﻤﮑﻦ اﺳﺖ ﻫﺴﺘﻪ ﺗﺼﻤ]ﻢ ‪R‬ﮕ‹‪Z‬د ﮐﻪ ﻓﺮاﯾﻨﺪ ﻓﻌ• را ‪R‬ﻪ ﻧﻔﻊ ﻓﺮآﯾﻨﺪی ﮐﻪ آﻣﺎدە و دارای‬
‫اوﻟ‪3Í‬ﺖ ‪R‬ﺎﻻﺗﺮ اﺳﺖ‪ ،‬ﭘ‪R øßU‬ﮕ‹‪Z‬د‪ .‬در آن ﺻﻮرت روﻧﺪ ﻓﻌ• ‪R‬ﻪ ﺣﺎﻟﺖ ﭘ‪U‬ﺶ ﻓﺮض ﺣﺮﮐﺖ‬
‫ﻣ]ﮑﻨﺪ‪R .‬ﺎ اﯾﻦ ﺣﺎل ﺑﺮای اﻫﺪاف ارﺳﺎل‪ ،‬آن ﻓﺮاﯾﻨﺪ ﻫﺎ در ﺣﺎﻟﺖ ‪ preempted‬و آﻧ‪6‬ﺎ ¦ ﮐﻪ‬
‫در ﺣﺎﻟﺖ ‪ ready to run in memory‬ﻫﺴ‪Ÿ‬ﻨﺪ‪ú ،‬ﺸﮑ]ﻞ ‪S‬ﮏ ﺻﻒ ﻣ]ﺪﻫﻨﺪ‪.‬‬
‫‪ :user running‬در ‪ user mode‬در ﺣﺎل اﺟﺮاﺳﺖ‪.‬‬
‫‪ :Kernel running‬در ‪ kernel mode‬در ﺣﺎل اﺟﺮاﺳﺖ‪.‬‬
‫‪-‬وﻗ[( ﭘﺮوﺳﺲ در ﮐﺮﻧﻞ راﻧ‪ü‬ﻨﮓ اﺳﺖ ﻣﯿﺘﻮاﻧﺪ ‪R‬ﻪ ‪ user mode‬ﺑﺮود ﮐﻪ ﺑﺮای اﯾﻦ ‪g‬ﺎر اﺑﺘﺪا‬
‫وارد ‪ preempted state‬و ﺳ‪þ‬ﺲ ‪R‬ﺎ ‪R return‬ﻪ ‪ user running‬ﺑﺮﻣ]ﮕﺮدد‪Pre- .‬‬
‫‪ empted‬ﺑﺮای ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی ‪S‬ﮏ ﭘﺮوﺳﺲ د‪S‬ﮕﺮ اﺳﺖ‪• .‬ﺲ ا‪Å‬ﺮ ﻧ]ﺎزی ‪R‬ﻪ ﺑﺮﻧﺎﻣﻪ ر‪3‬ﺰی ﺑﺮای‬
‫‪S‬ﮏ ﭘﺮوﺳﺲ د‪S‬ﮕﺮ ﻧ›ﺎﺷﺪ ﻣﯿﺘﻮان ﻣﺴﺘﻘ]ﻢ از ‪R kernel running‬ﻪ ‪user running‬‬
‫ﺑﺮﮔﺸﺖ‪.‬‬
‫‪š‬‬‫‪-‬ا‪Å‬ﺮ ‪S‬ﮏ وﻗﻔﻪ ﺑﺮای ﭘﺮوﺳﺲ ﻫﻨ†ﺎ‪ õ‬ﮐﻪ در ‪ kernel mode‬اﺳﺖ اﺗﻔﺎق ﺑ]ﻔﺘﺪ‪R ،‬ﺎز در ﻫﻤ ‹ ‪q‬‬
‫ﺣﺎﻟﺖ ﻣ]ﻤﺎﻧﺪ اﻣﺎ ا‪Å‬ﺮ وﻗﻔﻪ ﻫﻨ†ﺎ‪ õ‬ﮐﻪ ﭘﺮوﺳﺲ در ‪ user mode‬اﺳﺖ رخ ‪R‬ﺪﻫﺪ وارد‬
‫‪ kernel running state‬ﻣ‪U‬ﺸﻮد‪.‬‬
‫‪ :Zombie‬وﺿﻌ]ﺖ ﻧ‪6‬ﺎ ¦ اﺳﺖ‪ .‬ﭘﺮوﺳﺲ د‪S‬ﮕﺮ وﺟﻮد ﻧﺪارد و‪S è‬ﮏ رﮐﻮرد ﺑﺮای ‪parent‬‬
‫‪ process‬ﻣ]ﮕﺬارد‪.‬‬

‫ﺳﻮال ﻫﻔﺖ(‬
‫[‬
‫وﻗ( ﻓﺮآﯾﻨﺪی ا‪S‬ﺠﺎد ﻣ‪U‬ﺸﻮد‪ ،‬ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﭼﻨﺪﯾﻦ ﻋﻤﻠ]ﺎت را اﻧﺠﺎم ﻣ]ﺪﻫﺪ‪ .‬ﺑﺮای ﺷﻨﺎﺳﺎ ¦‬
‫ﻓﺮاﯾﻨﺪ ﻫﺎ ‪R‬ﻪ ﻫﺮ ﻓﺮاﯾﻨﺪ ‪S‬ﮏ ﺷﻤﺎرە ﺷﻨﺎﺳﺎ ¦ )‪ (PID‬ﻣ]ﺪﻫﺪ‪ .‬ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ‪R‬ﺎ‪S‬ﺪ ﺗﻤﺎم ﻓﺮاﯾﻨﺪ‬
‫ﻫﺎ را ﭘ]ﮕ‹‪Z‬ی ﮐﻨﺪ ز‪3‬ﺮا از ﺑﺮﻧﺎﻣﻪ ﻧ‪ øÑÍ‬ﭼﻨﺪ‪Ò‬ﺎﻧﻪ •ﺸ‪Ÿ‬ﯿ›ﺎ ‪ q‬ﻣ]ﮑﻨﺪ‪ .‬ﺑﺮای اﯾﻦ ‪g‬ﺎر ‪ PCB‬ﺑﺮای‬
‫رد‪S‬ﺎ ) وﺿﻌ]ﺖ اﺟﺮای ﻓﺮاﯾﻨﺪ اﺳﺘﻔﺎدە ﻣ‪U‬ﺸﻮد‪ .‬ﻫﺮ ‪R‬ﻠﻮک ﺣﺎﻓﻈﻪ دارای اﻃﻼﻋﺎ [ درﻣﻮرد‬
‫وﺿﻌ]ﺖ اﺟﺮای ﻓﺮاﯾﻨﺪ‪ ،‬ﺷﻤﺎرﻧﺪە ﺑﺮﻧﺎﻣﻪ‪à ،‬ﺸﺎﻧﮕﺮ •ﺸﺘﻪ‪ ،‬وﺿﻌ]ﺖ ﻓﺎ‪S‬ﻞ ﻫﺎی ‪R‬ﺎز ﺷﺪە‪،‬‬
‫اﻟ‪#‬ﻮر‪3‬ﺘﻢ ﻫﺎی زﻣﺎن ﺑﻨﺪی و ﻏ‹‪Z‬ە اﺳﺖ‪ .‬وﻗ[( ﻓﺮاﯾﻨﺪ از ﺣﺎﻟ[( ‪R‬ﻪ ﺣﺎﻟﺖ د‪S‬ﮕﺮ ﻣﻨﺘﻘﻞ ﻣ‪U‬ﺸﻮد‪،‬‬
‫ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ‪R‬ﺎ‪S‬ﺪ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ‪ PCB‬را آ‪‰‬ﺪ‪S‬ﺖ ﮐﻨﺪ‪.‬‬
‫‪S :Pointer‬ﮏ اﺷﺎرە ﮔﺮ •ﺸﺘﻪ ای اﺳﺖ ﮐﻪ ﻫﻨ†ﺎم ﺗﻐﯿ‹‪ Z‬ﻓﺮاﯾﻨﺪ از ﺣﺎﻟ[( ‪R‬ﻪ ﺣﺎﻟﺖ د‪S‬ﮕﺮ ﺑﺮای‬
‫ﺣﻔﻆ ﻣﻮﻗﻌ]ﺖ ﻓﻌ• ﻻزم اﺳﺖ ذﺧ‹‪Z‬ە ﺷﻮد‪.‬‬
‫‪ :Process state‬وﺿﻌ]ﺖ ﻣ‪z2‬ﻮط ‪R‬ﻪ ﻓﺮاﯾﻨﺪ را ذﺧ‹‪Z‬ە ﻣ]ﮑﻨﺪ‪.‬‬
‫‪ :Process Number‬ﻫﺮ ﻓﺮاﯾﻨﺪ ‪R‬ﺎ ‪S‬ﮏ ﺷﻤﺎرە ﻣﻨﺤ‪R %‬ﻪ ﻓﺮد ‪R‬ﻪ ﻧﺎم ﺷﻨﺎﺳﻪ ﻓﺮاﯾﻨﺪ ‪S‬ﺎ ‪PID‬‬
‫اﺧﺘﺼﺎص دادە ﻣ‪U‬ﺸﻮد ﮐﻪ ﺷﻨﺎﺳﻪ ﻓﺮاﯾﻨﺪ را ذﺧ‹‪Z‬ە ﮐﻨﺪ‪.‬‬
‫‪ :Program counter‬ﺷﻤﺎرﻧﺪە ای را ذﺧ‹‪Z‬ە ﻣ]ﮑﻨﺪ ﮐﻪ ﺣﺎوی آدرس دﺳﺘﻮر ‪R‬ﻌﺪی اﺳﺖ‬
‫ﮐﻪ ﻗﺮار اﺳﺖ ﺑﺮای ﻓﺮاﯾﻨﺪ اﺟﺮا ﺷﻮد‪.‬‬
‫‪ :Register‬رﺟ‪U‬ﺴ[‪ Z‬ﻫﺎی ‪ CPU‬ﻫﺴ‪Ÿ‬ﻨﺪ ﮐﻪ ﺷﺎﻣﻞ اﻧ›ﺎﺷﺖ ﮐﻨﻨﺪە‪‰ ،‬ﺎ‪S‬ﻪ‪ ،‬رﺟ‪U‬ﺴ[‪ Z‬ﻫﺎ و رﺟ‪U‬ﺴ[‪Z‬‬
‫ﻫﺎی ﻫﺪف ﻋﻤﻮ‪ õ‬ﻫﺴ‪Ÿ‬ﻨﺪ‪.‬‬
‫‪ :Memory limits‬اﯾﻦ ﻗﺴﻤﺖ ﺣﺎوی اﻃﻼﻋﺎت ﺳ‪U‬ﺴﺘﻢ ﻣﺪﯾ‪32‬ﺖ ﺣﺎﻓﻈﻪ ﻣﻮرد اﺳﺘﻔﺎدە‬
‫ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ‪ .‬ﻣﻤﮑﻦ اﺳﺖ ﺷﺎﻣﻞ ﺟﺪاول ﺻﻔﺤﻪ‪ ،‬ﺟﺪاول ‪R‬ﺨﺶ و ﻏ‹‪Z‬ە ‪R‬ﺎﺷﺪ‪.‬‬
‫‪ :Open file list‬اﯾﻦ اﻃﻼﻋﺎت ﺷﺎﻣﻞ ﻟ‪U‬ﺴﺖ ﻓﺎ‪S‬ﻞ ﻫﺎی ‪R‬ﺎز ﺷﺪە ﺑﺮای ‪S‬ﮏ ﻓﺮاﯾﻨﺪ اﺳﺖ‪.‬‬

‫‪ PCB‬در ﺳ‪U‬ﺴﺘﻢ ﻋﺎﻣﻞ ﻟﯿﻨﻮﮐﺲ ﺑﺮای ﻣﺜﺎل‪ ،‬دارای ﺳﺎﺧﺘﺎری اﺳﺖ ﮐﻪ ﺗﻤﺎم اﻃﻼﻋﺎت ﻻزم‬
‫ﺑﺮای ﻧﻤﺎ‚ﺶ ‪S‬ﮏ ﻓﺮاﯾﻨﺪ ﮐﻪ در ‪R‬ﺎﻻ ﻧ ‹ ‪R Zq‬ﻪ آن ﻫﺎ اﺷﺎرە ﺷﺪ )وﺿﻌ]ﺖ ﻓﺮاﯾﻨﺪ‪ ،‬اﻃﻼﻋﺎت زﻣﺎن‬
‫ﺑﻨﺪی و ﻣﺪﯾ‪32‬ﺖ ﺣﺎﻓﻈﻪ‪ ،‬ﻓ‪6‬ﺮﺳﺖ ﻓﺎ‪S‬ﻞ ﻫﺎی ‪R‬ﺎز( و اﺷﺎرە ﮔﺮ ﻫﺎ ¦ ‪R‬ﻪ واﻟﺪﯾﻦ ﻓﺮاﯾﻨﺪ و ﻓ‪6‬ﺮﺳ[(‬
‫از ﻓﺮزﻧﺪان و ﺧﻮاﻫﺮان و ﺑﺮادران آن را دارد‪ .‬واﻟﺪﯾﻦ ‪S‬ﮏ ﻓﺮاﯾﻨﺪ‪ ،‬ﻓﺮآﯾﻨﺪی اﺳﺖ ﮐﻪ آن را ا‪S‬ﺠﺎد‬
‫ﮐﺮدە‪ .‬ﻓﺮزﻧﺪان ﻓﺮاﯾﻨﺪ ﻫﺎ ¦ ﻫﺴ‪Ÿ‬ﻨﺪ ﮐﻪ ‪S‬ﮏ ﻓﺮاﯾﻨﺪ واﻟﺪ ا‪S‬ﺠﺎد ﻣ]ﮑﻨﺪ‪ .‬ﺧﻮاﻫﺮ و ﺑﺮادر ﻫﺎ ﻓﺮاﯾﻨﺪ‬
‫ﻫﺎ ¦ ﻫﺴ‪Ÿ‬ﻨﺪ ﮐﻪ ‪S‬ﮏ واﻟﺪ دارﻧﺪ‪.‬‬
‫در ﻫﺴﺘﻪ ﻟﯿﻨﻮﮐﺲ‪ ،‬ﺗﻤﺎم ﻓﺮاﯾﻨﺪ ﻫﺎی ﻓﻌﺎل ‪R‬ﺎ ‪S‬ﮏ ﻟ‪U‬ﺴﺖ دو‪Ò‬ﺎﻧﻪ از ﺳﺎﺧﺘﺎر وﻇ]ﻔﻪ ﻧﻤﺎ‚ﺶ‬
‫دادە ﻣ‪U‬ﺸﻮﻧﺪ‪ .‬ﻫﺴﺘﻪ ‪S‬ﮏ اﺷﺎرە ﮔﺮ ﺟ‪32‬ﺎن را ﺑﺮای ﻓﺮآﯾﻨﺪی ﮐﻪ در ﺣﺎل ﺣﺎ‪ ¥q‬در ﺳ‪U‬ﺴﺘﻢ‬
‫اﺟﺮا ﻣ‪U‬ﺸﻮد ﺣﻔﻆ ﻣ]ﮑﻨﺪ‪• .‬ﺲ ﺳ‪U‬ﺴﺘﻢ ﺑﺮای ﺗﻐﯿ‹‪ Z‬ﺣﺎﻟﺖ ﻓﺮآﯾﻨﺪ و ‪S‬ﺎ ﻟ‪U‬ﺴﺖ ﻓﺎ‪S‬ﻞ ﻫﺎی ‪R‬ﺎز‪،‬‬
‫ا‪Å‬ﺮ اﺷﺎرە ﮔﺮ ‪R‬ﻪ ﻓﺮآﯾﻨﺪ در ﺣﺎل اﺟﺮا اﺷﺎرە ﮐﻨﺪ‪ ،‬وﺿﻌ]ﺖ آن ‪R‬ﺎ ;‪current -> state = next state‬‬
‫ﺗﻐﯿ‹‪ Z‬ﻣ]ﮑﻨﺪ‪.‬‬
‫ﺳﻮال ﻫﺸﺖ(‬

‫ﺗﻌﺪاد ‪g‬ﻞ ﻣﻨﺎﺑﻊ را از ﻣﻨﺎﺑﻊ دراﺧﺘ]ﺎر ﻗﺮار دادە ﺷﺪە ‪g‬ﻢ ﮐﺮدن ﺗﺎ ﺗﻌﺪاد ﻣﻨﺎﺑﻊ ‪R‬ﺎ[‪ î‬ﻣﺎﻧﺪە و ﻗﺎ‪R‬ﻞ‬
‫اﺳﺘﻔﺎدە را ﭘ]ﺪا ﮐﻨﻢ ﮐﻪ ﺑﺮاﺑﺮ ﺗﻌﺪاد ‪g‬ﻞ ﻣﻨﺎﺑﻊ – ﻣﻨﺎﺑﻊ در اﺧﺘ]ﺎر ﻗﺮار ﮔﺮﻓﺘﻪ ﺷﺪە اﺳﺖ‪.‬‬
‫ﺗﻌﺪاد ﻣﻨﺎﺑﻊ ﺧﻮاﺳﺘﻪ ﺷﺪە ﺗﻮﺳﻂ ‪ A‬و ‪ D‬ﺑ‪U‬ﺸ[‪ Z‬از ﻣﻨﺎﺑﻊ آزاد ‪R‬ﺎ[‪ î‬ﻣﺎﻧﺪە ﺑﻮد •ﺲ اﺧﺘﺼﺎص‬
‫ﻣﻨﺎﺑﻊ ﻣﻤﮑﻦ ﻧ‪U‬ﺴﺖ‪.‬‬

‫ﺳﻮال ﻧﻪ(‬
‫اﻟﻒ(‬

‫‪Allocation‬‬ ‫‪Request‬‬
‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬
‫‪P0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪P2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P4‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪+‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪6‬‬

‫‪Available‬‬
‫‪A‬‬ ‫‪0‬‬
‫‪B‬‬ ‫‪0‬‬
‫‪C‬‬ ‫‪0‬‬

‫‪Allocation‬‬ ‫‪Request‬‬ ‫‪Available‬‬


‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪+‬‬
‫‪P0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪A‬‬ ‫‪0,0,3,5,5,7‬‬
‫‪P1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪4‬‬
‫‪B‬‬ ‫‪0,1,1,2,2,2‬‬
‫‪P2‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪C‬‬ ‫‪0,0,3,4,6,6‬‬
‫‪P4‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪2‬‬

‫ﻓﺮاﯾﻨﺪ ﻫﺎی ‪ P0‬و ‪ P2‬درﺧﻮاﺳ[( ﻧﺪارﻧﺪ •ﺲ اﺟﺮا ﻣ‪U‬ﺸﻮﻧﺪ و ﻣﻨﺎﺑﻊ ﺧﻮد را آزاد ﻣ]ﮑﻨﻨﺪ‪.‬‬
‫‪Available: A=3, B=1, C=3‬‬
‫ﺳ‪þ‬ﺲ ﻓﺮاﯾﻨﺪ ‪ P3‬و ‪ P4‬اﻧﺠﺎم ﻣ‪U‬ﺸﻮﻧﺪ و ﻣﻨﺎﺑﻊ ﺧﻮد را آزاد ﻣ]ﮑﻨﻨﺪ‪.‬‬
‫‪Available: A=5, B=2, C=6‬‬
‫ﻧ‪6‬ﺎﯾﺘﺎ ﻓﺮاﯾﻨﺪ ‪ P4‬اﻧﺠﺎم ﻣ‪U‬ﺸﻮد و ﻣﻨﺒﻊ ﺧﻮد را آزاد ﻣ]ﮑﻨﺪ‪.‬‬
‫‪Available: A=7, B=2, C=6‬‬
‫در اﯾﻦ ﺣﺎﻟﺖ ‪ deadlock‬رخ ﻧﻤ]ﺪﻫﺪ‪.‬‬
‫ب(‬
‫ﻃﺒﻖ ﻣﺤﺎﺳ›ﺎت اﻧﺠﺎم ﺷﺪە ﺑﺮای ‪ ،Available‬در ﻟﺤﻈﻪ ﺻﻔﺮ ﻣﻨﺒﻊ آزادی ﺑﺮای اﺧﺘﺼﺎص‬
‫دادن ‪R‬ﻪ ‪ P1‬ﻧﺪار‪3‬ﻢ و ‪ deadlock‬رخ ﻣ]ﺪﻫﺪ‪.‬‬

‫ﺳﻮال دە(‬
‫‪ß‬‬ ‫‪ß‬‬
‫در اﯾﻦ ﺣﺎﻟﺖ —ط اﻧﺘﻈﺎر ﻣﺪور ‪S‬ﺎ ﭼﺮﺧ‪ ø‬ﻧﻘﺾ ﻣ‪U‬ﺸﻮد‪ .‬ز‪3‬ﺮا ‪R‬ﻪ ﻣﻨﺎﺑﻊ ﻣﻘﺎدﯾﺮی را ‪à‬ﺴ¿ﺖ‬
‫ﻣ]ﺪﻫ]ﻢ و ﻓﺮاﯾﻨﺪ ﻫﺎ ﻧﺎ‪3ëÅ‬ﺮ ﻫﺴ‪Ÿ‬ﻨﺪ ﻣﻨﺎﺑﻊ را ‪R‬ﻪ ﺻﻮرت ﺻﻌﻮدی اﻧﺘﺨﺎب ﮐﻨﻨﺪ ﮐﻪ در اﯾﻦ‬
‫ﺣﺎﻟﺖ اﻣ‪2‬ﺎن ا‪S‬ﺠﺎد ﺣﻠﻘﻪ ﻧﺪار‪3‬ﻢ‪.‬‬

‫ﺳﻮال ‪S‬ﺎزدە(‬

‫‪Process‬‬ ‫‪Enter Time‬‬ ‫‪Service Time‬‬


‫‪A‬‬ ‫‪0‬‬ ‫‪3‬‬
‫‪B‬‬ ‫‪5‬‬ ‫‪7‬‬
‫‪C‬‬ ‫‪7‬‬ ‫‪12‬‬
‫‪D‬‬ ‫‪8‬‬ ‫‪20‬‬
‫‪E‬‬ ‫‪10‬‬ ‫‪25‬‬
‫‪F‬‬ ‫‪14‬‬ ‫‪30‬‬

‫‪Quantum = 4‬‬

‫‪Quantum = 8‬‬

‫‪SRT‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬

‫‪0‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪9‬‬ ‫‪10‬‬ ‫‪14‬‬ ‫‪15‬‬ ‫‪19 20‬‬

‫‪E‬‬ ‫‪F‬‬

‫‪20‬‬ ‫‪24 25‬‬ ‫‪29 30‬‬


B C D

30 33 34 42 43 51

E F

51 52 60 61 69 70

D E

70 78 79 92 93

93 111

(‫اﻟﻒ‬
Waiting time A: 0
Waiting time B: [(5-5) + (30-9)] = 0 + 21
Waiting time C: [(10-7) + (34-14)] = 3 + 20 = 23
Waiting time D: [(15-8) + (43-19) + (70-51)] = 7 + 24 + 19 = 50
Waiting time E: [(20-10) + (52-24) + (79-60)] = 10 + 28 + 19 = 57
Waiting time F: [(25-14) + (61-29) + (93-69)] = 11 + 32 + 24 = 67
Average waiting time = (0+21+23+50+57+67)/6 = 218/6 = 36.33
(‫ب‬
Turning around time A: 3-0=3
Turning around time B: 33-5=28
Turning around time C: 42-7=35
Turning around time D: 78-8=70
Turning around time E: 92-10=82
Turning around time F: 111-14=97
Average turning around time = (3+28+35+70+82+97)/6=315/6=52.5
(‫ج‬
(111-14)/111 = 97/111 = 0.87
(‫ﺳﻮال دوازدە‬
SJF
Burst Time Priority
P1 15 4
P2 9 7
P3 3 3
P4 6 1
P5 12 6

P3(3) P4(6) P2(9) P5(12) P1(15)

0----3------------9-----------------------18--------------------------30--------------------------------------------45

P3 waiting time: 0-0 Total running time: 45


P4 waiting time: 3 -0 Average waiting time: (0+3+9+18+30)/5=12
P2 waiting time: 9-0
P5 waiting time: 18-0
P1 waiting time: 30-0

Priority
q ‹ ‫ ﺑ‬î[‫ﺸﻮﻧﺪ ﻓﺮ‬U‫ﺴﺘﻢ ﻣ‬U‫ﮏ زﻣﺎن وارد ﺳ‬S ‫وﻗ[( ﻫﻤﻪ ﻓﺮاﯾﻨﺪ ﻫﺎ در‬
Z‹‫ روش اﻧﺤﺼﺎری و ﻏ‬š
.‫اﻧﺤﺼﺎری وﺟﻮد ﻧﺪارد‬
P2(9) P5(12) P1(15) P3(3) P4(6)

0----------------------9--------------------------------21-----------------------------------------36---------39----45

P1 waiting time: 21 Total running time: 45


P2 waiting time: 0 Average waiting time:(21+0+36+39+9)/5=21
P3 waiting time: 36
P4 waiting time: 39
P5 waiting time: 9
(‫دە‬Zq ‹ ‫ﺳﻮال ﺳ‬

‫ﻧﺎم ﻓﺮاﯾﻨﺪ‬ ‫ﺴﺘﻢ‬U‫ﻪ ﺳ‬R ‫زﻣﺎن ورود‬ ‫زﻣﺎن ﭘﺮدازش‬


A ۲ ۲
B ۵ ۵
C ۶ ۲
D ۷ ۳
E ۹ ۱

(‫اﻟﻒ‬
A(2) B(5) E(1) C(2) D(3)

0--------2-------------4------5----------------------------------10-----11-------------13--------------------------16

‫ﺎری‬2]‫([ = درﺻﺪ ﺑ‬2-0)+(5-4)]/16 = 3/16 = 0.1875 = 18.75%


[ ‫ = ﺗﻮان ﻋﻤﻠ]ﺎ‬5/16 = 0.3125

(‫ب‬

A(2) B(5) C(2) E(1) D(3)

0--------2-------------4------5----------------------------------10----- 12 13 16

RR (C) = [(10-6) + 2]/2 = 3


RR (D) = [(10-7) + 3]/3 = 2 è C enters after B
RR (E) = [(10-9) + 1]/1 = 2

RR (D) = [(12-7) + 3]/3 = 8/3 = 2.66


RR (E) = [(12-9) +1]/1 = 4
è E enters after C

A waiting time: 2-2=0


B waiting time: 5-5 =0
C waiting time: 10-6 =4
D waiting time: 13-7=6
E waiting time: 12-9=3
Average waiting time = 13/5 = 2.6

(‫ج‬

A .. . B. C D E B D B

0-------- 2---------- 4------5-----------7------------9--------- 11--12 14 15 16

A waiting time: 2-2 = 0


B waiting time: (5-5) + (12-7) + (15-14) = 5 + 1 = 6
C waiting time: 7-6 = 1
D waiting time: (9-7) + (14-11) = 2 + 3 =5
E waiting time: 11-9 = 2
Average waiting time = 14/5 = 2.8

(‫ﺎردە‬6‫ﺳﻮال ﭼ‬
Process Burst Time
A 4 q=2
B 5
C 6
D 7
A(2) B C D A

0-------- 2 3 5 6 8 9 11 12 14 15

B(2) C D B C D D

15 17 18 20 21 23 24 25 26 28 29 31 32
A waiting time: 12-2 = 10
B waiting time: (3-0) + (15-5) + (24-17) = 3 + 10 + 7 = 20
C waiting time: (6-0) + (18-8) + (26-20) = 6 + 10 + 6 = 22
D waiting time: (9-0) + (21-11) + (29-23) = 9 + 10 + 6 = 25
Average waiting time = 77/4 = 19.25

You might also like