Історія розвитку операційних систем налічує чотири періоди. Еволюція операційних систем чи як це було і як буде

· Поява перших операційних систем

· Поява мультипрограмних операційних систем для мейнфреймів

· Операційні системи та глобальні мережі

· Операційні системи міні-комп'ютерів та перші локальні мережі

· Розвиток операційних систем у 80-ті роки

· Особливості сучасного етапу розвитку операційних систем

· Завдання та вправи

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

Поява перших операційних систем

Ідея комп'ютера була запропонована англійським математиком Чарльзом Бебіджем (Charles Babage) у середині дев'ятнадцятого століття. Його механічна «аналітична машина» так і не змогла по-справжньому заробити, бо технології на той час не задовольняли вимогам, необхідним для виготовлення потрібних деталей точної механіки. Звичайно, жодної мови про операційну систему для цього «комп'ютера» не йшлося.

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



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

Виконання кожної програми почало включати велику кількість допоміжних робіт: завантаження потрібного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ тощо), запуск транслятора та отримання результуючої програми в машинних кодах, зв'язування програми з бібліотечними підпрограмами, завантаження програми в оперативну пам'ять, запуск програми , виведення результатів на периферійний пристрій Для організації ефективного спільного використання трансляторів, бібліотечних програм та завантажувачів у штаті багатьох обчислювальних центрів було введено посади операторів, які професійно виконували роботу з організації обчислювального процесу для всіх користувачів цього центру.

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

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

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

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

Поява мультипрограмних операційних систем для мейнфреймів

Наступний важливий період розвитку операційних систем відноситься до 1965-1975 років.

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

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

Мультипрограмування було реалізовано у двох варіантах – у системах пакетної обробки та поділу часу.

Мультипрограммные системи пакетної обробки як і, і його однопрограмні попередники, мали за мету забезпечення максимального завантаження апаратури комп'ютера, проте вирішували це завдання ефективніше. У мультипрограмному пакетному режимі процесор не простоював, поки одна програма виконувала операцію введення-виводу (як це відбувалося при послідовному виконанні програм у системах ранньої пакетної обробки), а перемикався на іншу готову до виконання програму. В результаті досягалося збалансоване завантаження всіх пристроїв комп'ютера, а отже, збільшувалася кількість завдань, які вирішуються в одиницю часу. У мультипрограмних системах пакетної обробки користувач, як і раніше, був позбавлений можливості інтерактивно взаємодіяти зі своїми програмами. Щоб хоча б частково повернути користувачам відчуття безпосередньої взаємодії з комп'ютером, було розроблено інший варіант мультипрограмних систем - системи поділу часу. Цей варіант розрахований на багатотермінальні системи, коли кожний користувач працює за своїм терміналом. Серед перших операційних систем поділу часу, розроблених у середині 60-х років, були TSS/360 (компанія IBM), CTSS та MULTICS (Масачусетський технологічний інститут спільно з Bell Labs та компанією General Electric). Варіант мультипрограмування, який застосовується в системах поділу часу, був націлений на створення для кожного окремого користувача ілюзії одноосібного володіння обчислювальною машиною за рахунок періодичного виділення кожної програми своєї частки процесорного часу. У системах поділу часу ефективність використання устаткування нижче, ніж у системах пакетної обробки, що було платою за зручності роботи користувача.

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

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

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

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

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

Ще однією важливою тенденцією цього періоду є створення сімейств програмно-сумісних машин та операційних систем для них. Прикладами сімейств програмно-сумісних машин, побудованих на інтегральних мікросхемах, є серії машин IBM/360 та IBM/370 (аналоги цих сімейств радянського виробництва – машини серії ЄС), PDP-11 (радянські аналоги – CM-3, CM-4, CM -1420). Незабаром ідея програмно-сумісних машин стала загальновизнаною.

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

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

Операційні системи та глобальні мережі

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

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

У 1969 році Міністерство оборони США ініціювало роботи з об'єднання суперкомп'ютерів оборонних та науково-дослідних центрів у єдину мережу. Ця мережа отримала назву ARPANET і стала відправною точкою для створення найвідомішої нині глобальної мережі - Інтернету. Мережа ARPANET об'єднувала комп'ютери різних типів, що працювали під управлінням різних ОС з доданими модулями, що реалізують комунікаційні протоколи, загальні всім комп'ютерів мережі.

У 1974 році компанія IBM оголосила про створення власної мережевої архітектури для своїх мейнфреймів, що отримала назву SNA (System Network Architecture). Ця багаторівнева архітектура, багато в чому подібна до стандартної моделі OSI, що з'явилася дещо пізніше, забезпечувала взаємодію типу «термінал-термінал», «термінал-комп'ютер» та «комп'ютер-комп'ютер» по глобальних зв'язках. Нижні рівні архітектури були реалізовані спеціалізованими апаратними засобами, найбільш важливим є процесор телеобробки. Функції верхніх рівнів SNA виконували програмні модулі. Один із них становив основу програмного забезпечення процесора телеобробки. Інші модулі працювали на центральному процесорі у складі стандартної операційної системи IBM для мейнфреймів.

У цей час у Європі велися активні роботи зі створення і стандартизації мереж Х.25. Ці мережі з комутацією пакетів були прив'язані до будь-якої конкретної операційній системі. Після набуття статусу міжнародного стандарту 1974 року протоколи Х.25 стали підтримуватися багатьма операційними системами. З 1980 року компанія IBM включила підтримку протоколів Х.25 в архітектуру SNA та у свої операційні системи.

Операційні системи міні-комп'ютерів та перші локальні мережі

До середини 70-х поряд з мейнфреймами широкого поширення набули міні-комп'ютери, такі як PDP-11, Nova, HP. Міні-комп'ютери першими використовували переваги великих інтегральних схем, що дозволили реалізувати досить потужні функції за порівняно невисокої вартості комп'ютера.

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

Важливою віхою історія міні-комп'ютерів і взагалі історії операційних систем стало створення ОС UNIX. Спочатку ця ОС призначалася підтримки режиму поділу часу в міні-комп'ютері PDP-7. З середини 70-х почалося масове використання ОС UNIX. До цього часу програмний код для UNIX був на 90% написаний мовою високого рівня С. Широке поширення ефективних С-компіляторів зробило UNIX унікальною для того часу ОС, що має можливість порівняно легкого перенесення на різні типикомп'ютерів. Оскільки ця ОС поставлялася разом із вихідними кодами, то вона стала першою відкритою ОС, яку могли вдосконалювати прості користувачі-ентузіасти. Хоча UNIX була спочатку розроблена для міні-комп'ютерів, гнучкість, елегантність, потужні функціональні можливості та відкритість дозволили їй зайняти міцні позиції у всіх класах комп'ютерів: суперкомп'ютерах, мейнфреймах, міні-комп'ютерах, серверах та робочих станціях на базі RISC-процесорів, персональних комп'ютерів.

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

Перші локальні мережі будувалися з допомогою нестандартного комунікаційного устаткування, у найпростішому разі - шляхом прямого з'єднання послідовних портів комп'ютерів. Програмне забезпечення також було нестандартним і реалізовувалося у вигляді додатків користувача. Перша мережна програма для ОС UNIX - програма UUCP (UNIX-to-UNIX Copy program) -. з'явилася 1976 року і почала поширюватися з версією 7 AT&T UNIX з 1978 року. Ця програма дозволяла копіювати файли з одного комп'ютера на інший у межах локальної мережічерез різні апаратні інтерфейси - RS-232, струмову петлю тощо, а крім того, могла працювати через глобальні зв'язкинаприклад модемні.

Розвиток операційних систем у 80-ті роки

До найважливіших подій цього десятиліття можна віднести розробку стека TCP/IP, становлення Інтернету, стандартизацію технологій локальних мереж, появу персональних комп'ютерів та операційних систем для них.

Робочий варіант стека протоколів TCP/IP створили наприкінці 70-х. Цей стек був набором загальних протоколів для різнорідного обчислювального середовища і призначався для зв'язку експериментальної мережі ARPANET з іншими «сателітними» мережами. У 1983 році стек протоколів TCP/IP був прийнятий Міністерством оборони США як військовий стандарт. Перехід комп'ютерів мережі ARPANET на стек TCP/IP прискорила його для операційної системи BSD UNIX. З цього часу почалося спільне існування UNIX та протоколів TCP/IP, а майже всі численні версії Unix стали мережевими.

Використання протоколів TCP/IP в ARPANET додало цій мережі всі основні риси, які відрізняють сучасний Інтернет. У 1983 році мережа ARPANET була розділена на дві частини: MILNET, що підтримує військові відомства США, та нову ARPANET. Для позначення складової мережі ARPANET і MILNET стала використовуватися назва Internet, яка у російській з часом (і з легкої руки локалістів Microsoft) перетворилася на Інтернет. Інтернет став відмінним полігоном для випробувань багатьох мережевих операційних систем, що дозволили перевірити в реальних умовах можливості їх взаємодії, ступінь масштабованості, здатність роботи при екстремальному навантаженні, що створюється сотнями та тисячами користувачів. Стек протоколів TCP/IP також чекала завидна доля. Незалежність від виробників, гнучкість та ефективність, доведені успішною роботою в Інтернеті, а також відкритість та доступність стандартів зробили протоколи TCP/IP не лише головним транспортним механізмом Інтернету, а й основним стеком більшості мережевих операційних систем.

