Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

spz / spz

.pdf
Скачиваний:
33
Добавлен:
23.02.2016
Размер:
5.16 Mб
Скачать

Системне програмне забезпечення

І.Яковлєва

6

ж необхідно ввести механізм пріоритетного обслуговування, то це, як правило, робиться за рахунок організації декількох черг. Процесорний час буде даватися в першу чергу тим задачам, що стоять у самій привілейованій черзі. Якщо вона порожня, то диспетчер задач почне переглядати інші черги. Саме по такому алгоритмі діє диспетчер задач в операційних системах OS/2 і Windows NT.

Системне програмне забезпечення.

1

Керування даними

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

2.Функції файлової системи ОС і ієрархія даних.

3.Об’єднання в блоки.

4.Організація файлів.

5.Методи доступу.

6.Файлові системи.

Система керування даними

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

Таке призначення системи керування даними, на перший погляд повністю співпадає з функціями підсистеми керування введення/виведення..

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

Призначення файлових систем визначає склад їх програмних частин. Програмна частина повинна містити наступні компоненти:

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

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

3.засоби розподілу зовнішньої пам’яті для збереження файлів, а також звільнення пам’яті по мірі знищення файлів;

4.засоби обліку розташування як файлів в цілому, так і окремих складових елементів.

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

Функції файлової системи ОС

Під файлами розуміють набір даних, що організовано у вигляді сукупності записів однакової структури. Для керування цими даними створюються відповідні системи керування файлами.

Системне програмне забезпечення.

2

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

Саме файлова система визначає спосіб організації даних на диску або на якомусь іншому носії даних. В якості приклада можна привести файлову систему FAT ( file allocotion table ) реалізація для якої є в абсолютній більшості ОС (МS-DOS, OS/2, Windows 95, NT, Linux).Хоча слід зазначити, що не зважаючи на те, що всі ці ОС підтримують роботу з файлами, організованими по принципу FAT, однак програмні модулі відповідних файлових систем не є взаємозамінні. Крім того, вони мають свої індивідуальні особливості і обмеження. Таким чином мова піде про принципи роботи файлової системи, а не конкретно її реалізацію.

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

Система керування файлами є основною підсистемою в абсолютній більшості сучасних ОС.

По-перше: через систему управління файлами зв’язуються по даними всі системні програми обробки.

По-друге: з допомогою цієї системи вирішуються проблеми централізованого розприділення дискового простору та управління даними.

По-третє: завдяки використанню системи управління файлами користувачу надаються наступні можливості:

створення, знищення, перейменування, переміщенння, іменованих наборів даних (файлів);

робота з не дисковими периферійними пристроями, як з файлами;

обмін даних між файлами, між пристроями, між файлом і пристроєм (і навпаки);

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

керування файлами (частина АРІ - application program interface –

орієнтована на роботу з файлами)

захист файлів від несанкціонованого доступу.

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

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

Системне програмне забезпечення.

3

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

Розпочнемо огляд основних особливостей побудови файлових систем з логічної структури файла.

а)

поточний вказівник

Запис 1 Запис 2

Запис і

Запис n

Системне програмне забезпечення.

4

б)

Область індексів

індекс

A

F

L

основна область

Ключ і

Запис

Ключ

Запис

….

Ключ А

Запис

 

 

і+k

 

 

 

 

Ключ j

Запис

Ключ

Запис

….

Ключ F

Запис

 

 

j+k

 

 

 

 

Ключ L Запис

область переповнення

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в)

Каталог бібліотеки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Елемент

Елемент

 

 

 

Елемент

 

 

розділу А

розділу В

 

….

 

розділу Q

 

 

 

 

 

Бібліотека

 

 

 

 

Розділ А

 

 

 

Розділ В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

….

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вільний простір

 

 

 

 

 

 

 

 

 

 

 

 

Мал. Основні логічні структури даних: а) послідовна, б) індексно-послідовна, в) бібліотечна.

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

Системне програмне забезпечення.

5

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

б) Індексно-послідовна структура будується таким чином, що пошук елементів файлу проводиться за допомогою 2-х методів:

-в послідовному порядку;

-в довільному порядку.

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

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

Основна проблема – це проблема розширення файлу при роботі з ним. Тому вводять область переповнення, куди будуть заносити записи, що динамічно вводяться в файл, які неможливо розмістити в основній області із-за відсутності в ній вільного місця.

в) Бібліотечна структура файлів. Дана структура передбачає два рівня:

-обліковий рівень,

-інформаційний рівень.

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

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

Зрозуміло, що той чи інший вид фізичної структури обумовлений способом розподілу ресурсу зовнішньої пам’яті. Вимоги до алгоритмів розподілу дуже різноманітні і, як правило суперечливі. Алгоритм розподілу

Системне програмне забезпечення.

6

повинен бути таким, щоб він забезпечував швидкий пошук як зайнятих ділянок, так і вільних фрагментів пам’яті.

На практиці для розподілу зовнішньої пам’яті використовуються по суті, ті самі алгоритми, що і для розподілу ОП. Відмінність – у способах реалізації механізмів розподілу.

І спосіб: Ділянки вільної ОП (дири) зв’язують за деяким правилом в список (Наприклад впорядковують дири за розміром) Вказівники на кожний наступний елемент списку входять до складу самих дір. Рух по списку до деякого і-го елемента (і-ї дири) вимагав би і-1 звернення до диску. Тому при зв’язуванні дир на диску в список, вказівники на елементи списку, як правило обєднують в деяку таблицю, яка заноситься до ОП. При необхідному пошуку відбувається пошук відповідного вказівника, що веде до зменшення часу пошуку.

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

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

