Жадыны қорғау. Виртуалдық жадыны ұйымдастыру


Қазақстан Республикасының Ғылым және Жоғары білім министірлігі

Қ. И. Сатбаев атындағы Ұлттық Техникалық Университеті

Есептеу техника кафедрасы

Б А Я Н Д А М А

Тақырыбы: ЖАДЫНЫ ҚОРҒАУ. ВИРТУАЛДЫҚ ЖАДЫНЫ ҰЙЫМДАСТЫРУ.

Қабылдаған: Төлегенова А. С.

Орындаған: Назаркулов Т. М.

Наурызбаев Қ. С.

Алматы 2005

Мазмұны

Кіріспе . . . 3

1. Жадыны қорғау . . . 4

2. Өнімділік түсініктері . . . 7

3. 1. Виртуалдық жадыны ұйымдастыру . . . 9

3. 2. Мекендік кеңістік . . . 10

3. 3. Беттерді аудармаластыру . . .

Қорытынды . . .

Кіріспе.

Көптеген стратегиялық шешімдер операциялық жүйе деңгейінде сияқты аппараттық деңгейде қайталанады. Мультипрограммалық режимде негізгі шарттардың бірі сақтауды қамтамасыз ету болып табылады. Бір рет қолданылатын операциялық жүйе сияқты файлдық жүйені қарастырайық. Бұл жағдайда мәліметтерді сақтау мәселесі болмайды, себебі осы операциямен жұмыс істеуші адам барлық файлдар иесі болып табылады. Бір рет қолдану жүйесінде мысалы, MS-DOS немесе Window’s 95. Машинаны жүктеп басқа пайдаланушының жұмысын қамтамасыз етеді. MS-DOS мультипрограммалау тәртібінде жұмыс істей алады, бірақ жеткі-

ліксіз, себебі бір үрдістегі қате көрші үрдістің және операциялық жүйенің өшіп қалуына алып келеді. Сондай-ақ Window’s 95 опера-циялық жүйесінде көптеген пайдаланушылар жұмыс істей алады, бірақ бұл жұмыс тиімді емес, себебі бұл операциялық жүйе барлық сақтау құқықтарына ие емес. Соныменен көп қолданылатын жүйе санкцияланбаудан фқпаратты сақтауды қамтамасыз етеді. Нгізінде, сақтау мәселесі файлдық жүйемен ғана байланысты емес. Операциялық жүйе барлық жерде мәліметтерді сақтау қабілетіне ие: бұл файлдар, үрдіс және қорлар.

Мұнда назарға осы фактке қарапайым, себебі файлдар үшін едәуір критикалық нүкте. Жедел жадыда орналасқан мәліметтер әдетте тегергіш жинақтаушы ролін атқаратын үшінші жадыда немесе екінші сақтау жабдықтарында орналасады. Үшінші жадыға жету уақыты операциялық жүйеге жету уақытынан бірнеше рет жоғары және операциялық жүйенің белсенді әрекет етуін талап етеді.

1. Жадыны қорғау

API-ды NT атқарушы жүйесінің сыртына шығарудың нәтижесінде

“нағыз” ОЖ-нің семантикадан және әртүрлі АРІ-дың талап етілетінережелерінен нақты бөлінуіне қол жеткізілді. Қосымша пайдасы негізінде мұндай құрылым Windows NT-дың басқа негізгі мақсатына қол жеткізуге мүмкіндік туғызады: ол АРІ ортасын қолданушы қосымшаларынан, ал NT атқару жүйесін АРІ орталарынан қорғайды.

OS/2-ішінде және 16-разрядты Windows жүйесінде іске асыру үшін DLL моделі қолданылады. Бұл модельде АРІ, бір немесе қосылып қолданылатын, байланысуы мен жүгінуі қарапайым процедураларды шақыру нәтижесінде жүзеге асатын қолданбалы программалар арқылы іске асады. Жүйе атқарылатын программаның бейнесін, атқару кезінде бейне құрамында байланысып қолданылатын DLL сегменттеріне сілтемелер болуы үшін модефикациялайды.

1-сурет. АРІ-ды іске асыру үшін қолданылатын DLL моделі

Байланысып қолданылатын DLL сегменттері

Windows пен OS/2 ОЖ-де DLL әр түрлі қолданылғаныменен екеуінің нәтижесі бірдей: DLL-ды қолданатын әрбір қосымша барлық қосымшалар қолданатын мәліметтерді модификациялай алады. Бұндай жағдай Windows

NT ОЖ-де тиімсіз, өйткені тұрақтылық және қорғалу аса маңызды талап болып табылады. Қолданбалы программаның ОЖ немесе басқа да программаға негативті әсер ету мүмкіндігі болмауы керек. Мәселен, Windows коды экранда кескінделетін терезелер санын қадағалайды. Егер де бұл мәліметтер қолданушы программасымен бүлінген болатын болса, онда Windows қателермен жұмыс істеп кетуі мүмкін, ал бұның нәтижесінде атқарылып жатқан қосымшалардың тоқтатылуы, тіптен бүлінуі де мүмкін.

