Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Операційна система



План:


Введення

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

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

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

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

У більшості обчислювальних систем операційна система є основною, найбільш важливою (а іноді і єдиною) частиною системного програмного забезпечення. З 1990-х років найбільш поширеними операційними системами є системи сімейства Microsoft Windows і системи класу UNIX (особливо Linux і Mac OS).


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

Основні функції:

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

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

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


Компоненти операційної системи

  • Завантажувач
  • Ядро
  • Командний процесор (інтерпретатор) [1]
  • Драйвери пристроїв
  • Інтерфейс

2. Поняття операційної системи

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

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

Операційні системи потрібні, якщо:

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

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

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

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

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

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


3. Ядро операційної системи

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

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

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

Об'єкти ядра ОС:


4. Еволюція операційних систем і основні ідеї

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

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


4.1. Пакетний режим

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

4.2. Поділ часу і багатозадачність

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

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

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


4.3. Розподіл повноважень

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

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


4.4. Реальний масштаб часу

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

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

4.5. Файлові системи та структури

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

Файлова система - спосіб зберігання даних на зовнішніх запам'ятовуючих пристроях.

5. Існуючі операційні системи

6. UNIX, стандартизація операційних систем і POSIX

До кінця 1960-х років галуззю і науково-освітньою спільнотою був створений цілий ряд операційних систем, що реалізують всі або частину окреслених вище функцій. До них відносяться Atlas ( Манчестерський університет), CTTS і ITSS ( Массачусетський технологічний інститут, MIT), THE (ейндховенському технологічний університет), RS4000 (Університет Орхуса) та ін (всього експлуатувалося більше сотні різних ОС).

Найбільш розвинені операційні системи, такі як OS/360 ( IBM), SCOPE (CDC (англ.)) та завершений вже в 1970-х роках MULTICS (MIT і Bell Labs), передбачали можливість виконання на багатопроцесорних комп'ютерах.

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

Задумана і реалізована в 1969 Кеном Томпсоном за участю кількох колег (включаючи Денніса Рітчі та Брайана Керніган), операційна система UNIX (спочатку UNICS, що перемагало назва MULTICS) увібрала в себе багато рис більш ранніх систем, але мала цілим рядом властивостей, що відрізняють її від більшості попередниць:

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

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

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

Задачу розробити незалежну (від авторських прав Bell Labs) реалізацію тієї ж архітектури поставив і Річард Столлман, засновник проекту GNU.

Завдяки конкурентності реалізацій архітектура UNIX стала спочатку фактичним галузевим стандартом, а потім знайшла статус і стандарту юридичного - ISO / IEC 9945 [2].

Тільки системи, що відповідають специфікації Single UNIX Specification, мають право носити ім'я UNIX. До таких систем відносяться AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 і z / OS.

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

До UNIX-подібним відносяться операційні системи, засновані на останній версії UNIX, випущеної Bell Labs ( System V), на розробках університету Берклі ( FreeBSD, OpenBSD, NetBSD), на основі Solaris ( OpenSolaris, BeleniX, Nexenta), а також Linux, розроблена в частині програм і бібліотек проектом GNU і в частині ядра - співтовариством, очолюваним Линусом Торвальдсом.

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

Найпомітнішим ефектом існування цього стандарту стало ефективне розгортання Інтернету в 1990-х роках.


7. Пост-UNIX-архітектури операційних систем

Колектив, який створив UNIX, розвинув концепцію уніфікації об'єктів операційної системи, включивши у вихідну концепцію UNIX "пристрій - це теж файл" також і процеси, і будь-які інші системні, мережеві та прикладні сервіси, створивши нову концепцію: "що завгодно - це файл". Ця концепція стала одним з основних принципів системи Plan9 (назва була запозичена з фантастичного трилера " План 9 з відкритого космосу " Едварда Вуда-молодшого), покликаної подолати принципові недоліки дизайну UNIX і змінила "робочу конячку" UNIX System V на комп'ютерах мережі Bell Labs в 1992.

Крім реалізації всіх об'єктів системи у вигляді файлів і розміщення їх на єдиному та персональному для кожного терміналу обчислювальної мережі просторі (namespace), були переглянуті інші архітектурні рішення UNIX. Наприклад, в Plan9 відсутнє поняття "суперкористувач", і, відповідно, виключаються будь-які порушення режиму безпеки, пов'язані з нелегальним отриманням прав суперкористувача в системі. Для подання (зберігання, обміну) інформації Роб Пайк і Кен Томпсон розробили універсальну кодування UTF-8, на сьогоднішній день стала стандартом де-факто. Для доступу до файлів використовується єдиний універсальний протокол 9P, по мережі працює на основі мережевого протоколу (TCP або UDP). Таким чином, для прикладного ПО мережі не існує - доступ до локальних і до виділених файлів единообразен. 9P - байт-орієнтований протокол, на відміну від інших подібних протоколів, які є блок-орієнтованими. Це також результат роботи концепції: доступ побайтно - до уніфікованих файлів, а не поблочно - до різноманітних і сильно змінюються з розвитком технологій пристроям. Для контролю доступу до об'єктів не потрібно інших рішень, окрім вже існуючого в операційній системі контролю доступу до файлів. Нова концепція системи зберігання позбавила адміністратора системи від виснажливої ​​праці з супроводу архівів і передбачила сучасні системи управління версіями файлів.

Операційні системи, створені на базі або ідеях UNIX, такі як все сімейство BSD і системи GNU / Linux, поступово переймають нові ідеї з Bell Labs. Можливо, ці нові ідеї чекає велике майбутнє і визнання ІТ-розробників.

Нові концепції були використані Робом Пайком в " Inferno ".

На основі Plan9 в Іспанії розробляються системи Off + + і Plan B, що носять експериментальний характер.

До спроб створити пост-UNIX-архітектуру можна також віднести розробку системи програмування і операційного середовища Оберон в Швейцарському федеральному технологічному інституті (ETH Zurich) під керівництвом професора Ніклауса Вірта.


Примітки

  1. Командний процесор-транялятор (перекладач) команд одержуваних ОС від користувача і програм в машинний мову.
  2. Свіжа версія ISO / IEC 9945 прийнята Міжнародною організацією зі стандартизації (ISO) в 2003.

Література

  • Гордєєв А. В. Операційні системи: Підручник для вузів - 2-е вид. - СПб. : Пітер, 2007. - 416 с. - ISBN 978-5-94723-632-3.
  • Деннінг П. Дж., Браун Р. Л. Операційні системи / / Сучасний комп'ютер - М ., 1986.
  • Іртегов Д. В. Введення в операційні системи - 2-е вид. - СПб. : BHV-СПб, 2007. - ISBN 978-5-94157-695-1.
  • Керніган Б. У., Пайк Р. У. UNIX - універсальне середовище програмування = The UNIX Programming Environment - М ., 1992. (Класичне введення у відкриті ОС, здебільшого зберегло актуальність)
  • Оліфер В. Г., Оліфер Н. А. Мережеві операційні системи - СПб. : Пітер, 2002. - 544 с. - ISBN 5-272-00120-6.
  • Столлінгс У. Операційні системи = Operating Systems: Internals and Design Principles - М .: Вільямс, 2004. - 848 с. - ISBN 0-1303-1999-6.
  • Таненбаум Е. С. Багаторівнева організація ЕОМ = Structured Computer Organization - М .: Світ, 1979. - 547 с.
  • Таненбаум Е. С. Сучасні операційні системи = Modern Operating Systems - 2-е вид. - СПб. : Пітер, 2005. - 1038 с. - ISBN 5-318-00299-4.
  • Таненбаум Е. С., Вудхалл А. С. Операційні системи. Розробка і реалізація = Operating Systems: Design and Implementation - 3-е изд. - СПб. : Пітер, 2007. - 704 с. - ISBN 978-5-469-01403-4.
  • Шоу А. Логічне проектування операційних систем = The Logical Design of Operating Systems - М .: Світ, 1981. - 360 с.
  • Реймонд Е. С. Мистецтво програмування для UNIX = The Art of UNIX Programming - М .: Вільямс, 2005. - 544 с. - ISBN 5-8459-0791-8.
  • Mark G. Sobell. UNIX System V. A Practical Guide - 3rd ed. - 1995.

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Solaris (операційна система)
House (операційна система)
UNIX-подібна операційна система
Операційна система реального часу
Система
Система APG II
Вбудована система
Інтелектуальна система
© Усі права захищені
написати до нас
Рейтинг@Mail.ru