К оммутатор ды пайдалану мысалы 5 страница



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

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

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

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

Үрдістер мен ағындарды құру

Үрдісті құру – бұл бәрінен бұрын үрдісті сипаттаушыны, яғни операциялық жүйеге үрдісті басқару үшін керек мәліметтерді қамтитын бір немесе бірнеше ақпарраттық құрылымдарды құру дегенді білдіреді. Мұндай мәліметтер қатарына процессордың идентификаторы, орындаушы модульдың жадыда орнласуы туралы деректер, т.б. жатады. Үрдістерді сипаттаушылар мысалына, есептерді басқару блогын (OS/360), процесс блогын басқарушыны (OS/2), процесс скрипторын (UNIX), объект-үрдісті (Windows NT) келтіруге болады.

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

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

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

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

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

Көп процессорлық жүйеде процесс кеңесі үш негізгі жағдайдың бірінде болуы мүмкін:

1. орындау – үрдістің активті жағдайы;

2. күту – үрдістің пасивті жағдайы процеске тиым салынған қандай да бір ішкі себебке байланысты орындала алмайды. Кей жағдайдың орындалуын күтеді.

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

3. дайындық - үрдістің пасивті жағдайы бұл жағдайда сыртқы жағдайлар әсерінен тиым салынған. Процесс орындалуына қажетті ресурстар бар. Бірақ процессор басқа үрдістермен айналысуда. Орындалу күйінде бірпроцессорлы жүйеде тек бір ғана процесс өте алады, ал күту мен дайын болу күйлерінің әр-қайсысында - бірнеше процесс жүреді. Өмірлік цикл дайын болу күйінен басталып, активация кезінде процесс орындалу күйіне көшеді.

MS DOS мынадай бөліктерден тұрады:

1. жүйені алғашқы жүктеу блогы (дискінің алғашқы секторы),

2. BIOS-пен арақатынас модулі (IO.SYS файлы),

3. үзілімтермен ( прерывания) жұмыс модулі ( MSDOS.SYS файлы),

4. командалар процессоры ( COMMAND.COM файлы),

5. сыртқы командалар ( бағдарламалық файлдар),

6. құрылғылар драйверлері,

7. CONFIG.SYS файлы,

8. AUTOEXET.BAT файлы.

Бірінші, екінші және үшінші пунктер MS DOS- тың ядросын құрайды.

Алғашқы жүктеу блогы

Жүйелік дискінің түпкі бумасының алғашқы екі файлы IO.SYS пен MSDOS.SYS екенін тексеріп, оларды дискіден оқып жадқа жүктейді, сосын басқаруды MS DOS- қа береді.

IO.SYS

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

MSDOS.SYS

Бұл да резидентті модуль. Ол файлдық жүйені басқарып, басқа бағдарламалардың файлдық жүйемен жұмыс жасауын ұйымдастырды.

Командалар процессоры (COMMAND.COM)

Перне тақтадан пайдаланушының нұсқауларын қабылдап, соларды орындауды ұйымдастырды. Комьпютер жадына сыртқы командаларды орындайтын бағдарламаны жүктеп, сонан соң басқаруды соған береді.

Физикалық ұйымдастыру мен файлдың мекен-жайы

Файлдың физикалық ұйымдастырылуы файлдың сыртқы жады құрылғысында орнығу ережелерін сипаттайды. Файл физикалық жазба -блоктардан құралады. Блок - сыртқы құрылғы оперативті жадымен алмасатын деректердің кішігірім бірлігі. Үздіксіз орнықтыру - физикалық ұйымдастырудың қарапайым дерлік нұсқасы (сурет 2), бұл ретте файлға дискілі жадтың бүтін жалпылама учаскесін қалыптастыратын диск блоктарының реттілігі ұсынылады. Файлға мекен-жай белгілеу үшін тек бастапқы блоктың нөмірін нұсқау жеткілікті. Екінші басымдылығы - қарапайымдылық. Дегенмен екі кемшілігі де баршылық. Біріншіден файлды жаау кезінде оның ұзақтығы, яғни қаншалақты жадыны қарастыру қажеттілігі де белгісіз, екіншіден, мұндай реттілікпен орнықтыруда бөлшектену орындалып, дискідегі кеңістік нәтижесіз, еш пайдасыз қолданылады, себебі кіші көлемнің жекелеген учаскелері (минималды 1 блок) қолданусыз қалуы мүмкін.

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

 

Сурет 2. Файлды физикалық ұйымдастыру а - үздіксіз орнықтыру; б - байланысқан блоктар тізімі; в - байланысқан индекстер тізімі; г -блок нөмірлерінің тізімдемесі

 

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

