Реферат Курсовая Конспект
Системне програмне забезпечення - раздел Образование, Системне Програмне Забезпечення ...
|
Системне програмне забезпечення
Тема 2: Процеси.
Блок керування процесом
Для того, щоби ОС могла керувати процесами, вона повинна володіти всією необхідною інформацією. Для цього для кожного процесу створюється спеціальна інформаційна структура, яка називається – блоком керування процесом (Program Control Block, PCB), або дескриптором процесу, або описувачем задачі. В загальному випадку РСВ вміщує таку інформацію:
1. Ідентифікатор процесу (PID – process identifier).
2. Тип (або клас) процесу, який визначає для ОС деякі правила надання ресурсів.
3. Пріоритет процесу, відповідно до якого ОС надає ресурси. В рамках одного класу процесів у першу чергу обслуговуються процеси з вищим пріоритетом.
4. Змінну стану, яка визначає, в якому стані знаходиться процес (стані готовності, стані виконання, стані блокування).
5. Адресу захищеної ділянки пам’яті, в якій зберігаються біжучі значення регістрів процесора, якщо процес призупиняється (або переривається) не завершивши роботи. Ця інформація називається контекстом задачі.
6. Інформація про ресурси, якими володіє процес або має право користуватись.
7. Адреса місця для організації спілкування з іншими процесами.
8. Параметри часу запуску (момент часу, коли процес повинен активізуватись та періодичність цієї процедури).
9. Для диск–резидентних задач, які постійно знаходяться у зовнішній пам’яті і завантажуються в основну пам’ять тільки на час виконання зберігається адреса задачі на диску в її вихідному стані.
РСВ, як правило, з метою пришвидшення роботи ОС постійно розташовані в основній пам’яті. ОС організовує їх у черги, в залежності від змінної стану переносить процеси з черги в чергу. Для кожного стану ОС підтримує список процесів, що знаходяться в цьому стані.
Таким чином, РСВ – це об’єкт, який визначає процес для ОС.
Begin
While правда do begin
П1хочезайти := правда;
while П2хочезайти do begin { зовнішній цикл очікування }
If вибранийпроцес = другий then begin
П1хочезайти := неправда;
While вибранийпроцес = другий do
П1хочезайти := правда; { внутрішній цикл очікування }
end;
end;
{ початок критичної ділянки П1}
вибранийпроцес := другий;
П1хочезайти := неправда;
... { оператори критичної ділянки П1}
{ кінець критичної ділянки П1}
end;
end;
procedure Процес2
Begin
While правда do begin
П2хочезайти := правда;
while П1хочезайти do begin { зовнішній цикл очікування }
If вибранийпроцес = другий then begin
П2хочезайти := неправда;
While вибранийпроцес = перший do
П2хочезайти := правда; { внутрішній цикл очікування }
end;
end;
{ початок критичної ділянки П2}
вибранийпроцес := перший;
П2хочезайти := неправда;
... { оператори критичної ділянки П2}
{ кінець критичної ділянки П2}
end;
end;
{ основна програма }
Begin
П1хочезайти := неправда;
П2хочезайти := неправда;
вибранийпроцес := перший;
Parbegin
Процес1;
Процес2;
Parend
end;
1. Процес П1 повідомляє про бажання увійти в свою критичну ділянку. Встановлює свій прапорець.
2. Процес П1 переходить до циклу, в якому перевіряє чи процес П2 не хоче також увійти у свою критичну ділянку коду.
3. Якщо, прапорець процесу П2 не встановлений, то П1 пропускає тіло циклу очікування та заходить у свою критичну ділянку.
4. Допускаємо, що П1 при виконанні циклу перевірки виявив, що прапорець П2 встановлено. Це примушує П1 увійти в тіло циклу очікування.
5. Аналізується значення змінної „вибраний процес”, яка використовується для вирішення конфліктів, які виникають у випадку, коли два процеси хочуть одночасно увійти в свої критичні ділянки.
6. Якщо, „вибраний процес” – П1, то він повторно виконує тіло свого циклу очікування моменту коли П2 скине свій прапорець.
7. Якщо, процес П1 виявляє, що „вибраний процес” (має право переваги) – П2, то він заходить у тіло свого циклу та скидає власний прапорець, а потім блокується у циклі доти, поки „вибраним процесом” залишається П2. Скидаючи свій прапорець П1 дає можливість П2 зайти у свою критичну ділянку.
8. З часом П2 вийде із своєї критичної ділянки і виконає оператор „вихід із взаємо-виключення”. Цей оператор забезпечує повернення права переваги процесу П1 і скидання прапорця П2.
9. Тепер у П1 з’являється можливість вийти із внутрішнього циклу очікування і встановити власний прапорець. Потім П1 виконує зовнішній цикл перевірки. Якщо, прапорець П2 (який, тільки що був скинутий) і далі скинутий, то П1 заходить у свою критичну ділянку.
10. Якщо П2 одразу ж намагається знову увійти в критичну ділянку, то його прапорець буде встановлений і П1 знову необхідно буде увійти в тіло зовнішнього циклу.
11. Але у цьому випадку керування вже знаходиться в П1, оскільки зараз саме він є „вибраним процесом”. Зауважимо, що П1 виходячи зі своєї критичної ділянки присвоїв змінній „вибраний процес” значення 1. Тому, П1 тіло конструкції if та виконує зовнішній цикл перевірки, доки П2 не скине власний прапорець, дозволивши П1 зайти у свою критичну ділянку.
Розглянемо цікаву деталь. Коли, П1 виходить із внутрішнього циклу активного очікування, він може втратити центральний процесор, а П2 в той час пройде свій цикл і знову буде намагатися увійти в свою критичну ділянку. При цьому П2 першим встановить свій прапорець і знову увійде в свою критичну ділянку.
Коли, П1 знову отримає у своє розпорядження процесор, він встановить свій прапорець. Оскільки зараз буде черга процесу П1, то П2 (якщо він знову буде намагатися увійти в свою критичну ділянку) буде вимушений скинути свій прапорець і перейти на внутрішній цикл активного очікування. Так що, П1отримає можливість входу в свою критичну ділянку.
У такий спосіб вирішується проблема безмежного відкладення.
Програмне вирішення проблеми реалізації примітивів взаємо-виключення для N процесів вдосконалив Д.Кнут, виключивши можливість безмежного відкладення процесів. Ейзенберг та Макчаєр запропонували рішення яке гарантує, що процес заходитиме у свою критичну ділянку не більше ніж за N – 1 спробу.
Begin
If ресурс_зайнято then
wait(ресурс_звільнено);
ресурс_звільнено := правда;
end;
procedure Звільнити_ресурс;
Begin
ресурс_зайнято := неправда;
signal(ресурс_звільнено);
end;
Begin
ресурс_зайнято := неправда;
end;
Перевага такого монітору в тому, що він може працювати за аналогією до двійкового семафору:
„захопити ресурс” = P – оператор;
„звільнити ресурс” = V – оператор.
Тому монітори, як мінімум, мають таку ж логічну потужність, як і семафори.
Сучасні операційні системи будуються, як правило у вигляді множини асинхронних паралельних процесів, які працюють під керуванням ядра.
Процеси, що організовують паралельні роботи, виконуються незалежно, але вимагають періодичної взаємодії. Тому необхідні засоби для обміну даними між процесами. Одним із таких засобів є кільцевий буфер. Він застосовується в тих випадках, коли процес-виконавець повинен передати дані процесу-споживачу.
Тупики
У багатопрограмній системі процес знаходиться в стані тупику, дідлоку (deadlock) або клінчу (clinch), якщо він очікує деякої події, яка ніколи не відбудеться.
Системна тупикова ситуація, чи „зависання” системи – це ситуація, коли один чи кілька процесів знаходяться у стані тупику (клінчу).
Одна із основних функцій ОС – розподілення ресурсів. Коли ресурси розподіляються поміж багатьма користувачами, кожному з яких надається право виключного керування виділеними йому ресурсами, можливе виникнення тупиків, які не дають процесам деяких користувачів хоч коли-небудь завершитися.
У більшості випадків в ОС тупики виникають у результаті звичайної конкуренції за право мати в розпорядженні певні ресурси (як правило, це ресурси послідовного використання).
Розглянемо таку ситуацію. Двом процесам, що працюють в багато-задачній системі, для виконання своєї роботи потрібні два ресурси, наприклад Друкарка та Диск.
Нехай після того як процес А захопив Друкарку (встановив блокуючи змінну) він був перерваний. Керування отримав процес В, який спочатку захопив Диск, але при виконанні наступної команди (захоплення Друкарки) був заблокований, так як Друкарка вже захоплена процесом А. Керування знову повертається процесу А, який пробує захопити Диск та блокується, оскільки Диск вже виділений процесу В. І в такому стані процеси А та В можуть знаходитися безмежно довго.
Можливі такі варіанти уникнення тупику:
Тупикові ситуації треба відрізняти від звичайних черг, хоча і ті і інші виникають при сумісному використанні ресурсів і зовні виглядають подібно: процес призупиняється та очікує звільнення ресурсу. Але черга – це нормальне явище, ознака високого коефіцієнту використання ресурсів при випадковому надходженні запитів. Вона виникає тоді, коли ресурс є недоступним у біжучий момент, але через деякий час він звільниться і процес продовжить своє виконання.
Тупик, навпаки, в деякому розумінні є ситуацією, що не розв’язується. Звичайна тупикова ситуація. Кожен з процесів утримує ресурс, якого потребує інший процес. Причому ні один з процесів не хоче звільнити ресурс, що належить йому. Кожен з процесів очікує звільнення ресурсу іншим процесом.
Для виникнення тупику необхідні наступні умови:
1) процеси вимагають надання їм права монопольного керування ресурсами, що їм виділяються (умова взаємо-виключення);
2) процеси утримують за собою ресурси, які їм виділені, очікуючи в той же час виділення додаткових ресурсів (умова очікування ресурсів);
3) ресурси неможливо відібрати у процесів (які їх утримують) доки ці ресурси не будуть використані для завершення роботи (умова неможливості перерозподілу);
4) існує кільцевий ланцюг процесів, у якому кожен процес утримує за собою один чи декілька ресурсів, що погрібні наступному процесові з ланцюжка (умова кільцевого очікування);
Виникнення тупику неможливе, коли не виконується хоча б одна із перелічених чотирьох умов. Стратегія боротьби з тупиками полягає в тому, щоб усунути хоча б одну із зазначених умов існування тупику.
Висновки
Головне, що забезпечують нитки, це можливість паралельно виконувати декілька видів операцій в одній прикладній програмі. Паралельні обчислення, а значить і більш ефективне використання ресурсів CPU та менший сумарний час виконання задач, тепер вже реалізується на рівні ниток. Програма, побудована у вигляді ниток в рамках одного процесу, може бути виконана швидше.
Наприклад: Текстовий процесор з врахуванням багато-ниткової (багато-потокової) обробки. Користувач може запросити об’єднання двох документів і одночасно відкривати для редагування наступний документ.
Об’єкт „процес” припускає, що при диспетчеризації треба враховувати всі ресурси, що закріплені за процесом. А при роботі з нитками можна міняти тільки контекст задачі, якщо ми переключаємось з однієї нитки на іншу в рамках одного процесу. Всі інші обчислювальні ресурси при цьому не торкаються. Кожний процес складається, як мінімум, з однієї нитки і тільки якщо є внутрішній паралелізм, програміст може розщепити його на декілька паралельних ниток.
В багатопроцесорних системах зі спільною пам’яттю нитки вже просто необхідні, оскільки вони дозволяють завантажити всі процесорні елементи роботою. Але зауважимо, що бажано зменшити взаємодію ниток між собою, оскільки прискорення від одночасного виконання паралельних потоків може бути зведено до мінімуму через затримки синхронізації і обмін даними.
Для того, щоби можна було ефективно організувати паралельне виконання як процесів, так і ниток, в архітектуру сучасних процесорів включається можливість працювати із спеціальною інформаційною структурою, яка описує або процес або нитку. Для цього на рівні архітектури мікропроцесора використовується поняття „задача” — task. Воно об’єднує в собі як процес, так і нитку.
Це поняття і інформаційна структура, яка підтримується для нього на рівні апаратури, дозволяє в подальшому побудувати відповідні дескриптори. Вони будуть відрізнятись перш за все тим, що:
- дескриптор нитки може зберігати тільки контекст призупиненого обчислювального процесу;
- дескриптор процесу повинен вміщувати поля, які описують всі ресурси, які виділені цьому процесові.
Лекція 5. Керування ресурсами
Найважливіші ресурси — це пам’ять та процесор (тобто процесорний час).
Керування пам’яттю
Організація та керування основною, або первинною, або фізичною (реальною) пам’яттю комп’ютера — один з найважливіших факторів, що визначає побудову операційних систем.
Для безпосереднього виконання програм або звертання до даних необхідно, щоб вони розміщались в основній пам’яті. Вторинна, або зовнішня пам’ять — це, як правило, накопичувачі на магнітних дисках, магнітних стрічках — мають значно більшу ємність, і дозволяють зберігати велику кількість програм і даних, готових до обробки.
Розподіл пам’яті
В перших комп’ютерах було реалізовано зв’язний розподіл пам’яті — в одному неперервному блоці комірок пам’яті. Тільки після того, як з’явилось мультипрограмування з розділами змінного розміру стало зрозумілим, що значно більш ефективним може бути незв’язний розподіл.
При незв’язаному розподілі пам’яті, програми розбиваються на декілька блоків або сегментів, які розміщуються в основній пам’яті в ділянках які не обов’язково розташовані поряд.
ОС набагато складніше забезпечити незв’язаний розподіл пам’яті, але подібний підхід має важливу перевагу: якщо основна пам’ять має декілька невеликих вільних ділянок замість одного великого, то ОС все ж таки може завантажити та виконати програму, якій в іншому випадку треба було б чекати.
Зв’язний розподіл пам’яті для одного користувача
Кожному користувачу виділяється неперервний сегмент пам’яті. Розмір програм у звичайному випадку обмежується ємністю основної пам’яті, але існує можливість виконання програм, які перевищують за розміром основну пам’ять. Це досягається за допомогою концепції оверлейних сегментів. На рисунку приведено розподіл пам’яті для програми користувача, якій необхідно виділити більший об’єм пам’яті, ніж існуюча ємність ОП.
Лекція 6. Керування даними
Характеристики файлів
Для файлів, як правило, вказують такі характеристики:
1. Змінність. Ця характеристика пов’язана з тим, як часто заносяться у файл нові записи, та вилучаються старі. Коли ця частота мала, файл називається статичним, велика – динамічним або змінним файлом.
2. Активність. Визначається процентом записів файлів, що обробляються за час якогось періоду роботи з пам’яттю.
3. Розмір. Визначає кількість інформації, що зберігається у файлі.
Керування доступом в залежності від класів користувачів
Матриця може бути такою великою, що реалізувати її практично неможливо. Існує спосіб, що вимагає значно менше місця в пам'яті системи – це керування доступом до файлів в залежності від класів користувачів. Звичайна класифікація передбачає такі категорії:
“Власник” – це користувач, який створив даний файл;
“Вказаний, допущений користувач” - власник файлу вказує, що з його файлом може працювати інша людина;
“Група” або “Проект”. Користувачі часто є членами групи, що разом працюють над конкретним проектом. В такому випадку всім членам такої групи надається доступ до певних файлів.
“Загальнодоступний” - доступ дозволяється для якого завгодно користувача даної системи. Поняття “загальнодоступний” означає, що користувачам дозволяється читати або використовувати файл, а робити записи в ньому забороняється.
Оптимізація за часом очікування записів
В умовах великих навантажень ймовірність декількох одночасних звертань до певного циліндру зростає, що робить доцільним виконувати оптимізацію не тільки за пошуком циліндрів, але і за часом очікування записів.
Аналогом SSTF але в застосуванні до оптимізації за часом очікування записів, є стратегія SLTF (Shortest Latency Time - First) (з найменшим часом очікування – першим).
Коли каретка підводиться на певний циліндр може виявитись, що багато запитів очікують звертання до різних доріжок чи секторів цього циліндру. SLTF- аналізує всі ці запити і першим обслуговує запит з мінімальним очікуванням запису. Ця стратегія досить близька до теоретично оптимальної, причому її відносно легко реалізувати.
Рис. __
Запити будуть обслуговуватись у вказаній на рис. __ послідовності незалежно від порядку їх надходження.
Варіанти реалізації API
Висока пам’ять
У процесорі 80286 ША – 24 розрядів. Тоді стає можливою адресація сегменту пам’яті – 64 Кбайт, який починається з останнього значення параграфу UMA. Таким чином адресується до 64Кбайт розширеної пам’яті мінус16 байтів, що входять в останній параграф UMA.
Від 1 Мбайту до 1 Мбуйту + 64 Кбатів – 16 байтів. Область високої пам’яті НМА – (High Memory Area).
Метод доступу до цього сегменту реалізований в драйвері HIMEM.SYS (враховано в XMS).
Розширену пам’ять, що попадає в цю область, називають високою пам’яттю (High Memory). Використовується безпосередньо, без переключення режимів роботи мікропроцесору. Але XMS дозволяє її використовувати тільки одній програмі. Частіше це DOS, частина її резидентного коду, звільняє тим самим стандартну пам’ять.
Визначення формату FAT
Для DOS, сектор запису завантаження (BOOT-сектор) диску в полі із зміщенням 36h вміщує 8-байтовий рядок, що ідентифікує формат FAT. „FAT12” або ” FAT16”.
Якщо розділи на жорсткому диску створювались утилітою FDISK, формат FAT можна визначити, аналізуючи вміст поля SYS головного завантажую чого запису (Master Boot Record). Якщо це поле вміщує значення:
1 – 12-бітовий формат,
4 – 16-бітовий формат.
Але диски після обробки деякими диск-менеджерами можуть мати нестандартний для DOS формат таблиці розділів диску (Partition Table) та в полі SYS можуть бути інші величини, відмінні від 1 та 4.
Обмін даними в Windows
Для користувачів DOS комп’ютер – це деякий ”склад” програмних продуктів, які зовсім не зв’язані один з одним. Дуже часто користувач використовує окремо текстовий та графічний редактори. Альтернатива – це робота громіздких пакетах, які суміщають в собі текстові та графічні можливості. Особливо неприємним в DOS є перевантаження даних з одного продукту в інший. Не дивлячись на існування деяких стандартів, велика кількість DOS-програм зберігає дані в тому вигляді, в якому це захотілося автору. Існують сотні драйверів, які перетворюють дані в різні формати.
На відміну від DOS, Windows, як багатозадачне середовище, з самого початку була розрахована на високий ступінь інтеграції її компонентів. Один з найважливіших елементів такої інтеграції є можливість ефективного обміну даними між різними продуктами.
Windows XP
Це перша кардинально змінена ОС після Windows 95. Побудована на основі ядра Windows 2000 з метою підвищення стійкості, оскільки вона краще протидіє збоям при одночасному виконанні декількох складних задач.
Мінімальні системні вимоги: Процесор Intel Pentium II (або сумісні) ≥ 300МГц; 128Мбайт ≤ RAM ≤ 4Гбайт; SVGA PnP монітор; миша; накопичувач CD–ROM або DVD‑ROM ≥ 12Х; мережений адаптер (для реалізації мережених функцій); доступ в Internet.
Оптимальні результати на машинах ≥ 500 МГц. Зміни в Windows XP такі ж глибокі, як і при переході від Windows 3.1 до Windows 95.
Продуктивність
Не так часто відбуваються збої, швидше виконуються процедури початкового завантаження, відновлення роботи і запуску прикладних програм, інтелектуальні засоби і само настройки переміщають програмні файли для досягнення оптимальної швидкодії.
Windows XP – ОС із функціями само настройки. Вона адаптується, як до кожного користувача та і до його програм і файлів. У періоди очікування ОС динамічно переміщає файли програм для їх оптимального розміщення на жорсткому диску і тим самим скорочує затримки при доступі до них. Такий підхід міг би зменшити час завантаження прикладних програм і відкриття файлів (теоретично).
Зміст
Тема 1: Вступ. Мета та задачі курсу. 1
Типи операційних систем.. 3
Тема 2: Процеси. 5
Керування процесами. 5
Блок керування процесом.. 7
Операції над процесами. 7
Обробка переривань. 9
Лекція 4: Ядро операційної системи. 12
Основні функції ядра. 12
Асинхронні паралельні процеси. 12
Взаємо-виключення. 13
Семафори. 17
Монітор. 18
Кільцевий буфер. 19
Конвеєр (програмний канал) 20
Черги повідомлень (Queue) 20
Тупики. 21
Алгоритми планування процесів. 23
Витісняючі та невитісняючі алгоритми планування. 24
Нитки, потоки (Thread) 25
Висновки. 26
Лекція 5. Керування ресурсами. 28
Керування пам’яттю.. 28
Ієрархія пам’яті 28
Розподіл пам’яті 29
Зв’язний розподіл пам’яті для одного користувача. 30
Мультипрограмування з фіксованими розділами. 30
Мультипрограмування із змінними розділами. 31
Боротьба з фрагментацією.. 32
Стратегії розміщення інформації в пам’яті 32
Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті. 33
Принцип кешування даних. 35
Керування процесорами. 36
Планування з переключення та без переключення. 38
Лекція 6. Керування даними. 41
Файлова система. 41
Функції файлової системи. 41
Ієрархія даних. 42
Об’єднання в блоки та буферизація. 42
Організація файлів. 43
Методи доступу. 44
Характеристики файлів. 45
Файлова система. 45
Виділення та звільнення місця в пам’яті 46
Зв’язаний розподіл пам’яті 46
Незв’язаний розподіл пам’яті 47
Дескриптор файлу (file descriptor) 50
Матриця керування доступом.. 51
Керування доступом в залежності від класів користувачів. 51
Копіювання та відновлення інформації 51
Планування роботи з дисковою пам’яттю.. 52
Призначення планування. 53
Цільові характеристики принципів планування. 54
Оптимізація пошуку циліндру. 54
Оптимізація за часом очікування записів. 56
Архітектура сучасних файлових систем.. 57
Лекція 7. Інтерфейс прикладного програмування API (application program interface) 59
Варіанти реалізації API. 59
Лекція 8. Основи організації MS-DOS. 61
Будова та функції основних складових ДОС.. 61
Керування пам’яттю.. 64
Відображена пам’ять. 66
Розширена пам’ять. 67
Висока пам’ять. 67
Верхня пам’ять. 67
Драйвери верхньої та розширеної пам’яті 68
Завантажувані модулі COM та EXE – файли. 68
Логічна структура диску в MS-DOS. 71
Формат елементів таблиці розділів. 74
Запис завантаження (BOOT) 75
Використання BOOT-сектору. 77
Таблиця розміщення файлів. 77
Визначення формату FAT. 78
Формат FAT. 78
Файли та каталоги. 79
Недоліки MS-DOS. 82
Переваги які надає користувачам Windows. 84
Windows як операційна оболонка. 85
Обмін даними в Windows. 86
Clipboard. 86
Зв’язування чи вбудовування. 89
Первинність повідомлень: механізм повідомлень. 90
Windows 98. 94
Незалежна (preemptive) багатозадачність. 94
Взаємодія 32– та 16–розрядних кодів. 95
Робота з 16–розрядними продуктами. 95
Робота з DOS–продуктами. 96
Робота 32–розрядних Windows–продуктів. 97
Вдосконалення розподілу системних ресурсів. 98
Windows XP. 100
Варіанти модифікацій ОС Windows XP. 101
Нові характеристики реалізовані в Windows XP. 101
Продуктивність. 102
Лекція 8. ОС UNIX.. 103
Ядро ОС UNIX.. 103
Генерування ОС.. 104
Процеси. 104
Початкове завантаження. Процеси 0 та 1. 106
Файлова система UNIX.. 109
Будова файлової системи UNIX.. 109
Каталоги. 111
– Конец работы –
Используемые теги: СИСТЕМНЕ, Програмне, Забезпечення0.059
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Системне програмне забезпечення
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов