Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Синхронизация мақсаты мен қажеттілігі






Лектердің синхронизациясына қ ажеттілік тек мультипрограммалық операциялық жү йеде жә не есептеуіш жү йеде ақ параттық, информациялық қ орларды бірге пайдалануғ а байланысты туады. Лек аралық мә лімет алмасу, мә ліметтерді бө лу, процессорғ а ену жә не енгізу-шығ ару қ ұ рылғ ылары кезінде тұ йық тауларды жою мақ сатында синхронизациялау қ ажет болады.

Кө птеген ОЖ-де бұ л қ ұ ралдар процесс аралық қ арым- қ атынас –Inter process communications (IPC), деп аталады, яғ ни «процесс» ұ ғ ымы «лек» ұ ғ ымымен тү пкі тарихы мазмұ ндас екені анық талады.

Лекті мультипрограммалық ортада орындау барысында асихрондық мінезге ие болады. Белгілі бір уақ ытта бұ л процестің орындалу кезең ін дө п басып айту қ иын. Тіпті бір бағ дарламалық режимде тапсырманың торындалу уақ ытын дә л есептеу мү мкін бола бермейді. Бұ л уақ ытта кө птеген жағ дайда циклдер санына, енгізу-шығ ару операцияларын орындау уақ ытына ық пал ететін, шығ ыс мә ліметтерінің мазмұ нына жә не т.б байланысты болады.

Мультипрограммалық жү йеде бағ дарламаны орындау уақ ыты анық талынбайды. Лектердің ү зілу уақ ыты, олардың қ орлық бө ліну кезегінде болуы, лектерді орындауғ а жіберуді таң дау тә ртібі – мұ ның бә рі кө птеген жағ дайлардың ө ту қ орытындысы болып табылады жә не кездейсоқ интерпретивті болуы мү мкін. Сә тті жағ дайларда есептегіш бағ дарламаның ашық талуы мү мкін мінездерін бағ алауғ а болады, мысалы, берілген уақ ыт аралығ ында аяқ талуы ық тимал.

Сол себепті, лектер жалпы жағ дайда (егер програмист оларды синхронизациялауғ а қ ажетті шаралар қ олданбаса) тә уелсіз тү рде асинхронды бір-біріне қ арсы бағ ытталады. Бұ лай болуы бір бағ дарламаның, жалпы бағ дарламалар кодының қ ызметін атқ аруы немесе бірнеше бағ дарламалар легі, ә р-қ айсысы ө з міндетін атқ аруы тә різді. Келесі бір жағ дайғ а дейін жә не оның кезекті активизатциялауына дейін лекті тоқ тату арқ ылы жылдамдығ ын мақ ұ лдаумен бекітілді. Кез келген процестер мен лектердің ә рекеттестігі олардың синхронизациясына байланысты. Синхронизациялау мақ саты кез- келген лектің ә рекеттестігіне негізделеді де, қ орлады бө лу немесе мә лімет алмасуғ а байланысты бола алмайды. Мысалы: алушы легі мә ліметтерді тек қ ана лек жіберуші оларды буферге орналастырғ аннан кейін ғ ана ала алады. Егер алушы легі мә ліметтер буферге тү спей жатып ә рекет ететін болса, онда ол ә рекет тоқ татылады.

Аппараттық қ орларды бірлестіре пайдалану барысында да синхронизациялау қ ажет. Мысалы: (белсенді лекке жү йелі портқ а ену қ ажеттілігі туғ ан кезде) кү ту режимінде тұ рғ ан монополиялық тә ртіпке белгілі бір лек жұ мыс жасап жатқ анда, белсенді лекке жү йелі портқ а ену қ ажеттілігі туғ ан жағ дайда, ЖС белсенді лекті уақ ытша тоқ татады жә не оны ө зіне қ ажетті порт босағ анғ а дейін активизациялайды. Есептеуіш жү йеде де синхронизациялау қ ажеттілігі жиі туындайды, мысалы; Ctrl+ C пернелерін басу реакциясы. Қ орларды бө лу жә не босатуғ а байланысты секунд сайын жү здеген жағ дайлар болып тұ рады, осы кезде лектерді синхронизациялауғ а мү мкіндік бере алатын сенімді ә рі ө німділігі жоғ ары ЖС қ ұ рамдары болуы керек.