Все десятиліття було відзначено постійною появою нових, більш досконалих версій ОС UNIX. Серед них були і фірмові версії UNIX: SunOS, HP-UX, Irix, AIX та багато інших, у яких виробники комп'ютерів адаптували код ядра та системних утилітдля своєї апаратури. Різноманітність версій породило проблему їхньої сумісності, яку періодично намагалися вирішити різні організації. В результаті були прийняті стандарти POSIX і XPG, що визначають інтерфейси ОС для додатків, а спеціальний підрозділ компанії AT&T випустив кілька версій UNIX System III та UNIX System V, покликаних консолідувати розробників на рівні коду ядра.

Початок 80-х пов'язаний із ще одним знаменним для історії операційних систем подією - появою персональних комп'ютерів. З погляду архітектури персональні комп'ютери нічим не відрізнялися від класу міні-комп'ютерів типу PDP-11, але їхня вартість була суттєво нижчою. Якщо міні-комп'ютер дозволив мати власну обчислювальну машину відділу підприємства чи університету, персональний комп'ютер дав таку можливість окремій людині. Комп'ютери стали широко використовуватися нефахівцями, що вимагало розробки «дружнього» програмного забезпечення, і надання цих «дружніх» функцій стало прямим обов'язком операційних систем. Персональні комп'ютери послужили також потужним каталізатором для бурхливого зростання локальних мереж, створивши при цьому відмінну матеріальну основу у вигляді десятків і сотень комп'ютерів, що належать одному підприємству і розташовані в межах однієї будівлі. В результаті підтримка мережевих функцій стала для ОС персональних комп'ютерів необхідною умовою.

Однак і дружній інтерфейс, і мережеві функції з'явилися в операційних системах персональних комп'ютерів не відразу. Перша версія найбільш популярної операційної системи раннього етапу розвитку персональних комп'ютерів - MS-DOS компанії Microsoft - була позбавлена ​​цих можливостей. Це була однопрограмна однокористувацька ОС з інтерфейсом командного рядка, здатний стартувати з дискети. Основними завданнями для неї були управління файлами, розташованими на гнучких та жорстких дискаху UNIX-подібній ієрархічній файловій системі, а також послідовний запуск програм. MS-DOS була захищена від програм користувача, оскільки процесор Intel 8088 не підтримував привілейованого режиму. Розробники перших персональних комп'ютерів вважали, що з індивідуальному використанні комп'ютера та обмежених можливостях апаратури немає сенсу підтримки мультипрограмування, у процесорі були передбачені привілейований режим та інші механізми підтримки мультипрограмних систем.

Відсутні функції для MS-DOS і подібних до неї ОС компенсувалися зовнішніми програмами, що надавали користувачеві зручний графічний інтерфейс(наприклад, Norton Commander) або засоби тонкого керування дисками (наприклад, PC Tools). Найбільший вплив на розвиток програмного забезпечення для персональних комп'ютерів справило операційне середовище Windows компанії Microsoft, що являло собою надбудову над MS-DOS.

Мережеві функції також реалізовувалися переважно мережевими оболонками, які працювали поверх ОС. При мережній роботі завжди необхідно підтримувати розрахований на багато користувачів режим, при якому один користувач - інтерактивний, а інші отримують доступ до ресурсів комп'ютера по мережі. У такому разі від операційної системи потрібно хоча б деякий мінімум функціональної підтримки розрахованого на багато користувачів режиму. Історія мережевих засобів MS-DOS розпочалася з версії 3.1. Ця версія MS-DOS додала до файлової системи необхідні засоби блокування файлів та записів, які дозволили більш ніж одному користувачеві мати доступ до файлу. Користуючись цими функціями, мережні оболонки могли забезпечити розподіл файлів між мережними користувачами.

Разом із випуском версії MS-DOS 3.1 у 1984 році компанія Microsoft також випустила продукт, який називається Microsoft Networks, який зазвичай неформально називають MS-NET. Деякі концепції, закладені в MS-NET, такі як введення в структуру базових мережевих компонентів - редиректора та мережевого сервера, успішно перейшли в пізніші мережеві продукти Microsoft: LAN Manager, Windows for Workgroups, а потім і Windows NT.

Мережеві оболонки для персональних комп'ютерів випускали інші компанії: IBM, Artisoft, Performance Technology та інші.

Інший шлях вибрала компанія Novell. Вона спочатку зробила ставку на розробку операційної системи з вбудованими мережевими функціями і досягла цього шляху видатних успіхів. Її мережеві операційні системи NetWare надовго стали еталоном продуктивності, надійності та захищеності для локальних мереж.

Перша мережна операційна система компанії Novell з'явилася на ринку в 1983 і називалася OS-Net. Ця ОС призначалася для мереж, що мали зіркоподібну топологію, центральним елементом яких був спеціалізований комп'ютер на базі мікропроцесора Motorola 68000. Трохи пізніше, коли фірма IBM випустила персональні комп'ютери PC XT, компанія Novell розробила новий продукт - NetWare 86, розрахований на архітектуру мікропроцесора .

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

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

У 1987 році в результаті спільних зусиль Microsoft і IBM з'явилася перша багатозадачна операційна система для персональних комп'ютерів з процесором Intel 80286, що повністю використовує можливості захищеного режиму - OS/2. Ця система була добре продумана. Вона підтримувала витісняючу багатозадачність, віртуальну пам'ять, графічний інтерфейс користувача (не з першої версії) і віртуальну машину для виконання DOS-додатків. Фактично вона виходила за межі простої багатозадачності з її концепцією розпаралелювання окремих процесів, що отримала назву багатопоточності.

OS/2 з її розвиненими функціями багатозадачності та файловою системою HPFS із вбудованими засобами розрахованого на багато користувачів захисту виявилася гарною платформою для побудови локальних мереж персональних комп'ютерів. Найбільшого поширення набули мережні оболонки LAN Manager компанії Microsoft та LAN Server компанії IBM, розроблені цими компаніями на основі одного базового коду. Ці оболонки поступалися за продуктивністю файловому серверу NetWare і споживали більше апаратних ресурсів, але мали важливі переваги - вони дозволяли, по-перше, виконувати на сервері будь-які програми, розроблені для OS/2, MS-DOS і Windows, а по-друге, використовувати комп'ютер, на якому вони працювали, як робоча станція.

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

Не дуже вдала ринкова доля OS/2 не дозволила системам LAN Manager і LAN Server захопити помітну частку ринку, але принципи роботи цих мережевих систембагато в чому знайшли своє втілення в найбільш успішній операційній системі 90-х років - Microsoft Windows NT, що містить вбудовані мережеві компоненти, деякі з яких мають приставку LM - від LAN Manager.

У 80-ті роки були прийняті основні стандарти на комунікаційні технології для локальних мереж: у 1980 році – Ethernet, у 1985 – Token Ring, наприкінці 80-х – FDDI. Це дозволило забезпечити сумісність мережевих операційних систем нижніх рівнях, і навіть стандартизувати інтерфейс ОС з драйверами мережевих адаптерів.

Для персональних комп'ютерів застосовувалися як спеціально розроблені їм операційні системи, подібні MS-DOS, NetWare і OS/2, а й адаптувалися вже існуючі ОС. Поява процесорів Intel 80286 і особливо 80386 за допомогою мультипрограмування дозволило перенести на платформу персональних комп'ютерів ОС UNIX. Найбільш відомою системою цього типу була версія UNIX компанії Santa Cruz Operation (SCO UNIX).

Особливості сучасного етапу розвитку операційних систем

У 90-ті роки майже всі операційні системи, що займають помітне місце на ринку, стали мережевими. Мережеві функції сьогодні вбудовуються в ядро ​​ОС, будучи її невід'ємною частиною. Операційні системи отримали кошти на роботу з усіма основними технологіями локальних (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) та глобальних (Х.25, frame relay, ISDN, ATM) мереж, а також засоби для створення складових мереж (IP, IPX, AppleTalk, RIP, OSPF, NLSP). У операційних системах використовуються засоби мультиплексування кількох стеків протоколів, з допомогою якого комп'ютери можуть підтримувати одночасну мережеву роботу з різнорідними клієнтами і серверами. З'явилися спеціалізовані ОС, призначені виключно для виконання комунікаційних завдань. Наприклад, мережна операційна система IOSКомпанія Cisco Systems, що працює в маршрутизаторах, організує в мультипрограмному режимі виконання набору програм, кожна з яких реалізує один із комунікаційних протоколів.

У другій половині 90-х років усі виробники операційних систем різко посилили підтримку засобів роботи з Інтернетом (крім виробників UNIX-систем, у яких ця підтримка завжди була суттєвою). Крім самого стека TCP/IP у комплект поставки почали включати утиліти, що реалізують такі популярні Інтернет-сервіси, як telnet, ftp, DNS і Web. Вплив Інтернету виявилося і в тому, що комп'ютер перетворився з суто обчислювального пристрою на засіб комунікацій з розвиненими обчислювальними можливостями.

