Синхрондаудың мақсаты және құралдары.
Операциялық жүйенің көптеген жеткілікті құралдары бар, олардың көмегімен процесстер мен ағымдардың синхронизациясы жүреді. Синхронизацияның ағымға қажеттілігі мультипрограммалық операциялық жүйеде ғана туады және ол есептеуіш жүйенің аппараттық және мәліметтік ресурстардың бірдей қолданылуымен байланысты. Синхронизация ағымдардың арасындағы мәліметтердің ауысуы, олардың бөлінуі кезінде жарыстар мен тіреулерді жою үшін қажет.
Көптеген операциялық жүйеде бұл құралдарды процесстер арасындағы байланыс дейді – Inter Process Communications (IPS), бұл «процес » сөзінің мағынасы бұрынғыда «ағым» ұғымының орнына қолданылғанын көрсетеді. Әдетте IPS-тің құралдарына тек процесс аралығындағы синхронизация ғана емес, сонымен қатар процесс аралығындағы мәліметтердің ауыстырылуы да жатады.
Ағымдардың мультипрограммалық ортада орындалуы әрқашан асинхромдық мінез алады. Тұрақты мерзім ішінде процесстің орындалуы қандай сатыда тұратынын дұрыс анықтап айту өте қиын. Тіптен, 1 программалық жүйеде тапсырманың дәл орындалу уақытын бағалау мүмкін емес. Бұл уақыт көп жағдайларда бастапқы мәліметтердің мағынасына бағынышты циклдердің санына әсер етеді, енгізу-шығару операцияларының орындалу уақытына және т.б. байланысты. Өйткені бастапқы мәліметтер тапсырманы енгізу моментінде әртүрлі болуы мүмкін, және де бөлек сатылар мен тапсырмалырдың орындалуы анықталмауы мүмкін.
Мультипрограммалық жүйеде орындалу уақытын, тіптен, анықтау мүмкін емес. Ағымдарды үзіп тастау мезеті, олардың бөлшектелген ресурстарға кезекте тұру уақыты, орындалулары үшін ағымдарды таңдау – бұл құбылыстардың бәрі көптеген жағдайлардың нәтижесі және байқаусыз ретте болуы мүмкін. Жақсы деген жағдайда есептеуіш процесстің мінезін бағалауға болады, мысалы, белгелі бір уақытта оның анықталу мерзімі.
Осылай ағымдар жалпы жағдайда тәуелсіз жүреді, бір-біріне асинхромды. Бұл бір процесс ағымына да, жалпы программалық кодтың орындалуын қамтамасыз ететін және де әртүрлі ағымдарының процесс қатынасына да әділетті.
Процесстер мен ағымдардың жұмыс істеуі олардың синхронизациясымен байланысты, кейбір жағдайлардың болуы ағымдардың тоқтатылуымен және осы жағдайдың қайта пайда болуынан оның жұмыс істеуі. Ағымдардың бірдей жұмыс істеуі синхронизацияның негізін құрайды, бұл ресурстардың бөлінуі мен мәліметтердің ауытырылуымен байланысты. Мысалға, ағымдағы алушы ағымдығы жіберішінің мәліметтерді буферге салғаннан кейін ғана сұрау сала алады. Егер ағымдағы алушы мәліметтерді буферге салынбай тұрып сұраныс берсе, онда ол тоқтатылуы керек.
Аппараттық ресурстарды бірдей қолдану синхронизацияға қажетті.
Егер мысалы, ағымға кезекті портқа ену қажет, ал бұл портпен монополиялы жүйеде басқа ағым жұмыс істейтін болса, онда жалпы жүйе ағымды өзіне керек порт босағанша тоқтады және оны жүйелендірмейді.
Сонымен қатар, ішкі есептегіш жүйесіне қатысты әр жағдайлармен синхронизация жиі керек, мысалы, Ctrl+C клавиш комбинацияларын терген жағдайдағы реакциялар.
Жүйеде әр секунд сайын ресурстардың бөлінуі мен босатылуына байланысты жүздеген жағдайлар болып тұрады және жүйедегі жағдайлармен қоса ағымдарды синхронизациялауда жағдай жасатын жалпы жүйенің сенімді және туынды құралдары болуы керек.
Бағдарламашы қосымша бағдарламалардың ағымдарын синхронизациялау үшін өз құралдары мен синхронизация қабылдағыштарына қоса операциялық жүйенің құралдарын да қолдана алады. Бірақ та көптеген жағдайларда ең тиімді және ең мүмкін болып синхронизациялық құралдыр саналады. Сонымен, әрбір процесстерге қатысты ағымдардың бір-бірінің жұмысына қатысуға мүмкіндіктері болмайды. Операциялық жүйенің қатысуынсыз олар бір-бірін тоқтатуға және болған жағдайды хабарлауға мүмкіндіктері жоқ. Операциялық жүйеге синхронизация құралдарын қосымша процесстерді синхромдау үшін ғана емес, сонымен қатар, оның ішкі қажеттіліктеріне де қолданады.
Әлбетте, операциялық жүйені құрушылар қосымша және жүйелі бағдармашыларға кең жүйелі синхронизация құралдарын жүзеге асырып береді. Бұл құралдар сатылы жүйені құруы мүмкін, егер жай құралдардың арқасында күрделірек құралдар құралатын болса, сонымен қатар функционалды мамандырылған болса, мысалы, бір процессті және әртүрлі процесстік ағымдарды синхронизациялауға арналған құралдары, берілген ақпараттарды ауыстырған жағдайда және т.б.
Әртүрлі жүйелі шақыру синхронизацияның функционалды мүмкіншіліктері жиі жабылып қалады, сондықтанда бір есепті шешу үшін бағдарламашы жеке басының қажеттілігіне қарай бірнеше шақыруларды қолдана алады.
Достарыңызбен бөлісу: |