ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Четвертий період (з 1980 р. по теперішній час). Персональні комп'ютери. Класичні, мережеві і розподілені системи

Наступний період в еволюції обчислювальних систем пов'язаний з появою великих інтегральних схем (БІС). У ці роки відбулося різке зростання ступеня інтеграції і зниження вартості мікросхем. Комп'ютер, що не відрізняється по архітектурі від PDP-11, за ціною і простотою експлуатації став доступний окремій людині, а не відділу підприємства або університету. Наступила ера персональних комп'ютерів. Спочатку персональні комп'ютери призначалися для використання одним користувачем в однопрограммном режимі, що спричинило деградацію архітектури цих ЕОМ і їх операційних систем (зокрема, пропала необхідність захисту файлів і пам'яті, планування завдань і т. п.).

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

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

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

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

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

Надалі автономні операційні системи ми називатимемо класичними операційними системами.

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

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

· Забезпечення програм засобами комунікації і синхронізації.

· Управління пам'яттю.

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

· Управління введенням-виводом.

· Забезпечення безпеки

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

Основні поняття і концепції ОС

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

Системні виклики

У будь-якій операційній системі підтримується механізм, який дозволяє призначеним для користувача програмам звертатися до послуг ядра ОС. У операційних системах найбільш відомої радянської обчислювальної машини БЕСМ-6 відповідні засоби "спілкування" з ядром називалися екстракодами, в операційних системах IBM вони називалися системними макрокомандами і так далі У ОС Unix такі засоби називають системними викликами.

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

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

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

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

Переривання

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

Виняткові ситуації

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

Файли

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

Головне завдання файлової системи (file system) – приховати особливості введення-виводу і дати програмістові просту абстрактну модель файлів, незалежних від пристроїв. Для читання, створення, видалення, запису, відкриття і закриття файлів також є обширна категорія системних викликів (створення, видалення, відкриття, закриття, читання і так далі). Користувачам добре знайомі такі пов'язані з організацією файлової системи поняття, як каталог, поточний каталог, кореневий каталог, шлях. Для маніпулювання цими об'єктами в операційній системі є системні виклики. Файлова система ОС описана в лекціях 11–12.

Процеси, нитки

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

Архітектурні особливості ОС

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

Монолітне ядро

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

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

Монолітне ядро – старий спосіб організації операційних систем. Прикладом систем з монолітним ядром є більшість Unix-систем.

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

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти