Прикладне середовище ос. Лекція: Способи реалізації прикладних програмних середовищ. Що робитимемо з отриманим матеріалом

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

Багато версіях ОС UNIX транслятор прикладних середовищ реалізується як звичайної програми. В операційних системах, побудованих з використанням мікроядерної концепції, таких як, наприклад, Windows NT, прикладні середовищавиконуються у вигляді серверів користувача режиму. А в OS/2 з її найпростішою архітектурою засоби організації прикладних середовищ вбудовані глибоко в операційну систему.

Один з найбільш очевидних варіантів реалізації множинних прикладних середовищ ґрунтується на стандартній багаторівневій структурі ОС. На рис. 3. 8 операційна система OS1 підтримує крім своїх «рідних» програм програми OS2. Для цього в її складі є спеціальний додаток - прикладне програмне середовище, яке транслює інтерфейс "чужої" операційної системи - API OS2 в інтерфейс своєї "рідної" операційної системи - API OS1.

Рис. 3. 8. Прикладне програмне середовище, що транслює
системні виклики

В іншому варіанті реалізації множинних прикладних середовищ операційна система має кілька рівноправних прикладних програмних інтерфейсів. У наведеному рис. 3. 9 прикладі операційна система підтримує програми, написані для OS1, OS2 і OS3. Для цього безпосередньо в просторі ядра системи розміщені прикладні програмні інтерфейсивсіх цих ОС: API OS1, API OS2 та API OS3.

Рис. 3. 9. Реалізація сумісності на основі кількох
рівноправних API

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

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

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

Рис. 3. 10. Мікроядерний підхід до реалізації багатьох
прикладних середовищ

Такому підходу до конструювання множинних прикладних середовищ властиві всі переваги та недоліки мікроядерної архітектури, зокрема:

· дуже просто можна додавати та виключати прикладні середовища, що є наслідком хорошої розширюваності мікроядерних ОС;

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

· Низька продуктивність мікроядерних ОС позначається швидкості роботи прикладних середовищ, отже, і швидкості виконання додатків.

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

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

  1. Що розуміють під архітектурою ОС?
  2. Які три основні шари прийнято виділяти у структурі обчислювальної системи?
  3. Яку роль покладено ОС на інтерфейс системних викликів?
  4. Які умови при проектуванні ОС повинні бути дотримані для того, щоб ОС була легко переносимою?
  5. У чому відмінність мікроядерної архітектури традиційної архітектури ОС?
  6. Чому мікроядро добре підходить для підтримки розподілених обчислень?
  7. Що мається на увазі під концепцією багатьох прикладних середовищ?
  8. У чому полягає суть методу трансляції бібліотек?

Кінець роботи -

Ця тема належить розділу:

Операційна система, процеси, обладнання

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

Якщо Вам потрібний додатковий матеріал на цю тему, або Ви не знайшли те, що шукали, рекомендуємо скористатися пошуком по нашій базі робіт:

Що робитимемо з отриманим матеріалом:

Якщо цей матеріал виявився корисним для Вас, Ви можете зберегти його на свою сторінку в соціальних мережах:

Всі теми цього розділу:

Особливості апаратних платформ
На характеристики операційної системи безпосередній вплив мають апаратні засоби, на які вона спрямована. За типом апаратури розрізняють операційні системи персональних комп'ютерів, ми

Завдання та вправи
1. Які події у розвитку технічної бази обчислювальних машин стали віхами історія операційних систем? 2. У чому полягала принципова відмінність перших моніторів пакетної обробки

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

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

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

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

Мережеве забезпечення
розподілена система - набір процесорів, які не розподіляють пам'ять або кожен процесор має свою локальну пам'ять. Процесори в системі з'єднані за допомогою комп'ютерної мережі та забезпечивши

Ядро та допоміжні модулі ОС
Найбільш загальним підходом до структуризації операційної системи є поділ всіх її модулів на дві групи: ядро ​​– модулі ОС, що виконують основні функції;

Ядро та привілейований режим
Для надійного управління ходом виконання програм операційна система повинна мати по відношенню до додатків певні привілеї. Інакше некоректно працює додаток

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

Структура ядра
Кошти апаратної підтримки ОС. Досі про операційну систему йшлося як про комплекс програм, але частина функцій ОС може виконуватись і апаратними засобами. Поет

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

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

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

