Кіріспе

Компьютерлік жадыны басқару схемасы

Компьютерлік операциялық жүйелерде жадыны беттеу (немесе кейбір Unix-ке ұқсас жүйелерде ауыстыру) – компьютердің негізгі жадыда пайдалану үшін екінші жадыдан деректерді сақтап, алуын қамтамасыз ететін жадыны басқару схемасы. Бұл схемада операциялық жүйе деректерді екінші жадыдан бірдей өлшемдегі блоктар түрінде, яғни беттерде алады. Беттеу – қазіргі операциялық жүйелердегі виртуалды жадты іске асырудың маңызды бөлігі, ол бағдарламалардың қолжетімді физикалық жадтың көлемінен асып кетуіне мүмкіндік беру үшін екінші жадыны пайдаланады. Айқындылық үшін негізгі жад "RAM" (көп мағыналы жад) деп, ал екінші жад "диск" (қатты дискік, барабандық жад немесе қатты күйдегі дискік, т.б. дегеннің қысқартылған түрі) деп аталады. Бірақ, есептеу техникасының көптеген аспектілеріндегідей, бұл ұғымдар қолданылатын технологияға тәуелсіз. Жады моделіне байланысты, беттелген жадтың функционалдығы әдетте жады басқару блогы (MMU) немесе жады қорғау блогы (MPU) арқылы процессорға (CPU/MCU) тікелей енгізіледі және операциялық жүйенің ядросындағы артық құқықтарға ие жүйе кодымен жеке қосылады. Мысалы, x86 нұсқаулар жиынтығын (ISA) қолданатын процессорларда жадыны беттеу CR0 басқару тіркегі арқылы қосылады.

Тарих

1960 жылдары ауыстыру – виртуалды жадты қолданудың алғашқы техникасы. Толық бағдарлама немесе толық сегмент RAM-нан дискіге немесе барабанға "ауыстырылып" (немесе "шығарылып") жіберілетін, ал басқасы ауыстырылып (немесе енгізіліп) алынар еді. Ауыстырылған бағдарлама жұмыс істеп тұрған күйде болар еді, бірақ оның RAM-ы басқа бағдарлама қолданып жатқанда орындалуы тоқтатылар еді; ауыстырылған сегменті бар бағдарлама сол сегмент қажет болғанға дейін жұмысын жалғастыра алатын, одан кейін сегмент ауыстырылғанға дейін тоқтатылар еді. Бағдарламада әртүрлі уақытта бір жадты пайдаланатын бірнеше жапсырмалар болуы мүмкін. Жапсырмалар – RAM-ды дискіге бөлу әдісі емес, тек бағдарламаның RAM-ды пайдалануын азайту тәсілі. Кейінгі архитектуралар жад сегменттеуін қолданды, ал жеке бағдарлама сегменттері дискі мен RAM арасында алмасатын бірліктерге айналды. Сегмент – бағдарламаның толық код сегменті немесе дерек сегменті, немесе кейде басқа ірі дерек құрылымдары болуы мүмкін. Бұл сегменттер RAM-да тұрғанда үздіксіз болуы керек еді, бұл фрагментацияны жою үшін қосымша есептеулер мен жылжуды талап ететін. Ferranti-дің Atlas және Манчестер университетінде жасалған Atlas Supervisor (1962) жад беттемесін іске асырған алғашқы жүйе болды. Кейінгі ерте машиналар мен олардың операциялық жүйелері, беттемені қолдайтын IBM M44/44X және оның MOS операциялық жүйесі (1964), SDS 940 және Беркли уақыт бөлісу жүйесі (1966), өзгертілген IBM System/360 Model 40 және CP 40 операциялық жүйесі (1967), IBM System/360 Model 67 және TSS/360 және CP/CMS сияқты операциялық жүйелер (1967), RCA 70/46 және уақыт бөлісу операциялық жүйесі (1967), GE 645 және Multics (1969), сондай-ақ PDP 10, BBN жасаған қосымша беттеме аппараттарымен және TENEX операциялық жүйесімен (1969) жабдықталған. Бұл машиналар және жад беттемесін қолдайтын кейінгі машиналар процессордың RAM-дегі кез келген жердегі кездейсоқ беттерде жұмыс істеуі үшін, яғни бір-біріне тікелей жанасқан логикалық адрестік кеңістік ретінде жұмыс істеуі үшін жад бетінің адрестік тізілімдерінің жиынтығын немесе жад бетінің кестелерін пайдаланады. Бұл беттер дискі мен RAM арасында алмасатын бірліктер болды.

