Основни механизми на операционните системи (ОС). Управление на паметта.


Категория на документа: Информатика


Тема 4
Основни механизми на операционните системи (ОС).
Управление на паметта.

Предназначени и основни функции на ОС.ОС е набор от системни програми, които поддържат ефективната работа на компютърния hardware и софтуерните приложения. Основната задача на ОС е да управлява компютърните ресурси - процесор, памет, В/И устройства, данни - други системни програми и потребителски приложения . ОС скрива hardware от крайния потребител и програмите.Основните функции на ОС са:-поддържане на потребителския интерфейс (начин на взаимодействие м/у ОС и потребител), графичен интерфейс чрез прозорци за Windows, има и команден интерфейс в DOS Prompt или Command Prompt;-колективно използване на данни (предоставяне на права за достъп);-планиране на достъпа на потребителите до общи ресурси;-ефективно реализиране на В/И операции;-възстановяване на информацията и възобновяване на работата след срив или грешки;
Основни понятия
Многозадачна работа (multitasking) -съществена характеристика на всяка съвременна ОС. Това е възможността за едновременно изпълнение на няколко задачи, при което процесора се преразпределя.Еднозадачна работа - изисква се да се завърши едната задача преди да започне изпълнението на следващата.При многозадачната работа се повишава ефективността на ОС. Има два типа многозадачност:
-пооперативна (Win 3.11) - след като дадена задача заеме процесора, той не може да й бъде отнет, т.е. задачата сама трябва да го освободи
-преемптивна (preemptive) (Win 9x, NT...) - OС може да отнема контрола върху процесра без съгласието на задачата, която го използва
Памет:
Дефиниция: Управлението на паметта е процес, чрез който компютърната система разпределя ограничен обем физическа памет между различните процеси, на които тя е необходима, същевременно оптимизирайки производителността. Общоприетата технология разчита на виртуална памет, симулираща доста по-голямо от действително достъпното адресно пространство, като се ползва резервирана област от дисковата памет.
До скоро всички аспекти на управлението на паметта се свеждаха до описанието на виртуалната памет на компютъра. Напоследък обаче по-интересна е организацията на често използваните ресурси на паметта и следващото от това повишаване на производителността.
Виртуалната памет е механизъм, създаващ чуството, че компютърът разполага с повече оперативна памет, отколкото има в действителност. Това се постига като неизползваните данни се изместват от физическата памет и на тяхно място в нея се зареждат необходимите за изпълнението на текущата операция. Компонентът на системата, който поддържа този процес се нарича мениджър на паметта (MMU - memory management unit).
Ако централният процесор поддържа виртуална памет, операционната система разпределя в различни групи (наричани адресни пространства) адресите за собствените си компоненти и за изпълняваните приложения. Не е необходимо тези виртуални адресни пространства да съответстват на адресите от физическата RAM на компютъра - за съпоставянето им отговаря MMU. Най-малкият блок памет, който може да се управлява от процесора по този начин се нарича страница и най-често е с обем 4Kb.
Централният процесор поддържа таблици на страниците, която отразява съпоставянето на виртуалните адреси и физическата памет. Тези таблици управляват също критично важни функции, свързани с регистрацията на системните ресурси. В частност те позволяват да се определи дали страницата е свързана със страница от физическата памет и ако е така, кога е изпълнено последното обръщение към нея. Ако дадена страница е представена във физическата памет, CPU с помощта на таблицата преобразува виртуалния адрес във физически.
Обикновено за реализацията на виртуалната памет MMU прилага механизма за зареждане по заявка, т.е. предприема действия само когато приложението изисква данни (например при извикване на функция от обща библиотека или при четене на голям обем данни от електронна таблица), които в този момент не са във физическата памет. Заявката се формира ако операционната система или някое приложение се опитва да се обърне към страница, която не фигурира във физическата памет (процесорът установява това с помощта на своите таблици за страниците). В такъв случай CPU генерира съобщение за изключителна ситуация, което след това се обработва от MMU.
Мениджърът на паметта използва информацията от таблиците за да намери неизползвана страница физическа памет (такава, към която скоро не е имало обръщения) и я записва в резервирана област на диска, наречена swap файл. После уведомява централния процесор за необходимостта да прочете изискваната страница от по-бавната памет (файл на диска или swap файл). Накрая MMU установява съответствието между виртуалната и физическата страница и обновява таблицата с тази информация.
С виртуалната памет компютърът изглежда така сякаш разполага с повече RAM от действителната. При достатъчно физическа памет обращенията към MMU не са чести и повече от времето е посветено на изпълнението на приложенията. При малко RAM компютърът си губи времето в пренасяне на страници между паметта и swap файла - този ефект на снижаване на производителността се нарича трашинг (thrashing). Практиката сочи, че за да бъде избегнат виртуалната памет не трябва да бъде повече от физическата умножена по 1,5. Пренасянето на страници към swap файла и от него е бавен процес, тъй като достъпа до твърдия диск е 1000 пъти по бавен от колкото до оперативната памет. Прекалено активното използване на механизма на виртуалната памет може значително да понижи общата производителност на компютъра. Тази ситуация може да се избегне по няколко начина. Една от прилаганите технологии е File mapping. При нея файловете от твърдия диск на компютъра се предават на страниците на виртуалната памет. Когато MMU реши, че трябва за прехвърли страници с код на приложение, не се прави нищо - мениджърът на паметта чете необходимите ресурси от физическата памет и кодовите страници не са необходими. С други думи, не е нужно кодовите страници да се пренасят от постоянната памет в swap файла. Когато потрябват MMU може да ги вземе направо от оригиналния файл. Технологията File mapping може да съкрати броя на необходимите за управление на паметта обръщения към твърдия диск, тъй като при нея MMU записва в swap файла само модифицираните страници с данни. Друг метод за увеличаване на производителността е виртуалната кеш памет, която ползва част от физическата памет за съхраняване на често необходими на операционната система код и данни. Тъй като операционната система отговаря за зареждането на приложенията и на файловете с данни в паметта, тя може да акумулира такъв тип контролна информация и да я ползва за работа с виртуалния кеш. Преимуществата на такава схема са, че MMU може да извлича от паметта интензивно използваните ресурси, вместо да се обръща към твърдия диск за да ги получи.
С File mapping, и с виртуалната кеш памет MMU повишава общата производителност на системата, работейки не по-усилено, а по-интелигентно.
--схема
Виртуалната памет в действие: Обработката на заявките за данни започва с анализ на адреса във виртуалната памет. MMU го търси в своите таблици, съпоставящи виртуална и физическа памет и определя дали търсените данни са в RAM или в swap файла, или пък трябва да бъдат получени от твърдия диск. След като бъдат изпълнени всички стъпки по зареждане на данните, адресът им в оперативната памет се съобщава на централния процесор. .Управление на паметта-Основни функиции на мениджъра на паметта:-виртуална организация на паметта -организация на поделената памет-защита на паметта.Виртуалната памет е възможността да се разшири логическата памет над размера на основната памет. При това адресите, към които се обръщат програмите се отделят от физическите адреси в основната паметта. Диапазонът от адреси, към които се обръщат нишките на даден процес формират т.нар. виртуално адресно пространство на този процес. Въпреки, че нишките се обръщат към виртуалните адреси те работят с реалната памет. Виртуалните адреси трябва по най-бърз начин да се преобразуват във физически като за преобразуването се използва механизъм - динамично преобразуване на адресите - това става по време на изпълнение на програмата."Изкуствено съседство" - съседните виртуални адреси могат да се преобразуват във физически адреси, които не са съседни.Виртуалната организация на паметта се базира на йерархичната организация на реалната памет. В нея се обособяват две нива:-I ниво - основната (RAM) памет - тук трябва да се намират изпълняваните нишки
-II ниво - вторична (външна) памет - тя се намира на бързи устройства с голям капацитет (твърди дискове)
Поделената памет е памет, която е достъпна за повече от един процес. Тя присъства във виртуалното пространство на няколко процеса. В Win NT поделената памет се реализира чрез т.нар. секционни обекти (блок от паметта). Тези обекти се създават и управляват от мениджъра на обектите.Чрез защитата на паметта трябва да се гарантира, че даден процес няма да обърка адресното пространство на друг процес. Защитата трябва да се осигури както за ОС така и за потребителските приложения. Това се осъществява по следните начини:
-всички общосистемни структури от данни трябва да са достъпни само в системен режим. Нишките в потребителски режим нямат достъп до тази част от паметта използвана от ОС-всеки процес има свое лично виртуално пространство, до което нишките на друг процес нямат достъп. Изключение прави поделената памет. За да се контролира достъпа до паметта преобразуването на виртуални адреси във физически се осъществява централизирано за да може да се реализира контрола върху достъпа
За да осигури защитата на поделената памет ОС поддържа списъци за достъп, които проверяват всичко когато се прави опит за достъп до поделената памет.
Ораганизация на виртуалното адресно пространство в Win NТ.
Виртуалното адресно пространство управлявано (ВАП) от Win NT се дели на:
-системно - 2GB
-потребителско - 2 GB
В Win 9x ВАП е
-1 GB системно
-1 GB поделено потребителско
-1 GB потрбителско
В системното адресно пространство се разполагат:- кода на самата ОС - не целия код, а ядрото, компомемтите на вътрешната част (мениджърите на паметта, на процесите и нишките, хардуерния абстрактен слой и драйверите на устройствата)- таблица за страниците на процесите и справочник за страниците - това са структурите от данни използвани при трансферирането на виртуалните адреси във физически- хипер пространство - работно пространство използвано от ОС за да формира виртуалното работно пространство на нов елемент- системен кеш - използва се за ускоряване на входно-изходните операции- памет резервирана за хардуерния абстрактен слой - памет резервирана за dump информация (dump - в нея се записва състоянието на системата при срив, в нейната работа)
Преобрaзуването на виртуалните адреси-Виртуалната памет се реализира чрез блоково изобразяване във физическата. При блоковото изобразяване се поддържат таблици показващи кои клетки на виртуалната памет къде се намират в дадения момент. Ако изобразяването на виртуалната памет се реализира по байтове, а не по блокове то инфомацията щеше да е прекалено обемна. Поради това е необходимо информацията да се съкрати максимално. При блоковото изобразяване са възможни два подхода:-блоковете са с един и същи размер - тогава блоковете се наричат страници и имаме странична организация на паметта -блоковете са с различен размер - тогава блоковете се наричат сегменти и имаме сегментна организацияВ някой случаи двата подхода се комбинарат като сегменти, които имат различен размер се състоят от страници с еднакъв размер.При блоковото изобразяване виртуалните адреси се състоят от два компонента N=(b,d)b - номер на блокаd - изметването в байтове от началото на блокаПри страничната организация V=(p,d)p - номер на страницата d - изметването в байтове от началото на страницата
Виртуалните адреси в Windows се състоят от три компонента:-индескс, справочник на таблиците-индекс, таблица на страниците-байтов адрес - за да получим изместването. Размера на байтовия адрес е 12 бита, а на виртуалната памет в Windows е 212 бита (4к размер на виртуалната памет)Управление на виртуални страници в Windows NT-В ОС са резлизирани три стратегии за управление на страниците:-стратегия за зареждане-стратегия за разполагане- стратегия за заместване
Стратегията за зареждане определя кога се пренася страница от вторичната в основната памет (от диска в RAM паметта). За да се увеличи бързодействието трябва да се намали обема на входно-изходните операции. За тази цел в Windows се прилага стратегия за зареждане при поискване с клътеризация - заедно с текущата страница се зареждат и известен брой от нейните съседни страници.Стратегията за разполагане определя къде, на кое място, се разполага дадена страница в основната памет.Стратегия за заместване - кои страници да се изведат на диска за да се освободи място в основната памет. Най-често се използват два алгоритъма:-last recently used (LRU) - извеждане на най-дълго неизползваната страница
-first in, first out (FIFO) - страницата престояла най-дълго в основната памет. Това е по-лесния за реализиране алгоритъмСтратегията за заместване се реазлизира на две нива - глобално и локално. При локалното проверките за това коя страница трябва да се изведе се прави само в рамките на процеса. Глобалните обхващат всички страници в основната памет.При Windows имаме локална FIFO стратегия при многопроцесорни системи, а при еднопроцесорни се реализира модификация на стратегията LRU.

