Үдерістің үлгісі
Бұл модельде компьютерде жұмыс істейтін, кейде операциялық жүйені қамтитын барлық бағдарламалық құралдар бірқатар дәйекті процестерге немесе қысқаша айтқанда қарапайым процестерге дейін азаяды. Процедура жай орындалатын бағдарламаның мысалы болып табылады, оның ішінде нұсқаулық есептегішінің, регистрлердің және айнымалылардың ағымдағы мәндері. Концептуалды түрде, әр процестің өз виртуалды, орталық процессоры бар. Әрине, нақты процессорлар үнемі процестер арасында ауысады, бірақ жүйені түсіну үшін, процессордың бағдарламалар арасында ауысуын қадағалауға қарағанда, параллельді режимде жұмыс істейтін процестердің жиынтығы туралы ойлау оңайырақ.
Бұл процестер арасындағы тұрақты ауысу көп функциялы бағдарлама немесе көп тапсырма деп аталады. 1.1-суреттің а нұсқасында төрт бағдарламаны жадта сақтайтын көп міндетті компьютер көрсетіледі. 1.1-суреттің ә нұсқасында әрқайсысы өздерінің басқару алгоритмі бар (яғни, өз логикалық нұсқаушы) бар төрт процесті көрсетеді және барлық қалғандарына қарамастан жұмыс істейді. Шындығында, тек бір физикалық командалық есепші бар, сондықтан әрбір процестің басында оның логикалық командалық есептегіші нақты есептегішке жүктеледі. Процестің жұмысын біраз уақытқа тоқтатқан кезде, физикалық пәрмен есептегішінің мәні процесс жадыда орналасатын логикалық пәрмен есептегішінде сақталады. 1.1-суреттің б нұсқасында өте ұзақ байқау кезеңінде барлық үдерістер дамыған, бірақ кез келген сәтте тек бір процесс жұмыс істейді. 1.1-сурет Компьютер: a - көп режимде жұмыс істейтін төрт бағдарлама; ә - бір-бірінен дәйекті үдерістерден тәуелсіз төрт тұжырымдамалық үлгі; б - бір сәтте тек бір бағдарлама белсенді. Үдерістер процессорлар арасында ауысқандықтан, процестің есептеулерін орындау жылдамдығы бірдей болмайды және сол үдеріс қайтадан басталса, қайтадан көрсетілмейді. Сондықтан, үдерістер оларды орындау уақытына қатаң анықталған жол берулермен бағдарламаланбауы керек. Мысалы, басқа құрылғыда жоғары сапалы бейнемен бірге жүретін музыканы ойнайтын дыбыстық процесс қарастырайық. Аудио бейнеден біраз уақыт өткеннен кейін, дыбыстық үдеріс ойнатуды бастау үшін бейне серверді сигнал етеді, содан кейін аудионы ойнатпас бұрын ол 10 000 рет жұмыс істемейді. Егер цикл сенімді таймер ретінде қызмет етсе, онда бәрі де қажет болады, бірақ егер процессор бос тұрған циклды орындау кезінде басқа үдерісті ауыстыруға шешім қабылдаса, сәйкес кадрлар көрсетілген кезде дыбыстық үдеріс жалғасуы мүмкін және өкінішке орай, бейне және аудио үндестіру жоғалады. Үдерістің жұмысына ұқсас нақты уақыт талаптарына ие болғанда белгілі бір оқиғалар белгілі бір миллисекундтан кейін орын алуы керек және олар үшін арнайы шаралар қабылдау қажет. Бірақ, әдетте, процестердің көпшілігі орталық процессордың орнатылған көпжақты режимі немесе түрлі үдерістердің салыстырмалы жылдамдығы әсер етпейді. Үдеріс пен бағдарламаның арасындағы айырмашылық өте нәзік, бірақ өте маңызды. Кейбір ұқсастығы, бәлкім, бізге көмектеседі. Өзіңіздің қызыңыздың туған күніне торт пісіріп, пісіруге баруға шешім қабылдаған бағдарламашыны елестетіп көріңіз. Оның торт рецепті бар, ал ас үйде барлық ингредиенттер бар: ұн, жұмыртқа, қант, ваниль сығындысы және т.б. Осыған ұқсас рецепт - бағдарлама (яғни, ыңғайлы жазба түрінде көрсетілген алгоритм), бағдарламашы - орталық процессор және пирогтың ингредиенттері енгізіледі. Процесс - біздің аспазымыздың рецептін оқып, ингредиенттерді таңдап, тортты пісіруден тұратын әрекет. Көзімізге елестетейік, бағдарламашының ұлы ас үйге жүгіріп барып, оны ара шағып тастағанын айтады. Бағдарламашы рецептте тоқтаған жерді жазады (ағымдағы үрдістің күйі сақталады), алғашқы көмек кітабын шығарады және онда келтірілген нұсқауларды орындауға кіріседі. Бізде бір үдерістен (пісіруден) жоғары дәрежедегі (медициналық көмек) басқа үдеріске ауысқан процессор бар, әр үдерістің өзінің бағдарламасы бар (алғашқы анықтамалық тізімге қарсы рецепт). Ара шаққан жерді емдегеннен кейін, бағдарламашы тоқтаған жерден әрекеттерін жалғастырып, тортқа оралады. Мұнда негізгі идея үдеріс, бұл әрекет түрі. Оның бағдарламасы, кіріс және шығыс деректері және күйі бар. Процессорды белгілі бір жоспарлау алгоритміне байланысты бірнеше үдерістермен бөлісуге болады, ол бір үдерісті тоқтату және басқа үдерісті бастау үшін пайдаланылады. Бағдарламаның үдерістен айырмашылығы, дискіге сақталып, ештеңе орындамауы мүмкін. Айта кету керек, егер бағдарлама екі рет іске қосылса, онда екі үдерістің қатысқаны қарастырылады. Мысалы, бір мезгілде екі принтер қол жетімді болса, сөзді екі рет басу немесе екі файлды бір уақытта басып шығару мүмкін болады. Бірдей бағдарламадан екі жұмыс үдерісі іске қосылмағаны фактісі екі түрлі үдерістен тұрады. Операциялық жүйе оларға жалпы кодты пайдалануға мүмкіндік береді, сондықтан осы кодтың тек бір данасы жадыда болады, бірақ бұл екі іске қосылған үдерістерге қатысты тұжырымдамалық жағдайды өзгертпейтін таза техникалық бөлшектер.
Ұнады ма? Онда достарыңмен бөліс!
|