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

Sis_prog_zabezpechennya

.pdf
Скачиваний:
60
Добавлен:
17.03.2016
Размер:
832.88 Кб
Скачать

Енциклопедичне видання

разів протягом існування процесу, тобто мова йде про диспетчерський пріоритет процесу — його конкретне значення в даний момент.

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

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

Неперервний розподіл пам’яті

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

51

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

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

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

Усистемі з фіксованими межами (MFT) розділів із кожним розділом пов’язується свій індивідуальний потік завдань, які вміщуються в цей розмір пам’яті або мають інші характеристичні ознаки (наприклад, обсяг введення/виведення), що використовують для збалансування робочої суміші робіт. Оптимальна кількість розділів 4–5, це забезпечує 90% навантаження центрального процесора. Розміри розділів можуть бути змінені під час роботи оператора системи з метою прискорення пропуску окремих завдань.

Використання розділів зі змінними межами (MVT) дає можливість розмістити в ОП стільки робіт, скільки їх може поміститись в даний момент. Розмір розділу відповідає розміру роботи. Якщо захист пам’яті організований посторінково, то розділ складається з цілого числа таких одиниць. У разі завантаження програми планувальник пам’яті (спеціальна програма ОС) знаходить розділ пам’яті, достатній для розміщення цієї роботи,

52

Енциклопедичне видання

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

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

Можна підвищити використання ОП, якщо розглядати зовнішню пам’ять як продовження ОП. У разі переміщення роботи з одного розділу в інший її не копіюють безпосередньо, а записують спочатку в зовнішню пам’ять — це називається «відкачка». Наступне завантаження її із зовнішньої пам’яті в ОП називається «підкачка», а весь процес — «свопінг» («перекачка»). Для цього потрібні спеціальні апаратні засоби настроювання адрес, проте якщо робота підкачується в той же розділ, з якого була відкачана, свопінг можливий і без спеціальних апартних засобів. Планувальник пам’яті слідкує за тим, де яка робота знаходиться.

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

Облік вільної пам’яті

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

53

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

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

блоки зв’язуються в декілька списків за системою близню-

ків.

У разі використання списку блоків під час надходження запиту на пам’ять переглядається список вільних блоків і вибирається або найбільш придатний, або перший придатний блок. Найбільш придатний — це мінімальний за обсягом блок, що задовольняє запиту. Критерій найбільш придатного вимагає перегляду всього списку. Перевага — залишає в резерві великі блоки для наступних запитів. За критерієм першого придатного пошук коротший, але дробляться великі блоки. Список можна реалізувати як стек або чергу, що прискорює пошук, хоча використовують і невпорядковані списки. Якщо список впорядкований за адресами блоків, легко виконується злиття суміжних блоків, а пошук вільного блоку вимагає перегляду в середньому половини списку. Якщо список впорядкований за розмірами блоків, то для пошуку найбільш придатного також переглядається в середньому половина списку, але злиття звільнених блоків дещо ускладнено. Якщо використовувати список із двома зв’язками (з наступним та попереднім сегментом), то це дозволяє вести перегляд в будь-якому напрямі, що скорочує час пошуку.

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

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

54

Енциклопедичне видання

як початкова адреса блоку довжиною 2k. Для кожного значення k в діапазоні від 0 до n, де 2n — довжина всієї ОП, створюється окремий список вільних блоків розміром 2k. Якщо одержано запит на блок розміром 2k, а такого в наявності немає, переглядається список блоків довжини 2k+1. Якщо такий блок знайшовся, то він розбивається на два близнюки — блоки по 2k, і виділяється один із них. Якщо блоків довжиною 2k+1 теж немає, то шука-

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

близнюків розміру 2k відрізняються тільки (k+1)-ою цифрою справа, що спрощує як розщеплення близнюків, так і перевірку, чи вільним є близнюк. Кожний блок у своєму першому слові має

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

Оболонки операційної системи

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

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

55

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

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

створення користувацьких «меню»;видачу даних про розміщення інформації на дисках тощо.

Прикладом оболонки є Norton Commander.

Обробка переривань

Укомп’ютерах, реалізованих на технологічній базі Intel, під час обробки переривання або виключення (переривання, викликаного сигналом від схем оперативного апаратного контролю функціонування комп’ютера) процесор зберігає у системному стеку слово стану програми ССП (регістр прапорців FLAGS, який відображоє стан комп’ютера в поточний момент часу) та покажчик на ту команду, яку він повинен буде виконати після завершення обробки переривання. Цією командою буде наступна за тією, під час виконання якої виникло переривання, або тією ж самою (в обробці виключень). Після цього процесор переходить до виконання програми — обробника даного перивання, визначаючи точку входу в неї через номер переривання (0–255) за таблицею переривань. Програма-обробник переривання повинна завершуватись спеціальною командоюю IRET, за якою із системного стека відновлюється покажчик на команду, яку слід виконувати, та попереднє значення прапорців стану процесора.

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

Операційна система

