- •6. Организация ассоциативной, кэш и виртуальной памяти
- •6.1 Память с ассоциативным доступом
- •6.3 Виртуалды жадтың архитектурасы.
- •6.3.1 Физикалық жад пен виртуалды жад түсінігін қолданудың қиындығы
- •6.3.2. Жадының беттік ұйымдастырылуы.
- •6.3.3. Жадының беттік ұйымдастырудағы сегментациясы
- •Өзіндік дайындалу үшін сұрақтар:
6.3 Виртуалды жадтың архитектурасы.
6.3.1 Физикалық жад пен виртуалды жад түсінігін қолданудың қиындығы
Физикалық жадты қолданудың қиындығы. Физикалық жадымен жұмыс барысында қиындық туғызбайды. Біріншісі, айтып өткендей, жадының шектеулігімен байланысты, өйткені көптеген есептерді шығару барысында жадының көлемі жетіспейді. Екінші қиындық жад адресациясының сызықтығымен байланысты. Программа бөлшектеніп, жадыға жүктелгенде, жүктелу аяқталғаннан кейін оның орындалуы мен босатылуынан жады «фрагментациялық жады» - деп аталатын жағдайға түседі. Ол жағдай 6.7. суретінде көрсетілген. Осы жағдайдағы жадыға ешқандай программаны, тіпті бос орынның көлемінен кіші мөлшерлі программаны да жүктей алмайсыз.
Соңында үшінші қиындық мульти есептіктің режиміне байланысты, жады бірнеше әр түрлі программалардың арасында бөліну кезінде жүреді. Сонымен қоса, бір орындалып жатқан программаның изоляциясын басқасына ұйымдастыру қажет. Изоляцияның міндеті – ешбір программа оқу немесе басқа программаға тиесілі жад бөлімдерін өзгерту мүмкіндіктеріне ие болмауы тиіс екенінде жатыр.
Осы қиындықтардың шешімін табуға қолданылуы кезінде программистке қажетті үлкен көлемді, тіпті ол сызықты болуы да шарт емес, жады бар болып көрінетін жад архитектурасы қолданылады. Берілген архитектура виртуалды жады (ВЖ) атын алды. Виртуалды жады иерархалды структура жадысын программалар мен мәліметтерді қолайлы орналастыруға рұқсат беретін үзіліссіз адресті ОП жазықтықтығы ретінде қолданылу идеясында бағаланады. Жоғарғы дәрежесі болып физикалық ОП (кэш-жадының механизмімен) , ал төменгісі болып сыртқы жады (ВЗУ) есептеледі.
Виртуалды жадының түсінігі. Программистке берілген (қолдануға болатын) виртуалды жадының жазықтығы виртуалды жазықтық деп аталады. Физикалық жадының жазықығы шынайы жазықтық деп аталады. Виртуалды жазықтықың адрес деп, аз физикалық жазықтық адрестері физикалық адрес деп аталады. Программа виртуалды, кейін физикалыққа өзгертілетін (трансляцияланатын) адрестарды қолдану арқылы құралады. Бұл кезең 6.8. суретінде көрсетілген.
Анықтаушы кезең барысында ВП блоктарының жартысы басты – ВС-ның біріншілік жадысына орналастырылуы мүмкін. Бұл блоктар, ережеге сай, қолданылуға дайын программалар мен мәліметтерден тұрады. ВП-ның қалған блоктары екіншілік деп аталатын сыртқы жадыға орналастырады. ЭВМ-ның функционалды кезеңінде ВП блоктарының ОП және екіншілік жадымен орын ауыстыруы жүзеге асады.
Виртуалды жадының жүйелерін екі классқа бөлуге болады: бет деп аталатын, белгіленген мөлшерлі блокты жүйелер және сегмент атты өзгермелі мөлшерлі блокты жүйелер.
6.3.2. Жадының беттік ұйымдастырылуы.
Тіркелген ұзындықтың бет жады. Жүйелерде беттің ұйымымен негізгі және сырт жады немесе тіркелген ұзындықтың беттерінің блоктарына бөлінеді. Әр пайдаланушыға жеке кеңістік виртуалды мекен беріледі, адресацияның мүмкіншілігімен шектеулі көлем ғана, команда жүйесінде қойылған. Виртуалды жад пайдаланушыға берілген көлем ОП-ның физикалық көлемінен асуы мүмкін. Пайдаланушыға виртуалды жадтағы әрбір сөз виртуалды мекенмен анықталады, екі бөліктен тұратын: үлкен разрядты мекен беттің нөмірі ретінде қаралады, ал кішкентайы – бет ішіндегі нөмір сөзі ретінде (немесе байтпен).
Виртуалды жадтың басқармасы оперативті жүйенің ядро бағдарламасымен іске асады, олар беттерді орнасалтырумен және жадтың біріншісі және екіншісі арасындағы алмасуды оңтайландырып қарап отырады. Жад кезіндегі беттің ұйымының шектес виртуалды беттер емес, сөзсіз бас шектес беттерде жайғастырылуы керек, жадтың негізгі физикалық сәйкестікті нұсқау үшін, виртуалды бет ара үшін, жеке бағдарлама үшін оперативті жүйе бет кесте ара негізгі жад белгілі нысан және негізгі жад беті келтіріледі. Сонымен қатар, бағдарламаның әр бетіне негізгі жадта бар ма, жоқ па, оған қарамастан, кейбір элементтер сәйкесінше бет кестелеріне қойылады. Әрбір беттегі кестенің элементі негізгі жадтағы беттің физикалық нөмірін және арнайы индикаторды құрайды. Бұл индикатордың дара жағдайы негізгі жадтың бұл бетіндегі бар болуын дәлелдейді. Индикатордың нөлдік жағдайы оперативті жадта беттердің жоқтығын білдіреді. Виртуалды мекендерден нақты кестедегі беттердің қолдануымен қайта құрылғаны 6.9. суретінде көрсетілген.
6.9 суретінде қолданылған белгілер келесі мағынаға ие:
– F биты (бар бит) і беті бар ма, жоқ па соны көрсетеді. Егер F=1 болса, онда бет бар;
– С биты (жаңарту биты) ОП-ның бетінде жаңарту болды ма, жоқ па соны көрсетеді. Бұл бит - беттің өшірілуі бола қалса, екінші жадтағы артық жазбаны алып тастау үшін керек;
– RWX коды і бетіндегі рұқсат түрін анықтайды (санау/жазба немесе осы және басқа да);
– М биты беттің қайда тұрғанын көрсетеді, егер М=1 болса, онда бет ОП-да орналасқан;
– PFA коды і бетінде бар блоктың нөмірін құрайды.
Егер, мысалы, F=1 және М=1 болса, онда бұл ОП-ның і бетінде сақталғанын білдіреді және PFA мағынасымен сәйкес келетін нөмірі анықталады. Егер F=1, ал М=0 болса, онда PFA-да екінші жадтағы бет мекені сақталған.
Бет жады мекенжайының өзгерісінің буфері. Мынадай үлгісінің тиімділігінің аумақтауы үшін арнаулы толықтай ассоциативтік кэш-жады пайдаланылады, TLB (translation-lookside buffer) мекенжайдың өзгерісінің буферімен деп аталады. Жадтың TLB мазмұнын сақтау мақсатында, басқа бір бағдарламаға ауысқан кезде тазарады.
Ізденіс беттің кестелерінде негізгі жадта орналасқан, оған қарамастан және TLB жүктеуі жүзеге асуды біледі әлде бағдарламаның тәсілімен немесе арнайы аппаратталған тәсілмен. Қазіргі таңда, болдырмау үшін ана қолданбалы бағдарламаның үндеуінің мүмкіндігін беттің кестелеріне байланыссыз арнаулы шаралар көзделген. осы мақсатпен процессорда ықтың қосымша регистрі ажыратылады, беттің кестесінің асыра сипаттауышы (дескриптор) немесе негіздік-шекаралық тең. База беттің кестесінің түбінің мекенжайын негізгі жадта анықтайды, ал шекара лайықты бағдарламаның бетінің кестесінің ұзындығын анықтайды. Ықтың осы регистрінің артықшылықтың режимінде ғана рұқсат етілген. Әр бағдарлама үшін операциялық жүйе беттің кестесінің дескрипторын сақтайды және оны процессордың ығының регистріне лайықты бағдарламаның ұшырымымен орындалады.
Біреудің тән жай нобайларға жадтың беттің ұйымымен өзгешеліктерін қараймыз. Олардан деген ең маңызды анау ауызекі байланыс бір-бірімен оперативті жүйесіз қабаттасушылықпен, керек барлық бағдарлама виртуалды ая болып табылатын мекендермен ортақ пайдалану керек. осы жадтың үдемелі және таратушылқының режимінде қарайды , ең операциялық жүйеге жұмыс істеу керек. Сол себептен ара біреудің жүйелерінде виртуалды пайдланушы мекенжайының аясы пайдаланушының бағдарламаларының рұқсат алуына ие , ортақ рәсімнің өлшеміне деген азаятынын тілейді. ортақ рәсімдерге аударып жіберу барлық пайдаланушының виртуалды мекенжайының аясының тағайынды көлемі болуға керек, оларда түпкілікті жер ара барлық пайдаланушы бет кесте болуы үшін. Бұндай кезде тұтастықтың қамсыздандыруы үшін, құпиялықтың және орындалған бағдарламаның өзара изоляциясын көзделген рұқсат алудың түрлі режимдері көмегімен, арнайы индикаторға рұқсат алу, ара кесте бет элементі жүзеге асатын бет болуы керек. Мынадай игерушіліктің салдарымен жеке пайдаланушының кесте бетінің өсуі маңызды болып табылады. Бір кестенің ұзындығының қысқарту мәселесінің тынымдарынан кестенің көпсатылы ұйымының енгізуі негізделген. Меншікті айғырдан шығарған кестенің ұйымының көпсатылы сегменты кезінде бет жады ұйымы болып табылады.
