Os-basic 01

системи пакетної обробки,

системи поділу часу,

багатозадачні і однозадачні ОС, що витісняє / невитесняющая багатозадачність,

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

багатонитковою обробка, многопроцессорная / однопроцесорна система,

монолітне ядро, микроядро,

Визначення операційної системи. ОС як розширена машина. ОС як система управління ресурсами. Еволюція ОС. Періоди: Перший період (до 1955 року). Другий період (1955 - 1965). Третій період (1965 - 70-і рр.). Четвертий період (70-ті - 80-ті рр.). П'ятий період (1980 - 90-і рр.). Шостий період - сучасний етап розвитку ОС.Классіфікація ОС. Особливості алгоритмів управління ресурсами (багатозадачні, однозадачні ОС, розраховані на багато користувачів, однопользовательские ОС, що підтримують і не підтримують многонитевую обробку, багатопроцесорні і однопроцесорні системи). Особливості апаратних платформ (ОС ПК, миникомпьютеров, мейнфреймів, кластерів, мереж ЕОМ). Особливості областей використання ОС (системи пакетної обробки, розділення часу, реального часу). Особливості методів побудови ОС (ОС з монолітним ядром, мікроядерний ОС, об'єктно-орієнтований підхід).

Визначення операційної системи

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

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

забезпечення користувачу-програмісту зручностей за допомогою надання для нього розширеної машини;

підвищення ефективності використання комп'ютера шляхом раціонального управління його ресурсами.

ОС як розширена машина

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

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

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

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

ОС як система управління ресурсами

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

Ідея про те, що ОС перш за все система, що забезпечує зручний інтерфейс користувачам, відповідає розгляду зверху вниз.

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

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

Управління ресурсами включає рішення наступних загальних, що не залежать від типу ресурсу завдань:

планування ресурсу - тобто визначення, кому, коли, а для подільних ресурсів і в якій кількості, необхідно виділити даний ресурс;

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

вирішення конфліктів між процесами.

Мал. 1.1. Взаємодія людини з комп'ютером через операційну систему

Чи потрібно тут це?

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

У XIX столітті Чарльз Бебідж запропонував ідею комп'ютера. Але технології того часу не могли забезпечити виготовлення деталей точної механіки, які були необхідні для цієї машини. І його «аналітична машина» так і не змогла заробити.

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

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

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

1965 - початок 70-х рр.

У технічній базі відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем. Для цього періоду характерно також створення сімейств програмно-сумісних машин. Першим сімейством програмно-сумісних машин, побудованих на інтегральних мікросхемах, з'явилася серія машин IBM / 360.

Програмна сумісність вимагала та сумісності операціоннихсістем. Такі операційні системи повинні були працювати на великих і малих обчислювальних системах з різними периферійними пристроями, і забезпечувати застосування обчислювальної системи в комерційній сфері і в галузі наукових досліджень. ОС, що задовольняють всім вимогам, були громіздкими, складними, вони містили безліч помилок, що викликають нескінченний потік виправлень. Прикладом такої ОС може служити OS / 360 (фірма IBM).

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

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

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

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

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

До середини 70-х рр. набули великого поширення мінікомп'ютери: Nova, PDP-11, HP. Їх архітектура стала значно простіше, що спростило і операційні системи. ОС миникомпьютеров стали робити спеціалізованими, наприклад, тільки для управління в реальному часі (RT11 для PDP-11) або тільки для підтримки режиму поділу часу. Ці операційні системи не були на багато користувачів.

Цей період в еволюції операційних систем пов'язаний з появою великих інтегральних схем (ВІС). У ці роки відбулося різке зростання ступеня інтеграції і здешевлення мікросхем. Комп'ютер став доступний окремій людині, і настала ера персональних комп'ютерів. Функціонально вони нічим не відрізнялися від миникомпьютеров типу PDP-11, але ціна у них була істотно нижче. Що дозволило мати власний комп'ютер практично кожній людині, а не відділу або інституту. Комп'ютери стали використовуватися неспеціалістами, що зажадало «дружності» від програмного забезпечення. На ринку операційних систем в ці роки домінували дві системи: MS-DOS і Unix. Однопрограмні розрахована на одного користувача ОС MS-DOS широко використовувалася для комп'ютерів, побудованих на базі мікропроцесорів Intel 8088, що а потім 80286, 80386 і 80486.

Мультипрограммная розрахована на багато користувачів ОС Unix використовувалася, в основному, на "неінтеловскіх" комп'ютерах, особливо побудованих на базі високопродуктивних RISC-процесорів. Все десятиліття відбувалося удосконалення цієї ОС, в результаті чого стали з'являтися її нові різновиди: SunOS, HP-UX, Irix, AIX.

Значного поширення персональних комп'ютерів послужило каталізатором для бурхливого зростання локальних мереж. Ще однією важливою розробкою цього десятиліття стала поява стека протоколів TCP / IP, становлення Інтернету, стандартизація технологій локальних мереж, і більш інтенсивний розвиток мережевих операційних систем (OS-Net фірми Nowell, OS / 2 фірм Microsoft і IBM).

Сучасний етап розвитку ОС

У 90-ті роки майже всі ОС стають мережевими, здатними працювати з різнорідними клієнтами і серверами, підтримують засоби роботи з Інтернетом. З'являються спеціалізовані мережеві ОС, призначені виключно для виконання комунікаційних завдань, наприклад, система IOS фірми Cisco Systems працює в маршрутизаторах.

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