os-ca1.pdf

‫ﺳﻴﺴﺘﻢﻫﺎي ﻋﺎﻣﻞ‬
‫زﻣﺴﺘﺎن ‪1386‬‬
‫ﺗﻤﺮﻳﻦ ﻛﺎﻣﭙﻴﻮﺗﺮي ‪1‬‬
‫ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ‪ :‬ﭘﻴﺶ از ﻧﻴﻤﻪ ﺷﺐ ﻳﻚﺷﻨﺒﻪ ‪1386/12/18‬‬
‫ﻧﻜﺎت ﻗﺎﺑﻞ ﺗﻮﺟﻪ‬
‫‪ .1‬ﺗﻤﺮﻳﻦﻫﺎي ﻛﺎﻣﭙﻴﻮﺗﺮي ﺑﺎﻳﺪ در ﮔﺮوهﻫﺎي‪ ‬دو ﻧﻔﺮه اﻧﺠﺎم ﺷﻮد‪ .‬‬
‫‪ .2‬ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﺎﻳﺪ در ﻣﺤﻴﻂ ﻟﻴﻨﻮﻛﺲ و ﺑﻪ زﺑﺎن ‪ C/C++‬ﻧﻮﺷﺘﻪ ﺷﻮد‪ .‬‬
‫‪ .3‬اﺳﺘﻔﺎده از ‪ Makefile‬در ﺳﺎﺧﺖ ﺑﺮﻧﺎﻣﻪﻫﺎ اﻟﺰاﻣﻲ اﺳﺖ‪ .‬‬
‫‪ .4‬در‪ ‬ﻧﻮﺷﺘﻦ‪ ‬ﺑﺮﻧﺎﻣﻪﻫﺎ‪ ‬ﺑﺎﻳﺪ‪ ‬از‪ ‬ﻓﺮاﺧﻮانﻫﺎي‪ ‬ﺳﻴﺴﺘﻤﻲ‪ ‬ﻟﻴﻨﻮﻛﺲ‪ ‬و‪ ‬ﺗﻮاﺑﻊ‪ ‬ﻛﺘﺎﺑﺨﺎﻧﻪاي ‪ C‬اﺳﺘﻔﺎده ﺷﻮد و اﺳﺘﻔﺎدهي‬
‫ﻣﺴﺘﻘﻴﻢ از دﺳﺘﻮرات ﭘﻮﺳﺘﻪي ﻟﻴﻨﻮﻛﺲ ﻣﺎﻧﻨﺪ ‪ ps ، ls‬ﻣﺠﺎز ﻧﻴﺴﺖ‪ .‬‬
‫‪ .5‬اﺳﺘﻔﺎده ﻣﻨﺎﺳﺐ از ‪ comment‬ﮔﺬاري ﺗﺎ ‪ %10‬اﻣﺘﻴﺎز ﻣﺜﺒﺖ ﺧﻮاﻫﺪ داﺷﺖ‪ .‬‬
‫‪ .6‬ﮔﺰارﺷﻲ از روش اﺳﺘﻔﺎده ﺷﺪه‪ ،‬ﺳﺎﺧﺘﺎر ﺗﻮاﺑﻊ و ﻛﻼسﻫﺎ اراﺋﻪ دﻫﻴﺪ‪ .‬ﻗﺎﻟﺐ ﮔﺰارش ﺗﺮﺟﻴﺤﺎ ‪ PDF‬ﺑﺎﺷﺪ‪ .‬‬
‫‪ .7‬ﺗﻨﻬﺎ ﻓﺎﻳﻞﻫﺎي ‪ .h ، .cpp‬و ‪ makefile‬ﺑﺮﻧﺎﻣﻪ و ﮔﺰارش ﺧﻮد را ﺗﺤﻮﻳﻞ دﻫﻴﺪ‪ .‬‬
‫‪ .8‬دﻳﺮﻛﺮد ‪ %25‬ﻧﻤﺮهي ﻣﻨﻔﻲ دارد و ﺑﻪ ازاي ﻫﺮ روز ‪ %5‬اﺿﺎﻓﻪ ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﭘﺲ از ﻳﻚ ﻫﻔﺘﻪ ﻧﻤﺮهاي ﺗﻌﻠﻖ‬
‫ﻧﺨﻮاﻫﺪ ﮔﺮﻓﺖ‪ .‬‬
‫‪ .9‬ﺗﻤﺎرﻳﻦ ﺑﺎﻳﺪ ﺑﻪ آدرس ‪ [email protected]‬ﻓﺮﺳﺘﺎده ﺷﻮد‪ .‬رﻋﺎﻳﺖ ﻗﺎﻟﺐ زﻳﺮ اﻟﺰاﻣﻲ اﺳﺖ‪ :‬‬
‫• ﻋﻨﻮان ﻣﻴﻞ‪ OS‐CA1 :‬‬
‫• ﺗﻨﻬﺎ‪ ‬ﻧﺎم‪ ‬و‪ ‬ﻧﺎم‪ ‬ﺧﺎﻧﻮادﮔﻲ‪ ‬و‪ ‬ﺷﻤﺎره‪ ‬داﻧﺸﺠﻮﻳﻲ‪ ‬در‪ ‬ﻣﺘﻦ‪ ‬ﻧﺎﻣﻪ ذﻛﺮ ﺷﻮد‪ .‬‬
‫• ﻓﺎﻳﻞﻫﺎ ﺑﻪ ﺻﻮرت ‪ zip‬و ﺑﺎ ﻧﺎم ‪ family1_family2.zip‬ﭘﻴﻮﺳﺖ ﺷﻮد‪ .‬‬
‫ﻫﺪف ﺗﻤﺮﻳﻦ‬
‫آﺷﻨﺎﻳﻲ ﺑﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺳﻮﻛﺖ‪ ،‬ﺷﺒﻪ ﻓﺎﻳﻞ ﺳﻴﺴﺘﻢ ‪ proc‬ﺑﺮاي اﺳﺘﺨﺮاج اﻃﻼﻋﺎت ﺳﻴﺴﺘﻤﻲ‪ ،‬و ﻓﺮاﺧﻮانﻫﺎي‬
‫ﺳﻴﺴﺘﻤﻲ در ﻟﻴﻨﻮﻛﺲ‪.‬‬
‫ﺻﻮرت ﺗﻤﺮﻳﻦ‬
‫ﭘﻮﺳﺘﻪ )‪ (shell‬ﻳﺎ ﻣﻔﺴﺮ دﺳﺘﻮرات )‪ (Command Interpreter‬واﺳﻂ اﺻﻠﻲ ارﺗﺒﺎط ﻣﻴﺎن ﻛﺎرﺑﺮ و ﺳﻴﺴﺘﻢ‬
‫ﻋﺎﻣﻞ اﺳﺖ‪ .‬در اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﺎﻳﺪ ﻳﻚ ﭘﻮﺳﺘﻪي راه دور )‪ (Remote Shell‬ﺑﺎ ﻗﺎﺑﻠﻴﺖ اﻧﺘﻘﺎل ﻓﺎﻳﻞ را ﻃﺮاﺣﻲ و‬
‫ﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ‪ .‬اﻳﻦ ﭘﻮﺳﺘﻪ ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪي ‪ client/server‬اﺳﺖ‪ server .‬ﺑﺮ روي ﻳﻚ ﭘﺮت ﻣﺸﺨﺺ‬
‫ﮔﻮش ﻣﻲﻛﻨﺪ و ﻣﻨﺘﻈﺮ درﺧﻮاﺳﺖ اﺗﺼﺎل از ﺳﻮي ‪ client‬اﺳﺖ‪ client .‬ﺑﺎﻳﺪ اﺟﺮاي دﺳﺘﻮرات زﻳﺮ را ﭘﺸﺘﻴﺒﺎﻧﻲ‬
‫ﻛﻨﺪ‪:‬‬
‫ﺗﻮﺟﻪ‪ :‬ﻛﺎرﺑﺮد دﺳﺘﻮرات ﺑﺎ ﮔﺰﻳﻨﻪي ‪) –local‬در دﺳﺘﻮراﺗﻲ ﻛﻪ اﻳﻦ اﻣﻜﺎن را دارﻧﺪ(‪ ،‬ﺑﺎﻋﺚ ﻣﻲﺷﻮد ﺧﺮوﺟﻲ‬
‫ﻣﺮﺑﻮط ﺑﻪ ﺳﻴﺴﺘﻢ ‪ client‬ﺑﺎﺷﺪ؛ در ﺣﺎﻟﺖ ﻋﺎدي اﻃﻼﻋﺎت از ‪ server‬ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد و ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺳﻴﺴﺘﻤﻲ اﺳﺖ‬
‫ﻛﻪ ‪ server‬ﺑﺮ روي آن ﻗﺮار دارد‪.‬‬
‫• >‪ - connect <server-ip> <port‬اﺗﺼﺎل ﻻزم ﺑﻪ ﺳﻴﺴﺘﻢ ‪ server‬را ﺑﺮﻗﺮار ﻣﻲﻛﻨﺪ‪.‬‬
‫در ﺻﻮرت ﺑﺮﻗﺮاري ارﺗﺒﺎط اﻣﻜﺎن اﺟﺮاي دﺳﺘﻮرات ﺑﺪون ﮔﺰﻳﻨﻪي ‪ –local‬ﻓﺮاﻫﻢ ﻣﻲﺷﻮد‪ .‬ﻣﻮارد‬
‫ﺧﻄﺎ ﮔﺰارش ﺷﻮد‪.‬‬
‫• >‪ - cd [-local] <directory‬داﻳﺮﻛﺘﻮري ﺟﺎري را ﺑﻪ >‪ <directory‬ﺗﻐﻴﻴﺮ‬
‫ﻣﻲدﻫﺪ‪ .‬در ﺻﻮرﺗﻲ ﻛﻪ آرﮔﻤﺎن ذﻛﺮ ﻧﺸﻮد داﻳﺮﻛﺘﻮري ﺟﺎري را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪ .‬در ﺻﻮرﺗﻲ ﻛﻪ آرﮔﻤﺎن‬
‫وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﭘﻴﻐﺎم ﻣﻨﺎﺳﺐ ﻣﻲدﻫﺪ‪ .‬‬
‫• >‪ - rm [-local] <filename‬ﻓﺎﻳﻞ ذﻛﺮ ﺷﺪه در آرﮔﻤﺎن را ﺣﺬف ﻣﻲﻛﻨﺪ‪ .‬ﻣﻮارد ﺧﻄﺎ‬
‫ﺑﺎﻳﺪ ﮔﺰارش ﺷﻮد‪ .‬‬
‫• >‪ - ls [-local] <directory‬ﻣﺤﺘﻮﻳﺎت داﻳﺮﻛﺘﻮري ﺟﺎري را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪ .‬ﻧﻤﺎﻳﺶ‬
‫اﻃﻼﻋﺎت اوﻟﻴﻦ و آﺧﺮﻳﻦ ﺳﺘﻮن ”‪ “ls –al‬اﻟﺰاﻣﻲ اﺳﺖ‪ .‬‬
‫• >‪ - mkdir [-local] <directory‬داﻳﺮﻛﺘﻮري آرﮔﻤﺎن را داﺧﻞ داﻳﺮﻛﺘﻮري ﺟﺎري‬
‫اﻳﺠﺎد ﻣﻲﻧﻤﺎﻳﺪ‪ .‬ﻣﻮارد ﺧﻄﺎ ﺑﺎﻳﺪ ﮔﺰارش ﺷﻮد‪ .‬‬
‫• >‪ <filename1> - getf <filename1> <filename2‬را از ‪ server‬ﺑﻪ‬
‫‪ client‬ﻣﻨﺘﻘﻞ و ﺑﺎ ﻧﺎم >‪ <filename2‬ذﺧﻴﺮ ه ﻣﻲﻛﻨﺪ‪ .‬ﭘﻴﺸﺮﻓﺖ ﻛﺎر را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪ .‬‬
‫• >‪ <filename1> - putf <filename1> <filename2‬را از ‪ client‬ﺑﻪ‬
‫ﺳﺮور ﻣﻨﺘﻘﻞ و ﺑﺎ ﻧﺎم >‪ <filename2‬ذﺧﻴﺮ ه ﻣﻲﻛﻨﺪ‪ .‬ﭘﻴﺸﺮﻓﺖ ﻛﺎر را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ‪ .‬‬
‫• ‪ – quit‬اﺗﺼﺎل را ﻗﻄﻊ ﻣﻲﻛﻨﺪ و از ﭘﻮﺳﺘﻪ ﺧﺎرج ﻣﻲﺷﻮد‪ .‬‬
‫‪ command line prompt‬ﭘﻮﺳﺘﻪ‪ ‬ﺑﺎﻳﺪ‪ ‬آدرس‪ ‬داﻳﺮﻛﺘﻮري‪ ‬ﺟﺎري‪ ‬را ﺑﻪ ﺻﻮرت ‪ ‬‬
‫‪[CurrentClientDir-CurrentServerDir]#‬‬
‫‪ ‬ﻧﻤﺎﻳﺶ‪ ‬دﻫﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ‪ ‬در‪ ‬اﺑﺘﺪا‪ ‬داﻳﺮﻛﺘﻮري ﺟﺎري ﻫﻤﺎن داﻳﺮﻛﺘﻮري اﺳﺖ ﻛﻪ ﺑﺮﻧﺎﻣﻪ از آن اﺟﺮا ﺷﺪه اﺳﺖ‪.‬‬