Питання 5 - інкапсуляція, успадкування, поліморфізм

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

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

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

Спадкування - властивість об'єктів передавати іншим спорідненим об'єктів свої характеристики та інші властивості.

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

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

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

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

Питання 6 - Класифікація ос

Нижче наведено класифікацію ОС по декількох найбільш основних ознаках.

Особливості алгоритмів управління ресурсами

Залежно від особливостей використаного алгоритму керування процесором, операційні системи ділять на

багатозадачні і однозадачні,

розраховані на багато користувачів і однопользовательские,

на системи, що підтримують многонитевую обробку і не підтримують її,

на багатопроцесорні і однопроцесорні системи.

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

однозадачні (наприклад, MS-ОС, MSX)

багатозадачні (OC EC, OS / 2, UNIX, Windows 95).

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

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

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

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

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

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

Невитісняючаі невитесняющая багатозадачність. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів:

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

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

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

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

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

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

Особливості апаратних платформ

За типом апаратури розрізняють операційні системи

кластерів і мереж ЕОМ.

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

Особливості областей використання

Багатозадачні ОС підрозділяються на три типи відповідно до використаними при їх розробці критеріями ефективності:

системи пакетної обробки (наприклад, OC EC),

системи поділу часу (UNIX, VMS),

системи реального часу (QNX, RT / 11).

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

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

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