Операційна система (ОС) — це перше, з чим стикається користувач під час роботи з ЕОМ. Нині неможливо уявити собі плідну роботу користувача з ЕОМ без ОС — необхідність ОС просто передбачена конструкцією ЕОМ.

56

Енциклопедичне видання

ОС виникли на певному етапі розвитку ЕОМ. Обсяг їх функцій

зчасом все збільшувався відповідно до зростаючих потреб ефективного використання ЕОМ.

ЕОМ першого покоління (на електронних лампах) не мали ніякого системного програмного забезпечення, усе програмування було на рівні користувача, тобто ЕОМ сприймалася буквально як програмно-керований обчислювальний автомат. З другим поколінням ЕОМ (на дискретних напівпровідникових приладах) з’явилося і системне програмування, тобто створення бібліотек програм, трансляторів із різних мов програмування і, нарешті, створення моніторних систем, які керують самим процесом проходження робіт через ЕОМ і забезпечують той чи інший рівень автоматизації функцій, які на ЕОМ першого покоління виконувала людина-оператор.

Ці моніторні системи стали попередниками ОС для ЕОМ третього покоління (на інтегральних напівпровідникових схемах).

Операційні системи виконують дві головні, але ж практично не пов’язані між собою функції: розширення можливостей ЕОМ та управління її ресурсами. З точки зору користувача ОС виконує функції розширеної (уявної, віртуальної) машини, у якій простіше програмувати та легше працювати, ніж безпосередньо

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

Основні функції операційних систем:діалог із користувачами;

ініціація та завершення виконання задач користувачів;керування ходом їх виконання;

57

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

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

розподіл ресурсів ЕОМ між задачами;забезпечення можливості використання наявних програмних

та інформаційних засобів загального користування (файли, архіви, транслятори і тощо);

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

оптимізація паралельної роботи пристроїв ЕОМ з метою досягнення найвищої продуктивності;

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

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

займає проміжне положення між апаратурою і програмістомкористувачем ЕОМ;

забезпечує апаратуру тими можливостями, які важко або економічно невигідно реалізувати апаратним способом;

створює умови для ефективної розробки та наладжування програм;

знижує вартість використання обчислювальних засобів за рахунок розподілу між користувачами ресурсів ЕОМ та накопиченої інформації.

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

58

Енциклопедичне видання

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

Розрізняють два основні методи доступу до файлів: послідовний та прямий.

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

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

Послідовна організація. Хоча сучасні зовнішні пристрої пам’яті орієнтовані в основному на прямий доступ, для більшості (90%) прикладних задач він не потрібен. Послідовний доступ є дешевшим ніж прямий, якщо обробляється велика кількість записів, у тому числі і завдяки буферизації. Хоча записи для послідовного доступу можна пов’язати в список, ефективність доступу вимагає, щоб вони були фізично впорядковані за ключем. Ключами можуть бути прізвище, номер у списку тощо. Такі документи, як платіжні відомості, телефонні рахунки, перелік наявного на складі товару, зазвичай складаються для всіх записів з однаковою частотою звертання. Водночас обновлення полів записів таких, як: прізвище, ім’я та по-батькові, адреса, зарплата здійснюється більш-менш нерегулярно. Коригування записів у файлах часто відбувається пакетами обновлень з певною регулярністю. Їх можна здійснити за один прохід по файлу. Іноді під час коригування неможливо записати нову інформацію на попереднє місце, тоді її дописують у кінці файлу з відповідною відміткою або здійснюють реорганізацію файлу з розміщенням його на новому носії. Стара (батьківська) версія може також залишатись доступною і використовуватись за необхідності, у тому числі і в рамках забезпечення цілісності даних. Щоб надати користувачеві доступ до послідовного файлу, ОС повинна вміти за іменем файлу, вказаним користувачем, визначити його розміщення —

59

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

номер доріжки на магнітному диску і тощо. Ця інформація є у дескрипторі файлу.

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

Для файлу з прямим доступом ОС повинна вміти за іменем файлу та ключем визначати фізичне розташування відповідного запису. Зазвичай, це реалізується у два етапи: спочатку за іменем файлу визначається адреса деякої таблиці (таблиці індексів), у якій деяким впорядкованим чином розташовані ключі разом з адресами відповідних записів. Після цього виконується читання чи запис. Якщо запис, що вставляється, не вміщується на призначене місце, то на призначеному для нього місці вставляється посилання на нову адресу або використовується інший варіант — змінюється відповідний елемент таблиці індексів. Нові записи додаються в кінець файлу (і, відповідно, у кінець таблиці індексів). Знищений запис не вилучається, а просто робиться недоступним шляхом вилучення елемента з таблиці індексів або встановленням певної ознаки в елемент таблиці або в сам запис. Для прискорення пошуку ключів у таблиці індексів використовується деяка функція розстановки. У загальному випадку підбирається яка-небудь ефективна функція, водночас можливе виникнення конфліктів — одному і тому ж значенню функція розстановки повинні відповідати різні адреси. Ефективність функції розстановки визначається кількістю конфліктів (обернена залежність). Альтернативні адреси виділя-

60

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