Реферат: Дайте визначення операційної системи. Класифікація І основні властивості операційних систем


Виконав:

Андріюк Микола


Дайте визначення операційної системи. Класифікація і основні властивості операційних систем. Функціональні компоненти операційних систем, архітектура операційних систем.

Вступ

Перші комп'ютери взагалі не мали ОС. На початку 1960-х вони лише комплектувались набором інструментів для розробки, планування та виконання завдань. Серед інших можна виділити системи від UNIVAC та Control Data Corporation. До кінця 1960-х, проте, було розроблено цілий ряд операційних систем, в котрих були реалізовані всі або більшість з вищеперелічених функцій. До них можна віднести «Atlas» (Манчестерський університет), «CTTS» и «ITSS» (Массачусетський технологічний інститут (МТІ)), «THE» (Ейндховенський технологічний університет), «RS4000» (Університет Орхуса) та інші (на той момент їх налічувалось близько сотні) Найбільш розвинуті ОС того часу, такі як «OS/360» (компанія «IBM»), «SCOPE» (компанія «CDC») та завершений вже в 1970-х роках «MULTICS» (МТІ та компанія «Bell Labs»), передбачали можливість використання багатопроцесорних системи.

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

У 1969 році співробітники МТІ Кен Томпсон, Деніс Рітчі та Брайан Керніган з колегами розробили та реалізували ОС «Юнікс» («Unix»; первинно «UNICS», на противагу «MULTICS»), котра увібрала в себе багато рис попередниць, але на противагу їм мала цілий ряд переваг:

проста метафорика (два ключових поняття — процес та файл);

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

мінімізація ядра та кількості системних викликів;

незалежність від апаратної архітектури і реалізація на машинно незалежній мові програмування (для цього була розроблена мова програмування «C»;

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

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

В кінці 1970-х років співробітники Каліфорнійського університету в Берклі внесли ряд суттєвих вдосконалень у джерельні коди Юнікс, включно з реалізацією стеку мережевих протоколів TCP/IP. Їх розробка стала відомою під іменем BSD (англ. Berkeley Software Distribution).

Через конфлікт з «Bell Labs» Річард Столмен поставив задачу реалізувати повністю незалежну від авторських прав ОС на основі Юнікс, заснувавши проект «GNU» (англ. рекурсивсне скорочення «GNU's Not Unix» — «ГНЮ Не Юнікс»).

Незабаром «Юнікс» стала стандартом де-факто, а потім і юридичним — ISO/IEC 9945. ОС, що дотримувались цього стандарту чи опираються на нього, називають «відкритими» або «стандартними». До них відносяться системи, що базуються на останній версії «Юнікс», випущеної «Bell Labs» («System V»), на розробках

Університету Берклі («FreeBSD», «OpenBSD», «NetBSD»), а також ОС «Linux», розроблена спільнотою на чолі з Лінусом Торвальдсом та в межах проекту «GNU» (основні системні інструменти).

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


^ Функції операційної системи

Головні функції:

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

Стандартизований доступ до периферійних пристроїв (пристрої введення-виведення).

Завантаження програм у оперативну пам'ять і їх виконання.

Керування оперативною пам'яттю (розподіл між процесами, організація віртуальної пам'яті).

Керування доступом до даних енергозалежних носіїв (твердий диск, оптичні диски тощо), організованим у тій чи іншій файловій системі.

Забезпечення користувацького інтерфейсу.

Мережеві операції, підтримка стеку мережевих протоколів.

Додаткові функції:

Паралельне або псевдопаралельні виконання задач (багатозадачність).

Розподіл ресурсів обчислювальної системи між процесами.

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

Взаємодія між процесами: обмін даними, синхронізація.

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

Багатокористувацький режим роботи та розділення прав доступу (автентифікація, авторизація).

Базові відомості

Поняття операційної системи напряму пов'язане з такими поняттями, як:

Програма - файл, що містить набір інструкцій для виконання. В якості виконавця інструкцій програми можуть виступати:

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

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

Задача - програма в процесі виконання (в термінології операційних систем UNIX використовують термін "процес").

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

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

Відносно свого призначення, операційні системи бувають:

універсальні (для загального використання);

спеціальні (для розв'язання спеціальних задач);

спеціалізовані (виконуються на спеціальному обладнанні);

однозадачні (в окремий момент часу можуть виконувати лише одну задачу);

багатозадачні (в окремий момент часу здатні виконувати більше однієї задачі);

однокористувацькі (в системі відсутні механізми обмеження доступу до файлів та на використання ресурсів системи);

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

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

Відносно способу встановлення (інсталяції) операційної системи, операційні системи бувають:

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

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

Відносно відповідності стандартам операційні системи бувають:

стандартні (відповідають одному з загальноприйнятих відкритих стандартів, найчастіше POSIX);

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

Відносно можливостей розширення операційні системи бувають:

закриті (не дозволяють розширення функціональності ОС);

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

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

відкриті (англ. open source) - з відкритим програмним кодом;

власницькі (англ. proprietary) - комерційні з закритим кодом.

^ Функціональні компоненти ОС

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

^ Керування процесами й потоками

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

Інше означення процесу - це програма під час її виконання.

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

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

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

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

^ Керування пам'яттю

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

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

^ Керування введенням-виведенням

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

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

^ Керування файлами та файлові системи

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

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

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

^ Мережна підтримка

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

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

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

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

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

^ Безпека дани
еще рефераты
Еще работы по разное