Т
АРАУ
3
ОПЕРАЦИЯЛЫҚ ЖҮЙЕЛЕРДІҢ
ЖАДЫН БАСҚАРУ
ЖАЛПЫ ТҮСІНІК
Көбінесе оперативті жады деп аталатын жады кез-келген есептеуіш
жүйесінің маңызды ресурстарының бірі. Сол себепті жадыны
басқаратын қосалқы жүйе операциялық жүйенің маңызды қызметі.
Бағдарламалар есептеуіш жүйенің процессорымен орындалуы үшін
бағдарламаның орындалатын коды негізгі жадыға жүктелген болуы
тиіс.
Негізгі жадыда деректердің өңдеудің жылдамдығы әдетте
бағдарламаларды сақтайтын сыртқы жинақтауыштарда деректерді
өңдеу жылдамдығынан айтарлықтай тез. Сол себептен операциялық
жүйені жасау барысында жүктеме процесін және бағдарламаның
орындалуын әр орындалып отырған процеске оперативті жадыдан
жеткілікті орын жететіндей оңтайландыруға тырысады. Бұл
біріншіден ағымдағы процестің орындалуын жылдамдатады, екіншіден
операциялық жүйенің басқа процестерінің жұмысын баяулатпайды.
Операциялық жүйе оперативті
жадының шектелген көлемін
бірнеше мақсатта (процестерге) бөлуі қажет болған кезде мәселелер
туындайды. Сонымен қатар, әрқайсысы ағымдағы есептеулерді
орындауға жеткілікті бөлігін ғана алады, бірақ ең аз жады бағдарлама
жұмысына қажет. Тек тапсырманың белсенді емес бөлігі ғана сыртқы
жадына орналасады да, ол жерден қажет болған жағдайда алынады.
Осыдан операциялық жүйенің жадын басқару жүйесін жасағанда
қажет негізгі мақсаттар туындайды:
1) Негізгі жадыға
қолжетімділік уақытын қысқарту;
2) Процестерге қолжетімді негізгі жадының көлемін арттыру;
3) Негізгі жадыға процестер қолжетімділігінің тиімділігін арттыру.
Жадыны басқару жүйесінің шешетін мәселелері келесідей:
1) Процестерге негізгі жадыны бөлу;
2) Процестің адрестік кеңістігін жадының белгіленген негізгі
алаңында көрсетеді;
3) Негізгі жадының қолжетімді көлемін пайдалана отырып
деректерге қолжетімділік уақытын азайту.
Жадының динамикалық бөлінуі шартында осы мәселелерді шешу
үшін жады менеджері процес үшін бөлінетін барлық жады
блоктарының тізімін қолдап отыруы қажет.
Бұл тізім деректердің
тізіммен байланысқан кез-келген құрылымы көмегімен сүйемелдене
алады. Ең қарапайым жағдайда бұндай құрылым жады блоктарының
дескрипторларын көрсетуі мүмкін, әр дескриптор келесі сәйкес жады
блогына және оның көлеміне сілтеме жасайды. Жады менеджері бұл
құрылымның тұтастығын қамтамасыз ету мақсатында жадыны басқару
ережелеріне сай белгілі бір ретпен тізімнен элементтерді алып
тастайды немесе керісінше тізімге кіргізеді. Процестер арасында жады
көлеміне көбірек ие болу мақсатымен өзара бәсекелестікке түсетін
жадыны бөлудің бірнеше стратегиялары бар:
1) «ең қолайлы аймақ» стратегиясы негізінде бөлу; «ең
қолайлы
аймақ»;
2) «қолайлылығы төмен аймақ» стратегиясы негізінде бөлу;
3) «бірінші қолайлы аймақ» стратегиясы негізінде бөлу;
4) «келесі қолайлы аймақ» стратегиясы негізінде бөлу.
Бірінші стратегияны пайдалану кезінде менеждер процеске бос
жадының көлемі талап етілген көлемнен асып түсетін қол жетімділігі
ең аз блогын бөледі. Бұл стратегия жадының барлық бос блоктар
тізімінен көлемі бойынша сәйкес келетін
блок іздеуге көп уақытты
талап етеді. Оның шешімі жады блоктарының тізімін көлем бойынша
саралау. Ең үлкен ұқсастық қағидасы бойынша жадыны ерекшелеу
тәсілімен байланысты өте үлкен мәселе бар. Осы стратегияны
пайдаланған кезде жадының пайдалануға көлемі аз көптеген бөліктері
қалып қояды да олар мүлдем пайдаланылмай қалады.
Бұл жағдай
жадты фрагменттеу деп аталады және осы ресурсты текке шығындауға
әкеледі. Жадының фрагменттелуіне қатысты мәселе жадыны басқару
тәсілдерінің бәрінде бар, бірақ «ең қолайлы аймақ» стратегиясында көп
деңгейде орын алады. Фрагменттеуді болдырмау үшін сұралатын жады
көлемінен әлдеқайда көп көлем бөлуге болады. Мысалы, әр сұралатын
блок көлемін белгілі бір өлшемге теңестіруге (әдетте
екі дәрежесіне
тең) және үлкен көлем бөлуге болады. Дегенмен бұл жерде жадының
фрагменттеу мәселесі шешілмейді, бұл тәсіл тек фрагменттеуді
жасыруға мүмкіндік береді.
Кемшіліктерге қарамастан,
жадты фрагменттеуді азайтуға
«қолайлылығы төмен аймақ» стратегиясы көмектеседі.
Бұл тәсілдің
мәні әрқашан жадының ең үлкен бос алаңы ізделеді де, дәл сол алаң
қолдануға беріледі. Бұл стратегияның негізгі түйіні мынада: бірінші
жағдайда фрагменттеуге алып келетін пайда болған жадының