Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Конспект лекцій для студентів напряму 050202 «Автоматизація та комп'ютерно-інтегровані технології» усіх форм навчання

Конспект лекцій для студентів напряму 050202 «Автоматизація та комп'ютерно-інтегровані технології» усіх форм навчання




Сторінка1/18
Дата конвертації13.03.2017
Розмір1.83 Mb.
ТипКонспект
  1   2   3   4   5   6   7   8   9   ...   18

Міністерство освіти і науки України
опис : lntu_logo_20x20_cm new! (1)

Основи операційних систем

Конспект лекцій

для студентів напряму

6.050202 «Автоматизація та комп'ютерно-інтегровані технології»

усіх форм навчання


Луцьк 2016


УДК 004 (07)

К54


До друку ________________ Голова Навчально-методичної ради Луцького НТУ.

(підпис)


Електронна копія друкованого видання передана для внесення в репозитарій Луцького НТУ ________________ директор бібліотеки.

(підпис)
Затверджено Навчально-методичною радою Луцького НТУ,

протокол № _ від _______20 ____ року.
Рекомендовано до видання Навчально-методичною радою факультету комп’ютерних наук і інформаційних технологій Луцького НТУ,

протокол № ___ від _____ 20 ___ року.

Інформаці́йні техноло́гії, ІТ (використовується також загальніший / вищий за ієрархією термін інформаційно-комунікаційні технології (Information and Communication Technologies, ICT) - сукупність методів, виробничих процесів і програмно-технічних засобів, інтегрованих з метою збирання, опрацювання, зберігання, розповсюдження, показу і використання інформації в інтересах її користувачів.


Голова навчально-методичної ради факультету КНІТ________________________________

(підпис)


Розглянуто і схвалено на засіданні кафедри автоматизованого управління виробничими процесами Луцького НТУ,

протокол № від квітня 2016 року.

Виробни́чий проце́с (англ. manufacturing_process) - систематичне та цілеспрямоване змінювання в часі та просторі кількісних та якісних характеристик засобів виробництва і робочої сили, для отримання готової продукції, з вихідної сировини, згідно із заданою програмою.


Укладачі: _____________ Р.Я. Грудецький, асистент Луцького НТУ

(підпис)


Рецензент: ___________ Р.М. Полінкевич, к.т.н., доцент Луцького НТУ

(підпис)


Відповідальний

за випуск: ___________ Р.Я. Грудецький, асистент Луцького НТУ

(підпис)

Основи операційних систем [Текс]: К54 Конспект лекцій для студентів напряму 6.050202 «Автоматизація та комп'ютерно-інтегровані технології» усіх форм навчання / уклад. Р.Я. Грудецький. – Луцьк: Луцький НТУ, 2016. – 215 с.

Видання містить конспект, використану літературу.

Призначене для студентів напряму 6.050202 «Автоматизація та комп'ютерно-інтегровані технології» усіх форм навчання.

 Р.Я. Грудецький

ЛЕКЦІЯ 1. ВВЕДЕННЯ В ОПЕРАЦІЙНІ СИСТЕМИ. КЛАСИФІКАЦІЯ ОС


Анотація
Поняття операційної системи. Еволюція розвитку операційних систем. Функції операційних систем і підходи до побудови операційних систем. Класифікація операційних систем. Особливості алгоритмів керування ресурсами. Особливості апаратних платформ. Особливості областей використання. Особливості методів побудови операційних систем.

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

Аспект (лат. aspectus - вигляд, погляд) - поняття філософії (онтології, теорії пізнання). У філософії аспект розглядається


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

По-друге, обчислювальна система складається з програмного забезпечення. Все програмне забезпечення прийнято ділити на дві частини: прикладне і системне. До прикладного програмного забезпечення, як правило, відносяться різноманітні банківські та інші бізнес-програми, ігри, текстові процесори і т. п.

Те́кстовий проце́сор (англ. word processor) - комп'ютерна програма-застосунок, що дозволяє виконувати операції набору, редагування та оформлення тексту.
Застосунок, застосовна програма, прикладна програма (англ. application, application software; пол. aplikacja; рос. приложение, прикладная программа) - користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.
Під системним програмним забезпеченням зазвичай розуміють програми, що сприяють функціонуванню і розробці прикладних програм. Треба сказати, що поділ на прикладне та системне програмне забезпечення є почасти умовною і залежить від того, хто здійснює такий розподіл. Так, звичайний користувач, недосвідчений в програмуванні, може вважати Microsoft Word системною програмою, а, з точки зору програміста, це - додаток.
Microsoft Word (повна назва Microsoft Office Word, часто вживаються - MS Word, WinWord або просто Word) - текстовий процесор, що випускається фірмою Майкрософт, входить до складу офісного пакету «Microsoft Office».
Компілятор мови Сі для звичайного програміста - системна програма, а для системного - прикладна. Незважаючи на цю нечітку грань, дану ситуацію можна відобразити у вигляді послідовності шарів (див. рис. 1.1), виділивши окремо найбільш загальну частину системного програмного забезпечення - операційну систему.



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

Рис. 1.1 - Шари програмного забезпечення комп'ютерної системи
1.2 Визначення операційної системи


  1. Операційна система як віртуальна машина

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

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

Інформаці́йний про́стір (англ. Information space) - сукупність результатів семантичної діяльності людства.
Файл можна відкривати для читання або запису, використовувати для отримання або скидання інформації, а потім закривати. Це концептуально простіше, ніж піклуватися про деталі переміщення головок дисків або організації роботи мотора. Аналогічним чином, за допомогою простих і ясних абстракцій, ховаються від програміста всі непотрібні подробиці організації переривань, роботи таймера, керування пам'яттю й т.д. Більше того, на сучасних обчислювальних комплексах можна створити ілюзію необмеженого розміру оперативної пам'яті й числа процесорів. Всім цим займається операційна система. Таким чином, операційна система представляється користувачеві віртуальною машиною, з якої простіше мати справу, чим безпосередньо з устаткуванням комп'ютера.
Віртуальна машина - модель обчислювальної машини, створеної шляхом віртуалізації обчислювальних ресурсів: процесора, оперативної пам'яті, пристроїв зберігання та вводу і виводу інформації.



  1. Операційна система як менеджер ресурсів

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

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

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

  1. Операційна система як постійно функціонуюче ядро

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

1. Перший період (1945-1955 рр..). Лампові машини. Операційних систем немає. Перші кроки в області розробки електронних обчислювальних машин були зроблені в кінці Другої світової війни.

Приро́дний добі́р (або відбір) - виживання найбільш пристосованих у боротьбі за існування організмів, здатних залишити численне потомство; процес, завдяки якому сприятливі спадкові характеристики стають загальнішими в наступних поколіннях популяції організмів, що розмножуються, а несприятливі спадкові характеристики стають менш загальними.
Дру́га світова́ війна́ - наймасштабніша світова війна в історії людства. Почалася 1 вересня 1939 і тривала 2 194 дні до 2 вересня 1945, коли на борту лінкора «Міссурі» підписано капітуляцію Японської імперії перед союзними державами.
Електро́нна обчи́слювальна маши́на (скорочено ЕОМ) - загальна назва для обчислювальних машин, що є електронними (починаючи з перших лампових машин, включаючи напівпровідникові тощо) на відміну від електромеханічних (на електричних реле тощо) та механічних обчислювальних машин.
У середині 40-х були створені перші лампові обчислювальні пристрої і з'явився принцип програми, що зберігається в пам'яті машини (John Von Neumann, червень 1945 р.). У той час одна і та ж група людей брала участь і в проектуванні, і в експлуатації, і в програмуванні обчислювальної машини. Це була радше науково-дослідна робота в галузі обчислювальної техніки, а не регулярне використання комп'ютерів як інструмент вирішення будь-яких практичних завдань з інших прикладних областей. Програмування здійснювалося виключно на машинній мові. Про операційних системах не було й мови, всі завдання організації обчислювального процесу вирішувалися вручну кожним програмістом з пульта керування. За пультом міг перебувати тільки один користувач. Програма завантажувалася в пам'ять машини в кращому випадку з колоди перфокарт, а зазвичай за допомогою панелі перемикачів.

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

Нала́годження програ́ми , в мережі рідше знева́дження (англ. debugging) - методичний процес пошуку та зменшення числа помилок або дефектів у комп'ютерній програмі або електронному обладнанні з метою отримання очікуваної поведінки.
В кінці цього періоду з'являється перше системне програмне забезпечення: у 1951-1952 рр.. виникають прообрази перших компіляторів з символічних мов (Fortran та ін), а в 1954 р. Nat Rochester розробляє Асемблер для IBM-701.

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

2. Другий період (1955 р. – початок 60-х). Комп'ютери на основі транзисторів. Пакетні операційні системи. З середини 50-х років почався наступний період в еволюції обчислювальної техніки, пов'язаний з появою нової технічної бази - напівпровідникових елементів. Застосування транзисторів замість часто перегорають електронних ламп призвело до підвищення надійності комп'ютерів.

Електрова́куумна ла́мпа або електро́нна ла́мпа (ЕЛ) - електровакуумний прилад, що призначений для різноманітних перетворень електричних величин шляхом утворення потоку електронів та його керуванням.
Тепер машини можуть безперервно працювати достатньо довго, щоб на них можна було покласти виконання практично важливих задач. Знижується споживання обчислювальними машинами електроенергії, удосконалюються системи охолодження. Розміри комп'ютерів зменшилися. Знизилася вартість експлуатації та обслуговування обчислювальної техніки. Почалося використання ЕОМ комерційними фірмами. Одночасно спостерігається бурхливий розвиток алгоритмічних мов (LISP, COBOL, ALGOL-60, PL-1 і т.д.). З'являються перші справжні компілятори, редактори зв'язків, бібліотеки математичних і службових підпрограм. Спрощується процес програмування. Пропадає необхідність звалювати на одних і тих же людей весь процес розробки і використання комп'ютерів. Саме в цей період відбувається поділ персоналу на програмістів і операторів, фахівців з експлуатації та розробників обчислювальних машин.

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

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

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

3. Третій період (початок 60-х - 1980 р.). Комп'ютери на основі інтегральних мікросхем. Перші багатозадачні ОС. Наступний важливий період розвитку обчислювальних машин відноситься до початку 60-х - 1980 р. У цей час у технічній базі відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем. Обчислювальна техніка стає більш надійною і дешевою. Зростає складність і кількість завдань, що вирішуються комп'ютерами. Підвищується продуктивність процесорів.

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

На даний час як магнітні носії систем і пристроїв ЦМЗ найчастіше використовуються магнітні стрічки і диски. В системах ЦМЗ, що застосовуються в інформаційно-вимірювальній техніці, в основному використовуються магнітні стрічки.
Коли в процесі виконання завдання потрібно введення даних, вони читаються з диска. Точно так само вихідна інформація спочатку копіюється в системний буфер і записується на стрічку або диск, а друкується тільки після завершення завдання. Спочатку дійсні операції вводу-виводу здійснювалися в режимі off-line, тобто з використанням інших, більш простих, що окремо стоять комп'ютерів. Надалі вони починають виконуватися на тому ж комп'ютері, який виробляє обчислення, тобто в режимі on-line. Такий прийом отримує назву spooling (скорочення від Simultaneous Peripheral Operation On Line) або підкачки-відкачки даних. Введення техніки підкачки-відкачки в пакетні системи дозволило поєднати реальні операції введення-виведення одного завдання з виконанням іншого завдання, але зажадало розробки апарату переривань для сповіщення процесора про закінчення цих операцій.

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

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

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

Паралельно внутрішньої еволюції обчислювальних систем відбувалася і зовнішня їх еволюція. До початку цього періоду обчислювальні комплекси були, як правило, несумісні. Кожен мав власну операційну систему, свою систему команд і т. д. В результаті програму, успішно працює на одному типі машин, необхідно було повністю переписувати і заново налагоджувати для виконання на комп'ютерах іншого типу. На початку третього періоду з'явилася ідея створення сімейств програмно сумісних машин, що працюють під управлінням однієї і тієї ж операційної системи. Першим сімейством програмно сумісних комп'ютерів, побудованих на інтегральних мікросхемах, стала серія машин IBM/360. Розроблене на початку 60-х років, це сімейство значно перевершувало машини другого покоління за критерієм ціна / продуктивність. За ним пішла лінія комп'ютерів PDP, несумісних з лінією IBM, і найкращою моделлю в ній стала PDP-11.

Сила "однієї сім'ї" була одночасно і її слабкістю. Широкі можливості цієї концепції (наявність всіх моделей: від міні-комп'ютерів до гігантських машин; достаток різноманітної периферії; різне оточення; різні користувачі) породжували складну і громіздку операційну систему. Мільйони строчок Асемблера, написані тисячами програмістів, містили безліч помилок, що викликало безперервний потік публікацій про них і спроб виправлення. Тільки в операційній системі OS/360 містилося більше 1000 відомих помилок. Тим не менш ідея стандартизації операційних систем була широко впроваджена в свідомість користувачів і в подальшому отримала активний розвиток.

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

Мікросхе́ма, інтегральна мікросхема (англ. integrated circuit) - електронна схема, що реалізована у вигляді напівпровідникового кристалу (чипу) та виконує певну функцію. Винайдена у 1958 році американськими винахідниками Джеком Кілбі та Робертом Нойсом.
У ці роки відбулося різке зростання ступеня інтеграції і зниження вартості мікросхем. Комп'ютер, не відрізняється по архітектурі від PDP-11, по ціні і простоті експлуатації став доступний окремій людині, а не відділу підприємства або університету. Настала ера персональних комп'ютерів. Спочатку персональні комп'ютери призначалися для використання одним користувачем в Однопрограмних режимі, що спричинило за собою деградацію архітектури цих ЕОМ і їх операційних систем (зокрема, пропала необхідність захисту файлів і пам'яті, планування завдань і т. п.).

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

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

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



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

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

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

1. Планування завдань і використання процесора.

2. Забезпечення програм засобами комунікації та синхронізації.

3. Управління пам'яттю.

4. Управління файловою системою.

5. Управління введенням-виводом.

6. Забезпечення безпеки

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


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

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

  1   2   3   4   5   6   7   8   9   ...   18



  • Основи операційних систем [Текс]: К54