Қиып-соғу

Бастапқылауды аяқтағаннан кейін, көптеген бағдарламалар оларға қажетті жалпы жад көлеміне қарағанда, аз ғана код және дерек беттерінде жұмыс істейді. Ең көп қолданылатын беттер жұмыс жиынтығы деп аталады. Жұмыс жиынтығы жүйенің барлық беттерінің шағын пайызын құрағанда, виртуалды жад жүйелері ең тиімді жұмыс істейді және бет қатесін жоюға кеткен есептеу уақыты минималды болады. Жұмыс жиынтығының өсуімен, бет қатесін жою басқарыла береді, бірақ өсу белгілі бір шегіне жеткенде қиындықтар туындай бастайды. Содан кейін қателер күрт артады және оларды жоюға жұмсалатын уақыт бағдарламаның жұмысына кеткен уақыттан асып кетеді. Бұл жағдай "қырсықтау" (thrashing) деп аталады. Қырсықтау үлкен дерек құрылымдарымен жұмыс істейтін бағдарламаларда болады, себебі олардың үлкен жұмыс жиынтығы жүйенің айтарлықтай баяулауына себеп болатын үнемі бет қатесін тудырады. Бет қатесін жою үшін жақын арада дискіден қайта оқылатын беттерді босату қажет болуы мүмкін. "Қырсықтау" виртуалды жад жүйелерінен басқа да салаларда қолданылады, мысалы, есептеудегі кэш проблемаларын немесе желідегі "сәл терезе" синдромын сипаттау үшін. Ең жаман жағдай VAX процессорларында болуы мүмкін. Бір MOVL командасы бет шекарасын кесіп өтуі мүмкін, бұл жағдайда көз операндысы кейінге қалдырылған адрестеу режимін пайдаланады, онда операнд мекенжайын қамтитын ұзын сөз бет шекарасын кесіп өтеді, ал мақсат операндысы да кейінге қалдырылған адрестеу режимін пайдаланады, онда операнд мекенжайын қамтитын ұзын сөз бет шекарасын кесіп өтеді, сонымен қатар көз және мақсат екеуі де бет шекарасын кесіп өтуі мүмкін. Бұл бір ғана команда он бетке сілтеме жасайды; егер олардың барлығы RAM-да болмаса, әрқайсысы бет қатесін тудырады. Әр қате пайда болғанда операциялық жүйе кеңейтілген жад басқару процедураларын орындауы керек, бұл бірнеше кіріс-шығыс операцияларына (I/O) әкелуі мүмкін, оның ішінде басқа процестердің беттерін дискіге жазу және белсенді процестің беттерін дискіден оқу кіреді. Егер операциялық жүйе осы бағдарламаға он бетті бөле алмаса, онда бет қатесін жою үшін командаға қажет басқа бет босатылады және команда қайта іске қосылғанда қайтадан қате пайда болады. Артық бетке орналастыруды азайту және қырсықтау мәселелерін шешу үшін пайдаланушы бағдарламаға қол жетімді беттер санын арттыра алады, бір мезгілде аз бағдарламаларды іске қосу арқылы немесе компьютердің RAM көлемін ұлғайту арқылы.

Ортақ пайдалану