Приклад: Розподіл зовнішньої пам’яті, який прийнятий в ОС UNIX

Система потенціально орієнтує користувача на можливість динамічної зміни розмірів файлів в межах до 1Гб. Кожен файл в системі має дескриптор (див. мал.) у складі якого зберігається список, що містить 13 номерів блоків на диску. Список використовується для адресації до тих блоків, які входять до складу файлу. Використовуються і пряма і непряма адресації. Перші 10 елементів списку безпосередньо вказують на 10 блоків, в яких можуть бути розміщені файлові дані. Якщо об’єм файлу більше, то використовуються наступні три елементи списку.

11-й елемент використовується для однорівневої непрямої адресації. Якщо об’єм файлу перевищує (10+128) блоків (кожний блок – 512 байт), то використовуються 12-й або 13-й елемент списку в дескрипторі.

12-й елемент вказує на другий рівень непрямої адресації. 13-й на третій рівень непрямої адресації.

Тобто, звернення може відбуватися до 1283 блокам файлу.

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

Системне програмне забезпечення.

7

Дескриптор файлу

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

10

11

12

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блоки

 

 

 

 

 

файлу

Блоки непрямої адресації

 

 

 

 

 

 

 

 

 

1

2

128

 

 

1 2

 

… 128

 

1 2 … 128

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2 … 128

1 2 … 128

1 2 … 128

1 2 … 128

 

 

 

 

 

 

1 2 … 128 1 2 … 128

….

… і.т.д

… і.т.д

Адресація блоків файлу в ОС UNIX

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

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

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

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

Перший варіант ОС будемо називати – ОС з однорівневими файловими системами (MS DOS)

Другий варіант – UNIX-подібним.

Підсистема керування вводом-виведенням

Функціонування будь-якої обчислювальної системи звичайно зводиться до виконання двох видів роботи: обробці інформації і операцій по здійсненню її введення-виведення. Процеси займаються обробкою інформації і виконанням операцій введення-виведення.

Зміст понять "обробка інформації" і "операції введення-виведення" залежить від того, з якого погляду ми дивимося на них.

Зпогляду програміста під "обробкою інформації" розуміється виконання команд процесора над даними, що лежать у пам'яті незалежно від рівня ієрархії

-у регістрах, кеші, оперативної чи вторинної пам'яті. Під "операціями введення-виведення" програміст розуміє обмін даними між пам'яттю і пристроями, що є зовнішніми стосовно пам'яті і процесора, такими як магнітні стрічки, диски, монітор, клавіатура, таймер.

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

Ми розберемо, що відбувається в комп'ютері при виконанні операцій введення-виведення, і як операційна система керує їх виконанням. При цьому для простоти ми будемо вважати, що обсяг оперативної пам'яті в обчислювальній системі досить великий, тобто всі процеси цілком розташовуються в оперативній пам'яті, і тому поняття "операція введеннявиведення" з погляду операційної системи і з погляду користувача змістовно збігаються.

Фізичні принципи організації введення-виведення.

Існує багато різноманітних пристроїв, що можуть взаємодіяти з процесором і пам'яттю: таймер, тверді диски, клавіатура, дисплеї, миша, модеми і т.д. Частина цих пристроїв може бути убудована усередину корпуса комп'ютера, частина - винесена за його межі, і спілкуватися з комп'ютером через різні лінії зв'язку: кабельні, оптоволоконні, радіорелейні, супутникові і т.д. Незважаючи на все різноманіття пристроїв, керування їх роботою й обмін інформацією з ними будуються на відносно невеликій кількості принципів.

Структура системи введення-виведення.

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

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

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

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

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

Існують пристрої, призначені тільки для введення інформації, пристрої, призначені тільки для виводу інформації, і пристрої, що можуть робити і введення, і виведення.

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

Тим самим конструктори обчислювальних систем переклали головний біль, зв'язаний з підключенням зовнішньої апаратури, на розроблювачів самої апаратури, змушуючи їх дотримуватися визначеного стандарту.

Схожий підхід виявився продуктивним і в області програмного підключення пристроїв введення-виведення. Ми можемо розділити пристрої на відносно невелике число типів, що відрізняються по набору операцій, що можуть бути ними виконані, вважаючи всі інші розходження несуттєвими. Ми можемо потім специфікувати інтерфейси між ядром операційної системи, що здійснює деяку загальну політику введення-виведення, і програмними частинами, безпосередньо керуючими пристроями, для кожного з таких типів. Більш того, розроблювачі операційних систем одержують можливість звільнитися від написання і тестування цих специфічних програмних частин, що одержали назву драйверів, передавши цю діяльність виробникам самих зовнішніх пристроїв. Фактично ми приходимо до використання принципу багаторівневої побудови системи керування введенням-виведенням для операційної системи. Два нижніх рівні цієї багатослойної системи складає hardware: самі пристрої, що безпосередньо виконують операції, і їх контролери, що служать для організації спільної роботи пристроїв і іншої обчислювальної системи. Наступний рівень складають драйвера пристроїв введення-виведення, що ховають від розроблювачів операційних систем особливості функціонування конкретних приладів і які забезпечують чітко визначений інтерфейс між hardware і вищім рівнем - рівнем базової підсистеми введення-виведення, що, у свою чергу, надає механізм взаємодії між драйверами і програмною частиною обчислювальної системи в цілому.

Соседние файлы в папке spz