Операциялық жү йе сияқ ты қ осалқ ы бағ дарламалар легін синхронизациялауда програмист ө зіндік қ ұ ралы ретінде пайдалана алады. Мысалы: қ осалқ ы процестің екі бірдей легі ө зіндік жұ мысын бірнеше оқ иғ аларды орындау арқ ылы біреу ғ ана орнатылатын басты-қ исынды ө згерткіш арқ ылы ү лестіруге бағ ыттай алады.

Бірақ кө птеген жағ дайларда едә уір нә тижелі немесе бірден –бір мү мкіндіктердің бірі синхронизациялау қ ұ ралдарының бірі операциялық жү йеде, жү йелі шақ ырту ү лесінде болуы мү мкін. Міне осылай ә ртү рлі процеске тә н лектер бір – бірінің жұ мысына қ андайда бір жолмен ә сер ете алмайды. Олар операциялық далансыз бір –бірін тоқ тата алмайды немесе болғ ан оқ иғ а туралы хабарландыра алмайды. Операциялық жү йеде синхронизациялау қ ұ рамы тек қ осалқ ы процестерді синхронизациялап қ ана қ оймай, сонымен қ атар ішкі қ ажеттіліктері ү шін де пайдаланылады.

Ә детте операциялық жү йені ө ң деушілер програмистерге қ олданбалы жә не жә не жү йелі спектрлі синхронизациялау қ ұ ралдарын пайдалануғ а мү мкіндік береді. Бұ л қ ұ ралдар фунционалдық арнайы жабдық тау ә рі мейлінше қ арапайым қ ұ ралдарды едә уір кү рделі ұ ү ралдар орнын басуғ а тырысқ анда лерархия қ ұ ра алады, мысалы, бір процестік синхронизациялау легі мен тү рлі процестер синхронизациялау легі арасында мә лімет алмасу барысындажә не т.б. синхронизацияның тү рлі жү йелік шақ ыртуларының фунционалдық жиі тосқ ауланады, бұ л жағ дайда бір тапсырманы шешу барысында програмист ө з қ алауына сә йкес бірнеше шақ ыртуларды пайдалана алады.

Процеспен ә рекеттесу қ ажеттілігі туатын жағ дайлар:

- бір процестен екінші процеске ақ парат берілуі;

- процестің ық пал етуін бақ ылау (мысалы, олар бір қ ап ү шін таласқ ан кезде);

- процестік ә рекеттердің келісілуі(мысалы, бір процесс мә ліметтерді қ ойса, екіншісі оларды баспағ а жібереді).

 

Бұ л жағ дайда келісімділік болмаса, екінші процесс мә лімет тү спей тұ рып, баспағ а жіберуі мү мкін.

Екі жағ дайда лектерге байланысты. Бірінші жағ дайда лектерде мә селе туындамайды, себебі олар жалпы адрестік кең істікте қ олданады.

Мә лімет алмасу бірнеше тә сілдермен жү зеге асырылады:

- бө лінуші жад;

- бір процесс жазатын, ал екіншісі оқ у қ ызметін атқ аратын псевдофайл каналы.

- Бір компьютердегі сияқ ты бү кіл желіде ортаның ерекшелігі жасыратын жә не процесстерге бірлесіп ә рекет қ ылуғ а біркелкі мү мкіндік беретін, яро мен механизмді сү йемелдейтін қ ұ ралы сокеты деп аталады.

- Пошталық жә шіктер (Windows-та ғ ана), біржақ қ а бағ ытталғ ан, кең хабарлама жіберу мү мкіндіктері:

ө шірілген процедураны қ алпына келтіру, немесе А процесі В процесінде процедураны шақ ыру мү мкіншілігі жә не мә ліметтерді қ айтадан алу.

 