Көп бағдарламалауда немесе көп пайдаланушы ортасында көптеген пайдаланушылар бір бағдарламаны іске қосуы мүмкін, оның коды мен деректері жеке беттерде сақталады. Жедел жадты (RAM) үнемдеу үшін барлық пайдаланушылар бағдарламаның бір ғана данасын пайдаланады. Әрбір процестің беттер тізімі (page table) кодты мекенжайлайтын беттерді жалғыз ортақ көшірмеге, ал деректерді мекенжайлайтын беттерді әр процестің жеке физикалық беттеріне бағыттайды. Әртүрлі бағдарламалар да ортақ кітапханаларды қолдануы мүмкін. Орынды үнемдеу үшін ортақ кітапхананың тек бір көшірмесі физикалық жадқа жүктеледі. Ортақ кітапхананы пайдаланатын бағдарламалардың виртуальды мекенжайлары бірдей беттерге (кітапхананың коды мен деректерін қамтитын) сәйкес келеді. Бағдарламалар кітапхана кодын өзгерту қажет болғанда, "жазу кезінде көшіру" (copy-on-write) әдісін қолданады, сондықтан жад тек қажет болғанда ғана бөлінеді. Ортақ жад – бағдарламалар арасындағы тиімді байланыс құралы. Бағдарламалар жадтағы беттерді бөлісіп, дерек алмасу үшін жазып және оқи алады.

Ферранти атласы

Пайджерді қолдаған алғашқы компьютер 1963 жылы Ferranti, Манчестер университеті және Plessey бірлесіп жасаған Атлас суперкомпьютері болды. Машинада әр 512 сөздік бетке бір жазбасы бар ассоциативтік (мазмұнымен адрестелетін) жады болды. Бақылаушы тең емес үзілістерді басқарды және бағдарламаларға бір деңгейлі жадты қамтамасыз ету үшін негізгі жад пен барабан арасындағы беттерді ауыстыруды жүзеге асырды.

Windows 3.x және Windows 9x

Беттеу 1990 жылғы Windows 3.0-дан бері Microsoft Windows-тың құрамында бар. Windows 3.x 386SPART деп аталатын жасырылған файлды немесе WIN386.SWP құрайды, ол алмасу файлы ретінде қолданылады. Ол әдетте түбірлік каталогта орналасқан, бірақ басқа жерде де болуы мүмкін (әдетте WINDOWS каталогында). Оның мөлшері жүйедегі алмасу кеңістігінің көлеміне байланысты (пайдаланушы Басқару тақтасы → Қосымша параметрлер → «Виртуалды жад» бөлімінде таңдайтын параметр). Егер пайдаланушы осы файлды жылжытса немесе жойса, Windows келесі рет іске қосылғанда «Тұрақты алмасу файлы зақымдалған» деген қате хабары бар көк экран пайда болады. Пайдаланушы файлды жоюды таңдауға шақырылады (ол жоқ болса да). Windows 95, Windows 98 және Windows Me ұқсас файлды пайдаланады, ал оның параметрлері Басқару тақтасы → Жүйе → Өнімділік қойыншасы → Виртуалды жад бөлімінде орналасқан. Windows бет файлының мөлшерін автоматты түрде физикалық жадтың 1,5 еселенгенінен бастайды және қажет болған жағдайда физикалық жадтың 3 еселенгеніне дейін ұлғайтады. Егер пайдаланушы аз физикалық жады бар жүйеде көп жадты қажет ететін бағдарламаларды іске қосса, осы мөлшерлерді әдепкі параметрлерден жоғарырақ мәнге қолмен орнату ұсынылады.

Windows NT жүйесі

Windows NT отбасындағы бетбелгілеу үшін қолданылатын файл – pagefile.sys. Бет файлының әдепкі орналасқан жері – Windows орнатылған бөлімнің түбірлік каталогы. Windows кез келген қолжетімді дискілерде беттік файлдар үшін бос орынды пайдалануға конфигурациялануы мүмкін. Дегенмен, жүктелу бөлімі (яғни Windows каталогын қамтитын диск) көк экран пайда болғаннан кейін ядроның немесе толық жадтың құймаларын жазу үшін конфигурацияланған болса, беттік файлдың болуы қажет. Windows беттік файлды жад құймасын уақытша сақтау орны ретінде пайдаланады. Жүйе қайта іске қосылғанда, Windows жад құймасын беттік файлдан жеке файлға көшіріп, беттік файлда пайдаланылған орынды босатады.

Фрагментация

Windows жүйесінің әдепкі конфигурациясында, қажет болған жағдайда бет файлы бастапқы бөлінген көлемнен асып кетуі мүмкін. Егер бұл бірте-бірте орын алса, бет файлы күшті фрагментацияға ұшырауы мүмкін, бұл өнімділік мәселелерін тудыруы мүмкін. Бұған жол бермеу үшін, кең таралған кеңес – Windows жүйесінің оны кеңейтуіне мүмкіндік бермес үшін, бір "құлыпталған" бет файлы мөлшерін орнату. Дегенмен, бет файлы тек толтырылған кезде ғана кеңейеді, ал әдепкі конфигурациясында бұл физикалық жадтың жалпы көлемінің 150% құрайды. Осылайша, бет файлына сұраныс жасалған виртуалды жадтың жалпы көлемі, бет файлының кеңеюі үшін компьютердің физикалық жадының 250% аспауы керек. Бет файлының кеңейген кезде туындайтын фрагментациясы уақытша. Кеңейтілген аймақтар енді қолданылмаған кезде (егер ертерек болмаса, келесі қайта жүктеу кезінде), қосымша дискілік кеңістік бөлігі босатылады және бет файлы бастапқы күйіне оралады. Бет файлының мөлшерін құлыптау, Windows қолданбасы физикалық жад пен бет файлының жалпы мөлшерінен артық жад сұрағанда мәселе тудыруы мүмкін, бұл жадты бөлу туралы сұраныстардың сәтсіз аяқталуына және қолданбалар мен жүйе процестерінің жұмысын тоқтатуына әкелуі мүмкін. Сонымен қатар, бет файлы сирек ретпен тізбектей оқылады немесе жазылады, сондықтан толық тізбектелген бет файлының өнімділік артықшылығы минималды. Алайда, үлкен бет файлы көбінесе жадты көп пайдаланатын қолданбаларды пайдалануға мүмкіндік береді, дискілік кеңістікті көп пайдаланудан басқа қосымша кемшіліктері жоқ. Фрагменттелген бет файлының өзі проблема тудырмауы мүмкін, бірақ өзгермелі мөлшемді бет файлының фрагментациясы уақыт өте келе дискіде бірнеше фрагменттелген блоктарды құрайды, бұл басқа файлдардың фрагментациясына әкелуі мүмкін. Осы себепті, белгілі бір мөлшердегі үздіріссіз бет файлы жақсырақ, егер бөлінген мөлшері барлық қолданбалардың қажеттіліктерін қанағаттандыру үшін жеткілікті болса. Қажетті дискілік кеңістік, жаңа сипаттамалары бар жүйелерде (мысалы, 750 ГБ дискіде 6 ГБ тұрақты мөлшемді бет файлы бар 3 ГБ жады бар жүйе немесе 2 ТБ дискілік кеңістігі бар және 16 ГБ тұрақты мөлшемді бет файлы бар 6 ГБ жады бар жүйе) оңай бөлінеді. Екі мысалда да жүйе дискідегі кеңістіктің шамамен 0,8% -ын пайдаланады, ал бет файлы максималды мөлшеріне дейін кеңейтілген. Windows жүйесінің жалпы физикалық жадынан әлдеқайда көп жадты тұрақты түрде пайдалануы жағдайында, өнімділікті жақсарту үшін бет файлының фрагментациясын жүргізу де ұсынылады. Бұл көзқарас, бет файлының кеңеюдің уақытша нәтижелерінен басқа, уақыт өте келе фрагментацияға ұшырамайтындығын ескермейді. Жалпы, бет файлына қол жеткізумен байланысты өнімділік мәселелерін шешудің тиімді жолы – көбірек физикалық жадты қосу.

Unix және Unix-қа ұқсас жүйелер

Unix жүйелері және басқа да Unix-қа ұқсас операциялық жүйелер физикалық жад (RAM) толып кеткен кезде жадты дискідегі орынмен алмастыру амалын "свап" деп атайды. Мұндай жүйелердің кейбіреулерінде қатты дискідегі бір бөлімді толығымен свапқа арнау жиі кездеседі. Мұндай бөлімдер "свап бөлімі" деп аталады. Көптеген жүйелерде деректерді сақтаудан бөлек, тек свап бөлімінен тұратын, свапқа арналған жеке қатты дискі болады. Свапқа арналған қатты диск "свап дискісі" немесе "уақытша дискі" немесе "жұмыс дискісі" деп аталады. Кейбір жүйелер тек свап бөлімдеріне ауысуды қолдайды, ал басқалары файлдарға да ауысуды қолдайды.

