
- •Основні поняття та визначення концепцій ос
- •2. Основні можливості файлової системи ntfs
- •2. Структура тому з файловою системою ntfs
- •1. Огляд і характеристика операційних систем
- •2. Основні відмінності fat і ntfs
- •1. Узагальнена структура програмного забезпечення обчислювальних систем
- •2. Захист інформації в комп’ютерних системах засобами ос
- •1. Класифікація операційних систем
- •2. Можливості файлової системи ntfs по обмеженню доступу до файлів і каталогів
- •1. Основні принципи побудови операційних систем
- •2. Файлові системи операційних систем класу Unix
- •1. Захист інформації в комп’ютерних системах засобами ос.
- •2.Керування процесами, потоками, їх планування
- •1.4. Стани процесів
- •1.Планування процесів
- •2. Захист файлів в операційних системах класу Unix
- •1. Дисципліни планування - вимоги, показники, класифікація
- •2. Міжпроцесова взаємодія
- •6.2. Базові механізми міжпроцесової взаємодії
- •1. Базові дисципліни планування fcfs, rr, spn
- •2.Системні засоби взаємодії процесів
- •Віртуальні переривання або сигнали
- •1. Базові дисципліни планування psjn, hprn
- •2. Дужки критичних секцій.
- •1. Базові дисципліни планування srr, mlfb
- •2. Віртуальні переривання або сигнали. Віртуальні переривання або сигнали
- •Фіксовані розділи пам'яті.
- •2.Модель віртуальних комунікаційних портів
- •Односегментна модель пам'яті.
- •Загальні області пам'яті.
- •Багатосегментна модель пам'яті.
- •Сторінкова модель пам'яті.
- •Програмні канали.
- •1.Сегментно-сторінкова модель пам'яті.
- •2.Черги повідомлень
- •Билет №21
- •Боротьба з тупиками включає три завдання:
- •Послідовне виділення
- •Залпове виділення
- •Ієрархічне виділення
- •Билет №22
Сторінкова модель пам'яті.
Сторінкову організацію пам'яті легко представити як багатосегментну модель з фіксованим розміром сегменту. Такі сегменти називаються сторінками. Вся доступна реальна пам'ять розбивається на сторінкових кадрів (page frame), причому межі кадрів в реальній пам'яті фіксовані. Іншими словами, реальна пам'ять представляється як масив сторінкових кадрів. Віртуальна адреса складається з номера сторінки і зсуву в сторінці, система підтримує таблицю дескрипторів сторінок для кожного процесу. Дескриптор сторінки в основному подібний до дескриптора сегменту, але в нім може бути скорочена розрядність поля base, оскільки в нім зберігається не повна реальна адреса, а тільки номер сторінкового кадру, а необхідність в полі size взагалі відпадає, оскільки розмір сторінок фіксований.
Проблема розміщення значно спрощується, оскільки будь-який сторінковий кадр підходить для розміщення будь-якої сторінки, необхідно тільки вести облік вільних кадрів. За рахунок цього сторінкова організація виявляється зручною навіть за відсутності свопінгу, оскільки дозволяє розмістити безперервний віртуальний адресний простір в несуміжних сторінкових кадрах. (Іноді для позначення свопінгу на рівні сторінок застосовують спеціальний термін "paging" - сторінковий обмін.) Зовнішні дірки в сторінковій моделі відсутні, зате з'являються внутрішні дірки за рахунок недовикористаних сторінок. За наявності в системі свопінгу нульове значення бита present викликає переривання-пастку "сторінкову відмову" (page falure) і підкачку сторінки в реальну пам'ять. Для обліку занятых/свободных сторінок підходить техніка бітової карти, але більшість ОС використовують як елементи карти (таблиці сторінкових кадрів) не биті, а куди складніші структури, з яких можуть складатися і багатозв'язкові списки (у тому числі і списки вільних кадрів).
Який розмір сторінки вигідніший - великий або малий? Міркування, які можуть вплинути на вибір розміру наступні:
• при малих сторінках виходять менші внутрішні дірки;
• при малих сторінках менше вірогідність сторінкової відмови (оскільки більше сторінок поміщаються в пам'яті);
• при великих сторінках менші апаратні витрати (оскільки розбиття пам'яті на великі блоки обійдеться дешевшим);
• при великих сторінках менші заголовні дірки і витрати на пошук і управління сторінками (таблиці мають менший розмір);
• при великих сторінках вище ефективність обміну із зовнішньою пам'яттю.
Програмні канали.
Програмний канал по-англійськи називається pipe (труба), і це вельми вдала назва. Канал дійсно можна представити як трубопровід пневматичної пошти, прокладений між двома процесами, як показано на рис.9.1. По цьому трубопроводу дані передаються від одного процесу до іншого. Як і трубопровід, програмний канал однонаправлений (хоча, наприклад, в Unix одним системним викликом створюються відразу два різноспрямовані канали). Як і трубопровід, програмний канал має власну ємкість: дані записані в канал, не обов'язково повинні негайно вибиратися не протилежному його кінці, але можуть накопичуватися в каналі, поки це дозволяє його ємкість. Як і трубопровід, канал працює по дисципліні FIFO: перший увійшов - перший вийшов. Зі всіх засобів взаємодії між процесами канали (pipe) краще всього вписуються в модель віртуальних комунікаційних портів. Канал для процесу практично аналогічний файлу. Спеціальні системні виклики типу createPipe, openPipe використовуються для створення каналу і діставання доступу до каналу, а для роботи з каналом використовуються ті ж виклики read і write, що і для файлів, і навіть закриття каналу виконується файловим системним викликом close. При створенні каналу для нього створюється дескриптор, як для відкритого файлу, що дозволяє працювати з ним далі, як з файлом. Канал, проте, є не зовнішніми даними, а областю пам'яті. Для каналу виділяється пам'ять в системній області, що може обмежувати ємкість каналу. Найчастіше використовуються неіменовані канали, як засіб зв'язку між батьком і нащадком. Операція створення неіменованого каналу повертає два файлові маніпулятори: для читання і для запису. Процес-предок передає ці маніпулятори процесу-нащадкові. Якщо зв'язок між предком і нащадком однонаправлений, то кожен з них закриває канал по одному з маніпуляторів. Наприклад, якщо дані передаються тільки від предка до нащадка, то предок після передачі маніпуляторів закриває канал на читання, а нащадок - на запис. Приклад встановлення такого зв'язку в ОС Unix приведений в розділі 11, у фрагменті програми командного інтерпретатора.
Билет №17