Windows NT DLL-ды қолданудан бас тартпайды, дегенімен оны қолданудың тәсілі OS/2-де және Windows-та кодты сақтау проблемасы және ОЖ-дегі мәліметтерді қолданушы режиміндегі қосымшаларғақол жетерліктей болмауы керек.

Тұтынушы- Windows NT-дың солтүстік моделі жадыны қорғау проблемасының шешілуіне шейін ұзақ жол кешті. Әрбір қорғалған подсистема жеке мекен-жай кеңістікті үрдіс ішінде атқарылады. Подсистемаға қатынас құру үшін қосымша хабарлама жіберуі қажет. Сервер, хабарламаны қабылдағаннан кейін, оның барлық параметрлерін тексеріп, мүдделі функцияны орындап, оның нәтижесін шақырушы программаға жібереді. Мұндай процедураны қолданып, шақырушы программа подсистеманың мекен-жай кеңістігіне ешқашан да тікелей қатынас құра алмайды. Подсистеманың қолдайтын кез келген глобалды мәдіметтері тек сол подсистеманың өзіне ғана қатысты болады.

Алғаш қарағанда, Windows NT-ге арналған қосымша серверге хабарлама жіберуді АРІ функциясын шақырудың орнына қолданатындай қылып жазылған болуы керек дегенкөзқарас тууы мүмкін, бірақ ол олай емес. Қосымша баяғысынша DLL -мен байланысқан. Әрбір DLL өшіргіш(заглушка) деп аталатын АРІ функциясының хабарламаға айналдырып, оны сәйкес серверге жіберетін, АРІ-дың кіру нүктелерін құрайды. Сервер функцияларды орындап және LPC арқылы нәтижелерін DLL кодына қайтарады. DLL қарапайым тәсілмен, қолданбалы бағдарламалаушыға көрінбейтіндей етіп, қолданбалы программаға нәтижелерін қайтарады. 2-суретте бұл көрініс Win32 подсистемасын мысалға ала отырып көрсетілген. Басқа да қорғалған подсистемалар үшін бұл механизм дәл сол принциппен жұмыс істейді.

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

Бұдан басқа, подсистемалар - қолданбалы режимді қосымшалар болғандықтан, олар NT атқарушы жүйесінің мәліметтерін өзгерте алмайды немесе ОЖ-дің ішкі функцияларын шақыра алмайды. Оларға NT атқару жүйесіне қол жеткізуге болатын тек қана бір жол бар - бұл жүйелік сервистерді шақыру. Күрделі құрылымды сақиналар да, басқа да аса ірі қорғау механизмдері де қажет емес. Тұтынушы-солтүстік модель подсистемалар мен ОЖ-дің кейбіреулерінің арасындағы ядро режимінде атқарылатын бөлінуді қамтамасыз етеді. Қорыта келе, тұтынушы-солтүстік моделінің соңғы артықшылығы- көптеген АРІ орталарын қолдайтын, подсистеманың бір мезгілде жұмыс істеуін қамтамасыз ету мүмкіндігі. Әрбір подсистема - бұл жай, параллелизм дәрежесін арттыратын, ағындардың әрбіреуі бөлек-бөлек орындалатын, қолданбалы режимдегі үрдіс.

Көрсетілген артықшылықтардың бәрі тұтынушы-солтүстік моделін Windows NT жобасы үшінлайық шешім ретінде қабылдауға әкелді

2-сурет. Windows NT-дегі АРІ DLL моделі.

АРІ Win32 функциясын

шақыру

Win32 DLL

Параметрлер бумасы және хабарлама

Жіберу үшін NT-ді шақыру

Қолданушы режимі

NT атқарушы жүйесі Ядро режимі

2. Өнімділік түсініктері

Бәрінен көрі Windows NT үшін тұтынушы-солтүстік модельін таңдауда өңдеушілерді өнімділік мазаландырды. АРІ функцияларын немесе жүйелік серверді дәстүрлі ОЖ-де шақыру, жалпы жағдайда, тұтынушы-солтүстік кон-

фигурацияларында АРІ-шақыру кезіндегі тиімсіз шығындардың аздығымен байланысты.

Монолитті және қатпарлы ОЖ-рі өздерінің ядро режиміндегі жүйелік сер-

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