Особлива увага протягом усього останнього десятиліття приділялася корпоративним мережевим операційним системам. Їх подальший розвиток представляє одну з найважливіших завдань і в найближчому майбутньому. Корпоративна операційна система відрізняється здатністю добре та стійко працювати у великих мережах, які характерні для великих підприємств, що мають відділення у десятках міст і, можливо, у різних країнах. Таким мережам органічно властива високий ступіньгетерогенності програмних та апаратних засобів, тому корпоративна ОС повинна безпроблемно взаємодіяти з операційними системами різних типів та працювати на різних апаратних платформах. На цей час досить явно визначилася трійка лідерів у класі корпоративних ОС - це Novell NetWare 4.x і 5.0, Microsoft Windows NT 4.0 і Windows 2000, і навіть UNIX-системи різних виробників апаратних платформ.

Для корпоративної ОС дуже важливо наявність засобів централізованого адміністрування та управління, що дозволяють в єдиній базі даних зберігати облікові записи про десятки тисяч користувачів, комп'ютерів, комунікаційних пристроїв та модулів програмного забезпечення, що є в корпоративній мережі. У сучасних операційних системах кошти централізованого адміністрування зазвичай базуються на єдиній довідковій службі. Першою успішною реалізацією довідкової служби корпоративного масштабу була система StreetTalk Banyan. Наразі найбільше визнання отримала довідкова служба NDS компанії Novell, випущена вперше у 1993 році для першої корпоративної версії NetWare 4.O. Роль централізованої довідкової служби настільки велика, що саме за якістю довідкової служби оцінюють придатність операційної системи до роботи в корпоративному масштабі. Тривала затримка випуску Windows NT 2000 багато в чому була пов'язана зі створенням для цієї ОС довідкової служби, що масштабується. Active Directory, без якої цьому сімейству ОС важко було претендувати на звання корпоративної ОС.

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

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

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

В останні роки набула подальшого розвитку довготривала тенденція підвищення зручності роботи людини з комп'ютером. Ефективність роботи стає основним чинником, визначальним ефективність обчислювальної системи загалом. Зусилля людини не повинні витрачатися на налаштування параметрів обчислювального процесу, як це відбувалося у ОС попередніх поколінь. Наприклад, у системах пакетної обробки для мейнфреймів кожен користувач повинен був за допомогою мови керування завданнями визначити велику кількість параметрів, що стосуються організації обчислювальних процесів у комп'ютері. Так, для системи OS/360 мова керування завданнями JCL передбачала можливість визначення користувачем більше 40 параметрів, серед яких були пріоритет завдання, вимоги до основної пам'яті, граничний час виконання завдання, перелік пристроїв введення-виведення та режими їх роботи.

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

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

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

  • Історія ОС налічує приблизно півстоліття. Вона багато в чому визначалася та визначається розвитком елементної бази та обчислювальної апаратури.
  • Перші цифрові обчислювальні машини, що з'явилися на початку 40-х років, працювали без операційних систем, всі завдання організації обчислювального процесу вирішувалися вручну кожним програмістом з пульта управління.
  • Прообразом сучасних операційних систем з'явилися моніторні системи середини 50-х, які автоматизували дії оператора виконання пакета завдань.
  • У 1965-1975 роках перехід до інтегральних мікросхем відкрив шлях до появи наступного покоління комп'ютерів, яскравим представником яких є IBM/360. У цей період було реалізовано практично всі основні концепції, притаманні сучасним ОС: мультипрограмування, мультипроцесування, багатотермінальний режим, віртуальна пам'ять, файлові системи, розмежування доступу та мережна робота.
  • Реалізація мультипрограмування вимагає внесення дуже важливих змін до апаратури комп'ютера. У процесорах з'явився привілейований та користувальницький режими роботи, спеціальні регістри для швидкого перемикання з одного завдання на інше, засоби захисту областей пам'яті, а також розвинена система переривань.
  • Наприкінці 60-х було розпочато роботи зі створення глобальної мережі ARPANET, яка стала відправною точкою для Інтернету, - глобальної загальнодоступної мережі, яка стала для багатьох мережевих ОС випробувальним полігоном, що дозволило перевірити в реальних умовах можливості їх взаємодії, ступінь масштабованості, здатність роботи при екстремальній навантаження.
  • До середини 70-х років широкого поширення набули міні-комп'ютери. Архітектура міні-комп'ютерів була значно спрощена в порівнянні з мейнфреймами, що відбилося і в їх ОС. Економічність і доступність міні-комп'ютерів стала потужним стимулом для створення локальних мереж. Підприємство, яке тепер могло дозволити собі мати кілька міні-комп'ютерів, потребувало організації спільного використання даних та дорогого периферійного обладнання. Перші локальні мережі будувалися за допомогою нестандартного комунікаційного обладнання та нестандартного програмного забезпечення.
  • З середини 70-х років почалося масове використання UNIX, унікальної на той час ОС, яка порівняно легко переносилася різні типи комп'ютерів. Хоча ОС UNIX була спочатку розроблена для міні-комп'ютерів, її гнучкість, елегантність, потужні функціональні можливості та відкритість дозволили їй зайняти міцні позиції у всіх класах комп'ютерів.
  • Наприкінці 1970-х років було створено робочий варіант стека протоколів TCP/IP. У 1983 році стек протоколів TCP/IP був стандартизований. Незалежність від виробників, гнучкість та ефективність, доведені успішною роботою в Інтернеті, зробили протоколи TCP/IP не лише головним транспортним механізмом Інтернету, а й основним стеком більшості мережевих ОС.
  • Початок 80-х пов'язаний із знаменною для історії операційних систем подією - появою персональних комп'ютерів, які послужили потужним каталізатором для бурхливого зростання локальних мереж, створивши при цьому відмінну матеріальну основу у вигляді десятків і сотень комп'ютерів, розташованих у межах однієї будівлі. В результаті підтримка мережевих функцій стала для ОС персональних комп'ютерів необхідною умовою.
  • У 80-ті роки були прийняті основні стандарти на комунікаційні технології для локальних мереж: у 1980 році – Ethernet, у 1985 – Token Ring, наприкінці 80-х – FDDI. Це дозволило забезпечити сумісність мережевих ОС нижніх рівнях, і навіть стандартизувати інтерфейс ОС з драйверами мережевих адаптерів.
  • На початку 90-х майже всі ОС стали мережевими, здатними підтримувати роботу з різнорідними клієнтами та серверами. З'явилися спеціалізовані мережні ОС, призначені виключно для виконання комунікаційних завдань, наприклад, система IOS компанії Cisco Systems, що працює в маршрутизаторах.
  • Особлива увага протягом усього останнього десятиліття приділялася корпоративним мережним ОС, для яких характерний високий рівень масштабованості, підтримка мережевої роботи, Розвинені засоби забезпечення безпеки, здатність працювати в гетерогенному середовищі, наявність засобів централізованого адміністрування та управління.

Завдання та вправи

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

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

3. Чи може комп'ютер працювати без операційної системи?

4. Як еволюціонувало ставлення до концепції мультипрограмування протягом усієї історії ОС?

5. Який вплив в розвитку ОС зробив Інтернет?

6. Чим пояснюється особливе місце ОС UNIX історія операційних систем?

7. Опишіть історію мережевих операційних систем.

8. У чому сучасні тенденції розвитку ОС?


ГЛАВА 1


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

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

Поява перших операційних систем

Ідея комп'ютера була запропонована англійським математиком Чарльзом Бебіджем (Charles Babage) у середині дев'ятнадцятого століття. Його механічна «аналітична машина» так і не змогла по-справжньому заробити, бо технології на той час не задовольняли вимогам, необхідним для виготовлення потрібних деталей точної механіки. Звичайно, жодної мови про операційну систему для цього «комп'ютера» не йшлося.

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

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

Виконання кожної програми почало включати велику кількість допоміжних робіт: завантаження потрібного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ тощо), запуск транслятора та отримання результуючої програми в машинних кодах, зв'язування програми з бібліотечними підпрограмами, завантаження програми в оперативну пам'ять, запуск програми , виведення результатів на периферійний пристрій Для організації ефективного спільного використання трансляторів, бібліотечних програм та завантажувачів у штаті багатьох обчислювальних центрів було введено посади операторів, які професійно виконували роботу з організації обчислювального процесу для всіх користувачів цього центру.

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

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

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

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

Поява мультипрограмних операційних систем для мейнфреймів

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

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

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

Мультипрограмування було реалізовано у двох варіантах – у системах пакетної обробки та поділу часу.

