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



 

 


Жадыны басқарудың жүйеасты жүйесі бұл жағдайда келесі есептерді орындайды:

· Бос бөлімдері бар жадылар көлемін салыстырып, жаңа түскен процесс талап ететін сәйкес бөлімді таңдайды;

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

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

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

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

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

Ұсынылып отырған әдісті игеруге арналған операциялық жүйенің функциялары төмендегідей:

- Жады аумағының бастапқы адрестері мен көлемдері көрсетілетін бос және бос емес облыстар кестесін құру;

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

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

- Үрдістің яқталуынан кейін бос және бос емес облыстар кестесіне түзетулер енгізу.

ОЖ
ОЖ
ОЖ
ОЖ
ОЖ
П6
П1
П1
П1
П2
П2
П2
П3
П3
П3
П4
 
П5
П5
П5
П6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- бос облыс
- бос емес облыс
Сурет 6. Жадыны динамикалық бөлімдермен бөліп беру
t0                                                        t1                         t2                                                  t3       . . . tk

 

 


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

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

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

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

ОЖ
П1
П2
П3
П4
а
b
c
d
ОЖ
П1
П2
П3
П4
a+b+c+d
Сығу процедурасы
t1
t2
Сурет 7. Жадыны ауыстырмалы бөлімдермен бөліп беру

 

 


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

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

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

 

20%
50%
80%
0
0
1
2
3
4
5
6
7
8
9
10
20
40
60
80
100
Процессердің жүктлеуі, %
Мультипрограм-малау деңгейі
Сурет 8. Процессордың жүктелуінің есептер саны мен енгізу-шығарудан тәуелділігі

 

 


Қазіргі таңда виртуалды жадыны игерудің алуандылығы үш классқа жүктеледі:

- Беттік виртуалды жады декректерді жады мен диск арасында алмастыруды беттермен ұйымдастырады. Бұл жердегі беттер дегеніміз виртуалды адрестік кеңістіктің фиксирленген және салыстырмалы түрде кіші көлемдегі бөлімдері;

- Сегментті виртуалды жады деректердің орнын сегменттермен, яғни деректердің мағыналық мәнін тіркеуден алынған виртуалды адресті кеңістіктің туынды көлемді бөліктерімен алмастыруды ұйымдастырады;

- Сегментті-беттік виртуалды жады екі деңгейлі бөлуді қолданады: виртуалды адресті кеңістік алдымен сегменттерге, ал осыдан кейін сегменттер беттерге бөлінеді. Бұл жерде деректердің орнын ауыстыру бірлігі беттер болып табылады. Жадыны басқарудың бұл әдісі жоғарыда айтылған екі әдістің барлық элементтерін қамтиды.

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

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

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

0
1
2
3
4
1 процесстің виртуалды адрестік кеңістігі
Nор.б.  ақпарат.басқ.
 5
ВП
ВП
10
2
1 процесстің беттер кестесі
0
1
2
3
4
 
 
4 бет, 1 пр.
 
  
0 бет, 1 пр.
 
0 бет, 2 пр.
  
3 бет, 1 пр.
5 бет, 2 пр.
 
 
0
1
2
3
4
5
6
7
8
9
10
11
12
: ˙
 
 
Физикалық жады
0
1
2
3
4
2 процесстің виртуалды адрестік кеңістігі
Nор.б.  ақпарат.басқ.
 8
ВП
ВП
ВП
ВП
2 процесстің беттер кестесі  
0
1
2
3
4
11
Беттік алмасу
Сурет 9. Жадыны беттік үлестіру
 


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

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






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