
- •Огляд і характеристика операційних систем Узагальнена структура програмного забезпечення обчислювальних систем
- •Класифікація операційних систем
- •1. По призначенню ос діляться на:
- •2. По режиму обробки даних розрізняють:
- •3. За засобом взаємодії з обчислювальною системою ос діляться на:
- •4. За основним архітектурним принципом ос діляться на:
- •1. Принцип модульності
- •2. Принцип функціональної вибірковості
- •3. Принцип генерованості ос
- •4.Принцип функціональної надлишковості
- •5. Принцип віртуалізації
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •10. Принцип забезпечення безпеки обчислень.
- •Планування процесів Дисципліни планування - вимоги, показники, класифікація
- •Базові дисципліни планування
- •Управління пам'яттю Віртуальна і реальна пам'ять
- •Фіксовані розділи
- •Односегментна модель
- •Багатосегментна модель
- •Сторінкова модель
- •Сегментно-сторінкова модель
- •Плоска модель пам'яті
- •Монопольно використовувані ресурси Властивості ресурсів і їх уявлення
- •Філософи, що обідають
- •Тупики: попередження, виявлення, розв'язка
- •Нескінченне відкладання
- •Файлові системи Структура магнітного диска
- •Файлова система fat
- •Структура завантажувального запису dos
- •Файлові системи vfat і fat32
- •Файлова система ntfs (New Technology File System)
- •Основні можливості файлової системи ntfs
- •Структура тому з файловою системою ntfs
- •Можливості файлової системи ntfs по обмеженню доступу до файлів і каталогів
- •Основні відмінності fat і ntfs
- •Файлові системи операційних систем класу Unix Структура файлової системи
- •Захист файлів
- •Системні засоби взаємодії процесів Дужки критичних секцій.
- •Віртуальні переривання або сигнали
- •Модель віртуальних комунікаційних портів
- •Загальні області пам'яті
- •Семафори
- •Програмні канали
- •Черги повідомлень
- •Література
- •Операційні системи
- •43018, Луцьк-18, вул. Львівська,75.
Сторінкова модель
Сторінкову організацію пам'яті легко представити як багатосегментну модель з фіксованим розміром сегменту. Такі сегменти називаються сторінками. Вся доступна реальна пам'ять розбивається на сторінкових кадрів (page frame), причому межі кадрів в реальній пам'яті фіксовані. Іншими словами, реальна пам'ять представляється як масив сторінкових кадрів. Віртуальна адреса складається з номера сторінки і зсуву в сторінці, система підтримує таблицю дескрипторів сторінок для кожного процесу. Дескриптор сторінки в основному подібний до дескриптора сегменту, але в нім може бути скорочена розрядність поля base, оскільки в нім зберігається не повна реальна адреса, а тільки номер сторінкового кадру, а необхідність в полі size взагалі відпадає, оскільки розмір сторінок фіксований. Проблема розміщення значно спрощується, оскільки будь-який сторінковий кадр підходить для розміщення будь-якої сторінки, необхідно тільки вести облік вільних кадрів. За рахунок цього сторінкова організація виявляється зручною навіть за відсутності свопінгу, оскільки дозволяє розмістити безперервний віртуальний адресний простір в несуміжних сторінкових кадрах. (Іноді для позначення свопінгу на рівні сторінок застосовують спеціальний термін "paging" - сторінковий обмін.) Зовнішні дірки в сторінковій моделі відсутні, зате з'являються внутрішні дірки за рахунок недовикористаних сторінок. За наявності в системі свопінгу нульове значення бита present викликає переривання-пастку "сторінкову відмову" (page falure) і підкачку сторінки в реальну пам'ять. Для обліку занятых/свободных сторінок підходить техніка бітової карти, але більшість ОС використовують як елементи карти (таблиці сторінкових кадрів) не биті, а куди складніші структури, з яких можуть складатися і багатозв'язкові списки (у тому числі і списки вільних кадрів).
Який розмір сторінки вигідніший - великий або малий? Міркування, які можуть вплинути на вибір розміру наступні:
при малих сторінках виходять менші внутрішні дірки;
при малих сторінках менше вірогідність сторінкової відмови (оскільки більше сторінок поміщаються в пам'яті);
при великих сторінках менші апаратні витрати (оскільки розбиття пам'яті на великі блоки обійдеться дешевшим);
при великих сторінках менші заголовні дірки і витрати на пошук і управління сторінками (таблиці мають менший розмір);
при великих сторінках вище ефективність обміну із зовнішньою пам'яттю.
Сегментно-сторінкова модель
З попереднього викладу повинно бути ясно, що сегментна модель пам'яті орієнтована більшою мірою на програміста, а сторінкова - на ОС. Програмістові зручно компонувати команди і дані свого процесу в блоки змінної довжини (сегменти). ОС же зручніше управляти пам'яттю, розбитою на блоки постійної довжини (сторінки). Природним чином розвитку моделей пам'яті з'явилося об'єднання достоїнств цих двох моделей в одній - сегментно-сторінковою.
Віртуальна адреса тепер складається з трьох частин - номери сегменту, номери сторінки в сегменті і зсуву в сторінці. Апарат трансляції адрес, представлений на Малюнку 3.8, принаймні, трьохкроковий:
регістр адреси дескриптора указує на таблицю сегментів, з неї вибирається дескриптор сегменту, а з останнього - адреса таблиці сторінок;
з таблиці сторінок вибирається дескриптор сторінки, а з нього - номер сторінкового кадру;
реальна адреса виходить складанням базової адреси сторінкового кадру із зсувом в сторінці.
|
Серйозним недоліком цієї моделі є багатоступінчатість трансляції адрес. Ця проблема вирішується на апаратному рівні шляхом застосування надшвидкодіючої (зазвичай асоціативною) пам'яті для зберігання частини таблиць.
Оскільки в моделі, приведеній на рис.3.8, кожен сегмент має власну таблицю сторінок, самі таблиці сторінок можуть займати значний об'єм в пам'яті. Просте вирішення цієї проблеми представляє Windows 3.x: у системі існує єдина таблиця сторінок. Сегментна частина трансляції адреси має, таким чином, на виході адресу загалом для всіх процесів віртуальному сторінковому просторі, об'єм якого перевищує об'єм реальної пам'яті не більш, ніж в 4 рази. Подібне ж, хоча і гнучкіше і захищеніше рішення представляє VSE: система забезпечує загальний об'єм віртуальної пам'яті (до 2 Гбайт), який розбивається на розділи (до 12 статичних і до 200 динамічних), сумарний об'єм адресних просторів всіх розділів не перевищує загального об'єму віртуальної пам'яті. Простота рішення, проте, може істотно позначатися на його ефективності: по-перше, із-за обмежень на розмір віртуальної пам'яті, по-друге, із-за необхідності виділяти суміжні дескриптори в таблиці сторінок для сторінок, суміжних у віртуальній пам'яті. Тому дійсно багатозадачні системи застосовують множинні таблиці сторінок і включають пам'ять, займану таблицями сторінок, в сторінковий обмін. Витіснення і завантаження приватних таблиць сторінок проводиться або виключно самою ОС (Unix), або ОС використовує для цього наявні апаратні засоби (так, ОС, орієнтовані на Intel-Pentium, використовують каталоги сторінок).
З погляду програміста, він має справу з сегментами, API управління пам'яттю - такий же, як і в сегментній моделі. Сторінкова частина адресації для процесів абсолютно прозора, та зате ця частина використовується ОС для ефективної організації свопінгу.