Структура обчислювальної системи

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

По-друге, обчислювальна система складається з програмного забезпечення. Все програмне забезпечення прийнято ділити на дві частини: прикладне і системне. До прикладного програмного забезпечення, як правило, відносяться різноманітні банківські та інші бізнес-програми, ігри, текстові процесори і т. П. Під системним програмним забезпеченням зазвичай розуміють програми, що сприяють функціонуванню та розробці прикладних програм. Треба сказати, що поділ на прикладне та системне програмне забезпечення є почасти умовним і залежить від того, хто здійснює такий розподіл. Так, звичайний користувач, недосвідчений в програмуванні, може вважати Microsoft Word системною програмою, а, з точки зору програміста, це - додаток. Компілятор мови Сі для звичайного програміста - системна програма, а для системного - прикладна. Незважаючи на цю нечітку грань, дану ситуацію можна відобразити у вигляді послідовності шарів (див. Рис. 1.1), виділивши окремо найбільш загальну частину системного програмного забезпечення - операційну систему:


Мал. 1.1. Шари програмного забезпечення комп'ютерної системи

Всі теми даного розділу:

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

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

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

Операційна система як постійно функціонуюче ядро
Нарешті, можна дати і таке визначення: операційна система - це програма, постійно працює на комп'ютері і взаємодіє з усіма прикладними програмами. казал

Коротка історія еволюції обчислювальних систем
Ми будемо розглядати історію розвитку саме обчислювальних, а не операційних систем, тому що hardware і програмне забезпечення еволюціонували спільно, надаючи взаємний вплив д

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

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

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

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

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

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

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

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

Реалізація багатозадачності
За кількістю одночасно виконуваних завдань операційні системи можна розділити на два класи: багатозадачні (Unix, OS / 2, Windows); однозадачні (наприклад, MS-DO

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

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

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

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

Round Robin (RR)
Модифікацією алгоритму FCFS є алгоритм, який отримав назву Round Robin (Round Robin - це вид дитячої каруселі в США) або скорочено RR. По суті справи, це той же самий алгоритм, тільки реал

Shortest-Job-First (SJF)
При розгляді алгоритмів FCFS і RR ми бачили, наскільки істотним для них є порядок розташування процесів в черзі процесів, готових до виконання. Якщо короткі завдання розташовані в

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

пріоритетне планування
Алгоритми SJF і гарантованого планування є окремі випадки пріоритетного планування. При пріоритетному плануванні кожному процесу присвоюється певне числове значен

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

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

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

заборона переривань
Найбільш простим рішенням поставленого завдання є наступна організація прологу і епілогу: while (some condition) <запретить все прерывания critical section разрешить все прерывания rem

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

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

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

алгоритм Петерсона
Перше рішення проблеми, яке задовольняє всім вимогам і використовує ідеї раніше розглянутих алгоритмів, було запропоновано датським математиком Деккером (Dekker). У 1981 році Петерсон (Peterson)

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

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

Команда Test-and-Set (перевірити і привласнити 1)
Про виконання команди Test-and-Set, що здійснює перевірку значення логічної змінної з одночасним встановленням її значення в 1, можна думати як про виконання функції int Test_and_Set (i

Команда Swap (обміняти значення)
Виконання команди Swap, що обмінює два значення, які перебувають у пам'яті, можна проілюструвати наступною функцією: void Swap (int * a, int * b) применя

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

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

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

Схожі статті