ЗНАЕТЕ ЛИ ВЫ?

Призначення та функції операційних систем .



Мета вивчення дисципліни.

Головною метою дисципліни "Системне програмування та операційні системи" - формування у студентів:

1) фундаментальних теоретичних знань з:

- моделей аналізу та синтезу формальних мов;

- моделей побудови мовного процесора;

- методів компіляції та інтерпретації програм;

- принципів побудови системних програм;

- концепцій та методів побудови операційних систем;

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

- структури та принципів роботи сучасних операційних систем;

- методів керування процесами, пам’яттю, файловою системою та іншими ресурсами комп’ютерів;

2) практичних навичок з:

- програмування на рівні портів вводу-виводу;

- проектування та побудови системних бібліотек;

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

- інсталяції та налагодженні операційних систем;

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

Задачі дисципліни.

Основним завданням курсу:

В результаті вивчення курсу студент повинен знати:

- способи побудови мовного процесора;

- методи аналізу та синтезу формальних мов;

- методи компіляції та інтерпретації програм;

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

- основні типи операційних систем;

- можливості сучасних операційних систем та оболонок;

- методи та концепцій побудови операційних систем;

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

- структури та принципи роботи сучасних операційних систем;

- методи керування процесами, пам’яттю, файловою системою та іншими ресурсами комп’ютерів.

В результаті вивчення дисципліни студент повинен вміти виконувати:

- розробку та налагоджування програм на рівні портів вводу-виводу;

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

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

- вибір операційних систем для інформаційних систем в економіці;

- інсталяцію та налагодженні операційних систем;

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

Призначення та функції операційних систем .

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

1. Контроль працездатності устаткування ПК.

2. Виконання процедури початкового завантаження.

3. Управління роботою усіх пристроїв ПК.

4. Управління файловою системою.

5. Взаємодія користувача з ПК.

6. Завантаження виконання прикладних програм.

7. Розподіл ресурсів ПК.

Еволюція ОС

2.1.Еволюція ОС

Перший період (1945 -1955)

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

Другий період (1955 - 1965)

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

Третій період (1965 - 1980)

Наступний важливий період розвитку обчислювальних машин відноситься до 1965-1980 років. У цей час у технічній базі відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем, що дало набагато більші можливості новому, третьому поколінню комп'ютерів. Для цього періоду характерно також створення сімейств програмно-сумісних машин. Першим сімейством програмно-сумісних машин, побудованих на інтегральних мікросхемах, з'явилася серія машин ІBM/360.

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

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

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

Поняття ядра ОС.

До складу операційної системи входять:

· Ядро операційної системи, що забезпечує розподіл і управління ресурсами обчислювальної системи;

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

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

· управління введенням-виведенням інформації (підсистема вводу-виводу ядра ОС);

· управління оперативною пам'яттю (підсистема управління оперативною пам'яттю ядра ОС);

· управління процесами (підсистема управління процесами ядра ОС).

Кожна з цих підсистем представлена відповідними функціями ядра системи.

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

Існує три основних механізми забезпечення багатозадачності (планування задач):

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

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

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

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

В сучасних системах, як правило комбінується методи 2 і 3.

Підсистеми ядра ОС

Етапи розвитку ОС

Сьогодення

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

При виборі ОС ключовим моментом є архітектура комп'ютера (зокрема центрального процесора), на котрій вона буде запускатись. На персональних комп'ютерах сумісних з ІВМ РС запускаються ОС сімейства «Майкрософт Віндовз», «Лінукс» та «БСД». На мейнфреймах Burroughs MCP — B5000, IBM OS/360 — IBM System/360, UNIVAC EXEC 8 — UNIVAC 1108. Крім того на більшості сучасних мейнфреймів запускаються різні варіанти Лінукс чи Юнікс, а на деяких — версія Datacenter Windows 2003 Server. На вбудованих системах використовується велика кількість вбудованих ОС.

Юнікс-подібні ОС

До юнікс-подібних ОС відноситься велика кількість операційних систем, котрі можна умовно поділити на три категорії — System V, BSD та Лінукс. Сама назва «Юнікс» є торговою маркою, що належить «The Open Group», котра власне й ліцензує кожну конкретну ОС на предмет того, чи відповідає вона стандарту. Тому через ліцензійні чи інші неузгодження деякі ОС, котрі фактично є Юнікс-подібними, не визнані такими офіційно.

Системи Юнікс запускаються на великій кількості процесорних архітектур. Вони широко використовуються як серверні системи у бізнесі, як стільничні системи у академічному та інжененому середовищі. Тут популярні вільні варіанти Юнікс, такі як Лінукс та БСД-системи. Окрім того, деякі з них останнім часом набувають широкого поширення в корпоративному середовищі, особливо це стосується орієнтованих на кінцевого користувача дистрибутивів Лінукс, в першу чергу Ubuntu, Mandriva, Red Hat Enterprise Linux та Suse. Лінукс також є популярною системою на стільницях розробників, системних адміністраторів та інших ІТ-спеціалістів.

Деякі варіанти Юнікс, як наприклад HP-UX компанії Хьюлет Пакард та AIX від IBM запускаються лише на апаратних системах своїх розробників. Інші, як наприклад Solaris, можуть запускатись на багатьох апаратних типах, включаючи сервери на базі x86 та ПК.

Сімейство Microsoft Windows

Windows XP

Первинно сімейство ОС Microsoft Windows проектувалось як графічна надбудова над старими середовищами DOS. Сучасні версії розроблені на базі нового ядра (англ. NT - New Technology, Нова технологія), що первинно з'явилось в OS/2, запозичене з VMS. Windows запускається на 32- та 64-бітних процесорах Інтел та AMD; попередні версії також могли запускатись на процесорах DEC Alpha, MIPS, Fairchild (пізніше Intergraph) Clipper та PowerPC. Проводились роботи на портування її на архітектуру SPARC.

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

Найбільше на сьогоднішній день поширена версія Microsoft Windows XP, випущена 25 жовтня 2001 року. Останній випуск Windows XP Service Pack 2 випущено 6 серпня 2004 року. Станом на 27 червня 2008 року операційні системи сімейства Microsoft Windows займають 91 % долі світового ринку ОС [1]

У листопаді 2006 року, після більш ніж 5 років розробки, корпорація Microsoft випустила ОС Windows Vista, що містить велику кількість нововведень та архітектурних змін в порівнянні з попередніми версіями Windows. Серед інших можна виділити новий інтерфейс користувача, названий Windows Aero, ряд вдосконалень безпеки, як наприклад Контроль реєстраційного запису користувача (User Account Control) та нові програми для мультимедія, як наприклад Windows DVD Maker.

Mac OS X — це ряд графічних ОС, що розроблюються, реалізуються та підтримуються компанією Apple. Mac OS X — це наступниця оригінальної MacОС, що її розробляла Apple з 1984 року. На відміну від попередниці, Mac OS X є Юнікс-системою, що розроблена на основі NEXTSTEP.

Перші випуски Mac OS X були у 1999 році — Mac OS X Server 1.0, та в березні 2001 — Mac OS X 10.0. З того часу було випущено ще 5 версій Mac OS X у варіантах «кінцевий користувач» та «сервер». Остання версія, Mac OS X 10.5, випущена 15 листопада 2007 року. Випуски Mac OS X називаються іменами великих тварин з родини котячих; Остання версія (10.5) носить назву «Леопард».

Серверна версія Mac OS X Server архітектурно ідентична версії для кінцевого користувача, але запускається на серверах виробництва Apple. Вона містить програми для керування робочими групами та адміністрування ключових мережевих служб, включаючи поштові служби, сервери Samba, LDAP, DNS та ін.

Класифікація програм.

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

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

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

- обробка задач;

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

- роботи системи в реальному масштабі часу в складі багатопроцесорних і багатомашинних комплексів;

- зв'язок оператора із системою;

- протоколювання ходу виконання обчислювальних робіт;

- обробки даних, які поступають по каналах зв'язку;

- функціонування пристроїв в/в;

- використання широкого набору засобів відладки і тестування програм;

- планування проходження задач у відповідності з їх пріоритетами;

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

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

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

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

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

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

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

ОС представляють програмі користувача можливість дізнатися текучі дату і час. За початок підрахунку, наприклад, в MS-DOS прийнята дата 1 січня 1980р. 0 год. 0 хв. 0 сек. по Грінвічу, в UNIX 1 січня 1970р. Системи представляють можливість виміру часових інтервалів коротших 1 секунди з допомогою спеціальних системних викликів. ОС може переводити дату і час з внутрішнього числового представлення в символьне (для виведення, наприклад, на термінал ), місцевий час в час по Грінвічу і навпаки, представляти інформацію про часовий пояс, літній та зимовий час.

Платформа процесора

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

Віртуальні машини

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

Апаратна платформа

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

IBM PC (Personal Computer) – платформа персональних комп'ютерів започаткована у серпні 1981 року фірмою IBM моделлю IBM 5150, загально відомою виключно як IBM PC.

Назва IBM PC протягом двох років була однозначною i відрізняла цей вироб від всіх інших тогочасних персональних комп'ютерів таких як ZX-81 або продукції серії Apple II. Коли у 1983 вийшла нова модель IBM PC/XT, фірма IBM скористалася популярністю назви IBM PC давши їй назву IBM PC/розширений (XT маркетингове скорочення англійського слова extended).

Популярність цією платформи та сумісних з нею виробів – близько 90% світових комп'ютерів – призвела до того, що для більшості споживачів персональний комп'ютер, ПІСІ (англ. personal computer), ототожнюється з продукцією IBM PC.

Апаратне забезпечення (англ. hardware) — комплекс технічних засобів, який включає ЕОМ: зовнішні пристрої, термінали, абонентські пункти тощо, які необхідні для функціонування тієї чи іншої системи; фізична частина ЕОМ.

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

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

Приклади шин

· ISA

· EISA

· PCI

· AGP

· PCI Express

· HyperTransport

· ATA

· Serial ATA

· SCSI

· Fibre Channel

· USB

· FireWire

· LPC

FWH Аппаратная платформа компьютера — нижний слой многоуровневой организации компьютера (аппаратура, операционная система, прикладное програмное обеспечение), на который опираются ОС и прикладное ПО. Аппаратные платформы отличаются друг от друга процессором, чипсетом и другими компонентами материнской платы. Каждая аппаратная платформа имеет список ОС и прикладных программ, которые могут на ней запускаться.

Платформы-бренды

Одной из наиболее распространённых является платформа PC. На рынке персональных компьютеров также распространены компьютеры Apple. Эти платформы являются широко известными брендами. Debian компилирует свои пакеты для GNU/Linux для трёх архитектур процессоров Intel: IA-32 (x86-32), x86-64, IA64. Также официально создаются пакеты для ещё 8 аппаратных платформ. Пакеты, оптимизированные для конкретных процессоров своих платформ пользователи могут создать сами. Debian GNU/Hurd и GNU/kFreeBSD пока поддерживают меньшее количество платформ.

ОС NetBSD портированна на 60 аппаратных платформ (включающих в общей сложности 17 различных процессорных архитектур). В мире довольно много аппаратных платформ. Ниже перечислены некоторые из них.

По сути одно и тоже)

Компоненти користувацького режиму

Підсистема користувальницького інтерфейсу в Windows NT реалізує віконний інтерфейс, подібний інтерфейс попередніх версій Windows. Двома типами об'єктів цієї підсистеми, були відсутні в 16-бітових версіях Windows і в Windows 9x, є віконні станції і робочі столи. Віконна станція відповідає одному сеансу користувача Windows NT - наприклад, при підключенні через службу віддаленого робочого столу створюється нова віконна станція. Кожен запущений процес належить до однієї з віконних станцій; служби, крім позначених як здатні взаємодіяти з робочим столом, запускаються в окремих, невидимих віконних станціях.

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

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

Look #62

70)

По числу одночасно виконуваних завдань операційні системи можуть бути розділені на два класи:

однозадачні (наприклад, MS-DOS, MSX) і

багатозадачні (OC ЄС, OS/2, UNIX, Windows 95).

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

DOS має консольну систему введення/висновку і підтримує три стандартні потоки: stdin, stdout і stderr.

DOS — 16-бітова операційна система, що працює в реальному режимі, тому для розширення можливостей і подолання обмежень реального режиму були створені так звані розширювачі DOS. Вони запускають програми в захищеному 32-бітовому режимі і емулюють початкові сервіси операційної системи. Зазвичай вони підтримують стандарт DOS Protected Mode Interface (DPMI). Найвідоміший і широко використовуваний (у комп'ютерних іграх) розширювач — DOS/4GW.

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

71)

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

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

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

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

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

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

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

Забезпечення захисту інформації від несанкціонованого доступу є обов'язковою функцією мережевих ОС. У багатьох сучасних ОС гарантується ступінь безпеки даних, що відповідає рівню С2 у системі стандартів США. Основи стандартів в області безпеки були закладені в документі «Критерії оцінки надійних комп'ютерних систем». Цей документ, виданий Національним центром комп'ютерної безпеки (NCSC — National Computer Security Centre) у США в 1983 році, часто називають Жовтогарячою книгою.

72)

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

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

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

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

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

Розширюваність

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

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

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

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

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

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

Переносимість

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

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

По-друге, слід врахувати, в яке фізичне оточення програма повинна бути перенесена. Різна апаратура вимагає різних рішень при створенні ОС. Наприклад, ОС, побудована на 32-бітових адресах, не може бути перенесена на машину з 16-бітовими адресами (хіба що з величезними труднощами).

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

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

Для легкого перенесення ОС при її розробці повинні бути дотримані наступні вимоги:

· Переносима мова високого рівня. Більшість переносимих ОС написана на мові З (стандарт ANSI X3.159-1989). Розробники вибирають З тому, що він стандартизован, і тому, що С-компілятори широко доступні. Асемблер використовується тільки для тих частин системи, які повинні безпосередньо взаємодіяти з апаратурою (наприклад, обробник переривань) або для частин, які вимагають максимальної швидкості (наприклад, цілочисельна арифметика підвищеної точності). Проте нестерпний код повинен бути ретельно ізольований усередині тих компонентів, де він використовується.

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

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





Последнее изменение этой страницы: 2016-06-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.219.31.204 (0.026 с.)