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

Sis_prog_zabezpechennya

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

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

Рис. 20

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

91

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

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

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

Розміщення СПЗ в загальній структурі комп’ютерної системи наведено на рис. 21.

Рис. 21

Системний адміністратор

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

92

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

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

Способи виклику модулів

Застосовуються шість способів виклику модулів різного типу.

1.Блок BEGIN-END, {}, сформований з метою розмежування сфери дії імен у програмі в блокових мовах програмування. Цей модуль розміщується або «вручну» шляхом фізичної вставки в потрібне місце програми вже готового, може й чужого, програмного модуля, або з’являється в програмі як результат застосування функції include.

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

3.Функція переривання. Вона викликається з активної програми застосуванням команди виклику супервізора INT або є реакцією у відповідь на якусь обумовлену внутрішню або зовнішню подію (переповнення, переривання від зовнішніх пристроїв та ін.). Параметри з материнської програми передаються, як правило, в регістрах.

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

93

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

На рис. 22 наводиться ілюстрація дії підпрограми (рис. 22а) і співпрограми (рис. 22б).

а)

б)

Рис. 22

Запис активації співпрограми породжується під час її першого виклику, який відрізняється від відновлення дії тим, що ство-

94

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

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

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

6.Паралельне виконання модулів, які відображають паралельні процеси. Ініціюються вони способом відгалуження — один модуль породжує інший, — після чого функціонують паралельно, можливо, конкуруючи за ресурси ЕОМ.

Стек

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

Стек використовують з різною метою:

організації переривань, викликів підпрограм (процедур) і повернень з них;

тимчасового зберігання даних;

передавання та повернення параметрів у разі викликів процедур.

95

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

Стек протоколів

Логічна структура мережевого програмного забезпечення, яке реалізує протоколи сімейства ТСР/IP в кожному вузлі мережі Ethernet, зображена на рис. 23. Прямокутники означають мережеву обробку даних, а лінії в нижній частині рисунку позначають кабелі мережі Ethernet, взятої тут як приклад «о» — трансівер (конектор), «@» — адреса вузла в мережі Ethernet (Eth-адреса), «*» — IP-адреса. Eth-адреса є фактично унікальним (заводським) номером меревеного адаптера. IP-адреса присвоюється під час підключення ЕОМ до мережі.

Рис. 23

Назва блоку даних, що передається в мережі, залежить від того, на якому рівні стека протоколів він знаходиться. Блок даних, з яким має справу мережевий інтерфейс (мережевий адаптер), називається кадром. Якщо блок даних знаходиться між мережевим інтерфейсом та модулем IP, то він називається IP-пакетом, якщо між модулем IP та модулем UDP, то UDPдатаграмою, якщо між модулем IP та TCP — TCP-сегментом

(або транспортним повідомленням). Якщо блок даних знахо-

96

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

диться на рівні мережевих прикладних процесів, то він називається прикладним повідомленням.

Сторінкова організація віртуальної пам’яті

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

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

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

97

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

готових. Якщо сторінка є в ОП, адреса фізичної сторінки, взята з ТСт, дописується до індекса і, що дає виконавчу адресу. Наприклад, нехай віртуальна адреса (р, і)=71638, а вміст регістра сторінок RTCт=00550. Додавання 71 до 550 дає адресу елемента ТСт, вміст якого є, наприклад, (1, 24). Оскільки потрібна сторінка присутня в ОП, то шукана адреса є 24638. Якщо ТСт зберігається в ОП, то для одержання кожної адреси, вказаної в програмі, необхідні два звертання до ОП. Як і при сегментній організації введення апаратних засобів для зберігання ТСт (надоперативна або кеш-пам’ять) збільшує швидкість доступу до пам’яті.

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

Стратегія витіснення сторінок

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

1. Стратегія LRU (least-recently-used) — витіснення сторінки, до якої не було звертання протягом достатньо тривалого періоду. В її основі лежить гіпотеза про локальність звертань до пам’яті, яка передбачає, що за звертанням до певної комірки пам’яті, як правило, буде звертання до наступної за адресою комірки. Тому якщо до якогось розділу пам’яті не було звертань протягом деяко-

98

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

го часу, то малоймовірно, що така потреба в найближчий час виникне. LRU себе добре зарекомендувала і тому використовується в багатьох ОС, хоча й має досить високу вартість реалізації. Час розбивається на інтервали фіксованої тривалості, і ведуться два списки активності фізичних сторінок. У першому списку (списку поточного інтервалу) кожній фізичній сторінці пам’яті відведено 1 біт. На початку кожного інтервалу цей список встановлюється в «нуль» і далі протягом інтервалу біт кожної фізичної сторінки, до якої звертаються, встановлюється в «одиницю». Для цього використовується спеціальна апаратура контролю активності сторінок. Елемент другого списку є лічильником кількості послідовних інтервалів, протягом яких не було звертань до сторінки. У кінці кожного інтервалу з другого списку (списку «неактивності» сторінок) вилучаються (встановлюється в «нуль» лічильник) сторінки, які були активними в цьому інтервалі (мають біт активності = 1), а лічильники пасивних сторінок (що мають в першому списку біт активності = 0) збільшуються на одиницю. Таким чином, вилученню, за необхідності, підлягає сторінка з найбільшим значенням лічильника в списку «неактивності».

2. Годинникова стратегія. У найпоширенішій схемі годинникової стратегії з кожною сторінкою пов’язується один додатковий біт — біт використання use. Під час завантаження фізичної сторінки встановлюється її use=1. У наступних звертаннях до цієї сторінки також встановлюється її use=1. У роботі годинникового алгоритму множина фізичних сторінок, що є кандидатами на заміщення, розглядається як циклічний буфер, з яким пов’язаний покажчик. Під час заміщення сторінки покажчик переміщується на наступну сторінку буфера. Коли настає момент заміщення сторінки, операційна система переглядає буфер з метою пошуку фізичної сторінки, у якої use=0. Щоразу, коли у процесі пошуку зустрічається фізична сторінка з use=1, її use скидається в нуль. Перший же зустрінутий кадр із нульовим бітом використання вибирається для заміщення. Якщо всі фізичні сторінки в буфері мають use=1, покажчик здійснює

99

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

повний оберт і повертається до початкового стану, заміщуючи тепер першу сторінку з цього оберту. Як бачимо, годинникова стратегія схожа на стратегію FIFO за тим винятком, що пропускаються фізичні сторінки, у яких use=1 .

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

Це зменшує кількість звертань до системи обміну з диском для заміщення сторінки до одного — тільки для читання вмісту нової сторінки. Тоді всі фізичні сторінки буфера можна кваліфікувати таким чином:

1.use=0, mod=0;

2.use=1, mod=0;

3.use=1, mod=1.

Найпершими кандидатами на заміщення є сторінки першої категорії, а якщо їх немає, то шукають сторінки другої, потім третьої категорій.

Стратегія підкачки сегментів (сторінок)

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

100

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