Оқулық «Федералдық білім беруді дамыту институты»


ЖАДЫНЫ СЕГМЕНТТІК ЖӘНЕ ПАРАҚТЫҚ



Pdf көрінісі
бет49/158
Дата01.07.2023
өлшемі3.83 Mb.
#475485
түріОқулық
1   ...   45   46   47   48   49   50   51   52   ...   158
операциялық жуйелер

ЖАДЫНЫ СЕГМЕНТТІК ЖӘНЕ ПАРАҚТЫҚ 
ҰЙЫМДАСТЫРУ 
Виртуал жадыны сегменттік ұйымдастыру келесі тәсілге 
негізделген: бағдарламаны орындайтын жадының адрестік кеңістігі 
бір-бірімен қиылыспайтын аймақтарға бөлінеді, ол сегмент деп 
аталады. Сегменттердің көлемдері әр түрлі болуы мүмкін. Виртуалды 
жадыны ұйымдастыру кезінде адресация екі мән көмегімен жүзеге 
асады, біріншісі сегмент номері, екіншісі — сегмент ішінде ығысу.
Бұндай сегменттерді бағдарлама жасаушылар өздері таңдай алады 
(яғни қолмен), сондай-ақ орындалып жатқан бағдарламаны құрастыру 
кезінде автоматты түрде линкормен таңдала алады. Мысалы, осындай 
сегменттер ретінде код, дерек, константа және т.б. сегменттері 
қолданыла алады. Бұндай сегменттер егер олар қазіргі уақытта қажет 
болмаса негізгі жадыдан қосымша жадыға жүктеле алады, егер процес 
жұмысы үшін қажет болса қосымша жадыдан негізгі жадқа қайта 


66
 
жүйеленеді.
Бағдарламалаушы тұрғысынан виртуалды жадының осындай 
ұйымдасуы өте ыңғайлы болып табылады, өйткені ол өзі 
бағдарламаларға модульдік құрылым ұсынады. Әр сегментпен көлемі, 
сегмент атрибуттары туралы ақпараттан тұратын оның дескрипторы 
ассоциацияланған. 
Егер 
жады 
аумағы 
орналасқан 
сегмент 
атрибуттарымен рұқсат етілген болса және ығысу сегмент көлемінен 
аспаса процес жадының қандай да бір бөлігіне жүгіне алады. Ондай 
жағдай орын алмаса сегмент шекарасының бұзылғаны туралы ақпарат 
түрлендіріледі.
Оның үстіне дескриптор жадының қай жерінде сегмент 
орналасқаны туралы, негізгі жадыда сегменттің бар немесе жоқтығы 
туралы ескертетін қатысу жалауы туралы ақпараттан тұрады. Егер 
негізгі жадыға жүктелмеген сегментке жүгіну талпынысы орын алса, 
ерекшелік генерацияланады. Операциялық жүйе қажет сегментті 
негізгі жадыға жүктейді, сегмент дискрепторындағы параметрлерді 
күйге келтіреді және сегментте жадыға жүгіну операциясын 
орындайды. 
Виртуалды жадыны ұйымдастырудың осы қарастырылған түр 
фрагменттелуді азайтады. Сонымен қатар ол қолданылмаған 
сегменттерді жүктемеден шығару есебінен негізгі жадыны үнемдеуге 
көмектеседі, 
сегменттер 
көмегімен 
бөлінетін 
бағдарламалар 
модульдерінің мәселелерін шешеді. Мұндай модульдер сегмент 
жадысына жүктеледі, ал процестерде пайдаланылып жатқан сегменттер 
дискрепторларының кестесіне осы жалғыз сегментке сілтеме жасалады.
Виртуалды жадыны осылай ұйымдастырудың кемшілігі бұл 
модельдің адресация операциясы өте баяу, өйткені бірінші сегмент 
дескрипторына рұқсат алу керек, жадыдағы сегменттің орналасқан 
жерін оқу, одан кейін ығысуды пайдаланып соңғы адресті анықтау 
қажет. Сонымен қатар жады және процессорлық уақыт сегменттер 
дескрипторларына және дескриптор кестесіне, олардың орналасуы 
және сегменттерді жүйелеу кезінде адрестердің жаңаруына
жұмсалады. 
Осы мәселелерді шешу үшін заманауи операциялық жүйелерде 
виртуалды жадыны ұйымдастырудың парақтық тәсілі қолданылады. 
Парақтық ұйымдастыру кезінде виртуалды жадының барлық кеңістігі
жады парақтар деп аталатын белгіленген көлемі бар блоктарға 
бөлінеді. Белгілі бір көлемде жады қажет болған кезде бұл өлшем 
парақтың өлшемімен теңестіріледі де жады парағының толық саны 
бөлінеді. Егер парақтың қандай да бір бөлігі пайдаланылмаған болса, 
онда жады ары қара таратылмайды да ары қарай пайдалануға 
мүмкіндік болмайды. Бұл жағдайда ішкі фрагменттеу сөз болады. 


Виртуалды жадыны осылай ұйымдастырған кезде негізгі жады да 
«жады парағының фреймдері» деп аталатын виртуал жадының 
парақтарының көлемдерімен бірдей бөлінеді. Бұндай фреймдер 
виртуал жадының парақтары жатқызылуы қажет жиектеме секілді.
Осындай парақтар бір-бірінен тәуелсіз қосымша жадқа қажеттігінше 
көшіріле алады және қажет болған жағдайда негізгі жадының 
қолжетімді фреймге қайта жүктеледі. 
Виртуалды жадыны осылай ұйымдастырудың артықшылығы дәл 
сегменттік тәсіл секілді бұл тәсіл де қосымша жадыны пайдалану 
арқылы негізгі жадыдағы қолжетімді көлемді арттыра алады. Бір 
процес үшін әр уақыт сайын оған тиесілі емес жады парақтарын емес 
тек өзіне қажеттісін ғана жүктеу қажет. Басқалары қосымша жадыға 
көшіріле алады, басқа деректер мен процестерге негізгі жадыдан орын 
босатады. 
Егер дәл сол сәтте негізгі жадыдан қосымша жадыға көшірілген 
жады парағына өтінім жіберілсе, парақша қателігі генерацияланады.
Осындай қатені алған менеджер сұратылған парақты негізгі жадының 
бос фрейміне жүктейді. Қажеттігінше мұндай фрейм басқа 
пайдаланылмай тұрған парақтарды шығарып тастау жолымен 
босатылады. Осындай операциялардың жиілігі процестер пайдаланып 
жатқан парақ көлеміне және парақтардың жалпы санына тәуелді. Іс 
жүзінде негізгі жадыда болуы қажет минималды парақтар саны бар. 
Бұл санды «парақтардың минималды жұмыс жиынтығы» деген атауға 
ие және процес пайдаланып отырған жадының максимал өлшеміне 
тәуелді анықталады. 
Жадының қай парақшасы негізгі жадыдан қосымша жадыға 
ауысуын анықтау үшін «парақтарды ауыстыру стратегиясы» деп 
аталатын арнайы алгоритм қолданылады.
Мұндай стратегиялардың жүзеге асуы үшін келесі алгоритмдер 
қолданыла алады. 


Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   158




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет