OS
OS
ﺳﻮال اول(
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
ﻓﺮاﯾﻨﺪ ﻫﺎی 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ﺎزدە(
Quantum = 4
Quantum = 8
SRT
E F
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
0----3------------9-----------------------18--------------------------30--------------------------------------------45
Priority
q ‹ ﺑî[ﺸﻮﻧﺪ ﻓﺮUﺴﺘﻢ ﻣUﮏ زﻣﺎن وارد ﺳS وﻗ[( ﻫﻤﻪ ﻓﺮاﯾﻨﺪ ﻫﺎ در
Z‹ روش اﻧﺤﺼﺎری و ﻏš
.اﻧﺤﺼﺎری وﺟﻮد ﻧﺪارد
P2(9) P5(12) P1(15) P3(3) P4(6)
0----------------------9--------------------------------21-----------------------------------------36---------39----45
(اﻟﻒ
A(2) B(5) E(1) C(2) D(3)
0--------2-------------4------5----------------------------------10-----11-------------13--------------------------16
(ب
0--------2-------------4------5----------------------------------10----- 12 13 16
(ج
A .. . B. C D E B D B
(ﺎردە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