Пайдаланылған әдебиеттер 1. А. Б. Медешова, Д. Ғ. Ғадуллаев Компьютер архитектурасы: Оқулық. – Алматы: ЖШС РПБК «Дәуір», 2011
2. В. Яворский, А. Әміров. Операциялық жүйелер: Оқу құралы. - Астана: Фолиант, 2008
15-Дәріс Тақырыбы: Жадыны басқару. Жоспар: Жадыны бірігіп қолдану
Жадыны қорғау
Жады қорының менеджері
Жадыны бөлу стратегиялары
Компьютердің есте сақтау құрылғысы ең аз дегенде екі деңгейге бөлінеді: негізгі жады (бас, оперативті, физикалық) және ішкі жады.
Негізгі жады – бірбайтты реттелген ұяшық, ол ұяшықтың әрқайсысының нөмері (адресі) бар. Процессор негізгі жадыдан команданы алады да оны кодтайды, содан кейін оны орындайды. Командалар орындалу үшін тағы да негізгі жадыдағы бірнеше ұяшықтарға сұраныс жасау керек болады. Негізгі жады жарты өткізгіш технологиясын қолдану арқылы дайындалады және өзінің құрамындағыны токтан ажыратқан кезде жоғалтады.
Ішкі жадыны – (бұл дискінің негізі) көптеген байттардан құралған кеңістіктің бірөлшемді сызықтық адресі ретінде қарастыруға болады. Оның оперативті жадыдан айырмашылығы ол токқа тәуелді емес, үлкен сиымдылығы бар және негізгі жадыны кеңейту кезінде қолданады.
Көпдеңгейлі схеманы былайша қолданады. Жадының жоғарғы деңгейінде орналасқан ақпарат үлкен нөмерлі деңгейде сақталады. Егер процессор керек ақпаратты 1-ші деңгейден таба алмаса, онда ол келесі деңгейден іздей бастайды. Керек ақпаратты тапқаннан кейін ол тезірек орындалатын деңгейге беріледі.
Логикалық жады.Ұяшықтың сызықтық жиыны түріндегі жадының аппаратты ұйымдастырылуы программистердің программа мен деректерді сақтауды ұйымдастыруымен сәйкес келмейді. Көпшілік программалар кеңістіктегі сызықтық адрестерді түзе отырып, бір-біріне тәуелсіз модуль жиынымен сипатталады. Бірақ модульдер әр аймақтағы жадыға әсер етеді және әр түрлі қолданылады.
Бұл көзқарасты қолдайтын жадыны басқару схемасы сегментация деп аталады. Сегмент – ішінде сызықтық адресті қолдайтын арнайы тағайындалатын жады аймағы. Сегмент процедураға, массивке, стекке және скалярлы шамаға ие болады, бірақ аралас типтегі ақпарат жоқ.
Алғашында жады сегменті программа кодтары фрагменттері (мәтіндік редактор, тригонометриялық кітапхана) әр процесс өзінің кеңістіктегі адресіне ақпараттың көшірмесін сақтау керек. Бұл бірнеше процесстер жадыны көрсететін жүйеде ақпаратты сақтайды жадының жеке бөлігі сегмент деген атқа ие болады. Жады, осылайша, сызықтық болмайтын болды және екі өлшемдіге айналып кетеді. Адрес екі компоненттен тұрады; сегмент нөмерінен, сегмент ішінде араласудан тұрады.
Оперативті жадыда нақты болатын адрестен процесс қатынас жасайтын адрестің айырмашылығы үлкен. Әрбір жанама жағдайда программа адресін қолдану әр түрлі адреспен беріледі. Мысалы, бастапқы мәтіннің адресі символды болады. Компилятор осы символды адрестерді араласқан адрестермен (модульдің басынан n байтты) байланыстырылады. Мұндай адрес логикалық (кеңістіктегі жады жүйесінде ол виртуальды деп аталады) адрес деп аталады. Барлық логикалық адрестердің жиынтығын кеңістіктің (виртуальды) логикалық адресі деп атайды.
Адрестерді байланыстыру. Кеңістіктің логикалық және физикалық адресі ұйымдастыру жағынан да, көлем жағынан да бір біріне сәйкес келмейді. Кеңістіктің логикалық адресінің ең жоғарғы көлемі, өлшемі процессор разрядын анықтайды және қазіргі жүйеде кеңістіктің физикалық адресінің өлшемін көбейтеді. ОЖ және процессор негізгі жадыда сәйкесінше ағымдағы программаның орналасуы нақты физикалық адрестегі программа кодына сілтемені көрсететін қабілеті болу керек. Адрестің мұндай түрі адрес трансляциясы немесе адресті байланыстыру деп аталады. Физикалық программа операторы көмегімен жасалған логикалық адресті байланыстыру оператордың орындалуына дейін немесе оның орындалып жатқан кезінде іске асырылуы керек.
Жадыны қолдануда тиімді бақылаумен қамтамасыздандыру үшін ОЖ келесі функцияларды орындау керек:
- процесстің кеңістіктегі адресінің физикалық жадының белгілі бір аймағына әсері;
- бір-бірімен бәсекелес (конкурент) процесстер арасында жадының бөлінуі;
- процесстің кеңістіктегі адресіне қатынас жасауын бақылау;
- оперативті жадыда орын болмаған кезде ішкі жадыдан процесстердің түсуі (бүтіндей немесе біртіндеп);
- бос қалған және бос емес жадыны есепке алу.
Беттік жады (Страничная память). Ең қарапайым және ең көп тараған беттік жадыны ұйымдастыру, (paging) кеңістіктің логикалық адресі сияқты, физикалық берілетін блок жиынынан немесе өлшемді бірдей беттерден тұрады. Сонымен қатар лгикалық бет (page) пайда болады, ал физикалық жадыдағы сәйкес бірліктер бет кадрлары (страничные кадры) (page frames) деп аталады. Беттер (және бет кадрлары) бекітілген ұзындыққа ие болады. Әрбір кадрда бір бет деректер болады. Мұндай ұйымдастырылуларда сыртқы (фрагментация) үзінділеу болмайды және процесстің соңғы бетінің бөлігі шектелген.
Бет кестесі (page table) процессордағы арнайы регистр көмегімен адрестеледі және логикалық адрес бойынша кадр нөмерін анықтауға мүмкіндік береді. Бұл негізгі тапсырмадан басқа да, бет кестесіндегі жолда жазылған атрибуттар көмегімен белгілі бір бетке қатынауға және оны қорғауға бақылау ұйымдастыруға болады.