

Жүйелік бағдарламалау 10 дәріс
Presentation
•
Computers
•
University
•
Practice Problem
•
Hard
Edige Berdikul
FREE Resource
42 Slides • 0 Questions
1
СЛАЙД-ДӘРІС
Тақырып:
«Процесстің
виртуалды адрес
кеңістігі»
2
Дәріс жоспары:
1. Адрестер түрлері;
2. Жадыны үлестіру алгоритмдері;
3. Жадыны фиксирленген бөлімдермен үлестіру;
4. Жадыны динамикалық бөлімдермен бөлу;
5. Ауыстырмалы бөлімдер;
6. Свопинг және виртуалды жады;
7. Беттік үлестіру;
8. Жадының бөлінбелі сегменттері;
9. Есте сақтау құрылғыларының иерархиясы.
3
Кіріспе
Жады – мультипрограммалы операциялық
жүйе тарапынан мұқият қадағалауды талап
ететін маңызды ресурстардың бірі. Жадының
маңызды рөлі былай түсіндіріледі: процессор
программаның нұсқауларын тек олар жадыда
орналасқан
жағдайда
ғана
орындай
алады.
Жады қолданбалы программалар модульдері
арасында
бөлінетіні
сияқты,
операциялық
жүйенің өз модульдері арасында да бөлінеді.
4
Кіріспе
Бұрынғы операциялық жүйелерде жадына
басқару жай ғана программаларды және оның
берілгендерін
(деректерін)
кейбір
ішкі
жинағыштардан
(перфоленталар,
магнитті
ленталар немесе магниттік дискілер) жүктеу
арқылы
жүргізілді.
Мультипрограммалаудың
пайда болуымен операциялық жүйелерге бар
жадыны бір уақытта орындалатын бірнеше
программлардың
арасында
бөліп
беруге
байланысты жаңа мәселелер қойылды.
5
Кіріспе
Мультипрограммалық жүйеде жадыны басқаруды
операциялық жүйенің функциялары:
•
бос және бос емес жадыны қадағалау;
•
процестерге
жадыны
бөліп
беру
және
процесс
орындалып болған соң жадыны босату;
•
барлық процестерді орындау үшін негізгі жадының
көлемі жетпеген жағдайда процесттердің берілгендері
мен кодтарын оперативті жадыдан дискіге ауыстыру
(толық және бөліктік) және орын босаған уақытта
оларды қайтарып алу;
•
программалар адрестерін физикалық жадының нақты
облыстарына баптау.
6
Кіріспе
Процесттердің құрылуы кезінде оларға алғаш
жадыны
бөліп
берумен
қатар
операциялық
жүйелер
жадыны
динамикалық
бөлумен
де
айналысуы
керек.
Яғни
процестің
орындалуы
барысында
қосымша
уақыт
сұранысын
қанағаттандыруы тиіс. Қосымша жадыға деген
мұқтаждық
өтелген
жағдайда
ол
жүйеге
қайтарылады.
Кездейсоқ
ұзындықтағы
жадыны
уақыттың кездейсоқ аралығында жалпы жадыдан
бөлу
оның
фрагментациялануына
алып
келеді
және
осының
салдарынан
жадыны
пайдалану
тиімділігі төмендейді. Жадыны дефрегментациялау
да жадының бір функциясы болып табылады.
7
Кіріспе
Операциялық жүйеге жұмыс істеу барысында жиі процестер
мен ағындар сипаттаушылары, ресурстарды бөліп берудің
түрлі кестелері, деректер алмасуын болдыратын процестерге
қолданылатын буферлер, синхронизациялаушы объектілер
және т.б. жаңа қызметтік ақпараттық құрылымдар құруға
тура келеді. Осы жүйелік объектілердің барлығы жадыны
талап етеді. Кейбір операциялық жүйелерде (орналастыру
барысында) алдын ала жадының кейбір белгіленген көлемі
жүйелік
қажеттіліктер
үшін
қолданылатын
қор
ретінде
сақталады (резервируется). Ал басқа операциялық жүйелерде
жүйелік мақсаттар үшін жадыны динамикалық түрде бөлу
сияқты қолайлы тәсілдер қолданылады. Мұндай жағдайда
операциялық жүйенің әр түрлі жүйеасты жүйелері өздерінің
кестелерін,
объектілерін,
құрылымдарын
және
т.б.
құру
барысында жадыны басқарушы жүйеасты жүйесіне сұраныс
салады.
8
Кіріспе
Жадыны
қорғау
–
операциялық
жүйенің
орындалып
жатқан
процестің
басқа
процеске
арналған
деректерді
жадыдан
оқуына
немесе
жазып
алуына
мүмкіндік
бермейтін
маңызды
міндеті
болып
табылады.
Ережеге сәйкес, бұл функция аппараттық
жабдықтармен өзара тығыз байланысқан
операциялық
жүйенің
программалық
модульдеры арқылы жүзеге асады.
9
1. Адрестер түрлері
Командаларды және айнымалыларды программаның негізгі
циклының
әр
түрлі
кезеңдерінде
идентификациялау
үшін
символдық
атаулар,
виртуалды
және
физикалық
адрестер
қолданылады (1-сурет).
•
Символдық атауларды қолданушы программаны алгоритмдік тілде
немес ассемблерде жазу барысында меншіктейді;
•
Кейде математикалық немесе логикалық адрестер деп аталатын
виртуалды адрестерді программаны машиналық тілге аударатын
транслятор меншіктейді. Жалпы жағдайда трансляциялау кезінде
программаның
оператитвті
жадының
қай
жеріне
жүктелетіні
белгісіз болғандықтан транслятор айнымалылар мен командаларға
виртуалды (шартты) адрестерді меншіктейді. Әдетте, бұл әдістер
үнсіз келісім бойынша саналу арқылы беріледі. Программаның
бастапқы адресі нөлдік адрес болады.
•
Физикалық
адрестер
оперативті
жадының
айнымалылар
мен
командалар орналасқан немесе орналасатын ұяшықтары нөміріне
сәйкес келеді.
10
1. Адрестер түрлері
Программаның
виртуалдық
адрестер
жиынтығы виртуалды адрсетік кеңістік деп
аталады.
Вируалды
адрсетер
кеңістігінің
диапазоны
барлық
процестерде
бірдей
болады. Мысалы, 32-разрядты виртуалдық
адрестерді
қолданғанда
диапазон
мына
шекаралармен
беріледі
0000000016
және
ҒҒҒҒҒҒҒҒ16.
Соған
қарамастан
әрбір процестің өзіндік виртуалдық адресті
кеңістігі
бар.
Оны
транслятор
айнымалыларға
меншіктейді
және
ол программа кодына байланысты болмайды.
11
1. Адрестер түрлері
1-сурет - Адрестер түрлері
12
1. Адрестер түрлері
2-сурет - Бірнеше программаның виртуальді
адрестік кеңістігі
13
1. Адрестер түрлері
Екі
бөлек
процесстердің
айнымалылары
мен
командаларының
виртуалды
адрестерінің
бірдей
болуы
конфликт тудырмайды. Өйткені бұл адрестердің бір уақытта
жадыда болғанымен, операциялық жүйе оларды әр түрлі
физикалық жадыда1 бейнелейді.
Әр түрлі операциялық жүйелерде виртуалды адрестік
кеңістіктің құрылымы әр түрлі болады. Кейбір операциялық
жүйелерде
процесстің
виртуалды
адрестік
кеңістіктері
физикалық жады тәрізді виртуалды адрестердің үзіліссіз
сызықтық тізбегі ретінде беріледі. Адрестік кеңістітіктің
мұндай құрылымын сонымен қатар жазық деп те атайды. Бұл
жағдайда виртуалды адрес ретінде
виртуалды адрестік
кеңістіктің
басына
қатысты
жылжуды
білдіретін
сан
меншіктеледі (әдетте бұл мән 000...000). Мұндай түрдегі
адресті сызықтық виртуалды адрес деп атайды (сурет 3-а).
14
1. Адрестер түрлері
Басқа
операциялық
жүйелерде
виртуалды
адрестік
кеңістіктер
сегменттер
(немесе
секциялар, немесе облыстар, немесе басқа да
терминдер) деп аталатын бөліктерге бөлінеді.
Бұл жағдайда сызықтық адрестің орнына қос
санмен
(n,m)
анықталатын
виртуалды
адрес
қолданылады. Мұндағы n сегментті, ал m сегмент
ішіндегі жылжуды білдіреді (сурет 3-б).
Виртуалды
адрестер
үш
немесе
одан
көп сандардан құралған жағдайда виртуалды
адрестік
кеңістіктің
құрылымы
жоғарыда
аталғандардан да күрделі болады.
15
1. Адрестер түрлері
3-сурет - Виртуалды адрестік кеңістіктер
түрлері: (а) жазық, (б) cегментті
16
1. Адрестер түрлері
Операциялық
жүйенің
мақсаты
барлық
орындалып
жатқан
процесстердің
индивуальді
виртуалды
адрестік кеңістіктерін жалпы физикалық
жадыда
бейнелеу
болып
табылады.
Осыған сәйкес операциялық жүйе не
барлық виртуалды адрестік кеңістікті, не
оның
тек
белгілі
бір
бөлігін
ғана
бейнелейді.
17
2. Жадыны үлестіру алгоритмдері
Әрбір
процесске
физикалық
жадының
бір
үзіліссіз
облысын тағайындау керек пе, әлде жадыны «бөлшектермен»
үлестіру
керек
пе?
Жадыға
жүктелген
программаның
сегменттері
процесстің
түгел
орындалу
периодында
бір орында тұруы керек пе, немесе оны уақыт өткен сайын
жылжытып отыру тиімді ме? Егер программа сегменттері бар
жадыға сиыспаса не істеу керек? Әр түрлі операциялық
жүйелер жадыны басқарудың осы және осы секілді базалық
сұрақтарына өздігінше әр түрлі жауап береді. Бұдан әрі
операциялық жүйелердің дамуының әр түрлі периодтарында
көрініс
берген
жадыны
үлестірудің
әр
түрлі
әдістеріне
тоқталатын
боламыз.
Олардың
кейбіреулері
өздерінің
маңыздылығын сақтап қалған және замануи операциялық
жүйелерде қолданылады, ал кейбіреулері тек танысуға ғана
тұрарлық, дегенмен ол әдістерді кейбір арнайы операциялық
жүйелерден кездестіруге болады.
18
2. Жадыны үлестіру алгоритмдері
4-суретте
жадыны
үлестірудің
барлық
алгоритмдері
2 классқа бөлінген: процесс сегменттерін оперативті жады
мен дискі арасында ауыстыруға негізделген алгоритмдер
және сыртқы жадыны қажет етпейтін алгоритмдер.
4-сурет - Жадыны үлестіру әдістерінің классификациясы
19
3. Жадыны фиксирленген
бөлімдермен үлестіру
Оперативті жадыны қолданудың қарапайым
әдісі жадыны бөлімдер деп аталатын бірнеше
фиксирленген
облыстарға
бөлу
арқылы
жүргізіледі. Мұндай бөлу оператор арқылы жүйе
жүктелгенде немесе жүйені орнату барысында
орындалады. Бұдан кейін бөлімдер шекарасы
өзгертілмейді.
Орындалуға жіберілген кезекті жаңа процесс
жалпы
кезекке
(5-а
сурет)
немесе
кейбір
бөлімдердегі
кезекке
(5-б
сурет)
орналасады.
20
3. Жадыны фиксирленген
бөлімдермен үлестіру
5-сурет - Жадыны фиксирленген бөлімдермен бөліп беру:
(а) жалпы кезекпен, (б) жеке кезектермен
21
3. Жадыны фиксирленген
бөлімдермен үлестіру
Жадыны басқарудың жүйеасты жүйесі бұл жағдайда келесі есептерді орындайды:
•
Бос бөлімдері бар жадылар көлемін салыстырып, жаңа түскен процесс талап
ететін сәйкес бөлімді таңдайды;
•
Программаны бөлімдердің біреуі мен адрестер баптауына жүктейді. Бұл жағдайда
программаны өндеуші программаның орындалу бөлімін трансляция кезеңінде өзі
көрсете алады. Бұл ауыстырушы жүктеуішті қолданбай-ақ жадының нақты бір
облысына бағытталған машиналық кодты бірден алуға мүмкіндік береді.
Игеру
қарапайымдылығы
сияқты
айқын
басымдылықта,
бұл
әдістің
айтарлықтай кемшілігі бар. Ол оның қаттылығы, яғни әрбір бөлімде тек бір
процесс ғана орындала алады және бұл мультипрограммалау деңгейінің бөлімдер
санымен шектелуіне алып келеді. Программаның көлеміне тәуелсіз ол бүкіл
бөлімді қамтиды. Мысалы, үш бөлімді жүйеде өте аз мөлшердегі жады керектігіне
қарамастан үш процесстен артық
процесс орындалмайды. Тағы бір қырынан
жадыны
бөлімдерге
бөлу
программалары
жеке
бөлімдердің
кез-келгеніне
симайтын, бірақ бүкіл бөлімді қосқандағы жадыға сиятын процесстерді орындауға
мүмкіндік бермейді.
22
3. Жадыны фиксирленген
бөлімдермен үлестіру
Жадыны
басқарудың
мұндай
әдісі
ертеректегі
мультипрограммалы
операциялық
жүйелерде
қолданылған
болатын. Дегенмен, жадыны фиксирленген
бөлімдерге бөлу әдісі өзінің игерілуіге деген
аз
шығындылығымен
қазіргі
таңдағы
кейбір
операциялық
жүйелерде
өз
қолданысын тауып жүр.
23
4. Жадыны динамикалық
бөлімдермен бөлу
Бұл
жағдайда
машина
жадысы
алдын-ала
бөлінбейді.
Бастабында қосымша әрекеттерге сақталған барлық жады бос
болады. Жаңадан орындалуға келіп жатқан әр қосымшаға процессті
құру кезеңінде қажет болатын барлық жады бөлінеді (егер жадының
көлемі жетпесе, онда қосымша қабылданбайды және оған процесс
құрылмайды).
Процесстің
аяқталумен
жады
босатылады
және
босаған
орынға
басқа
процесс
жүктеле
алады.
Осыған
орай,
оперативті жады кез келген сәтте кез келген көлемдегі бос және бос
емес аумақтардың кездейсоқ тізбегін береді. 6-суретте динамикалық
бөлуді қолдану барысындағы уақыттың әр сәтіндегі жадының күйі
көрсетілген. Сонымен t0 болған сәтте жадыда тек операциялық жүйе
ғана орналасады, ал t1 болған сәтте жады 5 процесс арысында
бөлінген және П4 процесс жұмысын аяқтап жадыдағы орнын
босатуда. П4 процесстен босаған орынға t3 болған сәтте П6 процесс
жіүтелуде.
24
4. Жадыны динамикалық
бөлімдермен бөлу
Ұсынылып
отырған
әдісті
игеруге
арналған
операциялық
жүйенің
функциялары төмендегідей:
•
Жады аумағының бастапқы адрестері мен көлемдері көрсетілетін бос және
бос емес облыстар кестесін құру;
•
Жаңа процессті құру барысында – жадыға қойылатын талаптар анализін
жасау және жаңа процесстің кодтары мен деректерін орналастыруға көлемі
сәйкес келетін бөлімді кестедегі бос және бос емес облыстарды салыстыра
отырып таңдау. Бөлімді таңдау әр түрлі ережелерге негізделуі мүмкін,
мысалы «жеткілікті көлемдегі бірінші кезіккен бөлім», «ең кіші жеткілікті
көлемдегі бөлім» немесе «ең үлкен жеткілікті көлемдегі бөлім».
•
Таңдалған бөлімге программаны жүктеу, бос және бос емес облыстар
кестесіне
түзетулер
енгізу.
Берілген
тәсіл
программа
коды
орындалу
барысында ауыстырылмайтынын, яғни адрестерді баптау жүктлеумен бірге
жүргізілуі мүмкін екендігін көрсетеді;
•
Процесстің яқталуынан
кейін
бос және бос емес облыстар
кестесіне
түзетулер енгізу.
25
4. Жадыны динамикалық
бөлімдермен бөлу
6-сурет - Жадыны динамикалық бөлімдермен бөліп беру
26
4. Жадыны динамикалық
бөлімдермен бөлу
Фиксирленген бөлімдермен жадыны бөлу әдісіні қарағанда
бұл
әдіс
тиімдірек,
бірақ
бұл
әдіске
жадының
фрагментациялануы деп аталатын маңызды кемшілік тән боп
табылады. Фрагментация – бұл өте кіші көлемдегі жадының
сыбайлас
(смежный)
көп
аумақтарының
(фрагменттердің)
болуы. Олардың кіші болуы соншалықты ешбір программа бұл
аумақтардың кез келгеніне сыймайды, бірақ бұл фрагменттердің
қосынды көлемі керек жадыдан да асып түсетін үлкендікті беруі
мүмкін.
Жадыны динамикалық бөлімдермен үлестіру әдісі 60-70
жылдардағы
мултипрограммалы
операциялық
жүйелердің
жүйасты жүйесінің көпшілігінің негізі болып келді. Нақтырақ
айтсақ OS/360 сияқты кеңінен танымал операциялық жүйелерде.
27
5. Ауыстырмалы бөлімдер
Франментациялаунумен күресудің негізгі жолдарының бірі
барлық бос емес аумақтарды үлкен немесе кіші адрестер жағына
ауыстыру,
яғни
бос
аумақтар
бірігіп
жалғыз
бос
облысты
құрайтындай
етіп
орналастыру
(7-сурет).
Динамикалық
бөлімдерге бөлу әдісі барысындағы орындайтын функцияларымен
қоса операциялық жүйе уақыт өткен сайын бөлімдердің қамтитын
ақпараттарын бос және бос емес облыстар кестесіне өзгертулер
енгізе отырып жадының бір орнынан бір орнына көшіріп отыруы
тиіс. Бұл процедура сығу деп аталады. Cығу әрбір процесстің
аяқталуы кезінде немесе жаңадан құрылатын процесске жеткілікті
орын жетпеген жағдайда жүргізілуі мүмкін. Бірінші жағдайда бос
және бос емес облыстар кестесіне өзгертулер енгізу барысында
есептеу жұмыстары аз жүргізіледі, ал екінші жағдайда – сығу
процесі сирек орындалады.
28
5. Ауыстырмалы бөлімдер
7-сурет - Жадыны ауыстырмалы бөлімдермен
бөліп беру
29
5. Ауыстырмалы бөлімдер
Программалар
оперативті
жадыда
орындарын
өздерінің
орындалуы
барысында
ауыстыратын
болғандықтан,
бұл
жағдайда
адрестер баптауын орын алмастыру жүктеушісі
көмегімен ұйымдастыруға болмайды. Бұл жерде
неғрұлым
тиімдірегі
адрстерді
динамикалық
түрлендіру болып табылады. Сығу процедурасы
жадыны үнемдеп қолдануға алып келгенімен, ол
айтарлықтай ұзақ уақытты қажет етеді. Бұл
әдістің салыстырмалы кемшілігі осы.
30
6. Свопинг және виртуалды жады
Программаның орындалуы үшін оның оперативті жадыда орналасуы
керек. Тек осы жағдайда ғана процессор командаларды жадыдан ала алады
және
берілген
әрекеттерді
орындау
барысында
оларға
түсінік
береді.
Компьютердегі оперативті жадының көлемі есептеу процесінің
жүру
ретіне
айтарлықтай
әсер
етеді.
Ол
біруақытта
орындалатын
программалар мен олардың виртуалды адрестік кеңістіктерінің көлемін
шектейді. Кейбір жағдайларда, мысалы мультипрограммалаушы қоспаның
барлық әрекеттері есептеу болып табылатын болса (яғни процессорды
жүктен босататын енгізу-шығару операциялары аз орындалады) , онда
процессордың жақсы жұмыс істеуіне тек 3-5 есептің орындалуы жеткілікті
болады. Дегенмен егер есептеу жүйесі интерактивті есептерді орындаумен
жүктелген болса, онда процессорды тиімді қолдану үшін енді бірнеше
ондық, тіпті жүздеген есептер қажет болуы мүмкін. Бұл талдауларды
біруақытта орындалатын процесстер санынан және бұл процесстердің
енгізу-шығаруды күту жағдайындағы уақыт өлшемдерінен алынатын
процессордың жүктелу коэфициентіне тәуелді график бейнеленген 8-
суреттен көре аласыз.
31
6. Свопинг және виртуалды жады
8-сурет - Процессордың жүктелуінің есептер саны
мен енгізу-шығарудан тәуелділігі
32
6. Свопинг және виртуалды жады
Қазіргі таңда виртуалды жадыны игерудің алуандылығы үш
классқа жүктеледі:
•
Беттік виртуалды жады декректерді жады мен диск арасында
алмастыруды беттермен ұйымдастырады. Бұл жердегі беттер
дегеніміз виртуалды адрестік кеңістіктің фиксирленген және
салыстырмалы түрде кіші көлемдегі бөлімдері;
•
Сегментті виртуалды жады деректердің орнын сегменттермен,
яғни деректердің мағыналық мәнін тіркеуден алынған виртуалды
адресті кеңістіктің туынды көлемді бөліктерімен алмастыруды
ұйымдастырады;
•
Сегментті-беттік виртуалды жады екі деңгейлі бөлуді қолданады:
виртуалды адресті кеңістік алдымен сегменттерге, ал осыдан кейін
сегменттер беттерге бөлінеді. Бұл жерде деректердің орнын ауыстыру
бірлігі беттер болып табылады. Жадыны басқарудың бұл әдісі
жоғарыда айтылған екі әдістің барлық элементтерін қамтиды.
33
6. Свопинг және виртуалды жады
Сегменттер мен беттерді уақытша сақтау үшін дискіден
арнайы облыс немесе файл бөлінеді. Бұларды көптеген
операциялық жүйелерде облыс немесе свопинг файл деп
атайды. Бұл облыстың келесі бір танымал атауы – беттік файл
(page file немесе paging file). Беттік файлдың ағымдағы көлемі
операциялық жүйенің мүмкіндігіне зор әсерін тигізетін
маңызды параметр боп табылады. Беттік файл неғұрлым
үлкен болса, операциялық жүйе біруақытта соғұрлым көп
есептерді орындай алады. Дегенмен, біруақытта
орындалатын есептердің санын көбейту, олардың жұмыс
істеу жылдамдығын шектейтінін ескергеніміз жөн. Өйткені
уақыттың маңызды бөлігі программалық кодтар мен
деректерді оперативті жадыдан дискіге, қайтіп керісінше
көшіруге шығындалады.
34
7. Беттік үлестіру
9-суретте жадыны беттік үлестіру схемасы көрсетілген.
9-сурет - Жадыны
беттік үлестіру
35
7. Беттік үлестіру
Әрбір процесстің виртуалды адрестік кеңістіктері
берілген жүйе үшін фикисрленген тең көлемді бірдей
виртуалды беттер деп аталатын бөліктерге бөлінеді.
Жалпы
жағдайда
процесстің
виртуалды
адрестік
кеңістігінің көлемі беттің көлемінен кіші болмайды,
сондықтан әрбір процесстің соңғы беті
фиктивті
облыспен
толықтырылады.
Машинаның
барлық
оперативті
жадысы
да
сол
сияқты
көлемдегі
физикалық беттер деп аталатын бөліктерге бөлінеді.
Беттің көлемі екілік деңгеймен тең алынады: 512,
1024,
4096
байт
т.б.
бұл
адрестерді
түрлендіру
механизмін қарапайым ету үшін қажет.
36
7. Беттік үлестіру
Процесстің құрылуы барысында операциялық
жүйе оперативті жадыға оның бірнеше виртуалды
беттерін жүктейді (кодтық сегмент пен деректер
сегменттінің бастапқы беттері). Барлық виртуалды
адрестік
кеіңстіктердің
көшірмесі
дискіде
сақталады.
Сыбайлас
виртуалды
беттердің
сыбайлас физикалық беттерде орналасуы міндетті
емес.
Әр
процесс
үшін
операциялық
жүйе
процесстің
барлық
виртуалды
беттері
жайлы
жазуды қамтитын ақпаратты құрылым – беттер
кестесін құрады.
37
7. Беттік үлестіру
Беттің дескрипторы деп аталатын
кесте жазуы келесі ақпараттарды
қамтиды:
•
Берілген виртуалды бет жүйктелеген
физикалық беттің нөмірін;
•
Егер виртуалды бет оперативті
жадыда бар болатын болса, онда
бірлікке енгізілетін бар болу белгісі.
38
8. Жадының бөлінбелі сегменттері
Виртуалды жадының жүйеасты жүйесі жадының бір сегментінде
бірнеше жадының бірге жұмыс істеу мүмкіндігін беретін қолайлы
механизмді ұсынады. Ол жады бұл жағдайда бөлінбелі жады деп аталады.
Операциялық жүйенің негізгі мақсаттырының бірі бір процесс
орындалып жатқан жадының облысына басқа процестің жүктелуін
болдырмау
болғанымен,
жадының
белгілі
бір
облысына
бірнеше
процесстерді жүктеу кейбір жағдайларда пайдалы боп табылады екен.
Мысалы, бірнеше қолданушы бір уақытта белгілі бір текстік редактормен
жұмыс істеп отырған жағдайда, оның кодын оперативті жадыға қайта-
қайта жүктей беру тиімді емес. Барлық қолданушыға қызмет көрсететін
кодтың тек бір ғана көшірмесін жүктеп қою әлдеқайда үнемді (бұл үшін
редактор коды рентерабельді болуы шарт). Редактордың деректері
сегментінің жадыда тек бір ғана экземплярда бола алмайтыны анық. Әр
қолданушы үшін рекдактирленетін мәтін мен редактордың басқада
айнымалыларының мәні сақталатын сегменттің көшірмесі құрылуы тиіс.
39
8. Жадының бөлінбелі сегменттері
Бөлінбелі жадының қолданылуының басқа бір мысалына оның
процессаралық деретермен алмасу буфері ретінде қолданылуын
келтіруге болады. Бұл жағдайда бір процесс бөлінбелі облысқа
енгізіп жатса, енді бір процесс одан оқып жатады.
Виртуалды адрестің жүйеасты жүйесі бар болған жағдайда
бөлінбелі сегментті ұйымдастыру үшін оны (жүйеасты жүйесін)
берілген сегментке енуі тиіс әр процесстің виртуалды адрестік
кеңістігіне орналастырып, одан кейін бұл виртуалды сегменттерді
бейнелеу параметрлерін олар оперативті жадының белгілі бір
жалғыз облысына сәйкес келетіндей етіп баптау жеткілікті. Мұндай
баптаудың
кей
бөліктері
операциялық
жүйеде
қолданылатын
виртуалды
жадының
моделіне
байланысты
(сегментті
немесе
сегментті-бетті.
Таза
беттік
модель
«сегмент»
ұғымын
қабылдамайды, сондықтан қарастырылып отырған есептің шешілуі
бұл модель үшін табылмайды).
40
9. Есте сақтау құрылғыларының
иерархиясы
Есептеу машинасының жадысы есте сақтау
құрылғыларының (ЕҚ) бір-бірінен деректермен жұмыс істеудің
орташа уақытымен және көлемі мен бір байтты сақтау құныдығы
бойынша өзгеше болатын иерархияны береді (10-бет). Есте сақтау
құрылғыларының бұл пирамидасының табаны сыртқы жады
болып табылады (қатты диск). Өйткені ол өте үлкен көлемді
қамтиды (ондаған және жүздеген гигабайттар), бірақ мұндағы
деректермен жұмыс істеу уақыты айтарлықтай жылдам емес.
Дискіге қатынас жасау уақыты миллисекундтармен өлшенеді.
Келесі сатыда барынша тез жұмыс істейтін (қатынасу
уақыты шамамен 10-20 наносекундқа тең) және кішірек көлемдегі
(ондаған мегабайттн бірнеше гигабайтқа дейін) динамикалық
DRAM жадылары негізіндегі оперативті жады орналасады.
41
9. Есте сақтау құрылғыларының
иерархиясы
Тез қатынасуды қажет ететін деректерді сақтау үшін барынша
тез жылдам жұмыс істейтін ыңғайлы SRAM статикалық жадылар
қолданылады. Олардың көлемі ондаған килобайттан жүздеген
килобайтқа дейін құрайды, ал деректерге қатынасу уақыты әдетте 8
нс-тен аспайды.
Пиирамиданың ең төбесіне деректерді аралық сақтауға қажет
болатын процессордың ішкі регистрлері орналасады. Регитрлердің
жалпы көлемі ондаған байттарды құрайды, ал жылдамдығы
процессердің шапшаңдығымен анықталады және қазіргі таңда
шамамен 2-3 нс-ті құрайды.
Осыған орай жады неғұрлым үлкен болса, онда оның жұмыс
істеу жыдамдығы соғұрлым төмен болатын өкінішті заңдылықты
қорытып шығарғанымыз жөн. Сонымен қатар жұмыс істеу
жылдамдығы өскен сайын, бір байтты өлшеммен алғандағы
деректерді сақтау құны да арта түседі
42
Әдебиеттер тізімі
1.
Олифер В.Г., Олифер Н.А. Сетевые
операционные системы. – СПб: Питер, 2001.
2.
Гордеев А.В., Молчанов Ю.А. Системное
программное обеспечение. – СПб., 2001.
3.
Балақаева Г. Операциялық жүйелер. Оқу
құралы. - TOO "Print S" баспасы, Алматы:
2004, 58 бет.
4.
Королев Л.Н, Миков А.И. Информатика
Москва: 2003.
СЛАЙД-ДӘРІС
Тақырып:
«Процесстің
виртуалды адрес
кеңістігі»
Show answer
Auto Play
Slide 1 / 42
SLIDE
Similar Resources on Wayground
34 questions
Test
Lesson
•
University
40 questions
Тест 10
Lesson
•
9th - 12th Grade
16 questions
«Қазақ тілі мен әдебиет пән мұғалімдерінің цифрлық құзыреттілігі
Lesson
•
University
15 questions
Виртуальды, ккеңейтілген шындық
Lesson
•
11th Grade
11 questions
Аяна
Lesson
•
University
7 questions
Бағдарламаланатын логикалық контроллер
Lesson
•
University
69 questions
актакт
Lesson
•
University
12 questions
Файлдың форматттары
Lesson
•
7th Grade
Popular Resources on Wayground
8 questions
Spartan Way - Classroom Responsible
Quiz
•
9th - 12th Grade
15 questions
Fractions on a Number Line
Quiz
•
3rd Grade
14 questions
Boundaries & Healthy Relationships
Lesson
•
6th - 8th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
3 questions
Integrity and Your Health
Lesson
•
6th - 8th Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
9 questions
FOREST Perception
Lesson
•
KG
20 questions
Main Idea and Details
Quiz
•
5th Grade
Discover more resources for Computers
20 questions
Disney Trivia
Quiz
•
University
7 questions
Fragments, Run-ons, and Complete Sentences
Interactive video
•
4th Grade - University
7 questions
Renewable and Nonrenewable Resources
Interactive video
•
4th Grade - University
10 questions
DNA Structure and Replication: Crash Course Biology
Interactive video
•
11th Grade - University
7 questions
Force and Motion
Interactive video
•
4th Grade - University
20 questions
Implicit vs. Explicit
Quiz
•
6th Grade - University
14 questions
Ch.3_TEACHER-led
Quiz
•
University
7 questions
Comparing Fractions
Interactive video
•
1st Grade - University