ﺑﻪ ﻧﺎم ﺧﺪا داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ درس ﺳﻴﺴﺘﻢﻫﺎي ﻋﺎﻣﻞ – ﻧﻴﻤﺴﺎل دوم 89-90 ﺗﻤﺮﻳﻦ اول ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ 9اردﻳﺒﻬﺸﺖ -1اﻟﮕﻮرﻳﺘﻢ Quick Sortرا ﺑﺎ اﺳﺘﻔﺎده از ﻧﺦ و ﻛﺘﺎﺑﺨﺎﻧﻪ pthreadﻟﻴﻨﻮﻛﺲ ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ. -2ﺑﻪ ﻛﻤﻚ ﻛﺘﺎﺑﺨﺎﻧﻪ pthread ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ در آن دو ﻧﺦ ﺑﻪ ﺻﻮرت ﻫﻤﺰﻣﺎن ﺗﺎﺑﻊ fرا اﺟﺮا ﻛﻨﻨﺪ .ﺧﺮوﺟﻲ ﺣﺎﺻﻞ را ﮔﺰارش ﻛﺮده و ﺗﺤﻠﻴﻞ ﻛﻨﻴﺪ. global int counter = 0 {)(function f for i=0 to 2 do counter = counter +1 Print counter end for } -3در اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﺎﻳﺪ ﻳﻚ SR latchرا ﺑﺎ اﺳﺘﻔﺎده از ﻛﺘﺎﺑﺨﺎﻧﻪ pthreadﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ .ﺷﻜﻞ اﻳﻦ latchرا در زﻳﺮ ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ: اﺑﺘﺪا ﺑﺎﻳﺪ ﺑﻪ ازاي ﻫﺮ ﺳﻴﻢ )ﻳﺎ ﺳﻴﻢﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﻫﻢ ﻣﺘﺼﻞاﻧﺪ( ﻳﻚ ﻣﺘﻐﻴﺮ )از ﺟﻨﺲ دﻟﺨﻮاه ،ﻣﺜﻼً intﻳﺎ (boolﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ .ﻫﻤﭽﻨﻴﻦ ﺧﺮوﺟﻲ دو andرا REو SEو ﺧﺮوﺟﻲﻫﺎي ﻣﺪار را ﻧﻴﺰ Qو QBﻣﻲﻧﺎﻣﻴﻢ .ﻣﻘﺎدﻳﺮ اوﻟﻴﻪ اﻳﻦ ﻣﺘﻐﻴﺮﻫﺎ ﻋﺒﺎرت اﺳﺖ از: R = RE = Q = 0 و S = E = SE = QB = 1 ﺣﺎل در ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﻪ ازاي ﻫﺮ دروازه ﻣﻨﻄﻘﻲ ﺑﺎﻳﺪ ﻳﻚ ﻧﺦ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ در اﺑﺘﺪاي ﺑﺮﻧﺎﻣﻪ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮد و ﺑﺪون وﻗﻔﻪ ،از اﺑﺘﺪا ﺗﺎ اﻧﺘﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻫﺮﮔﺎه ﻳﻜﻲ از وروديﻫﺎﻳﺶ ﺗﻐﻴﻴﺮ ﻛﺮد ،ﺧﺮوﺟﻲ ﻣﺤﺎﺳﺒﻪ ﺷﺪه را ﭼﺎپ ﻛﻨﺪ .اﮔﺮ ﺧﺮوﺟﻲ ﺟﺪﻳﺪ ﻧﺴﺒﺖ ﺑﻪ ﻗﺒﻠﻲ ﺗﻐﻴﻴﺮي ﻧﻜﺮده ﺑﻮد ،ﺑﺎﻳﺪ ﭼﺎپ ﺷﻮد و ﻣﻌﻴﺎر ﺑﺮاي ﭼﺎپ ﻛﺮدن ،ﺗﻐﻴﻴﺮ ﻛﺮدن ورودي اﺳﺖ .ﻗﺎﻟﺐ ﻛﻠﻲ ﺗﺎﺑﻌﻲ ﻛﻪ ﺑﺮاي ﻧﺦﻫﺎ اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﺪ ﺑﺎﻳﺪ ﺑﻪ ﺷﻜﻞ زﻳﺮ ﺑﺎﺷﺪ )اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ﺑﻴﻨﻬﺎﻳﺖ اﺟﺒﺎري اﺳﺖ ،اﻣﺎ درون ﺣﻠﻘﻪ را ﻣﻲﺗﻮاﻧﻴﺪ ﺑﻪ ﺷﻜﻞ دﻟﺨﻮاه ﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ(: { )void* thread_routine(void* arg // initialization ... { )while(1 // evaluation // print output, if inputs have changed // buffer the inputs } } از آﻧﺠﺎ ﻛﻪ ﻫﺮ ﻧﺦ ﺑﺎﻳﺪ ﺑﻪ ﻃﻮر ﭘﻴﻮﺳﺘﻪ ﺑﻪ ﻣﺘﻐﻴﺮﻫﺎ دﺳﺘﺮﺳﻲ داﺷﺘﻪ ﺑﺎﺷﺪ و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺗﻨﻬﺎ ﻳﻚ ﺑﺎر ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮد دو روش ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ :ﺗﻌﺮﻳﻒ ﻛﺮدن ﻣﺘﻐﻴﻴﺮﻫﺎ ﺑﻪ ﺻﻮرت globalو ﻳﺎ اﺳﺘﻔﺎده از اﺷﺎرهﮔﺮ. ﻓﺮﻣﺖ ورودي و ﺧﺮوﺟﻲ: اﺑﺘﺪا در ورودي اﺳﺘﺎﻧﺪارد ،در اوﻟﻴﻦ ﺧﻂ Nﻣﻲآﻳﺪ .ﺳﭙﺲ ،در Nﺧﻂ ﺑﻌﺪي ،در ﻫﺮ ﺧﻂ ﺑﻪ ﺗﺮﺗﻴﺐ از ﭼﭗ ﺑﻪ راﺳﺖ، ﻣﻘﺎدﻳﺮ R, S, Eﻣﻲآﻳﻨﺪ .ﺳﭙﺲ در ﺧﺮوﺟﻲ اﺳﺘﺎﻧﺪارد ﺑﺎﻳﺪ ﺧﺮوﺟﻲ دروازهﻫﺎﻳﻲ ﻛﻪ ورودي آنﻫﺎ ﻋﻮض ﺷﺪه ﺑﺎ ﻓﺮﻣﺖ X b ﺑﻴﺎﻳﺪ ﻛﻪ Xﻧﺎم ﺳﻴﻢ ﺧﺮوﺟﻲ )ﻣﺎﻧﻨﺪ (R, RE, Qو bﻣﻘﺪار ﻣﺤﺎﺳﺒﻪ ﺷﺪه آن )ﺻﻔﺮ ﻳﺎ ﻳﻚ( ﻣﻲﺑﺎﺷﺪ .ﻳﻚ اﺟﺮاي ﻧﻤﻮﻧﻪ را در زﻳﺮ ﻣﻲﺑﻴﻨﻴﺪ )ﺧﺮوﺟﻲﻫﺎي ﻧﻮﺷﺘﻪ ﺷﺪه ﺗﻨﻬﺎ ﺧﺮوﺟﻲ ﻣﻤﻜﻦ ﻧﻴﺴﺘﻨﺪ(: Input: 2 1 0 1 1 0 0 Output: RE 1 Q 0 QB 1 SE 0 RE 0 SE 0 QB 1 Q 0 ﺳﻮال :ﺗﺤﺖ ﭼﻪ ﺷﺮاﻳﻄﻲ ﺧﺮوﺟﻲ ﻧﻬﺎﻳﻲ ﻳﻌﻨﻲ Q, QBﺑﻪ ﺗﺮﺗﻴﺐ اﺟﺮا ﺷﺪن ﻧﺨﻬﺎ ﺑﺴﺘﮕﻲ ﻧﺪارد؟ ﺗﻮﺿﻴﺤﺎت: ﻛﺪﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻫﺎ را در ﻳﻚ ﻓﺎﻳﻞ زﻳﭗ ﺑﺎ ﻧﺎم ) xxxxxxxx-HW1-programsﻛﻪ xxxxxxﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ اﺳﺖ( و ﺑﺨﺶﻫﺎي ﺗﻮﺿﻴﺤﻲ و ﺗﺤﻠﻴﻠﻲ را در ﻓﺎﻳﻞ xxxxxxxx-HW1-docsﺣﺪاﻛﺜﺮ ﺗﺎ ﺗﺎرﻳﺦ 90/2/9ﺑﻪ آدرس oshw90s@gmail.comﺑﻔﺮﺳﺘﻴﺪ.
© Copyright 2025 Paperzz