Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Загальна характеристика ОС UNIX



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

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

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

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

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

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

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

87 Віртуальна машина ОС UNIX.

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

 процесор;

 пам’ять;

 пристрої;

 файли.

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

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

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

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

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

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

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

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

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

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

89 Типи та інтерфейс користувачів ОС UNIX.

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

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

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

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

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

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

90 Команди і командний інтерпретатор ОС UNIX

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

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

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

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

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

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

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

91 Процеси та їх виконання в ОС UNIX.

Термін процес в ОС Unix розуміється як програма, яка виконується в власномувіртуальному адресному просторі. Для створення нового процесу в ОС Unix використовуютьсянаступні виклики АРІ:

 fork ();

 exec (ім’я програми яка завантажується).

Виклик fork() створює новий адресний простір, стан якого є ідентичним головномупроцесу. Керування новим процесом передається на команду, яка безпосередньо знаходиться завикликом fork(). Виклик fork() повертає значення “0” в породженому процесі і ціле додатковечисло в основному процесі. Це процес ідентифікації.

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

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

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

Процеси в загальному виконуються в одному з двох станів:

 користувацькому стані – процес виконує тільки користувацьку програму і маєдоступ до користувацького сегменту даних;

 системному стані – процес виконує підпрограми ядра ОС і має доступ до системногосегменту даних.

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

92 Підсистема вводу-виводу ОС UNIX.

Функції вводу/виводу в ОС Unix задаються за допомогою 5 системних викликів, а саме:

 open;

 close;

 read;

 write;

 seek.

При використанні цих команд в якості параметрів вказується дескриптор (номер) файлу,вказується режим відкриття, зчитування, запису файлу, а також кількість байт при виконанніоперації. При виконанні операції читання (запису) можливі три такі ситуації, при яких читання(запис) відбувається послідовно:

 якщо читання (запис) відбувається перший раз з певного файлу, то воно відбуваєтьсяпослідовно з першого байту пам’яті;

 якщо перед поточною операцією читання (запису) була попередня операція читання(запису), то буде зчитано (записано) байти з поточної позиції вказівника файлу;

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

Для того щоб завершити операцію вводу/виводу використовується команда close. Ті самікоманди вводу/виводу застосовуються для фізичних пристроїв. В Unix всі фізичні пристроїпредставлені спеціальними файлами в єдиній структурі файлової системи. Це означає, щорозробник може написати програму, яка комунікується з пристроями вводу/виводу, яка буденезалежна від них самих шляхом вводу/виводу інформації у відповідний файл. На відміну відінших ОС підсистема вводу/виводу ОС Unix орієнтована на роботу з потоками (stream), а не ззаписами. Потік в даному контексті, це послідовність байт, яка закінчується спеціальнимрозділювачем. Використання механізму потоків дозволяє забезпечити незалежність від фізичнихпристроїв, уніфікацію файлів і конвеєрів, та гнучкість роботи з операціями вводу/виводу даних.

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

Цей механізм забезпечується такими основнимивластивостями:

 будь – яка операція вводу/виводу розглядається як запис в файл або зчитування зфайлу. Клавіатура або термінал також інтерпретується як файл;

 доступ до будь – якого файлу (пристрою) здійснюється через його дескриптор(номер). Існує декілька стандартних дескрипторів (файл з дескриптором 1 –стандартний ввід, 2 – стандартний вивід, 3 – стандартне повідомлення про помилки);

 задача (чи процес) яка породжується в певному процесі наслідує всі відкритідескриптори цього батьківського процесу.

Тому для правильного функціонування підсистеми вводу/виводу доцільно при розробцівласних програм забезпечити правильне використання системних дескрипторів (1 – stdin, 2 –stdout, 3 – stderr).

93 Структура файлової системи ОС UNIX

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

В загальному випадку диск розбивається на наступніобласті:

 невикористовуваний (вільний) блок;

 керуючий блок (супер блок), який містить інформацію про розмір диску та границіінших блоків;

 і – блок, який складається з опису файлів, які називаються і – вузлами;

 область для зберігання вмісту файлів.

Рис. 14.1. Організація файлів на диску Unix.

Кожен і – вузол містить наступну інформацію:

 ідентифікатор власника файлу;

 ідентифікатор групи власника файлу;

 біти захисту;

 фізичну адресу на диску, де знаходиться вміст цього файлу;

 розмір файлу;

 час створення файлу;

 час останньої модифікації файлу (використання);

 час останньої зміни атрибутів файлу;

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

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

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

Звичайний файл, який не є директорією, може зустрічатися в різних директоріях іможливо під різними іменами. Ця властивість називається зв’язувальною. Елемент директорії,який відноситься до одного файлу називається зв’язком.

В системах Unix такі зв’язки мають однаковий статус чи права. Файли не належатьдиректоріям, а зв’язки в цих директорія вказують на фізичний файл розміщений на диску.





Дата публикования: 2015-09-18; Прочитано: 890 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...