Мультипрограммные системи пакетної обробки як і, і його однопрограмні попередники, мали за мету забезпечення максимального завантаження апаратури комп'ютера, проте вирішували це завдання ефективніше. У мультипрограмному пакетному режимі процесор не простоював, поки одна програма виконувала операцію введення-виводу (як це відбувалося при послідовному виконанні програм у системах ранньої пакетної обробки), а перемикався на іншу готову до виконання програму. В результаті досягалося збалансоване завантаження всіх пристроїв комп'ютера, а отже, збільшувалася кількість завдань, які вирішуються в одиницю часу. У мультипрограмних системах пакетної обробки користувач, як і раніше, був позбавлений можливості інтерактивно взаємодіяти зі своїми програмами. Щоб хоча б частково повернути користувачам відчуття безпосередньої взаємодії з комп'ютером, було розроблено інший варіант мультипрограмних систем - системи поділу часу. Цей варіант розрахований на багатотермінальні системи, коли кожний користувач працює за своїм терміналом. Серед перших операційних систем поділу часу, розроблених у середині 60-х років, були TSS/360 (компанія IBM), CTSS та MULTICS (Масачусетський технологічний інститут спільно з Bell Labs та компанією General Electric). Варіант мультипрограмування, який застосовується в системах поділу часу, був націлений на створення для кожного окремого користувача ілюзії одноосібного володіння обчислювальною машиною за рахунок періодичного виділення кожної програми своєї частки процесорного часу. У системах поділу часу ефективність використання устаткування нижче, ніж у системах пакетної обробки, що було платою за зручності роботи користувача.

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

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

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

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

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

Ще однією важливою тенденцією цього періоду є створення сімейств програмно-сумісних машин та операційних систем для них. Прикладами сімейств програмно-сумісних машин, побудованих на інтегральних мікросхемах, є серії машин IBM/360 та IBM/370 (аналоги цих сімейств радянського виробництва – машини серії ЄС), PDP-11 (радянські аналоги – CM-3, CM-4, CM -1420). Незабаром ідея програмно-сумісних машин стала загальновизнаною.

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

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

Операційні системи та глобальні мережі

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

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

У 1969 році Міністерство оборони США ініціювало роботи з об'єднання суперкомп'ютерів оборонних та науково-дослідних центрів у єдину мережу. Ця мережа отримала назву ARPANET і стала відправною точкою для створення найвідомішої нині глобальної мережі - Інтернету. Мережа ARPANET об'єднувала комп'ютери різних типів, що працювали під управлінням різних ОС з доданими модулями, що реалізують комунікаційні протоколи, загальні всім комп'ютерів мережі.

У 1974 році компанія IBM оголосила про створення власної мережевої архітектури для своїх мейнфреймів, що отримала назву SNA (System Network Architecture). Ця багаторівнева архітектура, багато в чому подібна до стандартної моделі OSI, що з'явилася дещо пізніше, забезпечувала взаємодію типу «термінал-термінал», «термінал-комп'ютер» та «комп'ютер-комп'ютер» по глобальних зв'язках. Нижні рівні архітектури були реалізовані спеціалізованими апаратними засобами, найбільш важливим є процесор телеобробки. Функції верхніх рівнів SNA виконували програмні модулі. Один із них становив основу програмного забезпечення процесора телеобробки. Інші модулі працювали на центральному процесорі у складі стандартної операційної системи IBM для мейнфреймів.

У цей час у Європі велися активні роботи зі створення і стандартизації мереж Х.25. Ці мережі з комутацією пакетів були прив'язані до будь-якої конкретної операційній системі. Після набуття статусу міжнародного стандарту 1974 року протоколи Х.25 стали підтримуватися багатьма операційними системами. З 1980 року компанія IBM включила підтримку протоколів Х.25 в архітектуру SNA та у свої операційні системи.

Операційні системи міні-комп'ютерів та перші локальні мережі

До середини 70-х поряд з мейнфреймами широкого поширення набули міні-комп'ютери, такі як PDP-11, Nova, HP. Міні-комп'ютери першими використовували переваги великих інтегральних схем, що дозволили реалізувати досить потужні функції за порівняно невисокої вартості комп'ютера.

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

Важливою віхою історія міні-комп'ютерів і взагалі історії операційних систем стало створення ОС UNIX. Спочатку ця ОС призначалася підтримки режиму поділу часу в міні-комп'ютері PDP-7. З середини 70-х почалося масове використання ОС UNIX. До цього часу програмний код для UNIX був на 90% написаний мовою високого рівня С. Широке поширення ефективних С-компіляторів зробило UNIX унікальною для того часу ОС, що має можливість порівняно легкого перенесення на різні типи комп'ютерів. Оскільки ця ОС поставлялася разом із вихідними кодами, вона стала першою відкритою ОС, яку могли вдосконалювати прості користувачі-ентузіасти. Хоча UNIX була спочатку розроблена для міні-комп'ютерів, гнучкість, елегантність, потужні функціональні можливості та відкритість дозволили їй зайняти міцні позиції у всіх класах комп'ютерів: суперкомп'ютерах, мейнфреймах, міні-комп'ютерах, серверах та робочих станціях на базі RISC-процесорів, персональних комп'ютерів.

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

Перші локальні мережі будувалися з допомогою нестандартного комунікаційного устаткування, у найпростішому разі - шляхом прямого з'єднання послідовних портів комп'ютерів. Програмне забезпечення також було нестандартним і реалізовувалося у вигляді додатків користувача. Перша мережна програма для ОС UNIX - програма UUCP (UNIX-to-UNIX Copy program) -. з'явилася 1976 року і почала поширюватися з версією 7 AT&T UNIX з 1978 року. Ця програма дозволяла копіювати файли з одного комп'ютера на інший у межах локальної мережі через різні апаратні інтерфейси - RS-232, струмову петлю тощо, а крім того, могла працювати через глобальні зв'язки, наприклад модемні.

Розвиток операційних систем у 80-ті роки

До найважливіших подій цього десятиліття можна віднести розробку стека TCP/IP, становлення Інтернету, стандартизацію технологій локальних мереж, появу персональних комп'ютерів та операційних систем для них.

Робочий варіант стека протоколів TCP/IP створили наприкінці 70-х. Цей стек був набором загальних протоколів для різнорідного обчислювального середовища і призначався для зв'язку експериментальної мережі ARPANET з іншими «сателітними» мережами. У 1983 році стек протоколів TCP/IP був прийнятий Міністерством оборони США як військовий стандарт. Перехід комп'ютерів мережі ARPANET на стек TCP/IP прискорила його для операційної системи BSD UNIX. З цього часу почалося спільне існування UNIX та протоколів TCP/IP, а майже всі численні версії Unix стали мережевими.

Використання протоколів TCP/IP в ARPANET додало цій мережі всі основні риси, які відрізняють сучасний Інтернет. У 1983 році мережа ARPANET була розділена на дві частини: MILNET, що підтримує військові відомства США, та нову ARPANET. Для позначення складової мережі ARPANET і MILNET стала використовуватися назва Internet, яка у російській з часом (і з легкої руки локалістів Microsoft) перетворилася на Інтернет. Інтернет став відмінним полігоном для випробувань багатьох мережевих операційних систем, що дозволили перевірити в реальних умовах можливості їх взаємодії, ступінь масштабованості, здатність роботи при екстремальному навантаженні, що створюється сотнями та тисячами користувачів. Стек протоколів TCP/IP також чекала завидна доля. Незалежність від виробників, гнучкість та ефективність, доведені успішною роботою в Інтернеті, а також відкритість та доступність стандартів зробили протоколи TCP/IP не лише головним транспортним механізмом Інтернету, а й основним стеком більшості мережевих операційних систем.

Все десятиліття було відзначено постійною появою нових, більш досконалих версій ОС UNIX. Серед них були і фірмові версії UNIX: SunOS, HP-UX, Irix, AIX та багато інших, у яких виробники комп'ютерів адаптували код ядра та системних утиліт для своєї апаратури. Різноманітність версій породило проблему їхньої сумісності, яку періодично намагалися вирішити різні організації. В результаті були прийняті стандарти POSIX і XPG, що визначають інтерфейси ОС для додатків, а спеціальний підрозділ компанії AT&T випустив кілька версій UNIX System III та UNIX System V, покликаних консолідувати розробників на рівні коду ядра.

Початок 80-х пов'язаний із ще одним знаменним для історії операційних систем подією - появою персональних комп'ютерів. З погляду архітектури персональні комп'ютери нічим не відрізнялися від класу міні-комп'ютерів типу PDP-11, але їхня вартість була суттєво нижчою. Якщо міні-комп'ютер дозволив мати власну обчислювальну машину відділу підприємства чи університету, персональний комп'ютер дав таку можливість окремій людині. Комп'ютери стали широко використовуватися нефахівцями, що вимагало розробки «дружнього» програмного забезпечення, і надання цих «дружніх» функцій стало прямим обов'язком операційних систем. Персональні комп'ютери послужили також потужним каталізатором для бурхливого зростання локальних мереж, створивши при цьому відмінну матеріальну основу у вигляді десятків і сотень комп'ютерів, що належать одному підприємству і розташовані в межах однієї будівлі. В результаті підтримка мережевих функцій стала для ОС персональних комп'ютерів необхідною умовою.

Однак і дружній інтерфейс, і мережеві функції з'явилися в операційних системах персональних комп'ютерів не відразу. Перша версія найбільш популярної операційної системи раннього етапу розвитку персональних комп'ютерів - MS-DOS компанії Microsoft - була позбавлена ​​цих можливостей. Це була однопрограмна однокористувацька ОС з інтерфейсом командного рядка, здатна стартувати з дискети. Основними завданнями для неї були керування файлами, розташованими на гнучких і жорстких дисках UNIX-подібної ієрархічної файлової системи, а також почерговий запуск програм. MS-DOS була захищена від програм користувача, оскільки процесор Intel 8088 не підтримував привілейованого режиму. Розробники перших персональних комп'ютерів вважали, що з індивідуальному використанні комп'ютера та обмежених можливостях апаратури немає сенсу підтримки мультипрограмування, у процесорі були передбачені привілейований режим та інші механізми підтримки мультипрограмних систем.

