Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТтАМ / Посібник / Апаратне та системне забезпечення ЕОМ () 2007.pdf
Скачиваний:
124
Добавлен:
12.02.2016
Размер:
2.31 Mб
Скачать

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

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

3.3.8. Особливості налаштування промислових BIOS

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

До особливостей налаштування таких системи можна віднести

контроль за периферійним обладнанням (наприклад звичайний комп’ютер видасть системну помилку якщо не знайде пристрою клавіатури),

встановлення методу та умови автоматичного перезавантаження (наприклад прикладна програма повинна періодично вчасно обнулювати певний регістр лічильника. Якщо цього не зробити то значення цього таймера досягне вказаного значення що спричинить перезавантаження комп’ютера). Переважно такий сторожовий таймер називають WDT (Watch-Dog Timer).

3.4. Поняття операційної системи

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

Операційна система як розширення можливостей комп’ютера.

Звичайно архітектура (система команд, організація пам’яті, введення виведення даних і структура шин – детальніше в розділі 2) більшості комп’ютерів на рівні машинної мови примітивна і незручна для роботи з програмами, особливо в процесі введення/виведення даних.

Для прикладу розглянемо процес введення/виведення даних на гнучкий диск. Звичайно контролер дисководу МГД має 16 команд, кожна з яких задає від 1 до 9 байт в регістр пристрою. Це команди для читання і записування даних, переміщення головки диску і форматування доріжок, а

153

також для ініціалізації, розпізнавання, вихідний стан і калібрування контролера та приводів. Основними командами є команди read і write (читання і записування). Кожна з них вимагає 13 параметрів, упакованих в 9 байт. Ці параметри визначають такі елементи, як адрес блоку на диску, який необхідно прочитати, кількість секторів на доріжці, фізичний режим запису, розташування проміжків між секторами. Але й цього недостатньо, програміст під час роботи з гнучким диском також повинен знати, увімкнений двигун чи ні. Якщо двигун вимкнений, його необхідно ввімкнути (з тривалим очікуванням запуску) перш, ніж дані будуть прочитані чи записані. Двигун не може залишатися увімкненим надто довго, так як гнучкий диск зношується. Програміст вимушений вибирати між тривалими затримками на час запуску і зношуванням гнучких дисків.

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

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

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

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

154

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

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

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

3.4.1. Історія розвитку операційних систем

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

Як зазначалось в розділі 1, перший справжній цифровий комп’ютер винайшов англійський математик Чарльз Беббідж. І хоча він так і не зміг заставити запрацювати свою "аналітичну машину", однак розумів, що для аналітичної машини йому необхідне програмне забезпечення. Тому він найняв молоду жінку по імені Ада Лавлейс, яка й стала першим в світі програмістом, а мова програмування Ada названа на її честь.

Перше покоління – електронні лампи. До практичного втілення теоретичних ідей побудови обчислювальних машин довелось чекати ще пів століття. Сюди відносять спроби Говарда Айкена в Гарварді, Джона фон Неймана в Інституті поглибленого вивчення в Прінстоні, Дж. Еккерті і Вільяма Моуслі в Пенсільванському університеті, Конрада Цузе в Німеччині тощо.

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

155

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

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

Друге покоління – транзистори і системи пакетного оброблення.

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

У цей час вперше склався чіткий розподіл між проектувальниками, складальниками, операторами, програмістами та обслуговувальним персоналом. Робота виглядала наступним чином. Щоб виконати завдання програміст спочатку повинен був записати його на папері (на мові Fortran чи асемблер). Після цього один з операторів переносив його на перфокарти. Далі колода карт передавалась в кімнату введення даних, де інший оператор зчитував їх в ЕОМ. Якщо у процесі розрахунків був необхідний компілятор мови, то оператору доводилось брати його із шафки картотеки та завантажувати в машину окремо. Коли ЕОМ завершувала виконання завдання, оператор підходив до принтера, відривав листок з отриманими даними та відносив його в кімнату для роздруківок, де програміст міг пізніше його забрати.

Якщо враховувати високу вартість обладнання, не дивно, що люди зайнялися пошуком способу підвищення ефективності використання машинного часу. Загальноприйнятим рішенням стала система пакетного оброблення. Суть ідеї полягала в тому, щоб спочатку зібрати повний набір завдань (колод перфокарт) у кімнаті вхідних даних і переписати їх на магнітну стрічку використовуючи для цього невеликий і (відносно) недорогий комп’ютер. Таким, наприклад, міг бути комп’ютер IBM 1401, який підходив для зчитування карт, копіювання стрічок і друку вихідних даних, але не годився для числових обчислень. А безпосередньо для виконання обчислень міг використовуватися IBM 7094. Схематично такий процес виконання обчислень наведено на рис. 3.1.