Дегенімен, Windows NT-да Win32 қосымшасы АРІ Win32-ні шақырғанда, ОЖ-нің ядро режимінде жұмыс істемейтін бөлігі қосылады. Егер қайта 2-суретке қарайтын болсақ, Win32 DLL-нің жүйелік сервис NT-ды хабарлама жіберу үшін шақыратынын көруге болады. Сервис хабарламаны серверге жеткізіп, сервердің оны қабылдауы мен өңдеуін және жауап қайтаруын күтеді. Сервердің хабарламаны қабылдап, оны өңдеуі үшін контексттің ауыстырып қосылуы (context switch) орындалуы қажет, олай болса NT атқарушы жүйесі келесі әрекеттер тізбегін орындауы қажет :

  1. тұтынушы ағынындағы (ағындағы процессор күйі) контекстті сақтау
  2. орындалу үшін сервер ағынын таңдау және оның контекстін жүктеу
  3. сервер ағынын қолданып Win32 АРІ функциясын орындау
  4. сервер ағынының контекстін сақтау
  5. тұтынушы ағынының контекстін жүктеу және АРІ функциясының нәтижелерін өңдеу

Қолданылатын аппараттық құралдардың қолданылуына байланысты, контексттің ауыстырылып қосылуы жүйелік шақыру кезінде артығырақ немесе кемірек қосымша тиімсіз шығындардың пайда болуына әкеліп соқтырады. Осылаиша, сервердің жүзеге асырған АРІ функциясын шақыратын ағын, теория жүзінде АРІ функциясының жүйелік қақпан ретінде жүзеге асырылудан көрі, әрбір осындай шақыру кезінде өнімділік жоғалтумен соқтығысады. Өнімділік Windows NT табысы үшін аса қажет нәрсе ретінде саналып келгендіктен, бұл мәселе жобалаушылардың мұқият қарауында болды.

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

рын арнайы реттеу секілді, кейбір оптимизация әдістерін қолдануға болады. MIPS процессорларының ауыстырылып қосылу кодтарын жазған Дэйв Катлер, оны CISC-Intel процессорлары үшін қайта құрастырып жазған Брайан Уилман мен Ши Линг Цонг, бұл істі жақсы білгендіктен программа арқылы жүзеге асыруға болатын оптимизациялаудың бәрін ойлап тапқан.

Серверге және тұтынушыға қайта өту кезінде өнімділікке әсер ететін келесі фактор: хабарламаны беретін жүйелік құрылғы. LPC

механизмін жобалап іске асырған Стив Вуд, LPC - ні мәліметтерді қайтарудың икемді қасиеттерімен қамтамасыз етті. Мысалы, LPC

қысқа хабарламаларды жіберудің оңай жолы мен ұзақтарын жіберудің тиімді жолын көрсетіп отыр. Хабарламаларды жіберудің 3-ші жолы Win32 подсистемасының өнімділігін арттыру үшін жасалған, бұл өте маңызды қажеттілік, себебі, бұл подсистема бүкіл қолданушылық енгізуді өңдейді және Windows NT-дегі бүткіл графикалық шығаруды генерациялайды.

3. 1. Виртуалдық жадыны ұйымдастыру

Бұған дейін біз NT атқарушы жүйесінің виртуалдық жады диспетчерімен қамтамасыз етілетін виртуалдық жадының және қолданушы режимінің негізгі принциптерін қарастырған болатынбыз. Келесі қарастыратын бөлімдеріміз ішкі сұрақтарға - қолданушы режимінің кодына көрінбейтін, бірақ виртуалдық жадының өнімділігіне әсер ететін мәліметтер құрылымдарына және алгоритмдеріне арналған. Алдымен үрдістің виртуалдық мекендік кеңістігінің құрылымы сипатталады, кейіннен беттерді аударыстыру механизмдері мен үрдістің жадыны сәйкесінше қолдану ережелері сипатталады. Одан кейін виртуалдық жадының компонненттері қолданатын екі негізгі мәліметтер құрылымы сипатталады. Ең соңында мультиүрдісті өңдеу мен виртуалдық жадының жүйе өтімділігінің жалпы сұрақтары қарастырылады.

3. 2. Мекендік кеңістік

Виртуалдық жады құрылымы виртуалдық мекендер жиынынан тұрады. Әрбір виртуалдық жадыда физикалық жады болуы керек. Виртуалдық жадыны жүзеге асыру үшін физикалық жадыда виртуалдық мекен көрінісінің басқару механизмі болуы керек.

Қосымша қызметті өзара әрекетті виртуалды жады диспетчері талаптар арқылы және болып жатқан жағдайға байланысты талап етілген функциялармен жүргізіледі. Жағдайлар келесі түрлерге бөлінеді:

1-жағдай. Үздік үрдісті ескеру.

2-жағдай. Жедел жадыда талап етілетін бетке назар аудару.

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Жадыны қорғау. қатынас құру функциялары. Виртуалды жадыны ұйымдастыру. беттерді аударыстыру стратегиялары
Виртуалды жадыны ұйымдастыру
Жады
Операциялық жүйелердің даму бағыттары. Операциялық жүйенің функциялары және міндеттері
Процессорлық жүйелер
Windows операциялық жүйесінің тарихы
Жүйелік блок
Linux операциялық жүйесінің функциялары
Дербес компьютерлердегі жадыны басқару
Жадыны қорғау
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz