йкестендіру станымы. 4 страница

Клинчтер (clinch)

Тыыры

Кейбір жадайда екі рдіс бір-біріне зара тиым салуы ммкін. Осы рдістерді жылдамдытарыны атынасына байланысты, олар блінетін ресурстарды бір-біріне туелсіз олдануы ммкін немесе блінетін ресурстара кезек руы ммкін осы рдістерді жылдамдылыына байланысты олар блінетін ресурстарды бір-біріне туелсіз олдануы ммкін немесе блінетін ресурстара кезек руы ммкін.Блінетін ресурстар туелсіз пайдалану.

Блінетін ресурстарды тыыры жадайы.

рдіс А

А1. принтерді олдану

А2. дискті пайдалану

А3. принтерді босату

А4. дискті босату

рдіс В

В1. дискті пайдалану

В2. принтерді пайдалану

В3. дискті босату

В4. принтерді босату

Тыырытер проблемасы жазу барысында болдырмауа болады.Бос емес ресурстарда ресурстарды болу жне сраныс кестелерін руа негізделген тыырытерін алдын ала тану бадарламалы дістері бар.

Жіптер

р бір рдісті з вертуалды адрестік кеістігі бар. р бір рдіске –з ресурстары файлдар6 терезелер6 семафорлар таайындалады, мндай бліну 1 процесті 2-шісінен орау шін керек. Себебі олармашинаны ресурстарын орта пайдаланып бір-бірімен бсекелеседі. Жалпы жадайда рдістер р трлі олданушынікі болады. Сондытан ОЖ ресурстара таласта орбитор рлін атарады. Тиым салу айнымалысыны бірі ДИЙКСТР семофорлары болады. Бл айнымалар бтін теріс емес мндер абылдайды жне есептеу рдісін синхронизациялау шін олданылады.Мьютекс (matex ) семафор сияты тиым салу айныманы бірі жне берілгнедерге атынасуды басару шін олданылады.Семофорлар мьютекті таймерді оиаларды операциялы жйені синхронизациялау обекпир деп те аталады. Мультибадарламалауда- жйені рдістерді орындау ммкіндігі жоарылайды, біра жеке процес 1 бадарлама режимді орындаланнан тез отындалмайды. Сонымен атар бір процес шешілетін есеп ішкі паралелум асиетіне ие болып жылдам орындалуы ммкін мысалы; егер есепті шешу барсында сытты рылыа атынас болса бл операциялы орындалу уаытында рдістер орындалу уаытында рдісті баса бтаын орындауды жаластыруа болады. Осындай масаттар шін азіргі замана операциялы жйелері кп жіптік деу multithreading кптікті деу механизмді олданады. Жіптер зіндік бадарламалы санауыш stek, регистр,алып кй рпа жіптерге ие болады. Кп есептік деуге араанда жйені жмыс істеуін жоарлатады.

ТАЫРЫП 7-8. ЖАДЫНЫ БАСАРУДАЫ

ЖЙЕЛІК РАЛДАР

Масаты:Жадыны басарудаы жйелік ралдарды йымдасты-рылуын талдау

Кілттік сздер:жады, сегмент, виртуалды жады, адрес, негізгі жады, сраныс, сегментация, уаыт, цикл, файлды жйе, модуль, функция, рдіс

айнымалы, команда

Дріс жоспары (2 саат)

  1. Негізгі жады. Ардестерді байланыстылыы. Виртуалды жады.
  2. Жады жне кескіні (отображение). Жады сегменттеу рылымы. Сегменттерді жою жне ауыстыру (переброска).
  3. Сраныстар бойынша жадыны блу алгоритмі. Жадыны параты йымдастырылуы жне оны сегментациядан айырмашылыы. Сраныстар бойынша паратарды лестіру. Алгоритм.
  4. Ыыстыру стратегиясы: уаыт бойынша, циклдік тасу (откатка), fifo, беттерді сирек олданылуы бойынша.
  5. Жалпы жадыны лестіру. Сырты жады. Виртуалды файлды жйе. Сырты жадыны басару. Файлды жйені лестіру.