156

Рис. 3.1. Рання система пакетного оброблення

1 – програміст приносить карти для IBM 1401; 2 – IBM 1401 записує пакет завдань на магнітну ленту; 3 – оператор приносить вхідні дані на ленті до IBM 7904; 4 – IBM 7094 виконує обчислення; 5 – оператор переносить стрічку з вихідними даними на IBM 1401; 6 – друкування результатів обчислення;

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

Типовими системними програмами в той час були FMS (Fortran Monitor System) і IBMSYS (операційна система, створена корпорацією IBM для комп’ютера IBM 7094).

Третє покоління – інтегральні схеми і багатозадачність. Особли-

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

157

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

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

Однак, не дивлячись на свої величезні розміри та недоліки, OS/360 та подібні їй операційні системи третього покоління зробили популярними кілька технічних напрямів, найважливішим з яких стала багатозадачність. Для цього пам’ять розбивалась на кілька частин, званих розділами, кожній з яких давалось окреме завдання, див. рис. 3.2. Доки одне завдання очікувало завершення роботи пристрою введення/виведення, інше могло використовувати центральний процесор. Якщо в оперативній пам’яті містилась достатня кількість завдань, центральний процесор міг бути завантажений майже на всі 100% часу.

Рис. 3.2. Багатозадачна система з трьома завданнями в оперативній пам’яті

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

спулінг (spooling – слово пішло від абревіатури Simultaneous Peripheral Operation On Line – сумісна периферійна операція в інтерактивному режимі).

158

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

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

(Compatible Time Sharing System – сумісна система розділення часу) була розроблена в Масачусетському технологічному інституті на спеціально переробленому IBM-7094.

Після успіху системи CTSS Масачусетський технологічний інститут, система дослідних лабораторій Bell Labs і корпорація General Electric (тоді один з основних виробників комп’ютерів) вирішили розпочати розроблення "комп’ютерного підприємства громадського користування" – машини, яка повинна була підтримувати одночасно сотні користувачів в режимі розділення часу. Зразком для нової машини була система розподілення електричної енергії. Коли користувачам необхідна електроенергія, вони просто вставляють штепсель в розетку і отримують стільки енергії, скільки необхідно. Таким чином система, відома під назвою MULTICS (MULTiplexed Information and Computing Service –

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

Ще одним важливим моментом розвитку операційних системах в часи третього покоління був феноменальний ріст міні-комп’ютерів, починаючи з випуску машини PDP-1 корпорацією DEC в 1961 році. Комп’ютери PDP-1 мали оперативну пам’ять, що складалися лише з 4 Кбайт 18-бітових слів, але коштували по 120 тисяч доларів (це менше 5%

159

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

Один з комп’ютерних спеціалістів компанії Bell Labs, що працював над проектом MULTICS, написав урізану однокористувацьку версію системи MULTICS для комп’ютера PDP-7. Ця робота згодом розвинулась в операційну систему UNIX – одну з сучасних ОС.

Четверте покоління – персональні комп’ютери. Наступний період в еволюції операційних систем пов’язаний з появою великих інтегральних схем (LSI – Large Scale Integration) – кремнієвих мікросхем, що містять тисячі транзисторів на одному квадратному сантиметрі. З точки зору архітектури персональні комп’ютери (першопочатково називались мінікомп’ютерами) були багато в чому подібними на мінікомп’ютери класу PDP-11, однак відрізнялися ціною – завдяки цьому кожна людина отримала можливість купити свій власний персональний комп’ютер.

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

Спочатку на сцені персональних комп’ютерів і робочих станцій домінували дві операційні системи: MS DOS від Microsoft і UNIX. Перші версії MS DOS були відносно примітивні, але з часом в систему було добавлено багато нових можливостей, у тому числі й перенесених з UNIX. Як наступна ступінь після MS DOS було запропоновано ОС Windows. Спочатку вона працювала поверх MS DOS (тобто була швидше оболонкою ніж операційною системою), але в 1995 році була випущена самостійна версія Windows 95, для роботи якої уже не вимагалось MS DOS. Інша операційна система від Microsoft, Windows NT яка головно була призначена для промислового використання, підтримує певну візуальну сумісність з популярною в широких колах Windows 95. Зважаючи на своє промислове призначення на внутрішньому рівні Windows NT має принципово іншу архітектурну основу.

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

160

Соседние файлы в папке Посібник