Керування процесами й потоками
AVP
ADINF
DRWEB
Один з кращих антивірусів із сильним алгоритмом знаходження вірусів. DrWeb, досліджуючи програми на наявність фрагментів коду, характерних для вірусів, дозволяє знайти майже 90% невідомих вірусів. При завантаженні програми в першу чергу DrWeb перевіряє самого себе на цілісність, після чого тестує оперативну пам'ять. Програма може працювати у діалоговому режимі, має дуже зручний інтерфейс користувача, який можна настроювати.
Антивірус-ревізор диска ADINF (Avanced DiskINFoscope) дозволяє знаходити та знищувати, як існуючі звичайні, stealth- і поліморфні віруси, так і зовсім нові.
ADINF завантажується автоматично у разі вмикання комп'ютера і контролює boot-сектор і файли на диску (дата й час створення, довжина, контрольна сума), виводячи повідомлення про їх зміни. Завдяки тому, що ADINF здійснює дискові операції в обхід операційної системи, звертаючись до функцій BIOS, досягаються не тільки можливість виявлення активних stealth-вірусів на рівні переривання Int 13h, але і висока швидкість перевірки диску.
Антивірус AVP (AntiVirus Program) відноситься до поліфагів, у процесі роботи перевіряє оперативну пам'ять, файли, в тому числі архівні, на гнучких, локальних, мережних і CD-ROM дисках, а також системні структури даних, такі як завантажувальний сектор, таблицю розділів і т.д. Програма має евристичний аналізатор, котрий, за твердженнями розробників антивірусу здатний знаходити майже 80% усіх вірусів.
Крім того, програма AVP здійснює контроль файлових операцій у системі у фоновому режимі, виявляє вірус до моменту реального зараження системи, а також визначає невідомі віруси за допомогою евристичного модуля.
Комп’ютерна графіка
Растрова графіка
Представлення даних на моніторі у графічному виді вперше було реалізовано всередині 50-х років для великих ЕОМ, що застосовувались в наукових і військових дослідженнях. Тепер, графічний спосіб відображення даних став приналежністю великого числа комп'ютерних систем. Графічний інтерфейс є необхідним для програмного забезпечення різного класу, починаючи з операційних систем.
Комп'ютерна графіка, це спеціальна ділянка інформатики, що вивчає методи і засоби створення та обробки зображень за допомогою програмно-апаратних обчислювальних комплексів.
Комп'ютерна графіка охоплює всі види та форми представлення зображень, як на екрані монітора, так і на зовнішньому носії (папір, плівка, тощо). Комп'ютерна графіка застосовується для візуалізації даних у різних сферах людської діяльності:
· медицина - комп'ютерна томографія;
· наука - склад речовин, векторні поля графіки процесів;
· дизайн - реклама, поліграфія, моделювання.
В залежності від способу формування зображень, комп'ютерну графіку можна поділити на:
· растрову;
· векторну;
· фрактальну;
· тривимірну.
За способами представлення кольорів комп'ютерна графіка поділяється на:
· чорно-білу;
· кольорову.
За спеціалізацією в різних галузях комп'ютерна графіка є:
· інженерною;
· науковою;
· web-графікою;
· комп'ютерною поліграфією.
На перетині комп'ютерних, телевізійних та кінотехнологій стрімко розвивається комп'ютерна графіка і анімація. Значне місце посідає графіка для комп'ютерних ігор. Обіг ігрових програм складає десятки мільярдів доларів і стимулює розвиток анімації.
Структура та методи комп'ютерної графіки засновані на досягненнях фундаментальних та прикладних наук: математики, фізики, хімії, біології, статистики, програмування тощо. Це стосується, як програмних, так і апаратних засобів створення та обробки зображень. Тому комп'ютерна графіка є однією з найважливіших ділянок інформатики та стимулює розвиток комп'ютерної індустрії.
Растрова графіка
Застосовується у випадках, коли графічний об'єкт представлено у вигляді комбінації точок (пікселів), яким притаманні свій колір та яскравість і які певним чином розташовані у координатній сітці. Такий підхід є ефективним у випадку, коли графічне зображення має багато напівтонів і інформація про колір важливіша за інформацію про форму (фотографії та поліграфічні зображення). При редагуванні растрових об'єктів, користувач змінює колір точок, а не форми ліній. Растрова графіка залежить від оптичної роздільчості, оскільки її об'єкти описуються точками у координатній сітці певного розміру. Роздільчість вказує кількість точок на одиницю довжини.
Потрібно розрізняти:
· роздільчість оригінала;
· роздільчість екранного зображення;
· роздільчість друкованого зображення.
Роздільчість оригінала. Вимірюється у точках на дюйм (dpi - dots per inch) і залежить від вимог до якості зображення та розміру файлу, способу оцифрування або методу створення готового зображення, вибраного формату файлу та інших параметрів. Зрештою, чим вище вимоги до якості, тим більша має бути роздільчість.
Роздільчисть екранного зображення. Для екранного зображення, елементарну точку растра називають пікселом. Розмір піксела коливається в залежності від вибраної екранної роздільчості, роздільчості оригіналу й масштабу відображення. Монітори можуть забезпечити роздільчість 640х480, 800х600, 1024х768, 1600х1200 і вище. Відстань між сусідніми точками люмінофора в якісному моніторі складає 0,22-0,25 мм. Для екранного зображення достатньо роздільчості 72 dpi.
Роздільчість друкованого зображення. Розмір точки растрового зображення залежить від застосованого методу та параметрів растрування оригіналу. При раструванні на оригінал накладається сітка ліній, комірки якої утворюють елемент растра. Частота сітки растра вимірюється числом ліній на дюйм (lpi - lines per inch) і називається лінєатурою. Розмір точки растра розраховується для кожного елементу і залежить від інтенсивності тону в цій комірці. Якщо у растрі є абсолютно чорний колір, тоді розмір точки растра співпадає з розміром елементу растра (100% заповненість). Для абсолютно білого кольору заповненість складає 0%. На практиці заповненість коливається у межах 3-98%.
Всі точки растру мають однакову оптичну щільність, що наближується до абсолютно чорного кольору. Ілюзія темнішого кольору створюється за рахунок збільшення розмірів точок і скорочення проміжкового поля між ними при однаковій відстані між центрами елементів растра. Такий метод називається растрування з амплітудною модуляцією.
При застосуванні методу з частотною модуляцією, інтенсивність тону регулюється зміною відстані між сусідніми точками однакового розміру, тобто в комірках растра з різною інтенсивністю тону знаходиться різне число точок. Зображення, растровані за частотно-модульним методом, якісніші, оскільки розмір точок мінімальний.
При методі стохастичного растрування, враховується число точок, необхідне для відображення потрібної інтенсивності тону у комірці растра. Згодом, ці точки розташовуються всередині комірки на відстані, що підраховується квазівипадковим методом. Регулярна структура растра всередині комірки й у зображення відсутня. Такий спосіб потребує великих трат обчислювальних ресурсів і високої точності поліграфічного устаткування, тому застосовується лише для художніх робіт.
Глибина кольору. Характеризує максимальне число кольорів, які використані у зображенні. Існує декілька типів зображень із різною глибиною кольору:
· чорно-білі;
· у відтінках сірого;
· з індексованими кольорами;
· повноколірні;
Чорно-білі зображення. На один піксел зображення відводиться 1 біт інформації - чорний та білий. Глибина кольору - 1 біт.
Зображення у відтінках сірого. Піксел сірого зображення кодується 8 бітами (1 байт). Глибина кольору - 8 біт, піксел може приймати 256 різних значень - від білого (255) до чорного (0 яскравості).
Зображення з індексованими кольорами. Перші кольорові монітори працювали з обмеженою колірною гамою (16, згодом 256 кольорів). Такі кольори називаються індексованими і кодуються 4 або 8 бітами у вигляді колірних таблиць. В такій таблиці всі кольори вже визначені і можна використовувати лише їх.
Повноколірні зображення. Глибина кольору не менше як 24 біти, що дає можливість відтворити понад 16 мільйонів відтінків. Повноколірні зображення називаються True Color (правдивий колір). Бітовий об'єм кожного піксела розподіляється по основних кольорах обраної колірної моделі, по 8 бітів на колір. Колірні складові організуються у вигляді каналів, спільне зображення каналів визначає колір зображення. Повноколірні зображення на відміну від вище розглянутих є багатоканальними і залежать від колірної моделі (RGB, CMY, CMYK, Lab, HBS), які різняться за глибиною кольорів і способом математичного опису кольорів.
Інтенсивність тону (світлота). Поділяється на 256 рівнів. Більше число градацій не сприймається людським оком і є надлишковим. Менша кількість погіршує сприйняття інформації (мінімальним є 150 рівнів). Для відтворення 256 рівнів тону достатньо мати розмір комірки растра 16х16 точок.
Розмір файлу. Засобами растрової графіки створюють та обробляють зображення, що потребують високої точності у передачі кольорів та напівтонів. Розміри файлів напряму зв'язані зі збільшенням роздільчості і можуть сягати десятки мегабайтів.
Масштабування растрових зображень. При збільшенні растрового зображення, можна спостерігати пікселізацію, тобто при масштабуванні збільшується розмір точок і стають помітними елементи растра. Для усунення цього, потрібно заздалегідь оцифрувати оригінал із роздільчістю, достатньої для якісного відтворення при масштабуванні. Або, при масштабуванні застосовують метод інтерполяції, коли при збільшенні зображення, додається необхідне число проміжкових точок.
Прикладні програми растрової графіки призначені для створення книжкових та журнальних ілюстрацій, обробки оцифрованих фотографій, слайдів, відеокадрів, кадрів мультиплікаційних фільмів. Найпопулярнішими прикладними програмами є продукти фірм
· Adobe - PhotoShop,
· Corel - PhotoPaint,
· Macromedia - FireWorks,
· Fractal Design - Painter,
· стандартний додаток у Windows - PaintBrush.
Програми растрової графіки можуть використовувати:
· художники-ілюстратори;
· художники-мультиплікатори;
· художники-дизайнери;
· фотографи та ретушери;
· поліграфісти;
· web-дизайнери;
· люба людина - вільний художник, із масою творчих ідей та потенціалу.
Переваги растрової графіки:
· простота автоматизованого вводу (оцифрування) зображень, фотографій, слайдів, рисунків за допомогою сканерів, відеокамер, цифрових фотоапаратів; · фотореалістичність. Можна отримувати різні ефекти, такі як туман, розмитість, тонко регулювати кольори, створювати глибину предметів.
Недоліки растрової графіки:
· складність управління окремими фрагментами зображення. Потрібно самостійно виділяти ділянку, що є складним процесом;
· растрове зображення має певну роздільчість і глибину представлення кольорів. Ці параметри можна змінювати лише у визначених межах і, як правило, із втратою якості;
· розмір файлу є пропорційним до площі зображення, роздільчості і типу зображення, і, переважно, при хорошій якості є великим.
Векторна та фрактальна графіка
Векторна графіка
На відміну від растрової графіки, у векторній графіці базовим елементом є лінія, яка описується математичною формулою. Таке представлення даних компактніше, але побудова об'єктів супроводжується неперервним перерахунком параметрів кривої у координати екранного або друкованого зображення. Лінія є елементарним об'єктом, якому притаманні певні особливості: форма, товщина, колір, тощо. Любий об'єкт (прямокутник, еліпс, текст і навіть пряма лінія) сприймається як криві лінії. Виключення складають лише імпортовані растрові об'єкти.
Векторні об'єкти завжди мають шлях, що визначає їх форму. Якщо шлях є замкненим, тобто кінцева точка співпадає з початковою, об'єкт має внутрішню ділянку, яка може бути заповненою кольором або іншими об'єктами. Всі шляхи містять дві компоненти: сегменти та вузли.
· Шлях уявляє собою маршрут, що з'єднує початкову та кінцеву точку.
· Сегмент - окрема частина шляху, може бути як прямою, так і кривою лінією.
· Вузол- початкова або кінцева точка сегмента.
Кожен елемент векторної графіки містить ці три основні елементи і дозволяє їх редагування.
Математичні основи векторної графіки
Різні об'єкти мають різні способи представлення.
· Точка. Об'єкт на площині представляється двома числами (х, у) відносно початку координат.
· Пряма лінія. Їй відповідає рівняння у=kx+b. Вказавши параметри k та b можна створити пряму лінію у відомій системі координат.
· Сегмент прямої. Для опису потрібно додатково вказати параметри х1 та х2, відповідно початку та кінця відрізку.
· Крива лінія ІІ порядку. До них відносяться еліпси, круги, параболи, гіперболи тощо. Пряма лінія є також випадком кривої ІІ порядку. Крива ІІ порядку не має точок перегину і описується рівнянням а0х2+а1у2+а2ху+а3х+а4у+,а5=0. Для побудови відрізка кривої додатково потрібні ще два параметри початку та кінця відрізку.
· Крива лінія ІІІ порядку. Важлива наявність точки перегину, що дозволяє відобразити різноманітні об'єкти. Рівняння кривої ІІІ порядку а0х3+а1у3+а2х2у+а3ху2+а4х2+а5у2+а6ху+а7х+а8у+а9=0. Для опису відрізка потрібні ще два параметри початку та кінця відрізку. Зауважимо, що пряма та криві ІІ порядку є частковим випадком кривих ІІІ порядку.
· Криві Без'є. Спрощений вид кривих ІІІ порядку. Метод побудови кривих Без'є заснований на використанні пари дотичних, що проведені до відрізка лінії в його закінченні. На форму кривої лінії впливає кут нахилу дотичної та довжина її відрізка. Таким чином, дотичні відіграють роль віртуальних важелів, за допомогою яких керують формою кривої.
За допомогою кривих створюється контур об'єкта, всередині якого може бути заповнення (любий колір, штрихування або зображення). Заповнений об'єкт трактується як єдиний елемент, тобто при змінюванні форми об'єкта, заповнення заповнює всю його внутрішню ділянку.
Заповнення можна розбити на 4 категорії:
· одноріднезаповнення одним кольором або штрихуванням;
· градієнтне, при якому кольори або тіні поступово змінюються (лінійна, радіальна, конічна, прямокутна тощо);
· візерункове, при якому об'єкт заповнюється повторювальними зображеннями (двоколірними або повноколірними);
· текстурне заповнення (художні зображення).
У векторних редакторів є засоби застосування ефектів до простих об'єктів (відтінювання, витискування, викривлення, прозорість тощо).
Слід відмітити наявність засобів обробки тексту, до яких можна застосувати всі прийоми редагування об'єктів, керувати розмірами тексту і повертати в любий бік.
Переваги векторної графіки:
· невеликі за розміром файли, оскільки зберігається не зображення, а лише його основні дані, використовуючи які, програма відновлює зображення;
· розмір об'єктів та опис колірних характеристик майже не збільшує розміри файлу;
· об'єкти легко трансформуються, ними легко маніпулювати. Редагуючи векторний об'єкт, можна змінити властивості ліній, з яких складається зображення. Можна пересувати об'єкт, змінювати його розміри, форму та колір, не впливаючи на якість зображення;
· векторна графіка не залежить від роздільчості, тобто векторні об'єкти відтворюють на пристроях з різною роздільчістю без втрати якості зображення.
· векторна графіка може містити в собі фрагменти растрової графіки, які перетворюються в об'єкти, але мають обмеження у їх обробці;
· у програмах векторної графіки є розвинуті засоби інтеграції зображення та тексту. Єдиний підхід до них обумовлює створення кінцевого продукту;
Векторні програми незамінні там, де принципове значення має збереження чітких контурів, а саме:
· повноколірні ілюстрації;
· складні креслення;
· логотипи та емблеми;
· графічні зображення для Web;
· мультиплікація;
· рисунки на основі оригіналів.
В арсеналі векторних програм є безліч інструментів для виконання різноманітних задач, як у традиційних операційних середовищах, так і в Інтернеті.
Користувачами векторних редакторів можуть бути:
· технічні редактори;
· вільні художники й дизайнери-початківці;
· розробники web-сторінок;
· оператори настільних видавничих систем;
· художники по рекламі;
· справжні художники-ілюстратори;
· користувачі початківці та потенційні користувачі.
Найпопулярнішими прикладними програмами є продукти фірм:
· Corel - CorelDraw,
· Adobe - Illustrator,
· Macromedia - FreeHand,
· стандартний додаток у MS Office - Word Editor.
Фрактальна графіка
Фрактальна графіка, як і векторна, заснована на математичних обчисленнях. Однак, базовим елементом є математична формула, ніяких об'єктів у пам'яті комп'ютера не зберігається і зображення будується виключно по рівняннях. Фрактальна графіка міститься у пакетах для наукової візуалізації для побудови, як найпростіших структур так і складних ілюстрацій, що імітують природні процеси та тривимірні об'єкти.
Серед програмних засобів можна виділити продукти фірми Golden SoftWare:
· Surfer - створення тривимірних поверхонь;
· Grapher - створення двовимірних графіків;
· Map Viewer - побудова кольорових карт.
Surfer дозволяє обробити та візуалізувати двовимірні набори даних, що описані функцією z=f (x,y). Можна побудувати цифрову модель поверхні, застосувати допоміжні операції і візуалізувати результат.
Grapher призначений для обробки та виводу графіків, що описані функціями y=f(x). Не має обмежень по числу графіків на одному рисунку або числу кривих в одному графіку і дозволяє розмістити декілька осей з різними масштабами та одиницями виміру.
Map Viewer дозволяє вводити та корегувати карти - змінювати масштаб, перетворювати координати, обробляти й виводити у графічному вигляді числову інформацію, пов'язану з картами.
Пакет Iris Explorer (фірма Graphics) призначена для створення моделей погодних умов та океану.
Пакет Earth Watch (фірма Earth Watch) призначений для моделювання та демонстрації тривимірного зображення метеоумов над Землею, будувати топологічні поверхні по космічних знімках і прогнозувати погоду на тиждень вперед.
Модуль Chart у стандартному пакеті MS Office дозволяє легко й наочно створити графіки на основі даних, що знаходяться у таблиці. Користувач може перетворити графіки у любу з 5 основних форм графіків:
· гістограма;
· лінії;
· площі;
· в полярних координатах;
· поверхні.
Також, при зміні даних у таблиці, змінюється відповідне значення у графіку.
Векторна графіка
Тривимірна графіка
Тривимірна графіка призначена для імітації фотографування або відеозйомки тривимірних образів об'єктів, які можуть бути попередньо підготовані у пам'яті комп'ютера.
При використанні засобів тривимірної графіки синтез зображень виконується за алгоритмом, що містить:
· попередня підготовка;
· створення геометричної моделі сцени;
· налаштування освітлення та зйомочних камер;
· підготовка та призначення матеріалів;
· візуалізація сцени.
Перші чотири пункти є підготовчими, а останній власне формує зображення.
Попередня підготовка. На цьому етапі складається вміст сцени. Треба передбачити всі об'єкти та їх деталі, тому бажано мати намальований ескіз.
Створення геометричної моделі сцени. Будуються тривимірні геометричні моделі об'єктів, що мають ширину, довжину та висоту. Об'єкти розташовуються у тривимірному просторі, причому їх можна вкладати у середину інших об'єктів. Набір інструментів по створенню геометричних моделей називається геометричним конструктором сцен. Після створення геометричної моделі, сцену можна розглядати з любого ракурсу.
Робота над композицією: світло та камери. Відбувається налаштування моделей джерел освітлення та розставляння зйомочних камер. Правильний підбір джерел освітлення дозволяє виконати імітацію фотографування сцени в любих умовах освітлення. Освітлення всіх об'єктів, їхні тіні та відблиски світла розраховуються програмою автоматично. Моделі зйомочних камер надають можливості розглядати тривимірну сцену та виконувати її зйомку під любим кутом зору.
Підготовка та призначення матеріалів. Виконується робота, що забезпечує візуальну правдивість сцени та наближує якість зображення до реальної фотографії. В наш час є великі можливості по створенню нових матеріалів або вибору готових матеріалів із бібліотек, що розповсюджуються на CD- дисках або Інтернеті.
Працюючи з матеріалами, можна налаштовувати їх властивості, зокрема, силу відблискування, прозорість, самовипромінювання, дзеркальність, рельєфність. У склад матеріалів можна вміщувати фотографії реальних об'єктів навколишнього світу. Окрім того, фотографії можна використовувати у якості фону сцени.
Візуалізація сцени, тобто формування сцени, яке займає досить довгий час, що залежить від складності сцени та швидкодії комп'ютера.
На етапі візуалізації програма розраховує та наносить на зображення всі тіні, бліки, взаємне відбивання об'єктів. Для підвищення достовірності зображення можна створити імітацію природних явищ (димка, туман, полум'я).
Вигаданий світ, створений таким чином, називається віртуальним, тобто потенційно можливим. На питання, чи не простіше сфотографувати реальну сцену, можна відповісти, що є випадки, коли використання тривимірної графіки є єдиним можливим засобом рішення.
Області застосування тривимірної графіки
Комп'ютерне проектування:
· швидке вирішення задач проектування інтер'єрів;
· вбудовування вигаданої сцени у зображення реального світу. Тривимірна графіка звільнює від необхідності створення макета і забезпечує гнучкі можливості синтезу зображення сцени для любої погоди і під любим кутом зору;
· вбудовування зображення реального об'єкта у тривимірну сцену як складової (віртуальна галерея);
Автоматизоване проектування:
· синтез зовнішнього вигляду складних деталей, що виготовляються методами штампування токарних та фрезерних операцій, візуальний вигляд автомобілів, літаків, пароплавів.
· cтворення тривимірних образів деталей та конструкцій, хоча й є складною задачею, але простішою, ніж створення масштабних або повнорозмірних макетів.
Комп'ютерні ігри:
· найпопулярніша ділянка використання тривимірної графіки. По мірі удосконалення програмних засобів моделювання, зросту продуктивності та збільшення ресурсів пам'яті комп'ютерів віртуальні світи стають більш складними й подібними до реальності.
Комбіновані зйомки:
· тривимірну графіку застосовують там, де зробити реальні фотографії просто неможливо, або потребує великих витрат (внутрішність працюючого двигуна, науково-фантастичні сюжети, нереальні світи, відеомонтаж, реклама тощо). Практично застосовується у книжковій та журнальній графіці і є популяризацією науки, реклами, художньої творчості.
Комп'ютерна мультиплікація:
· спрощує роботу розробників у сотні та тисячі разів.
Недоліки тривимірної графіки
· підвищені вимоги до апаратної частини комп'ютера (об'єм оперативної пам'яті, наявність вільного місця на твердому диску, швидкодія комп'ютера);
· велика підготовча робота по створенню моделей всіх об'єктів сцени та призначенню їм матеріалів;
· обмежена свобода у формуванні зображення (потрібно враховувати об'єм об'єктів);
· жорсткий контроль за взаємним розташуванням відносно базису (об'єкт може втілюватись у інший об'єкт); необхідність додаткових зусиль для надання синтезованому зображенню реалістичності.
· часто результати візуалізації виглядають дуже правильно, чітко, що позбавляє сцену життєвості. У складі програм тривимірної графіки міститься набір фільтрів, що дозволяють імітувати глибину різкості зображень, зернистість віртуальної фотоплівки, змазування контуру при русі у момент зйомки.
Основні концепції операційних систем
- Поняття операційної системи та її призначення
- Історія розвитку операційних систем
- Класифікація операційних систем
- Основні функції операційної системи
У цьому розділі буде дано поняття операційної системи, описано призначення різних операційних систем, виділено їхні базові функції та служби. Розділ також містить короткий огляд історії розвитку операційних систем.
1.1. Поняття операційної системи, її призначення та функції
1.1.1. Поняття операційної системи
Причиною появи операційних систем була необхідність створення зручних у використанні комп'ютерних систем (під комп'ютерною системою будемо розуміти сукупність апаратного і програмного забезпечення комп'ютера). Комп'ютерні системи від самого початку розроблялися для розв'язання практичних задач користувачів. Оскільки робити це за допомогою лише апаратного забезпечення виявилося складно, були створені прикладні програми. Для таких програм знадобилися загальні операції керування апаратним забезпеченням, розподілу апаратних ресурсів тощо. Ці операції згрупували в рамках окремого рівня програмного забезпечення, який і стали називати операційною системою.
Далі можливості операційних систем вийшли далеко за межі базового набору операцій, необхідних прикладним програмам, але проміжне становище таких систем між прикладними програмами й апаратним забезпеченням залишилося незмінним.
Можна дати таке означення операційної системи.
Операційна система (ОС) — це програмне забезпечення, що реалізує зв'язок між прикладними програмами й апаратними засобами комп'ютера.
1.1.2. Призначення операційної системи
Операційні системи забезпечують, по-перше, зручність використання комп'ютерної системи, по-друге, ефективністьі надійність її роботи.
Перша функція властива ОС як розширеній машині, друга - ОС як розподілювача апаратних ресурсів.
1.1.3.Операційна система як розширена машина
За допомогою операційної системи у прикладного програміста (а через його програми і в користувача) має створюватися враження, що він працює з розширеною машиною [4, 29, 41, 44].
Апаратне забезпечення комп'ютера недостатньо пристосоване до безпосереднього використання у програмах. Наприклад, якщо розглянути роботу із пристроями введення-виведення нарівні команд відповідних контролерів, то можна побачити, що набір таких команд обмежений, а для багатьох пристроїв - примітивний (є навіть вислів: «апаратне забезпечення потворне»). Операційна система приховує такий інтерфейс апаратного забезпечення, замість нього програмістові пропонують інтерфейс прикладного програмування (рис. 1.1), що використовує поняття вищого рівня (їх називають абстракціями).
Наприклад, при роботі з диском типовою абстракцією є файл. Працювати з файлами простіше, ніж безпосередньо з контролером диска (не потрібно враховувати переміщення головок дисковода, запускати й зупиняти мотор тощо), внаслідок цього програміст може зосередитися на суті свого прикладного завдання. За взаємодію з контролером диска відповідає операційна система.
Виділення абстракцій дає змогу досягти того, що код ОС і прикладних програм не потребуватиме зміни при переході на нове апаратне забезпечення. Наприклад, якщо встановити на комп'ютері дисковий пристрій нового типу (за умови, що він підтримується ОС), всі його особливості будуть враховані на рівні ОС; а прикладні програми продовжуватимуть використовувати файли, як і раніше. Така характеристика системи називається апаратною незалежністю. Можна сказати, що ОС надають апаратно-незалежне середовище для виконання прикладних програм.
1.1.4. Операційна система як розподілювач ресурсів
Операційна система має ефективно розподіляти ресурси. Під ресурсами розуміють процесорний час, дисковий простір, пам'ять, засоби доступу до зовнішніх пристроїв. Операційна система виступає в ролі менеджера цих ресурсів і надає їх прикладним програмам на вимогу.
Розрізняють два основні види розподілу ресурсів. У разі просторового розподілу ресурс доступний декільком споживачам одночасно, при цьому кожен із них може користуватися частиною ресурсу (так розподіляється пам'ять). У разі часового розподілу система ставить споживачів у чергу і згідно з нею надає їм змогу користуватися всім ресурсом обмежений час (так розподіляється процесор в однопроцесорних системах).
При розподілі ресурсів ОС розв'язує можливі конфлікти, запобігає несанкціонованому доступу програм до тих ресурсів, на які вони не мають прав, забезпечує ефективну роботу комп'ютерної системи.
1.2. Історія розвитку операційних систем
Перші операційні системи з'явилися в 50-ті роки і були системами пакетної обробки. Такі системи забезпечували послідовне виконання програм у пакетному режимі (без можливості взаємодії з користувачем). У певний момент часу в пам'яті могла перебуваіи тілікйодна програма (системи були однозадачними), усі програми виконувалися на процесорі від початку до кінця. За такої ситуації ОС розглядали просто як набір стандартних служб, необхідних прикладним програмам і користувачам.
Наступним етапом стала підтримка багатозадачності. У багатозадачних системах у пам'ять комп'ютера стали завантажувати кілька програм, які виконувалися на процесорі навперемінно. При цьому розвивалися два напрями: багатозадачна пакетна обробка і розподіл часу. У багатозадачній пакетній обробці завантажені програми, як і раніше, виконувалися в пакетному режимі. У режимі розподілу часу із системою могли працювати одночасно кілька користувачів, кожному з яких надавався діалоговий термінал (пристрій, що складається із клавіатури і дисплея).
Підтримка багатозадачності потребувала реалізації в ОС засобів координації задач. Можна виділити три складові частини такої координації.
1. Захист критичних даних задачі від випадкового або навмисного доступу інших задач.
2. Забезпечення обміну даними між задачами.
3. Надання задачам справедливої частки ресурсів (пам'яті, процесора, дискового простору тощо).
Ще одним етапом стала поява ОС персональних комп'ютерів. Спочатку ці системи, як і ОС першого етапу, були однозадачними й надавали базовий набір стандартних служб (на цьому етапі важливим було впровадження графічного інтерфейсу користувача). Подальший розвиток апаратного забезпечення дав змогу використати в таких системах засоби, розроблені для більших систем, насамперед багатозадачність і, як наслідок, координацію задач.
Є правило розвитку ОС для конкретної апаратної платформи: для більшості нових апаратних платформ ОС спочатку створюють як базовий набір стандартних служб, координацію задач реалізують у ній пізніше. Зазначимо, що це правило вірне, якщо апаратна платформа дозволяє реалізувати багатозадачний режим.
Багато сучасних ОС спочатку розроблялися для персональних комп'ютерів або були перенесені на них з інших апаратних платформ. Основну увагу в цій книзі буде приділено двом групам операційних систем: UNIX-сумісним системам, насамперед Linux, та серії Windows NT/2000/XP фірми Microsoft (далі називатимемо ці системи лінією Windows XP).
1.3. Класифікація сучасних операційних систем
Розглянемо класифікацію сучасних операційних систем залежно від області їхнього застосування.
Насамперед відзначимо ОС великих ЕОМ (мейнфреймів). Основною характеристикою апаратного забезпечення, для якого їх розробляють, є продуктивність введення-виведення: великі ЕОМ оснащують значною кількістю периферійних пристроїв (дисків, терміналів, принтерів тощо). Такі комп'ютерні системи використовують для надійної обробки значних обсягів даних, при цьому ОС має ефективно підтримувати цю обробку (в пакетному режимі або в режимі розподілу часу). Прикладом ОС такого класу може бути OS/390 фірми IBM.
До наступної категорії можна віднести серверні ОС. Головна характеристика таких ОС — здатність обслуговувати велику кількість запитів користувачів до спільно використовуваних ресурсів. Важливу роль для них відіграє мережна підтримка. Є спеціалізовані серверні ОС, з яких виключені елементи, не пов'язані з виконанням їхніх основних функцій (наприклад, підтримка застосувань користувача). Нині для реалізації серверів частіше застосовують універсальні ОС (UNIX або системи лінії Windows XP).
Наймасовіша категорія - персональні ОС. Деякі ОС цієї категорії розробляли з розрахунком на непрофесійного користувача (лінія Windows 95/98/Ме фірми Microsoft, яку далі називатимемо Consumer Windows), інші є спрощеними версіями універсальних ОС. Особлива увага в персональних ОС приділяється підтримці графічного інтерфейсу користувача і мультимедіа-технологій.
Виділяють також ОС реального часу. У такій системі кожна операція має бути гарантовано виконана в заданому часовому діапазоні. ОС реального часу можуть керувати польотом космічного корабля, технологічним процесом або демонстрацією відеороликів. Існують спеціалізовані ОС реального часу, такі як QNX [1,7,11] і VxWorks.
Ще однією категорією є вбудовані ОС. До них належать керуючі програми для різноманітних мікропроцесорних систем, які використовують у військовій техніці, системах побутової електроніки, смарт-картах та інших пристроях. До таких систем ставлять особливі вимоги: розміщення в малому обсязі пам'яті, підтримка спеціалізованих засобів введення-виведення, можливість прошивання в постійному запам'ятовувальному пристрої. Часто вбудовані ОС розробляються під конкретний пристрій; до універсальних систем належать Embedded Linux [68] і Windows CE [49].
1.4. Функціональні компоненти операційних систем
Операційну систему можна розглядати як сукупність функціональних компонентів, кожен з яких відповідає за реалізацію певної функції системи. У цьому розділі описані найважливіші функції сучасних ОС і компоненти, що їх реалізують.
Спосіб побудови системи зі складових частин та їхній взаємозв'язок Визначає архітектура операційної системи. Підходи до реалізації архітектури ОС будуть розглянуті в розділі 2.
Як ми вже згадували, однією з найважливіших функцій ОС є виконання прикладних програм.. Код і дані прикладних програм зберігаються в комп'ютерній системі на диску в спеціальних виконуваних файлах. Після того як користувач або ОС вирішать запустити на виконання такий файл, у системі буде створено базову одиницю обчислювальної роботи, що називається процесом (process).
Можна дати таке означення: процес — це програма під час її виконання.. Операційна система розподіляє ресурси між процесами. До таких ресурсів належать процесорний час, пам'ять, пристрої введення-виведення, дисковий простір у вигляді файлів. При розподілі пам'яті з кожним процесом пов'язується його адресний простір - набір адрес пам'яті, до яких йому дозволено доступ. В адресному просторі зберігаються код і дані процесу. При розподілі дискового простору для кожного процесу формується список відкритих файлів, аналогічним чином розподіляють пристрої введення-виведення.
Процеси забезпечують захист ресурсів, якими вони володають. Наприклад, до адресного простору процесу неможливо безпосередньо звернутися з інших про-цесів (він є захищеним), а при роботі з файлами може бути задано режим, що забороняє доступ до файла всім процесам, крім поточного.
Розподіл процесорного часу між процесами необхідний через те, що процесор виконує інструкції одну за одною (тобто в конкретний момент часу на ньому може фізично виконуватися тільки один процес), а для користувача процеси мають виглядати як послідовності інструкцій, виконувані паралельно. Щоб домогтися такого ефекту, ОС надає процесор кожному процесу на деякий короткий час, після чого перемикає процесор на інший процес; при цьому виконання процесів відновлюється з того місця, де їх було перервано. У багатопроцесорній системі процеси можуть виконуватися паралельно на різних процесорах.
Сучасні ОС крім багатозадачності можуть підтримувати багатопотоковість (multithreading), яка передбачає в рамках процесу наявність кількох послідовностей інструкцій (потоків, threads), які для користувача виконуються паралельно, подібно до самих процесів в ОС. На відміну від процесів потоки не забезпечують захисту ресурсів (наприклад, вони спільно використовують адресний простір свого процесу).
1.4.2. Керування пам'яттю
Під час виконання програмного кеду процесор бере інструкції й дані з оперативної (основної) пам'яті комп'ютера. При цьому така пам'ять відображається у вигляді масиву байтш, кожен з яких має адресу.
Як уже згадувалося, основна пам'ять є одним із видів ресурсів, розподілюваних між процесами. ОС відповідає за виділення пам'яті від захищений адресний простір процесу і за вивільнення пам'яті після того, як виконання процесу буде завершено. Обсяг пам'яті, доступний процесу, може змінюватися в ході виконання, у цьому разі говорять про динамічний розподіл пам'яті.
ОС повинна забезпечувати можливість виконання програм, які окремо, або
в сукупності перевищують за обсягом доступну основну пам'ять. Для цього в ній
має бути реалізована технологія віртуальної пам'яті. Така технологія дає можливість розміщувати в основній пам'яті тільки ті інструкції й дані процесу, які потрібні в поточний: момент часу, при цьому вміст іншої частини адресного простору зберігається на диску.