Двійкова сумісність та сумісність вихідних текстів
Необхідно розрізняти сумісність на двійковому рівні та сумісність на рівні вихідних текстів. Програми зазвичай зберігаються в ОС у вигляді виконуваних файлів, що містять двійкові обра

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

Поняття процесу
Процесом називається деяка діяльність, яка виконується на процесорі. Процесором у сенсі називається будь-який пристрій у складі ЕОМ, спо

Поняття ресурсу
Однією з функцій ОС є забезпечення ефективного та безконфліктного способу управління ресурсами обчислювальної системи. Під ресурсом часто розуміється показник

Концепція віртуалізації
Віртуалізація тієї чи іншої ресурсу здійснюється у межах централізованої схеми розподілу ресурсів. Шляхом віртуалізації здійснюються дві форми обману користувачів:

Одночергові дисципліни обслуговування
а) FIFO (First In - First Out) - дисципліна обслуговування в порядку надходження. Усі заявки надходять до кінця черги. Першими обслуговуються заявки, що знаходяться на початку черги. Схематично

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

Поняття процесу
Процес(завдання) - програма, що у режимі виконання. З кожним процесом пов'язується його адресний простір, з якого він може читати

Модель процесу
У багатозадачній системі реальний процесор перемикається з процесу на процес, але для спрощення моделі розглядається набір процесів, що йдуть паралельно (псевдопаралельно). Розглянемо

Завершення процесу
(виклик exit або ExitProcess): Планове завершення (закінчення виконання) Плановий вихід за відомою помилкою (наприклад, відсутність файлу)

Ієрархія процесів
У UNIX системах закладено жорстку ієрархію процесів. Кожен новий процес, створений системним викликом fork, є дочірнім до попереднього процесу. Дочірньому процесу дістаються від батьківського

Стан процесів
Три стани процесу: Виконання (займає процесор) Готовність (процес тимчасово припинено, щоб дозволити виконувати інший процес) Очікування (процес

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

Модель потоку
З кожним потоком зв'язується: Лічильник виконання команд Регістри для поточних змінних Стек Стан Потоки ділять між собою елементи

Переваги використання потоків
Спрощення програми в деяких випадках за рахунок використання загального адресного простору. Швидкість створення потоку, у порівнянні з процесом, приблизно у 100 разів. Підвищений

Реалізація потоків у просторі користувача, ядра та змішане
А - потоки у просторі користувача B

Особливості реалізації Windows
Використовується чотири поняття: Завдання – набір процесів із загальними квотами та лімітами Процес – контейнер ресурсів (пам'ять...), містить як мінімум один потік. Пото

Взаємодія між процесами
Ситуації, коли доводиться процесам взаємодіяти: Передача інформації від одного процесу іншому Контроль за діяльністю процесів (наприклад: коли вони борються за

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

Стан змагання
Стан змагання - ситуація, коли кілька процесів зчитують або записують дані (в пам'ять або файл) одночасно. Розглянемо приклад, коли два процеси намагаються

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

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

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

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

Семафори
Семафори - змінні підрахунку сигналів запуску, збережених у майбутнє. Були запропоновані дві операції down та up (аналоги sleep та wake

Планування в системах пакетної обробки
6.2.1 "Перший прийшов – першим обслужений" (FIFO - First In Fist Out) Процеси ставляться в чергу в міру надходження. Переваги:

Циклічне планування
Найпростіший алгоритм планування і найчастіше використовується. Кожному процесу надається квант часу процесора. Коли квант закінчується процес перекладається планувальником на кінець оче

Пріоритетне планування
Кожному процесу надається пріоритет, і управління передається процесу з найвищим пріоритетом. Пріоритет може бути динамічний та статичний. Динамічес

Планування у системах реального часу
Системи реального часу діляться на: жорсткі (жорсткі терміни для кожного завдання) - управління рухом гнучкі (порушення тимчасового графіка не бажані, але допустимі) - уп

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

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

Моделювання взаємоблокувань
Моделювання глухих кутів за допомогою графів. Умовні позначення На такій моделі оч

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

Динамічне уникнення взаємоблокувань
У цьому способі ОС повинна знати, чи є надання ресурсу безпечним чи ні. Траєкторії ресурсів Розглянемо модель із двох процесів та двох ресурсів

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

Принципи апаратури введення-виводу
Два нижніх рівня системи управління введенням-виводом складає hardware: самі пристрої, що безпосередньо виконують операції, та їх контролери, що служать для організації спільної роботивлаштув

Контролери пристроїв
Пристрої введення-виводу зазвичай складаються з двох частин: механічна (не треба розуміти дослівно) – диск, принтер, монітор електронна – контролер або

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

Прямий доступ до пам'яті (DMA – Direct Memory Access)
Прямий доступ до пам'яті реалізується за допомогою контролера DMA. Контролер містить кілька регістрів: регістр адреси пам'яті лічильник байтів

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

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

Програмне введення-виведення
І тут всю роботу виконує центральний процесор. Розглянемо процес друку рядка ABCDEFGH у такий спосіб.

Введення-виведення, що керується перериваннями
Якщо в попередньому прикладі буфер не використовується, а принтер друкує 100 символів в секунду, то на кожен символ буде йти 10мс, в цей час процесор простоюватиме, чекаючи готовності принт

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

Драйвера пристроїв
Драйвер пристрою – необхідний для кожного пристрою. Для різних ОС потрібні різні драйвери. Драйвери повинні бути частиною ядра (в монолітній системі), щоб отримати доступ до регістрів конт

Незалежне від пристроїв програмне забезпечення введення-виводу
Функції незалежного від пристроїв вводу-виводу: Єдиний інтерфейс для драйверів пристроїв, Буферизація Повідомлення про помилки

Узагальнення рівнів та функцій введення-виводу
Рівні та основні функції системи введення-виведення Баз

Блоковані, неблоковані та асинхронні системні виклики
Усі системні виклики, пов'язані зі здійсненням операцій введення-виводу, можна розбити на три групи за способами реалізації взаємодії процесу та введення-виводу. · До першої, на

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

Spooling та захоплення пристроїв
Про поняття spooling ми говорили в першій лекції нашого курсу, як про механізм, що вперше дозволив поєднати реальні операції введення-виводу одного завдання з виконанням іншого.

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

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

Принципи, закладені в підсистему управління введенням-виводом у ОС UNIX
1. Ця підсистема побудована однаково з підсистемою управління даними (файловою системою). Користувачеві надається уніфікований спосіб доступу як до ПУ, так і файлів. Під файлом в ОС

Управління пам'яттю в ОС
4.1. Поняття про організацію та управління фізичною пам'яттю в операційних системах 4.2. Методи зв'язкового розподілу основної пам'яті 4.2.1. Зв'язне розподілено

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

Зв'язне розподілення пам'яті для одного користувача
Зв'язне розподіл пам'яті для одного користувача, зване також одиночним безперервним розподілом, застосовується в ЕОМ, що працюють в пакетному однопрограмному режимі під керуванням

Зв'язне розподілення пам'яті при мультипрограмній обробці
При мультипрограмній обробці пам'яті комп'ютера розміщується відразу кілька завдань. Розподіл пам'яті між завданнями у разі може бути виконано такими способами: · рас

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

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

Сторінка організації віртуальної пам'яті
Віртуальна адреса при чисто сторінковій організації пам'яті _ це впорядкована пара (p, d), де p - номер сторінки в віртуальної пам'яті, а d – зміщення в рамках сторінки p. Процес може виконуватись

Сегментна організація віртуальної пам'яті
Віртуальна адреса при сегментній організації віртуальної пам'яті – це впорядкована пара n = (s, d) , де s – номер сегмента віртуальної пам'яті, а d – зміщення в рамках цього сегмента. Процес мож

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

Стратегії управління віртуальною пам'яттю
Стратегії управління віртуальною пам'яттю, як і і стратегії управління фізичної пам'яттю, поділяються на три категорії: стратегії вштовхування, стратегії розміщення та стратегії виштовхування.

Стратегії вштовхування (підкачування)
Для управління вштовхуванням застосовуються такі стратегії: · вштовхування (підкачування) на запит (на вимогу); · Вштовхування (підкачування) з попередженням (випередженням).

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

Стратегії виштовхування
У мультипрограмних системах вся первинна пам'ять, як правило, зайнята. У цьому випадку програма управління пам'яттю повинна вирішувати, яку сторінку або який сегмент слід видалити з первинного

Найменування файлів
Довжина імені файлу залежить від ОС, можливо від 8 (MS-DOS) до 255 (Windows, LINUX) символів. ОС можуть розрізняти великі та малі символи. Наприклад, WINDOWS і windows для MS-DOS одне і т

Структура файлу
Три основні структури файлів: 1. Послідовність байтів – ОС не цікавиться вмістом файлу, вона бачить лише байти. Основна перевага такої системи, це гнучкість

Типи файлів
Основні типи файлів: · Регулярні – містять інформацію користувача. Використовуються у Windows та UNIX. · Каталоги - системні файли, що забезпечують

Атрибути файлу
Основні атрибути файлу: · Захист - хто, і як може отримати доступ до файлу (користувачі, групи, читання/запис). Використовуються у Windows та UNIX. · Пароль - пароль до фа

Файли, що відображаються на адресний простір пам'яті
Іноді зручно файл відобразити в пам'яті (не потрібно використовувати системні виклики вводу-виводу для роботи з файлом), і працювати з пам'яттю, а потім записати змінений файл на диск. Застосування

Однорівневі каталогові системи
У цій системі всі файли містяться в одному каталозі. Од

Ім'я шляху
Для організації дерева каталогів необхідний певний метод вказівки файла. Два основні методи вказівки файлу: абсолютне ім'я шляху - вказує шлях від кореневого

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

Реалізація довгих імен файлів
Раніше операційні системи використовували короткі імена файлів, MS-DOS до 8 символів, UNIX Version 7 до 14 символів. Тепер використовуються довші імена файлів (до 255 і більше символів).

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

А - спільно використовуваний файл
Така файлова системаназивається орієнтований ациклічний граф (DAG, Directed Acyclic Graph). Виникає проблема, якщо дискові адреси містяться в самих каталогових

Розмір блоку
Якщо прийнято рішення зберігати файл у блоках, виникає питання розмірі цих блоків. Є дві крайності: · Великі блоки – наприклад, 1Мбайт, то файл навіть 1 байт займе цілий блок

Облік вільних блоків
Основні два способи обліку вільних блоків: · Зв'язковий список блоків диска, у кожному блоці міститься номерів вільних блоків стільки, скільки втрутиться у блок. Часто для списку резервир

Дискові квоти
Щоб обмежити користувача, є механізм квот. Два види лімітів: · Жорсткі – перевищені бути не можуть · Гнучкі – можуть бути перевищені, але при виході користувач

Резервне копіювання
Випадки, для яких потрібне резервне копіювання: · Аварійні ситуації, що призводять до втрати даних на диску · Випадкове видаленняабо програмне псування файлів Основні

Несуперечність файлової системи
Якщо в системі відбудеться збій, перш ніж модифікований блок буде записано, файлова система може потрапити у суперечливий стан. Особливо якщо це блок i-вузла, каталогу та

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

Файлова система ISO 9660
Більш детальна інформація - http://ua.wikipedia.org/wiki/ISO_9660 Стандарт прийнятий у 1988 р. За стандартом диски можуть бути розбиті на логічні розділи, але ми розглядатимемо диски з

Каталоговий запис стандарту ISO 9660
Розташування файлу – номер початкового блоку, т.к. блоки розташовуються послідовно. L - довжина імені файлу в байтах Ім'я файлу - 8 символів, 3 символи розширення (через сумісність

Рок-рідж розширення для UNIX
Це розширення було створено, щоб файлова система UNIXбуло представлено на CD-ROM. Для цього використається поле System use. Розширення містять такі поля: 1. PX -

Файлова система UDF (Universal Disk Format)
Детальніша інформація - http://ua.wikipedia.org/wiki/Universal_Disk_Format Спочатку створена для DVD, з версії 1.50 додали підтримку CD-RW і CD-R. Зараз остання версія

Файлова система MS-DOS (FAT-12, 16, 32)
У перших версіях був лише один каталог (MS-DOS 1.0). З версії MS-DOS 2.0 застосували ієрархічну структуру. Каталогові записи, фіксовані по 32 байти. Імена файлів -

Вони будуть задіяні у Windows 98
Атрибут архівний потрібен для програм резервного копіювання, За ним вони визначають треба копіювати файл чи ні. Поле час (16 розрядів) розбивається на три підполя:

Розширення Windows 98 для FAT-32
Для розширення було задіяно 10 вільних біт. форм

Основна надбудова над FAT-32, це довгі імена файлів
Для кожного файлу стали присвоювати два імені: 1. Коротке 8+3 для сумісності з MS-DOS 2. Довге ім'я файлу, у форматі Unicode Доступ до файлу може бути отриманий по будь-якому файлу.

Формат каталогів запису з фрагментом довгого імені файлу Windows 98
Поле "Атрибути" дає змогу відрізнити фрагмент довгого імені (значення 0х0F) від дескриптора файлу. Старі програми MS-DOS каталогові записи зі значенням поля атрибутів 0х0

Файлова система NTFS
Файлова система NTFSбула розроблена для Windows NT. Особливості: · 64-розрядні адреси, тобто. теоретично може підтримувати 264*216 байт (1 208 925 819 M

Пошук файлу на ім'я
При створенні файлу програма звертається до бібліотечної процедури CreateFile("C:windowsreadmy.txt", ...) Цей виклик потрапляє до спільно використовуваної бібліотеки рівня п

Стиснення файлів
Якщо файл позначений як стислий, система автоматично стискає при записі, а при читанні відбувається декомпресія. Алгоритм роботи: 1. Беруться для вивчення перших 16 блоків файлу (н

Шифрування файлів
Будь-яку інформацію, якщо вона зашифрована, можна прочитати, отримавши доступ. Тому найнадійніший захист інформації від несанкціонованого доступу – шифрування. Навіть якщо у вас вкрадуть у

Файлова система UNIX V7
Хоча це стара файлова система основні елементи використовуються і в сучасних UNIX системах. Особливості: · Імена файлів обмежені 14 символами ASCII, крім косої межі "/&q

Структура i-вузла
Поле Байти Опис Mode Тип файлу, біти захисту, біти setuid та setgid Nlinks

Створення та робота з файлом
fd=creat("abc", mode) - приклад створення файлу abc з режимом захисту, вказаним у змінній mode(які користувачі мають доступ). Використовується системний

Файлова система BSD
Основу складає класична файлова система UNIX. Особливості (на відміну від попередньої системи): · Збільшено довжину імені файлу до 255 символів · Реорганізовано каталоги

Розміщення файлової системи EXT2 на диску
Інші особливості: · Розмір блоку 1 Кбайт · Розмір кожного i-вузла 128 байт. · i-вузол містить 12 прямих і 3 непрямих адрес, довжина адреси в i-вузлі стала 4 байти, що про

Файлова система EXT3
На відміну від EXT2, EXT3 є журнальною файловою системою, тобто. не потрапить у суперечливий стан після збоїв. Але вона повністю сумісна з EXT2.

Файлова система XFS
XFS - журнальна файлова система розроблена Silicon Graphics, але зараз випущена відкритим кодом (open source). Офіційна інформація на http://oss.sgi.com/projec

Файлова система RFS
RFS (RaiserFS) - журнальна файлова система розроблена Namesys. Офіційна інформація на RaiserFS Деякі особливості: · Більш ефективна робота

Файлова система JFS
JFS (Journaled File System) - файлова система, що журналюється, розроблена IBM для ОС AIX, але зараз випущена як відкритий код. Офіційна інформація на Journaled File S

Структура рівнів файлової системи NFS
VFS (Virtual File System) – віртуальна файлова система. Необхідна для керування таблицею відкритих файлів. Записи для кожного відкритого файлуназиваються v-вузлами

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

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

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

Препроцесинг – необов'язкова фаза, яка полягає у аналізі вихідного тексту, Вилучення з нього директив препроцесора та їх виконання

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

Дані розширення вихідного тексту може бути стандартними, визначатися користувачем чи утримуватися у системних бібліотеках ОС.

Компіляція - у випадку багатоступінчастий процес, що включає такі фази:

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

синтаксичний аналіз– перевірка правильності конструкцій, використаних програмістом під час підготовки текста;

семантичний аналіз- Виявлення невідповідностей типів і структур змінних, функцій та процедур;

Генерація об'єктного коду – завершальна фаза трансляції.

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

Об'єктний модуль (object module) – програмний модуль, що є наслідком компіляції вихідного модуля. Він містить машинні інструкції, словники, службову інформацію.

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

Рис. 1.4. Абстрактна багатомовна, відкрита, компілююча система програмування

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

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

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

Найчисленнішим класом комп'ютера є прикладні програми.

Прикладне ПЗпризначено для того, щоб забезпечити застосування обчислювальної техніки у різних сферах діяльності.

Прикладні програми- Програми, призначені для вирішення конкретних завдань користувача.

Один із можливих варіантів класифікації.

Класифікація прикладного програмного забезпечення за призначенням

Текстовий редактор – програма, призначена лише для перегляду, введення та редагування тексту.

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

Всі текстові редактори зберігають у файлі «чистий» текст і завдяки цьому сумісніодин з одним.

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

Основні компоненти текстового процесора:

  • Набір шрифтів.
  • Перевірка орфографії.
  • Попередній перегляд сторінок, що друкуються.
  • Об'єднання документів, багатовіконність.
  • Автоформатування та автоперенесення.
  • Стандартні інструменти.
  • Табличний редактор та калькулятор.
  • Вставлення графічних об'єктів.

Приклади - MS Word, Write, WordPerfect, Ami Pro, MultiEdit, Лексикон, Рефіс

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

Приклади - Corel Ventura, QuarkXPress, Adobe PageMaker, MS Publisher, FrameMaker

Графічна інформація– дані або дані, представлені у вигляді схем, ескізів, зображень, графіків, діаграм, символів.

Графічний редактор – програма для створення, редагування, перегляду графічних зображень.

Основні компоненти графічного редактора:

  • Набір шрифтів, робота з текстом.
  • Стандартні інструменти.
  • Бібліотека картинок.
  • Об'єднання картинок.
  • Спецефекти.

Розрізняють все три види комп'ютерної графіки . Це растрова графіка, векторна графіка та фрактальна графіка. Вони відрізняються принципами формування зображення під час відображення на екрані монітора або друку на папері.

Растрову графіку застосовують при розробці електронних (мультимедійних) та поліграфічних видань.

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

Фрактальну графіку рідко застосовують для створення друкованих чи електронних документів, але її часто використовують у розважальних програмах

Приклади - Paint, PaintBrush, CorelDraw, MS PhotoEditor, Adobe PhotoShop, 3D MAX Studio

СУБД(Система управління базами даних) - призначена для автоматизації процедур створення, зберігання та вилучення електронних даних (обробка масивів інформації).

Приклади - dBase, Paradox, MS Access, Oracle, FoxPro

Інтергровані системи зустрічаються двох типів

  • Традиційні (пов'язані) пакети прикладних програм (ППП).
  • Пакети прикладних програм з інтеграцією об'єктно-пов'язаного характеру

Традиційні ППП

Інтегрований програмний комплекс є багатофункціональним автономним пакетом, в якому в одне ціле об'єднані функції та можливості різних спеціалізованих (проблемно-орієнтованих) пакетів. У цих програмах відбувається інтеграція функцій редактора текстів, СУБД та табличного процесора. Загалом вартість такого пакета набагато нижча за сумарну вартість аналогічних спеціалізованих пакетів.

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

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

Відомі пакети Open Access фірми Open Access, FrameWork фірми Ashton-Tate, Lotus 1-2-3 та Symphony фірми Lotus Development Corporation, Lotus Works.

ППП з інтеграцією об'єктно-пов'язаного характеру

Це об'єднання спеціалізованих пакетів у рамках єдиної ресурсної бази, забезпечення взаємодії додатків (програм пакета) на рівні об'єктів та єдиного спрощеного центру-перемикача між програмами.

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

Особливістю цього інтеграції є використання спільних ресурсів. Види спільного доступу до ресурсів:

  • використання утиліт, загальних всім програм комплексу (перевірка орфографії);
  • застосування об'єктів, які можуть бути у спільному використанні кількох програм;

В плані спільного використанняКілька додатків є два основних стандарти:

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

Також цей механізм дозволяє переносити OLE-об'єкти з вікна однієї програми у вікно іншого.

OpenDoc є об'єктно-орієнтованою системою, що базується на відкритих стандартах фірм – учасників розробки. Як модель об'єкта використовується розподілена модель системних об'єктів (DSOM – Distributed System Object Model), розроблена фірмою IBM для OS/2.

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

Приклади: Borland Office for Windows, Lotus SmartSute для Windows, MS Office.

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

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

Прийнято виділяти в ЕС три основні модулі: модуль бази знань, модуль логічного виводу, інтерфейс користувача.

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

Гіпертекст– це форма організації текстового матеріалу над лінійної послідовності, а формі вказівок можливих переходів (посилань), зв'язків між окремими його фрагментами. У гіпертекстових системах інформація нагадує текст енциклопедії, і доступ до будь-якого виділеного фрагмента тексту здійснюється довільно за посиланням. Організація інформації у гіпертекстової формі використовується при створенні довідкових посібників, словників, контекстної допомоги у прикладних програмах.

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

АРМ- Автоматизоване робоче місце.

АСНІ- Автоматизовані системи наукових досліджень.

АСУавтоматизована системауправління.

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

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

Багато версіях ОС UNIX транслятор прикладних середовищ реалізується як звичайного докладання. У ОС, побудованих з використанням мікроядерної концепції, таких як, наприклад, Windows NT або Workplace OS, прикладні середовища виконуються як серверів користувача режиму. А в OS/2 з її найпростішою архітектурою засоби організації прикладних середовищ вбудовані глибоко в ОС. Один з найбільш очевидних варіантів реалізації множинних прикладних середовищ ґрунтується на стандартній багаторівневій структурі ОС .

Рис. 3.13. Прикладні програмні середовища, що транслюють системні виклики

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

В іншому варіанті реалізації множинних прикладних середовищ ОС має кілька рівноправних прикладних програмних інтерфейсів. У наведеному рис. 3.14 приклад ОС підтримує програми, написані для OS1, OS2 та OS3. Для цього безпосередньо в просторі ядра системи розміщено прикладні програмні інтерфейси всіх цих ОС: API OS1, API OS2 та API OS3. У цьому варіанті функції рівня API звертаються до функцій нижче рівня ОС, які повинні підтримувати всі три в загальному випадку несумісні прикладні середовища.

У різних ОС по-різному здійснюється управління системним часом, використовується різний формат часу дня, виходячи з власних алгоритмів поділяється процесорний час тощо. буд. Функції кожного API реалізуються ядром з урахуванням специфіки відповідної ОС, навіть якщо вони мають аналогічне призначення. Наприклад, як уже було сказано, функція створення процесу працює по-різному для програми UNIX та OS/2. Аналогічно при завершенні процесу ядру також необхідно визначати, до якої ОС належить цей процес. Якщо цей процес був створений за запитом UNIX-програми, то в ході його завершення ядро ​​має надіслати батьківському процесу сигнал, як це робиться в ОС UNIX. А після завершення процесу OS/2, ядро ​​слід зазначити, що ідентифікатор процесу не може бути повторно використаний іншим процесом OS/2. Щоб ядро ​​могло вибрати потрібний варіант реалізації системного виклику, кожен процес повинен передавати в ядро ​​набір ідентифікуючих характеристик.

Рис. 3.14.Реалізація сумісності на основі кількох рівноправних API

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

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

Такому підходу до конструювання множинних прикладних середовищ властиві всі переваги та недоліки мікроядерної архітектури, зокрема:

§ дуже просто можна додавати та виключати прикладні середовища, що є наслідком хорошої розширюваності мікроядерних ОС;

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

§ низька продуктивність мікроядерних ОС позначається швидкості роботи прикладних середовищ, отже, і швидкості виконання додатків.

Рис. 3.15. Мікроядерний підхід до реалізації множинних прикладних середовищ

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

Висновки:

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

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

§ Ядро, будучи структурним елементом ОС, своєю чергою, може бути логічно розкладено такі шари (починаючи з найнижчого):

§ машинно-залежні компоненти ОС;

§ базові механізми ядра;

§ менеджери ресурсів;

§ інтерфейс системних викликів.

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

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

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

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

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

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

Завдання та вправи

1. Які із наведених нижче термінів є синонімами?

§ привілейований режим;

§ захищений режим;

§ режим супервізора;

§ користувальницький режим;

§ реальний режим;

§ режим ядра.

2. Чи можна, аналізуючи двійковий код програми, зробити висновок про неможливість її виконання в режимі користувача?

3. У чому полягає відмінність у роботі процесора в привілейованому та користувальницькому режимах?

4. В ідеалі мікроядерна архітектура ОС вимагає розміщення в мікроядрі тільки тих компонентів ОС, які не можуть виконуватися в режимі користувача. Що змушує розробників операційних систем відходити від цього принципу та розширювати ядро ​​за рахунок перенесення до нього функцій, які могли б бути реалізовані у вигляді процесів-серверів?

5. Які етапи включає розробку варіанта мобільної ОС для нової апаратної платформи?

6. Опишіть порядок взаємодії з ОС, що має мікроядерну архітектуру.

7. Якими етапами відрізняється виконання системного виклику в мікроядерній ОС та ОС із монолітним ядром?

8. Чи може програма, емульована на «чужому» процесорі, виконуватися швидше, ніж на «рідному»?

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

Багато версіях ОС UNIX транслятор прикладних середовищ реалізується як звичайного докладання. В операційних системах, побудованих з використанням мікроядерної концепції, таких як, наприклад, Windows NT, прикладні середовища виконуються у вигляді серверів режиму користувача. А в операційній системі OS/2 з її найпростішою архітектурою засоби організації прикладних середовищ вбудовані глибоко в систему.

Один з найбільш очевидних варіантів реалізації множинних прикладних середовищ ґрунтується на стандартній багаторівневій структурі ОС. На рис. 2.7 операційна система ОС1 підтримує крім своїх «рідних» програм програми операційної системи ОС2. Для цього в її складі є спеціальний додаток - прикладне програмне середовище, яке транслює інтерфейс "чужої" операційної системи -API ОС2 в інтерфейс своєї "рідної" операційної системи - API ОС1.



Режим користувача

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

Рис. 2.7. Прикладне програмне середовище,
транслююча системні виклики

В іншому варіанті реалізації множинних прикладних середовищ операційна система має кілька рівноправних прикладних програмних інтерфейсів. У наведеному рис. 2.8 прикладі операційна система підтримує програми, написані для OС1, OС2 і OС3. Для цього безпосередньо в просторі ядра системи розміщені приклад-

ні програмні інтерфейси всіх цих ОС: API OС1, API OС2 та
API OС3.


Режим користувача


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

Рис. 2.8. Реалізація сумісності
на основі декількох рівноправних API

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

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

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

Програми Сервери ОС


Користувальницький


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

Рис. 2.9. Мікроядерний підхід
до реалізації множинних прикладних середовищ

Такому підходу до конструювання множинних прикладних середовищ властиві всі переваги та недоліки мікроядерної архітектури, зокрема:

дуже просто можна додавати та виключати прикладні середовища, що є наслідком гарної розширюваності мікроядерних ОС;

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

Низька продуктивність мікроядерних ОС позначається швидкості роботи прикладних середовищ, отже, і швидкості виконання додатків.

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

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

50. У чому відмінність мікроядерної архітектури традиційної архітектури ОС?

51. Чому мікроядро добре підходить для підтримки розподілених обчислень?

52. Що мається на увазі під концепцією багатьох прикладних середовищ?

53. У чому полягає суть методу трансляції бібліотек?

Контрольні питання

54. Яким терміном у мікроядерній архітектурі прийнято називати менеджери ресурсів, винесені в режим користувача?

56. Чому мікроядерна архітектура ОС більшою мірою розширюється, ніж класична ОС?

57. Чи є мікроядерна архітектура надійнішою, ніж традиційна?

58. Вкажіть причину, через яку продуктивність мікроядерної архітектури нижча, ніж продуктивність традиційної ОС.

60. Які види сумісності вам відомі?

61. За рахунок яких дій досягається двійкова сумісність процесорів різних архітектур?

62. Вкажіть спосіб, який дозволяє підвищити продуктивність ПК при виконанні «чужого» файлу, що виконується.

63. Чи достатньо одного методу трансляції бібліотек для повної сумісності програм?