Особливості методів побудови
монолітне ядро - компонується як одна програма, що працює в привілейованому режимі і використовує швидких переходах з однієї процедури на іншу, не потребуючі переключення з привілейованого режиму в користувальницький і навпаки.
на базі объектно-ориентированного підходу – дає акумуляцію вдалих рішень у формі стандартних об’єктів, можливість створення нових об’єктів на базі наявних за допомогою механізму спадкування, гарний захист даних за рахунок їхньої інкапсуляції у внутрішні структури об’єкта, що робить дані недоступними для несанкціонованого використання ззовні, структуризованность системи, що складає з набору добре визначених об’єктів.
Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатка, розроблені для декількох ОС. Багато сучасних операційних систем підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS/2
Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, що дають можливість користувачу представляти і сприймати мережу у виді традиційного
3 дно рівневі3 увал комп’ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику вилучених процедур (RPC) і т.д
Моделі операційних систем
Модель операційної системи можна представити як каркас, що зв’язує в єдине ціле всі засоби і сервіси, забезпечувані системою, з одному боку, і виконувані нею задачі з іншої.
Монолітна модель ОС
У невеликих операційних системах, наприклад, у MS-DOS, використовують принцип організації системи, як набору процедур, кожну з який може викликати будь-як користувальницька процедура. Така модель називається монолітної (Рис. 2.1).
Така структура не забезпечує ізоляції даних, оскільки в різних ділянках коду використовується інформація про пристрій усієї системи. Розширення операційних систем такого типу важко, тому що зміна деякої процедури може викликати помилки в інших частинах системи, на перший погляд не мають до неї відносини.
В усіх монолітних операційних системах, крім найпростіших, додатки відділені від власне коду операційної системи. Іншими словами, код виповнюється в привілейованому режимі процесора, що в літературі часто називається режимом ядра (kernel mode) і має доступ до даних системи й апаратурі. Програми користувача виповнюються в непривілейованому, так називаємо режимі користувача (user mode),
Багаторівнева модель ОС.
Інший підхід до структурування системи припускає поділ її на модулі, нашаровані один поверх іншого. Кожен модуль надає набір функцій, що можуть викликатися іншими модулями. Код, розташований у деякому шарі, викликає код тільки з нижче розташованих шарів. Одним з переваг пошарової організації операційної системи є ті, що код шкірного кулі одержує доступ тільки до необхідним йому інтерфейсам і структурам даних нижче розташованих шарів. Таким чином, зменшується обсяг коду, що володіє необмеженою владою. Крім того, така структура дозволяє при налагодженні операційної системи починати із самого нижнього кулі і додавати по одному рівні доти, поки вся система не стає працювати правильно. Пошарова структура полегшує і розширення систем, можна цілком замінити будь-який рівень, не торкаючись інших частин.
Модель клієнт – сервер
Третій підхід до проектування операційних систем – це модель клієнт-сервер. Ідея його складається в поділі системи на кілька процесів, кожний з який реалізує один набір сервісів: наприклад, розподіл пам’яті, створення чи процесів планування процесів. Кожен сервер виконується в режимі користувача, завісься годину перевіряючи, чи не звернувся до нього за обслуговуванням який-небудь клієнт. Клієнт, яким може бути або інший компонент операційної системи, або прикладна програма, запитує виконання сервісу, посилаючи серверу повідомлення. Ядро операційної системи, що виконується в режимі ядра, доставляє повідомлення серверу. Тієї виконує запитувані дії, після чого ядро повертає клієнту результати у виді іншого повідомлення. При використанні клієнт-серверного підходу виходить операційна система, що складається з автономних компонентів невеликого розміру. Оскільки всі сервери виконуються як окремі процеси в режимі користувача, аварія не порушує роботи інших частин системи.
Об’єктна модель операційної системи.
Важко знайти одну, головну програму, що керує всією операційною системою. Таким чином, замість того, щоб розробляти систему зверху вниз, по об’єктно-орієнтованій методології спочатку розглядають дані, з якими винна працювати програма для виконання своєї задачі. Для операційних систем такими даними є системні ресурси – файли, процеси, пам’ять і так далі.
Основна позначка розробки системи з орієнтацією на дані – створення програмного забезпечення, яку можна було б легко, а головне дешево, змінювати. Один зі способів мінімізації необхідних змін у об’єктно-орієнтованих програмах – це приховання фізичного представлення даних усередині об’єктів. Він має набір властивостей, називаних атрибутами, і з ними працює група сервісів.
Багато операційних систем використовують об’єкти для представлення системних ресурсів. Кожен системний ресурс, що можуть спільно використовувати кілька процесів, реалізовані як об’єкт і обробляється об’єктними рівнями. Такий підхід зменшує вплив змін, що можуть відбуватися в системі з годиною. Наприклад, якщо зміна в операційній системі викликано зміною в апаратурі, необхідно змінити тільки об’єкт, що представляє даний апаратний ресурс, і його сервіси. При цьому код, що використовує об’єкт, не має потребу в модифікації. Аналогічно, якщо потрібно ввести в систему підтримку нового прибудую, створюється новий об’єкт, і додавання його до системи не порушує існуючого коду.
Магнітні диски
Основні поняття:
Головка (Head) – електромагніт що ковзає над поверхнею диска, для кожної поверхні використовується своя головка. Нумерація починається з 0.
Доріжка (Track) – концентричне коло, яке може прочитати головка в одній позиції. Нумерація доріжок починається із зовнішньою (перша має номер – 0).
Циліндр (Cylinder) – сукупність всіх доріжок з однаковим номером на всіх дисках, оскільки дисків може бути багато і на кожному диску запис може бути з двох сторін.
Маркер – від нього починається нумерація доріжок, є на кожному диску.
Сектор – на сектори розбивається кожна доріжка, сектор містить мінімальний блок інформації. Нумерація секторів починається від маркера.
Геометрія жорсткого диска – набір параметрів диска, кількість головок, кількість циліндрів і кількість секторів.
Форматування дисків (програмна частина)
Низькорівневе форматування
Низькорівневе форматування – розбиття диска на сектори, проводиться виробниками дисків.
Кожен сектор складається з:
Заголовка (Prefix portion) – по якому визначається початок (послідовність певних бітів) сектори і його номер, і номер циліндра.
Область даних (як правило 512 байт)
Кінець сектора (Suffix portion) – містить контрольну суму ECC (Error Correction Code – код коректування помилок). Дозволяє виявити або навіть виправити помилки читання. Розмір залежить від виробника, і показує, як виробник відноситься до надійності роботи диска.
Сектор диска
На диску можуть бути запасні сектори, які можуть бути використані для заміни секторів з дефектами (а вони майже завжди є). За рахунок цього забезпечується однакова місткість на виході.
При низькорівневому форматуванні частина корисного об’єму зменшується, приблизно до 80%.
Алгоритми