Жады – мультибадарламалы операциялы жйе тарапынан мият адаалауды талап ететін маызды ресурстарды бірі. Жадыны маызды рлі былай тсіндіріледі: процессор бадарламаны нсауларын тек олар жадыда орналасан жадайда ана орындай алады. Жады олданбалы бадарламалар модульдері арасында блінетіні сияты, операциялы жйені з модульдері арасында да блінеді.

Брыны операциялы жйелерде жадына басару жай ана бадарламаларды жне оны берілгендерін (деректерін) кейбір ішкі жинаыштардан (перфоленталар, магнитті ленталар немесе магниттік дискілер) жктеу арылы жргізілді. Мультибадарламалауды пайда болуымен операциялы жйелерге бар жадыны бір уаытта орындалатын бірнеше бадарламаларды арасында бліп беруге байланысты жаа мселелер ойылды.

Мультибадарламалы жйеде жадыны басаруды операциялы жйені функциялары:

  1. Бос жне бос емес жадыны адаалау;
  2. рдістерге жадыны бліп беру жне процесс орындалып болан со жадыны босату;
  3. Барлы рдістерді орындау шін негізгі жадыны клемі жетпеген жадайда рдістерді берілгендері мен кодтарын оперативті жадыдан дискіге ауыстыру (толы жне бліктік) жне орын босаан уаытта оларды айтарып алу;
  4. Бадарламалар адрестерін физикалы жадыны наты облыстарына баптау.

рдістерді рылуы кезінде олара алаш жадыны бліп берумен атар операциялы жйелер жадыны динамикалы блумен де айналысуы керек. Яни рдісті орындалуы барысында осымша уаыт сранысын анааттандыруы тиіс. осымша жадыа деген мтажды телген жадайда ол жйеге айтарылады. Кездейсо зындытаы жадыны уаытты кездейсо аралыында жалпы жадыдан блу оны фрагментациялануына алып келеді жне осыны салдарынан жадыны пайдалану тиімділігі тмендейді. Жадыны дефрегментациялау да жадыны бір функциясы болып табылады.

Операциялы жйеге жмыс істеу барысында жиі рдістер мен аындар сипаттаушылары, ресурстарды бліп беруді трлі кестелері, деректер алмасуын болдыратын рдістерге олданылатын буферлер, синхронизациялаушы объектілер жне т.б. жаа ызметтік апаратты рылымдар руа тура келеді. Осы жйелік объектілерді барлыы жадыны талап етеді. Кейбір операциялы жйелерде (орналастыру барысында) алдын ала жадыны кейбір белгіленген клемі жйелік ажеттіліктер шін олданылатын ор ретінде саталады (резервируется). Ал баса операциялы жйелерде жйелік масаттар шін жадыны динамикалы трде блу сияты олайлы тсілдер олданылады. Мндай жадайда операциялы жйені р трлі жйеасты жйелері здеріні кестелерін, объектілерін, рылымдарын жне т.б. ру барысындажадыны басарушы жйеасты жйесіне сраныс салады.

Жадыны орау – операциялы жйені орындалып жатан рдісті баса процеске арналан деректерді жадыдан оуына немесе жазып алуына ммкіндік бермейтін маызды міндеті болып табылады. Ережеге сйкес, бл функция аппаратты жабдытармен зара тыыз байланысан операциялы жйені бадарламалы модульдеры арылы жзеге асады.

Адрестер трлері

Командаларды жне айнымалыларды бадарламаны негізгі циклыны р трлі кезедерінде идентификациялау шін символды атаулар, виртуалды жне физикалы адрестер олданылады (1-сурет).

  1. Символды атауларды олданушы бадарламаны алгоритмдік тілде немес ассемблерде жазу барысында меншіктейді;
  2. Кейде математикалы немесе логикалы адрестер деп аталатын виртуалды адрестерді бадарламаны машиналы тілге аударатын транслятор меншіктейді. Жалпы жадайда трансляциялау кезінде бадарламаны оператитвті жадыны ай жеріне жктелетіні белгісіз боландытан транслятор айнымалылар мен командалара виртуалды (шартты) адрестерді меншіктейді. детте, бл дістер нсіз келісім бойынша саналу арылы беріледі. Бадарламаны бастапы адресі нлдік адрес болады.
  3. Физикалы адрестер оперативті жадыны айнымалылар мен командалар орналасан немесе орналасатын яшытары нміріне сйкес келеді.

