Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операцiйнi системи та середовища6.05.07(Антонов...doc
Скачиваний:
11
Добавлен:
04.05.2019
Размер:
801.79 Кб
Скачать

5.2 Архітектура операційної системи unix

Дворівневу модель системи подано на рис. 5.1.

Рисунок 5.1 – Дворівнева модель UNIX-системи

У центрі розміщено ядро системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп’ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро має набір послуг, надаваних прикладним програмам. До послуг ядра належать операції введення/виведення (відкриття, читання, записування й керування файлами), створювання й керування процесами, їхньої синхронізації й міжпроцесної взаємодії. Усі додатки запитують послуги ядра за допомогою системних викликів.

Другий рівень становлять додатки та завдання, як системні, які визначають функціональність системи, так і прикладні, які забезпечують користувацький інтерфейс UNIX. Однак, незважаючи на зовнішню різнорідність додатків, схеми їхньої взаємодії з ядром є однакові.

5.3 Функціонування ос unix

5.3.1 Ядро системи

Ядро забезпечує базову функціональність ОС: створює процеси й керує ними, розподілює пам’ять і забезпечує доступ до файлів та периферійних пристроїв.

Взаємодія прикладних завдань з ядром відбувається за допомогою стандартного інтерфейсу системних викликів.

Інтерфейс системних викликів являє собою набір послуг ядра й визначає формат запитів на послуги. Процес запитує послугу за допомогою системного виклику певної процедури ядра, зовні схожого на звичайний виклик бібліотечної функції. Ядро від імені процесу виконує запит – і повертає процесові потрібні дані.

У наведеному прикладі програма відкриває файл, зчитує з нього дані і закриває цей файл. При цьому операція відкриття (open), читання (read) і закриття (close) файла виконуються ядром за запитом завдання, а функції open (2), read (2), close (2) є системними викликами.

main()

{

int fd;

char buf [80];

/*Відкриємо файл–дістанемо надсилання (файловий дескриптор) fd*/

fd=open(“filed”,O_RDONLY);

/*Вводимо до буфера buf 80 символів*/

read (fd,buf, sizeof(buf));

/*Закриємо файл*/

close (fd);

}

Ядро складається з трьох основних підсистем:

  • файлова підсистема;

  • підсистема керування процесами та пам’яттю;

  • підсистема введення/виведення.

5.3.2 Файлова підсистема

Файлова підсистема забезпечує уніфікований інтерфейс доступу до даних, розташованих на дискових накопичувачах, і до периферійних пристроїв. Ті самі функції open (2), read (2), write (2) можуть використовуватися як при зчитуванні запису даних на диск, так і при виведенні тексту на принтер або термінал.

Файлова підсистема контролює права доступу до файла, виконує операції розміщування й вилучання файла, а також виконує запис/читання даних файла. Оскільки більшість прикладних функцій виконується через інтерфейс файлової системи, права доступу до файлів визначають привілей користувача в системі.

Файлова підсистема забезпечує переспрямовування запитів, адресованих периферійним пристроям, котрі збігаються з модулями підсистеми введення/виведення. Внутрішню структура ядра наведено на рис. 5.2.

Рисунок 5.2 — Внутрішня структура ядра UNIX