Відсутні функції для MS-DOS і подібних до неї ОС компенсувалися зовнішніми програмами, що надавали користувачеві зручний графічний інтерфейс (наприклад, Norton Commander) або засоби тонкого управління дисками (наприклад, PC Tools). Найбільший вплив на розвиток програмного забезпечення для персональних комп'ютерів справило операційне середовище Windows компанії Microsoft, що являло собою надбудову над MS-DOS.

Мережеві функції також реалізовувалися переважно мережевими оболонками, які працювали поверх ОС. При мережній роботі завжди необхідно підтримувати розрахований на багато користувачів режим, при якому один користувач - інтерактивний, а інші отримують доступ до ресурсів комп'ютера по мережі. У такому разі від операційної системи потрібно хоча б деякий мінімум функціональної підтримки розрахованого на багато користувачів режиму. Історія мережевих засобів MS-DOS розпочалася з версії 3.1. Ця версія MS-DOS додала до файлової системи необхідні засоби блокування файлів та записів, які дозволили більш ніж одному користувачеві мати доступ до файлу. Користуючись цими функціями, мережні оболонки могли забезпечити розподіл файлів між мережними користувачами.

Разом із випуском версії MS-DOS 3.1 у 1984 році компанія Microsoft також випустила продукт, який називається Microsoft Networks, який зазвичай неформально називають MS-NET. Деякі концепції, закладені в MS-NET, такі як введення в структуру базових мережевих компонентів - редиректора та мережевого сервера, успішно перейшли в пізніші мережеві продукти Microsoft: LAN Manager, Windows for Workgroups, а потім і Windows NT.

Мережеві оболонки для персональних комп'ютерів випускали інші компанії: IBM, Artisoft, Performance Technology та інші.

Інший шлях вибрала компанія Novell. Вона спочатку зробила ставку на розробку операційної системи з вбудованими мережевими функціями і досягла цього шляху видатних успіхів. Її мережеві операційні системи NetWare надовго стали еталоном продуктивності, надійності та захищеності для локальних мереж.

Перша мережна операційна система компанії Novell з'явилася на ринку в 1983 і називалася OS-Net. Ця ОС призначалася для мереж, що мали зіркоподібну топологію, центральним елементом яких був спеціалізований комп'ютер на базі мікропроцесора Motorola 68000. Трохи пізніше, коли фірма IBM випустила персональні комп'ютери PC XT, компанія Novell розробила новий продукт - NetWare 86, розрахований на архітектуру мікропроцесора .

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

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

У 1987 році в результаті спільних зусиль Microsoft і IBM з'явилася перша багатозадачна операційна система для персональних комп'ютерів з процесором Intel 80286, що повністю використовує можливості захищеного режиму - OS/2. Ця система була добре продумана. Вона підтримувала витісняючу багатозадачність, віртуальну пам'ять, графічний інтерфейс користувача (не з першої версії) і віртуальну машину для виконання DOS-додатків. Фактично вона виходила за межі простої багатозадачності з її концепцією розпаралелювання окремих процесів, що отримала назву багатопоточності.

OS/2 з її розвиненими функціями багатозадачності та файловою системою HPFS з вбудованими засобами розрахованого на багато користувачів захисту виявилася гарною платформою для побудови локальних мереж персональних комп'ютерів. Найбільшого поширення набули мережні оболонки LAN Manager компанії Microsoft та LAN Server компанії IBM, розроблені цими компаніями на основі одного базового коду. Ці оболонки поступалися продуктивністю файловому серверу NetWare і споживали більше апаратних ресурсів, але мали важливі переваги - вони дозволяли, по-перше, виконувати на сервері будь-які програми, розроблені для OS/2, MS-DOS і Windows, а по-друге, використовувати комп'ютер, на якому вони працювали, як робоча станція.

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

Не дуже вдала ринкова доля OS/2 не дозволила системам LAN Manager і LAN Server захопити помітну частку ринку, але принципи роботи цих мережевих систем багато в чому знайшли своє втілення у успішнішій операційній системі 90-х - Microsoft Windows NT, що містить вбудовані мережеві компоненти , Деякі з яких мають приставку LM - від LAN Manager.

У 80-ті роки були прийняті основні стандарти на комунікаційні технології для локальних мереж: у 1980 році – Ethernet, у 1985 – Token Ring, наприкінці 80-х – FDDI. Це дозволило забезпечити сумісність мережевих операційних систем нижніх рівнях, і навіть стандартизувати інтерфейс ОС з драйверами мережевих адаптерів.

Для персональних комп'ютерів застосовувалися як спеціально розроблені їм операційні системи, подібні MS-DOS, NetWare і OS/2, а й адаптувалися вже існуючі ОС. Поява процесорів Intel 80286 і особливо 80386 за допомогою мультипрограмування дозволило перенести на платформу персональних комп'ютерів ОС UNIX. Найбільш відомою системою цього типу була версія UNIX компанії Santa Cruz Operation (SCO UNIX).

Особливості сучасного етапу розвитку операційних систем

У 90-ті роки майже всі операційні системи, що займають помітне місце на ринку, стали мережевими. Мережеві функції сьогодні вбудовуються в ядро ​​ОС, будучи її невід'ємною частиною. Операційні системи отримали кошти на роботу з усіма основними технологіями локальних (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) і світових (Х.25, frame relay, ISDN, ATM) мереж, і навіть засоби створення складових мереж (IP, IPX, AppleTalk, RIP, OSPF, NLSP). У операційних системах використовуються засоби мультиплексування кількох стеків протоколів, з допомогою якого комп'ютери можуть підтримувати одночасну мережеву роботу з різнорідними клієнтами і серверами. З'явилися спеціалізовані ОС, призначені виключно для виконання комунікаційних завдань. Наприклад, мережна операційна система IOS компанії Cisco Systems, що працює в маршрутизаторах, організує в мультипрограмному режимі виконання набору програм, кожна з яких реалізує один із комунікаційних протоколів.

У другій половині 90-х років усі виробники операційних систем різко посилили підтримку засобів роботи з Інтернетом (крім виробників UNIX-систем, у яких ця підтримка завжди була суттєвою). Крім самого стека TCP/IP у комплект поставки почали включати утиліти, що реалізують такі популярні Інтернет-сервіси, як telnet, ftp, DNS і Web. Вплив Інтернету виявилося і в тому, що комп'ютер перетворився з суто обчислювального пристрою на засіб комунікацій з розвиненими обчислювальними можливостями.

Особлива увага протягом усього останнього десятиліття приділялася корпоративним мережевим операційним системам. Їх подальший розвиток представляє одну з найважливіших завдань і в найближчому майбутньому. Корпоративна операційна система відрізняється здатністю добре та стійко працювати у великих мережах, які характерні для великих підприємств, що мають відділення у десятках міст і, можливо, у різних країнах. Таким мережам органічно властива високий рівень гетерогенності програмних і апаратних засобів, тому корпоративна ОС повинна безпроблемно взаємодіяти з операційними системами різних типів і працювати на різних апаратних платформах. На цей час досить явно визначилася трійка лідерів у класі корпоративних ОС - це Novell NetWare 4.x і 5.0, Microsoft Windows NT 4.0 і Windows 2000, і навіть UNIX-системи різних виробників апаратних платформ.

Для корпоративної ОС дуже важливо наявність засобів централізованого адміністрування та управління, що дозволяють в єдиній базі даних зберігати облікові записи про десятки тисяч користувачів, комп'ютерів, комунікаційних пристроїв та модулів програмного забезпечення, що є в корпоративній мережі. У сучасних операційних системах кошти централізованого адміністрування зазвичай базуються на єдиній довідковій службі. Першою успішною реалізацією довідкової служби корпоративного масштабу була система StreetTalk Banyan. Наразі найбільше визнання отримала довідкова служба NDS компанії Novell, випущена вперше у 1993 році для першої корпоративної версії NetWare 4.O. Роль централізованої довідкової служби настільки велика, що саме за якістю довідкової служби оцінюють придатність операційної системи до роботи в корпоративному масштабі. Тривала затримка випуску Windows NT 2000 багато в чому була пов'язана зі створенням для цієї ОС довідкової служби Active Directory, що масштабується, без якої цьому сімейству ОС важко було претендувати на звання істинно корпоративної ОС.

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

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

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

В останні роки набула подальшого розвитку довготривала тенденція підвищення зручності роботи людини з комп'ютером. Ефективність роботи стає основним чинником, визначальним ефективність обчислювальної системи загалом. Зусилля людини не повинні витрачатися на налаштування параметрів обчислювального процесу, як це відбувалося у ОС попередніх поколінь. Наприклад, у системах пакетної обробки для мейнфреймів кожен користувач повинен був за допомогою мови керування завданнями визначити велику кількість параметрів, що стосуються організації обчислювальних процесів у комп'ютері. Так, для системи OS/360 мова керування завданнями JCL передбачала можливість визначення користувачем більше 40 параметрів, серед яких були пріоритет завдання, вимоги до основної пам'яті, граничний час виконання завдання, перелік пристроїв введення-виведення та режими їх роботи.

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

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

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

