Бақылау сұрақтары:
Келесі терминдерге анықтамалар беріңіз: бағдарлама, процедура, процесс, процессор.
Процесстің төрт негізгі қалыптары туралы айтып беріңіз.
Үзілулердің негізгі типтерін белгілеңіз және әр типке мәселе көрсетіңіз.
ОЖ яросының анықтамасы және негізгі фкнкциялары туралы айтып беріңіз.
Linux ядросының структурасын анықтаңыз.
Файлдық жүйенің міндеті неде?
Дәріс № 4
Тақырыбы:Процесстерді жобалау және диспетчеризациясын орындау.
Дәрістің сұрақтары:
Жоспарлау сатылары. Жоспарлау мақсаттары.
Жоспарлау кезінде ескерілетін факторлар. Приоритеттер.
Жоспарлау алгоритмі. FIFO (first-in-first-out) принципі бойынша жоспарлау.
Циклдік жоспарлау.
Көпқабаттық кезектер.
Синхронизация мақсаты мен қажеттілігі
Лектердің синхронизациясына қажеттілік тек мультипрограммалық операциялық жүйеде және есептеуіш жүйеде ақпараттық, информациялық қорларды бірге пайдалануға байланысты туады. Лек аралық мәлімет алмасу, мәліметтерді бөлу, процессорға ену және енгізу-шығару құрылғылары кезінде тұйықтауларды жою мақсатында синхронизациялау қажет болады.
Көптеген ОЖ-де бұл құралдар процесс аралық қарым- қатынас –Inter process communications (IPC) , деп аталады, яғни «процесс» ұғымы «лек» ұғымымен түпкі тарихы мазмұндас екені анықталады.
Лекті мультипрограммалық ортада орындау барысында асихрондық мінезге ие болады. Белгілі бір уақытта бұл процестің орындалу кезеңін дөп басып айту қиын. Тіпті бір бағдарламалық режимде тапсырманың торындалу уақытын дәл есептеу мүмкін бола бермейді. Бұл уақытта көптеген жағдайда циклдер санына, енгізу-шығару операцияларын орындау уақытына ықпал ететін, шығыс мәліметтерінің мазмұнына және т.б байланысты болады.
Мультипрограммалық жүйеде бағдарламаны орындау уақыты анықталынбайды. Лектердің үзілу уақыты, олардың қорлық бөліну кезегінде болуы, лектерді орындауға жіберуді таңдау тәртібі – мұның бәрі көптеген жағдайлардың өту қорытындысы болып табылады және кездейсоқ интерпретивті болуы мүмкін. Сәтті жағдайларда есептегіш бағдарламаның ашықталуы мүмкін мінездерін бағалауға болады, мысалы, берілген уақыт аралығында аяқталуы ықтимал.
Сол себепті, лектер жалпы жағдайда (егер програмист оларды синхронизациялауға қажетті шаралар қолданбаса) тәуелсіз түрде асинхронды бір-біріне қарсы бағытталады. Бұлай болуы бір бағдарламаның, жалпы бағдарламалар кодының қызметін атқаруы немесе бірнеше бағдарламалар легі, әр-қайсысы өз міндетін атқаруы тәрізді. Келесі бір жағдайға дейін және оның кезекті активизатциялауына дейін лекті тоқтату арқылы жылдамдығын мақұлдаумен бекітілді. Кез келген процестер мен лектердің әрекеттестігі олардың синхронизациясына байланысты. Синхронизациялау мақсаты кез- келген лектің әрекеттестігіне негізделеді де, қорлады бөлу немесе мәлімет алмасуға байланысты бола алмайды. Мысалы: алушы легі мәліметтерді тек қана лек жіберуші оларды буферге орналастырғаннан кейін ғана ала алады. Егер алушы легі мәліметтер буферге түспей жатып әрекет ететін болса , онда ол әрекет тоқтатылады.
Аппараттық қорларды бірлестіре пайдалану барысында да синхронизациялау қажет. Мысалы: ( белсенді лекке жүйелі портқа ену қажеттілігі туған кезде) күту режимінде тұрған монополиялық тәртіпке белгілі бір лек жұмыс жасап жатқанда, белсенді лекке жүйелі портқа ену қажеттілігі туған жағдайда, ЖС белсенді лекті уақытша тоқтатады және оны өзіне қажетті порт босағанға дейін активизациялайды. Есептеуіш жүйеде де синхронизациялау қажеттілігі жиі туындайды, мысалы; Ctrl+ C пернелерін басу реакциясы. Қорларды бөлу және босатуға байланысты секунд сайын жүздеген жағдайлар болып тұрады, осы кезде лектерді синхронизациялауға мүмкіндік бере алатын сенімді әрі өнімділігі жоғары ЖС құрамдары болуы керек.
Операциялық жүйе сияқты қосалқы бағдарламалар легін синхронизациялауда програмист өзіндік құралы ретінде пайдалана алады. Мысалы: қосалқы процестің екі бірдей легі өзіндік жұмысын бірнеше оқиғаларды орындау арқылы біреу ғана орнатылатын басты-қисынды өзгерткіш арқылы үлестіруге бағыттай алады.
Бірақ көптеген жағдайларда едәуір нәтижелі немесе бірден –бір мүмкіндіктердің бірі синхронизациялау құралдарының бірі операциялық жүйеде, жүйелі шақырту үлесінде болуы мүмкін. Міне осылай әртүрлі процеске тән лектер бір – бірінің жұмысына қандайда бір жолмен әсер ете алмайды. Олар операциялық далансыз бір –бірін тоқтата алмайды немесе болған оқиға туралы хабарландыра алмайды. Операциялық жүйеде синхронизациялау құрамы тек қосалқы процестерді синхронизациялап қана қоймай, сонымен қатар ішкі қажеттіліктері үшін де пайдаланылады.
Әдетте операциялық жүйені өңдеушілер програмистерге қолданбалы және және жүйелі спектрлі синхронизациялау құралдарын пайдалануға мүмкіндік береді. Бұл құралдар фунционалдық арнайы жабдықтау әрі мейлінше қарапайым құралдарды едәуір күрделі ұүралдар орнын басуға тырысқанда лерархия құра алады, мысалы, бір процестік синхронизациялау легі мен түрлі процестер синхронизациялау легі арасында мәлімет алмасу барысындажәне т.б. синхронизацияның түрлі жүйелік шақыртуларының фунционалдық жиі тосқауланады, бұл жағдайда бір тапсырманы шешу барысында програмист өз қалауына сәйкес бірнеше шақыртуларды пайдалана алады.
Процеспен әрекеттесу қажеттілігі туатын жағдайлар:
бір процестен екінші процеске ақпарат берілуі;
процестің ықпал етуін бақылау ( мысалы, олар бір қап үшін таласқан кезде);
процестік әрекеттердің келісілуі(мысалы, бір процесс мәліметтерді қойса, екіншісі оларды баспаға жібереді).
Бұл жағдайда келісімділік болмаса, екінші процесс мәлімет түспей тұрып, баспаға жіберуі мүмкін.
Екі жағдайда лектерге байланысты. Бірінші жағдайда лектерде мәселе туындамайды, себебі олар жалпы адрестік кеңістікте қолданады.
Мәлімет алмасу бірнеше тәсілдермен жүзеге асырылады:
бөлінуші жад;
бір процесс жазатын, ал екіншісі оқу қызметін атқаратын псевдофайл каналы.
Бір компьютердегі сияқты бүкіл желіде ортаның ерекшелігі жасыратын және процесстерге бірлесіп әрекет қылуға біркелкі мүмкіндік беретін, яро мен механизмді сүйемелдейтін құралы сокеты деп аталады.
Пошталық жәшіктер (Windows-та ғана), біржаққа бағытталған, кең хабарлама жіберу мүмкіндіктері:
өшірілген процедураны қалпына келтіру, немесе А процесі В процесінде процедураны шақыру мүмкіншілігі және мәліметтерді қайтадан алу.
Достарыңызбен бөлісу: |