Еволюция
1.Нулево поколение (40-те години) Ранни системи - първите компютъри са били без ОС и всички програми са били реализирани като команди. Потребителите са програмирали на машинен език.
2.Първо поколение (50-те години) Пакетни системи - ОС за еднопрограмна (последователна) пакетна обработка. Счита се, че първата ОС-а е създадена в лабораториите на General Motors и нейната основна цел е била да се ускори прехода от една задача към друга. ОС-и от първо поколение са системи за пакетна обработка. Задачите са се обединявали в групи наречени пакети. Всяка задача е имала пълен контрол над ресурсите и след приключването на изпълнението й те се инициализират за следващата задача.-реализиране на пакетна обработка;-използване на стандартни програми за вход-изход;-автоматично преминаване към изпълнението на нова програма;-поява на средства за възстановяване след грешка (почистване на компютъра);-концепция за имената на системните файлове, с което се постига известна независимост на програмите от хардуера.
3.Второ поколение (60-те години) Мултипрограмиране и времеделене.
- подържат мултипроцесорен режим на работа и мултипроцесорна обработка.-осигурява се независимост н апрограмите от външните устройства - чрез логически имена на устройствата и логически адреси;-разработват се системи с време-деление - потребителите-програмисти директно взаимодействат със системата чрез терминали без опостредствянето на технолози и оператози. Диалогов режим;
- появяват се първите системи за работа в реално време - посредтвом компютри се управляват сложни производствени и технологични процеси.
- създаване на система за продажба на билети SABRE - за първи път се използват компютрите в търговските начинания.
- взаимодействието с потребителя се извършва в режим on-line. Повишаване бързодействието, вследствие използването на интегрални схеми, но и усложняване на архитектурата. Развиват се апаратните средства за прекъсване, за настройка на адресите, за защита на командите. - многозадачен режим, отдалечено въвеждане на задания, диалогово въвеждане на знания.

4.Трето поколение ОС-и (60-те, средата на 70-те) ОС-и от това поколение са предназначени за компютри с общо предназначение. Характерна особеност за тези ОС-и е, че поддържат различен режим на работа (всички предходни). През този период потребителите се оказват неподготвени за предоставената им машинна мощност и много проекти завършват с неуспех. Тези ОС-и се обособяват като междинен слой между хардуера и потребителите. За описание на заданията са били използвани езици за управление на заданията, които допълнително натоварват потребителите.Основно място заема OS360 за машините на IBM System360. Архетектурата на тази ОС-а се копира от множество фирми.
Това поколение има превратно значение в развитието на ОС-и.В този период се появява и UNIX, които се приема като предвестник на четвъртотопоколение ОС-и.
5.Четвърто поколение ОС (след средата на 70-те )



Сподели линка с приятел:





Яндекс.Метрика
Основни механизми на операционните системи (ОС). Управление на паметта. 9 out of 10 based on 2 ratings. 2 user reviews.