§ Історія ОС налічує приблизно півстоліття. Вона багато в чому визначалася та визначається розвитком елементної бази та обчислювальної апаратури.

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

§ Прообразом сучасних операційних систем з'явилися моніторні системи середини 50-х, які автоматизували дії оператора виконання пакета завдань.

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

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

§ Наприкінці 60-х були розпочаті роботи зі створення глобальної мережі ARPANET, що стала відправною точкою для Інтернету, - глобальної загальнодоступної мережі, яка стала для багатьох мережевих ОС випробувальним полігоном, що дозволило перевірити в реальних умовах можливості їх взаємодії, ступінь масштабованості, здатність роботи при екстремальному навантаженні.

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

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

§ Наприкінці 70-х років було створено робочий варіант стека протоколів TCP/IP. У 1983 році стек протоколів TCP/IP був стандартизований. Незалежність від виробників, гнучкість та ефективність, доведені успішною роботою в Інтернеті, зробили протоколи TCP/IP не лише головним транспортним механізмом Інтернету, а й основним стеком більшості мережевих ОС.

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

§ У 80-ті роки були прийняті основні стандарти на комунікаційні технології для локальних мереж: у 1980 році – Ethernet, у 1985 – Token Ring, наприкінці 80-х – FDDI. Це дозволило забезпечити сумісність мережевих ОС нижніх рівнях, і навіть стандартизувати інтерфейс ОС з драйверами мережевих адаптерів.

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

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

Завдання та вправи

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

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

3. Чи може комп'ютер працювати без операційної системи?

4. Як еволюціонувало ставлення до концепції мультипрограмування протягом усієї історії ОС?

5. Який вплив в розвитку ОС зробив Інтернет?

6. Чим пояснюється особливе місце ОС UNIX історія операційних систем?

7. Опишіть історію мережевих операційних систем.

8. У чому сучасні тенденції розвитку ОС?


Всеросійський Заочний Фінансово-Економічний Інститут

Факультет: фінансово – кредитний

Спеціальність: фінанси та кредит група вечірня

Курсова робота

З дисципліни «Інформатика»

На тему «Призначення, класифікація та еволюція операційних систем»

Москва - 2008р.

Вступ
1 Призначення операційних систем 5

2 Перерахуємо основні функції операційних систем 9

2.2 Обслуговування всіх операцій введення-виведення 9

3 Еволюція та класифікація ОС
Висновок 2
Список використаної літератури 22

Вступ

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

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

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

1 Призначення операційних систем

Операційні системи належать до системного програмного забезпечення. Все програмне забезпечення поділяється на системне та прикладне. До системного програмного забезпечення прийнято відносити такі програми та комплекси програм, які є загальними, без яких неможливе виконання чи створення інших програм. Історія появи та розвитку системного програмного забезпечення почалася з того моменту, коли люди усвідомили, що будь-яка програма потребує операцій введення-виведення даних. Це сталося у далекі 50-ті роки минулого століття. Власне операційні системи з'явилися трохи згодом.

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

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

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

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

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

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

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

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

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

2 Перелічимо основні функції операційних систем

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

Розподіл пам'яті, а здебільшого сучасних системта організація віртуальної пам'яті.

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

Прийом та використання різних запитів від додатків, що виконуються. Операційна система вміє виконувати дуже багато системних функцій (сервісів), які можуть бути запрошені з програми, що виконується. Звернення до цих сервісів здійснюється за відповідними правилами, які визначають інтерфейс прикладного програмування (Application Program Interface, API) цієї операційної системи.

2.2 Обслуговування всіх операцій введення-виведення

Забезпечення роботи систем управління файлами (СУФ) та/або систем управління базами даних (СУБД), що дозволяє різко збільшити ефективність всього програмного забезпечення.

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

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

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

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

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

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

Задоволення жорстким обмеженням тимчасово відповіді режимі реального часу (характерно для ОС реального часу).

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

Надання послуг у разі часткового збою системи.

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

3 Еволюція та класифікація ОС

Еволюція ОС багато в чому зумовлена ​​вдосконалення апаратної бази ЕОМ.

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

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

Перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем супроводжувався створенням сімей програмно-сумісних машин, наприклад, сімейства IBM/360, EC ЕОМ. ОС цих комп'ютерів орієнтувалися обслуговування обчислювальних систем з різноманітними периферійними пристроями й у різних галузях діяльності. Особливістю таких ОС стало мультипрограммирование – спосіб організації обчислювального процесу, у якому одному процесорі поперемінно виконуються кілька додатків. Наприклад, поки один додаток здійснює операції введення-виведення, процесор виконує обчислювальні операції іншого. Утворився новий тип ОС – системи поділу часу, що дозволяє створити кожному користувача ілюзію одноосібної роботи з комп'ютером. Поява великих (ВІС) та надвеликих інтегральних схем (НВІС) забезпечило широке поширення комп'ютерів та їх використання неспеціалістами в галузі програмування. Це потребувало розробки дружнього, інтуїтивно зрозумілого програмного інтерфейсу. Розвиток засобів комунікацій зумовило розвиток мережевих ОС.

До сучасних ОС пред'являються такі вимоги:

Сумісності – ОС має включати кошти до виконання додатків, підготовлених інших ОС;

Перенесення - забезпечення можливості перенесення ОС з однієї апаратурної платформи на іншу;

Надійності та відмовостійкості – передбачає захист ОЗ від внутрішніх та зовнішніх помилок, збоїв та відмов;

Безпеки - ОС має містити засоби захисту ресурсів одних користувачів від інших;

Розширюваності – ОС має забезпечувати зручності внесення наступних змін та доповнень;

Продуктивності – система повинна мати достатню швидкодію.

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

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

За кількістю одночасно виконуваних завдань виділяють ОС:

Однозадачні ОС (MS-DOS, ранні версії PS DOS);

Багатозадачні (OS/2, UNIX, Windows).

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

Невитісняюча багатозадачність (NetWare, Windows 3. x та 9. х);

Витіснюючи багатозадачність (Windows NT, OS/2, UNIX).

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

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

За кількістю одночасно працюючих користувачів виділяють ОС:

Однокористувацькі (MS-DOS, Windows 3. x, ранні версії OS/2);

Розраховані на багато користувачів (UNIX, Windows NT).

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

Багатопроцесорна обробка передбачає підтримку роботи кількох процесорів і вітає у ОС Solaris 2. x фірми Sun, OS/2 фірми IBM, Windows NT фірми Microsoft, NetWare 4.1. фірми Novell та ін.

Багатопроцесорні ОС поділяються на асиметричні та симетричні. Асиметрична ОС виконується одному з процесорів системи, розподіляючи прикладні завдання з іншим процесорам. Симетрична ОС децентралізована та використовує всі процесори, розділяючи між ними системні та прикладні завдання.

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

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

Динамічне перерозподіл ресурсів ПЕОМ між кількома завданнями (спосіб колективного користування) забезпечує або скорочення сумарного часу вирішення кількох завдань, або зменшення часу початку обробки задачі. І те, й інше при одному «обслуговуючому приладі», наприклад процесорі або принтері, досягається за рахунок збільшення часу вирішення однієї (кожної) задачі. Порядок проходження завдань у машині визначає режими реалізації способу колективного користування: пакетної обробки та поділу часу. Пакетна обробка передбачає вирішення кількох завдань приблизно в тому ж режимі, в якому працює викладач під час усного іспиту – його увагу займає один із студентів. Після завершення опитування увага перемикається на наступного (вважаємо, що обслуговування студентів є рішенням завдання).

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