Linux жүйесі

Linux ядросы дерлік шексіз көптеген алмасу құрылғыларын (құрылғылар немесе файлдар) қолдайды, сондай-ақ құрылғылардың басымдықтарын белгілеуге мүмкіндік береді. Ядро физикалық жадтан беттерді алмастырғанда, бос орын бар ең жоғары басымдыққа ие құрылғыны пайдаланады. Егер бірнеше алмасу құрылғысына бірдей басымдық берілген болса, олар кезең-кезегімен (RAID 0 сақтау жүйесіне ұқсас) қолданылады, негізгі құрылғыларға параллель түрде тиімді қол жеткізілген жағдайда, бұл өнімділікті арттырады.

Файлдар мен бөлімдерді алмастыру

Соңғы пайдаланушының көзқарасы бойынша, Linux ядросының 2.6.x және одан кейінгі нұсқаларындағы суап файлдары, суап бөлімдерімен шамалас жылдамдыққа ие; бірақ, суап файлдары өздерінің негізгі файлдық жүйелерінде үздіріліссіз бөлінуі керек. Суап файлдарының өнімділігін арттыру үшін, ядро олардың негізгі құрылғылардағы орналасқан жерлерінің картасын сақтайды және оларға тікелей қол жеткізеді, осылайша кэшті айналып өтеді және файлдық жүйенің қосымша жүктемесін болдырмайды. Қатты дискілерде (HDD), айналмалы магниттік құрылғыларда, суап бөлімдерін пайдаланудың бір артықшылығы – оларды жоғары деректер өтімділігін немесе жылдам іздеу уақытын қамтамасыз ететін үздіріліссіз дискілік аймақтарға орналастыру мүмкіндігі. Дегенмен, суап файлдарының әкімшілік тұрғысынан әмбебаптығы, суап бөлімдерінің кейбір артықшылықтарын басып шығады. Мысалы, суап файлын кез келген қосылған файлдық жүйеге орналастыруға болады, кез келген қажетті мөлшерге бейімдеуге болады және қажет болған жағдайда қосуға немесе өзгертуге болады. Суап бөлімдері соншалықты икемді емес; оларды бөлімдеу немесе томды басқару құралдарын қолданбастан кеңейту мүмкін емес, бұл түрлі қиындықтар мен әлеуетті тоқтауларды тудырады.

Сваппенілік

Swappiness – Linux ядросының параметрі, бос жадтан жад бөлу сұранысын қанағаттандыра алмаған жағдайда, жүйелік бет кэшінен беттерді шығаруға қарағанда, орындалу кезіндегі жадтан айырбастауға берілетін салыстырмалы салмақты басқарады. Swappiness мәні 0-ден 200-ге дейін орнатылуы мүмкін. Төмен мән ядроға беттерді кэштен шығаруды ұсынады, ал жоғары мән ядроға «суық» жад беттерін айырбастауды ұсынады. Көрсетілген әдепкі мән 60; оны жоғарырақ орнату, егер суық беттерді қайта айырбастау қажет болса, жоғары жауап уақытына (мысалы, біраз уақыттан бері қолданылмаған бағдарламамен жұмыс істегенде) әкелуі мүмкін, ал төмендету (тіпті 0-ге дейін) кэштен шығарылған файлдарды қайта оқу қажет болғанда жауап уақытын ұзартуы мүмкін, бірақ интерактивті бағдарламалардың жауап беру жылдамдығын арттырады, себебі олар суық беттерді қайта айырбастау қажеттілігін азайтады. Айырбастау, сонымен қатар, көптеген кездейсоқ жазуларды қамтитындықтан, HDD-лерді қосымша баяулатуы мүмкін, ал SSD-лерде мұндай мәселелер жоқ. Әрине, әдепкі мәндер көптеген жұмыс жүктемелерінде жақсы жұмыс істейді, бірақ десктоптық және интерактивті жүйелер күтілетін кез келген тапсырма үшін параметрді төмендетуді қажет етуі мүмкін, ал пакеттік өңдеу және аз интерактивті жүйелер оны арттыруды қажет етуі мүмкін.

Тарату өлімі

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

macOS

macOS бірнеше ауыстыру файлдарын пайдаланады. Стандартты (және Apple ұсынған) орнату оларды жүйелік бөлімге орналастырады, алайда оларды жеке бөлімге немесе құрылғыға орналастыру мүмкіндігі де бар.

AmigaOS 4

AmigaOS 4.0 жадты бөлу және физикалық жадты дефрагментациялау үшін жаңа жүйе енгізді. Ол әлі де дефрагментацияланбайтын жалпы адрес кеңістігін пайдаланады. Бұл жүйе, жадты бөлудің "slab" әдісіне және ауыстыруға мүмкіндік беретін беттік жадқа негізделген. Беттік жад AmigaOS 4.1-де іске асырылды, бірақ егер барлық физикалық жад толып кетсе, жүйе тоқтап қалуы мүмкін. Ауыстыру жады кез келген уақытта қосылып немесе өшірілуі мүмкін, бұл пайдаланушыға тек физикалық RAM-ды пайдалануды таңдауға мүмкіндік береді.

Өнер көрсету

Виртуалды жадты операциялық жүйенің резервтік сақтағышы, әдетте, оперативті жадтан (RAM) бірнеше есе баяу болады. Сонымен қатар, механикалық сақтау құрылғыларын қолдану кешігуге алып келеді, мысалы, қатты дискіде бірнеше миллисекунд. Сондықтан, мүмкін болған жағдайда, ауыстыруды (swapping) азайту немесе жою қажет. Кейбір операциялық жүйелер ядроның шешімдеріне әсер етуге арналған параметрлерді ұсынады. Linux /proc/sys/vm/swappiness параметрін ұсынады, ол орындалу кезіндегі жадты ауыстыру мен жүйелік бет кэшінен беттерді шығару арасындағы тепе-теңдікті өзгертеді. Windows 2000, XP және Vista DisablePagingExecutive тіркелім параметрін ұсынады, ол ядролық режимдегі код пен деректердің ауыстырылуға жарамдылығын бақылайды. Мейнфрейм компьютерлері беттерді және ауыстыруды сақтау үшін жиі іздеу уақытын жою мақсатында трактің әр басына дискілерді немесе барабандарды пайдаланады, сондай-ақ айналу кешігуін азайту үшін бір құрылғыға бірнеше параллель сұрау жіберуге мүмкіндік беретін технологияларды қолданады. Флэш-жадтың өшіру-жазу циклдарының саны шектеулі (флэш-жадтың шектеулеріне қараңыз), ал бір рет өшірілетін ең кішкентай дерек көлемі өте үлкен болуы мүмкін (мысалы, Intel X25 M SSD үшін 128 КБ), бұл көбінесе бет өлшемімен сәйкес келмейді. Сондықтан, флэш-жадты жад тапшылығы болғанда ауыстыру кеңістігі ретінде пайдаланғанда тез тозуы мүмкін. Жағымды жағынан, флэш-жад қатты дискілерге қарағанда дерлік кешігусіз жұмыс істейді және оперативті жад чиптері сияқты ұшпайды. ReadyBoost және Intel Turbo Memory сияқты схемалар осы ерекшеліктерді пайдалану үшін жасалған. Көптеген Unix-ке ұқсас операциялық жүйелер (мысалы, AIX, Linux және Solaris) өнімділікті арттыру үшін ауыстыру кеңістігі үшін бірнеше сақтау құрылғыларын параллель қолдануға мүмкіндік береді.

Айырбастау кеңістігінің көлемі

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

Физикалық және виртуалды адрестік кеңістіктің өлшемі

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

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

Көптеген жүйелерде процестің виртуалды адрестік кеңістігінің мөлшері қолданыстағы негізгі жаддан әлдеқайда артық. Мысалы: CPU-ны негізгі жадқа қосатын адрестік шина шектеулі болуы мүмкін. i386SX процессорының 32 биттік ішкі адрестері 4 ГБ көлемді адрестеуге қабілетті, бірақ адрестік шинаға қосылған 24 контакты ғана бар, бұл орнатылған физикалық жадты 16 МБ-қа дейін шектейді. Орнатылатын RAM-ның максималды көлеміне қатысты басқа аппараттық шектеулер де болуы мүмкін. Максималды жад құнына байланысты орнатылмауы мүмкін, модельдің стандартты конфигурациясында болмауы мүмкін немесе сатып алушы оның пайдалы екеніне сенбегендіктен орнатылмауы мүмкін. Кейде аппараттық архитектура I/O немесе басқа мүмкіндіктер үшін үлкен аймақтарды резервке алғандықтан, барлық ішкі адрестерді жад үшін пайдалануға болмайды.

Негізгі жады виртуалды жадымен бірдей өлшемде

Нақты n биттік адрестеуге ие компьютерде 2 адрестеуге болатын RAM блогы орнатылған болуы мүмкін. Мысалы, 4 ГБ көлемді және физикалық адресті кеңейту (PAE) мүмкіндігі жоқ 32 биттік x86 процессоры. Бұл жағдайда процессор орнатылған RAM-ның барлық көлемін ғана адрестей алады, одан артығын емес. Дегенмен, тіпті осы жағдайда да, беттеу (paging) физикалық жадтан артық виртуалды жадты қолдау үшін пайдаланылуы мүмкін. Мысалы, көптеген бағдарламалар бір уақытта жұмыс істеуі мүмкін. Олардың барлығы бірге жүйеге орнатылған физикалық жадтан көп көлемді қажет етуі мүмкін, бірақ оның бәрі бір мезгілде RAM-да болуы міндетті емес. Беттеу жүйесі қай жадты қосымша жадқа (secondary storage) жіберу керектігін тиімді шешеді, бұл орнатылған RAM-ды ең тиімді пайдалануға мүмкіндік береді. Сонымен қатар, операциялық жүйе үлкен жадты пайдалануға бағдарланған бағдарламаларға, мысалы, орнатылған RAM көлемінен асып түсетін файлдарға қызметтер ұсынуы мүмкін. Файлдың барлық бөлігі бір мезгілде процестің адрестік кеңістігіне бейнеленбеуі мүмкін, бірақ операциялық жүйе файлдың бөліктерін адрестік кеңістікке бейнелеуге және қажет болған жағдайда басқа бөлікті бейнелеу үшін оны адрестік кеңістіктен шығаруға рұқсат береді.

Негізгі жады виртуалды адрес кеңістігінен үлкен

Кейбір компьютерлерде процестің виртуалды адрестік кеңістігінен артық негізгі жад бар, мысалы Magic 1, кейбір PDP 11 машиналары және физикалық адресті кеңейтуі бар 32 биттік x86 процессорларын қолданатын жүйелер. Бұл пагинацияның маңызды артықшылығын жояды, себебі бір процесс өзінің виртуалды адрестік кеңістігінің көлемінен көп негізгі жадты пайдалана алмайды. Мұндай жүйелер көбінесе екінші пайда алу үшін пагинация техникасын қолданады: "Артық жадты" жиі қолданылатын файлдар мен метадеректерді, мысалы каталог ақпаратын, екіншілік жадтан кэшке сақтау үшін пайдалануға болады. Егер процессор мен операциялық жүйе бірнеше виртуалды адрестік кеңістікті қолдайтын болса, "артық жадты" көбірек процестерді іске қосу үшін пайдалануға болады. Пагинация виртуалды адрестік кеңістіктердің жиынтық көлемінің физикалық негізгі жадтан асып түсуіне мүмкіндік береді. Процесс tmpfs файлдық жүйесі немесе RAM дискісіндегі файлдық жүйелер сияқты жадпен сүйенетін файлдық жүйелердегі жадымен байланыстырылған файлдарда деректерді сақтай алады және қажет болған жағдайда файлдарды адрестік кеңістікке енгізіп, одан шығара алады. Процестер жиынтығы әлі де көп тапсырмалы ортада беттік оқшаулаудың күшейтілген қауіпсіздік мүмкіндіктеріне сүйенуі мүмкін. Виртуалды адрестік кеңістіктердің жиынтық көлемі әлі де қол жетімді екіншілік жад көлемімен шектеледі.