Операційні системи - Конспект, раздел Образование,
Операційні Системи
...
Операційні системи
Конспект лекцій
Введення
У першому наближенні ОС можна визначити як комплекс програм, що забезпечують інтерфейс між апаратурою комп'ютера, прикладними програмами та… · Організації ефективної роботи апаратури комп'ютера;
· Забезпечення зручного використання ресурсів комп'ютера як прикладними програмами, так і користувачем, працюють із…
Рекомендації по літературі
Зміст лекційного курсу не обов'язково на 100% співпаде з даними конспектом, тому надійніше всього ходити на лекції і мати до іспиту власний конспект.
З книг загального характеру підручник / 1 / найбільше відповідає даним курсом, як за змістом, так і в ще більшому ступені за загального погляду на предмет. Цю книгу можна знайти і в Мережі, а також в локальній мережі кафедри.
Похвали і пошани заслуговує книга / 2 / - величезний за обсягом і досить простий по викладу огляд всього важливого об ОС.
Досить хороша також книга / 3 /, використовувана як основний підручник з ОС в багатьох американських університетах.
Ледарям нагоді книга / 4 /, в якій, поряд з іншими питаннями системного програмування, коротко і досить толково викладені основні проблеми ОС. Правда, книга старкувата.
Книги / 5 / і / 6 / містять багато корисного з практичних питань проектування ОС, а / 7 / залишається добрим джерелом з теоретичних і алгоритмічним питань.
З літератури по Windows слід перш за все рекомендувати класичну книгу / 8 /, яка робить зрозумілими багато питань, важко перетравлювані по офіційній документації. Більш глибокий розбір того, «як це зроблено в Windows», можна знайти в книзі / 9 /. На жаль, ця книга помітно поступається чудовою, але застарілої за матеріалом книзі того ж автора / 10 /, яку, тим не менш, корисно прочитати тим, кого цікавлять питання практичної реалізації ОС.
На тлі незліченних і невідмітних один від одного користувальницьких руководств по UNIX слід виділити досить серйозну роботу / 11 /. Не втратила інтересу старенька, тонка книжка / 12 /, в якій міститься багато корисного про основні структурах даних і алгоритмах UNIX. Набагато докладніше ті ж питання розглянуті в іншій старій книзі, яка давно придбала популярність в електронному варіанті / 13 /. Паперове видання цієї книги російською мовою існує тільки в піратському варіанті, без зазначення імені автора.
Для тих, кого ще цікавить MS-DOS, можна порекомендувати / 14 /, це одна з кращих книг на дану тему.
Деякі алгоритми, використовувані при реалізації різних ОС, добре викладені у класичній книзі / 15 /.
Великі колекції літератури і документації по ОС є в Інтернеті. Серед російськомовних сайтів можна рекомендувати, наприклад, / 16, 17, 18, 19, 20 /.
Знання англійської мови відкриває доступ до моря свіжої інформації в Інтернеті. Величезна купа відомостей по Windows міститься в / 21 /. На сайті / 22 / можна знайти цікаві статті з окремих питань архітектури Windows, а також скачати ряд корисних утиліт. З великого числа сайтів, присвячених UNIX і Linux, можна назвати, наприклад, / 23 / і / 24 /. На сайті / 25 / можна знайти багато статей і книг з актуальних питань програмування, в тому числі по ОС.
Короткий нарис історії ОС
Вивчення історії розвитку ОС показує, що всі істотні просування в галузі архітектури ОС пов'язані з впливом двох основних чинників:
· Прогрес технології, що приводить до швидкого зростання характеристик апаратури ЕОМ та до появи принципово нових типів апаратури;
· Принципово нові ідеї, що виникають у проектувальників.
Не вплутуючись в давню суперечку матеріалістів з ідеалістами, в даному окремому випадку доводиться визнати, що перший, матеріальний фактор визначав розвиток ОС на 80 - 90%. Такі технологічні прориви, як винахід магнітних дисків, мікропроцесорів, створення високоякісних відеомоніторів, настійно вимагали радикальних змін у технології роботи з комп'ютером, і внаслідок цього обумовлювали створення принципово нових типів ОС або їх окремих підсистем. З іншого боку, деякі ідеї в області організації обчислювального процесу та інтерфейсу дали серйозний поштовх вдосконаленню архітектури комп'ютерів.
Не знаючи хоча б у загальних рисах основних етапів розвитку апаратного і програмного забезпечення, важко зрозуміти багато особливостей сучасних ОС.
Додатковий аргумент на користь знання історії полягає в тому, що багато технічних рішень, які, здавалося, назавжди пішли в минуле разом з конкретними системами, несподівано знову опиняються актуальними на новому витку розвитку. Деякі приклади такого роду будуть розглянуті в курсі.
Типовий комп'ютер першого - другого поколінь являв собою велику кімнату, заставлену шафами і повиту кабелями. Кожне з основних пристроїв -… Все це коштувало великих грошей, споживало шалену кількість електроенергії [1]… У таких умовах машинний час коштувало дуже дорого. Тим не менш, звичайна практика використання ЕОМ не сприяла…
Найважливішим організаційним зміною, подією на цьому етапі розвитку, стало масове вигнання програмістів з машинних залів, як фактора, лише вносить… Тепер від програміста було потрібно зібрати пакет перфокарт, що містить його… Обійтися без настільки докладних інструкцій було не можна, тому що програміст не був присутній при запуску завдання і…
До однієї ЕОМ підключається декілька десятків робочих місць, обладнаних дисплеєм (монітор + клавіатура) і спільно використовують обчислювальні… Режим поділу часу став величезним полегшенням для програмістів, які знову… Для трудомістких обчислювальних завдань, які передбачають рахунок за раніше налагодженим програмам, режим поділу часу…
Поява і бурхливий поширення персональних комп'ютерів (ПК) викликало до життя нове покоління ОС, які опинилися у багато разів простіше своїх… Найбільш популярною ОС для ранніх восьмирозрядних ПК була система CP / M…
Стала реальною така річ, як багатозадачна ОС для ПК. Треба сказати, що спочатку ідея системи, в якій один користувач запускає одночасно кілька… А все ж, як би ви обгрунтували користь багатозадачності для сучасних ОС типу… На зміну ОС, які виконували текстові команди, що вводяться користувачем з клавіатури, прийшли системи, в яких…
· За призначенням.
- Системи загального призначення. Це досить розпливчасте назва означає ОС,… - Системи реального часу. Цей важливий клас систем призначений для роботи в контурі управління об'єктами (такими, як…
Дуже рідко можна дати однозначну відповідь на подібні питання, якщо мова йде про практично використовуваних системах. Система або її частина, яка…
Що розуміється під надійністю ОС?
Перш за все, її живучість, тобто здатність зберігати хоча б мінімальну… По-друге, здатність, як мінімум, діагностувати, а як максимум, компенсувати хоча б деякі типи апаратних збоїв. Для…
Найважливішим показником временнóй ефективності є продуктивність системи, тобто усереднена кількість корисної обчислювальної роботи,… У програмуванні відома аксіома: виграш у часі досягається за рахунок програшу… Турбота від ефективності довгий час стояла не першому місці при розробці програмного забезпечення, і особливо ОС. На…
Розробники кожної ОС мають власні уявлення про зручність, і кожна ОС має своїх прихильників, які вважають саме її ідеалом зручності.
Гарантією масштабованості служить продумана модульна структура системи, що дозволяє в ході установки системи збирати та налаштовувати потрібну… У деяких випадках фірми, що виробляють програмне забезпечення, штучно… користувач купує ліцензію на дорожчу версію. Але це вже питання, пов'язане не з технічною стороною справи, а з…
Однією з головних умов здатності системи до розвитку є добре продумана модульна структура, в якій чітко визначені функції кожного модуля і його… Важливою вимогою до розвитку ОС є сумісність версій знизу вгору, що означає… Фірми-виробники ОС докладають максимум зусиль для забезпечення сумісності знизу вгору, щоб не відлякати користувачів.…
Властивість мобільності не настільки однозначно позитивно, як може здатися. Щоб програма була мобільна, при її розробці слід відмовитися від… З іншого боку, історія системного програмування всіяна останками чудових,… У той же час мобільна система UNIX продовжує процвітати четвертий десяток років, набагато переживши ті комп'ютери, для…
· Управління пристроями. Маються на увазі всі периферійні пристрої, що підключаються до комп'ютера, - клавіатура, монітор, принтери, диски і т.п.
… · Управління даними. Під цим старовинним терміном зараз розуміється робота з… · Управління процесами. Ця сторона роботи ОС пов'язана з запуском і завершенням роботи програм, обробкою помилок,…
ОС, що використовуються в подальшому викладі
У наступних розділах курсу будуть розглядатися основні функції ОС і способи їх реалізації. Виклад загальних підходів буде доповнюватися прикладами, що відносяться головним чином до трьох широко відомим ОС:
· MS-DOS - приклад простої однозадачной системи;
· Windows - складна сучасна система, яка виросла на базі MS-DOS;
· UNIX - система, за можливостями порівнянна з Windows, проте разюче відрізняє по набору основних концепцій і методів реалізації.
MS-DOS
Система MS-DOS була розроблена в 1981 р. спеціально для тільки що з'явився перший 16-розрядної ПЕОМ IBM PC на базі процесора i86. Перша версія системи була жахлива, але працездатна. У наступні роки фірмі Microsoft вдалося значно поліпшити свою систему, хоча деякі пережитки першої версії виявилися незламні. Альянс з фірмою IBM дозволив Microsoft домогтися фантастичного фінансового успіху.
MS-DOS являє собою однозадачной, однокористувальницька, діалогову ОС. Вона веде діалог з користувачем в текстовому режимі і більшою мірою розрахована на обслуговування прикладних програм текстового режиму, хоча допускає і графіку. Робота з мишею повинна забезпечуватися самими прикладними програмами за мінімальної підтримки з боку ОС. Для розміщення програми користувача і для своїх власних потреб MS-DOS дозволяє використовувати 640 Кбайт пам'яті, що здавалося величезною величиною в ті незапам'ятні часи акуратного програмування і повної відсутності файлів AVI і MP3. Пізніше були додані засоби, що дозволяють з деяким зусиллям використовувати до 4 Мб пам'яті.
Інтерфейс MS-DOS з прикладними програмами заснований на викликах програмних переривань, оброблюваних системою. Більшу частину цих переривань прийнято називати функціями DOS.
Система MS-DOS з'явилася стартовим майданчиком для створення Windows. В даний час MS-DOS тихо відмирає, хоча всі версії Windows намагаються забезпечити виконання більшої частини програм, розроблених для їх попередниці.
В даному курсі MS-DOS розглядається як найбільш життєвий приклад простий і добре вивченою однозадачной системи для порівняння з більш потужними багатозадачними системами.
Всі перераховані версії продовжували залишатися надбудовами над MS-DOS, що використовують наявну файлову систему, але додають своє власне управління… У 1993 р. Microsoft випустила Windows NT - повноцінну многозадачную і… Деякий час дві лінії Windows розвивалися паралельно. Чергові версії Windows NT отримали назву Windows 2000, Windows…
UNIX
ОС UNIX була спочатку розроблена в 1969 р. співробітниками фірми Bell Laboratories Кеном Томпсоном і Деннісом Рітчі. У 1971 р. система була перенесена на машини надзвичайно поширеною в 70-ті роки серії PDP-11, а в 1973 р. Рітчі переписав систему на мові C, залишивши лише мінімум тексту на мові асемблера. У перше десятиліття існування UNIX і сама система, і її вихідні тексти поширювалися вільно, що призвело до надзвичайної популярності системи в наукових колах і університетах. Удосконалення системи могли вноситися кожним бажаючим і обговорювалися «всім світом». Зворотним боком такої відкритості стала трудність стандартизації UNIX. Однак у 1988-1990 рр.. був розроблений набір стандартів, що отримав назву POSIX (Portable OS, а закінчення IX - як натяк на UNIX). Ці стандарти фіксували сучасні вимоги до систем типу UNIX з урахуванням теоретичних і практичних досягнень за минулі роки.
Починаючи з перших версій, UNIX являє собою многозадачную, багато користувачів систему поділу часу. Основними достоїнствами UNIX є її висока мобільність, добре продуманий програмний та інтерфейс користувача. Загальновизнаною особливістю UNIX є внутрішня краса, елегантність основних архітектурних рішень. Як відомо, краса програми є вірною ознакою її вдалій конструкції і дає підстави сподіватися, що програма здатна до вдосконалення і буде служити довго. Багаторічна історія UNIX підтверджує це правило.
До недоліків UNIX можна віднести більш низьку ефективність і надійність роботи, що значною мірою є платою за мобільність. Традиційна модель безпеки UNIX не відповідає сучасним вимогам, тому в різні комерційні версії доводиться включати додаткові засоби захисту даних. Широкому розповсюдженню UNIX заважає також те, що процедури встановлення та налаштування системи не такі прості, як у Windows, і при їх виконанні бажано участь програміста.
У 80-і роки були спроби перетворити UNIX в комерційну систему. Однак у 1991-1994 рр.. Лінус Торвальдс, в той час студент-програміст з Гельсінкі, заново написав систему, відповідну стандартам POSIX, але відрізняється від традиційної UNIX більшою надійністю та ефективністю. Ця система отримала назву Linux. Вихідні тексти Linux вільно розповсюджуються, що дозволяє, як за часів молодості UNIX, розвивати систему спільними зусиллями величезної спільноти зацікавлених програмістів. Ефективної координації цих зусиль дуже сприяє Інтернет. Трохи пізніше був відкритий вільний доступ до текстів відомої версії UNIX FreeBSD.
Архітектура UNIX, спочатку призначена для систем поділу часу з одним процесором, згодом виявилася цілком придатною для підтримки мережних систем. Значна частина серверів Інтернету працює під управлінням тієї чи іншої версії UNIX.
В даний час відбувається відчутне зближення різних типів ОС, призначених для підтримки одних і тих же типів обчислювальних систем. Сучасні версії UNIX та Windows надають вельми близькі функціональні можливості, хоча найчастіше в абсолютно різній формі. Вирівнюються також характеристики надійності і продуктивності систем.
Істотною відмінністю UNIX від Windows залишається місце, займане в системі засобами графічного інтерфейсу. Якщо в Windows вікна і все, що з ними пов'язано, є невід'ємною частиною архітектури системи, то для UNIX за традицією основним засобом інтерфейсу з користувачем є текстова консоль. Ті чи інші засоби віконного інтерфейсу, звичайно, присутні в сучасних UNIX-системах, але як додаткова, необов'язкова надбудова скоріше прикладного, ніж системного характеру.
Дуже цікавою особливістю UNIX є розвинений мова команд shell, який дозволяє не тільки вести елементарний діалог із системою, але й писати своєрідні програми (скрипти), за допомогою яких часто вдається вирішити необхідну задачу, не вдаючись до розробки нової програми на одному з традиційних мов програмування .
Управління пристроями
Найважливішими завданнями будь-якої ОС є забезпечення надійної роботи ПУ, ефективне використання всіх можливостей пристроїв.
Для підвищення надійності можуть використовуватися різні апаратно-програмні… Ефективність використання пристроїв означає передусім скорочення часу, що витрачається на обмін даними. Крім…
Як правило, разом з пристроєм поставляється його контролер (адаптер), що містить електронні схеми управління пристроєм. Конструктивно контролер може… Класифікація периферійних пристроїв може бути виконана за різними ознаками.
… · Пристрої послідовного доступу (sequential access) і пристрої довільного доступу (random access). Для послідовних…
Всі переривання можна розділити на три основні типи:
· Апаратні переривання від периферійних пристроїв;
· Внутрішні апаратні переривання (звані також винятками, exceptions);
· Регістр даних служить для обміну даними. Запис даних в такий регістр (якщо вона можлива) означає висновок даних на пристрій, читання даних з… · Регістр управління і стану містить два типи двійкових розрядів (бітів). Біти… У різних комп'ютерах використовується один із двох способів адресації регістрів пристроїв.
Способи організації введення / виводу
Для визначеності покладемо, що програма повинна видати N байт даних з масиву A на символьне пристрій X. Для операції введення можуть… Нехай архітектура пристрою представлена регістром даних X.DATA і… а) Введення / висновок без перевірки готовності
Основною особливістю введення / виводу за опитуванням готовності є цикл очікування. Якщо виконується введення або виведення на повільне пристрій… Таке абсурдне використання процесора може бути виправдане хіба що в тому… Спосіб очікування програмою деякої події, заснований на постійній циклічної перевірці очікуваного умови, називається…
Виконання функції синхронного вводу / виводу включає в себе запуск операції введення / виводу і очікування завершення цієї операції. Тільки після… Синхронний введення / висновок - це найбільш звичний для програмістів спосіб… Виклик функції асинхронного введення / виводу означає тільки запуск відповідної операції. Після цього функція відразу…
Буферизація і кешування
Існує кілька причин для використання буферизації, найважливіші з яких розглянуті нижче.
Швидкість прийому даних дуже нерівномірна: інтервали часу інтенсивного надходження даних перемежовуються з інтервалами простою. Обробка даних… Стандартним рішенням в цій ситуації є використання буфера, розмір якого досить…
Ще більш ефективна схема роботи з двома перемикаються буферами. Поки в першому буфері накопичуються дані, що вводяться, попередня порція даних… Аналогічним чином буферизація може використовуватися і при виведенні даних.
… У деяких випадках виявляється вигідно виконувати введення «з випередженням», тобто вводити ті дані, які поки не…
При фактичному виконанні читання або запису на блоковий пристрій обробляється порція даних, звана фізичним записом або блоком. Розмір фізичного… На рис. 2-2 показана ситуація, коли логічна запис містить 100 байт, а фізична…
Для користувача звично, що в процесі введення числових або строкових значень він може легко відкоригувати помилки введення: «забити» невірний…
Ідея кешування грунтується на так званій гіпотезі про локальності посилань. Ця гіпотеза полягає в наступному. Якщо в якийсь момент часу відбулося… У сучасних обчислювальних системах може використовуватися кілька рівнів… У ролі швидкодіючої пам'яті (кешу) тут виступає масив буферів, розміщений в системній пам'яті. Кожен буфер складається…
Як правило, системі невідомо, чи буде обробка файлу вестися в режимі послідовного або довільного доступу, тому часто використовується та чи інша… Ідея випереджального читання отримала цікавий розвиток в Windows XP. У цій…
· Забезпечити можливість стандартного звернення до будь-якого пристрою, приховуючи від інших частин ОС специфічні особливості окремих пристроїв;
· Досягти максимально ефективного використання всіх функціональних можливостей… Можливість стандартними засобами працювати з різними пристроями дуже бажана з точки зору архітектури ОС і зручності…
Управління пристроями в MS-DOS
Рівні доступу до пристроїв показані на рис. 2-5.
Рис. 1‑5
Тема драйвера містить основну інформацію про пристрій: символьне або блоковий пристрій; для символьних пристроїв - ім'я пристрою; для блочних -… У заголовку містяться адреси блоку стратегії і блоку переривань, а також… Якщо у файлі конфігурації CONFIG.SYS вказані імена файлів додаткових (завантажуваних) драйверів, то ці драйвери…
Рис. 1‑6
Управління блоковими пристроями
Рис. 1‑7
Рис. 1‑9
Прикладні програми можуть працювати з дисками або засобами BIOS (програмне переривання int 13h), або засобами DOS (програмні переривання int 25h -… Для підвищення ефективності роботи з дисками в MS-DOS використовуються… Чому в MS-DOS не потрібний такий великий кеш, як в UNIX?
Управління пристроями в Windows
У Windows використовується багаторівнева структура драйверів, в якій високорівневі драйвери можуть грати роль фільтрів, що виконують спеціальну… Як не дивно, в Windows NT низькорівневі драйвери - це ще не самий нижній… Незважаючи на стандартизацію структури, можна виділити декілька спеціальних типів драйверів, що відрізняються…
У ряді випадків програміст все ж може віддати перевагу безпосередню роботу з пристроєм. Щоб отримати доступ до пристрою, програма повинна відкрити… Відкривши пристрій, програма може або читати або записувати дані,…
Управління пристроями в UNIX
Для символьних пристроїв використовуються тільки символьні драйвери. Для кожного блокового пристрою зазвичай є два різних драйвера: блочний і… Крім драйверів реальних фізичних пристроїв, система може включати драйвери… При завантаженні системи формуються дві таблиці, для символьних і для блочних драйверів. Рядки таблиці відповідають…
З кожним спеціальним файлом пов'язані два числа, звані старшим і молодшим номерами пристрої. Старший номер визначає номер рядка в таблиці символьних…
Управління даними
Файл є набір даних, що зберігається на периферійному пристрої і доступний по імені. При цьому конкретне розташування даних на пристрої не цікавить… Поняття «файлова система» означає стандартизовану сукупність структур даних,… Серед завдань, що вирішуються підсистемою управління даними, можна назвати наступні:
· Ім'я файлу. У старих ОС довжина імені була жорстко обмежена 6 - 8 символами з метою економії місця для зберігання імені та прискорення роботи. В… · Розширення імені. За традицією, так прийнято називати праву частину імені,… · Тип файлу. Деякі ОС виділяють декілька істотно різних типів файлів, наприклад, символьні і двійкові, файли даних і…
· Безперервне розміщення характеризується тим, що кожен файл займає безперервну послідовність блоків.
· Сегментоване розміщення означає, що файли можуть розміщуватися «по…
Як зазначалося в п. 1.6, для реалізації багатокористувацької захисту даних необхідна наявність апаратних засобів, таких як привілейований режим… Для будь-якої системи захисту характерна наявність, принаймні, трьох… · Список користувачів системи, містить імена, паролі і привілеї, присвоєні користувачам.
Може призвести. Якщо один процес оновлює дані у файлі, а інший в цей час намагається читати ці ж дані, то він може прочитати частково оновлені дані.… В принципі, завжди безпечними є лише два крайніх випадку:
· Тільки один процес працює з файлом, виконуючи читання і запис;
Файлова система FAT і управління даними в MS-DOS
В ОС Windows також можливе використання FAT, особливо виправдане для дискет. Для жорстких дисків великого об'єму система FAT стає малоефективною і…
Рис. 1‑11
Робота з файлами в MS-DOS
· Створювати файл, вказуючи його повне ім'я;
· Видаляти файл;
· Змінювати атрибути файлу;
Щоб відкрити існуючий файл, слід викликати відповідну функцію, вказавши в якості параметрів ім'я файлу і бажаний режим доступу (один з трьох: тільки… Хендл - це деяке число, яке система повертає користувача програмі при вдалому… MS-DOS надає цілком достатній набір функцій для роботи з відкритими файлами. Сюди включаються функції читання і запису…
Таблиця SFT (System File Table) містить записи про всіх файлах, в даний момент відкритих програмами користувача і самої ОС. Ця таблиця зберігається… Якщо один і той же файл був відкритий кілька разів (неважливо, однієї і тієї ж… Кожен запис містить докладну інформацію про файл, достатню для виконання операцій з ним. Зокрема, в записі SFT…
У Windows 95 було подолано прикре обмеження довжини імені файлу - знамените правило «8 + 3». Здавалося б, при розмірі записі каталогу в 32 байта… Розробники з Microsoft звернули увагу, що ті записи каталогу, в яких… Починаючи з Windows 98, з'явилася можливість використовувати новий різновид файлової системи - FAT-32. Її відмінність…
Файлові системи і управління даними в UNIX
Архітектура файлової системи UNIX
Тут розглядається класична файлова система UNIX, звана іноді системою s5fs і підтримувана всіма версіями UNIX. Сучасні удосконалення файлової системи будуть розглянуті в п. 3.7.4.
Жорстка зв'язок означає зв'язок між ім'ям файлу і самим файлом. Особливість UNIX в тому, що будь-який файл може мати декілька (точніше, необмежена… Чи є якась користь від кількох імен одного файлу? Безумовно, є. Припустимо,… Що станеться, якщо один з користувачів видалить ім'я файлу з каталогу? Відбудеться тільки обрив однієї з жорстких…
Якщо уявити файлову систему на дисковому томі у вигляді дерева, то монтування томи - це як би «щеплення» одного дерева до якого-небудь місця на…
- Звичайний файл, тобто файл, що містить дані;
d - каталог;
c-символьний спеціальний файл, тобто, насправді, символьне пристрій;
Крім того, для файлу задаються атрибути захисту, що зберігаються у вигляді 9 біт, які визначають допустимість трьох основних видів доступу - на… При відображенні каталогу за допомогою команди ls-l ці атрибути показуються у… r w x r - x - x
Рис. 1‑14
В основі роботи з даними, як і для MS-DOS, лежить поняття хендл відкритого файлу. Програма отримує значення хендл при відкритті або створенні файлу,… UNIX не має коштів управління поділом доступу при відкритті файлу, тобто… Для реалізації доступу до файлу за значенням хендл в UNIX використовуються таблиці, аналогічні таблицям JFT і SFT в…
Ці недоліки наступні:
· Ненадійність;
· Низька продуктивність.
Файлова система NTFS і управління даними в Windows
Система NTFS спроектована як дуже потужна багатокористувальницька файлова система з великою кількістю можливостей. Тим не менше, як стверджують… Серед можливостей, відсутніх в FAT, але реалізованих в NTFS, можна назвати… · Розвинуті засоби захисту даних, що запобігають можливість несанкціонованого доступу до даних і при цьому дозволяють…
Структури дискових даних
Загальну структуру зберігання даних на диску в системі NTFS часто характеризують двома короткими фразами:
На диску немає нічого, крім файлів.
У файлі немає нічого, крім атрибутів.
Поговоримо докладніше про цих загадкових твердженнях.
Головна таблиця файлів
Найбільш важливою частиною файлової системи на диску є головна таблиця файлів (MFT, Master File Table). Ця таблиця містить записи про всі файли і каталогах, розташованих на даному томі. Розмір запису становить один кластер, але не менше 1 Кб. Якщо метадані про файл не поміщаються в одному записі, то можуть бути використані додаткові записи (не обов'язково сусідні).
Після форматування дискового тому, коли на ньому ще немає користувальницьких файлів, MFT містить 16 записів, з яких 11 містять описи файлів метаданих, а 5 зарезервовані як додаткові. Список файлів метаданих досить цікавий.
· Перший запис MFT описує саму MFT, яка теж вважається файлом. Це аж ніяк не формальність, оскільки MFT може, як і інші файли, складатися з декількох сегментів, розміщення яких задається в цьому записі.
· Копія перших 16 записів MFT, яка зберігається як файл десь у середині диска. Це дозволяє відновити метадані в разі пошкодження основного примірника MFT.
· Журнал протоколювання транзакцій.
· Файл інформації про томі: ім'я томи, серійний номер, дата форматування і т.п.
· Файл з перерахуванням всіх атрибутів, використовуваних для опису файлів на даному томі. Таким чином, список атрибутів не є жорстко фіксованим і може бути розширений в наступних версіях NTFS.
· Кореневий каталог томи.
· Бітова карта зайнятості кластерів томи.
· BOOT-сектор. Він як і раніше є першим сектором томи, але теж вважається файлом.
· Файл, що складається з усіх дефектних кластерів на даному томі. Це дає підстави помітити в бітової карті всі дефектні кластери як зайняті.
· Файл, що містить всі різні дескриптори захисту, використовувані для файлів і каталогів даного тому (див. п. 3.8.4.2).
· Файл, задаючий пари великих / малих літер для всіх мов, підтримуваних Windows. Такі дані необхідні, оскільки імена файлів можуть містити літери обох типів, але в Windows за традицією регістр букв в іменах файлів не розрізняється (на відміну, наприклад, від UNIX).
· Каталог, що містить ще 4 файлу метаданих, доданих в Windows 2000. До них відносяться:
- Файл унікальних 16-байтових ідентифікаторів, створюваних Windows для кожного файлу, на який є ярлик або OLE-зв'язок; це дозволяє автоматично виправити ярлик, якщо вихідний файл був переміщений в інший каталог або навіть на інший комп'ютер в межах домену мережі;
- Файл квот дискового простору, що виділяються кожному користувачеві;
- Файл точок повторного аналізу, встановлених для каталогів даного томи;
- Файл журналу змін, що відбуваються на томі.
Далі, починаючи з 17-ої позиції MFT, зберігаються записи метаданих про файли і каталогах, розміщених на даному томі.
Система намагається зберегти MFT безперервної, оскільки це прискорює звернення до всіх описаним у ній файлам. Для цього система намагається по можливості не позичати деяку область на початку диска під розміщення файлів, зберігаючи вільне місце для росту MFT.
Атрибут в NTFS складається з заголовка і значення, а заголовок, в свою чергу, містить тип атрибуту, його ім'я, довжину і дані про розміщення… Розглянемо найбільш важливі типи атрибутів, використовуваних у записі про… · Ім'я файлу. Цей атрибут завжди резидентів. Допускається декілька атрибутів цього типу, наприклад, «довге» ім'я (до…
Функція CreateFile може використовуватися для роботи з файлами будь-якої файлової системи, підтримуваної Windows (зокрема, FAT і NTFS).
Параметри цієї функції численні і дають досить гарне уявлення про можливості… · Ім'я файлу (включаючи шлях до каталогу, якщо файл розташований не в поточному каталозі). Замість імені файлу може…
Як відомо, Windows дозволяє використовувати різні файлові системи, при цьому можливості захисту даних визначаються архітектурою конкретної файлової… передбачено), то Windows може хіба що обмежити доступ до всього того, але не…
Не хоче хто-небудь спробувати?
Система шукає введене ім'я користувача спочатку в списку користувачів даного… На підставі відомостей з облікового запису користувача система формує структуру даних, яка називається маркером…
Основним змістом атрибутів захисту є інша структура - дескриптор захисту. Цей дескриптор містить наступні дані:
· Ідентифікатор захисту (SID) власника об'єкта;
· Ідентифікатор захисту первинної групи власника об'єкта;
Управління процесами
У однозадачних ОС управління процесами вирішує наступні завдання:
· Завантаження програми в пам'ять, підготовка її до запуску і запуск на… · Виконання системних викликів процесу;
Реалізація багатозадачного режиму
Проаналізуємо це визначення. Воно підкреслює послідовний характер процесу, тобто виконання команд в певному порядку. Термін «задача» ми будемо… Ще один важливий момент у визначенні - згадка даних. У багатозадачних системах… При описі роботи багатозадачних систем основна увага приділяється питанням, пов'язаним з паралельним виконанням, тобто…
Зрозуміло, якщо в системі є декілька процесорів, то може бути організовано справжнє паралельне виконання процесів, кількість яких не перевищує… Важливо відзначити, що для більшості завдань взаємодії процесів немає різниці,… · Проблеми коректної та ефективної реалізації паралельного (тобто зазвичай квазіпараллельний) виконання процесів - це…
Основних станів всього три.
· Робота (running) - в цьому стані знаходиться процес, програму якого в даний… · Готовність (ready) - стан, їх якого процес може бути переведений в стан роботи, як тільки це визнає потрібним…
У системах з невитесняющей диспетчеризацією (non-preemptive multitasking) робота будь-якого процесу може бути перервана тільки «за ініціативою… Але навіть якщо дія, необхідну процесом, може бути виконано без блокування,… У попередньому п. 4.2.3 зміна поточного процесу, не пов'язана з його блокуванням, була названа витісненням процесу.
…
Дескриптор процесу містить у собі всі ті дані про процес, які можуть знадобитися ОС при різних станах процесу. У число елементів дескриптора можуть… Контекст процесу містить дані, необхідні тільки для поточного процесу. Суду… Точний склад дескриптора і контексту сильно залежать від конкретної ОС.
Проблема полягає в тому, що новий поточний процес може викликати ту ж саму системну функцію. Виникає питання: чи можливо коректне виконання другого… Простий приклад подібної ситуації - запуск в ОС декількох програм, кожна з… Функція або процедура, для якої можливе коректне виконання її повторного виклику до завершення першого виклику,…
Однією з найбільш очевидних дисциплін є проста кругова диспетчеризація (round robin scheduling). Її суть в наступному. Всі активні процеси… У певному сенсі протилежною дисципліною є фоново-оперативна диспетчеризація… Між описаними двома крайнощами лежить велика різноманітність дисциплін пріоритетною диспетчеризації. Всі вони…
Проблеми взаємодії процесів
Ізоляція процесів, по-перше, є необхідною умовою надійності і безпеки багатозадачної системи. Один процес не повинен мати можливості втрутитися в… По-друге, проектування і налагодження програм надзвичайно ускладнилися б, якби… З іншого боку, є ситуації, коли взаємодія необхідна. Процеси можуть спільно обробляти загальні дані, обмінюватися…
Проблему часто пояснюють на такому, трохи умовному, прикладі. Нехай є система резервування авіаквитків, в якій одночасно працюють два процеси.… Процес A: Процес B:
Процесс A:
Процесс B:
. .…
семафори. Тут ми розглянемо їх найпростіший варіант - двійкові семафори, вони ж мьютекс (mutex, від слів MUTual EXclusion - взаємне виключення).
Двійковим семафором називається змінна S, яка може приймати значення 0 і 1 і… · P (S) - операція заняття (закриття) семафора. Вона чекає, поки значення S стане рівним 1, і, як тільки це станеться,…
Засоби взаємодії процесів
Можна довести, що використання двійкових семафорів дозволяє коректно вирішити будь-які проблеми синхронізації процесів. Але зовсім не обов'язково це рішення виявиться простим і зручним. У деяких випадках використання семафорів повинно все ж супроводжуватися небажаним активним очікуванням.
За десятиліття, що минули після винаходу семафорів, були запропоновані різні засоби синхронізації, більш пристосовані для різних типових завдань. Розглянемо деякі з них.
Область застосування цілочислових семафорів дещо інша, ніж у двійкових. Цілочисельні семафори застосовуються в задачах виділення ресурсів з… Для цілочисельних семафорів іноді зручно використовувати модифіковану функцію…
Життєва ситуація: покупець у супермаркеті, що вибирає, до якої з кас зайняти чергу. Добре б вгадати чергу, яка пройде швидше ...
Функція множинного очікування P (S1, S2, ... Sn) дозволяє вказати в якості… Інший, не менш корисний варіант множинного очікування, це очікування моменту, коли всі зазначені семафори виявляться…
Таким чином, сигнали сильно схожі на переривання, але тільки високорівневі, керовані системою, а не апаратурою.
Механізм сигналів дозволяє вирішити, наприклад, проблему критичної секції… Подумайте самостійно, як це можна зробити.
По-перше, повідомлення не переривають роботу процесу-одержувача. Замість цього вони стають в чергу повідомлень. Процес повинен сам викликати функцію… По-друге, з повідомленням, на відміну від сигналу, може бути пов'язана…
Спільна пам'ять служить тільки засобом обміну даними, але ніяк не вирішує проблем синхронізації. Ділянки програми, де відбувається робота із…
Як це накажете розуміти?
Перш за все, давайте відзначимо, що процесу, чинному в поодинці, не під силу… Інша річ, якщо в справі замішані два або більше процесів. Згідно з іншим визначенням, даним у / 2 /, «Група процесів…
Управління процесами в MS-DOS
Завантаження ОС завершується запуском програми командного інтерпретатора COMMAND.COM, в завдання якого входить:
· Читання й аналіз команд, що вводяться користувачем з клавіатури;
· Виконання внутрішніх команд системи, таких, як команда видачі змісту каталогу, команди копіювання, видалення і…
"Змінна = значення", 0
Тут змінна і значення - будь-які (в розумних межах) текстові величини, байт 0… Поняття середовища було введено в системі UNIX і запозичена звідти в MS-DOS і Windows без особливих змін.
Функція Exec вимагає вказівки ряду параметрів, з яких важливі:
· Ім'я файлу запускається програми. Якщо ім'я не містить шляху до каталогу, то… · Командний рядок. Так прийнято називати рядок параметрів, що передаються програмі. При запуску програми по команді…
· Закриваються всі файли, відкриті програмою.
· Звільняються всі блоки пам'яті, відведені для програми і її середовища.
· Відновлюються стандартні обробники описаних нижче переривань int 23h і int 24h, які могли бути змінені відпрацювала…
Тим важливіше виявляється той факт, що в MS-DOS програма користувача має можливість перехопити будь-яке переривання, тобто встановити свій… Перехоплення апаратних переривань дозволяє програмі оперативно реагувати на… Перехоплення програмних переривань дозволяє програмі модифікувати виконання будь-якої функції MS-DOS. Вище говорилося…
Складність проблеми організації взаємодії паралельних процесів істотно різна для систем, що використовують Невитісняючаі витісняюча диспетчеризацію… В системі з невитесняющей диспетчеризацією програмісту досить перевірити, що… Всі версії Windows від 1.0 до 3.11 представляли собою досить потужні багатозадачні системи з невитесняющей…
Об'єкти Windows діляться на об'єкти ядра (KERNEL), що дозволяють керувати процесами, об'єкти USER, що описують роботу з вікнами, і об'єкти GDI, що… Однією з відмінних особливостей об'єктів ядра є атрибути захисту, які можна… Хендл об'єкта може бути використаний тільки тим процесом, який створив або відкрив цей об'єкт. Не можна просто…
Процес створюється при запуску програми (EXE-файлу). Одночасно створюється одна нитка процесу (повинен же хтось працювати!). Створення процесу… · Ім'я файлу запускається програми.
· Командний рядок, передана процесу при запуску.
· Якщо закінчується квант часу, виділений поточної нитки;
· Якщо поточна нитка викликала блокуючу функцію (наприклад,… · Якщо нитка з більш високим пріоритетом прокинулася від очікування або була тільки що запущена.
Функція OpenProcess дозволяє одному процесу отримати хендл будь-якого іншого процесу, вказавши для цього два параметри: ідентифікатор цікавить… А про які, власне, права йдеться? Що саме один процес може зробити з іншим… · Запускати нову нитку процесу;
Синхронізація ниток
· Традиційною для Windows формою синхронізації є обмін повідомленнями (messages). При цьому, механізм повідомлень призначений не тільки для… · Різноманітні умови очікування можуть бути реалізовані за допомогою об'єктів… · Використання змінних типу CRITICAL_SECTION, на відміну від попередніх способів, можливо тільки для синхронізації…
Для створення об'єкта потрібно викликати функцію CreateXxx, де замість Xxx вказується назва конкретного типу об'єктів, наприклад, CreateMutex або… Спільною рисою всіх об'єктів синхронізації є наявність двох станів, одне з… Для конкретних типів об'єктів замість терміна «сигнальний стан» може бути зручно використовувати як синоніми «вільно»,…
· Процеси;
· Нитки;
· Події (у вузькому сенсі);
Недолік використання об'єктів ядра в тому, що звернення до них всякий раз вимагає перемикання контексту з користувальницького на системний і назад,… Якщо потрібно синхронізувати роботу ниток одного і того ж процесу, то більш… Виклик всіх перерахованих функцій виконується системою набагато швидше, ніж виклик функцій, що працюють з хендл…
Повідомлення являє собою структуру даних, що містить тип повідомлення, адресат повідомлення (конкретне вікно, всі вікна або нитка процесу), час… Система посилає повідомлення придатків із найрізноманітніших приводів: при… Велика частина посилаються повідомлень може оброблятися самою системою за замовчуванням. Прикладна програма може взяти…
Управління процесами в UNIX
Існує єдиний спосіб створення процесу в UNIX, і цей спосіб полягає у виклику функції без параметрів fork (). Ця функція створює новий процес, який є… повертає значення 0. Перевірка повернутого значення - найпростіший спосіб для… Типовий фрагмент програми на C може виглядати приблизно так:
Будь-який процес може покинути свою групу і оголосити себе лідером нової групи, до якої будуть відноситися його нащадки. Одна з груп є поточною… Поняття групи процесів відіграє важливу роль в ряді ситуацій при роботі… Процес може, створивши власну групу, потім «відкріпити» від керуючого терміналу. Такий процес, званий в UNIX…
Програмні канали можуть бути безіменними або іменованими. Для створення безіменного каналу процес повинен використовувати системний виклик pipe, яка… містять хендл для читання з каналу і хендл для запису в канал. Після цього для… Дані, записувані в канал, буферизуются системою в пам'яті і потім можуть бути прочитані функціями читання з каналу.…
Основними характеристиками сигналу є його номер і адресат сигналу. У різних версіях UNIX використовується від 16 до 32 сигналів. Номер сигналу… · SIGKILL - процес повинен бути негайно припинений;
· SIGTERM - більш «ввічлива» форма: система пропонує процесу припинитися, але він може і не послухатися;
До засобів, які, згідно POSIX, повинна підтримувати будь-яка сучасна реалізація UNIX, належать, зокрема:
· Сигнали;
· Безіменні і іменовані канали;
Планування процесів
Діаграма основних станів процесу, показана на рис. 4-1, в разі UNIX може бути уточнена так, як показано на рис. 4-2.
Весь діапазон пріоритетів розділяється на верхню частину (пріоритети режиму ядра) і нижню частину (пріоритети режиму задачі). Цей поділ показано на…
Однак при вивченні UNIX можна обійти стороною таку цікаву і розвинену частину системи, як інтерпретатор команд, частіше званий просто шелл… Шелл не є частиною ядра UNIX, за своїм статусом це звичайна прикладна… Набір можливостей, що надаються будь-яким інтерпретатором команд UNIX, настільки широкий, що може бути предметом…
Управління пам'яттю
Для однозадачних ОС управління пам'яттю не є серйозною проблемою, оскільки вся пам'ять, не зайнята системою під власні потреби, може бути віддана в… · Виділення пам'яті для процесу користувача при його запуску та звільнення… · Забезпечення настройки запускається програми на виділені адреси пам'яті;
З іншого боку, кожній комірці пам'яті комп'ютера відповідає її адресу, який повинен поміщатися на шину адреси при кожному зверненні до осередку. Ці… У ЕОМ першого покоління не робилося відмінності між віртуальними і фізичними… В даний час програмування в фізичні адреси може використовуватися лише в дуже спеціальних випадках. Як правило, ні…
У той же час важко розраховувати, що при кожному запуску програми ОС зможе завантажити її по одним і тим же адресам. Якщо це ще в принципі можливо… Для вирішення цієї проблеми в складі файла програми доводиться зберігати… Пізніші архітектури ЕОМ дозволили в значній мірі спростити справу за рахунок використання відносної адресації -…
Рис. 1‑20
Взагалі кажучи, розподіл з динамічними розділами дозволяє більш ефективно використовувати пам'ять, ніж при використанні фіксованих розділів. Однак…
При сегментної організації вся віртуальна пам'ять, використовувана програмою, розбивається на частини, звані сегментами. Це розбиття виконується або… Таким чином, при сегментної організації у програми немає єдиного лінійного… Селектор сегмента представляє деяке число, яке зазвичай є індексом у таблиці сегментів даного процесу. Така таблиця…
Всі віртуальні адреси одного процесу відносяться до єдиного лінійному простору, Простіше сказати, віртуальний адреса виражається одним числом, від 0… Фізична пам'ять також вважається розбитою на частини, розміри яких збігаються… Найпростіший варіант схеми перетворення віртуального сторінкового адреси в фізичну адресу показаний на рис. 5-3.
До переваг сегментної організації в літературі зазвичай відносять наступні.
· Легко можна вказати режим доступу до сегменту в залежності від сенсу його… · У тому випадку, якщо програма працює з двома або більше структурами даних, кожна з яких може збільшуватися в…
Адреса в реальному режимі записується у форматі [сегмент: зсув], однак тут сегмент - це не селектор, адреси рядка таблиці сегментів, як описувалося… В принципі, програми, що працюють в MS-DOS, можуть отримати доступ до пам'яті… Оскільки ділити наявну пам'ять між декількома процесами не доводиться, розподіл виходить нехитре. Основні області…
Управління пам'яттю в Windows
Звичайно, важко розраховувати, що для кожного процесу знайдеться така кількість фізичної пам'яті, мова йде тільки про діапазоні можливих адрес.
Але навіть і в цьому сенсі процесу доступно лише близько 2 Гб молодших адрес… У Windows 95 прийнято хуліганське рішення: система і тут розташовується в старшій половині пам'яті, але ця половина…
Спроба просто-напросто використовувати в програмі довільно вибрану адресу в межах адресного простору процесу, швидше за все, призведе до видачі… Регіон пам'яті завжди має розміри, кратні 4 Кб (тобто він містить ціле число… Для виділення регіону використовується функція VirtualAlloc. Вона вимагає вказівки наступних параметрів.
Як правило, текст програми не піддається змінам в ході її виконання. Це означає, що відповідні віртуальні сторінки залишаються «чистими» і при їх… Проблема виникає в тому випадку, якщо по логіці роботи програми повинна… Якщо запускається EXE-файл знаходиться на дискеті, то система відразу копіює його в сторінковий файл, оскільки…
Робота з таким об'єктом вимагає попередньої підготовки. Спочатку програма повинна створити об'єкт, викликавши функцію CreateFileMapping. Серед… · Хендл попередньо відкритого файлу, який буде відображатися на пам'ять;
· Тип доступу до об'єкту (тільки для читання або і для запису);
Програмісти звикли, що для розміщення параметрів і локальних змінних функцій використовується стек, а виділення ділянок динамічної пам'яті… При створенні нової нитки вона отримує свій власний стек, розмір якого, якщо… Насправді, виділяється 1 Мб резервованої пам'яті. Реального витрачання ресурсів пам'яті при цьому не відбувається,…
Кожен процес в UNIX має власне віртуальне адресний простір, розділяється на області програми, даних і стека. В залежності від архітектури пам'яті… Область програми, як правило, доступна тільки для читання і має фіксований… Коли процес виконує системний виклик exec (тобто починає виконувати іншу програму), всі його області пам'яті…
Література
1. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2001. 544 с.
2. Таненбаум Э. Современные операционные системы. СПб.: Питер, 2002. 1040 с.
3. Столлингс В. Операционные системы. М.: Вильямс, 2002. 848 с.
4. Бек Л. Введение в системное программирование. М.: Мир, 1988. 448 с.
5. Краковяк С. Основы организации и функционирования ОС ЭВМ. М.: Мир, 1988. 480 с.
6. Кейслер С. Проектирование операционных систем для малых ЭВМ. М.: Мир, 1986. 680 с.
7. Шоу А. Логическое проектирование операционных систем. М.: Мир, 1981. 360 с.
8. Рихтер Дж. Windows для профессионалов. М.: Издательский отдел «Русская редакция» ТОО “Channel Trading Ltd.”, 1995. 720 с.
9. Питрек М. Секреты системного программирования в Windows 95. Киев, Диалектика, 1996. 448 с.
10. Питрек М. Внутренний мир Windows. Киев, «ДиаСофт Лтд.», 1995. 416 с.
11. Робачевский А.М. Операционная система UNIX. СПб.: БХВ, 1999. 528 с.
12. Дансмур М., Дейвис Г. Операционная система UNIX и программирование на языке Си. М.: Радио и связь, 1989. 192 с.
13. Бах М. Архитектура операционной системы UNIX.
14. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. М.: Радио и связь, Энтроп, 1995. 382 с.
15. Кнут Д. Искусство программирования. Т.1, Основные алгоритмы. М.: Вильямс, 2002. 720 с.
16. http://www.citforum.ru
17. http://www.rsdn.ru
18. http://www.emanual.ru
19. http://www.infocity.kiev.ua
20. http://www.helloworld.ru
21. http://www.msdn.microsoft.com
22. http://www.sysinternals.com
23. http://www.bcd.org
24. http://www.linux.org
25. http://www.informit.com
Новости и инфо для студентов