OS-HW3.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﺳﻴﺴﺘﻢ ﻫﺎي ﻋﺎﻣﻞ‬
‫ﮔﺮوه ‪) 1‬اﺳﺘﺎد‪ :‬دﻛﺘﺮ ﺟﻠﻴﻠﻲ(‬
‫ﺗﺮم ﭘﺎﻳﻴﺰ ‪1389‬‬
‫ﺗﻤﺮﻳﻨﺎت ﺳﺮي ﺳﻮم )ﻓﺼﻞ ﻫﺎي ‪ 7 ،6‬و ‪(8‬‬
‫‪ .1‬اﻟﻒ ‪ -‬درﺳﺘﻲ ﻳﺎ درﺳﺘﻲ ﻋﺒﺎرات زﻳﺮ را ﻣﺸﺨﺺ ﻛﺮده و ﺑﺮاي ادﻋﺎي ﺧﻮد ﺗﻮﺿﻴﺢ ﻣﺨﺘﺼﺮي ﺑﻴﺎن ﻛﻨﻴﺪ‪.‬‬
‫‪ .i‬در ﻳﻚ ﺳﻴﺴﺘﻢ "ﺗﻚ ﺑﺮﻧﺎﻣﻪ اي"‪ ،1‬ﻫﺮﮔﺰ ﻧﻤﻲ ﺗﻮان آدرس ﻓﻴﺰﻳﻜﻲ را در زﻣﺎن ﻛﺎﻣﭙﺎﻳﻞ ﺗﻮﻟﻴﺪ ﻛﺮد‪.‬‬
‫‪2‬‬
‫‪ .ii‬ﻗﺎﻧﻮن "‪-50‬درﺻﺪ" ﺑﻴﺎن ﻣﻲ ﻛﻨﺪ ﻛﻪ ‪ 50‬درﺻﺪ از ﺣﺎﻓﻈﻪ ﻫﻨﮕﺎم اﺳﺘﻔﺎده از ﺳﻴﺎﺳﺖ ‪ first-fit‬ﺑﻪ ﺧﺎﻃﺮ ﺗﻜﻪ ﺗﻜﻪ ﺷﺪن ﺧﺎرﺟﻲ‬
‫ﺑﻪ ﻫﺪر ﻣﻲ رود‪.‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫ب – آﻳﺎ ﺑﺮاي ﭘﺸﺘﻴﺒﺎﻧﻲ از ﺟﺎﺑﺠﺎﺳﺎزي اﻳﺴﺘﺎ و ﭘﻮﻳﺎ ﺑﻪ اﻣﻜﺎﻧﺎت ﺳﺨﺖ اﻓﺰاري ﺧﺎﺻﻲ ﻧﻴﺎز دارﻳﻢ؟ در ﺻﻮرﺗﻲ ﻛﻪ ﭘﺎﺳﺦ ﻣﺜﺒﺖ ﺑﺎﺷﺪ اﻳﻦ‬
‫ﻣﺸﺨﺼﻪ ﻫﺎي ﺳﺨﺖ اﻓﺰاري را ﺑﻴﺎن ﻛﻨﻴﺪ و در ﺻﻮرﺗﻲ ﻛﻪ ﭘﺎﺳﺦ ﻣﻨﻔﻲ ﺑﺎﺷﺪ دﻟﻴﻞ ﺧﻮد را ﺗﻮﺿﻴﺢ دﻫﻴﺪ‪.‬‬
‫ج – )‪ TLB (translation look-aside buffer‬ﭼﻴﺴﺖ؟ آﻳﺎ ﺑﺮاي اﺟﺮاي ﺻﺤﻴﺢ ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﻪ ‪ TLB‬ﻧﻴﺎز دارﻳﻢ؟‬
‫د – ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ﺑﺮاي ﻃﺮاﺣﻲ ﻳﻚ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‪ ،‬ﭘﻴﺎده ﺳﺎزي ﻗﻔﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از روﻳﻜﺮد ”‪ “test & set‬ﻣﻨﺎﺳﺐ ﺗﺮ اﺳﺖ ﻳﺎ "ﻏﻴﺮﻓﻌﺎل‬
‫ﻛﺮدن وﻗﻔﻪ ﻫﺎ"؟ ﭼﺮا؟‬
‫‪ .2‬دو ﻓﺮآﻳﻨﺪ از ﻳﻚ ﻣﺘﻐﻴﺮ ﻣﺸﺘﺮك ‪ x‬اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻨﺪ‪ .‬ﻓﺮآﻳﻨﺪ ‪ P1‬آﻧﺮا ‪ 10‬ﻣﺮﺗﺒﻪ اﻓﺰاﻳﺶ ﻣﻲ دﻫﺪ‪ .‬ﻓﺮآﻳﻨﺪ ‪ P2‬ﻧﻴﺰ آﻧﺮا ‪ 25‬ﻣﺮﺗﺒﻪ ﻛﺎﻫﺶ ﻣﻲ‬
‫دﻫﺪ‪ .‬ﻣﻘﺪار اوﻟﻴﻪ ‪ x‬ﺑﺮاﺑﺮ ﺻﻔﺮ اﺳﺖ‪ .‬اﮔﺮ ‪ P1‬و ‪ P2‬ﺑﺼﻮرت ﻫﻤﺮوﻧﺪ و ﺑﺪون اﺳﺘﻔﺎده از ﻫﻴﭻ ﻧﺎﺣﻴﻪ ﺑﺤﺮاﻧﻲ اﺟﺮا ﺷﻮﻧﺪ‪ ،‬ﻛﺪاﻣﻴﻚ از ﻋﺒﺎرات زﻳﺮ‬
‫ﺻﺤﻴﺢ ﻣﻲ ﺑﺎﺷﺪ‪) .‬دﻟﻴﻞ اﻧﺘﺨﺎب ﺧﻮد را ﺑﻴﺎن ﻛﻨﻴﺪ‪(.‬‬
‫اﻟﻒ( ﻣﻘﺪار ﻧﻬﺎﻳﻲ ‪ x‬ﺑﺮاﺑﺮ ‪ -15‬ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ب( ﻣﻘﺪار ﻧﻬﺎﻳﻲ ‪ x‬ﻣﻲ ﺗﻮاﻧﺪ ﻫﺮ ﻋﺪد ﺻﺤﻴﺤﻲ ﺑﺎﺷﺪ‪.‬‬
‫ج( ﻣﻘﺪار ﻧﻬﺎﻳﻲ ‪ x‬ﻋﺪد ﺻﺤﻴﺤﻲ از ‪ -25‬ﺗﺎ ‪ 10‬ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫د( ﻣﻘﺪار ﻧﻬﺎﻳﻲ ‪ x‬ﺑﺮاﺑﺮ ﺻﻔﺮ ﻧﺨﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ه( ﻣﻘﺪار ﻧﻬﺎﻳﻲ ‪ x‬ﻋﺪدي از ‪ -20‬ﺗﺎ ‪ 5‬ﺑﻮده و ﺑﻴﺮون از اﻳﻦ ﻣﺤﺪوده ﻧﻤﻲ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ‪.‬‬
‫‪ .3‬دو ﻋﻤﻞ ‪ wait‬و ‪ signal‬روي دو ﻣﻨﺒﻊ ﺑﻄﻮر ﻫﻢ زﻣﺎن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬ﺑﺠﺎي دو ﻋﺒﺎرت ‪ c1‬و ‪ c2‬ﭼﻪ ﺷﺮاﻳﻄﻲ ﺑﺎﻳﺪ ﻧﻮﺷﺘﻪ ﺷﻮد؟‬
‫)‪Signal(S,R‬‬
‫{‬
‫;)‪Wait(mutex‬‬
‫;‪S1=S1+1‬‬
‫;‪R1=R1+1‬‬
‫)‪If(c2‬‬
‫;)‪Signal(block‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫;‪Int S1,R1‬‬
‫;‪Semaphore mutex=1, block=1‬‬
‫)‪Wait(S,R‬‬
‫{‬
‫;)‪Wait(mutex‬‬
‫;‪S1=S1-1‬‬
‫;‪R1=R1-1‬‬
‫)‪If (c1‬‬
‫{‬
‫;)‪Signal(mutex‬‬
‫;)‪Wait(block‬‬
‫}‬
‫‪Else‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫‪ .4‬داﻧﺸﺠﻮﻳﻲ ﺳﻤﺎﻓﻮرﻫﺎي ﺷﻤﺎرﺷﻲ را ﺑﺎ اﺳﺘﻔﺎده از ﺳﻤﺎﻓﻮرﻫﺎي دودوﻳﻲ ﺑﻪ ﺻﻮرت زﻳﺮ ﭘﻴﺎده ﺳﺎزي ﻛﺮده اﺳﺖ‪ .‬درﺑﺎره ﺻﺤﺖ روش اراﺋﻪ ﺷﺪه‬
‫ﺑﺤﺚ ﻛﻨﻴﺪ‪.‬‬
‫‪1‬‬
‫‪Uniprogramming system‬‬
‫‪External fragmentation‬‬
‫‪3‬‬
‫‪Relocation‬‬
‫‪4‬‬
‫‪Static‬‬
‫‪5‬‬
‫‪Dynamic‬‬
‫‪2‬‬
‫)‪semwait(semaphore s‬‬
‫{‬
‫;)‪semwaitb(mutex‬‬
‫;‪s--‬‬
‫)‪if(s<0‬‬
‫{‬
‫;)‪semsignalb(mutex‬‬
‫;)‪semwaitb(delay‬‬
‫}‬
‫‪else‬‬
‫{‬
‫;)‪semsignal(mutex‬‬
‫}‬
‫}‬
‫)‪semsignal(semaphore s‬‬
‫{‬
‫;)‪semwaitb(mutex‬‬
‫;‪s++‬‬
‫)‪if(s<=0‬‬
‫{‬
‫;)‪semsignalb(delay‬‬
‫;)‪semsignalb(mutex‬‬
‫}‬
‫}‬
‫‪ .5‬ﺳﻴﺴﺘﻤﻲ ﺑﺎ ‪ 5‬ﭘﺮدازه و ‪ 4‬ﻣﻨﺒﻊ در ﺣﺎﻟﺖ زﻳﺮ ﻗﺮار دارد‪.‬‬
‫‪Available‬‬
‫‪-------------‬‬‫‪A B C D‬‬
‫‪1 5 2 0‬‬
‫‪Allocation‬‬
‫‪----------------‬‬‫‪A B C D‬‬
‫‪P0 0 0 1 2‬‬
‫‪P1 1 0 0 0‬‬
‫‪P2 1 3 5 4‬‬
‫‪P3 0 6 3 2‬‬
‫‪P4 0 0 1 4‬‬
‫‪Max‬‬
‫‪---------------‬‬‫‪A B C D‬‬
‫‪P0 0 0 1 2‬‬
‫‪P1 1 7 5 0‬‬
‫‪P2 2 3 5 6‬‬
‫‪P3 0 6 5 2‬‬
‫‪P4 0 6 5 6‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از اﻟﮕﻮرﻳﺘﻢ ﺑﺎﻧﻜﺪار ﺑﻪ ﺳﻮاﻻت زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ‪:‬‬
‫اﻟﻒ‪ .‬ﻣﺤﺘﻮاي ﻣﺎﺗﺮﻳﺲ ‪ Need‬را ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬
‫ب‪ .‬آﻳﺎ ﺳﻴﺴﺘﻢ در ﺣﺎﻟﺖ اﻣﻦ ﻗﺮار دارد؟‬
‫ج‪ .‬اﮔﺮ درﺧﻮاﺳﺘﻲ از ﭘﺮدازه ‪ P1‬ﺑﻪ ﺻﻮرت )‪ (0,4,2,0‬ﺑﺮﺳﺪ‪ ،‬آﻳﺎ ﻣﻲ ﺗﻮان ﻓﻮرا ﺑﻪ آن ﺗﺨﺼﻴﺺ داد؟ در ﺻﻮرﺗﻲ ﻛﻪ ﺟﻮاب ﻣﺜﺒﺖ ﺑﺎﺷﺪ‪،‬‬
‫ﺑﺮرﺳﻲ ﻛﻨﻴﺪ آﻳﺎ ﺳﻴﺴﺘﻢ در ﺣﺎﻟﺖ اﻣﻦ ﻗﺮار دارد ﻳﺎ ﺧﻴﺮ؟‬
‫‪ .6‬ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﺣﺎﻓﻈﻪ از ﺗﺮﻛﻴﺐ ﻗﻄﻌﻪ ﺑﻨﺪي‪ 6‬و ﺻﻔﺤﻪ ﺑﻨﺪي ﺑﺎ ﺟﺪاول ﺻﻔﺤﻪ دو ﺳﻄﺤﻲ ﺑﻬﺮه ﻣﻲ ﺑﺮد‪ .‬ﻗﺎﻟﺐ آدرس ﻣﺠﺎزي ﺑﺼﻮرت‬
‫زﻳﺮ اﺳﺖ‪.‬‬
‫‪offset‬‬
‫‪Pt2‬‬
‫‪7 bit‬‬
‫‪Pt1‬‬
‫‪5 bit‬‬
‫‪Segment NO.‬‬
‫‪9 bit‬‬
‫‪13 bit‬‬
‫اﻧﺪازه ﻣﻮارد زﻳﺮ را ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪ .d‬ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺟﺪاول ﺳﻄﺢ ‪ 1‬در ﻫﺮ ﻓﺮآﻳﻨﺪ‬
‫‪ .a‬اﻧﺪازه ﺻﻔﺤﻪ‬
‫‪ .e‬ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺻﻔﺤﺎت در ﻫﺮ ﻗﻄﻌﻪ‬
‫‪ .b‬اﻧﺪازه ﺣﺎﻓﻈﻪ ﻣﺠﺎزي ﻫﺮ ﻓﺮآﻳﻨﺪ‬
‫‪ .f‬ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺻﻔﺤﺎت در ﻫﺮ ﻓﺮآﻳﻨﺪ‬
‫‪ .c‬ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﺟﺪاول ﺳﻄﺢ ‪ 2‬در ﻫﺮ ﻗﻄﻌﻪ‬
‫‪ .7‬اﮔﺮ اﻧﺪازه ﻫﺮ ﺧﺎﻧﻪ ﺟﺪول ﺻﻔﺤﻪ ‪ e‬ﺑﺎﻳﺖ و اﻧﺪازه ﻫﺮ ﻓﺮآﻳﻨﺪ ‪ S‬ﺑﺎﻳﺖ ﺑﺎﺷﺪ‪ ،‬اﻧﺪازه ﺑﻬﻴﻨﻪ ﺻﻔﺤﻪ را ﺑﺪﺳﺖ آورﻳﺪ؟‬
‫‪ .8‬ﻳﻚ ﺳﻴﺴﺘﻢ ﺣﺎﻓﻈﻪ ﻗﻄﻌﻪ ﺑﻨﺪي ﺷﺪه را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ در آن ﺣﺎﻓﻈﻪ ﺑﺼﻮرت ﺷﻜﻞ زﻳﺮ ﺗﺨﺼﻴﺺ ﻳﺎﻓﺘﻪ اﺳﺖ‪.‬‬
‫ﻓﺮض ﻛﻨﻴﺪ اﺗﻔﺎﻗﺎت زﻳﺮ رخ ﻣﻲ دﻫﺪ‪:‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ E‬ﺷﺮوع ﻣﻲ ﺷﻮد و ‪ 300‬واﺣﺪ ﺣﺎﻓﻈﻪ درﺧﻮاﺳﺖ ﻣﻲ ﻛﻨﺪ‪.‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ 400 ،A‬واﺣﺪ ﺣﺎﻓﻈﻪ ﺑﻴﺸﺘﺮ درﺧﻮاﺳﺖ ﻣﻲ ﻛﻨﺪ‪.‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ B‬ﺧﺎﺗﻤﻪ ﻣﻲ ﻳﺎﺑﺪ‪.‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ F‬ﺷﺮوع ﻣﻲ ﺷﻮد و ‪ 800‬واﺣﺪ ﺣﺎﻓﻈﻪ درﺧﻮاﺳﺖ ﻣﻲ ﻛﻨﺪ‪.‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ C‬ﺧﺎﺗﻤﻪ ﻣﻲ ﻳﺎﺑﺪ‪.‬‬
‫‪ o‬ﻓﺮآﻳﻨﺪ ‪ G‬ﺷﺮوع ﻣﻲ ﺷﻮد و ‪ 900‬واﺣﺪ ﺣﺎﻓﻈﻪ درﺧﻮاﺳﺖ ﻣﻲ ﻛﻨﺪ‪.‬‬
‫ﺗﻮﺿﻴﺢ دﻫﻴﺪ در ﺻﻮرﺗﻲ ﻛﻪ از اﻟﮕﻮرﻳﺘﻢ ﻫﺎي زﻳﺮ اﺳﺘﻔﺎده ﺷﻮد‪ ،‬ﻣﺤﺘﻮاي ﺣﺎﻓﻈﻪ ﭘﺲ از ﻫﺮ ﻋﻤﻞ ﭼﻪ ﻣﻴﺒﺎﺷﺪ؟‬
‫اﻟﻒ –‪ first-fit‬ب ‪ best--fit -‬ج ‪ worst-fit -‬د ‪ -‬در اﻳﻨﺠﺎ اﺳﺘﻔﺎده از ﻛﺪام اﻟﮕﻮرﻳﺘﻢ از ﻫﻤﻪ ﺑﻬﺘﺮ‬
‫ﺑﻮد؟‬
‫ در ﺻﻮرت وﺟﻮد ﻫﺮ ﮔﻮﻧﻪ ﺳﻮال ﻳﺎ ﻣﺸﻜﻞ ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﺎ ‪ [email protected]‬ﻣﻜﺎﺗﺒﻪ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‪.‬‬
‫‪Segmentation‬‬
‫‪6‬‬