- •Глава 1
- •Введення
- •Операційна система як менеджер ресурсів
- •Історія операційних систем
- •Ibm 1401 записує пакет завдань на магнітну стрічку (б); оператор приносить вхідні
- •360. Ми не можемо тут дати повну оцінку цієї книги, але достатньо буде сказати, що на її обкладинці зображено стадо доісторичних тварин, загрузли у
- •77, 82, 253, 285]. Системі multics також присвячений все ще активний web-сайт www.Multicians.Org, з великою кількістю інформації про систему, її проектувальників і користувачів.
- •Ibm захотіла деяких удосконалень у програмі, Білл Гейтс запрошуємо
- •Xerox [307]. Тоді Джобе приступив до створення Apple з графічним інтерфейсом. Це привело до проекту Lisa, який був дуже дорогий і зазнав комерційних
- •Онтогенез повторює філогенез
- •Серверні операційні системи
- •Операційні системи реального часу
- •VX Works і qnx є добре відомими операційними системами реального часу.
- •Вбудовані операційні системи
- •Огляд апаратного забезпечення комп'ютера
- •Процесори
- •Пристрої введення-виведення
- •Процесори
- •Взаємоблокировка
- •Управління пам'яттю
- •Введення-виведення даних
- •Безпека
- •Оболонка
- •Повторне використання ідей
- •Системні виклики
- •Системні виклики для управління процессами
- •Лістинг 1.1. Усічена оболочка1
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Iink ("/ usr/jim/memo", "/ usr / ast / note"): то файл memo в каталозі Джима з'явиться у каталозі Аста під назвою note.
- •Різні системні виклики
- •Багаторівневі системи
- •Віртуальні машини
- •Екзоядро
- •Модель клієнт-сервер
- •Дослідження в області операційних систем
- •Короткий огляд наступних глав
- •Одиниці виміру
- •1024 Байта, а не 1000 байт. Точно так же 1 Мбайт містить 220 a 048 576) байт,
Операційна система як менеджер ресурсів
Концепція, яка розглядає операційну систему насамперед як зручний
інтерфейс користувача, - це погляд зверху вниз. Альтернативний погляд, знизу
вгору, дає уявлення про операційну систему як про механізм, присутньому в пристрій комп'ютера для керування всіма частинами цієї найскладнішої
машини. Сучасні комп'ютери складаються з процесорів, пам'яті, датчиків
часу, дисків, миші, мережного інтерфейсу, принтерів і величезної кількості
інших пристроїв. Згідно з другим підходом робота операційної системи полягає в забезпеченні організованого і контрольованого розподілу
розподілу процесорів, пам'яті і пристроїв введення-виведення між різними
програмами, які змагаються за право їх використовувати.
Уявіть, що сталося б, якби на одному комп'ютері виявилися працюють три програми і всі вони одночасно спробували б надрукувати свої
вихідні дані на одному і тому ж принтері. Можливо, перші кілька рядків
на аркуші з'явилися б від першої програми, наступні декілька - з другої
програми та б слід було кілька рядків від третьої програми і т. д. В результаті вийшла б повна плутанина. Операційна система наводить порядок в подібних ситуаціях, буферізіруя на диску всі дані, призначені
для друку. У процесі роботи програми операційна система зберігає її
вихідні дані на диску в тимчасовому файлі. Потім, після закінчення роботи цієї
програми, система відправляє дані на принтер, в той час як інша програма може продовжувати формувати свої вихідні дані, не звертаючи уваги
на те, що вони поки ще фактично не посилаються на друкуючий пристрій.
Коли комп'ютером (або мережею) користуються декілька користувачів, необхідність в управлінні пам'яттю, пристроями введення-виведення, іншими ресурсами і їх захисту сильно зростає, оскільки користувачі можуть звертатися до них в абсолютно непередбачуваному порядку. До того ж часто доводиться розподіляти між користувачами не тільки устаткування, але й інформацію (файли, базиданих і т. д.). З цієї точки зору основне завдання операційної системи полягає у відстеженні того, хто і який ресурс використовує, в обробці запитів на ресурси, в підрахунку коефіцієнта завантаження та вирішенні проблем конфліктуючих запитів від різних програм і користувачів.
Управління ресурсами включає в себе їх мультиплексування (розподілу
(Розподіл) двома способами: в часі і в просторі. Коли ресурс розподіляється
в часі, різні користувачі та програми використовують його по черзі.
Спочатку один з них отримує доступ до використання ресурсу, потім другий і т.д.
Наприклад, кілька програм хочуть звернутися до центрального процесора.
У цій ситуації операційна система спочатку дозволяє доступ до процесора
одній програмі, потім, після того як вона попрацювала достатній час, інший
програмі, потім наступної і, зрештою, знову перший. Визначення того,
як довго ресурс буде використовуватися в часі, хто буде наступним і на
який час йому надається ресурс - це завдання операційної системи. Ще
один приклад тимчасового мультиплексування - розподіл завдань, \
посилаються для друку на принтер. Коли завдання вишиковуються в чергу для друку на одному принтері, операційній системі кожного разу потрібно приймати рішення про те, яке з них буде друкуватися наступним.
Інший вид розподілу - це просторове мультиплексування.
Замість почергової роботи кожен клієнт отримує частину ресурсу. Зазвичай
оперативна пам'ять поділяється між кількома працюючими програмами, так
що всі вони одночасно можуть постійно перебувати в пам'яті (наприклад, використовуючи центральний процесор по черзі). Якщо припустити, що пам'яті
достатньо для того, щоб зберігати декілька програм, ефективніше розмістити
в пам'яті відразу кілька програм, ніж виділити всю пам'ять одній програмі,
особливо якщо їй потрібна лише невелика частина наявної пам'яті. Звичайно, при
цьому виникають проблеми справедливого розподілу, захисту пам'яті і т. д.,
і для вирішення подібних питань існує операційна система. Інший
ресурс, що розподіляється просторово, - це диск (жорсткий). У багатьох системах один диск в один і той же час може містити файли кількох користувачів. Розподіл дискового простору і відстеження того, хто які блоки диска використовує, є типовою завданням управління ресурсами, яку також виконує операційна система.