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

Sis_prog_zabezpechennya

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

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

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

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

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

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

реалізуються списками.

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

Парольний захист

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

61

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

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

Ймовірність розкриття паролю можна зменшити, застосовуючи регулярну зміну паролів користувачів. Найчастіше використовується метод одноразових паролів. Монітор захисту методом випадковостей складає для користувача список паролів. Кожен раз, коли користувач входить в систему, він уводить наступний пароль з цього списку. Інший варіант — користувач повідомляється про новий пароль при кожному виході з системи.

Передача параметрів між програмами

Найбільш загальними є чотири способи передачі та одержання параметрів:

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

62

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

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

вцьому методі існують обмеження на адресацію.

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

3.Список параметрів — найбільш універсальний спосіб. Приклад (рис. 15).

Рис. 15. Список параметрів

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

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

63

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

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

Підпрограма

Підпрограма — незалежний поіменований програмний модуль, який є самостійним виконуваним кодом.

Підпрограма характерна для мови FORTRAN. У мові PASCAL та ін. підпрограми реалізуються у вигляді процедур і функцій.

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

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

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

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

64

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

Два наступні типи модулів можуть використовуватись як резидентні.

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

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

Портал (інтернет-портал)

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

65

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

Розділяють портали публічні та корпоративні.

Публічні портали (наприклад, YAHОO, MSN) орієнтовані на всіх користувачів Інтернету і є еквівалентами публічних бібліотек. Кожен може увійти в портал і попрацювати з усім, що відображується на екрані комп’ютера.

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

Поштова скринька

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

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

Якщо процесу Р1 для роботи потрібне підтвердження від Р2 про одержання повідомлення, то в такому випадку організується передача повідомлень у двох напрямках. У кожному гнізді розміщується або повідомлення від Р1, або відповідь від Р2. Якщо

66

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

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

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

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

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

Привілейований режим

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

управління введенням/виведенням інформації;управління зовнішньою пам’яттю;обробка переривань;

67

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

організація послідовного виконання програм та вибір порядку їх виконання;

організація захисту пам’яті.

Це призводить до необхідності розрізняти два режими виконання програм: непривілейований режим (режим користувача) і привілейований режим (режим супервізора).

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

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

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

68

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

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

Фактично в операційних системах використовується більший діапазон значень пріоритетів для зручності адміністрування процесів (наприклад, від 1 до 31).

Прикладне програмне забезпечення

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

текстові редактори;

бази даних;

інформаційно-пошукові системи;

електронні таблиці;

системи програмованого навчання;

системи штучного інтелекту;

математичні програми;

програми для моделювання;

системи автоматизованого проектування.

69

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

Пріоритет

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

Під час програмного встановлення пріоритету використовується поняття «маска». Кожному класу переривань відповідає певний розряд регістра маски. Якщо деякий розряд цього регістра встановлений в 1, то переривання такого класу обслуговується негайно, в іншому випадку воно чекає заміни регістра маски. Управління регістром маски покладається на супервізор.

Програма

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

Програмне забезпечення

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

70

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