Бадарламаны виртуалды адрестер жиынтыы виртуалды адрсетік кеістік деп аталады. Вируалды адрсетер кеістігіні диапазоны барлы рдістерде бірдей болады. Мысалы, 32-разрядты виртуалды адрестерді олдананда диапазон мына шекаралармен беріледі 0000000016 жне 16. Соан арамастан рбір рдісті зіндік виртуалды адресті кеістігі бар. Оны транслятор айнымалылара меншіктейді жне ол бадарлама кодына байланысты болмайды.

Символды атаулар

Виртуальді адрестер

Физикалы адрестер

Алгоритмдік тілдегі программадаы айнымалылар идентификаторы

Транслятор меншіктейтін шартты адрестер

Физикалы жады яшытарыны нмірлері

транслятор

Сурет 1.Адрестер трлері

2 процессті виртуальді адрестік кеістігі

3 процессті виртуальді адрестік кеістігі

виртуальді адрестер

1 процессті виртуальді адрестік кеістігі

Оперативті жады

Сурет 2.Бірнеше бадарламаны виртуалды адрестік кеістігі

Екі блек рдістерді айнымалылары мен командаларыны виртуалды адрестеріні бірдей болуы конфликт тудырмайды. йткені бл адрестерді бір уаытта жадыда боланымен, операциялы жйе оларды р трлі физикалы жадыда1 бейнелейді.

р трлі операциялы жйелерде виртуалды адрестік кеістікті рылымы р трлі болады. Кейбір операциялы жйелерде рдісті виртуалды адрестік кеістіктері физикалы жады трізді виртуалды адрестерді зіліссіз сызыты тізбегі ретінде беріледі. Адрестік кеістітікті мндай рылымын сонымен атар жазы деп те атайды. Бл жадайда виртуалды адрес ретінде виртуалды адрестік кеістікті басына атысты жылжуды білдіретін сан меншіктеледі (детте бл мн 000...000). Мндай трдегі адресті сызыты виртуалды адрес деп атайды (сурет 3-а).

Баса операциялы жйелерде виртуалды адрестік кеістіктер сегменттер (немесе секциялар, немесе облыстар, немесе баса да терминдер) деп аталатын бліктерге блінеді. Бл жадайда сызыты адресті орнына ос санмен (n,m) аныталатын виртуалды адрес олданылады. Мндаы n сегментті, ал m сегмент ішіндегі жылжуды білдіреді (сурет 3-б).

Виртуалды адрестер ш немесе одан кп сандардан ралан жадайда виртуалды адрестік кеістікті рылымы жоарыда аталандардан да крделі болады.

 

Сурет 3. Виртуалды адрестік кеістіктер трлері: (а) жазы, (б) cегментті

Операциялы жйені масаты барлы орындалып жатан рдістерді индивуальді виртуалды адрестік кеістіктерін жалпы физикалы жадыда бейнелеу болып табылады. Осыан сйкес операциялы жйе не барлы виртуалды адрестік кеістікті, не оны тек белгілі бір блігін ана бейнелейді.

Жадыны лестіру алгоритмдері

рбір рдіске физикалы жадыны бір зіліссіз облысын таайындау керек пе, лде жадыны «блшектермен» лестіру керек пе? Жадыа жктелген бадарламаны сегменттері рдісті тгел орындалу периодында бір орында труы керек пе, немесе оны уаыт ткен сайын жылжытып отыру тиімді ме? Егер бадарлама сегменттері бар жадыа сиыспаса не істеу керек? р трлі операциялы жйелер жадыны басаруды осы жне осы секілді базалы сратарына здігінше р трлі жауап береді. Бдан рі операциялы жйелерді дамуыны р трлі периодтарында крініс берген жадыны лестіруді р трлі дістеріне тоталатын боламыз. Оларды кейбіреулері здеріні маыздылыын сатап алан жне замануи операциялы жйелерде олданылады, ал кейбіреулері тек танысуа ана трарлы, дегенмен ол дістерді кейбір арнайы операциялы жйелерден кездестіруге болады.

Сурет 4-те жадыны лестіруді барлы алгоритмдері 2 класса блінген: процесс сегменттерін оперативті жады мен дискі арасында ауыстыруа негізделген алгоритмдер жне сырты жадыны ажет етпейтін алгоритмдер.

Жадыны бліп беру алгоритмдері

Сырты жадыны олданбайтын

Сырты жадыны олданатын

Фиксирленген блімдермен

Динамикалы блімдермен

Ауыстырмалы блімдермен

Беттік блулер

Сегментті блулер

Сегментті-беттік блуілер

Сурет 4.Жадыны лестіру дістеріні классификациясы

Жадыны фиксирленген блімдермен лестіру

Оперативті жадыны олдануды арапайым дісі жадыны блімдер деп аталатын бірнеше фиксирленген облыстара блу арылы жргізіледі. Мндай блу оператор арылы жйе жктелгенде немесе жйені орнату барысында орындалады. Бдан кейін блімдер шекарасы згертілмейді.

Орындалуа жіберілген кезекті жаа процесс жалпы кезекке немесе кейбір блімдердегі кезекке (Сурет 5) орналасады.

Сурет 5.Жадыны фиксирленген блімдермен бліп беру:

(а) жалпы кезекпен, (б) жеке кезектермен

Жадыны басаруды жйеасты жйесі бл жадайда келесі есептерді орындайды:

  1. Бос блімдері бар жадылар клемін салыстырып, жаа тскен процесс талап ететін сйкес блімді тадайды;
  2. Бадарламаны блімдерді біреуі мен адрестер баптауына жктейді. Бл жадайда бадарламаны ндеуші бадарламаны орындалу блімін трансляция кезеінде зі крсете алады. Бл ауыстырушы жктеуішті олданбай-а жадыны наты бір облысына баытталан машиналы кодты бірден алуа ммкіндік береді.

Игеру арапайымдылыы сияты айын басымдылыта, бл дісті айтарлытай кемшілігі бар. Ол оны аттылыы, яни рбір блімде тек бір процесс ана орындала алады жне бл мультибадарламалау дегейіні блімдер санымен шектелуіне алып келеді. Бадарламаны клеміне туелсіз ол бкіл блімді амтиды. Мысалы, ш блімді жйеде те аз млшердегі жады керектігіне арамастан ш рдістен арты процесс орындалмайды. Таы бір ырынан жадыны блімдерге блу бадарламалары жеке блімдерді кез-келгеніне симайтын, біра бкіл блімді осандаы жадыа сиятын рдістерді орындауа ммкіндік бермейді.

Жадыны басаруды мндай дісі ертеректегі мультибадарламалы операциялы жйелерде олданылан болатын. Дегенмен, жадыны фиксирленген блімдерге блу дісі зіні игерілуіге деген аз шыындылыымен азіргі тадаы кейбір операциялы жйелерде з олданысын тауып жр.

Жадыны динамикалы блімдермен блу

Бл жадайда машина жадысы алдын-ала блінбейді. Бастабында осымша рекеттерге саталан барлы жады бос болады. Жаадан орындалуа келіп жатан р осымшаа рдісті ру кезеінде ажет болатын барлы жады блінеді (егер жадыны клемі жетпесе, онда осымша абылданбайды жне оан процесс рылмайды). рдісті аяталумен жады босатылады жне босаан орына баса процесс жктеле алады. Осыан орай, оперативті жады кез келген стте кез келген клемдегі бос жне бос емес ауматарды кездейсо тізбегін береді. 6-суретте динамикалы блуді олдану барысындаы уаытты р стіндегі жадыны кйі крсетілген. Сонымен t0 болан стте жадыда тек операциялы жйе ана орналасады, ал t1 болан стте жады 5 процесс арысында блінген жне П4 процесс жмысын аятап жадыдаы орнын босатуда. П4 рдістен босаан орына t3 болан стте П6 процесс жітелуде.

сынылып отыран дісті игеруге арналан операциялы жйені функциялары тмендегідей:

  1. Жады аумаыны бастапы адрестері мен клемдері крсетілетін бос жне бос емес облыстар кестесін ру;
  2. Жаа рдісті ру барысында – жадыа ойылатын талаптар анализін жасау жне жаа рдісті кодтары мен деректерін орналастыруа клемі сйкес келетін блімді кестедегі бос жне бос емес облыстарды салыстыра отырып тадау. Блімді тадау р трлі ережелерге негізделуі ммкін, мысалы «жеткілікті клемдегі бірінші кезіккен блім», «е кіші жеткілікті клемдегі блім» немесе «е лкен жеткілікті клемдегі блім».
  3. Тадалан блімге бадарламаны жктеу, бос жне бос емес облыстар кестесіне тзетулер енгізу. Берілген тсіл бадарлама коды орындалу барысында ауыстырылмайтынын, яни адрестерді баптау жктлеумен бірге жргізілуі ммкін екендігін крсетеді;
  4. рдісті яталуынан кейін бос жне бос емес облыстар кестесіне тзетулер енгізу.

Сурет 6.Жадыны динамикалы блімдермен бліп беру

t0 t1 t2 t3 . . . tk

Фиксирленген блімдермен жадыны блу дісіні араанда бл діс тиімдірек, біра бл діске жадыны фрагментациялануы деп аталатын маызды кемшілік тн боп табылады. Фрагментация – бл те кіші клемдегі жадыны сыбайлас (смежный) кп ауматарыны (фрагменттерді) болуы. Оларды кіші болуы соншалыты ешбір бадарлама бл ауматарды кез келгеніне сыймайды, біра бл фрагменттерді осынды клемі керек жадыдан да асып тсетін лкендікті беруі ммкін.

Жадыны динамикалы блімдермен лестіру дісі 60-70 жылдардаы мултибадарламалы операциялы жйелерді жйасты жйесіні кпшілігіні негізі болып келді. Натыра айтса OS/360 сияты кеінен танымал операциялы жйелерде.

Ауыстырмалы блімдер

Франментациялаунумен кресуді негізгі жолдарыны бірі барлы бос емес ауматарды лкен немесе кіші адрестер жаына ауыстыру, яни бос ауматар бірігіп жалыз бос облысты райтындай етіп орналастыру (7-сурет). Динамикалы блімдерге блу дісі барысындаы орындайтын функцияларымен оса операциялы жйе уаыт ткен сайын блімдерді амтитын апараттарын бос жне бос емес облыстар кестесіне згертулер енгізе отырып жадыны бір орнынан бір орнына кшіріп отыруы тиіс. Бл процедура сыу деп аталады. Cыу рбір рдісті аяталуы кезінде немесе жаадан рылатын рдіске жеткілікті орын жетпеген жадайда жргізілуі ммкін. Бірінші жадайда бос жне бос емес облыстар кестесіне згертулер енгізу барысында есептеу жмыстары аз жргізіледі, ал екінші жадайда – сыу рдісі сирек орындалады.

Сурет 7.Жадыны ауыстырмалы блімдермен бліп беру

Бадарламалар оперативті жадыда орындарын здеріні орындалуы барысында ауыстыратын боландытан, бл жадайда адрестер баптауын орын алмастыру жктеушісі кмегімен йымдастыруа болмайды. Бл жерде нерлым тиімдірегі адрстерді динамикалы трлендіру болып табылады. Сыу процедурасы жадыны немдеп олдануа алып келгенімен, ол айтарлытай за уаытты ажет етеді. Бл дісті салыстырмалы кемшілігі осы.

Свопинг жне виртуалды жады

Бадарламаны орындалуы шін оны оперативті жадыда орналасуы керек. Тек осы жадайда ана процессор командаларды жадыдан ала алады жне берілген рекеттерді орындау барысында олара тсінік береді. Компьютердегі оперативті жадыны клемі есептеу рдісіні жру ретіне айтарлытай сер етеді. Ол біруаытта орындалатын бадарламалар мен оларды виртуалды адрестік кеістіктеріні клемін шектейді. Кейбір жадайларда, мысалы мультибадарламалаушы оспаны барлы рекеттері есептеу болып табылатын болса (яни процессорды жктен босататын енгізу-шыару операциялары аз орындалады) , онда процессорды жасы жмыс істеуіне тек 3-5 есепті орындалуы жеткілікті болады. Дегенмен егер есептеу жйесі интерактивті есептерді орындаумен жктелген болса, онда процессорды тиімді олдану шін енді бірнеше онды, тіпті жздеген есептер ажет болуы ммкін. Бл талдауларды біруаытта орындалатын рдістер санынан жне бл рдістерді енгізу-шыаруды кту жадайындаы уаыт лшемдерінен алынатын процессорды жктелу коэфициентіне туелді график бейнеленген 8-суреттен кре аласыз.

 

Сурет 8. Процессорды жктелуіні есептер саны мен енгізу-шыарудан туелділігі

азіргі тада виртуалды жадыны игеруді алуандылыы ш класса жктеледі:

  1. Беттік виртуалды жады декректерді жады мен диск арасында алмастыруды беттермен йымдастырады. Бл жердегі беттер дегеніміз виртуалды адрестік кеістікті фиксирленген жне салыстырмалы трде кіші клемдегі блімдері;
  2. Сегментті виртуалды жады деректерді орнын сегменттермен, яни деректерді маыналы мнін тіркеуден алынан виртуалды адресті кеістікті туынды клемді бліктерімен алмастыруды йымдастырады;
  3. Сегментті-беттік виртуалды жады екі дегейлі блуді олданады: виртуалды адресті кеістік алдымен сегменттерге, ал осыдан кейін сегменттер беттерге блінеді. Бл жерде деректерді орнын ауыстыру бірлігі беттер болып табылады. Жадыны басаруды бл дісі жоарыда айтылан екі дісті барлы элементтерін амтиды.

Сегменттер мен беттерді уаытша сатау шін дискіден арнайы облыс немесе файл блінеді. Бларды кптеген операциялы жйелерде облыс немесе свопинг файл деп атайды. Бл облысты келесі бір танымал атауы – беттік файл (page file немесе paging file). Беттік файлды аымдаы клемі операциялы жйені ммкіндігіне зор серін тигізетін маызды параметр боп табылады. Беттік файл нерлым лкен болса, операциялы жйе біруаытта сорлым кп есептерді орындай алады. Дегенмен, біруаытта орындалатын есептерді санын кбейту, оларды жмыс істеу жылдамдыын шектейтінін ескергеніміз жн. йткені уаытты маызды блігі бадарламалы кодтар мен деректерді оперативті жадыдан дискіге, айтіп керісінше кшіруге шыындалады.

Беттік лестіру

Сурет 9-те жадыны беттік лестіру схемасы крсетілген.

Сурет 9.Жадыны беттік лестіру

рбір рдісті виртуалды адрестік кеістіктері берілген жйе шін фикисрленген те клемді бірдей виртуалды беттер деп аталатын бліктерге блінеді. Жалпы жадайда рдісті виртуалды адрестік кеістігіні клемі бетті клемінен кіші болмайды, сондытан рбір рдісті соы беті фиктивті облыспен толытырылады. Машинаны барлы оперативті жадысы да сол сияты клемдегі физикалы беттер деп аталатын бліктерге блінеді. Бетті клемі екілік дегеймен те алынады: 512, 1024, 4096 байт т.б. бл адрестерді трлендіру механизмін арапайым ету шін ажет.

рдісті рылуы барысында операциялы жйе оперативті жадыа оны бірнеше виртуалды беттерін жктейді (кодты сегмент пен деректер сегменттіні бастапы беттері). Барлы виртуалды адрестік кеістіктерді кшірмесі дискіде саталады. Сыбайлас виртуалды беттерді сыбайлас физикалы беттерде орналасуы міндетті емес. р процесс шін операциялы жйе рдісті барлы виртуалды беттері жайлы жазуды амтитын апаратты рылым – беттер кестесін рады.