Налаштування обладнання та програмного забезпечення

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • API, який використовує програму, повинен підтримуватися цією ОС;
  • внутрішня структура виконуваного файлу програми має відповідати структурі виконуваних файлів цієї ОС.

Якщо процесори мають різну архітектуру, то крім перерахованих умов необхідно організувати емуляцію двійкового коду. Наприклад, широко використовується емуляція команд процесора Intel на процесорі Motorola 680x0 комп'ютера Macintosh. Програмний емулятор у цьому випадку послідовно вибирає двійкову інструкцію процесора Intel та виконує еквівалентну підпрограму, написану в інструкціях процесора Motorola. Так як у процесора Motorola немає точно таких же регістрів, прапорів, внутрішнього АЛУ та ін., як у процесорах Intel, він повинен також імітувати (емулювати) всі ці елементи з використанням своїх регістрів або пам'яті.

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

Ефективність цього підходу пов'язана з тим, що більшість сьогоднішніх програм працює під управлінням GUI (графічних інтерфейсів користувача) типу Windows, MAC або UNIX Motif, при цьому додатки витрачають 60-80% часу на виконання функцій GUI та інших бібліотечних викликів ОС. Саме ця властивість програм дозволяє прикладним середовищам компенсувати великі витрати часу, витрачені на командне емулювання програм. Ретельно спроектоване програмне прикладне середовище має у своєму складі бібліотеки, що імітують бібліотеки GUI, але написані на "рідному" коді. Таким чином, досягається суттєве прискорення виконання програм з API іншої операційної системи. Інакше такий підхід називають трансляцією – щоб відрізнити його від повільнішого процесу емулювання по одній команді за раз.

Наприклад, для Windows -програми, що працює на Macintosh, при інтерпретації команд процесора Intel продуктивністьможе бути дуже низькою. Але коли виконується виклик функції GUI, відкриття вікна та ін., модуль ОС, що реалізує прикладне середовище Windows, може перехопити цей виклик і перенаправити його на підкомплектовану для процесора Motorola 680x0 підпрограму відкриття вікна. В результаті на таких ділянках коду швидкість роботи програми може досягти (а можливо і перевершити) швидкість роботи на своєму рідному процесорі.

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

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

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

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

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

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

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

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

1.9. Віртуальні машини як сучасний підхід до реалізації множинних прикладних середовищ

Поняття "монітор віртуальних машин" (МВМ) виникло наприкінці 60-х років як програмний рівень абстракції, що розділяє апаратну платформу на кілька віртуальних машин Кожна з цих віртуальних машин (ВМ) була настільки схожа на базову фізичну машину, що існує програмне забезпеченнямогло виконуватися у ньому у незмінному вигляді. Тоді обчислювальні завдання загального характеру вирішувалися на дорогих мейнфреймах (типу IBM /360), і користувачі високо оцінили здатність МВМ розподіляти дефіцитні ресурси серед кількох додатків.

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

Сьогодні МВМ – знову у центрі уваги. Корпорації Intel, AMD, Sun Microsystems та IBM створюють стратегії віртуалізації, у наукових лабораторіях та університетах для вирішення проблем мобільності, забезпечення безпеки та керованості розвиваються підходи, що базуються на віртуальних машинах. Що ж сталося між відставкою МВМ та їх відродженням?

У 90-ті роки дослідники зі Стендфордського університету почали вивчати можливість застосування ВМ для подолання обмежень обладнання та операційних систем. Проблеми виникли у комп'ютерів з масовою паралельною обробкою (Massively Parallel Processing, MPP), які погано піддавалися програмуванню і не могли виконувати наявні ОС. Дослідники виявили, що за допомогою віртуальних машин можна зробити цю незручну архітектуру досить схожою на існуючі платформи, щоб використати переваги готових ОС. З цього проекту вийшли люди та ідеї, які стали золотим фондом компанії VMware (www.vmware. com), першого постачальника МВМ для комп'ютерів масового застосування.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Багато версіях ОС 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-вузлами

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

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

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

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

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

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

Висновки

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

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

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

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



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

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

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

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

Способи реалізації прикладних програмних середовищ

Залежно від архітектури:

1. Прикладне програмне середовище у вигляді програми (верхній шар ядра рідної ОС).

Режим роботи, трансляція системних викликів ( викликів API) у виклики «рідний» ОС. Відповідає класичним багатошаровим ОС (Unix, Windows).

2. Наявність кількох прикладних середовищ, що функціонують рівноправно. Кожна як окремого шару ядра.

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

3. Мікроядерний принцип.

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

Інтерфейси ОС

Інтерфейс ОС- Це прикладна система програмування. Регламентується за допомогою стандартів (POSIX, ISO).

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

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

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

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

Інтерфейси ОС Linux:

· Програмний (без посередників - власне виконання системних викликів);

· Командного рядка (посередник - оболонка інтерпретатора Shell, що перенаправляє виклик);

· графічний (посередники - Shell + графічна оболонка).

Файлова система

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

За складом ФС:

· Сукупність всіх файлів на диску на всіх носіях,

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

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

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

Сподобалась стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не було враховано.
Спасибі. Ваше повідомлення надіслано
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!