Синхронизациялау қ ажеттілігі. Синхронизациялау сұ рақ тарына немқ ұ райлылық комплекті жү йеде тапсырманы дұ рыс шешуге немесе жү йенің кү йреуіне ә келіп соқ тырады. Мысалы: (4.1.1.суреттегідей) кейбір кә сіпорындарда тұ тынушылардың мә ліметтік қ орын енгізу тапсырмасы.

Деректер базасындағ ы кө птеген жолдардың ішінде тө лем жә не тапсырыс жолы бар, ә рбір тұ тынушғ а жеке жазба жұ мыстары жү ргізіледі. Деректер базасын орындайтын бағ дарлама бірнеше лектен тұ ратын; соның ішінде А легі деректер базасында тұ тынушылардан келіп тү скен тапсырыс беру туралы ақ парат енгізсе, В легі деректер базасында тұ тынушыларғ а есептеме тө ленді, ұ сынушы бірің ғ ай процес ретінде қ ұ ралды. Ү ш қ адамдық ә рекеттерді іске қ осатын біртиптік алгоритмді пайдаланып. Бұ л екі лекте деректер базасының жалпы файлына бірлесе ә рекет етеді.

1. Деректер базаснда тұ тынушы туралы тапсырылғ ан тең естірілуімен буферге жазуды есептеу.

2. Тапсырыс (А легі ү шін) немесе Тө лем (В легі ү шін) жолдарын жаң а мағ ына беру.

3. Деректер базасына модификацияланғ ан жазба енгізу.


Мә ліметтерді бө луге ену барысы. А легі ү шін А1, А2 жә не А3, В легі ү шін В1, В2 жә не В3 қ адамдарына сә йкес лектерін белгілейміз, N тұ тынушы туралы тапсырыс жазбасын А легі қ ажет болғ ан жағ дайда жаң арта алу ү шін. Бұ л ү шін ол ө зі буферінде (А1 қ адам) жазба енгізу, Тапсырыс (А2 қ адамы) мазмұ нын модификациялайды, ал деректер базасында (А3 қ адамы) жазба енгізуге ү лгермейді, себебі оның орындалуы тоқ татылады, мысалы уақ ыт квантының аяқ талуы. В легінде N тұ тынушысына сә йкес мә лімет енгізу қ ажеттілігі туды деп есептейік. В легінің кезегі келгенде, ал ө з буферінде (В1) жазбасын енгізіп ү лгереді жә не тө лем (В қ адамы) жолын жаң артуды орындайды. Содан кейін тоқ татылады. Бұ дан В легінде N тұ тынушысы туралы жазба енгізілген, ал тапсырыс жолы бастапқ ы қ алпында мағ ынасы ө згертілгендігін байқ аймыз.

Егер А легіне кезекті тү рде басқ ару берілген кезде, ол ө з жұ мысын жалғ астыра отырып, N тұ тынушысы туралы деректер базасына тапсырыс (А3 қ адамы) жолының модификацияланғ ан жазбасын енгізеді. А легін тоқ татып, В легін активизацияланғ аннан соң, N тұ тынушысы туралы деректер базасындағ ы тө лем жолының соң ғ ы жаң артылғ ан ө з нұ сқ асын енгізеді. Бұ л жағ дайда деректер базасында N тұ тынушысының жү ргізген тө лемі туралы ақ парат сақ талады да, тапсырыс туралы ақ парат жойылады. (Н.2, а-суреті) Синхронизациялау мә селесінің қ иындық тары пайда болатын жағ дайлардың ретсіздігіне байланысты жоғ арыда кө рсетілген мысалдағ ы оқ иғ а желісін басқ алай дамытуғ а болады: тапсырыс туралы ақ параттың жойылуы. (Н.2, б-суреті) немесе керісінше барлық тү зетулер сә тті енгізіледі. (Н.2, в-суреті) Бұ ның барлығ ы лектердің жылдамдығ ымен тоқ татылу уақ ытына сә йкес анық талады. Сондық тан лек аралық қ арым-қ атынас кү рдеіл қ атынас болып табылады. Жоғ арыда кө рсетілгендей немесе одан да кө п лектер белгілі бір бө лімдерді ө ң деуі жә не қ орытында нә тиже лектердің жылдамдығ ына сә йкес болуы лектер жарысы деп аталады.


