Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lesson_14_SPZ.doc
Скачиваний:
4
Добавлен:
21.12.2018
Размер:
327.68 Кб
Скачать

Тема 14. Архітектура ОС Unix

  1. Основні поняття і визначення.

  2. Віртуальна машина.

  3. Типи та інтерфейс користувачів.

  4. Команди та командний інтерпретатор.

  5. Процеси та їх виконання.

  6. Підсистема вводу/виводу.

  7. Структура файлової системи.

  8. Засоби захисту файлів і даних.

  9. Сигнали і семафори.

  10. Програмні канали та черги повідомлень.

  11. Розділювана пам’ять та виклики віддалених процедур.

  12. Особливості ОС Linux.

  1. Основні поняття і визначення.

Unix є прикладом виключно вдалої реалізації простої мультипрограмної і багатокористувацької ОС.

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

  • звертання до файлів, пристроїв вводу/виводу, буферів міжпроцесних повідомлень виконуються з допомогою одних і тих же примітивів;

  • одні і ті ж механізми найменування, присвоєння альтернативних імен і захисту від несанкціонованого доступу застосовується до файлів даних і до директорій і пристроїв;

  • одні і ті ж механізми працюють у відношенні програмних і апаратних ініціалізованих переривань.

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

Unix системи поставляються з великим набором системних і прикладних програм, включаючи текстові редактори, інтерпретатори командної мови, компілятори з декількох популярних мов програмування (Perl, Assembler, Delphi, C, C++), компоновщики, відладчики, бібліотеки системних і користувацьких програм, засоби сортування і ведення баз даних, багаточисельні адміністративні і обслуговуючі програми. В Unix системах використовується ієрархічна файлова система з повним захистом, робота зі змінними томами (дисками), забезпечується незалежність від пристроїв. Центральною частиною системи Unix є ядро.

  1. Віртуальна машина.

Система Unix є багато користувацькою, кожному користувачу після реєстрації надається віртуальний комп’ютер, в якому є всі необхідні ресурси:

  • процесор;

  • пам’ять;

  • пристрої;

  • файли.

Поточний стан такого віртуального комп’ютера називається образом. Можна сказати, що процес – це виконання образу. Образ складається з:

  • образу пам’яті;

  • значень загальних регістрів процесора;

  • стану відкритих файлів;

  • поточної директорії і іншої інформації.

Образ процесу під час його виконання розміщується в основній пам’яті (в старих системах вигружався на диск).

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

  • сегмент процедур (починається з нульового адресу у віртуальному адресному просторі процесу);

  • сегмент даних (розміщується після сегменту процедур і може зростати в сторону великих адресів);

  • сегмент стеку (починається зі старшого адресу і росте в сторону молодших адресів по мірі занесення в нього інформації при викликах підпрограм і при перериваннях).

  1. Типи та інтерфейс користувачів.

ОС Unix при розробці планувалась як інтерактивна багатокористувацька система, іншими словами Unix призначена для мультитермінальної роботи. Щоб почати роботу потрібно ввійти в систему шляхом введення свого (account name) імені і можливо пароль. Користувач зареєстрований в облікових файлах системи і маючи account називається зареєстрованим користувачем системи. Реєстрація нових користувачів проводиться адміністратором.

Файлова система OC Unix має деревоподібну структуру.

Кожному зареєстрованому користувачу відповідає відповідний каталог (домашній каталог).

Коротко розглянемо інтерфейс користувача. Традиційний спосіб взаємодії користувача з ОС Unix заснований на використанні командних мов. Після входу користувача в систему для нього запускається один із командних інтерпретаторів (в залежності від параметрів які зберігаються в файлі /etc/passwd). Загальна назва будь – якого командного інтерпретатора шел – оболонка. Визваний командний інтерпретатор дає запит дає запит на ввід користувачем командної стрічки, яка може містити просту команду, конвеєр команд, або послідовність команд. Після виконання наступної командної стрічки і видачі на екран терміналу або в файл потрібних результатів, shell знову робить запит на ввід нової командної стрічки.

Командні мови які використовуються в ОС Unix є досить простими, для змоги швидкого навчання новими користувачами. Написання складних програм спирається механізм складних файлів shell – script.

Привілейований користувач.

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

  1. Команди та командний інтерпретатор.

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

Командна стрічка складається з імені команди (виконуваного файлу) за якою розміщується список аргументів, які розділяються пробілом. Вказаній в команді файл запускається, після цього файлу забезпечується доступ до аргументів, які задані в командній стрічці.

В ОС Unix існує мова програмування оболонки shell, яка складається з наступних частин:

  • службові конструкції, які дозволяють маніпулювати текстовими стрічками та будувати складні команди на мові простих;

  • вбудовані, які безпосередньо виконуються інтерпретатором;

  • команди, які представляються окремими виконуваними файлами.

Простий приклад програмування на мові shell - вивід стрічки на екран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]