Қорытынды бөлімде, файлдың физикалық орнығуын аталған файлмен алынатын блок нөмірлерінің қарапайым сараптамасы арқылы қарастырамыз. UNIX ОЖ файл көлеміне тәуелсіз мекен-жайдың фиксирленген ұзақтығын қамтамасыз ететін аталған тәсілдің нұсқасын қолданылады. Файлдың мекен­жайын сақтау үшін 13 тізбек бөлінеді. Егер файл көлемі аз не 10 блокқа тең болса, онда аталған блоктардың нөмірлері мекен-жайдың он тізбегіне тікелей орын алмастырады. Егер файл көлемі 10 блоктан кем болса, онда келесі 11 тізбек файлдың келесі блокатарының 128 нөмірлерінің мекен-жайларын орнықтырады. Файл 10+128 блоктан көп болса, 128 нөмір блоктары орныққан 12 тізбек қолданысқа енеді. Және де файл 0+128+128 көп боған жағдайда 10+ 128 + 128(128 + 128(128(128 максимум көлемі бар файлмекен-жайын белгілеуге мүмкіндік беретін 13 тізбек үштік жанама мекен-жайландыру мақсатында қолданылады.

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

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

Бағдарламалық код орындалу үшін оған ОЖ үрдісін құру керек. Үрдіс құру дегеніміз –

1. үрдісті сипаттайтын ақпараттық құрылым құру, яғни прлоцесстің контексті және дескрипторын құру; 

2. жаңа үрдістің дескрипторын дайын үрдістерін кезегіне қосу;

3. үрдістің кодтық сегментін оперативті жадқа немесе свопинг аймағына жүктеу.

Үрдістерді жоспарлау алгоритмдері

Үрдістерді жоспарлау келесі есептер шешімінен тұрады:

1. орындалып жатқан үрдісті ауыстыру үшін уақыт моментін анықтау

2. дайын прооцесстер кезенінен орындалатын үрдісті таңдау

3. «ескі» және «жаңа» үрдістің контекстік ауыстыру.

Үрдісті жоспарлау үшін алгоритмнің екі тобын қолданады:

А) кванттауға негізделген алгоритмдер

Б) үстемділікке негізделген алгоритмдер.

Кванттауға негізделген алгоритм бойынша әр бір үрдістеріне квантауға уақыт бөлінуі. Екпіндік процесс ауысуы келесі жағдайларда болады:

1. үрдіс аяқтау

2. қате пайда болуы

3. үрдіс күту жағдайларына көшу

4. осы үрдіске берілген процессорлар уақыт кванты бітіріледі.

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

Дайын процессор кезегі әртүрлі тәсілмен ұйымдастырылады: циклдік, кезек, стек бойынша.

Кезек – «бірінші кеиді бірінші орындалды»»fifo

Стек –«бірінші кеиді соңғы кетті» lifo

      « соңғы кеиді бірінші орындады.» lifo

Үстемділік –бұл сан Үстемдідікке негізгі алгаритмдер деп процесс привигиясына сүйенеді.

бүтін немесе бөлшек оң немесе теріс мәңді болуы мүмкін. Үрдістің үстемділігі неғұрлым жоғары болса соғұрлым кезекте аз уақыт тұрады. Үстемділікте негізделген алгоритмнің екі түрі болады:

1. салыстырмалы үстемділік

2. абсолютті үстемділік қолданылған (үстемділік) үрдісінің үстемділігі маңыздылығына байланысты жүйенің администраторы тағайындалған жағдайында немесе ОЖ белгілі ережелер бойвнша өзі есептейді. Үстемділік процесс жүзінде тұрақты немесе кейбір заңға өзгеруі де мүмкін. Үрдістерді жоспарлау екі түрге бөлінеді: 1) ығыстыратын; 2) ығыстырмайтын.

Үрдістің өзара әрекеттестігі және синхронизациялау құралдары

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

Мысалы: файлдарды қағазға басу процессін қарастырайық

Бұл үрдісті жүзеге асыратын бағдарлама арнайы заказдар файлға басқа бағдарламалар жазатын фаилдар атауларын ың тізімі бойыша фаилды , қағазға басады. Next айнымасына жазу үшін дайын бірінші фаилының аталуын сақтайды. Сигмент үрдісте осы айнымасына оқып тапсырыс файлдық сәйкес позициясына өз фаилының атауын жазады.Next айнымасының мәнін бірге арттырады. Айталық кейбір уақыт моментінде R үрдісі Next кейбір уақыт моментінде айнымалысының мәнін оқып тапсырар файлына өз файлының атауын орнатып үлгерген жоқ. Next = 4 дейік R процессі 4 деген мәнді оқиды. Уақыт кванты жетпеген себептен екі процессі керекті әрекетті орындап үлгермеді, S үрдісі кезекті Next айнымалысының мәнің оқыды. Next = 4 және тапсырыс файлға өз файлының атауын орналастырып Next айнымалысының мәнін бірге арттыру. Екінші үрдісіне басқару берілгенде өз файлының атауын төрт позицияға жазады. S үрдісін файлы еш қашан қағазға басылып шығарылмайды. Үрдістерді синхронизациялау проблемасының күрделігі пайда болатын жағдайларының бір келкі еместігінде. Бір уақытта екі немесе бірнеше үрдістер бөлінетін берілгендерді (олар ортақ берілгенді) өңдегенде және соңғы нәтиже осы үрдістің жылдамдықтығының қатынасына тәуелді болса мұндай жағжайлар гонка деп аталады. Үрдістерді синхронизациялау негізгі түсінігі критикалық сексия. Критикалық сексия бұл бөлінетін берілгендерге қатынастыру жүргізілетін бағдарламаның бөлігі кейбір ресурске жарыс эффектісін болдырмау үшін осы ресурспен байланысқан критикалық секцияда әрбір уақыт мезгілінде тек біо үрдіс болуын қамтамасыз ету қажет. Бұл тәсіл өзара (взаимная исключения) болдырмау қамтамасыз етудің қарапайым тәсілі критикалық сексиядағы үрдіске үзулерді болдырмауды рұқсат ету. Келесі әдіс – тиым салу айнымалысын қолдану. Әрбір бөлінетін ресурспен екілік айнымалы байланысы рның мәні бірге тең, егер ресурс бос болса мәні 0-ге тең ресурс басқа процессін қолданса синхронизациялауда matn бір проблема бар бұл өзара тиым салу (важные блокировки) немесе (pet clock) диалогтар (deadlockes)


Дата добавления: 2022-01-22; просмотров: 22; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!