4.2. сурет Тапсырманың орындалу қ орытындысына ық пал ететін лектердің жылдамдығ ы

Сыный секция. Лектерді синхронизациялауда бағ дарламаның сыный секция ұ ғ ымы маң ызды орын алады.Сыный секция-дегеніміз бағ дарламаның бір бө лігі, орындау нә тижесі оқ ылғ ан сыймайтындай ө згеруі мү мкін, белгілі бір бө ліктің орындалу уақ ыты аяқ талмағ ан басқ а лектермен ауысып, сыный секция ә рқ ашан да сыный мә ліметтер арқ ылы анық талады; Алдың ғ ы келтірілген мысалды сыный лсекция- деректер базасы болып тұ р.

Барлық сыный мә ліметтермен жұ мыс жү ргізетін лектерде сыный секциялары анық талынуы тиіс. Бұ дан байқ ағ андығ ымыздағ ыдай, тү рлі лектердегі сыный секциялар тү рлі нә тижелі каманда жү йелерінен тү зілуі тиіс.

 

Лектерді синхронизациялау қ ұ ралы. Қ оршаушы ө згергіштер. Бір процессті лектерді синхронизациялауда қ осалқ ы бағ дарлмашы басты ө згергітікті бекітуді пайдалана алады. Бұ л ө згерткіштік процесстің барлық лектеріне де тікелей қ атынасы бар, бағ дарламашы ОС жү йелік шақ ыруларына назар аудармай жұ мыс жасай алады.


4.3.сурет. Ө згергіш бекітулерді пайдалана отырып сыный секцияларды дамыту

 

Екілік ө згерткіштікке сә йкес ә р бір сыный мә ліметтер жинағ ына келесідегідей қ ойылады: лек 0 мағ ынағ а ие болғ анда, сыный секцияғ а енгенде жә не одан шық анда мағ ынасы 1. 4.3. суретте F(D) бекіту ө згерткіштігіне D сыный мә ліметтеріне сә тті қ осылуды дамыту мақ сатында пайдалынатын лектердің алгоритімдік фрогменті кө рсетілген. Сыный секцияғ а шығ ар алдында, D мә ліметтерімен қ андайда бір лек жұ мыс істеп тұ рмағ андығ ын тексереді. Егер ө згерткіштік F(D) 0 қ асиетте орнатылғ ан болса, онда берілген тапсырма мен циклдық тексеру қ айталанады. Сегер жинтық мә ліметтер (F(D) = 1) болса, онда ө згерткіштік мағ ынасы F(D) 0 қ асиетте орналасады да лек сыный секцияғ а шығ ады. О мә ліметтерімен лек толық жұ мысын аяқ тағ ан соң, F(D) ө згергніштігі қ айтадан 1 қ асиетпен тең еседі.

Бекіту ө згерткіштігі тек қ ана бө лінетіе мә ліметтерге ғ ана қ олданылмайды сонымен қ атар бө лінетін қ орлардың ә р тү рлеріне де пайдаланылады.

Егер барлық есептер жоғ арыда кө рсетілген тә ртіппен орындалса онда лектердің сә тті қ осылуларына кепілдік беріледі. Солай болғ анмен де кез – келген уақ ытта, кез – келген жерде соның ішінде сыный секцияда да операциялық жү йе ық палымен ү зілуі мү мкін.

Сонда да бір нә рсені ескеруіміз қ ажет, ү зілісті шектеудің бір тә сілі бар екендігін. Бекіту ө згерткіштігін орнату жә не тексеру операциясының орындалуы барысында ү зуге болмайды. Мысалы: тексеру барысында қ ордың бос екендігі анық талысымен, 0 ө згерткіштікті орнатып ү лгермей лек ү зіледі. Оның тоқ татылуы кезінде басқ а лек қ ормен жұ мысын жалғ астырады, сыный секцияғ а кіріп ол да бө лінген қ ормен ө з жұ мысын аяқ тамастан ү зіледі. Бірінші безекке баақ ару мү мкіндігі берілісен, ол қ орды бос екен деп қ абылдап, ө зіндік сыный секциясының жұ мысын бастайды. Осылайша ө зара қ атынас принціптері бұ зылады да, потециалды тү рде нашар қ орытындығ а ә келіп соқ тыртады. Осындайжағ ыдайларды болдырмаудың алдын алу ү шін кө птеген компьютерлердің жү йелік командаларында бірің ғ ай, бө лінбейтін сараптау мен логикалық ө згерткіштік қ асиет беру командалары қ арасырылғ ан (мысалы: ВТС, BTR жә не ВТ5 командалары мен Pentium процессі). Процессорда осындай командалар болмағ ан жағ ыдайда, текесеру жә не орнату опреациясын орындау барысында ү зілісті болдырмаудың арнайы жү йелік 1 негізі қ алыптастырылуы керек.

