
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Міністерство освіти і науки, молоді та спорту України
Черкаський державний бізнес – коледж
Циклова комісія комп’ютерних систем та мереж
П.А. КОХАН
Опорний конспект лекцій
Операційні системи
Галузь знань: 0501 «Інформатика та обчислювальна техніка»
Спеціальність: 5.05010201 «Обслуговування комп’ютерних систем
та мереж»
Черкаси
Зміст
Тема 1. Поняття ОС, мета її роботи. Класифікація комп’ютерних систем 3
Тема 2. Історія ОС. Діалекти UNIX. Режими пакетної обробки, мультипрограмування, розділу часу 10
Тема 3. Особливості ОС для різних класів комп’ютерних систем. ОС реального часу. ОС для хмарних обчислень 17
Тема 4. Архітектура комп’ютерної системи 24
Тема 5. Архітектура ОС. Управління процесами: Основні поняття. Семафори і монітори. 31
Тема 6. Огляд функцій ОС: управління пам’яттю, файлами, процесами, мережами, командними інтерпретаторами, сервіси ОС, системні виклики. Архітектура UNIX и MS-DOS 35
Тема 7. Рівні абстракції ОС. ОС с архітектурою мікроядра. Віртуальні машини. Мета проектування і розробки ОС. Генерація ОС 41
Тема 8. Управління процесами. Планування і диспетчеризація процесів 47
Тема 9. Потоки (threads) і багатопоточне виконання програм (multi-threading) 55
Тема10. Методи синхронізації процесів 63
Тема 11. Управління пам’яттю 72
Тема 12. Сторінковая організація пам’яті 78
Тема 13. Сегментна організація пам’яті. Віртуальна пам’ять 87
Тема 14. Системи файлів 99
Тема 15. Віртуальні файлові системи (VFS). Реалізація файлових систем. 115
Тема 16. Мережева файлова система NFS 125
Тема 17. Системи вводу-виводу 128
Тема 18. Мережі і мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи. 135
Тема 19. Безпека операційних систем і мереж 146
Тема 20. Архітектура, ядро, розповсюдження і ліцензування, принципи проектування, управління процессами 154
Тема 21. Огляд архітектури і можливостей системи Linux: Управління пам’яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека 161
Тема 22. Огляд архітектури і можливостей систем Windows 2000/XP/2003/Vista/2008/7 169
Тема 23. Системні механізми Windows 178
Тема 24. ОС для мобільних пристроїв. Windows Mobile 187
Тема 25. Перспективи операційних систем i мереж 193
Лекція 1. Поняття ОС, мета її роботи. Класифікація комп’ютерних систем
План
Розквіт ОС в 2000-х рр
Поняття операційної системи и мета її роботи
Компоненти комп'ютерної системи
Загальна картина функціонування комп'ютерної системи
Класифікация компьютерных систем
Классификация компьютерных архитектур
Основні компоненти операційної системы
Розквіт ОС в 2000-х рр
Безперечним лідером у даній області є корпорація Microsoft, що випустила менш чим за 10 останніх років серію ОС сімейства Windows: Windows XP, Windows 2003, Windows Vista (2007), Windows 2008, Windows 2008 High-Performance Computing (HPC), Windows 7, Windows 8.
Розвиваються також діалекти ОС Linux (Red Hat, Fedora, Mandrake, Ubuntu, SuSE й ін.- сотні діалектів). Linux - операційна система типу UNIX, ядро якої вільно поширюється з вихідними кодами.
Фірма Sun (в 2010 р., що ввійшла в состав фірми Oracle) розробляє й випускає ОС Solaris - одну з найбільш сучасних ОС типу UNIX з розвинутою підтримкою паралельного програмування, новими видами файлових систем, що відрізняється своєю підвищеною надійністю.
Досить популярні комп'ютери сімейства Macintosh фірми Apple (коротко – Mac) зі своєю операційною системою MacOS, що є законодавцем мод в області графічних користувальницьких інтерфейсів (GUI) і обміну мультимедийною інформацією (наприклад, мовного уведення). Назвемо також ОС фірми IBM для суперкомп'ютерів і комп'ютерів загального призначення (mainframes).
Фірма Sun (нині - Oracle) поклала початок аналогічній ініціативі для ОС Solaris - кілька років назад був початий проект OpenSolaris. Результати цього академічного проекту використаються при випуску нових версій комерційної ОС Solaris.
За традицією, ще з початку 1990-х рр., ядро ОС Linux також поширюється вільно, з вихідними кодами, що викликало хвилю робіт зі створення нових діалектів Linux, а також по розробці нових ОС для мобільних пристроїв на базі ядра Linux (наприклад, ОС Google Android).
Також інтенсивно розвиваються ОС для мобільних пристроїв. Ще кілька років назад найбільш використовуваними ОС у цій області були ОС сімейства Symbian. Однак зараз ОС Microsoft Windows Mobile й Google Android активно тіснять Symbian з ринку.
ОС для хмарних обчислень – принципово новий вид ОС, що відбиває сучасну тенденцію до організації обчислень як хмарних (cloud computing). Хмара – це метафора Інтернету. При хмарних обчисленнях користувач зі свого комп'ютера одержує платний доступ через Інтернет до Web-сервісів, що працюють на комп'ютерах потужних центрів обробки даних (наприклад, на серверах Microsoft). При цьому не тільки використовуване програмне забезпечення (у вигляді набору Web-сервісів), але й самі оброблювані дані користувача зберігаються на серверах "хмарного" центра обробки даних. На своєму комп'ютері користувач має лише простих і зручний і "хмарний" Web-інтерфейс, не потребуючи великих ресурсів. Найпоширенішої ОС для хмарних обчислень є в цей час Microsoft Windows Azure.
Поняття операційної системи й цілі її роботи
Операційна система ( ОС, в англомовному варіанті - operating system ) – базове системне програмне забезпечення, що управляє роботою комп'ютера і є посередником (інтерфейсом ) між апаратурою ( hardware ), прикладним програмним забезпеченням ( application software ) і користувачем комп'ютера ( user ). Фактично операційна система з погляду користувача - це як би продовження апаратури, надбудова над нею, що забезпечує більш зручне, надійне й безпечне використання комп'ютерів і комп'ютерних мереж.
Основні цілі роботи операційної системи наступні.
Забезпечення зручності, ефективності, надійності, безпеки виконання користувальницьких програм. Для користувача саме головне - щоб його програма працювала, поводилася передбачувано, видавала необхідні йому правильні результати, не давала збоїв, не піддавалася зовнішнім атакам. Обчислювальне середовище для такого виконання програм і забезпечує операційна система.
Забезпечення зручності, ефективності, надійності, безпеки використання комп'ютера. Операційна система забезпечує максимальну корисність й ефективність використання комп'ютера і його ресурсів, обробляє переривання, захищає комп'ютер від збоїв, відмов і хакерских атак. Ця діяльність ОС може бути не настільки помітною для користувача, але вона здійснюється постійно.
Забезпечення зручності, ефективності, надійності, безпеки використання мережних, дискових й інших зовнішніх пристроїв, підключених до комп'ютера. Особлива функція операційної системи, без якої неможливо використати комп'ютер, - це робота із зовнішніми пристроями. Наприклад, ОС обробляє будь-яке звертання до жорсткого диска, забезпечуючи роботу відповідного драйвера (низькорівневої програми для обміну інформацією з диском) і контролера (спеціалізованого процесора, що виконує команди вводу-виводу з диском). Будь-яка "флешка", вставлена в USB-слот комп'ютера, розпізнається операційною системою, одержує своє логічне ім'я (у системі Windows - у вигляді букви, наприклад, G) і стає частиною файлової системи комп'ютера на увесь час, поки вона не буде витягнута (демонтована).
Особливу важливість серед функцій сучасних ОС забезпечення безпеки, надійності й захисту даних. Варто враховувати, що комп'ютер й операційна система працюють у мережному оточенні, у якому постійно можливі й фактично відбуваються атаки хакеров й їхніх програм, що ставлять своєю метою нарушити роботу комп'ютера, "злом" конфіденційних даних користувача, що зберігаються на ньому, викрадення логінів, паролів, використання комп'ютера як "робота" для розсилання реклам або вірусів й ін.
Компоненти комп'ютерної системи
Щоб краще зрозуміти місце й роль операційної системи в процесі обчислень, розглянемо комп'ютерну систему в цілому. Вона складається з наступних компонентів:
Апаратури (hardware) комп'ютера, основні частини якої – центральний процесор (Central Processor Unit - CPU), що виконує команди (інструкції) комп'ютера; пам'ять (memory), що зберігає дані й програми, і пристрою вводу - виводу, або зовнішні пристрої (input-output devices, I/O devices), що забезпечують уведення інформації в комп'ютер і вивід результатів роботи програм у формі, сприйманої користувачем-людиною або іншими програмами. Часто апаратуру називають "залізом".
Операційна система (operating system) – системне програмне забезпечення, що управляє використанням апаратури комп'ютера різними програмами й користувачами.
Прикладне програмне забезпечення (applications software) – програми, призначені для вирішення різних класів завдань. До них ставляться, зокрема, компілятори, що забезпечують трансляцію програм з мов програмування, наприклад, C++, у машинний код (команди); системи керування базами даних (СУБД); графічні бібліотеки, ігрові програми, офісні програми. Прикладне програмне забезпечення утворює наступний, більше високий рівень, у порівнянні з операційною системою, і дозволяє вирішувати на комп'ютері різні прикладні й повсякденні завдання.
Користувачі (users) – люди й інші комп'ютери. Віднесення користувача-людини до компонентів комп'ютерної системи - зовсім не жарт, а реальність: будь-який користувач фактично стає частиною обчислювальної системи в процесі своєї роботи на комп'ютері, тому що повинен підкорятися певним строгим правилам, порушення яких приведе до помилок або неможливості використання комп'ютера, і виконувати великий обсяг типових рутинних дій – майже як сам комп'ютер. Одна з важливих функцій ОС саме й полягає в тому, щоб позбавити користувача від більшої частини такої рутинної роботи (наприклад, резервного копіювання файлів) і дозволити йому зосередитися на роботі творчої. Інші комп'ютери в мережі також можуть відігравати роль користувачів ( клієнтів ) стосовно даного комп'ютера, що виступає в ролі сервера, використовуваного, наприклад, для зберігання файлів або виконання більших програм.
Загальна картина функціонування комп'ютерної системи
Рис. 1.1. Загальна картина функціонування комп'ютерної системи
Користувачам комп'ютера доступні верхні рівні програмного забезпечення - системні й прикладні програми (наприклад, компілятори, текстові редактори, системи керування базами даних). Ці програми взаємодіють із операційною системою, яка, у свою чергу, управляє роботою комп'ютера.
Класифікація комп'ютерних систем
Суперкомп'ютери (super-computers) – потужні багатопроцесорні комп'ютери, найбільш сучасні з яких мають продуктивність до декількох petaflops (1015 операцій у секунду; абревіатура flops розшифровується як floating-point operations per second ). Приклад - суперкомп'ютер "Ломоносов", установлений у МГУ. Суперкомп'ютери використаються для обчислень, що вимагають більших обчислювальних потужностей, надвисокої продуктивності й великого обсягу пам'яті. У реальній практиці це насамперед завдання моделювання - наприклад, моделювання клімату в регіоні й прогнозування на основі побудованої моделі погоди в даному регіоні на найближчі дні. Особливістю суперкомп'ютерів є їхня паралельна архітектура - як правило, всі вони є багатопроцесорними. Відповідно, ОС для суперкомп'ютерів повинні підтримувати распаралелювання рішення завдань і синхронізацію паралельних процесів, що одночасно вирішують підзадачі деякої програми.
Багатоцільові комп'ютери, або комп'ютери загального призначення (mainframes) – традиційна історична назва для комп'ютерів, розповсюджених в 1950-х – 1970-х рр., ще до епохи загального поширення персональних комп'ютерів. Саме для mainframe-комп'ютерів створювалися перші ОС. Типові приклади таких комп'ютерів: IBM 360/370. На таких комп'ютерах вирішувалися всі необхідні завдання – від розрахунку зарплати співробітників в організації до розрахунку траєкторій космічних ракет. Подібний комп'ютер виглядав досить незграбно й громіздко й міг займати цілий великий зал. Параметри ранніх mainframe-комп'ютерів були досить скромними: швидкодія - кілька тисяч операцій у секунду, оперативна пам'ять – кілька тисяч слів. Недостатньо зручним був користувальницький інтерфейс (інтерактивна взаємодія з комп'ютерами було реалізовано набагато пізніше, в 1960-х рр.). Проте, на таких комп'ютерах вирішувалися досить серйозні завдання оборонного й космічного призначення. З появою персональних і портативних комп'ютерів класичні mainframe-комп'ютери пішли в минуле. Однак варто підкреслити, що в саме в операційних системах для mainframe-комп'ютерів були реалізовані всі основні методи й алгоритми, розглянуті в даному курсі, які згодом були використані в ОС для персональних, кишенькових комп'ютерів і мобільних пристроїв.
Кластери комп'ютерів (computer clusters) – групи комп'ютерів, фізично розташовані поруч і з'єднані один з одним високошвидкісними шинами й лініями зв'язку. Кластери комп'ютерів використаються для високопродуктивних паралельних обчислень. Найбільш відомі у світі комп'ютерні кластери, розташовані в дослідницькому центрі CERN (Швейцарія) - тому самому, де перебуває великий адронний коллайдер. Як правило, комп'ютерні кластери розташовуються в дослідницьких інститутах й в університетах. Операційна система для кластерів повинна, крім загальних можливостей, надавати можливості для конфігурування кластера, керування комп'ютерами (процесорами), що входять у нього, распаралелювання рішення завдань між комп'ютерами кластера й моніторингу кластерної комп'ютерної системи. Прикладами таких ОС є ОС фірми Microsoft - Windows 2003 for clusters; Windows 2008 High-Performance Computing (HPC).
Настільні комп'ютери (desktops) – це найпоширеніші в цей час комп'ютери, якими користуються вдома або на роботі всі люди, від школярів і студентів до хатніх господарок. Такий комп'ютер розміщається на робочому столі й складається з монітора, системного блоку, клавіатури й миші. Параметри сучасного настільного комп'ютера, найбільш прийнятні для використання сучасних ОС: швидкодія процесора 1 – 3 ГГц, оперативна пам'ять – 1 – 8 гігабайт і більше, обсяг жорсткого диска (hard disk drive – HDD) – 200 Гб – 1 Тб і більше. Вся розмаїтість сучасних операційних систем (Windows, Linux й ін.) – до послуг користувачів настільних комп'ютерів. При необхідності на настільному комп'ютері можна встановити дві або більше операційних системи, розділивши його дискову пам'ять на кілька розділів (partitions) і встановивши на кожний з них свою операційну систему, так що при включенні комп'ютера користувачеві надається стартове меню, з якого він вибирає потрібну операційну систему для завантаження.
Портативные комп'ютери (laptops, notebooks – дослівно "комп'ютери, що містяться на колінах"; "комп'ютера-зошита") – це мініатюрні комп'ютери, по своїх параметрах не уступають настільним, але по своїх розмірах вільно містяться в невелику сумку або рюкзак. Ноутбуки коштують звичайно дещо дорожче, ніж настільні комп'ютери з аналогічними характеристиками. На ноутбуках використаються ті ж операційні системи, що й для настільних комп'ютерів (наприклад, Windows або MacOS). Характерними рисами портативних комп'ютерів є всілякі убудовані порти й адаптери для бездротового зв'язку: Wi-Fi (офіційно IEEE 802.11) – вид радіозв'язку, що дозволяє працювати в бездротовій мережі із продуктивністю 10-100 мегабіт у секунду (використається звичайно на конференціях, у готелях, на вокзалах, аеропортах – тобто в зоні радіусом у кілька сотень метрів від джерела прийому-передачі); Bluetooth – також радіозв'язок на більше коротких відстанях (10 – 100 м для Bluetooth 3.0), використовувана для взаємодії комп'ютера з мобільним телефоном, навушниками, плейером й ін. Зовнішні пристрої (додаткові жорсткі диски, принтери, іноді навіть DVD-ROM) підключаються до ноутбука через порти USB. Ще років 10 назад на ноутбуках активно використалися інфрачервоні порти ( IrDA ), які, однак, незручні, тому що вимагають присутності "відповідного" IrDA – порту іншого пристрою на відстані 20-30 см від порту ноутбука, при відсутності між ними перешкод. Інша характерна риса ноутбуків – це наявність кард-ридеров – портів для читання всіляких карт пам'яті, використовуваних у мобільних телефонах або цифрових фотокамерах; забезпечується також інтерфейс FireWire (офіційно – IEEE 1394) для підключення цифрової відеокамери; таким чином, ноутбуки добре пристосовані для вводу, обробки й відтворення мультимедийной інформації. Один із критичних параметрів ноутбука – час роботи його батарей без підзарядки; дуже добре, якщо цей час становить порядку 10 годин, що поки порівняно рідко; на комп'ютерах, використовуваних автором, це час становить не більше 5 годин. Популярний різновид ноутбука нині – це нетбук - ноутбук, призначений для роботи в мережі, звичайно менш потужний і тому більше дешевий, а також більше мініатюрний.
Кишенькові портативні комп'ютери й органайзеры (КПК, handhelds, personal digital assistants – PDA) – це "іграшки для дорослих" у вигляді мініатюрного комп'ютера, що міститься на долоні або в кишені, але по своїй швидкодії іноді що не уступає ноутбуку. При всій привабливості, серйозні недоліки КПК, з погляду автора, - це незручність уведення інформації (доводиться користуватися паличкою- стилусом, - адже не носити ж із собою ще й громіздку клавіатуру, - або мікроскопічною висувною клавіатурою, на якій фактично тим же стилусом тільки й можна працювати), а також незручність читання інформації на маленькому екрані. Сучасні КПК мають фактично ті ж порти й адаптери, що й ноутбуки – Wi-Fi, Bluetooth, IrDA, USB. Операційні системи для КПК аналогічні ОС для ноутбуків, але все-таки враховують більше тверді обмеження КПК по обсязі оперативної пам'яті. У цей час для КПК широко використається ОС Windows Mobile – аналог Windows для мобільних пристроїв. Донедавна була також широко поширена PalmOS для органайзеров типу PalmPilot фірми 3COM.
Мобільні пристрої (mobile intelligent devices – мобільні телефони, коммуникаторы) – це пристрої, який кожний з нас користується постійно для голосового зв'язку, рідше – для запису або обробки якої-небудь інформації або для виходу в Інтернет. Найбільш важливі параметри мобільного пристрою – це якість голосового зв'язку й час автономної роботи батареї. Однак все більшого значення набувають убудовані в них цифрові фото- і відеокамери. Операційні системи для мобільних пристроїв відрізняються більшою компактністю, через більше тверді обмеження по пам'яті. Епоха домінування на ринку мобільних телефонів операційних систем типу Symbian, закінчується, і вони поступаються місцем більше сучасним, які забезпечують кращий користувальницький інтерфейс ОС Google Android й Microsoft Windows Mobile.
Для мобільних пристроїв, як і для КПК, досить важлива характеристика ОС – це її надійність, зокрема, схоронність даних після переповнення пам'яті, що виникає, наприклад, у результаті прийому великої кількості SMS-повідомлень, інтенсивної фото- або відеозйомки. Що стосується іншого програмного забезпечення для мобільних телефонів (ігор, утиліт, прикладних програм й ін.), те при їхній розробці домінує Java-технологія . У мобільних телефонах використається платформа ("видання") JME – Java Micro Edition, і будь-який мобільний телефон, що випускається уже більше 10 років, підтримує Java. Програми на Java для мобільних телефонів називаються мидлетами (від абревіатури MID – Mobile Intelligent Device ).
Носимі комп'ютери (wearable computers) – для повсякденного життя досить екзотичні пристрої, однак для спеціальних застосувань (наприклад, убудовані в скафандр космонавта або в кардіостимулятор) вони життєво важливі. Зрозуміло, їхня пам'ять і швидкодія значно менше, ніж у настільних комп'ютерів, але критичним фактором є їхня надвисока надійність, а для їхніх операційних систем й іншого програмного забезпечення – мінімальний можливий час відповіді (response time) – інтервал, протягом якого система обробляє інформацію від датчиків, від користувача або з мережі, перевищення якого грозить катастрофічними наслідками. Із цього погляду, ОС для комп'ютерів, що носять, можна віднести до систем реального часу.
Розподілені системи (distributed systems) – це системи, що складаються з декількох комп'ютерів, об'єднаних у провідну або бездротову мережу. Фактично, такі нині всі комп'ютерні системи (згадаєте девіз "Мережа – це комп'ютер "). Всі операційні системи повинні, таким чином, підтримувати розподілений режим роботи, засоби мережної взаємодії, високошвидкісну надійну передачу інформації через мережу.
Системи реального часу (real-time systems) – обчислювальні системи, призначені для керування різними технічними, військовими й іншими об'єктами в режимі реального часу. Характеризуються основною вимогою до апаратур і програмного забезпечення, у тому числі до операційної системи: неприпустимість перевищення часу відповіді системи, тобто очікуваного часу виконання типової операції системи. Для ОС вимоги реального часу накладають досить тверді обмеження - наприклад, в основному циклі роботи системи неприпустимі переривання (тому що вони приводять до неприпустимих тимчасових витрат на їхню обробку). Системи реального часу - особлива досить серйозна й специфічна область, вивчення якої виходить за рамки даного курсу.
Наведений огляд дає деяке подання про розмаїтість комп'ютерних систем у наш час. Для кожної з них повинна бути розроблена адекватна операційна система.
Класифікація комп'ютерних архітектур
Комп'ютерні системи відрізняються між собою не тільки по своїх параметрах і своєму призначенні, але й по своїх внутрішніх архітектурних принципах. Найбільш відомі наступні підходи до архітектури комп'ютерних систем.
CISC (Complicated Instruction Set Computers – комп'ютери з ускладненою системою команд) – історично перший підхід до комп'ютерної архітектури, суть якого в тім, що в систему команд комп'ютера включаються складні по семантиці операції, що реалізують типові дії, часто використовувані при програмуванні й при реалізації мов – наприклад, виклик рекурсивних процедур й автоматичне відновлення дисплеїв-регістрів, групові операції пересилання рядків і масивів й ін. Типовими представниками CISC -комп'ютерів були: із закордонних комп'ютерних систем – машини серії IBM 360/370. В IBM 360, наприклад, була реалізована команда MVC (move characters), що виконувала пересилання масиву символів (рядка) з однієї області пам'яті в іншу, причому адреси джерела, одержувача й довжина пересилає строки, що задавалися в регістрах. З одного боку, зрозуміле прагнення авторів CISC-архітектур зробити апаратуру як можна більше "розумною". З іншого боку, тверде "вшиття" складних алгоритмів виконання команд в "залізо" приводило до того, що апаратура виконувала щораз деякий загальний алгоритм команди, що вимагав десятків або навіть сотень тактів процесора, але оптимізувати виконання цих команд із використанням конкретної інформації про довжину рядка, непрямої ланцюжка й т.д. можливості не було. Інший недолік CISC-архітектури у тім, що подібні групові операції на час їхнього виконання фактично припиняли роботу конвеєра (pipeline).
RISC (Reduced Instruction Set Computers – комп'ютери зі спрощеною системою команд) – спрощений підхід до архітектури комп'ютерів, запропонований на початку 1980-х рр. професором Дэвидом Паттерсоном (університет Беркли, США) і його студентом Дэвидом Дитцелом (згодом – великим ученим, керівником компанії Transmeta). Приклади сімейств RISC -комп'ютерів: SPARC, MIPS, PA-RISC, PowerPC. Принципи даного підходу: спрощення семантики команд, відсутність складних групових операцій (які можуть бути реалізовані послідовностями команд, що містять цикли); однакова довжина команд (32 біта – архітектура була розроблена розраховуючи на 32-бітові процесори); виконання арифметичних операцій тільки в регістрах і використання спеціальних команд зчитування з пам'яті в регістр і записи з регістра на згадку; відсутність спеціалізованих регістрів (наприклад, дисплеїв-регістрів для адресації доступних областей локальних даних у стеці); використання великого набору регістрів ( регістрового файлу ) загального призначення – 512, 1024, 2048 регістрів і т.д., залежно від конкретної моделі процесора; передача при виклику процедур параметрів через регістри. Подібна архітектура дає широкий простір для оптимізації, виконуваних компіляторами, що й демонструють компілятори Sun Studio розробки фірми Sun / Oracle для ОС Solaris й Linux. RISC-архітектура дотепер використається при розробці нових комп'ютерів.
VLIW (Very Long Instruction Word – комп'ютери із широким командним словом) – підхід до архітектури комп'ютерів, що зложився в 1980-х – 1990-х рр. Основна ідея даного підходу – статичне планування паралельних обчислень компілятором на рівні окремих послідовностей команд і подкоманд. При даній архітектурі кожна команда є " широкою" (long) і містить декілька підкоманд, виконуваних паралельно за один машинний такт на декількох однотипних пристроях процесора – наприклад, у такому комп'ютері може бути два пристрої додавання, два логічних пристрої, два пристрої для виконання переходів і т.д. Завданням компілятора є оптимальне планування завантаження всіх цих пристроїв у кожному машинному такті й генерація таких (широких) команд, які дозволили б оптимально завантажити на кожному такті кожне із пристроїв. Достоїнством такої архітектури є можливість распараллеливания обчислень, недоліком – складність (у порівнянні з RISC -архітектурою). Приклади комп'ютерів таких архитектур: із закордонних - комп'ютери Cray X/MP, Cray Y/MP й ін., розроблені Сеймуром Креем (Cray) і його фірмою Cray Research.
EPIC (Explicit Parallelism Instruction Computers – комп'ютери з явним распараллеливанием) – по архітектурі аналогічні VLIW, але з додаванням ряду важливих удосконалень: наприклад, спекулятивних обчислень – паралельного виконання обох віток умовної конструкції з обчисленням умови. Підхід зложився й використається з 1990-х рр. Приклади процесорів даної архітектури - Intel IA-64, AMD-64.
Multi-core computers (багатоядерные комп'ютери) – архітектура комп'ютерів, яка одержала найбільш широка популярність, при якій кожен процесор має кілька ядер (cores), об'єднаних в одному кристалі й паралельно працюючих на одній і тій же загальній пам'яті, що дає широкі можливості для паралельних обчислень. У цей час відомі багатоядерные процесори фірми Intel (Core 2 Duo, Dual Core й ін.), а також потужні багатоядерные процесори фірми Sun / Oracle: Ultra SPARC-T1 ("Niagara") - 16-ядерний процесор ; Ultra SPARC-T2 ("Niagara2") – 32-ядерний процесор. Всі провідні фірми миру зайняті розробкою й випуском усе могутніших багатоядерних процесорів.
Hybrid processor computers (комп'ютери з гібридними процесорами) – новий, що усе ширше поширюється підхід до архітектури комп'ютерів, при якому процесор має гібридну структуру – складається з ( багатоядерного ) центрального процесора (CPU) і (також багатоядерного ) графічного процесора (GPU – Graphical Processor Unit ). Така архітектура була розроблена, у зв'язку з необхідністю паралельної обробки графічної й мультимедийной інформації, що особливо актуально для комп'ютерних ігор, перегляді на комп'ютері високоякісного цифрового відео й ін. Гібридна архітектура є новим "інтелектуальним викликом" для розроблювачів компіляторів, яким необхідно розробити й реалізувати адекватний набір оптимизацій як для центральних, так і для графічних процесорів. Прикладами таких архитектур є нові процесори фірми AMD, а також графічні процесори серії Tesla фірми NVidia.
Основні компоненти операційної системи
Ядро (kernel) – низькорівнева основа будь-якої операційної системи, виконувана апаратурою в особливому привілейованому режимі. Ядро завантажується в память один раз і перебуває в пам'яті резидентно – постійно, по тим самим адресах.
Підсистема керування ресурсами (resource allocator) – частина операційної системи, що управляє обчислювальними ресурсами комп'ютера - оперативною й зовнішньою пам'яттю, процесором й ін.
Керуюча програма (control program, supervisor) – підсистема ОС, що управляє виконанням інших програм і функціонуванням пристроїв вводу-виводу.
Лекція 2 Історія ОС. Діалекти UNIX. Режими пакетної обробки, мультипрограмування, розділу часу
План
Історія ОС
Діалекти UNIX
Особливості операційних систем для компьютерів загального призначення (mainframes)
Расподіл пам'яті в однозадачній ОС з пакетною обробкою завдань
ОС пакетної обробки с підтримкою мультрипрограмування
Режим разподілу часу и особливості ОС з режимом разподілу часу
Історія ОС
У ранніх mainframe-комп'ютерах (1940-1950 р.), першим з яких був комп'ютер ENIAC (1947 р., США), операційні системи були відсутні. Звертання до пам'яті в цих комп'ютерах здійснювалося по реальним (фізичним) адресах, а звертання до зовнішніх пристроїв (наприклад, до пристрою вводу з перфокарт або накопичувача на магнітній стрічці) здійснювалося спеціальними командами, також по фізичних адресах. Зрозуміло, подібний спосіб взаємодії з комп'ютером був дуже незручний. Була потрібна хоча б мінімальна автоматизація. Для цього в 1950-х – 1960-х рр. – були створені диспетчери (dispatchers) - попередники ОС, системні програми, що управляли проходженням пакета завдань, що вводять із перфокарт. Програма- диспетчер копіювала образ уведеної колоди перфокарт із завданням на стрічку уведення, на якій зберігалися всі образи завдань у хронологічному порядку їхнього уведення, незалежно від необхідних для них ресурсів – часу й обсягу пам'яті. Диспетчер здійснював запуск завдань по черзі, за принципом FIFO (First-In-First-Out) – у порядку надходження. Вибираючи із черги деяке завдання, диспетчер розміщав його в пам'яті й запускав. По закінченні завдання (або при його перериванні внаслідок помилки) на друкувальний пристрій видавалася роздруківка результатів. Потім керування передавалося наступному завданню. Такий режим доступу до комп'ютера був, звичайно, набагато зручніше, ніж робота з пульта. Недоліки його в тім, що, по-перше, програми пропускалися по черзі (була відсутня одночасна обробка декількох завдань), по-друге, ресурси, необхідні для виконання завдання, ніяк не враховувалися, і програма, що вимагає для виконання всього 1 хв., повинна була очікувати завершення великого завдання, що вимагала для виконання, наприклад, п'яти годин, - тільки тому, що остання була раніше уведена в систему.
В 1960-х - 1970-х рр. були розроблені класичні операційні системи, які усе більше й більше ускладнювалися. Усе більше складними ставали їхні системи файлів й інші компоненти ОС. Найбільш відомі з операційних систем цього періоду: серед закордонних - ATLAS, MULTICS, OS IBM/360, серед вітчизняних - ОС ДИСПАК для ЕОМ БЭСМ-6. Для класичних операційних систем були характерні наступні основні можливості:
мультипрограмування (multi-programming) - одночасна обробка декількох завдань;
пакетна обробка (batch mode) - обробка пакета завдань, уведених з перфокарт або з терміналів, з урахуванням їх пріоритетів і необхідних ресурсів
поділ часу (time sharing) - паралельна робота декількох користувачів з терміналів (телетайпів або дисплеїв), що управляли проходженням своїх завдань, що виконували їхнє уведення в текстових редакторах, компіляцію, виконання й налагодження;
керування процесами - паралельне (або поперемінне, якщо комп'ютер був однопроцесорним) виконання користувальницьких процесів; можливість явного запуску паралельного процесу.
Розробка кожної операційної системи для кожної нової моделі комп'ютера вимагала багатьох років напруженої висококваліфікованої роботи. При цьому кожна ОС спочатку розроблялася на низькорівневій мові – мові асемблера. Тому ще в 1960-х рр. виникла ідея розробки мобільних (які можна переносити) ОС – операційних систем, які могли б використатися на декількох сімействах комп'ютерів шляхом переносу їхнього коду (можливо, з невеликими змінами) з більше старих моделей на більше нові. Помітимо, що термін мобільний використається тут в іншому розумінні, відмінному від того, до якого ми звикли нині ( мобільні телефони й операційні системи для них).
Перша мобільна ОС була розроблена в 1970 р. Брайаном Керниганом (B. Kernighan) і Деннисом Ритчи (D. Ritchie) у фірмі AT & T й одержала назву UNIX. Навіть у самій її назві закладено свого роду протиставлення MULTICS (multi - багато, uni – один) – остання відома своєю ускладненістю. Цією назвою автори підкреслювали основну ідею UNIX – уніфікацію й спрощення подання файлів й операцій над ними (в UNIX файл – це послідовність байтів), користувальницьких програм і процесів. Уніфікованим, не залежним від цільової апаратної платформи, був також вихідний код UNIX, що був повністю написаний на спеціально розробленій новій мові Си (основними авторами Си, як й UNIX, є Б. Керниган і Д. Ритчи). Використання мови високого рівня для розробки UNIX було революційним кроком в історії ОС і дозволило, по-перше, значно прискорити й полегшити розробку, по-друге – перенести UNIX на багато моделей комп'ютерів (для яких при цьому, зрозуміло, необхідно було розробити компілятор з мови Си). Уперше система UNIX була використана в 1970 р. на мінікомп'ютері PDP-10. Комп'ютери фірми PDP зразка початку 1970-х рр. прийнято відносити до класу мінікомп'ютерів. Хоча дана назва із сучасної точки зору не цілком правомірно: такий комп'ютер займав ... дві невеликих шафи, у порівнянні з mainframe-комп'ютером зразка 1960-х рр., що займали цілий зал. Обсяг оперативної пам'яті мінікомп'ютерів становив усього порядку 32 кілобайт (!). Однак на них успішно працювала ОС UNIX (були й інші ОС - наприклад, RSX-11), був компілятор з мови Паскаль, була реалізована зручна система файлів і програма для роботи з ними, були доступні математичні бібліотеки програм.
На початку 1980-х років з'явилися персональні комп'ютери. Операційні системи для них фактично повторили у своєму розвитку операційні системи для комп'ютерів загального призначення: у них були використані аналогічні ідеї й методи. Однак перші персональні комп'ютери були менш потужними, чим mainframes, як по обсязі пам'яті, так і по швидкодії й розрядності мікропроцесора. Перший розповсюджений мікропроцесор фірми Intel був 8-розрядним, і для нього була розроблена також 8-розрядна операційна система CP/M. В 1975 р. була створена фірма Microsoft, і її першою розробкою була 16-розрядна операційна система MS DOS для персональних комп'ютерів із процесорами Intel 8086 (або, коротко, x86). У командній мові MS-DOS почувається явний вплив UNIX, однак MS-DOS надає набагато менші можливості командної мови.
На початку 1980-х рр. фірма Apple випустила персональні комп'ютери Lisa й Macintosh з операційною системою MacOS. Її характерною рисою була реалізація зручного графічного користувальницького інтерфейсу (GUI) у вигляді вікон, меню, "іконок" і багатьох інших елементів GUI, до яких ми з Вами нині так звикли. MacOS стала першої ОС із розвинутою підтримкою GUI (для порівняння, MS-DOS надавала можливості роботи безпосередньо командною мовою).
Наприкінці 1980-х - початку 1990-х рр., під впливом MacOS, Microsoft розробила графічну оболонку Windows над операційною системою MS-DOS. Перша версія Windows, таким чином, ще не була операційною системою; вона запускалася командою win з командної мови MS-DOS. Однак багато сучасних рис GUI, характерних для Windows, що стали "рідними" для користувачів Windows. Потім були випущені Windows 3.x й Windows for Workgroups (уже операційні системи), в 1995 р. - Windows 95 (з розвиненими мультимедийными можливостями, більшим набором убудованих драйверів для різних пристроїв і підтримкою механізму Plug-and-Play підключення нового пристрою без зупинки комп'ютера) і Windows NT з розвиненими мережними можливостями й підвищеною надійністю. Саме Windows NT стала основою для наступного розвитку Windows. У цей час найбільш популярними моделями Windows є Windows XP (підтримка якої фірмою Microsoft уже завершується - система випущена в 2001 р.), Windows 2003 Server, , Windows 2008 Server й Windows 7, Windows 8.
В початку 1990-х рр. з'явилася перша версія ОС Linux (ОС типу UNIX з відкритими вихідними кодами ядра), що поступово придбала значну популярність, але, головним чином, використається на серверах. Більшість клієнтів (користувачів) у світі віддають перевагу на своїх комп'ютерах Windows або MacOS (помітимо, що, наприклад, у США й Канаді комп'ютери Macintosh більше популярні, чим Windows-машини із процесорами Intel або їхніми аналогами).
Не будемо також забувати, що у відповідь на такий, на перший погляд, просте питання: "Яка ОС сама популярна у світі?" навіть співробітники Microsoft не відповідають "Windows". Справа в тому, що найбільш популярними у світі комп'ютерними пристроями є не настільні або портативні комп'ютери, а більше дешеві й компактні мобільні телефони, для яких першість утримувала спеціалізована ОС сімейства Symbian, що, зокрема, використовується в більшості мобільних телефонів найбільшої фірми Nokia. Операційну систему Symbian активно доганяє на ринку ОС для мобільних пристроїв нова ОС Google Android. Так що, операційні системи сімейства Windows по своїй поширеності виявляються лише на другому місці.
Діалекти UNIX
Одним з найбільше широко використовуваних сімейств операційних систем з 1970-х рр. є UNIX. Існують сотні діалектів UNIX. Всі вони мають ряд загальних можливостей, у тому числі - потужні командні мови й розвинені системні бібліотеки. Однак всі вони трохи відрізняються друг від друга. Фактично більшість великих фірм в області ІТ розробили або розробляють власні діалекти UNIX. Серед них найбільш відомі наступні.
Berkeley Software Distribution (BSD), у цей час - FreeBSD (University of Berkeley) - один з найбільш відомих діалектів UNIX, розроблений в Університеті Беркли, США. У ньому вперше були реалізовані мережні сокеты. Саме цей діалект був покладений в основу першої версії ОС Solaris фірми Sun (Solaris 1.x) при її створенні в 1982 р. Один з авторів даного діалекту - Білл Джой (Bill Joy), один із чотирьох легендарних творців фірми Sun.
System V Release 4 (SVR4) - діалект UNIX, розроблений у фірмі AT&T. Для нього найбільш характерні розширені можливості паралельного багатопоточного програмування (multi-threading). Даний діалект був покладений в основу другої версії ОС Solaris (Solaris 2.x) фірми Sun на початку 1990-х років.
Linux (RedHat, SuSE, Mandrake, Caldera, Debian, Fedora й ін.) – ОС типу UNIX з вільно розповсюджуваним ядром з вихідними кодами. Перша версія Linux була розроблена на початку 1990-х рр. У цей час діалекти Linux активно використаються як серверні ОС (ОС, що управляють роботою всіляких серверів), а також як основа для розробки ОС для мобільних пристроїв.
Solaris (Sun Microsystems, нині - Oracle / Sun) - один з найбільш відомих і розвинених діалектів UNIX. Має зручну графічну оболонку, розвинені засоби паралелізму й синхронізації процесів, зручні мережні можливості (зокрема, класичну мережну файлову систему NFS), ряд нових оригінальних файлових систем (зокрема, ZFS - файлова система з більшим розміром файлів і можливістю криптования інформації). У цей час поширюється ОС Solaris 10.
IRIX (Silicon Graphics) - діалект UNIX, розроблений фірмою Silicon Graphics (SGI), США, широко відомим виробником графічних робочих станцій.
HP-UX (Hewlett-Packard) - діалект UNIX, розроблений і використовуваний однією з найбільших "акул" у світі ІТ - фірмою Hewlett-Packard.
Digital UNIX (DEC) - діалект UNIX, розроблений на початку - середині 1990-х рр. фірмою Digital Equipment Corporation (DEC), згодом придбаною фірмою Compaq. Перша версія UNIX, що підтримувала 64-розрядні процесори.
Особливості операційних систем для комп'ютерів загального призначення (mainframes)
Один з основних режимів роботи ОС – пакетний режим (batch mode) – режим пропуску й одночасної обробки користувальницьких завдань ( jobs ) – програм, уведених із зовнішнього носія або з термінала, з урахуванням їх пріоритетів і необхідних їм ресурсів. При цьому ОС намагається максимально заощадити час пропуску пакета завдань, формуючи їх оптимальним чином, - наприклад, запускати на процесорі коротке завдання, поки більше довге виконує ввід-вивід.
Уже в найперших ОС була реалізована інша основна можливість - автоматична передача керування від одного завдання до іншого при завершенні або припиненні попереднього завдання. Для цього ОС використовує резидентний (постійно перебуває в пам'яті по фіксованих адресах) монітор – програму, що здійснює почергову передачу керування від завдання до завдання, у міру їхнього завершення. Алгоритм роботи монітора наступний. При запуску комп'ютера керування передається монітору, що вибирає чергове завдання й передає йому керування. По закінченні завдання керування повертається монітору, і т.д.
Розподіл пам'яті в однозадачній ОС із пакетною обробкою завдань
Рис. 2.1. Розподіл пам'яті в простій системі пакетної обробки
Він дуже простий: операційна система займає постійно суміжну область пам'яті (наприклад, по менших адресах), інша область пам'яті віддана користувальницькій програмі. Така операційна система є однозадачною – обробляє, виконує й зберігає в оперативній пам'яті в кожен момент часу тільки одне користувальницьке завдання (програму). По закінченні поточного завдання ОС завантажує в областьпам'яті, що звільнилася, наступне завдання. Зрозуміло, такий режим роботи недостатньо зручний й ефективний, тому що при виконанні завдання можливі переривання на виконання вводу-виводу й інші паузи, під час яких ОС могла б дати можливість виконуватися іншим черговим завданням.
ОС пакетної обробки з підтримкою мультипрограмування
Більше розвинені операційні системи підтримують режим мультипрограмування – одночасної обробки й розміщенні в пам'яті відразу декількох користувальницьких завдань. Розподіл пам'яті в такій системі зображене на рис. 2.2.
Рис. 2.2. Розподіл пам'яті в системі пакетної обробки з підтримкою мультипрограмування
У такій системі ОС займає як і раніше суміжну область пам'яті по менших адресах, однак слідом за областю ОС розміщаються кілька суміжних областей пам'яті, займаних користувальницькими програмами. Їхнє число й розміри можуть мінятися.
Особливості ОС із підтримкою мультипрограмування наступні.
Використання програм вводу-виводу, підтримуваних операційною системою. При однозадачному режимі подібної необхідності не виникало: кожне чергове завдання одержувало в повне розпорядження всі ресурси комп'ютера, у тому числі - пристрою вводу-виводу. При виконанні останній процесор простоював. У мультипрограмному режимі вже виникає потреба в реалізації спеціальних підпрограм для вводу-виводу, які могли б викликатися користувачем або операційною системою в необхідних випадках. Виклик в одній з користувальницьких програм підпрограми вводу-виводу означає для ОС можливість під час його виконання надати процесор іншому користувальницькому завданню.
Керування пам'яттю. Оскільки завдань у пам'яті може бути багато, причому число й розміри їхніх областей можуть мінятися, перед операційною системою виникає завдання розподілу пам'яті для користувальницьких завдань – виділення пам'яті для користувальницького завдання, що завантажує, і її звільнення після завершення кожного завдання. При рішенні цього класичного завдання виникає цілий ряд проблем: зберігання списків вільної й зайнятої пам'яті, реалізація оптимального алгоритму пошуку й виділення вільної області пам'яті, реалізація звільнення пам'яті, фрагментація - дроблення вільної пам'яті на дрібні ділянки, внаслідок неточного збігу розмірів вільних і необхідних ділянок пам'яті й ін.
Планування завантаження процесора (CPU scheduling) – реалізація в ОС алгоритмів вибору чергового завдання з набору завантажених на згадку завдань і виділення кванта часу центрального процесора черговому обраному завданню. На відміну від однозадачного режиму, у режимі мультипрограмування операційна система, таким чином, у певні моменти часу повинна зробити вибір, яке з декількох завантажених на згадку завдань запустити.
Керування зовнішніми пристроями й буферизація вводу-виводу. В однозадачному режимі завантажена в пам'ять користувальницька програма для виводу на печать могла виконати спеціальну машинну команду, що виводила на пристрій печатки черговий рядок, що не викликало проблем і не приводило до якої-небудь плутанини, внаслідок монопольності "володіння" комп'ютером черговим завданням. Однак у мультипрограмному режимі ситуація інша. Якщо зберегти той же режим виводу на печать, то на друкувальний пристрій можуть бути виведені фрагменти, що належать різним завданням, що неприпустимо. Для угруповання й відділення виведеної інформації різних завдань друг від друга в мультипрограмної ОС використається буферизація виводу (spooling) – зберігання для кожного завдання буфера його виводу (у вигляді області пам'яті або файлу), нагромадження в буфері виведеної завданням інформації і її вивід повністю на пристрій (принтер) при завершенні завдання.
Режим поділу часу й особливості ОС із режимом поділу часу
Коли в складі комп'ютерних систем з'явилися термінали (спочатку телетайпи, потім дисплеї), виникла необхідність реалізації в ОС режиму поділу часу ( time sharing ) – можливості одночасної роботи користувачів зі своїми завданнями з терміналів, уведення завдань у систему, їхнього запуску (при наявності вільного процесора), керування завданнями з термінала, їхнього припинення, налагодження, візуалізації на терміналі їхніх результатів. Розглянемо особливості ОС із режимом поділу часу.
Зберігання завдань у пам'яті або на диску. Ресурси процесора в ОС із поділом часу розподілені між декількома завданнями, що перебувають у пам'яті або на диску. Завдання завантажується на згадку (при наявності вільної пам'яті), якщо воно є пакетним й обрано операційною системою для виконання, або якщо воно активується користувачем з термінала. Процесор виділяється тільки тим завданням, які перебувають у пам'яті.
Відкачка й підкачування (swapping) - завантаження завдань із диска в пам'ять і їхнє вивантаження з пам'яті на диск. У системі з поділом часу можлива ситуація, коли яке-небудь завдання, кероване з термінала, неактивно (наприклад, виконує ввід-вивід, або система очікує відповіді від користувача, у якого в цей момент перерва в роботі). У цьому випадку ОС може ухвалити рішення щодо тимчасового вивантаженні (swap out) образа пам'яті завдання з оперативної пам'яті на диск, з метою звільнення пам'яті для інших завдань. При повторній активізації завдання воно (при можливості) знову завантажується в пам'ять ( swapped in ). Подібна стратегія називається відкачкою й підкачуванням.
Підтримка діалогової взаємодії між користувачем і системою. Коли ОС завершує виконання користувальницької команди, вона виконує пошук наступного керуючого оператора (control statement), уведеного з користувальницької клавіатури.
Надання діалогового доступу до даних і коду користувальницької програми. В ОС із поділом часу забезпечується можливість для користувача уведення, запуску, редагування, налагодження своєї програми з термінала, керування своїм завданням (припинення, з наступним поновленням), перегляду його проміжних результатів, стану пам'яті й регістрів, перегляду остаточних результатів на терміналі при завершенні завдання.
Варто враховувати, що в ОС із поділом часу обробляються як пакетні, так й інтерактивні (діалогові) завдання, тому система повинна забезпечувати їхню диспетчеризацію - перемикання в потрібний момент із діалогового завдання на пакетне, або з одного діалогового (пакетного) завдання на інше.
Режим поділу часу, поряд з пакетним режимом, був основним в операційних системах 1960-х - 1970х- рр.
Лекція 3 Особливості ОС для різних класів комп’ютерних систем. ОС реального часу. ОС для хмарних обчислень
План
Особливості ОС для ПК
Паралельні компьютерні системи і особливості їх ОС.
Симетричні и асиметричні мультипроцесорні системи
Розподілені комп'ютерні системи і особливості їх ОС
Види серверів в клиєнт-серверних комп'ютерних системах
Кластерні обчислювальні системы і їх ОС
Системи и ОС реального часу
Кишенькові комп'ютери (handhelds) і їх ОС
Обчислювальні середовища
Хмарні обчислення і ОС для хмарних обчислень
Особливості ОС для персональних комп'ютерів
Персональні комп'ютери призначені, як правило, для одного користувача. Проте, ОС для персональних комп'ютерів повинна передбачати режим мультипрограмування (багатозадачності), тому що користувачам часом зручніше виконувати кілька завдань паралельно - наприклад, набирати деякий текст у редакторі, приймати електронну пошту й одночасно друкувати на принтері які-небудь документи. Крім того, при роботі в локальній мережі можливий удалений вхід на комп'ютер інших користувачів. Тобто, ОС для персональних комп'ютерів повинна підтримувати також режим розподілу часу.
Персональні комп'ютери мають різноманітний набір пристроїв вводу-виводу, роботу з якими повинна підтримувати операційна система за допомогою драйверів – низькорівневих системних програм для керування цими пристроями. Для користувача зручніше за все, якщо всі необхідні драйвери убудовані в операційну систему. Однак ситуація ускладнюється тим що драйвери пристроїв розробляє звичайно фірма-розроблювач відповідного пристрою - в англомовній термінології, Original Equipment Manufacturer (OEM), а не фірма-розроблювач ОС. Тому при випуску й установці на комп'ютер нової ОС можуть виникнути проблеми із драйверами - який-небудь пристрій нова ОС "не розуміє". На практиці, повинно пройти не менш двох-трьох років експлуатації нової ОС, перш ніж для неї з'являться драйвери для всіх використовуваних зовнішніх пристроїв, хоча останнім часом щодо цього ситуація значно покращилася - нові ОС стають усе більше "тямущими" і мають у своєму составі величезні набори драйверів.
Персональний комп'ютер має традиційні клавіатуру й мишу, підключають звичайно через USB-порт, або бездротові клавіатуру й мишу, блок керування яких також підключається через USB-порт. Портативний комп'ютер може мати також убудований маніпулятор типу trackball (кулька для переміщення курсору миші) або touchpad (плоска пластинка для цієї ж мети). До комп'ютера підключений монітор: для настільного комп'ютера – до порту VGA, для портативного – монітор убудований у комп'ютерну систему, але додатково може підключатися через порт VGA зовнішній монітор або мультимедійний проектор. До традиційних додаткових зовнішніх пристроїв відноситься також принтер (підключається через порт USB, більш старі моделі – через так званий паралельний порт, або LPT – абревіатура від Line PrinTer. Рідше використовується сканер – пристрій для оцифровки паперових зображень, наприклад, підписаних або рукописних документів. Сканер може також підключатися через порт USB, однак деякі моделі сканерів підключаються через інший інтерфейс – SCSI, використовуваний і для жорстких дисків (назва вимовляється "скАзи"). Є внутрішній жорсткий диск (hard drive) ємністю 250 GB – 1 TB і більше, що підключається через інтерфейс IDE (більше старий) або SATA. Можуть підключатися через порт USB також зовнішні накопичувачі - flash-пам'ять, або "флешки", що мають мініатюрний розмір й обсяг пам'яті до 128 гігабайт і більше; ZIV drives й інші різновиди зовнішніх жорстких дисків, що мають у цей час ємність до 1 терабайта. Операційна система повинна забезпечувати їхнє використання як частини комп'ютерної системи (наприклад, на зовнішній ZIV-диск може бути навіть установлене програмне забезпечення, у тому числі - інша операційна система). Для настільного комп'ютера в комплект входить пристрій читання й запису компакт-дисків у різних форматах - CD-ROM, CD-RW (з можливістю запису на CD); DVD-ROM/DVD-RW; DVD-RAM (останнє означає пристрій з режимом безпосереднього запису на компакт-диск, як на память); BluRay – більше сучасний формат компакт-дисків ємністю до 25 або 50 GB й ін. Для ноутбука DVD-ROM, з міркувань економії ваги й розмірів, може бути відсутній і повинен підключатися через USB-порт. Досить важливим зовнішнім пристроєм, особливо для портативного комп'ютера, є порт для підключення цифрової відеокамери (IEEE 1394, або FireWire), більше мініатюрний, чим USB. Він має дуплексний режим роботи, так що, наприклад, перемотування відеострічки на відеокамері можуть запускатися програмним шляхом з комп'ютера. Про адаптери для бездротового зв'язку – Wi-Fi, Bluetooth, IrDA – вже було сказано.
Найбільш важливими властивостями ОС для персонального комп'ютера повинні бути, звичайно, простота й зручність у використанні. Це досягається насамперед, зручним і сучасним апаратним і програмним користувальницьким інтерфейсом, наприклад, інтерфейсом типу multi-touch (з доступом безпосередньо до екрана), ноутбуками типу Tablet PC (з можливістю повороту екрана й уведення інформації дотиком до екрана).
При розробці ОС для ПК використаються ті ж технології, які застосовуються й в "більших" ОС (для mainframe-комп'ютерів). Однак, оскільки користувач має персональний доступ до комп'ютера, він часто не має потреби в яких-небудь системних програмах для оптимізації роботи процесора або в поліпшених засобах захисту (останньої, однак, не слід зневажати й відключати її, тому що на комп'ютер можливі мережні атаки).
Як ми вже говорили, на одному персональному комп'ютері можуть бути встановлені, при необхідності, дві або більше операційних системи - такий комп'ютер зветься double bootable system, і при його включенні користувачеві видається початкове меню для уточнення, яку саме ОС потрібно запустити – boot loader (завантажник ОС). Таке використання комп'ютера рекомендується, наприклад, для студентів, що вивчають ОС і бажають спробувати нову операційну систему, або вивчити іншу вже відому, на яку дотепер бракувало часу, - наприклад, установити на одному комп'ютері Windows й Linux. Для установки другої ОС необхідно скористатися спеціальною утилітою (наприклад, Partition Magic ) для виділення на диску для інсталяції нової ОС окремого розділу (partition) – суміжної області дискової пам'яті, що має певне позначення, найчастіше – у вигляді латинської букви.
ПК мають мережні адаптери (мережні карти) – пристрої для підключення до локальної мережі. Відповідно, ОС для персональних комп'ютерів мають у своєму составі драйвери мережних адаптерів і користувальницький інтерфейс для настроювання підключення комп'ютера до локальної мережі.
Паралельні комп'ютерні системи й особливості їх ОС.
Паралельні комп'ютерні системи – це мультипроцесорні системи з декількома безпосередньо взаємодіючими процесорами. Класичні приклади: із закордонних комп'ютерів - CRAY, з вітчизняних - "Ельбрус"; з більше сучасних - комп'ютери серії СКІФ. У цей час випускаються мультипроцесорні робочі станції - наприклад, купивши або одержавши в подарунок настільний комп'ютер, Ви можете виявити в його складі два або навіть чотири процесори. Відповідно, ОС повинна забезпечувати реконфігурацію такої системи, підключення нових процесорів або видалення процесорів із системи, розпаралелювання рішення завдання на декілька процесорів і синхронізацію роботи паралельних процесів.
Серед паралельних комп'ютерів виділяються тісно зв'язані (tightly coupled) системи, у яких процесори розділяють загальну пам'ять і таймер (такти); взаємодія між ними відбувається через загальну пам'ять.
Багатоядерніе (multi-core) комп'ютери – комп'ютерні системи, засновані на тісно зв'язаних один з одним процесорах ( ядрах ), що перебувають в одному кристалі, що розділяють асоціативну пам'ять (кэш) другого рівня й працюючих на загальній пам'яті.
Переваги паралельної комп'ютерної системи:
Поліпшена продуктивність ( throughput ) – очевидно, що распараллеливание алгоритму рішення завдання може дозволити зменшити сумарний час її рішення;
Економічність – у паралельній системі ОС може доручити частина роботи іншому процесору або ядру;
Підвищена надійність – при збої або відмові одного із процесорів ОС може перемкнути обчислення на інший процесор;
"Дружнє" до користувача зниження продуктивності (graceful degradation) – якщо один із процесорів відмовив і виведений з конфігурації, користувач, при правильній організації комп'ютера й ОС, може цього навіть не відчути
Стійкість до помилок (fail-soft system) – стабільна робота багатопроцессорной системи при помилці в апаратурах або в програмі.
Симетричні й асиметричні мультипроцесорні системи
Симетрична мультипроцесорна система - symmetric multiprocessing (SMP) – це багатопроцессорная комп'ютерна система, всі процесори якої рівноправні й використають ту саму копію ОС. Операційна система при цьому може виконуватися на будь-якому процесорі. У такій системі будь-якому вільному процесору може бути доручене будь-яке завдання. Всі процесори використають загальну пам'ять і загальні дискові ресурси. Кілька процесів (або потоків) можуть виконуватися одночасно без істотного порушення продуктивності. Більшість сучасних ОС підтримують архітектуру SMP. Після інсталяції ОС (наприклад, Linux) на симетричну мультипроцесорну систему користувач може помітити в меню boot loader, що фактично на його комп'ютер установилася не одна, а дві версії ОС – з підтримкою SMP і без неї.
Асиметрична мультипроцесорна система (asymmetric multiprocessing) – це багатопроцессорная комп'ютерна система, у якій процесори спеціалізовані за своїми функціями. Кожному процесору дається специфічне завдання; головний процесор (master processor) планує роботу підлеглих процесорів (slave processors).У такій системі ОС, як правило, виконується на одному певному, закріпленому за нею, центральному процесорі. Подібна архітектура більше типова для дуже великих систем. Приклад – система "Ельбрус", що мала у своєму составі, залежно від конфігурації, від одного до 10 центральних процесорів, від одного до чотирьох спеціалізованих процесорів вводу-виводу (ПВВ), від одного до чотирьох процесорів передачі даних (ППД).
Схема організації SMP-архітектури комп'ютерів наведена на рис. 3.1.
Рис. 3.1. Схема організації SMP-архітектури комп'ютерів
Розподілені комп'ютерні системи й особливості їх ОС
У розподіленій системі (distributed system) обчислення розподілені між декількома фізичними процесорами (комп'ютерами), об'єднаними між собою в мережу.
Слабко зв'язана система (loosely coupled system) – розподілена комп'ютерна система, у якій кожен процесор має свою локальну пам'ять, а різні процесори взаємодіють між собою через лінії зв'язку – високошвидкісні шини, телефонні лінії, бездротовий зв'язок (Wi-Fi, EVDO, Wi-Max й ін.).
Переваги розподілених систем:
Поділ (спільне використання) ресурсів: у розподіленій системі різні ресурси можуть зберігатися на різних комп'ютерах. Немає необхідності дублювати програми або дані, зберігаючи їхньої копії на декількох комп'ютерах.
Спільне завантаження (load sharing ): кожному комп'ютеру в розподіленій системі може бути доручене певне завдання, яке він виконує паралельно з виконанням іншими комп'ютерами своїх завдань.
Надійність: при відмові або збої одного з комп'ютерів розподіленої системи його завдання може бути перерозподілено іншому комп'ютеру, щоб збій у мінімальному ступені вплинув або зовсім не вплинув на підсумковий результат.
Зв'язок: у розподіленій системі всі комп'ютери зв'язані один з одним, так що, наприклад, при необхідності можливий віддалений вхід з одного комп'ютера на іншій з метою використання ресурсів потужнішого комп'ютера.
В розподіленій системі комп'ютери зв'язані в мережну інфраструктуру, що може бути:
локальною мережею (local area network - LAN);
глобальною або регіональною мережею (wide area network - WAN).
По своїй організації розподілені системи можуть бути клієнт-серверними (client-server) або одноранговими (peer-to-peer) системами. У клієнт-серверній системі певні комп'ютери відіграють роль серверів, а інші – роль клієнтів, що користуються їхніми послугами. Подібна організація розподілених систем найпоширеніша, і ми розглянемо її докладніше. В одноранговій розподіленій системі всі комп'ютери рівноправні.
Структура клієнт-серверної системи зображена на рис. 3.2.
Рис. 3.2. Структура клієнт-серверної системи
Види серверів у клієнт-серверних комп'ютерних системах
Клієнт-серверна архітектура розподілених систем досить широко поширена й підтримана операційними системами. Тому дуже важливо знати, які види й функції серверів пропонують сучасні розподілені системи.
Файл-сервер (file server) – комп'ютер і програмне забезпечення, що надають доступ до підмножини файлових систем, розташованих на дисках комп'ютера-сервера, іншим комп'ютерам локальної мережі (LAN). Приклад – серверне програмне забезпечення SAMBA (SMB – скорочення від Server Message Block) для ОС типу UNIX (Linux, FreeBSD, Solaris і т.д.), що забезпечує доступ з Windows-комп'ютерів локальної мережі до файлових систем UNIX-машин. Samba також реалізована для платформи Macintosh / MacOS.
Сервер додатків (application server) – комп'ютер і програмне забезпечення, що надає обчислювальні ресурси (пам'ять і процесор) і необхідне оточення для вилученого запуску певних класів (як правило, більших) додатків з інших комп'ютерів локальної мережі. Приклади серверів додатків - WebSphere (IBM), WebLogic (BEA) - найкращі з відомих серверів додатків, що працюють в Java Enterprise Edition (JEE).
Сервер баз даних (database server) – комп'ютер і програмне забезпечення, що надає доступ іншим комп'ютерам мережі до баз даних, розташованим на комп'ютері-сервері. Приклад: серверне програмне забезпечення для доступу до баз даних Microsoft SQL Server.
Веб-сервер (Web server) – комп'ютер і програмне забезпечення, що надає доступ клієнтам через WWW до Web-сторінок, розташованим на комп'ютері-сервері. Приклад: вільно розповсюджуваний Web-сервер Apache.
Прокси-сервер – комп'ютер і програмне забезпечення, що є частиною локальної мережі й підтримують ефективне звернення комп'ютерів до локальної мережі Інтернету, фільтрацію трафіка, захист від зовнішніх атак. Proxy-сервер звичайно убудований в операційну систему.
Сервер електронної пошти – комп'ютер і програмне забезпечення, що виконують відправлення, одержання й "розкладку" електронної пошти для комп'ютерів деякої локальної мережі. Можуть забезпечувати також криптование пошти (email encryption) – шифрування електронних листів перед відправленням адресатам з певного мережного домена (як правило, замовникові) і їхнє дешифрування після одержання від замовника.
Серверний бэк-энд (Server back-end) – група (пул) зв'язаних у локальну мережу серверних комп'ютерів, використовуваних замість одного сервера, з метою більшої надійності й надання більшого обсягу ресурсів. Інший термін, близький до цьому, - центр обробки даних (data center). Ці поняття особливо актуальні у зв'язку з усе більше широким поширенням хмарних обчислень, що є, із цього погляду, найбільш сучасною реалізацією клієнт-серверної схеми взаємодії.
Кластерні обчислювальні системи і їх ОС
Комп'ютерні кластери досить популярні для наукових обчислень. Комп'ютери в кластері, як правило, зв'язані між собою через швидку локальну мережу. Кластеризация дозволяє двом або більше системам використати загальну пам'ять. Кластеризация забезпечує високу надійність. Розрізняють комп'ютерні кластери двох видів:
асиметрична кластеризация (asymmetric clustering) – організація комп'ютерного кластера, при якій один комп'ютер виконує додаток, а інші простоюють;
cимметричная кластеризация (symmetric clustering) - організація комп'ютерного кластера, при якій всі машини кластера виконують одночасно різні частини одного великого додатка.
Розрізняють також:
кластери з високошвидкісним доступом (high-availability clusters) – комп'ютерні кластери, що забезпечують оптимальний доступ до ресурсів, надаваним комп'ютерами кластера, наприклад, до баз даних;
кластери з балансуванням завантаження (load-balancing clusters) – комп'ютерні кластери, які мають кілька вхідних комп'ютерів, що балансують запити (front-ends), і розподіляють завдання між комп'ютерами серверного back-end'а (серверної ферми).
Кластери часто використаються в університетах (наприклад, установлені на декількох факультетах Спбгу) і в дослідницьких центрах (наприклад, CERN, Швейцарія). Операційні системи для кластерів: Windows 2003 for clusters; Windows 2008 High-Performance Computing.
Системи й ОС реального часу
Системи реального часу часто використаються як керуючі пристрої для спеціальних додатків, - наприклад, для наукових експериментів; у медичних системах, пов'язаних із зображеннями; системах керування в промисловості; системах відображення (display); системах керування космічними польотами, АЕС й ін. Для таких систем характерні наявність і виконання чітке певні тимчасові обмеження (час реакції - response time; час наробітку на відмову й ін.).
Розрізняються системи реального часу видів hard real-time й soft real-time.
Hard real-time – системи – системи реального часу, у яких при порушенні тимчасових обмежень може виникнути критична помилка (відмова) керованого нею об'єкта. Приклади: система керування двигуном автомобіля; система керування кардіостимулятором. У таких системах вторинна пам'ять обмежена або відсутня; дані зберігаються в оперативній пам'яті (RAM) або постійному запам'ятовувальному пристрої (ПЗУ, ROM). При використанні таких систем можливі конфлікти із системами поділу часу, що не мають місця для ОС загального призначення. Виражаючись більше простою мовою, при роботі подібних систем не допускаються переривання; всі необхідні дані для основного циклу роботи системи повинні попередньо бути завантажені в память; процес, що виконує код такої системи, не повинен піддаватися відкачці на диск. ОС для таких систем звичайно спрощені, замість віртуальної пам'яті виділяється фізична, всі інші види віртуалізації ресурсів виключені. Популярною практикою розробки ОС реального часу є практика розробки таких ОС на основі відкритих вихідних кодів ОС загального призначення шляхом "відсікання всього зайвого". Однак при цьому слід дотримуватися обережності.
Soft real-time – системи – системи реального часу, у яких порушення тимчасових обмежень не приводить до відмови керованого нею об'єкта. Звичайно це системи керування декількома взаємозалежними системами з ситуацією, що постійно змінюється. Приклад - система планувань рейсів на комерційних авіалініях .У випадку якої-небудь затримки в роботі такої системи, у найгіршому разі, пасажирам деяких рейсів прийдеться небагато почекати в аеропорті, але ніяких фатальних наслідків не буде. Подібні системи мають обмежену корисність для промислових систем керування. Вони також корисні в сучасних додатках (наприклад, для мультимедиа й віртуальної реальності), що вимагають розвинених можливостей ОС.
Кишенькові комп'ютери (handhelds) і їх ОС
До даного класу пристроїв, як ми вже відзначали, ставляться кишенькові персональні комп'ютери (КПК), або Personal Digital Assistants (PDA), і мобільні телефони. Особливості й проблеми даного класу комп'ютерів наступні:
обмежений обсяг пам'яті;
відносно повільні процесори: для мобільного пристрою типове очікування виконання найпростішої команди протягом декількох секунд, що незручно;
маленький розмір екрана моніторів (дисплеїв), звідси – необхідність у спеціалізованому програмному забезпеченні
невисока швидкість зв'язку через Інтернет: наприклад, GPRS-модем мобільного телефону забезпечує зв'язок приблизно зі швидкістю dial-up - 3-5 кілобайт у секунду;
зв'язок для передачі даних здійснюється через Bluetooth або IrDA (причому останній часто відсутній); є не всі необхідні порти: наприклад, часто в мобільних пристроях відсутній порт USB, тобто для них не можна використати "флэшки", що досить незручно, і доводиться використовувати спеціальні зверхмініатюрні диски типу SmartMedia, для яких у настільних комп'ютерах не завжди є адаптери для читання.
Проте, сучасні засоби комунікації (наприклад, Wi-Fi) і сумісні з персональними комп'ютерами порти й зовнішні модулі пам'яті починають використатися й на кишенькових і мобільних пристроях.
В операційних системах й іншому системному програмному забезпеченні для кишенькових і мобільних пристроїв доводиться враховувати всі ці обмеження, зокрема, обмежений обсяг пам'яті.
Хмарні обчислення й ОС для хмарних обчислень
Хмарні обчислення ( сloud computing ) є одним з найбільш популярних напрямків розвитку ІТ. "Хмара" (cloud) – це вже десятки років використовувана метафора для зображення сервісу, наданого через Інтернет або іншу комунікаційну мережу (наприклад, через ATM-мережу). Хмарні обчислення – модель обчислень, заснована на динамічно масштабованих (scalable) і віртуалізованих ресурсах (даних, додатках, ОС й ін.), які доступні й використовуються як сервіс через Інтернет і реалізуються за допомогою високопродуктивних центрів обробки даних (data centers)
Недолік хмарних обчислень у тім, що користувач виявляється повністю залежним від використовуваної їм "хмари" (у якому доступні використовувані їм дані й програми) і не може управляти не тільки роботою "хмарних" комп'ютерів, але навіть резервним копіюванням своїх даних. У зв'язку із цим виникає цілий ряд важливих питань про безпеку хмарних обчислень, збереженні конфіденційності користувальницьких даних і т.д.; далеко не всі з них на даний момент вирішені.
Серйозною проблемою організації хмарних обчислень із погляду апаратури центрів обробки даних є економія електроенергії й проблема розподілу завантаження, тому що хмарні обчислення в кожному центрі обробки даних мають (або в найближчому майбутньому будуть мати) мільйони віддалених користувачів.
Найбільш популярна "хмарна" платформа - Microsoft Windows Azure (хмарна ОС) і Microsoft Azure Services Platform (реалізована на основі Microsoft.NET). Windows Azure можна розглядати як "ОС у хмарі". Користувачеві немає необхідності турбуватися про її інсталяцію на його комп'ютері, що може не мати для цього необхідних ресурсів. Усе, що потрібно, це мати Web-браузер і мінімальний пакет надбудов (plug-ins) для запуску й використання через браузер хмарних сервісів.
У цей час всі великі компанії (Microsoft, IBM, HP, Dell, Oracle й ін.) розробляють свої системи хмарних обчислень; є тенденція до інтеграції цих корпоративних систем у єдину доступну користувачеві "хмару".
Лекція 4 Архітектура комп’ютерної системи
План
функціонування комп'ютерної системи
архітектура вводу-виводу
структура пам'яті
ієрархія пам'яті
загальна архітектура системи.
Архітектура комп'ютерної системи
Рис. 4.1. Архітектура комп'ютерної системи.
Комп'ютерна система має модульну структуру. Для кожного пристрою (пам'ять, зовнішні пристрої) у системі є спеціальний пристрій керування (інакше кажучи, спеціальний процесор), названий контролером пристрою. Всі модулі (центральний процесор, пам'ять і контролер пам'яті, зовнішні пристрої і їхні контролери) з'єднані між собою системною шиною (system bus), через яку вони обмінюються сигналами. Роботою кожного контролера управляє драйвер - спеціалізована низькорівнева програма, що є частиною ОС.
От типова структура сучасної настільної або портативної комп'ютерної системи, із вказівкою найпоширеніших типів пристроїв й їхніх характеристик.
Центральний процесор – пристрій, що виконує команди (instructions) комп'ютерної системи. У сучасних комп'ютерах, як правило, він є багатоядерним, тобто має у своєму складі від 2 до 32 ядер (копій) процесора, що паралельно працюють на загальній пам'яті, або гібридним, який складається із центрального й графічного процесорів. Продуктивність кожного ядра – 3 – 3.2 GHz. Помітимо, що під продуктивністю розуміється в цьому випадку тактова частота процесора (ядра) – час виконання їм однієї найпростішої машинної команди. Однак є й інші важливі фактори, що визначають загальну продуктивність системи, - тактова частота пам'яті й системної шини. Фактично підсумкову продуктивність системи можна оцінити по самій повільній із цих частин системи (звичайно це системна шина). Ці характеристики необхідно приймати в увагу при виборі й покупці комп'ютера.
Оперативна (основна) пам'ять, або просто пам'ять – пристрій, що зберігає оброблювані дані. Обсяг пам'яті - 1 - 16 гігабайт і більше; менший обсяг пам'яті використати не рекомендується, тому що це може привести до значного уповільнення системи. Тактова частота пам'яті - 667 MHz - 1.5 GHz.
Системна шина – пристрій, до якого приєднані всі модулі комп'ютера й через яке вони обмінюються сигналами, наприклад, при перериванні. Тактова частота шини – 1 – 1.5 GHz (це і є фактично якась сумарна продуктивність системи). Звичайно використовується шина типу PCI (Personal Computer Interface).До неї можуть бути приєднані процесор, пам'ять, диски, принтер, модем й інші зовнішні пристрої.
Порти – пристрою з розніманнями для підключення до комп'ютера зовнішніх пристроїв. Кожен порт має свій контролер (і, відповідно, свій драйвер).
Найчастіше використається порт USB (Universal Serial Bus), з характерним плоскими роз'ємами, розміром порядку 1 см, із зображенням тризубця. До портів USB можуть підключатися більшість видів пристроїв, причому для цього не потрібно попередньо відключати комп'ютер і підключати пристрій, що дуже зручно. Є кілька стандартів USB з різною швидкодією. Найпоширеніший нині стандарт USB 2.0, що забезпечує швидкодію порту 240 – 260 мегабіт у секунду. Для порівняння, що попередній стандарт – USB 1.0 – забезпечував лише 10 – 12 мегабіт у секунду. Новітній стандарт USB 3.0, реалізація якого тільки почалася, забезпечить швидкодію не менш 1 гігабіта в секунду. До порту USB можна підключати клавіатуру, мишу, принтери, сканери, зовнішні жорсткі диски, флэшки й навіть TV-тюнери - пристрою для прийому телевізійного сигналу з антени й показу телевізійного зображення на комп'ютері.
Порти COM (communication ports) – порти для підключення різних комунікаційних пристроїв, наприклад, модемів – пристроїв для виходу в Інтернет і передачі інформації з аналогового або цифрової телефонної лінії. Більше стара назва стандарту COM-порту – RS-232. У комп'ютерах 10-15 – літньої давнини до COM-порту часто підключалася мишка (зараз вона, зрозуміло, підключається через USB). COM-порт інакше називають послідовним портом (serial port), тому що, з погляду ОС і драйверів, COM-порт – це символьний пристрій послідовної дії.
Порт LPT (від line printer), або паралельний порт – це нині вже застарілий вид порту для підключення принтера або сканера. Всі нові моделі принтерів і сканерів працюють через USB-порти.
Порти SCSI й SCSI-пристрої. SCSI (Small Computer System Interface; вимовляється " скАзи", з наголосом на першому складі) – інтерфейс, адаптери й порти для підключення широкого спектра зовнішніх пристроїв – жорстких дисків, CD-ROM / DVD-ROM, сканерів й ін. Стандарт SCSI був запропонований на початку 1980-х рр. й одержав широке поширення, завдяки фірмі Sun, що широко використала його у своїх робочих станціях. Характерною зручною можливістю SCSI є можливість підключення до одного SCSI-порту гірлянди (ланцюжка) SCSI-пристроїв (до 10), кожний з яких має унікальний для даного з'єднання SCSI ID – число від 0 до 9, установлюване звичайно на задній панелі SCSI-пристрою. Перевага SCSI, крім можливості використання гірлянд пристроїв, у його швидкодії, а також надійності. Ранні моделі SCSI мали швидкість обміну інформацією до 10-12 мегабіт у секунду, зараз - 240-250 мегабіт у секунду.
Порт VGA (Video Graphic Adapter) використовується для підключення монітора (дисплея), керованого графічним контролером (процесором).
IEEE 1394 (FireWire) – порти для підключення цифрових відеокамер або фотоапаратів. Характерна риса – невеликий блискучий плоский роз'єм шириною 3-5 мм (є два його стандарти). Порт працює в дуплексному режимі, тобто дозволяє управляти не тільки вводом інформації з камери в комп'ютер, але й установками самої камери (наприклад, перемотуванням стрічки) за допомогою комп'ютерної програми (наприклад, Windows Movie Maker). За допомогою такого ж порту може бути підключений також телевізор, що має інтерфейс FireWire. Характерною рисою сучасних комп'ютерів є те, що FireWire-порти монтуються прямо на материнській платі (motherboard) – основній друкованій платі комп'ютера, на якій змонтовані процесор і пам'ять, - настільки велике значення надають виробники комп'ютерів портам для обміну мультимедийной інформацією. У таких випадках у технічних характеристиках комп'ютера звичайно вказується: "FireWire on board (на борті)".Читачам рекомендується не плутати FireWire з Wi-Fi – стандартом швидкого бездротового зв'язку; ці скорочення забавно нагадують один одного через прихильність американців до абревіатур в "дитячому стилі".
HDMI (High Definition Multimedia Interface) – інтерфейс і порт, що дозволяє підключити до комп'ютера телевізор або інше відеоустаткування, що забезпечує найкращу якість відтворення (HD – High Definition). Роз'їм HDMI нагадує роз'їм USB. HDMI-порт входить у комплектацію всіх сучасних портативних комп'ютерів.
Bluetooth – пристрою для бездротового підключення (за допомогою радіозв'язку) до комп'ютера мобільних телефонів, органайзеров, а також навушників, плейеров і багатьох інших корисних пристроїв. Зручність Bluetooth у тім, що комп'ютер і телефон залишаються з'єднаними, навіть якщо відійти від комп'ютера з телефоном на деяку відстань (наприклад, в іншу кімнату), не більше 10-15 метрів (Bluetooth 2.0). Новий стандарт Bluetooth 3.0 забезпечує взаємодію на відстані 200-250 м. Звичайно портативні комп'ютери комплектуються убудованими адаптерами Bluetooth, або можна придбати адаптер Bluetooth, що підключає через USB. Недолік Bluetooth - відносно маленька сумарна швидкість передачі інформації. Наприклад, при пересиланні на комп'ютер через Bluetooth з мобільного телефону Nokia 3230 цифрової фотографії обсягом 500 кілобайт потрібно чекати порядку 10 - 15 секунд.
Інфрачервоний порт (IrDA) – порт для підключення ноутбука до мобільного телефону (або двох ноутбуків друг до друга) через інфрачервоний зв'язок. Незручність портів IrDA – необхідність установки двох пристроїв, що з'єднують, поруч, на відстані 20-30 см друг від друга, без фізичних перешкод між ними. Швидкість передачі інформації – 10-12 мегабіт у секунду. Сучасні ноутбуки вже не комплектуються портами IrDA.
Маються також мережні пристрої – порти й адаптери – для підключення комп'ютера до локальної мережі.