- •Особливості апаратних платформ
- •Особливості областей використання
- •Особливості методів побудови
- •Моделі операційних систем
- •Стратегії планування процеcу. Основні поняття планування процесів
- •4.3 Планування в інтерактивних системах
- •Адресний простір процесу
- •Методи розподілу пам'яті з використанням дискового простору Поняття віртуальної пам'яті
- •Розподіл пам'яті розділами змінної величини тобто динамічними розділами.
- •Переміщувані розділи
- •Сторінковий розподіл
- •Сегментний розподіл
- •Сторінково-сегментний розподіл
- •1 Алгоритми заміщення сторінок
- •2. Алгоритм nru (Not Recently Used - сторінка, що не використалася останнім часом)
- •3. Алгоритм fifo (перша прибула - перша вивантажена)
- •5. Алгоритм "годинник"
- •6. Алгоритм lru (Least Recently Used - що використалася найрідше)
- •8. Алгоритм wsClock
- •Устрій віртуальної пам'яті
- •Структура мережної операційної системи
- •Модель osi. Основна термінологія
- •Передача даних у мережі
- •Поясніть принцип розподілу мережених адрес.
- •Перелічіть класи мереж.
- •Поясніть призначення та принцип дії транспортних протоколів.
- •Основні характеристики файлової системи fat
- •Фундамент fat32
- •Деталі форматування
- •Стабільність файлової системи
- •Основа ntfs
- •Основні характеристики
- •Структура розділу
- •Метафайли
- •Файли і каталоги
- •Конфіденційність і схоронність даних
- •Файли необхідні для успішного завантаження Windows 2000/хр
- •Захист системи, від несанкціонованого відновлення паролю
Особливості методів побудови
До таких базових концепцій відносяться:
Способи побудови ядра системи - монолітне чи ядро мікроядерний підхід.
Побудова ОС на базі об’єктно-орієнтованого підходу
Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатка, розроблені для декількох ОС. Багато сучасних операційних систем підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS/2 чи хоча б деякої підмножини з цього популярного набору.
Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, що дають можливість користувачу представляти і сприймати мережу у виді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику вилучених процедур (RPC) для прозорого розподілу програмних процедур по машинах
Моделі операційних систем
Модель операційної системи можна представити як каркас, що зв'язує в єдине ціле всі засоби і сервіси, забезпечувані системою, з одному боку, і виконувані нею задачі з іншої.
Монолітна модель операційної системи принцип організації системи, як набору процедур, кожну з який може викликати будь-як користувальницька процедура
Пошарова модель операційної системи поділ її на модулі, нашаровані один поверх іншого. Кожен модуль надає набір функцій, що можуть викликатися іншими модулями
Модель клієнт-сервер Ідея його складається в поділі системи на кілька процесів, кожний з який реалізує один набір сервісів: наприклад, розподіл пам'яті, створення чи процесів планування процесів. Кожен сервер виконується в режимі користувача, завісься годину перевіряючи, чи не звернувся до нього за обслуговуванням який-небудь клієнт. Клієнт, яким може бути або інший компонент операційної системи, або прикладна програма, запитує виконання сервісу, посилаючи серверу повідомлення. Ядро операційної системи, що виконується в режимі ядра, доставляє повідомлення серверу. Тієї виконує запитувані дії, після чого ядро повертає клієнту результати у виді іншого повідомлення. Модель клієнт-сервер це система що складається з автономних компонентів невеликого розміру.
Контрольні запитання:
Охарактеризуйте однозадачні та багатозадачні системи.
Наведіть приклади однозадачних та багатозадачних систем
Охарактеризуйте однокористувальницькі та багатокористувальницькі системи
Наведіть приклади однокористувальницьких та багатокористувальницьких систем
Охарактеризуйте та наведіть приклади систем, що витісняють (не витісняють багатозадачність)
Поясніть такі визначення прийняті до ОС Підтримка багатонитковості, багатопроцесорна обробка
Яким чином можна класифікувати системи багатопроцесорної обробки Поясніть Особливості апаратних платформ
Дайте характеристику системам пакетної обробки
Дайте характеристику системам поділу часу
Дайте характеристику системам реального часу
Охарактеризуйте особливості методів побудови системи.
Які моделі ОС ви знаєте.
Лекція №2
Тема Файлові системи. Файли. Каталоги
Іменування файлів Структура файлу Типи файлів Доступ до файлів Атрибути файлу Операції з файлами Файли, що відображаються на адресний простір пам'яті Каталоги: Однорівневі каталоговиє системи Дворівневі каталоговиє системи Ієрархічні каталогови системи Ім'я шляху Операції з каталогами
Мета:
Отримати такі головні поняття з курсу
ОС як, файлова система, види каталогів,
високорівневе, низькорівневе форматування,
іменування файлів Структура файлу
Типи файлів
Доступ до файлів Атрибути файлу Операції
з файлами Файли, що відображаються на
адресний простір пам’яті Каталоги:
Магнітні диски
Основні поняття:
Головка (Head) - електромагніт що ковзає над поверхнею диска, для кожної поверхні використовується своя головка. Нумерація починається з 0.
Доріжка (Track) - концентричне коло, яке може прочитати головка в одній позиції. Нумерація доріжок починається із зовнішньою (перша має номер - 0).
Циліндр (Cylinder) - сукупність всіх доріжок з однаковим номером на всіх дисках, оскільки дисків може бути багато і на кожному диску запис може бути з двох сторін.
Маркер - від нього починається нумерація доріжок, є на кожному диску.
Сектор - на сектори розбивається кожна доріжка, сектор містить мінімальний блок інформації. Нумерація секторів починається від маркера.
Геометрія жорсткого диска - набір параметрів диска, кількість головок, кількість циліндрів і кількість секторів.
У сучасних жорстких дисків контролер вбудований в сам пристрій, і бере на себе велику частину роботи, яку не бачить ОС.
Форматування дисків (програмна частина)
Низькорівневе форматування
Низькорівневе форматування - розбиття диска на сектори, проводиться виробниками дисків.
Кожен сектор складається з:
Заголовка (Prefix portion) - по якому визначається початок (послідовність певних бітів) сектори і його номер, і номер циліндра.
Область даних (як правило 512 байт)
Кінець сектора (Suffix portion) - містить контрольну суму ECC (Error Correction Code - код коректування помилок). Дозволяє виявити або навіть виправити помилки читання. Розмір залежить від виробника, і показує, як виробник відноситься до надійності роботи диска.
Сектор диска
На диску можуть бути запасні сектори, які можуть бути використані для заміни секторів з дефектами (а вони майже завжди є). За рахунок цього забезпечується однакова місткість на виході.
При низькорівневому форматуванні частина корисного об'єму зменшується, приблизно до 80%.
Перекіс циліндрів
Перекіс циліндрів - зрушення 0-го сектора кожної подальшої доріжки, відносно попередньої. служить для збільшення швидкості. Головка витрачає яке той час на зміну доріжки, і якщо 0-й сектор починатиметься в тому ж місці, що і попередній, то головка вже проскочить його і чекатиме цілий круг.
Чергування секторів
Якщо, наприклад, один сектор прочитаний, а для другого немає в буфері місця, поки дані копіюються з буфера в пам'ять, другий сектор вже проскочить головку.
Щоб цього не трапилося застосовують чергування секторів.
Якщо копіювання дуже повільне, може застосуються двократне чергування, або більше.
Розділи диска
Після низькорівневого форматування диск розбивається на розділи, ці розділи сприймаються ОС як окремі диски.
Для чого можна використовувати розділи:
Відокремити системні файли від призначених для користувача (наприклад, своп-файли)
Ефективніше використовувати простір (наприклад, для адміністрування).
На різні розділи можна встановити різні ОС.
Основні розділи диска:
Первинний (Primary partition) - деякі ОС можуть завантажуватися тільки з первинного розділу.
Розширений (Extended partition) - безпосередньо дані не містить, служить для створення логічних дисків (створюється що б обійти обмеження в 4-ре розділу).
Логічний (Logical partition) - може бути будь-яка кількість.
Інформація про розділи записується в 0-му секторі 0-го циліндра, головка 0. І називається таблицею розділів.
Таблиця розділів (Partition Table) - містить інформацію про розділи, номер початкових секторів і розміри розділів. На Pentium-комп'ютерах в таблиці є місце тільки для чотирьох записів, тобто може бути тільки 4 розділи (до логічних це не відноситься, їх може бути не обмежена кількість).
Цей сектор називається головним завантажувальним записом.
Головний завантажувальний запис MBR (Master Boot Record) - містить завантажувальну програму і таблицю розділів.
Активний розділ - розділ з якого завантажується ОС, може бути і логічним. У одному сеансі завантаження може бути тільки один активний розділ. У Windows розділи називатимуться пристроями C:, D:, E: і т.д.
Високорівневе форматування
Високорівневе форматування (створення файлової системи) - проводиться для кожного розділу окремо, і виконує наступне:
Створює завантажувальний сектор (Boot Sector)
Створює список вільних блоків (для UNIX) або таблицю (ы) розміщення файлів (FAT - File Allocation Table) (для FAT або NTFS)
Створює кореневий каталог
Створює порожню файлову систему
Указує яка файлова система
Позначає дефектні кластери
Кластери і блоки - одиниця зберігання інформації у файлових системах, файли записуються на диск розбитими чи на блоки кластери.
При завантаженні системи, відбувається наступне:
1. Запускається BIOS
2. BIOS прочитує головний завантажувальний запис, і передає їй управління
3. Завантажувальна програма визначає який розділ активний
4. З цього розділу прочитується і запускається завантажувальний сектор
5. Програма завантажувального сектора знаходить в кореневому каталозі певний файл (завантажувальний файл)
6. Цей файл завантажується в пам'ять і запускається (ОС починає завантаження) Алгоритми планування переміщення головок
Чинники що впливають на час прочитування або запису на диск:
Час пошуку (час переміщення головки на потрібний циліндр)
Час перемикання головок
Затримка обертання (час, потрібний для повороту потрібного сектора під головку)
Час передачі даних
Алгоритми планування
Алгоритм "перший прийшов - першим обслужений" FCFS (First Come, First Served)
Алгоритм короткий час пошуку першим (або найближчий циліндр першим) SSF (Shortest Seek First)
Алгоритми сканування (SCAN, C-SCAN, LOOK, C-LOOK)
SCAN - головки постійно переміщаються від одного краю диска до його іншого краю, по ходу справи обслуговуючи запити, що все зустрічаються. Просто але не завжди ефективно.
LOOK - якщо ми знаємо, що обслужили останній попутний запит у напрямі руху головок, то ми можемо не доходити до краю диска, а відразу змінити напрям руху на зворотний
C-SCAN - циклічне сканування. Коли головка досягає одного з країв диска, вона без читання попутних запитів переміщається на 0-й циліндр, звідки знов починає свій рух.
C-LOOK - по аналогії з попереднім.
Обробка помилок
Блоки і кластери не повинні містити дефектні сектори, тому система повинна уміти позначати дефектні сектори.
Помилки можуть бути виявлені на трьох рівнях:
На рівні дефектного сектора ECC (використовуються запасні, робить сам виробник)
Дефектні блоки або кластери можуть оброблятися контролером або самою ОС.
Стабільно запам’ятовуючий пристрій
Стабільно запам’ятовуючий пристрій- система або коректно записує дані, або не записує нічого.
У даній моделі враховується наступне:
Запис блоку може бути перевірений при подальшому читанні і вивченні ECC.
Правильно записаний сектор може стати дефектним і не читатися (але це відбувається рідко).
Допускається вихід з ладу центрального процесу.
Для такої моделі можна створити стабільно запам’ятовуючий пристрій, з пари ідентичних дисків.
Для досягнення цієї мети визначені три операції:
1. Стабільна операція запису складається з наступних кроків: - запис блоку на диск 1 - причитування цього запису для перевірки, якщо виявлена помилка, то повторюється запис (і так кілька разів), якщо запис не вдався, то використовується резервний блок. - все теж повторюється для другого диска
2. Стабільна операція читання складається з наступних кроків: - прочитується блок з диска 1 - перевіряється на помилки, якщо виявлені прочитування повторюється, і так кілька разів. - якщо всі спроби з 1-м диском не вдалі, все повторюється для другого
3. Відновлення від збоїв (наприклад, по живленню) складається з наступних кроків: - після збою програма відновлення сканує обидва диски і порівнює відповідні блоки - якщо у одного виявлена помилка, то на місце дефектного записується нормальний блок - якщо помилок немає, але блоки не співпадають, то блок з диска 1 пишеться поверх диска 2 (на диску 1 завжди свіжіший блок)
Іменування файлів
Довжина імені файлу залежить від ОС, може бути від 8 (MS-DOS) до 255 (Windows, LINUX) символів.
ОС можуть розрізняти прописні і рядкові символи. Наприклад, WINDOWS і Windows для MS-DOS одне і теж, але для UNIX це різні файли.
У багато ОС ім'я файлу складається з двох частин, розділених крапкою, наприклад windows.exe. Частину після крапки називають розширенням файлу. По ньому система розрізняє тип файлу.
У MS-DOS розширення складає 3 символи. По ньому система розрізняє тип файлу, а також можна його виконувати чи ні.
У UNIX розширення обмежене розміром імені файлу в 255 символів, також у UNIX може бути декілька розширень, але розширеннями користуються більшим прикладні програми, а не ОС. По розширенню UNIX не може визначити виконуваний це файл чи ні.
Структура файлу
Три основні структури файлів:
1. Послідовність байтів - ОС не цікавиться вмістом файлу, вона бачить тільки байти. Основна перевага такої системи, це гнучкість використання. Використовуються в Windows і UNIX.
2. Послідовність записів - записів фіксованої довжини (наприклад перфокарта), прочитуються послідовно. Зараз не використовуються.
3. Дерево записів - кожен запис має ключ, записи прочитуються по ключу. Основна перевага такої системи, це швидкість пошуку. Поки що використовується на мейнфреймах.
Типи файлів
Основні типи файлів:
Регулярні - містять інформацію користувача. Використовуються в Windows і UNIX.
Каталоги - системні файли, що забезпечують підтримку структури файлової системи. Використовуються в Windows і UNIX.
Символьні - для моделювання введення-висновку. Використовуються тільки в UNIX.
Блокові - для моделювання дисків. Використовуються тільки в UNIX.
Основні типи регулярних файлів:
ASCII файли - складаються з текстових рядків. Кожен рядок завершується поверненням каретки (Windows), символом перекладу рядка (UNIX) і використовуються обидва варіанти (MS-DOS). Тому якщо відкрити текстовий файл, написаний в UNIX, в Windows, то всі рядки зіллються в один великий рядок, але під MS-DOS вони не зіллються (це достатньо часта ситуація). Основні переваги ASCII файлів: - можуть відображатися на екрані і виводиться на принтер без перетворень - можуть редагуватися майже будь-яким редактором
Двійкові файли - файли, решти (не ASCII). Як правило мають внутрішньою структуру.
Основні типи двійкових файлів:
Виконувані - програми, їх може обробляти сама операційна система, хоча вони записані у вигляді послідовності байт.
Невиконувані - всі інші.
Доступ до файлів
Основні види доступу до файлів:
Послідовний - байти читаються по порядку. Використовувалися, коли були магнітні стрічки.
Довільний - файл можна читати з довільної крапки. Основна перевага виникає, коли використовуються великі файли (наприклад баз даних) і треба рахувати тільки частину даних з файлу. Всі сучасні ОС використовують цей доступ.
Файли мають
Атрибути файлу
Операції з файлами
Файли, що відображаються на адресний простір пам'яті
Іноді зручно файл відобразити в пам'яті (не треба використовувати системні виклики введення-висновку для роботи з файлом), і працювати з пам'яттю, а потім записати змінений файл на диск.
При використанні сторінкової організації пам'яті, файл цілком не завантажується, а завантажуються тільки необхідні сторінки.
При використанні сегментної організації пам'яті, файл завантажують в окремий сегмент.
Каталоги
Види каталогів
Однорівневі каталогові системи
Дворівневі каталогові системи
Ієрархічні каталогові системи
Кожен користувач може створювати стільки каталогів, скільки йому потрібно.
Ім'я шляху
Для організації дерева каталогів потрібен деякий спосіб вказівки файлу.
Два основні методи вказівки файлу:
абсолютне ім'я шляху - указує шлях від кореневого каталогу, наприклад: - для Windows \usr\ast\mailbox - для UNIX /usr/ast/mailbox - для MULTICS >usr>ast>mailbox
відносне ім'я шляху - шлях указується від поточного каталогу (робочого каталогу), наприклад: - якщо поточний каталог /usr/, то абсолютний шлях /usr/ast/mailbox перепишеться в ast/mailbox - якщо поточний каталог /usr/ast/, то абсолютний шлях /usr/ast/mailbox перепишеться в mailbox - якщо поточний каталог /var/log/, то абсолютний шлях /usr/ast/mailbox перепишеться в ../../usr/ast/mailbox
./ - означає поточний каталог
../ - означає батьківський каталог
Контрольні запитання
Поясніть основні визначення диску : сектор, кластер, доріжка.
Поясніть призначення та принцип роботи масивів RAID
Поясніть принцип форматування дисків.
Які ви знаєте алгоритми низькорівневого форматування.
Поясніть принцип поділу жорсткого диску на розділи
Дайте визначення файлу, каталогу.
Поясніть абсолютне та відносне ім.’я файлу.
Які будова каталогів вам відома.
Лекція №3
Тема Процеси системи
Процес. Стани процесу. Керування процесами.
Черги процесів. Стратегії планування процесів. Взаємодія процесів. Стратегії планування процесів в системах пакетної об обробки даних, інтерактивних та системах реального часу.
Мета: Ознайомити студентів з поняттям процесу, управління процесами, методами планування процесів для ОС. Перериваннями ОС.
Переривання ос.
Настання тієї чи іншої події сигналізується перериваннями - Interrupt. Джерелами переривань можуть бути як апаратура (HardWare), так і програми (SoftWare).
Апаратура "повідомляє" про переривання асинхронно (у будь-який момент часу) шляхом пересилання в CPU через загальну шину сигналів переривань. Програма "повідомляє" про переривання шляхом виконання операції System Call. Приклади подій, що викликають переривання:
спроба ділення на 0
запит на системне обслуговування
завершення операції введення - висновку
неправильне звертання до пам'яті
Кожне переривання обробляється відповідно оброблювачем переривань (Interrupt handler), що входять до складу ОС.
Головні функції механізму переривань - це:
розпізнавання чи класифікація переривань
передача керування відповідно оброблювачу переривань
коректне повернення до перерваної програми
Перехід від програми, що переривається, до оброблювача і назад повинний виконуватися як умога швидше. Одним зі швидких методів є використання таблиці, що містить перелік усіх припустимих для комп'ютера переривань і адреси відповідних оброблювачів. Така таблиця називається вектором переривань (Interrupt vector) і зберігається на початку адресного простору основної пам'яті (UNIX/MS DOS).
Керування процесами.
Процес - це програмний модуль, виконуваний у CPU. Операційна система контролює наступну діяльність, зв'язану з процесами:
створення і видалення процесів
планування процесів
синхронізація процесів
комунікація процесів
рішення тупикових ситуацій
Поняття Процес. Стану процесу
Не слід змішувати поняття процес і програма. Програма - це план дій, а процес - це сама дія. Поняття процес включає:
програмний код
дані
уміст стека
вміст адресного й іншого регістрів CPU.
Існують наступні стани процесу:
новий (new, процес тільки створений)
виконуємий (running, команди програми виконуються в CPU)
що очікує (waiting, процес очікує завершення деякої події, найчастіше операції введення - виведення)
готовий (ready, процес очікує звільнення CPU)
завершений (terminated, процес завершив свою роботу)
Планування процесів. Поняття черги.
Розподіл процесів між наявними ресурсами зветься планування процесів.
Одним з методом планування процесів, орієнтованих на ефективне завантаження ресурсів, є метод черг ресурсів. Нові процеси знаходяться у вхідній черзі, часто названою чергою робіт - завдань (job queue).
При проходженні через комп'ютер процес мігрує між різними чергами під керуванням програми, що називається планувальник. (scheduler) Операційна система, що забезпечує режим мультипрограмування, звичайно має два планувальника - довгостроковий (long term scheduler) і короткостроковий (short term scheduler/CPU scheduler).
Основна відмінність між довгостроковим і короткостроковим планувальниками полягає в частоті запуску, наприклад: короткостроковий планувальник може запускатися кожні 100 мс, довгостроковий - один раз за кілька хвилин.
Довгостроковий планувальник вирішує, який із процесів, що знаходяться у вхідній черзі, повинний бути переведений у чергу готових процесів у випадку звільнення ресурсів пам'яті.
Довгостроковий планувальник вибирає процес із вхідної черги з метою створення неоднорідної мультипрограмної суміші. Це означає, що в черзі готових процесів повинні знаходитися в різній пропорції як процеси, орієнтовані на введення - виведення, так і процеси, орієнтовані на переважну роботу з CPU.
Короткостроковий планувальник вирішує, який із процесів, що знаходяться в черзі готових процесів, повинний бути переданий на виконання в CPU. У деяких операційних системах довгостроковий планувальник може бути відсутнім. Наприклад, у системах поділу часу (time sharing system), кожен новий процес відразу ж міститься в основну пам'ять.
Планування процесу.
Короткостроковий планувальник вибирає процеси з черги готових процесів і передає їх на виконання в CPU. Існують різні алгоритми чи стратегії рішення цієї задачі, що відрізняються відношенням до критеріїв планування.
Критерії планування процесора.
Використовуються наступні критерії, що дозволяють порівнювати алгоритми короткострокових планувальників:
утилізація CPU (використання) CPU utilization. утилізація CPU теоретично може знаходитися в межах від 0 до 100%. У реальних системах утилізація CPU коливається в межах 40% для легко завантаженого CPU, 90% для важко завантаженого CPU.
пропускна здатність CPU throughput. Пропускна здатність CPU може вимірятися кількістю процесів, що виконуються в одиницю часу.
час обороту (turnaround time) для деяких процесів важливим критерієм є повний час виконання, тобто інтервал від моменту появи процесу у вхідній черзі до моменту його завершення. Цей час названий часом обороту і включає час чекання у вхідній черзі, час чекання в черзі готових процесів, час чекання в чергах до устаткування, час виконання в процесорі і час уведення - виводу.
час чекання (waiting time). під часом чекання розуміється сумарний час перебування процесу в черзі готових процесів.
час відгуку (response time) для сугубо інтерактивних програм важливим показником є час відгуку чи час, що пройшов від моменту влучення процесу у вхідну чергу до моменту першого звертання до терміналу.