Жоғ арыда кө рсетілген ө зара байланыстың дамытылуының тә сілі мынадай жетіспеушілктерден тұ рады: бір лек сыный секцияда тұ рғ анн уақ ытта, осы қ ор қ ажет келесі бір лек процессорғ а ену қ ұ ғ ығ ын алысымен ө зіне қ ажетті бекіту ө згерткіштігін қ айта – қ айта сұ рауы мү мкін, ал бұ л дегеніміз басқ а бір лекті орындауда пайдаланылатынпроцессор уақ ытын текке кетіру деген сө з. Осы жетіспеушіліктерді толық тыру ү шін кө птеген ОЖ арнайы сыный жү йедегі жү йелік шақ ыртулар қ арасытырылуда.

 

4.4. суретте Windows NT операциялық жү йеде жоғ арыда кө рсетілген функциялардың кө мегімен ө зара байланыс орнатылғ ан. Сыный мә ліметтерді ө згертудің алдында лек EnterCriticalSection жү йелік шақ ыртуын орындайды. Осы шақ ырту шең берінде алдың ғ ы жағ ыдайдағ ыдай алдымен, сыный қ ордың жағ ыдайын кө рсететін бекіту ө згерткіштіктің тексерілуі орындалады. Егер жү йелік шақ ырту (F(D) - 0) қ орының бос еместігін анық тағ аннан кейін, алдың ғ ы кө рсетілген жағ ыдайдағ ыдай емес, циклдық сұ раныс жасамай, лекті D) кү ту режиміне ауыстырады жә не осы лек сә йкесінше қ ор босағ аннан кейін активациялануына белгі жасайды. Осы уақ ытта қ орды пайдаланып жатқ ан лек сыный секциядан шығ ысымен LeaveCriticalSection жү йелік фнукциясын орындауы қ ажет, осының нә тижесінде бекіту ө згерткіштік мағ ынағ а ие болады да, (F(D) - 1) қ оры босайды, ал операциялық жү йе осы қ орды кү ту режимінде тұ рғ ан лектерді қ арастырып, бірінші кезекте тұ рғ ан лекті дайындық жағ ыдайына жібереді.


4.4. сурет сыный секцияғ а ену жә не шығ уда ө зара байланысты орнатуда қ олданылатын жү йелік фнукцияларды дамыту

Осылайша бос емес қ орды босатудың циклдық тексерілуіне кететін ө німсіз процессор уақ ытын жоюғ а болады. Бірақ та сыный секцияның жұ мыс кө лемі аз болып, бө лінген қ орғ а ену уақ ыты жылдам берілетін болса, онда бұ л жағ ыдайда бекіту ө згерткіштік жү йесін пайдаланғ ан дұ рыс. Шынында да бұ л жағ ыдайда ОЖ сыный секцияғ а ену жә не шығ уда ө зара байланысты орнатуда қ олданылатын жү йелік фнукцияларды дамыту кү тке ү немділікті керісінше жоғ арлатуы мү мкін.

 

Бақ ылау сұ рақ тары:

1. Тапсырмалар жоспарлаушысы аралық дең гейлер жоспарлаушысы жә не диспетчердің араларындағ ы айырмашылық тары туралы айтып берің із.

2. Жоспарлаудың негізгі мақ саттары.

3. Қ арастырылғ ан жоспарлау алгоритмдер арасындағ ы айырмашалық тарды белгілең із.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.