p align="justify"> Для реальних умов роботи характерно те, що моменти надходження завдань на обробку визначаються не темпом роботи обслуговуючого приладу (ПЕОМ, принтера та ін), а процесами, що протікають поза ним. Відповідно до цього обслуговуючий прилад повинен вирішувати певну сукупність завдань (реакція на збої обладнання, заявка на зв'язок у мережі, примусове створення резервної копіїі т.д.).

При кінцевому швидкодії обслуговуючого приладу заявки, що надходять, не можуть бути виконані відразу, а стають в чергу. Процес вибору заявки з багатьох очікуваних обслуговування називається диспетчеризацією, а правило диспетчеризації – дисципліною обслуговування. Дисциплін обслуговування багато, наприклад «у порядку надходження» (FIFO – First Input First Output), «у зворотному порядку» (LIFO – Last Input First Output) та ін. обслуговування, зване пріоритетом, який характеризується цілим позитивним числом. Найвищий пріоритет призначається ОС.

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

Системних функцій буває багато, вони визначають ті можливості, які операційна система надає додаткам, що виконуються під її управлінням. Такі системні запити (виклики системних операцій, чи функцій) або явно прописуються у тексті програми програмістами, або підставляються автоматично самої системою програмування на етапі трансляції вихідного тексту програми, що розробляється. Кожна операційна система має багато системних функцій; вони викликаються відповідним чином, за прийнятими у системі правилами. Сукупність системних викликів і правил, за якими їх слід використовувати, визначає інтерфейс прикладного програмування (API). Очевидно, що програма, створена для роботи в деякій операційній системі, швидше за все не працюватимуть в іншій операційній системі, оскільки API цих операційних систем різняться. Намагаючись подолати це обмеження, розробники операційних систем стали створювати так зване програмне середовище. Програмне (системне) середовище слід розуміти як деяке системне програмне оточення, що дозволяє виконати всі системні запити від прикладної програми. Те системне програмне середовище, яке безпосередньо утворюється кодом операційної системи, називається основним, природним, або нативним (native). Крім основного операційного середовища в операційній системі можуть бути організовані (шляхом емуляції іншого операційного середовища) додаткові програмні середовища. Якщо операційній системі організована робота з різними операційними середовищами, то такій системі можна виконувати програми, створені як даної, але й інших операційних систем. Можна сказати, що програми створюються для роботи в певному заданому операційному середовищі. Наприклад, можна створити програму для роботи в середовищі DOS. Якщо така програма всі функції, пов'язані з операціями з операціями введення-виведення і з запитами пам'яті, виконує не сама, а за рахунок звернення до системних функцій DOS, то вона (в абсолютній більшості випадків) успішно виконуватиметься і в MS DOS, і в PS DOS, і Windows 9x, і Windows 2000, і OS/2, і навіть у Linux.

Отже, паралельне існування термінів "операційна система" та "операційне середовище" викликано тим, що операційна система може підтримувати кілька операційних середовищ. Майже всі сучасні 32-розрядні операційні системи, створені для персональних комп'ютерів, підтримують кілька операційних середовищ. Так операційна система OS/2 Warp, яка свого часу була однією з найкращих щодо цього, може виконувати такі програми:

Основні програми, створені з урахуванням «рідного» 32-розрядного програмного інтерфейсу цієї операційної системи;

16-розрядні програми, створені для OS/2 першого покоління;

16-розрядні програми, розроблені для виконання в операційній системі MS DOS або PS DOS;

16-розрядні програми, створені для операційного середовища Windows 3. x;

Саму оперативну оболонку Windows 3. x вже у ній – створені нею програми.

А операційна система Windows XP дозволяє виконувати крім основних програм, створених з використанням Win32API, 16-розрядні програми для Windows 3. x, 16-розрядні DOS-програми, 16-розрядні програми для першої версії OS/2.

Операційне середовище може включати кілька інтерфейсів: користувацькі та програмні. Якщо говорити про користувацькі, то наприклад, система Linuxмає для користувача як інтерфейси командного рядка (можна використовувати різні "оболонки" - shell), на зразок Norton Commander, наприклад X-Window з різними менеджерами вікон - KDE, Gnome та ін. Якщо ж говорити про програмні інтерфейси, то в тих же операційних системах із загальною назвою Linux програмиможуть звертатися як до операційної системи за відповідними сервісами та функціями, так і до графічної підсистеми (якщо вона використовується). З погляду архітектури процесора (і персонального комп'ютера загалом) двійкова програма, створена до роботи у середовищі Linux, використовує самі команди і формати даних, як і програма, створена до роботи у середовищі Windows NT. Однак у першому випадку ми маємо звернення до одного операційного середовища, а в другому – до іншого. І програма, створена безпосередньо для Windows, не виконуватиметься в Linux; якщо в ОС Linux організувати повноцінну операційну середу Windows, то наша програма Windows може бути виконана. Загалом, операційне середовище - це системне програмне оточення, в якому можуть виконуватися програми, створені за правилами роботи цього середовища.

Висновок

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

На даний момент близько 90% персональних комп'ютерів використовують ОС Windows, яка має низку переваг і витіснила конкурентів із цього сегменту ринку. Більше широкий клас ОС спрямовано використання на серверах. До цього класу ОС відносять сімейство Unix, розробки фірми Microsoft, мережеві продукти Novell і корпорації IBM.

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

Список використаної літератури

Гордєєв А.В. Операційні системи: Підручник для вузів. 2-ге вид. - СПб.: Пітер, 2005.

Основи інформатики: Навч. посібник/О.М. Морозевич, Н.М. Говядінова, В.Г. Левашенко та ін; За ред.А.Н. Морозевича. - 2-ге вид., Випр. - Мн.: Нове знання, 2003.

Євсюков В.В. Економічна інформатика: Навч. посібник - Тула: Видавництво "Граф і К", 2003.

Інформатика економіки: Навч. посібник / За ред. проф. Б.Є. Одинцова, проф. Романова. - М.: Вузовський підручник, 2008.

ВСЕРОСІЙСЬКИЙ ЗАТІВНИЙ ФІНАНСОВО-ЕКОНОМІЧНИЙ ІНСТИТУТ

КАФЕДРА АВТОМАТИЗОВАНОЇ ОБРОБКИ ЕКОНОМІЧНОЇ ІНФОРМАТИКИ

КУРСОВА РОБОТА

з дисципліни « Інформатика »

«Призначення, еволюція та класифікація операційних систем»

Виконавець:

Смертін Микола Олегович

Спеціальність Менеджмент організації

Група 2 (ФНП)

№ залікової книжки 10ММД46177 Керівник:

Хохлова Ольга Олександрівна

Архангельськ – 2011

Вступ…………………………………………………………………………… 3

1. Призначення, еволюція та класифікація операційних систем…………… 4

Вступ……………………………………………………………………… 4

1.1. Призначення операційних систем…………………………………….. 5

1.2. Класифікація операційних систем………………………………… 11

1.3. Еволюція операційних систем………………………………………. 13

Заключение…………………………………………………………………… 15

2. Практична частина……………………………………………………………...16

2.1. Загальна характеристиказавдання………………………………………….. 16

2.2. Опис алгоритму решения………………………………………….. 18

Список литературы…………………………………………………………………21

Додатки………………………………………………………………………. 22

Вступ

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

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

У практичній частині контрольної роботи на підставі вихідних даних буде сформовано відомість зарплати організації. У ході виконання практичної частини буде використано табличний процесор MS Excel, майстер зведених таблиць та діаграм, вивчено можливості функції ПРОГЛЯД().

Робота виконана ПК Intel Pentium IV - 2,4 ГГц / 1024 МbRAM / 80 GbHDD / RW / DVD 52x32x52x / FDD 1,44

Для виконання роботи використовувалися такі програми:

1. Операційна система – Microsoft Windows XP Professional

2. Текстовий редактор "MSWord - 2007"

3. Табличний процесор «MSExcel-2007»

1. Призначення, еволюція та класифікація операційних

систем.

План

Вступ

1.1. Призначення операційних систем

1.2. Класифікація операційних систем

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

Висновок

Вступ

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

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

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

1.1 Призначення операційних систем

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

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

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

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

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

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

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

· Безпека. Сучасна ОС має захищати дані та інші ресурси обчислювальної системи від несанкціонованого доступу. Щоб ОС мала властивість безпеки, вона повинна як мінімум мати у своєму складі засоби визначення легальності користувачів, надання легальним користувачам диференційованих прав доступу до ресурсів, а також мати фіксацію всіх «підозрілих» для безпеки системи подій. Властивість безпеки особливо важлива для мережевих ОС. У таких ОС до завдання контролю доступу додається завдання захисту даних, що передаються мережею;

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

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

Існують також різні підходи щодо визначення поколінь ОС. Відомий поділ ОС на покоління відповідно до покоління обчислювальних машин і систем [ 5 , 9 , 10 , 13 ]. Такий поділ не можна вважати цілком задовільним, оскільки розвиток методів організації ОС у межах одного покоління ЕОМ, як показав досвід створення, відбувається у досить широкому діапазоні. Інша думка не пов'язує покоління ОС з відповідними поколіннями ЕОМ. Так, наприклад, відомо визначення поколінь ОС за рівнями вхідної мови ЕОМ, режимами використання центральних процесорів, формами експлуатації систем тощо. [ 5 , 13 ].

Мабуть, найбільш доцільним вважати виділення етапів розвитку ОС у межах окремих поколінь ЕОМ і ЗС.

Першим етапом розвитку системного програмного забезпечення можна вважати використання бібліотечних програм, стандартних та службових підпрограм та макрокоманд. Концепція бібліотек підпрограм є найбільш ранньою і походить від 1949 року. 4 , 17 ]. З появою бібліотек отримали розвиток автоматичні засоби їхнього супроводу – програми-завантажувачі та редактори зв'язків. Ці кошти застосовувалися в ЕОМ першого покоління, коли операційних систем ще не існувало.

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

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

Почалося інтенсивне розвиток методів управління даними, виникала така важлива функція ОС, як реалізація введення-виведення без участі центрального процесу - так званий спулінг (від англ. SPOOL - Simultaneous Peripheral Operation on Line).

Поява нових апаратних розробок (1959-1963 рр.) – систем переривань, таймерів, каналів – стимулювало розвиток ОС [ 4 , 5 , 9 ]. Виникли виконавчі системи, які являли собою набір програм для розподілу ресурсів ЕОМ, зв'язків з оператором, управління обчислювальним процесом та управління введенням-виводом. Такі виконавчі системи дозволили реалізувати досить ефективну на той час форму експлуатації обчислювальної системи – однопрограмну пакетну обробку. Ці системи давали користувачеві такі засоби, як контрольні точки, логічні таймери, можливість побудови програм оверлейної структури, виявлення порушень програмами обмежень, прийнятих у системі, управління файлами, збирання облікової інформації та ін.

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

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

Однією з перших ОС, що використовують ці новітні рішення, була операційна система МСР (головна програма управління), створена фірмою Burroughs для своїх комп'ютерів В5000 в 1963 році. У цій ОС було реалізовано багато концепцій та ідей, які згодом стали стандартними для багатьох операційних систем:

    мультипрограмування;

    мультипроцесорна обробка;

    віртуальна пам'ять;

    можливість налагодження програм вихідною мовою;

    написання операційної системи мовою високого рівня.

Відомою системою поділу часу того періоду стала система CTSS (Compatible Time Sharing System) - сумісна система поділу часу, розроблена в Массачусетському технологічному інституті (1963) для комп'ютера IBM-7094 [ 37 ]. Ця система була використана для розробки в цьому ж інституті спільно з Bell Labs та General Electric системи поділу часу наступного покоління MULTICS (Multiplexed Information And Computing Service). Примітно, що ця ОС була написана переважно мовою високого рівня EPL (перша версія мови PL/1 фірма IBM).

Одним з найважливіших подій в історії операційних систем вважається поява в 1964 сімейства комп'ютерів під назвою System/360 фірми IBM, а пізніше - System/370 [ 11 ]. Це було першою у світі реалізацією концепції сімейства програмно та інформаційно сумісних комп'ютерів, що згодом стала стандартною для всіх фірм комп'ютерної галузі.

Слід зазначити, що основний формою використання ЕОМ, як і системах поділу часу, і у системах пакетної обробки, став багатотермінальний режим. При цьому не тільки оператор, а й усі користувачі отримували можливість формулювати свої завдання та керувати їх виконанням зі свого терміналу. Оскільки термінальні комплекси скоро стало можливим розміщувати на значних відстанях від комп'ютера (завдяки модемним телефонним з'єднанням), з'явилися системи віддаленого введення завдань та телеобробки даних. У ОС додалися модулі, що реалізують протоколи зв'язку 10 , 13 ].

На той час відбулася істотна зміна у розподілі функцій між апаратними та програмними засобами комп'ютера. Операційна система стає "невід'ємною частиною ЕОМ", як би продовженням апаратури. У процесорах з'явився привілейований (Супервізор в OS/360) та користувальницький (Завдання в OS/360) режими роботи, потужна система переривань, захист пам'яті, спеціальні регістри для швидкого перемикання програм, засоби підтримки віртуальної пам'яті та ін.

На початку 1970-х років з'явилися перші мережеві ОС, які дозволили як розосередити користувачів, як і системах телеобробки даних, а й організувати розподілене зберігання і обробку даних між комп'ютерами, з'єднаних електричними зв'язками. Відомий проект ARPANET MO США. У 1974 році IBM оголосила про створення власної мережевої архітектури SNA для своїх мейнфреймів, що забезпечує взаємодію типу "термінал-термінал", "термінал-комп'ютер", "комп'ютер-комп'ютер". У Європі активно розроблялася технологія побудови мереж із комутацією пакетів на основі протоколів Х.25.

До середини 70-х років поряд з мейнфреймами широкого поширення набули міні-комп'ютери (PDP-11, Nova, HP). Архітектура міні-комп'ютерів була значно простішою, багато функцій мультипрограмних ОС мейнфреймів було усічено. Операційні системи міні-ЕОМ стали робити спеціалізованими (RSX-11M - поділ часу, RT-11 - OC реального часу) і не завжди розрахованими на багато користувачів.

Важливою віхою історія міні-комп'ютерів і взагалі історії операційних систем стало створення ОС UNIX. Написав цю систему Кен Томпсон (Ken Thompson), один із фахівців з комп'ютерів у BELL Labs, який працював над проектом MULTICS. Власне, його UNIX - це зрізана однокористувацька версія системи MULTICS. Початкова назва цієї системи – UNICS (UNiplexed Information and Computing Service – примітивна інформаційна та комп'ютерна служба). Так жартома була названа ця система, оскільки MULTICS (MULTiplexed Information and Computing Service) – мультиплексна інформаційна та комп'ютерна служба. З середини 70-х років почалося масове використання ОС UNIX, написаної на 90% мовою С. Широке поширення С-компіляторів зробило UNIX унікальною переносимою OC, а оскільки вона поставлялася разом з вихідними кодами, вона стала першою відкритою операційною системою. Гнучкість, елегантність, потужні функціональні можливості та відкритість дозволили їй зайняти міцні позиції у всіх класах комп'ютерів – від персональних до супер-ЕОМ.

Доступність міні-комп'ютерів стала стимулом для створення локальних мереж. У найпростіших ЛОМ комп'ютери з'єднувалися через послідовні порти. Перший мережний додаток для ОС UNIX – програма UUCP (Unix to Unix Copy Program) – з'явився 1976 року.

Подальший розвиток мережевих систем зі стеком протоколів TCP/IP: в 1983 році він був прийнятий MO США як стандарт і використаний у мережі ARPANET. У цьому року ARPANET розділилася на MILNET (для військового відомства США) і нову ARPANET, яку почали називати Internet.

Всі вісімдесяті роки характерні появою все більш досконалих версій UNIX: Sun OS, HP-UX, Irix, AIX та ін Для вирішення проблеми їх сумісності були прийняті стандарти POSIX і XPG, що визначають інтерфейси цих систем для додатків.

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

Найбільш популярною версією ОС раннього етапу розвитку персональних комп'ютерів була MS-DOS компанії Microsoft - однопрограмна, однокористувацька ОС з інтерфейсом командного рядка. Багато функцій, що забезпечують зручність роботи користувачеві, у цій ОС надавалися додатковими програмами – оболонкою Norton Commander, PC Tools та інших. Мережеві функції також реалізувалися за допомогою мережевих оболонок та з'явилися у MS-DOS версії 3.1. У цей час з'явилися мережеві продукти Microsoft – MS-NET, і потім – LAN Manager, Windows for Workgroup, та був і Windows NT.

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

У 1987 року з'явилася перша багатозадачна ОС для ПК – OS/2, розроблена Microsoft разом із IBM. Це була добре продумана система з віртуальною пам'яттю, графічним інтерфейсом та можливістю виконувати DOS-додатки. Для неї були створені та набули поширення мережні оболонки LAN Manager (Microsoft) та LAN Server (IBM). Ці оболонки поступалися продуктивністю файловому серверу NetWare і споживали більше апаратних ресурсів, але мали важливі переваги. Вони дозволяли виконувати на сервері будь-які програми, розроблені для OS/2, MS-DOS і Windows, крім того, можна було використовувати комп'ютер, на якому вони працювали як робоча станція. Невдала ринкова доля OS/2 не дозволила системам LAN-Manager і LAN-Server захопити помітну частку ринку, але принципи роботи цих мережевих систем багато в чому знайшли втілення в ОС 90-х років – MS Windows NT.

У 80-ті роки були прийняті основні стандарти на комунікаційні технології для локальних мереж: у 1980 р. – Ethernet, у 1985 р. – Token Ring, наприкінці 80-х – FDDI (Fiber Distributed Data Interface), розподілений інтерфейс передачі даних волоконно-оптичних каналів, подвійне кільце з маркером. Це дозволило забезпечити сумісність мережевих ОС нижніх рівнях, і навіть стандартизувати операційні системи з драйверами мережевих адаптерів.

Для ПК застосовувалися як спеціально розроблені їм ОС (MS-Dos, NetWare, OS/2), а й адаптувалися вже існуючі ОС, зокрема UNIX. Найбільш відомою системою цього типу була версія UNIX компанії Santa Cruz Operation (SCO UNIX).

У 90-ті роки майже всі операційні системи, що займають помітне місце на ринку, стали мережевими. Мережеві функції вбудовуються в ядро ​​ОС, будучи її невід'ємною частиною. В ОС використовуються засоби мультиплексування кількох стеків протоколів, за рахунок якого комп'ютери можуть підтримувати одночасно роботу з різнорідними серверами і клієнтами. З'явилися спеціалізовані ОС, наприклад мережна ОС IOS компанії Cisco System, що працює в маршрутизаторах. У другій половині 90-х років всі виробники операційної системи посилили підтримку засобів роботи з інтерфейсами. Окрім стека протоколів TCP/IP у комплект поставки почали включати утиліти, що реалізують популярні послуги Інтернету: telnet, ftp, DNS, Web та ін.

Особлива увага приділялася останньому десятилітті і приділяється нині корпоративним мережевим операційним системам. Це одне з найважливіших завдань у найближчому майбутньому. Корпоративні ОС повинні добре і стійко працювати у великих мережах, які характерні для великих організацій (підприємств, банків тощо), що мають відділення у багатьох містах та, можливо, у різних країнах. Корпоративна ОС має без проблем взаємодіяти з ОС різного типута працювати на різних апаратних платформах. Наразі визначилися лідери у класі корпоративних ОС – це MS Windows 2000/2003, UNIX та Linux-системи, а також Novell NetWare 6.5.