Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Зміст
[1] Як був винайдений компютер [2] Що таке Norton Commander [3] Головне меню програми Norton Commander [4] Перегляд файлів в програмі Norton Commander [5] Редагування файлів у програмі Norton Commander [6] Обробка помилок на дисках у програмі Norton Commander [7] Робота з архівними файлами [8] Меню команд користувача Norton Commander [9] Історія створення Windows
[10]
[11] [12] Робочий стіл Windows [13] Панель задач Windows |
Початкові відомості про компютер
Слово “компютер” означає “обчислювач” пристрій для обчислень.
У 1642р. Блез Паскаль винайшов пристрій, який механічно виконував додавання чисел, а в 1673р. Готфрід Вільгельм Лейбніц сконструював арифмометр, який дозволяв виконувати чотири арифметичні дії.
У першій половині XIX століття англійський математик Чарльз Беббідж почав будувати універсальний обчислювальний пристрій аналітичну машину, яка виконувала б обчислення без участі людини. Для цього вона повинна була б вміти виконувати програми, введені за допомогою перфокарт (карт із цупкого паперу з інформацією, нанесеною з допомогою отворів) і мати память для запамятовування даних та проміжних результатів. Беббідж не зміг довести до кінця роботу із створення аналітичної машини вона виявилася надто складною для техніки того часу. Але він розробив всі основні ідеї. У 1943р. американець Гавард Ейкен, з допомогою праць Беббіджа, на основі техніки XX століття електромеханічних реле - побудував на одному із підприємств фірми ІВМ таку машину під назвою “Марк-1”.
Починаючи з 1943р., група спеціалістів під керівництвом Джона Молчі і Преспера Екерта в США почала конструювати подібну машину, але вже на основі електронних ламп, а не реле. Їхня машина, названа ENIAC, працювала в тисячу разів швидше, ніж Марк-1, але для задання їй програми, доводилося на протязі декількох годин підєднувати потрібним чином провідники. Щоб спростити процес завдання програм, Мочлі і Екерт стали конструювати нову машину, яка могла би зберігати програму в своїй памяті. У 1945р. до роботи був залучений знаменитий математик Джон фон Нейман, який підготував доповідь про цю машину. Нейман дуже просто і зрозуміло сформував загальні принципи функціонування універсальних обчислювальних пристроїв компютерів.
Перший компютер, за принципом фон Неймана, був побудований у 1949р. англійським винахідником Морісом Уілксом. З того часу компютери стали набагато потужнішими, але переважна більшість із них зроблена у відповідності до тих принципів, які виклав у своїй доповіді в 1945р. фон Нейман.
У своїй доповіді Джон фон Нейман описав як сконструювати компютер , щоб він був універсальним і ефективним пристроєм для обробки інформації.
Компютер повинен мати наступні пристрої:
Память компютера повинна складатися із певної кількості пронумерованих комірок, у кожній із яких можуть знаходитися або оброблювані дані, або інструкції програм. Всі комірки памяті повинні бути легко доступні для других пристроїв компютера.
Звязки між пристроями компютера.
Ïîíÿòòÿ ïðî ÏÅÎÌ
Êîìï'þòåð (åëåêòðîííà îá÷èñëþâàëüíà ìàøèíà ÅÎÌ) öå àïàðàò іç ïðîãðàìíèì êåðóâàííÿì, ïðèçíà÷åíèé äëÿ âèêîíàííÿ îá÷èñëþâàëüíèõ îïåðàö³é. ÅÎÌ поділяються íà ãðóïè, çà êîìïëåêñîì òåõí³÷íèõ çàñîá³â (Мал.1.2).
Мал.1.2. Êëàñèô³êàö³ÿ ÅÎÌ, çà êîìïëåêñîì òåõí³÷íèõ çàñîá³â.
Ïåðñîíàëüíà ÅÎÌ (ÏÅÎÌ àáî ÏÊ ïåðñîíàëüíèé êîìï'þòåð) öå ì³êðîïðîöåñîðíà ñèñòåìà åëåêòðîííî¿ îáðîáêè ³íôîðìàö³¿ äëÿ ³íäèâ³äóàëüíîãî âèêîðèñòàííÿ (îêðåìî àáî ó ñêëàä³ ìåðåæ³), ÿêà çàáåçïå÷óº îá÷èñëþâàëüíèé ïðîöåñ ï³ä êîíòðîëåì êîðèñòóâà÷à ³ êîíñòðóêòèâíî îôîðìëåíà ÿê íàñò³ëüíèé àáî ïåðåíîñíèé ïðèëàä. ÏÅÎÌ êëàñèô³êóþòü çà ïðèçíà÷åííÿì (Мал.1.3.).
Âáóäîâàí³ ÅÎÌ öå, ÿê ïðàâèëî, âáóäîâàí³ â ÿêåñü îáëàäíàííÿ ì³êðîïðîöåñîðè, ÿê³ êåðóþòü éîãî ðîáîòîþ. Íàïðèêëàä, íàâ³ãàö³éíà ñèñòåìà ñó÷àñíîãî àâòîìîá³ëÿ àáî ñèñòåìà âèáîðó îïòèìàëüíîãî ðåæèìó ðîáîòè äâèãóíà òîùî.
Мал.1.3. Êëàñèô³êàö³ÿ ÏÅÎÌ çà ïðèçíà÷åííÿì
Ïîáóòîâ³ íàâ÷àëüí³ ÏÅÎÌ ïðèçíà÷åí³, â îñíîâíîìó, äëÿ óïðàâë³ííÿ ïîáóòîâîþ òåõí³êîþ, íàâ÷àííÿм, ðîçâàãами, à òàêîæ äëÿ ðîçâ'ÿçàííÿ äåÿêèõ ïðîñòèõ çàäà÷, ä³ëîâèõ ðîçðàõóíê³â, îáðîáêè òåêñòó òîùî. ßê ïðàâèëî, â ðîë³ äèñïëåÿ âèêîðèñòîâóюòü ïîáóòîâèé òåëåâ³çîð.
Ïðîôåñ³éí³ ÏÅÎÌ âèêîðèñòîâóþòü äëÿ îðãàíізації автоматизованих робочих місць різних спеціалістів і відрізняються від побутових наявністю спеціального дисплея, накопичувача на гнучких та жорстких магнітних дисках, можливістю підключення великого набору додаткових зовнішніх пристроїв (принтер, факс, маніпулятор "миша", модем тощо), можливістю підключення до комп'ютерної мережі.
Спеціалізовані ПЕОМ орієнтовані на розв'язання складних задач, які вимагають покращених значень одного або кількох параметрів.
Мікропроцесор
Öåíòðàëüíèé ïðîöåñîð öå îñíîâíèé ïðèñòð³é ìàøèíè, ïðèçíà÷åíèé äëÿ óïðàâë³ííÿ ðîáîòîþ комп'ютера ³ âèêîíàííÿ àðèôìåòè÷íèõ ³ ëîã³÷íèõ îïåðàö³é.
̳êðîïðîöåñîðè ìàþòü òàê³ õàðàêòåðèñòèêè:
Однакові моделі мікропроцесорів можуть мати різну тактову частоту. Чим більше значення тактової частоти, тим вища продуктивність, бо тактова частота вказує на те, ñê³ëüêè åëåìåíòàðíèõ îïåðàö³é (òàêò³â) ì³êðîïðîöåñîð âèêîíóº çà îäíó ñåêóíäó. Òàêòîâà ÷àñòîòà âèì³ðþºòüñÿ â ÌÃö (ì³ëüéîíàõ ãåðö).
Îïåðàòèâíà ïàì'ÿòü
Îïåðàòèâíà ïàì'ÿòü (ÎÏ) ñâîþ íàçâó îòðèìàëà òîìó, ùî âîíà ïðàöþº äóæå øâèäêî, òàê, ùî ïðîöåñîðó íå äîâîäèòüñÿ ÷åêàòè ïðè ÷èòàíí³ äàíèõ іç ïàì'ÿò³ àáî çàïèñó â ïàì'ÿòü. Îäíàê äàí³, ÿê³ âîíà ì³ñòèòü, çáåð³ãàþòüñÿ ò³ëüêè ïîêè êîìï'þòåð ââ³ìêíåíî, à êîëè éîãî âèìèêàþòü, âì³ñò ÎÏ âòðà÷àºòüñÿ, òîìó ïðè êîæíîìó âìèêàíí³ êîìï'þòåðà â îïåðàòèâíó ïàì'ÿòü äîâîäèòüñÿ çàâàíòàæóâàòè âñþ íåîáõ³äíó ³íôîðìàö³þ.
Îïåðàòèâíà ïàì'ÿòü êîìï'þòåðà ñêëàäàºòüñÿ ç певної ê³ëüêîñò³ ïðîíóìåðîâàíèõ êîì³ðîê, у êîæí³é ç ÿêèõ містяться äàí³, ÿê³ îáðîáëÿþòüñÿ àáî êîìàíäè âèêîíàâ÷èõ ïðîãðàì.
Îïåðàòèâíà ïàì'ÿòü ïðèçíà÷åíà:
Однією з основних характеристик ОП є ємність мікросхеми, яку âèì³ðþюòü у ìåãàáàéòàõ (ÌÁ). Вона ìîæå набувати наступних çíà÷åíь: 1ÌÁ, 2ÌÁ, 4ÌÁ, 8ÌÁ, 16ÌÁ, 32ÌÁ, 64ÌÁ, 128ÌÁ, 256ÌÁ, 512ÌБ òîùî.
Êåø-ïàì'ÿòü
Äëÿ øâèäêèõ êîìï'þòåð³â íåîáõ³äíî çàáåçïå÷èòè øâèäêèé äîñòóï äî îïåðàòèâíî¿ ïàì'ÿò³, ³íàêøå ì³êðîïðîöåñîð áóäå ïðîñòîþâàòè ³ øâèäêîä³ÿ êîìï'þòåðà çìåíøèòüñÿ, оскільки ÷àñ äîñòóïó äî ðåã³ñòð³â ïðîöåñîðà ñòàíîâèòü 5-7 íàíîñåêóíä, à ÷àñ äîñòóïó äî îïåðàòèâíî¿ ïàìÿò³ 60-200 íàíîñåêóíä. Ç ö³ºþ ìåòîþ òàê³ êîìï'þòåðè îñíàùóþòü íàäîïåðàòèâíîþ ïàì'ÿòòþ (êåø-ïàì'ÿòòþ, â³ä Cache òàéíèê), â³äíîñíî íåâåëèêî¿ ºìíîñò³ (çâè÷àéíî, â³ä 64 äî 256 Êáàéò, але ìîæå áóòè é á³ëüøîþ), â ÿê³é çáåð³ãàþòüñÿ ä³ëÿíêè ³íôîðìàö³¿ ç îïåðàòèâíî¿ ïàì'ÿò³, ùî âèêîðèñòîâóþòü íàé÷àñò³øå. Êåø-ïàì'ÿòü ðîçì³ùóºòüñÿ "ì³æ" ì³êðîïðîöåñîðîì òà îïåðàòèâíîþ ïàì'ÿòòþ. Ïðè çâåðíåíí³ ì³êðîïðîöåñîðà äî îïåðàòèâíî¿ ïàì'ÿò³, ñïî÷àòêó âèêîíóºòüñÿ ïîøóê ³íôîðìàö³¿ â êåø-ïàì'ÿò³.
Òàêèì ÷èíîì, êåø-ïàì'ÿòü ïðèçíà÷åíî äëÿ óçãîäæåííÿ øâèäêîñò³ ðîáîòè ïîð³âíÿíî ïîâ³ëüíèõ ïðèñòðî¿â ç â³äíîñíî øâèäêèì ì³êðîïðîöåñîðîì.
Контролери і шина
Для роботи компютера необхідний обмін інформації між оперативною памяттю і зовнішніми пристроями. Такий обмін називають введенням-виведенням. Проте він не проходить безпосередньо за напрямом. Між будь-яким зовнішнім пристроєм і оперативною памяттю в компютері є дві перехідні ланки:
а) для кожного зовнішнього пристрою в компютері є електронна схема, яка ним керує. Цю схему називають контролером або адаптером. Деякі контролери (наприклад, контролери дисків) можуть керувати зразу кількома пристроями;
б) всі контролери і адаптери взаємодіють з мікропроцесором і оперативною памяттю через системну магістраль передачі даних, яку називають шиною.
Øèíà öå çàãàëüíèé êàíàë çâÿçêó, ÿêèì ó ñåðåäèí³ êîìïþòåðà ïåðåäàþòüñÿ äàí³, òîáòî ñèñòåìà äðîò³â, çà äîïîìîãîþ ÿêèõ îðãàí³çóºòüñÿ âçàºìîä³ÿ äâîõ àáî á³ëüøå êîìïîíåíò³â ñèñòåìè.
Êîíòðîëåðè ââîäó-âèâîäó âèêîðèñòîâóþòü äëÿ ï³äêëþ÷åííÿ äî êîìï'þòåðà òàêèõ ïðèñòðî¿â, ÿê ìèøà, ìîäåì та ïðèíòåð.
ϳäêëþ÷åííÿ ïðèñòðî¿â âèêîíóºòüñÿ ÷åðåç ïîðòè ââîäó-âèâîäó, є:
Êîæíèé òèï àäàïòåðà ìຠñâ³é ñòàíäàðòíèé ³íòåðôåéñ, ùî âèçíà÷ຠòèï ³ ð³ä ç'ºäíóâà÷à: ðîçåòêà àáî âèëêà; 25 àáî 9 êîíòàêò³â; ïðîòîêîëè (ñòàíäàðòè) îáì³íó äàíèìè òîùî.
Ïàðàëåëüí³ ïîðòè (Centronics) â MS DOS ìàþòü ëîã³÷í³ ³ìåíà: LPT1, LPT2, LPT3. Ç'ºäíàííÿ âèêîíóºòüñÿ ÷åðåç 25-êîíòàêòíèé ðîç'ºì.
Ïîñë³äîâí³ ïîðòè (RS-232-C) â MS DOS ìàþòü ëîã³÷í³ ³ìåíà: COM1, COM2, COM3, COM4.
²ãðîâèé àäàïòåð âèêîðèñòîâóюòü äëÿ ï³äêëþ÷åííÿ äæîéñòèêà.
Çâóêîâ³ ïëàòè (àóä³îïëати, наприклад, саундбластер) призначені для сполучення комп'ютера з джерелами аудіосигналів, а також вихідними аудіопристроями та акустичними системами (як правило, колонками).
BIOS
Мікросхеми BIOS (Basic Input/Output System основна система вводу-виводу), звичайно, виконані у вигляді флеш-пам'яті, тобто постійної пам'яті (постійного запамятовуючого пристрою). Раніше BIOS “зашивався” в мікросхеми, які програмувались одноразово, тобто змінити їх вміст було неможливим àáî äëÿ ïåðåïðîãðàìóâàííÿ ïîòð³áíî áóëî âèòåðòè âì³ñò ì³êðîñõåìè çà äîïîìîãîþ ультрафіолетового âèïðîì³íþâàííÿ. Çàðàç óñå ÷àñò³øå âèêîðèñòîâóþòü ì³êðîñõåìè ïîñò³éíî çàïàìÿòîâóþ÷îãî ïðèñòðîþ ç åëåêòðè÷íèì ïðîãðàìóâàííÿì, тобто їх ìîæе áàãàòîðàçîâî ïåðåïрограмовувати користувач.
BIOS отримує управління при вмиканні компютера та при перезавантаженні операційної системи. Він складається з набору програм, які перевіряють та обслуговують апаратуру комп'ютера, а також завантажують ОС.
Крім того, BIOS містить ряд параметрів комп'ютера, які можна змінювати, настроюючи таким чином комп'ютер на роботу з пристроями різних типів (наприклад, різноманітними гнучкими та жорсткими дисками, CD ROM тощо).
Ìîí³òîðи.
Монітор (або дисплей) пристрій, призначений для зображення текстової і графічної інформації.
Äî íàéá³ëüø âàæëèâèõ õàðàêòåðèñòèê ìîí³òîð³â íàëåæàòü:
Äèñêîâîäè.
Äèñêîâîäè (íàêîïè÷óâà÷³ íà ìàãí³òíèõ äèñêàõ) öå çîâí³øíÿ ïàì'ÿòü ÅÎÌ. Âîíè ïðèçíà÷åí³ äëÿ çàïèñó й зчитування даних, записаних на магнітні диски, які служать для довгострокового збереження інформації. Основні характеристики накопичувачів такі:
дисководи з гнучкими магнітними дисками FDD (Floppy Disk Drive) і з жорсткими магнітними дисками HDD (Hard Disk Drive) або "Вінчестер".
Гнучкі диски (дискети) дозволяють переносити документи і програми з одного компютера на інший, зберігати інформацію, яка не використовується постійно на компютері, робити архівні копії інформації, яка міститься на жорсткому диску.
Зустрічаються дискети розміром 5,25 і 3,5 дюймів (133 і 89 мм).
Дискети розміром 5,25 дюйма, переважно, мають ємність 1,2 Мбайта. Дискети розміром 3,5 дюйма, переважно, мають ємність 1,44 Мбайта. Ці дискети вмонтовані в жорсткий пластмасовий корпус, що значно підвищує їх надійність і довговічність. У звязку з цим, дискети розміром 3,5 дюйма зараз витісняють дискети розміром 5,25 дюйма, хоч вони і дорожчі.
Вінчестер призначений для постійного зберігання інформації в комп'ютері.
Пристрої CD-ROM
Íàêîïè÷óâà÷³ íà êîìïàêò-äèñêàõ (CD-ROM Compact Disk ROM) - öå äèñêîâîäè, ÿê³ ÷èòàþòü ³íôîðìàö³þ ç äèñê³â, ùî ìàþòü îäíó ô³çè÷íó äîð³æêó ó ôîðì³ áåçïåðåðâíî¿ ñï³ðàë³. Ç÷èòóâàííÿ ³íôîðìàö³¿ ç êîìïàêò-äèñêу âèêîíóºòüñÿ çà äîïîìîãîþ ëàçåðíîãî ïðîìåíÿ. Êîìïàêò-äèñêè îáåðòàþòüñÿ ³ç çì³ííîþ êóòîâîþ øâèäê³ñòþ, з метою çàáåçïå÷ення ïîñò³éíої ë³í³éíої øâèäêості, ïðè ÷èòàíí³.
Пристрої резервного копіювання
Дані, які обробляються на компютері, як правило, зберігаються на жорстких дисках. Але через фізичне пошкодження диску, дію компютерних вірусів, а також внаслідок неправильного коректування або випадкового знищення файлів ця інформація може бути частково або повністю пошкоджена або знищена. Втрати від цього можуть бути надзвичайно великими. У багатьох організаціях цінність інформації, яка зберігається на компютерах, в сотні і тисячі разів перевищує вартість самих компютерів.
Щоб звести до мінімуму ці втрати, слід мати архівні копії файлів і систематично їх оновлювати.
Для архівування даних, використовують спеціальні пристрої резервного копіювання, серед яких найпоширенішими є:
Ñòðóêòóðà çàïèñó ³íôîðìàö³¿ íà ìàãí³òí³ äèñêè
Ïîâåðõíю ìàãí³òíîãî äèñêу ïîä³ëÿюòü íà êîíöåíòðè÷í³ äîð³æêè. Êîæíу äîð³æêу, ó ñâîþ ÷åðãó, ïîä³ëÿюòü íà çîíè (ñåêòîðè) (Мал. 4.1.).
Ñåêòîð öå ä³ëÿíêà, на ÿêó çàïèñóºòüñÿ ³íôîðìàö³ÿ. ̳æ ñåêòîðàìè º íåçàïîâíåí³ ïðîì³æêè ì³æñåêòîðíèé ïðîñò³ð. ʳëüê³ñòü äîð³æîê íà äèñêó ³ ñåêòîð³â íà äîð³æö³ âñòàíîâëþºòüñÿ ïðîãðàìîþ ôîðìàòóâàííÿ äèñêà (òîáòî âîíа ìîæå çì³íþâàòèñü äëÿ îäíîãî ³ òîãî æ äèñêà). Íîâèé äèñê äî ðîáîòè íåïðèäàòíèé. Éîãî îáîâ'ÿçêîâî потрібно â³äôîðìàòóâàòè, òîáòî óòâîðèòè äîð³æêè, ñåêòîðè íà äîð³æêàõ, à òàêîæ ñïåö³àëüí³ ñëóæáîâ³ îáëàñò³. Ò³ëüêè ï³ñëÿ öüîãî íà äèñê ìîæíà çàïèñóâàòè ³íôîðìàö³þ.
Мал.2.7. Ñòðóêòóðà ãíó÷êîãî ìàãí³òíîãî äèñêà
Íà IBM-ïîä³áíèõ ÏÅÎÌ âèêîðèñòîâóþòü:
3.5 äþéìîâ³ ãíó÷ê³ ìàãí³òí³ äèñêè ç äâîñòîðîíí³ì çàïèñîì ³íôîðìàö³¿ ìàþòü ôîðìàò: 80 äîð³æîê õ 18 ñåêòîð³â õ 512 Áàéò (ºìí³ñòü äèñêу 1.44 ÌÁàéò).
Íóëüîâà äîð³æêà áóäü-ÿêîãî äèñêу º ñëóæáîâîþ ³, ÿêùî âîíà ç³ïñîâàíà, òî äèñê äî ðîáîòè íåïðèäàòíèé.
Для різноманітних îïåðàö³éíèõ ñèñòåì ðîçì³ùåííÿ ñëóæáîâèõ ä³ëÿíîê íà äèñêó íåîäíàêîâå. Íàïðèêëàä, â ÎÑ MS DOS äèñêîâèé ïðîñò³ð ïîä³ëÿюòü íà 4 îáëàñò³:
КОНТРОЛЬНІ ПИТАННЯ
Програмне забезпечення ÏÅÎÌ
Операційна система
Серед всіх системних програм особливе місце займає операційна система програма, яка завантажується при ввімкненні компютера. Вона виконує діалог із користувачем, керування компютером, його ресурсами (оперативною памяттю, місцем на дисках) запускає інші (прикладні) програми на виконання.
Операційна система забезпечує користувачу і прикладним програмам зручний спосіб спілкування (інтерфейс) із пристроями компютера.
Класифікація операційних систем
Операційні системи можуть розрізнятися особливостями реалізації внутрішніх алгоритмів керування основними ресурсами комп'ютера (процесорами, пам'яттю, пристроями), особливостями використання методів проектування, типами апаратних платформ, областями використання і багатьма іншими властивостями. Нижче зображена класифікація ОС за декількома найбільшими основними ознаками.
Особливості алгоритмів керування ресурсами
Від ефективності алгоритмів керування локальними ресурсами комп'ютера багато в чому залежить ефективність усієї мережної ОС вцілому. Тому, характеризуючи мережну ОС, часто використовують найважливіші особливості реалізації функцій ОС із керування процесорами, пам'яттю та зовнішніми пристроями автономного комп'ютера. Так, наприклад, у залежності від особливостей використаного алгоритму керування процесором, операційні системи поділяють на багатозадачні і однозадачні, багатокористувальницькі і однокористувальницькі, на системи, що підтримують багатониткову обробку і не підтримують її, на багатопроцесорні й однопроцесорні системи.
Підтримка багатозадачності
За числом одночасно виконуваних задач, операційні системи можуть бути поділені на два класи:
Однозадачні ОС, в основному, виконують функцію надання користувачу віртуальної машини, роблячи більш простим і зручним процес взаємодії користувача з комп'ютером. Однозадачні ОС містять засоби керування периферійними пристроями, засоби керування файлами та засоби спілкування з користувачем.
Багатозадачні ОС, крім перерахованих вище функцій, керують поділом спільно використовуваних ресурсів, таких як процесор, оперативна пам'ять, файли і зовнішні пристрої.
Підтримка багатокористувальницького режиму
За числом одночасно працюючих користувачів, ОС поділяються на:
• однокористувальницькі (МS-DOS, Windows 3.1, ранні версії OS/2);
• багатокористувальницькі (UNIX, Windows NТ).
Головною відмінністю багатокористувальницьких систем від однокористувальницьких є наявність засобів захисту інформації кожного користувача від несанкціонованого доступу інших користувачів. Варто зауважити, що не всяка багатозадачна система є багатокористувальницькою і не всяка однокористувальницька ОС є однозадачною. Найважливішим поділюваним ресурсом є процесорний час. Спосіб розподілу процесорного часу між декількома одночасно існуючими в системі процесами (чи нитками) багато в чому визначає специфіку ОС. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів:
•ті, що не витісняють багатозадачність (Windows 3.1);
•ті, що витісняють багатозадачність (Windows NТ, OS/2, UNIX).
Основним розходженням є ступінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в операційній системі, а в другому - розподілений між системою і прикладними програмами. Не витісняє багатозадачність активний процес виконання доти, поки він сам, за власною ініціативою, не віддасть керування операційній системі для того, щоб та вибрала з черги інший готовий до виконання процес. Рішення про переключення процесора з одного процесу на інший приймається операційною системою, а не найактивнішим процесом.
Підтримка багатонитковості. Важливою властивістю операційних систем є можливість розмежування обчислень у рамках однієї задачі. Багатониткова ОС розділяє процесорний час не між задачами, а між їх окремими галузями (нитками).
Багатопроцесорна обробка
Іншою важливою властивістю ОС є відсутність чи наявність у ній засобів підтримки багатопроцесорної обробки - мупьтипроцесування.
Мультипроцесування призводить до ускладнення всіх алгоритмів керування ресурсами. На сучасному етапі стало загальноприйнятим введення в ОС функцій підтримки багатопроцесорної обробки даних. Такі функції присутні в операційних системах Solaris 2.х фірми SUN, Ореn Server 3.х компанії Santa Crus Operation, OS/2 фірми IBМ, Windows NТ фірми Місrоsоft і NetVаrе 4,1 фірми Novell.
Багатопроцесорні ОС можуть класифікуватися за способом організації обчислювального процесу в системі з багатопроцесорною архітектурою: асиметричні ОС і симетричні ОС. Асиметрична ОС цілком виконується тільки на одному з процесорів системи, розподіляючи прикладні задачі по інших процесорах.
Симетрична ОС цілком децентралізована і використовує всі процесори, розділяючи їх між системними і прикладними задачами. Вище були розглянуті характеристики ОС, пов'язані з керуванням тільки одним типом ресурсів - процесором. Великий вплив на вигляд операційної системи вцілому та на можливості її використання в тій чи іншій області мають особливості й інших підсистем керування локальними ресурсами - підсистем керування пам'яттю, файлами, пристроями введення-виведення.
Специфіка ОС виявляється й у тому, яким чином вона реалізує мережні функції; розпізнавання і перескерування у мережу запитів до вилучених ресурсів, передача повідомлень по мережі, виконання вилучених запитів. При реалізації мережних функцій, виникає комплекс задач, пов'язаних із розподіленим характером збереження й обробки даних у мережі: ведення довідкової інформації про всі доступні у мережі ресурси і сервери, адресація взаємодіючих процесів, забезпечення прозорості доступу, тиражування даних, узгодження копій, підтримка безпеки даних.
Особливості апаратних платформ
На властивості операційної системи безпосередній вплив мають апаратні засоби, на які вона зорієнтована.
За типом апаратури, розрізняють операційні системи персональних комп'ютерів, міні-компютерів, мейнфреймів і мереж ЕОМ. Серед перерахованих типів комп'ютерів можуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні. У будь-якому випадку специфіка апаратних засобів, як правило, відбивається на специфіці операційних систем.
Очевидно, що ОС великої машини є більш складною і функціональною, ніж ОС персонального комп'ютера. Так, в ОС великих машин функції із планування потоку виконуваних задач, мабуть, реалізуються шляхом використання складних пріоритетних дисциплін і вимагають більшої обчислювальної потужності, ніж в ОС персональних комп'ютерів. Аналогічною є справа і з іншими функціями.
Мережна ОС містить засоби передачі повідомлень між комп'ютерами по лініях зв'язку, що зовсім не потрібно в автономній ОС. На основі цих повідомлень, мережна ОС підтримує поділ ресурсів комп'ютера між вилученими користувачами та користувачами, що підключені до мережі. Для підтримки функцій передачі повідомлень, мережні ОС містять спеціальні програмні компоненти, що реалізують популярні комунікаційні протоколи: ІР, ІРХ й інші.
Багатопроцесорні системи жадають від операційної системи особливої організації, за допомогою якої сама операційна система, а також підтримувані нею додатки, могли б виконуватися паралельно з окремими процесорами системи. Рівнобіжна робота окремих частин ОС створює додаткові проблеми для розроблювачів ОС, тому що в цьому випадку набагато складніше забезпечити погоджений доступ окремих процесів до загальних системних таблиць: виключити ефект гонок та інші небажані наслідки асинхронного виконання робіт.
Інші вимоги пред'являють до операційних систем кластерів. Кластер - слабко пов'язана сукупність декількох обчислювальних систем, що працюють спільно з метою виконання загальних додатків і, які пропонуються користувачу єдиною системою. Поряд зі спеціальною апаратурою для функціонування кластерних систем необхідна і програмна підтримка з боку операційної системи, що зводиться, в основному, до синхронізації доступу до поділюваних ресурсів, виявленню відмовлень і динамічної реконфігурації системи.
Однією з перших розробок в області кластерних технологій було рішення компанії Digital Еquipmnet, на базі комп'ютерів VАХ. Недавно цією компанією укладена угода з корпорацією Місrosoft про розробку кластерної технології, що використовує Windows NТ. Кілька компаній пропонують кластери на основі UNІХ-машин.
Поряд з ОС, орієнтованими на визначений тип апаратної платформи, існують операційні системи, спеціально розроблені таким чином, щоб їх легко можна було перенести з комп'ютера одного типу на комп'ютер іншого типу, так названі мобільні ОС. Найбільш яскравим прикладом такої ОС є популярна система UNІХ. У цих системах апаратно-залежні місця ретельно локалізовані, таким чином, що при перенесені системи на нову платформу листуються тільки вони. Засобом, що полегшує перенос частин ОС, є написання її машинно-незалежною мовою, наприклад, на С, що і був розроблений для програмування операційних систем.
Особливості областей використання
Багатозадачні ОС поділяють на три типи, відповідно до використаних критеріїв ефективності:
• системи пакетної обробки (наприклад, ОС, ЕС);
• системи поділу часу (UNIX, VМS);
• системи реального часу (QNT, RТ/11).
Системи пакетної обробки використовують для вирішення задач, в основному обчислювального характеру, що не потребує швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність, тобто рішення максимальної кількості задач за одиницю часу. Для досягнення цієї мети, в системах пакетної обробки використовують наступну схему функціонування: на початку роботи формують пакет завдань, кожне завдання містить вимогу до системних ресурсів, з цього пакету формують мультипрограмну суміш, тобто безліч одночасно виконуваних задач. Для одночасного виконання вибирають задачі, пред'являють вимоги, що відрізняються від ресурсів, так, щоб забезпечувалося збалансоване завантаження всіх будов обчислювальної машини; так, наприклад, у мультипрограмній суміші бажана одночасна присутність обчислювальних задач і задач з інтенсивним введенням-виведенням. Таким чином, вибір нового завдання з пакету завдань залежить від внутрішньої ситуації, що формується в системі, тобто вибирається "вигідне" завдання. Отже, у таких ОС неможливо гарантувати виконання того чи іншого завдання протягом визначеного періоду часу. У системах пакетної обробки переключення процесора з виконання однієї задачі на виконання іншої відбувається тільки у випадку, якщо активна задача сама відмовляється від процесора, наприклад, через необхідність виконати операцію введення-виведення. Тому одна задача може надовго зайняти процесор, що унеможливлює виконання інтерактивних задач. Таким чином, взаємодія користувача з обчислювальною машиною, на якій установлена система пакетної обробки, зводиться до того, що він приносить завдання, віддає його диспетчеру-оператору, а наприкінці дня після виконання всього пакету завдань одержує результат. Очевидно, такий порядок знижує ефективність роботи користувача.
Системи поділу часу призвані виправити основний недолік систем пакетної обробки ізоляцію користувача-програміста від процесу виконання його задач. Кожному користувачу системи поділу часу надається термінал, з якого він може вести діалог зі своєю програмою. Оскільки в системах поділу часу кожній задачі виділяється тільки квант процесорного часу. Жодна задача не займає процесор надовго і тому час відповіді є прийнятним. Якщо квант обраний невеликим, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожний із них одноосібно використовує машину.
Системи поділу часу володіють меншою пропускною здатністю, ніж системи пакетної обробки, тому виконується кожна запущена користувачем задача, а не та, котра "вигідна" системі і, крім того, є накладні витрати обчислювальної потужності на частіше переключення процесора із задачі на задачу. Критерієм ефективності систем поділу часу є не максимальна пропускна здатність, а зручність і ефективність роботи користувача.
Системи реального часу використовують для керування різними технічними об'єктами, такими, наприклад, як верстат, супутник, наукова установка технологічними процесами. У цих випадках існує гранично припустимий час, протягом якого повинна бути виконана та чи інша програма, що керує об'єктом, у іншому випадку може відбутися аварія: супутник вийде з зони видимості, експериментальні дані, що надходять із датчиків, будуть втрачені, товщина гальванічного покриття не буде відповідати нормі. Таким чином, критерієм ефективності для систем реального часу є їхня здатність витримувати заздалегідь задані інтервали часу між запуском програми й одержанням результату (керуючого впливу) - цей час називають часом реакції системи, а відповідну властивість системи - реактивністю. Для цих систем мультипрограмна суміш являє собою фіксований набір заздалегідь розроблених програм, а вибір програми на виконання здійснюється виходячи з поточного стану чи об'єкта, відповідно до розкладу запланових робіт.
Деякі операційні системи можуть поєднувати в собі властивості систем різних типів, наприклад, частину задач можуть виконувати в режимі пакетної обробки, а частину - в режимі реального часу чи в режимі поділу часу. У таких випадках режим пакетної обробки часто називають фоновим режимом.
Особливості методів побудови
Описуючи операційні системи, часто вказують особливості її структурної організації й основні концепції, закладені в її основу. До таких базових концепцій належать:
• Способи побудови ядра системи - монолітне ядро чи мікро ядерний підхід. Більшість ОС використовує монолітне ядро, що компонується як одна програма. Воно працює в привілейованому режимі і використовує швидкий перехід з однієї процедури на іншу, не потребуючи переключення з привілейованого режиму в користувальницький і навпаки. Альтернативою є побудова ОС на базі мікро ядра, що працює також у привілейованому режимі і виконуючого тільки мінімум функцій із керування апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють у користувальницькому режимі. При такій побудові, ОС працює повільніше, тому що часто виконуються переходи між привілейованим режимом і користувальницьким. Проте система є більш гнучкою - її функції можна нарощувати чи модифікувати, звужувати, додаючи, чи модифікуючи, крім серверів користувальницького режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувальницькі процеси.
• Побудова ОС, на базі об'єктно-орієнтованого підходу, дає можливість використовувати всі її привілеї, що добре зарекомендували себе на рівні додатків, усередині операційної системи, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі наявних, за допомогою механізму успадкування, захист даних, за рахунок їхньої інкапсуляції у внутрішні структури об'єкта, що робить їх недоступними для несанкціонованого використання ззовні, структуризованості системи, що складається з набору добре визначених об'єктів.
• Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасних операційних систем підтримують, одночасно, прикладні середовища MS-DOS, Windows, UNIX (РOSІХ), OS/2, чи хоча б деякі підмножини з цього популярного набору. Концепція множинних прикладних середовищ найпростіше реалізується в ОС, на базі мікро ядра, над яким працюють різні сервери, частина яких реалізують прикладне середовище тієї чи іншої операційної системи.
• Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, що дають можливість користувачу представляти і сприймати мережу у вигляді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби розподілюючих ресурсів, єдиної служби часу, використання механізму виклику вилучених процедур (RРС) для прозорого розподілу програмних процедур по машинах багатониткової обробки, що дозволяє розмежовувати обчислення в рамках однієї задачі і виконувати цю задачу відразу на декількох комп'ютерах мережі.
Мережні операційні системи
Структура мережної операційної системи
Мережна операційна система є основою будь-якої обчислювальної мережі. Кожен комп'ютер у мережі є автономним, тому під мережною операційною системою, в глибокому значенні, розуміється сукупність операційних систем окремих комп'ютерів, взаємодіючих, із метою обміну повідомленнями i поділу ресурсів, за єдиними правилами - протоколами. У вузькому змісті мережна ОС - це операційна система окремого комп'ютера, що забезпечує йому можливість працювати в мережі.
Мал. 1.1. Структура мережної ОС
У мережній операційній системі окремої машини можна виділити кілька частин (малюнок 1.1). Засоби керування локальними ресурсами комп'ютера: функції розподілу оперативної пам'яті між процесами планування i диспетчеризації процесів, керування процесорами в мультипроцесорних машинах, керування периферійними пристроями. Функції керування ресурсами локальних ОС:
У залежності від функцій, покладених на конкретний комп'ютер, у його операційній системі може бути відсутня або клієнтська, або серверна частини.
На малюнку 1.2 показана взаємодія мережних компонентів. Тут комп'ютер і виконує роль "чистого" клієнта, а комп'ютер 2 - роль "чистого" сервера, відповідно до цього на першій машині відсутня серверна частина, а на другій -клієнтська. На малюнку окремо показаний компонент клієнтської частини - редиректор. Саме редиректор перехоплює всі запити, що надходять від додатків i аналізує їx. Якщо виданий запит до ресурсу даного комп'ютера, то він переадресовується відповідній підсистемі локальної ОС. Якщо ж це запит до вилученого ресурсу, то він перескеровується в мережу. При цьому клієнтська частина перетворює запит із локальної форми в мережний формат i передає його транспортній підсистемі, що відповідає за доставку повідомлень зазначеному серверу. Серверна частина операційної системи комп'ютера 2 приймає запит, перетворює його i передає для виконання в локальну ОС. Після того, як результат отриманий, сервер звертається до транспортної підсистеми i скеровує відповідь клієнту, що подав запит. Клієнтська частина перетворює результат у відповідний формат i адресує його тому додатку, що видає запит.
Мал. 1.2. Взаємодія компонентів операційної системи при взаємодії комп'ютерів.
На практиці існує кілька підходів до побудови мережних операційних систем (малюнок 1.3).
Мал. 1.3. Bapiaнmu побудови мережних ОС
Перші мережні ОС являли собою сукупність існуючої локальної ОС і настроєної над неймережної оболонки. При цьому, в локальну ОС вбудовують мінімум мережних функцій, необхідних для роботи мережної оболонки, що виконує основні мережні функції. Прикладом такого підходу є часте використання мережі операційної системи МS DOS ( починаючи з її третьої версії з'явилися такі вбудовані функції як блокування файлів і записів, необхідні для спільного доступу до файлів). Принцип побудови мережних ОС у вигляді мережної оболонки над локальної ОС використовують й у сучасних ОС, таких, наприклад, як LАNtastic чи Реrsonal Wаrе.
Однак більш ефективним є шлях розробки операційних систем, споконвічно призначених для роботи в мережі. Мережні функції в ОС такого типу глибоко вбудовані в основні модулі системи, що забезпечує їхню логічну стрункість, простоту експлуатації і модифікації, а також високу продуктивність. Прикладом такого ОС є система Windows NT фірми Місrоsоft, що завдяки вбудованості мережних засобів забезпечує більш високі показники продуктивності і захищеності інформації в порівнянні з мережною ОС LAN Маnager тієї ж фірми (спільна розробка з IВМ), що є надбудовою над локальної операційної системи 0S/2.
Однорангові мережні ОС і ОС з виділеними серверами
У залежності від того, як розподілені функції між комп'ютерами мережі, мережні операційні системи, а отже, і мережі поділяються на два класи: однорангові і дворангові. Останні частіше називають мережами з виділеними серверами.
Якщо комп'ютер надає свої ресурси іншим користувачам мережі, то він відіграє роль сервера. При цьому комп'ютер, що звертається до ресурсів іншої машини, є клієнтом. Як уже було сказано, комп'ютер, що працює в мережі, може виконувати функції або клієнта, або сервера, або ж сполучати обидві ці функції.
Якщо ж виконання будь-яких серверних функцій є основним призначенням комп'ютера (наприклад, надання файлів у загальне користування всім іншим користувачам чи мережі організації спільного використання факсу, або ж надання всім користувачам мережі можливості запуску на даному комп'ютері своїх додатків), то такий комп'ютер називають виділеним сервером. У залежності від того, який ресурс сервера є розподілюваним, їх називають файлом-сервером, факсом-сервером, принт-сервером, сервером додатків і т.д.
Очевидно, що на виділених серверах бажано встановлювати ОС, спеціально оптимізовані для виконання тих чи інших серверних функцій. Тому в мережах із виділеними серверами найчастіше використовують мережні операційні системи, до складу яких входить декілька варіантів ОС, що відрізняються можливостями серверних частин. Наприклад, мережна ОС Novell NetWare має серверний варіант, оптимізований для роботи як файл-сервер, а також варіанти оболонок для робочих станцій з різними локальними ОС, причому ці оболонки виконують винятково функції клієнта. Іншим прикладом ОС, орієнтованої на побудову мережі з виділеним сервером, є операційна система Windows NT. На відміну від NetWare, обидва варіанти даної мережі ОС - Windows NT Server (для виділеного сервера) і Windows NT Workstation (для робочої станції) можуть підтримувати функції і клієнта і сервера. Але серверний варіант Windows NT має більше можливостей для надання ресурсів свого комп'ютера іншим користувачам мережі, тому що може виконувати більш широкий набір функцій, підтримувати більшу кількість одночасних з'єднань із клієнтами, реалізувати централізоване керування мережею, мати більш розвинуті засоби захисту.
Виділений сервер не прийнято використовувати як комп'ютер для виконання поточних задач, не пов'язаних з його основним призначенням, тому що це може зменшити продуктивність його роботи як сервера. У зв'язку з такими розуміннями в ОС Novell NetWare на серверній частині можливість виконання звичайних прикладних програм узагалі не передбачена, тобто сервер не містить клієнтської частини, а на робочих станціях відсутні серверні компоненти. Однак в інших мережних ОС, функціонування на виділеному сервері клієнтської частини цілком можливе. Наприклад, під керуванням Windows NT Server можуть запускати звичайні програми локального користувача, що можуть зажадати виконання клієнтських функцій ОС із появою запитів до ресурсів інших комп'ютерів мережі. При цьому, робочі станції, на яких встановлена ОС Windows NT Workstation, можуть виконувати функції невиділеного сервера.
Важливо зрозуміти, що незважаючи на те, що в мережі з виділеним сервером усі комп'ютери можуть виконувати одночасно роль і сервера, і клієнта ця мережа функціонально несиметрична: апаратно і програмно в ній реалізовані два типи комп'ютерів - одні, у більшій мірі орієнтовані на виконання серверних функцій і працюють під керуванням спеціалізованих серверних ОС, а інші - в основному виконують клієнтські функції і працюють під керівництвом відповідного варіанта ОС. Функціональна несиметричність, як правило, викликає і несиметричність апаратури - для виділених серверів використовують могутніші комп'ютери з великим обсягом оперативної і зовнішньої пам'яті. Таким чином, функціональна несиметричність у мережах із виділеним сервером супроводжується несиметричністю операційних систем (спеціалізація ОС) і апаратною несиметричністю (спеціалізація комп'ютерів).
В однорангових мережах усі комп'ютери рівні в правах доступу до ресурсів один одного. Кожен користувач може за своїм бажанням оголосити будь-який ресурс свого комп'ютера поділюючим, після чого інші користувачі можуть його експлуатувати. У таких мережах на всіх комп'ютерах установлюють ту ж саму ОС, що надає всім комп'ютерам у мережі потенційно рівні можливості. Однорангові мережі можуть бути побудовані, наприклад, на базі ОС LANtastic, Реrsonal Ware, Windows for Workgroup, Windows NT Workstation.
В однорангових мережах також може виникнути функціональна несиметричність: одні користувачі не бажають розділяти свої ресурси з іншими, і в такому випадку їхні комп'ютери виконують роль клієнта, за іншими комп'ютерами адміністратор закріплює тільки функції з організації спільного використання ресурсів, а значить вони є серверами, у третьому випадку, локальний користувач не заперечує проти використання його ресурсів і сам не виключає можливості звертання до інших комп'ютерів. ОС, установлена на його комп'ютері, повинна включати і серверну, і клієнтську частини. На відміну від мереж з виділеними серверами, в однорангових мережах відсутня спеціалізація ОС, у залежності від переважної функціональної спрямованості, чи клієнта сервера. Усі варіації реалізуються засобами конфігурування того самого варіанту ОС.
Однорангові мережі простіші в організації й експлуатації. Однак вони застосовуються, в основному, для об'єднання невеликих груп користувачів, що не пред'являють вимог до обсягів збереженої інформації, її захищеності від несанкціонованого доступу і до швидкості доступу. За підвищених вимог до цих характеристик більш придатними є дворангові мережі, де сервер краще вирішує задачу обслуговування користувачів своїми ресурсами, тому що його апаратура і мережна операційна система спеціально спроектовані для цієї мети.
ОС для робочих груп і ОС для мереж масштабу підприємства
Мережні операційні системи мають різні властивості, в залежності від того, призначені вони для мереж масштабу робочої групи (відділу), чи мереж масштабу корпуса або ж для мереж масштабу підприємства.
• Мережі відділів - використовуються невеликі групи співробітників, що вирішують загальні задачі. Головною метою мережі відділу є поділ локальних ресурсів, таких як додатку, дані, лазерні принтери і модеми. Мережі відділів, звичайно, не розділяють на підмережі.
• Мережі корпусів з'єднують кілька мереж відділів усередині окремого будинку чи однієї території підприємства. Ці мережі є локальними мережами, хоча і можуть покривати територію в кілька квадратних кілометрів. Сервери такої мережі включають взаємодію між мережами відділів, доступ до баз даних підприємства, доступ до факсів-серверів, високошвидкісних модемів і високошвидкісних принтерів.
• Мережі підприємства (корпоративні мережі) поєднують усі комп'ютери всіх територій окремого підприємства. Вони можуть покривати місто чи регіон, навіть континент. У таких мережах користувачам надається доступ до інформації і додатків, що знаходяться в інших робочих групах, інших відділах, підрозділах і штаб-квартирах корпорації.
Головним завданням операційної системи, що використовують у мережі масштабу відділу, є організація поділу ресурсів, таких як додатки, дані, лазерні принтери і, можливо, низькошвидкісні модеми. Звичайно, мережі відділів мають один чи два файлових сервери і не більш, ніж 30 користувачів. Задачі керування, на рівні відділу, відносно прості. До завдань адміністратора належить додавання нових користувачів, усунення простих відмовлень, інсталяція нових вузлів і установка нових версій програмного забезпечення. Операційні системи мереж відділів добре відпрацьовані і різноманітні, так як мережі відділів, що вже давно застосовують і тому вони добре налагоджені. Така мережа, звичайно, використовує одну чи, максимум, дві мережні ОС. Найчастіше це мережа з виділеним сервером NetWare 3.x чи Windows NT, або ж однорангову мережу, наприклад, мережу Windows for Workgroups. Користувачі й адміністратори мереж відділів незабаром усвідомлять, що вони можуть покращити ефективність своєї роботи шляхом одержання доступу до інформації інших відділів свого підприємства. Якщо співробітник, що займається продажем, може одержати доступ до характеристик конкретного продукту і включити їх у презентацію, то ця інформація буде найновішою і буде мати вплив на покупців. Якщо відділ маркетингу може одержати доступ до характеристик продукту, що ще тільки розробляється інженерним відділом, то він може швидко підготувати маркетингові матеріали відразу ж після закінчення розробки.
Отже, випливає, що кроком в еволюції мереж є об'єднання локальних мереж декількох відділів у єдину мережу чи будинку, чи групи будинків. Такі мережі називають мережами корпусів. Мережі корпусів можуть сягати кількох кілометрів, але при цьому не вимагати глобальних з'єднань.
Операційна система, що працює в мережі корпуса, повинна забезпечувати для співробітників одних відділів доступ до деяких файлів і ресурсів мереж інших відділів. Послуги, надані ОС мереж корпусів, не обмежуються простим поділом файлів і принтерів. ОС мереж надають доступ і до серверів інших типів, наприклад, до факсів-серверів і до серверів високошвидкісних модемів. Важливим сервісом, наданим операційними системами даного класу, є доступ до корпоративних баз даних, незалежно від того чи розташовуються вони на серверах баз, чи на міні-компютерах.
Саме на рівні мережі корпуса починаються проблеми інтеграції. Загалом, відділи уже вибрали для себе типи комп'ютерів мережного устаткування і мережних операційних систем. Наприклад, інженерний відділ може використовувати операційну систему UNIX і мережне устаткування Ethernet; відділ продажу може використовувати операційні середовища DOS/Novell й устаткування Token Ring. Дуже часто мережа корпусу з'єднує різнорідні комп'ютерні системи, у той час як мережі відділів використовують однотипні комп'ютери.
Корпоративна мережа з'єднує мережі всіх підрозділів підприємства, що знаходяться на значних відстанях. Корпоративні мережі використовують глобальні зв'язки (WAN links), з метою поєднання локальних мереж чи комп'ютерів.
Від користувачів корпоративних мереж вимагають всі ті додатки і послуги, що є в мережах відділів і корпусів, а також деякі додаткові додатки і послуги. Наприклад, доступ до додатків мейнфреймів і міні-компютерів та до глобальних зв'язків. Коли ОС розробляють для локальної чи мережі робочої групи, те її головним обов'язком є поділ файлів і інших мережних ресурсів (звичайно, принтерів) між локально підключеними користувачами. Такий підхід не застосовують для рівня підприємства. Поряд з базовими сервісами, пов'язаними з поділом файлів і принтерів, мережна ОС, що розробляють для корпорацій, повинна підтримувати більш широкий набір сервісів, до котрих звичайно, належить поштова служба, засоби колективної роботи, підтримка вилучених користувачів, факс-сервіс, обробка голосових повідомлень, організація відеоконференцій і ін.
Крім того, існує багато методів і підходів до рішення традиційних задач. Мережі менших масштабів для корпоративної мережі виявилися непридатним. Пріоритетними стали задачі і проблеми, котрі у мережах робочих груп, відділів і, навіть, корпусів або мали другорядне значення, або ж взагалі не виявлялися. Наприклад, найпростіша для невеликої мережі задача введення облікової інформації для користувачів перетворилася в складну проблему для мережі підприємства. А використання глобальних зв'язків вимагає від корпоративних ОС підтримки протоколів, що добре працюють на низькошвидкісних лініях і відмову від деяких традиційно використовуваних протоколів (наприклад, тих, котрі активно використовують широкомовні повідомлення). Особливе значення отримали задачі подолання гетерогенності - у мережі з'явилися численні шлюзи, що забезпечують погоджену роботу різних ОС і мережних системних додатків.
До ознак корпоративних ОС можуть належати також наступні їх особливості.
Підтримка додатків. За допомогою корпоративних мереж виконують складні додатки, що вимагають для свого виконання великої обчислювальної потужності. Такі додатки поділяються на кілька частин, наприклад, на одному комп'ютері виконується частина додатку, пов'язана з виконанням запитів бази даних, на іншому - запитів файлового сервісу, а на клієнтських машинах - частина, що реалізує логіку обробки даних додатку й організовує інтерфейси користувачем. Обчислювальна частина загальних для корпорації програмних об'ємною і непід'ємною, для робочих станцій клієнтів. Тому додатки будуть виконуватися ефективніше, якщо їх найскладніші, в обчислювальному відношенні частини, перенести на спеціально призначений для цього могутній комп'ютер - сервер додатків.
Сервер додатків повинен базуватися на могутній апаратній платформі (мультипроцесорна система, часто на базі RISC-процесора, спеціалізованій кластерній архітектурі). ОС сервера додатків забезпечує високу продуктивність обчислень, а значить підтримує багатобітну обробку, що витісняє багатозадачності, мультипроцесування, віртуальну пам'ять і найбільш популярні прикладні середовища (UNIX, Windows, MS-DOS, OS/2). Тому мережна ОС NetWare не належить до корпоративних продуктів, оскільки в ній відсутні майже усі вимоги, пропоновані для сервера додатків. У той же час, підтримка універсальних додатків у Windows NT, власне, і дозволяє їй претендувати на місце у світі корпоративних продуктів.
Довідкова служба. Корпоративна ОС повинна мати здатність зберігати інформацію про всіх користувачів і ресурси. Таким чином, забезпечується керування всією системою з одного центрального пункту. Так як велика організація, корпоративна мережа має потребу в централізованому збереженні повної довідкової інформації про себе (починаючи з даних про користувачів, сервери, робочі станції і закінчуючи даними про кабельну систему). Можна подати цю інформацію у вигляді бази даних. Дані, з цієї бази, можуть бути використані багатьма мережними системними додатками, у першу чергу, системами керування й адміністрування. Крім цього, така база корисна при організації електронної пошти, систем колективної роботи, служби безпеки, служби інвентаризації програмного й апаратного забезпечення мережі, та й для будь-якого великого бізнес-додатку.
В ідеалі мережна довідкова інформація повинна бути реалізована у вигляді єдиної бази даних, а не являти собою набір баз даних, що спеціалізуються на збереженні інформації того чи іншого виду як це часто буває в реальних операційних системах. Наприклад, у Windows NT є принаймні п'ять різних типів довідкових баз даних. Головний довідник домена (NT Domain Directory Servise) зберігає інформацію про користувачів, що використовують при організації їхнього логічного входу в мережу. Дані про тих же користувачів можуть міститися й в іншому довіднику, використовуваному електронною поштою Microsoft Маіl. Ще три бази даних підтримують дозвіл низькорівневих адрес: WINS - установлює відповідність Netbios-імен ІР-адресам, довідник DNS - сервер імен домена (є корисним при підключенні NТ-мережі до Internet) і, нарешті, довідник протоколу DНСР ( використовують для автоматичного призначення ІР-адрес комп'ютерам мережі). Найближче до ідеалу знаходяться довідкові служби, що доставляє фірма Ваnуаn (продукт Streettalk III) і фірма Novel (NetWare Directory Services), що пропонують єдиний довідник для всіх мережних додатків. Наявність єдиної довідкової служби для мережної операційної системи - один із найважливіших ознак її корпоративності.
Безпека. Особливе значення для ОС корпоративної мережі має безпека її даних. З одного боку, у великомасштабній мережі, об'єктивно існує більше можливостей для несанкціонованого доступу: через децентралізацію даних через велике число користувачів, благонадійність яких важко встановити, а також через велике число можливих пунктів несанкціонованого підключення до мережі. З іншого боку, корпоративні бізнес-додатки працюють з даними, що мають життєво важливе значення для успішної роботи корпорації вцілому. З метою захисту таких даних, у корпоративних мережах, поряд з різними апаратними засобами, використовують весь спектр засобів захисту, наданий операційною системою: виборчі чи мандатні права доступу, складні процедури аутентифікації користувачів програмну шифрацію.
КОНТРОЛЬНІ ПИТАННЯ
Основи роботи з програмою Norton Commander
Програма Nopton Commander, розроблена фірмою Peter Norton Comperting, є однією з найпопулярніших програм оболонок для роботи з операційною системою DOS. Як правило, з її допомогою користувачі переглядають каталоги, копіюють, змінюють назви, знищують файли, запускають програми і т. д. Звичайно, це все можна зробити безпосередньо, використовуючи можливості самої операційної системи DOS. Але більшість користувачів надають перевагу програмі Norton Commander.
Взаємодія користувача з операційною системою DOS побудована за принципом діалогу: користувач набирає на клавіатурі потрібну команду і натискає клавішу “Enter”, після чого DOS виконує введену команду. Такий спосіб взаємодії не наочний і недостатньо зручний. Дійсно, для того, щоб скопіювати файл в інший каталог, потрібно набрати імя команди, імя файла та імя каталога, а для цього потрібно памятати ці імена і не помилитися при їх наборі. Набагато простіше вказати, за допомогою клавіш керування курсором або мишки, в певне місце екрану, щоб виділити потрібний файл, а пізніше - каталог, в який треба скопіювати файл, а вже після цього - потрібну дію. Саме Norton Commander дозволяє працювати з компютером на такому наочному рівні.
Головне ìåíþ ïðîãðàìè Norton Commander çíàõîäèòüñÿ â âåðõíié ÷àñòèíi åêðàíó, íàä ïàíåëÿìè (ìàë.8.3.).
Для виведення на екран головного ìåíþ ïðîãðàìè Norton Commander можна:
Мал.8.3. Головне ìåíþ ïðîãðàìè Norton Commander
Äëÿ âiäêðèòòÿ áóäü-ÿêîãî ç ïóíêòiâ öüîãî ìåíþ потрібно виділити öåé ïóíêò курсором i íàòèñíóòè êëàâiøó Enter.
Ïóíêò "Ëåâàÿ" ("Ïðàâàÿ") âiäíîñèòüñÿ äî ëiâî¿ (ïðàâî¿) ïàíåëi. Öåé ïóíêò äîçâîëÿº âiäîáðàæàòè:
Ïóíêò "Ôàéë" ìiñòèòü:
Ïóíêò "Äèñê" ïðèçíà÷åíèé äëÿ:
Ïóíêò "Êîìàíäè" ïðèçíà÷åíèé äëÿ:
При натисканні клавіші F3, Norton Commander дозволяє переглянути виділений курсором файл.
Для переміщення по файлі, який переглядається, можна використовувати клавіші , , PgUp; PgDn, , .
Клавіші “Home” і “End” служать для переміщення на початок і кінець файла. При перегляді документів, баз даних і таблиць табличних процесорів, можна також використовувати клавіші “F7”, з метою пошуку рядка символів (від позиції курсору до кінця файла), і Shift F7, для повторення пошуку того рядка символів.
При перегляді текстових файлів і документів можуть використовуватися наступні можливості:
F2 переносити чи ні на інший рядок довгі рядки документів;
F4 виведення файла в шістнадцятковому або текстовому виді;
F8 вибір режиму перегляду документів;
При перегляді баз даних можна використовувати наступні клавіші:
“+”, “-” (у правій частині клавіатури) переміщення вперед-назад на запит бази даних;
F5 переміщення по запису з даним номером;
F4 переключення між табличним переглядом бази даних та переглядом за окремими записами;
F2 виведення списку полів бази даних;
F1 виведення довідки про базу даних.
При перегляді таблиць, натиснувши клавішу F5, можна перейти до клітинки з даним номером.
При перегляді графічних файлів, клавіші “+”, “-” збільшують і зменшують зображення на екрані.
Програма Norton Commander має внутрішній редактор, призначений для редагування простеньких текстових файлів.
Для створення нового текстового файлу необхідно виконати наступні дії:
Для редагування вже існуючого текстового файла слід виділити його курсором і натиснути клавішу F4.
Всі зміни в тексті і вставки нового тексту відбуваються в тій позиції, на яку вказує курсор.
Курсор можна рухати за допомогою клавіш , , , , відповідно на одну позицію вліво, вправо, вверх, вниз;
PgUp i PgDn на сторінку (розмір екрану) вверх і вниз;
Ctrl+ і Ctrl+ - на слово вліво і вправо;
Home i End на початок і кінець рядка;
Ctrl+Home, Ctrl+End на початок і кінець файлу;
Alt+F8 на рядок з даним номером;
Для введення тексту, слід перемістити курсор на те місце, де потрібно вводити новий текст і почати набір тексту, натискаючи відповідні буквено-цифрові клавіші. Для закінчення рядка, потрібно натиснути клавішу “Enter”.
Якщо необхідно ввести символ із верхнього регістру клавіатури, то слід натиснути клавішу Shift і, не відпускаючи її, натиснути клавішу з потрібним символом.
Для переключення на інший алфавіт, у випадку, якщо потрібно перейти від введення кирилиці до введення латинських букв і навпаки, необхідно переключити клавіатуру у відповідний режим. Це можна зробити за допомогою драйвера клавіатури. Наприклад, Сtrl+Shift (праві).
Для знищення символів і рядків застосовують наступні клавіші:
Del знищення символу справа від курсору;
Backspace знищення символу зліва від курсору;
Ctrl+Y знищення рядка;
Ctrl+P знищення тексту від позицій курсору до кінця рядка;
Операції з файлами здійснюють за допомогою наступних функціональних клавіш:
F2 зберегти створений файл;
Shift+F2 зберегти відредагований файл під іншим іменем;
F10 вийти з режиму редагування (це можна зробити також за допомогою клавіші Esc);
Shift+F10 зберегти відредагований файл і вийти з режиму редагування;
F9 виведення файлу на принтер;
Alt+F5 вставка в документ, який редагується, вмісту іншого файлу;
Alt+F9 визначає чи потрібно створювати ВАК файли для зберігання результатів редагування.
Пошук рядків символів здійснюють за допомогою клавіш:
F7 - пошук рядка символів у документі від позиції курсору до кінця документа;
Shift+F7 пошук рядка символів у документі від позиції курсору до початку документа;
Alt+F7 повторення пошуку того ж рядка символів.
Пошук і заміну здійснюють за допомогою клавіш:
F4 пошук рядка символів у документі від позиції курсору до кінця документа і заміна його на інший рядок символів;
Shift+F4 пошук рядка символів у документі від позиції курсору до початку документа і заміна його на інший рядок символів;
Alt+F4 повторення пошуку і заміни за цими ж параметрами.
Для операції з блоками тексту існують наступні можливості. Щоб виділити блок тексту, потрібно встановити курсор на перший або останній рядок блоку і натиснути F3. Потім слід перемістити курсор в інший крайній рядок блоку і знову натиснути F3.
Shift+F3 відмінити виділення блоку тексту;
F5 скопіювати блок тексту в позиції перед курсором;
F6 перемістити блок тексту в позицію перед курсором;
F8 знищити блок тексту;
Alt+F10 добавити блок тексту до файла.
При роботі з файлами на дисках (особливо, на дискетах), можуть виникати помилки: диск не читається, не форматований і т. д. У випадку виникнення таких ситуацій Norton Commander виводить на екран відповідні повідомлення.
Наприклад, якщо при операції введення-виведення з диском виникає помилка в даних, то буде виведено повідомлення (Error on otrive… Data error). У відповідь на це потрібно виділити один із надписів “Retry” або “Abort” і натиснути клавішу “Enter”.
Retry повторити операцію введення-виведення, при якій виникла помилка.
Abort закінчити ту функцію Norton Commander, при роботі якої виникла помилка.
Norton Commander надає достатньо зручні засоби для роботи з архівами типу ZIR, ARJ, ARC, PAK, LZH i ZOO.
Для витягнення файлу із архіву, потрібно виділити в панелі із вмістом архіву, імена файлів і натиснути клавішу F5. Далі всі дії виконуються так як і при копіюванні файлів із звичайного каталога.
Якщо необхідно витягнути всі файли із архіву, то потрібно вказати цей архів і натиснути Alt F6. У виведеному запиті вказати каталог, в який потрібно “витягувати” файли, включаючи клавішею “Пробіл” режим “Include sub directories” (включаючи підкаталоги) і натиснути “Enter”.
Для розташування файлів в архіві, потрібно вивести на панель Norton Commander вміст архіву, перейти на іншу панель, виділити на ній імена файлів, які розташовуються в архіві і натиснути F5 і Ctrl Enter.
Для того, щоб файли помістити в новий архів, потрібно виділити імена файлів, які розташовуються в архіві і натиснути Alt F5. Norton Commander виведе запит про параметри розташування файлів в архіві. У цьому запиті потрібно вказати імя архівного файла, а також можна:
Для витягнення файлів з архіву, потрібно вивести на панель Norton Commander вміст архіву, виділити імена цих файлів і натиснути F5 та Enter.
Norton Commander дає можливість створення меню користувача, що використовують для швидкого запуску на виконання команд та програм, визначених ним. Це меню зявляється на екрані при натисканні клавіші F2. Користувач може клавішами переміщення курсору і , виділити потрібний пункт меню і, натиснувши клавішу Enter, виконати відповідні команди.
Список команд, які містить меню, задається користувачем у файлі nc.mnu. Цей файл може знаходитися або в активному каталозі (таке меню називають головним). Якщо ж файл nc.mnu є і в активному каталозі і в каталозі NC, то надають перевагу файлу із активного каталога (локальне меню).
Файл nc.mnu можна редагувати Norton Commander або будь-яким текстовим редактором.
КОНТРОЛЬНІ ПИТАННЯ
Робота з програмою Windows
Протягом тривалого часу ïåðñîíàëüí³ êîìïþòåðè ïðàöþâàëè áåçïîñåðåäíüî ï³ä êåðóâàííÿì îïåðàö³éíî¿ ñèñòåìè, òîáòî ñï³ëêóâàííÿ ç êîìïþòåðîì ïîëÿãàëî ó ââåäåíí³ êîìàíä îïåðàö³éíî¿ ñèñòåìè ÷åðåç êîìàíäíèé ðÿäîê. Äëÿ òàêî¿ ðîáîòè потрібно äîáðå çíàòè îïåðàö³éíó ñèñòåìó. Îñíîâíèì ïðèñòðîºì ââîäó êîìàíä áóëà àëôàâ³òíî-öèôðîâà êëàâ³àòóðà.
Ïîÿâà ñïåö³àëüíèõ êîðèñòóâàöüêèõ îáîëîíîê îïåðàö³éíî¿ ñèñòåìè, ÿê³ ïîëåãøóþòü òà ñïðîùóþòü ñï³ëêóâàííÿ ç êîìïþòåðîì, ñòàëа ñåðéîçíèì êðîêîì ó ðîçâèòêó ñèñòåìíîãî ïðîãðàìíîãî çàáåçïå÷åííÿ. Íàéïîïóëÿðí³øîþ ïðîãðàìîþ-îáîëîíêîþ º Norton Commander. Вона ðîçðîáëåíà ϳòåðîì Íîðòîíîì. ϳä ÷àñ ¿¿ ðîáîòè, åêðàí äèñïëåÿ ïðàöþº ó ñèìâîëüíîìó ðåæèì³ й îñíîâíèì ïðèñòðîºì ñï³ëêóâàííÿ ç êîìïþòåðîì º êëàâ³àòóðà (êëàâ³ø³ êåðóâàííÿ êóðñîðîì òà ôóíêö³îíàëüí³ êëàâ³ø³).
Ïåðøà âåðñ³ÿ ãðàô³÷íî¿ îáîëîíêè ô³ðìè Microsoft äëÿ IBM-ñóì³ñíèõ ÏÊ ìàëà íàçâó "Windows/286". Âîíà çÿâèëàñü ùå ó 80-õ ðîêàõ, àëå øèðîêîãî ðîçïîâñþäæåííÿ íå îòðèìàëà. Îñîáëèâ³ñòю ¿¿ є òе, ùî åêðàí ïðàöþº â ãðàô³÷íîìó ðåæèì³, à îñíîâíèì ïðèñòðîºì ñï³ëêóâàííÿ ç êîìïþòåðîì ñòຠìàí³ïóëÿòîð “ìèøêà”, ïðè÷îìó äëÿ âèêîíàííÿ ð³çíèõ ä³é íå потрібно çíàòè êîìàíäè îïåðàö³éíî¿ ñèñòåìè, à äîñòàòíüî âèáðàòè íà åêðàí³ ñïåö³àëüí³ êàðòèíêè (ï³êòîãðàìè), ÿê³ ñèìâîë³çóþòü ïåâí³ ïîíÿòòÿ òà 䳿. Îñíîâíà її особливість - ïðèðîäí³ñòü ïîäàííÿ ³íôîðìàö³¿, òîáòî ³íôîðìàö³ÿ ïîäàºòüñÿ ó ò³é ôîðì³, ÿêà çàáåçïå÷óº найбільш åôåêòèâíå çàñâîºííÿ ¿¿ ëþäèíîþ.
Íàñòóïíà âåðñ³ÿ ãðàô³÷íî¿ îáîëîíêè âæå çàâîþâàëà ïîïóëÿðí³ñòü ó êîðèñòóâà÷³â. Öå áóëà "Windows 3.0", ÿêó ô³ðìà Microsoft âèïóñòèëà ó òðàâí³ 1990 ðîêó. Çà íåþ були âåðñ³¿ "Windows 3.1" (ó êâ³òí³ 1992 ðîêó), ïîò³ì "Windows 3.11", "Windows NT" ³, íàðåøò³, 24 ñåðïíÿ 1995 ðîêó, - "Windows 95", ÿêà ñòàëà âæå ñàìîñò³éíîþ, çàâåðøåíîþ îïåðàö³éíîþ ñèñòåìîþ (âîíà ï³äòðèìóº áàãàòîïðîãðàìíèé ðåæèì ³ ïðàöþº ç êîìïþòåðíîþ ìåðåæåþ).
На даний час âèдано ÷åðãîâі âåðñії íàéïîïóëÿðí³øî¿ ó ñâ³ò³ îïåðàö³éíî¿ ñèñòåìè Windows Windows 98, Windows 2000, Windows Millenium, Windows XP. Âîíи ìàють äåùî ³íøèé ³íòåðôåéñ òà ïîêðàùåí³ характеристики, àëå основні ïðèíöèïè ðîáîòè ñï³âïàäàþòü ç ÎÑ Windows 95.
³êíî ó Windows ìຠâèãëÿä, зображений íà мал.10.2.
Äî îñíîâíèõ éîãî åëåìåíò³â íàëåæàòü:
Мал.10.2. Âèãëÿä â³êíà ó Windows
Çàãîëîâîê â³êíà
Âåðõí³é ðÿäîê â³êíà íàçèâàюòü çàãîëîâêîì. Â³í º â óñ³õ â³êíàõ. ßêùî â³êíî àêòèâíå, òî çàãîëîâîê ì³ñòèòü íàïèñ "á³ëèì ïî ÷îðíîìó", òîáòî ñâ³òëèì øðèôòîì íà òåìíîìó òë³. ßêùî â³êíî íå àêòèâíå íàïèñ ó ðÿäêó çàãîëîâêà á³ëий íà ñâ³òëîìó фоні.
Çàãîëîâîê - öå ³ìÿ äîäàòêó, ùî âèêîíóºòüñÿ ó ïîòî÷íîìó â³êí³ (äëÿ â³êîí, ùî ì³ñòÿòü ïðèêëàäí³ ïðîãðàìè), àáî ³ìÿ ïàïêè (äëÿ ãðóïîâèõ ìåíþ) - мал.10.3.
Мал.10.3. Çàãîëîâîê â³êíà ïàïêè
Ó ïðèêëàäíîìó â³êí³ ï³ñëÿ çàãîëîâêó ðîçì³ùóºòüñÿ ³ìÿ äîêóìåíòà, ùî â íüîìó îáðîáëÿºòüñÿ.
Ïîäâ³éíå êëàöàííÿ ë³âîþ êíîïêîþ ìèøêè íà ïîë³ çàãîëîâêó ì³íÿº ðîçì³ð â³êíà ç ïîâíîåêðàííîãî íà íîðìàëüíèé або íàâïàêè.
ßêùî ðîçì³ñòèòè êóðñîð ìèøки íà ïîë³ çàãîëîâêó â³êíà ³ çàô³êñóâàòè її êíîïêó, òî ïåðåì³ùåííÿ ìèøки âèêëè÷å â³äïîâ³äíå ïåðåì³ùåííÿ âñüîãî â³êíà ïî ïîëþ åêðàíу. Çâ³ëüíåííÿ êíîïêè ìèøки çàô³êñовóº â³êíî ó íîâîìó ì³ñö³.
Ïåðåì³ùувàòè ìîæíà ò³ëüêè â³êíî íîðìàëüíîãî ðîçì³ðó (íå ïîâíîåêðàííå), ïðè÷îìó ìåæàìè ïåðåì³ùåííÿ º ðàìêè çîâí³øíüîãî â³êíà àáî ìåæ³ åêðàíà.
Êíîïêîþ âèêëèêó ñèñòåìíîãî ìåíþ (ñèñòåìíèì ïåðåìèêà÷åì) º ï³êòîãðàìà ë³âîðó÷ â³ä íàçâè â³êíà àáî äîäàòêà ó çàãîëîâêó â³êíà. ßêùî çàô³êñóâàòè íà í³é êóðñîð ìèøки, òî â³äêðèºòüñÿ ñèñòåìíå ìåíþ, ÿêå ì³ñòèòü ðÿä äèðåêòèâ êåðóâàííÿ â³êíîì, òîáòî ïðîãðàìîþ, ùî â íüîìó âèêîíóºòüñÿ.
Çà äîïîìîãîþ ñèñòåìíîãî ìåíþ ìîæíà:
Ïðè ô³êñàö³¿ курсору ìèøки íà êíîïö³ çãîðòàííÿ â³êíà , âîíî ïåðåòâîðþºòüñÿ íà îäíîéìåííó êíîïêó на ïàíåë³ çàäà÷, àëå програма ïðè öüîìó ïðîäîâæóº ïðàöþâàòè.
Ïðè ô³êñàö³¿ курсору ìèøки íà êíîïö³ розгортання â³êíà , îñòàííº çá³ëüøóºòüñÿ äî розмірів åêðàíà. Ïðè öüîìó êíîïêà çì³íþº âèãëÿä íà òàêèé . ßêùî çàô³êñóâàòè êóðñîð ìèøки íà ö³é êíîïö³, òî â³êíî ïðèéìຠíîðìàëüí³ ðîçì³ðè.
Êíîïêà çàêðèâຠâ³êíî. Ïðè öüîìó äîäàòîê çîâñ³ì ïðèïèíÿº ñâîþ ðîáîòó.
Ðÿäîê ãîëîâíîãî ìåíþ â³êíà
Ïðèêëàäíå â³êíî ì³ñòèòü ðÿäîê ìåíþ, ÿêий äîçâîëÿº êåðóâàòè äîäàòêîì, ùî âèêîíóºòüñÿ ó â³êí³. Âікно ì³ñòèòü ðÿä åëåìåíò³â, ïåðøèì ç ÿêèõ º ñëîâî “File”. Ïðè ô³êñàö³¿ курсору ìèøки íà åëåìåíòàõ öüîãî ðÿäêà, ÿê ïðàâèëî, â³äêðèâàºòüñÿ äîäàòêîâå ìåíþ (ï³äìåíþ), ùî ì³ñòèòü äèðåêòèâè îáñëóãîâóâàííÿ äîäàòêà.
Ìåíþ º åôåêòèâíèì çàñîáîì êåðóâàííÿ, äîñòóïíèì ïðàêòè÷íî ç áóäü-ÿêîãî â³êíà àáî ï³êòîãðàìè. Взагалі, âîíî ÿâëÿº ñîáîþ ïðÿìîêóòíå ïîëå, â ÿêîìó ïåðåë³÷åíî äîñòóïí³ îïåðàö³¿ àáî äîñòóïí³ äëÿ óñòàíîâêè îïö³¿ (Мал.10.5.).
Мал.10.4. Âèãëÿä ñòàíäàðòíîãî ìåíþ â³êíà
Ìåíþ, ïðàêòè÷íî, çàâæäè çíàõîäÿòüñÿ ó çãîðíóòîìó ñòàí³ ³ íà åêðàí³ â³äîáðàæàþòüñÿ ò³ëüêè його çàãîëîâêè.
Мал.10.5. Ðîçêðèòòÿ ïóíêòó ìåíþ
Äëÿ ðîçêðèòòÿ áóäü-ÿêîãî ïóíêòó ìåíþ äîñèòü çàô³êñóâàòè íà íüîìó êóðñîð ìèøки. За öієї умови â³äêðèºòüñÿ ï³äìåíþ. ßê ïðàâèëî, åëåìåíòè ï³äìåíþ ñêëàäàþòüñÿ ç îäíîãî-äâîõ ñë³â.
ßêùî ó ï³äìåíþ º ðÿäêè ç òðèêóòíèêîì ïðàâîðó÷ (ñòð³ëî÷êîþ), òî âèä³ëåííÿ òàêîãî ðÿäêà âèêëèêຠâ³äêðèòòÿ ï³äìåíþ íàñòóïíîãî (á³ëüø íèçüêîãî) ð³âíÿ. Ðÿäêè, ùî çàê³í÷óþòüñÿ òðüîìà êðàïêàìè, âèêëèêàþòü íà åêðàí ä³àëîãîâ³ â³êíà.
ϳñëÿ ô³êñàö³¿ курсору íà ïóíêòàõ ï³äìåíþ, äåÿê³ ç íèõ ïîì³÷àþòüñÿ ãàëî÷êàìè-ïðàïîðöÿìè (âìèêàþòüñÿ îïö³¿). Ùîá âèìêíóòè òàê³ îïö³¿ (ïàðàìåòðè), потрібно ùå ðàç çàô³êñóâàòè íà íèõ êóðñîð ìèøки. Ó цьому випадку ãàëî÷êà çíèêне.
²íø³ ïóíêòè ï³äìåíþ çàïóñêàþòü ïåâí³ îïåðàö³¿, íàïðèêлад, сортування документів у вікні, за датою їх створення.
Смуги прокручування
На правій і нижній межах вікна можуть розміщуватись смуги прокручування. Вони дозволяють “прокручувати” у вікні текст документа подібно до рулону. Це необхідно, коли розміри документа перевищують розміри вікна.
Прокручування документа виконується при фіксації кнопки мишки íà ñòð³ëö³ ñìóãè ïðîêðó÷óâàííÿ àáî ïåðåòÿãóâàíí³ ìàðêåðà ïðîêðó÷óâàííÿ (á³ëîãî ïðÿìîêóòíèêà - á³ãóíêà) âçäîâæ ñìóãè ïðîêðó÷óâàííÿ (Мал.10.2.). ßêùî ðîçì³ñòèòè êóðñîð ìèøки íà ñìóç³ ïðîêðó÷óâàííÿ âèùå àáî íèæ÷å â³ä ìàðêåðà ïðîêðó÷óâàííÿ òà ïðè öüîìó êëàöàòè êíîïêîþ ìèøки, òî â³äáóâàºòüñÿ ïîåêðàííå ïåðåì³ùåííÿ äîêóìåíòà ó â³äïîâ³äíîìó íàïðÿìêó. Ñòð³ëêè íà ãîðèçîíòàëüí³é ñìóç³ ïðîêðó÷óâàííÿ ïåðåì³ùóþòü äîêóìåíò ïðàâîðó÷ àáî ë³âîðó÷, ÿêùî øèðèíà â³êíà íå â³äïîâ³äຠøèðèí³ äîêóìåíòà àáî списку, ðîçì³ùåíîãî ó öüîìó â³êí³.
Ïàíåëü ³íñòðóìåíò³â
Ïàíåëü ³íñòðóìåíò³â, çâè÷àéíî, ðîçì³ùóºòüñÿ ï³ä ðÿäêîì ìåíþ â³êíà. Ñòàíäàðòíà ïàíåëü ³íñòðóìåíò³â ì³ñòèòü êíîïêè, ÿê³ äóáëþþòü êîìàíäè ç ìåíþ â³êíà, що âèêîðèñòîâóþòü íàé÷àñò³øå. Ïðèçíà÷åííÿ îñíîâíèõ ³ç íèõ òàêå:
список, що розкривається, з імям поточної папки; якщо розкрити список, то на екран виводиться структура папок компютера; це дозволяє легко переходити до інших папок; |
|
повернення до батьківської папки, в якій міститься поточна папка (перехід на один рівень назад); |
|
âèëó÷åííÿ âèä³ëåíîãî ôàéëа àáî ïàïêè; |
|
ïåðåêëþ÷åííÿ íà êðóïí³ çíà÷êè (Мал.11.3.); |
|
ïåðåêëþ÷åííÿ íà ìàëåíüê³ çíà÷êè (Мал.11.2.); |
|
ïåðåêëþ÷åííÿ íà çîáðàæåííÿ обєктів ïàïêè ó âèãëÿä³ ñïèñêó; |
|
ïåðåêëþ÷åííÿ íà çîáðàæåííÿ обєктів ïàïêè ó âèãëÿä³ òàáëèö³ (Мал.11.4.). |
Ðÿäîê ñòàíó
Ðÿäîê ñòàíó çíàõîäèòüñÿ á³ëÿ íèæíüîãî êðàþ â³êíà (мал.10.2.). ³í ì³ñòèòü ð³çíó ³íôîðìàö³þ, çàëåæíî â³ä ì³ñöÿ êóðñîðà ìèø³ ó â³êí³ òà âèä³ëåíèõ îáºêò³â:
якщо у вікні не виділено жодного обєкта, то у рядку стану видається інформація про загальну кількість обєктів у вікні та їх сумарний розмір (мал.10.6.);
якщо у вікні виділено кілька обєктів, то в рядку стану зявляється кількість тільки виділених обєктів та їх сумарний розмір;
якщо у вікні розкрите меню, то в рядку стану виводиться пояснення про призначення виділеного в меню рядка.
Мал.10.6. Âì³ñò ðÿäêà ñòàíó
Îñíîâíèì терміном ó Windows º â³êíî, ÿêå ìîæå ³ñíóâàòè â ÷îòèðüîõ зîáðàæåíÿõ:
ϳä ï³êòîãðàìîþ (³êîíêîþ) ðîçóì³þòü ãðàô³÷íå çîáðàæåííÿ, íåâåëèêîãî ðîçì³ðó, ç ï³äïèñîì, ÿêå ñèìâîë³çóº ÿêóñü ä³þ àáî ïîíÿòòÿ. ϳêòîãðàìà є çàêðèòим â³êíîм.
³êíî - öå îáìåæåíà ðàìêîþ ÷àñòèíà ïîâåðõí³ åêðàíà. Âîíî ìає ð³çí³ ðîçì³ðè ³ çíàõîäèòься ó ð³çíèõ ì³ñöÿõ åêðàíà. Óñåðåäèí³ êîæíîãî â³êíà ùîñü “ïîêàçóºòüñÿ”
(äîäàòêîì àáî ñèñòåìîþ) àáî ùîñü "ðîáèòüñÿ" ñàìèì êîðèñòóâà÷åì.
²íøèìè ñëîâàìè, â³êíî - öå ïðîñò³ð äëÿ:
³êíî ìîæå ³ñíóâàòè â ïîâíîåêðàííîìó âèãëÿä³, êîëè çàéìຠâñå ïîëå åêðàíà, àáî â íîðìàëüíîму вигляді, коли займає тільки його частину.
Windows забезпечує незалежний запуск і паралельне виконання кількох програм (додатків). Кожна з програм, що виконуються, має своє власне вікно.
Вигляд та розміщення вікон залежить від того, скільки додатків одночасно працюють у середовищі Windows. Якщо працює тільки один додаток, то слушно виділити йому весь екран, тобто розкрити вікно до максимального розміру.
Робота з двома додатками, одночасно, передбачає наявність на екрані двох вікон і т.д. У цьому випадку â³êíà ìîæóòü ðîçì³ùóâàòèñü îäíå á³ëÿ îäíîãî, îäíå ï³ä îäíèì àáî ÿêèìîñü ³íøèì чином.
ßêùî ÿêèéñü äîäàòîê ó öåé ìîìåíò íå потрібно êîíòðîëþâàòè, òî éîãî â³êíî багато çãîðíóòè äî êíîïêè ç íàçâîþ äîäàòêà ó ïàíåë³ çàäà÷. Ïðè öüîìó äîäàòîê ïðîäîâæóº ðîáîòó, àëå ðåçóëüòàòè його, òèì÷àñîâî, ñõîâàí³ â³ä êîðèñòóâà÷à.
Ô³êñàö³ÿ курсору ìèøки íà ö³é êíîïö³ ðîçãîðòຠâ³êíî äîäàòêà äî ïîïåðåäíüîãî ðîçì³ðó.
Ïëàâíà çì³íà ðîçì³ð³â â³êíà
Ïëàâíî çì³íþâàòè ðîçì³ð ìîæíà ò³ëüêè àêòèâíîãî â³êíà. Äëÿ öüîãî òðåáà âñòàíîâèòè êóðñîð ìèøки íà îäíó ç ìåæ â³êíà, ÿêó òðåáà ïåðåñóíóòè (ïðè öüîìó ñòð³ëêà êóðñîðà ïåðåòâîðþºòüñÿ íà äâîíàïðàâëåíó ïîäâ³éíó ñòð³ëêó), íàòèñíóòè ë³âó êíîïêó ìèøки òà, óòðèìóþ÷è ¿¿ â òàêîìó ñòàí³, ïåðåñóíóòè ìèøêó â ïîòð³áíîìó íàïðÿìêó. Ïðè öüîìó áóäå â³äïîâ³äíî переміщатись ðàìêà â³êíà. Після зâ³ëüíåííÿ êíîïêè ìèøêè, ô³êñóºòüñÿ íîâèé ðоçì³ð â³êíà (Мал.10.7.).
Мал.10.7. Ïëàâíà çì³íà ðîçì³ðó â³êíà çà äîïîìîãîþ êóðñîðà ìèøки
ßêùî "âçÿòèñü" çà êóòîê â³êíà, òî ìîæíà "ïåðåñóíóòè" îäðàçó äâ³ ðàìêè. Ïðè öüîìó äâîíàправлена стрілка буде розміщена на екрані в діагональному напрямку.
Технологія роботи з діалоговими вікнами
Діалогове вікно служить для встановлення параметрів операційної системи Windows 95, параметрів вікна, режимів роботи поточного додатку (програми) тощо. Воно може містити ряд обєктів, зображеíèõ íà мал. 10.8.
Призначення цих обєктів:
âêëàäêà |
ìຠÿðëè÷îê ç íàïèñîì, ðîçì³ùåíèì ï³ä çàãîëîâêîì â³êíà; â³êíî ìîæå ì³ñòèòè äåê³ëüêà âêëàäîê, ðîçì³ùåíèõ îäíà ï³ä îäíîþ; ùîá âèâåñòè âêëàäêó íà ïåðåäí³é ïëàí, потрібно çàô³êñóâàòè êóðñîð ìèøки íà ¿¿ ÿðëè÷êó; |
êíîïêà |
öå ïðÿìîêóòíèê ç íàïèñîì; ô³êñàö³ÿ êóðñîðó íà êíîïö³ âèêëèêຠâèêîíàííÿ àáî â³äìîâó â³ä âèêîíàííÿ ÿêèõîñü ä³é; |
ïåðåìèêà÷³ |
ìàþòü âèãëÿä ê³ëüêîõ ñë³â іç ìàëåíüêèìè â³êîíöÿìè ïåðåä êîæíèì , òà ò³ëüêè â îäíîìó ç â³êîíåöü ñòî¿òü ÷îðíà êðàïêà; âèêîðèñòîâóþòüñÿ äëÿ âèáîðó ïàðàìåòð³â; ïåðåìèêà÷³â, çâè÷àéíî, áóâຠäåê³ëüêà, áî âîíè ì³ñòÿòü àëüòåðíàòèâí³ êîìàíäè, òîáòî êîëè âìèêàºòüñÿ ÿêèéñü ïàðàìåòð, âñ³ ³íø³ âèìèêàþòüñÿ; |
òåêñòîâå ïîëå |
íåâåëè÷êå â³êнî, äî ÿêîãî ìîæíà çàïèñàòè ÿêóñü òåêñòîâó ³íôîðìàö³þ (íàïðèêëàä, ³ìÿ ôàéëа); |
ñïèñîê |
ì³ñòèòü ïåðåë³ê åëåìåíò³â, ç ÿêîãî òðåáà âèáðàòè îäèí, êëàöíóâøè íà íüîìó ë³âîþ êíîïêîþ ìèøки; ñïèñîê ìîæå ìàòè ñìóãó ïðîêðó÷óâàííÿ; |
ñïèñîê, ùî ðîçêðèâàºòüñÿ |
â³êнî ç ï³äêðåñëåíîþ ñòð³ëêîþ âíèç; ïðè ô³êñàö³¿ êóðсору на стрілці розкривається список варіантів, з якого треба вибрати один; таке вікно значно компактніше за звичайний список; |
кнопки-стрілки |
це пара стрілок (трикутничків), направлених угору та вниз; якщо клацнути на стрілці угору, то число, що стоіть ліворуч від стрілок, збільшується, а стрілка вниз забезпечує зменшення цього числа; |
прапорець |
маленький квадратик або кружечок перед назвою параметра; якщо клацнути на цьому параметрі або на прапорці лівою кнопкою мишки, òî у êâàäðàòèêу ïîì³ùàºòüñÿ õðåñòèê, êðàïêà àáî ãàëî÷êà - ïàðàìåòð ââ³ìêíåíî; ïîâòîðíå êëàöàííÿ âèäàëÿº ç êâàäðàòèêà õðåñòèê (êðàïêó àáî ãàëî÷êó) - ïàðàìåòð âèìкнено. |
Мал.10.8. Åëåìåíòè ä³àëîãîâîãî â³êíà
Операційна система Windows починає завантажуватись при ввімкненні компютера і формувати на екрані “робочий стіл”, із розміщеними на ньому піктограмами (іконками), тобто графічними зображеннями з оригінальними підписами, який має вигляд, зображений на мал.10.9:
Мал.10.9. Компоненти робочого стола Windows
У середовищі Windows використовують такі терміни:
Крім файлів, у папках можна зберігати й інші папки (дочірні). Файли містять виконавчі програми, а також документи різного походження.
Як правило, папки мають однакове зображення - , але різні підписи, що відповідають їхньому призначенню, тобто сповіщають про призначення файлів та папок, які в них знаходяться. Проте, деякі папки позначаються спеціальними (унікальними) піктограмами. До них належать папки, які звично розміщуються на робочому столі Windows. Це такі папки як:
“мой компьютер” - дозволяє переглядати та змінювати параметри системи і ресурси власного компютера; |
|
“сетевое окружение” - забезпечує звязок з ресурсами компютерної мережі, тобто з магнітними дисками інших компютерів, підключених до неї; |
|
“корзина” - використовується для тимчасового збереження вилучених із диска папок та файлів. Інформацію з корзини можна відновити на диску. Якщо ж корзину очистити, то вони будуть втрачені назавжди. |
Íà ðîáî÷îìó ñòîë³ òàêîæ ìîæóòü ðîçì³ùóâàòèñü ÿðëèêè ïðîãðàì, ïàïîê òà ðåñóðñ³â êîìïþòåðà, ùî âèêîðèñòîâóþòü íàé÷àñò³øå.
ßðëèê - öå çâè÷àéíà ï³êòîãðàìà, ÿêà âêàçóº íà ÿêèéñü ôàéë, àëå â³äð³çíÿºòüñÿ â³ä ï³êòîãðàìè ôàéëó òèì, ùî ïðè ¿¿ âèëó÷åíí³ ôàéë çàëèøàºòüñÿ íà äèñêó.
Ïðè ïåðåì³ùåíí³ ÿðëèêà â ³íøó ïàïêó, ôàéë, до якого â³í належить, òàêîæ çàëèøàºòüñÿ íà ì³ñö³.
Çзîâí³ ÿðëèê â³äð³çíÿºòüñÿ òèì, ùî ìຠó ë³âîìó íèæíüîìó êóòêó çîáðàæåííÿ ñòð³ëêè ïåðåõîäó. Íàéïîøèðåí³øèìè º ÿðëèêè ïðîãðàì іç ïàêåòó Mocrosoft Office:
запускає на виконання текстовий редактор Microsoft Word for Windows; |
|
запускає на виконання табличний процесор Excel; |
|
запускає на виконання графічний редактор Paint (PaintBrush). |
Якщо додатки використовують не дуже часто, то їхні ярлики розміщувати на робочому столі немає сенсу. У такому випадку їх можна помістити у спеціальну папку.
Файли можуть містити різноманітну інформацію, а тому піктограми, якими вони позначаються, мають різні зображення, найпоширенішими з яких є:
виконавча програма; |
|
документ, підготовлений за допомогою текстового редактора Word for Windows; |
|
файл, що містить графічне зображення, створене редактором Paint; |
|
документ, підготовлений за допомогою табличного процесора Excel; |
|
файл, що містить текст у форматі ДОС; |
|
файли та папки з довідковою інформацією; |
|
файл, який не має спеціального значка тощо. |
Ïàíåëü çàäà÷ - öå ñ³ðà ñìóãà, ùî çàâæäè ì³ñòèòü êíîïêó âèêëèêó ñòàðòîâîãî ìåíþ “Ïóñê” ³ ðÿä ³íøèõ îáºêò³â. Âîíà переважно çíàõîäèòüñÿ á³ëÿ íèæíüîãî êðàþ åêðàíà (õî÷à ¿¿ ìîæíà ðîçì³ùóâàòè çâåðõó, ë³âîðó÷ àáî ïðàâîðó÷). ϳñëÿ çàâàíòàæåííÿ Windows âîíà ìຠâèãëÿä, ïîêàçàíèé íà Мал.10.9. ßêùî â³äêðèòè ÿêåñü â³êíî, òî ðàçîì ç éîãî ïîÿâîþ íà ðîáî÷îìó ñòîë³, íà ïàíåë³ çàäà÷ óòâîðþºòüñÿ êíîïêà ç ³ìÿì öüîãî â³êíà. ×èì á³ëüøå â³êîí áóäå îäíî÷àñíî â³äêðèòî, òèì á³ëüøå êíîïîê áóäå ðîçì³ùåíî на ïàíåë³ çàäà÷. Ïðè öüîìó ¿õ ðîçì³ðè áóäóòü â³äïîâ³äíî çìåíøóâàòèñü (Мал.10.10.).
Мал.10.10. Ïàíåëü çàäà÷ ç êíîïêàìè â³äêðèòèõ â³êîí
Ò³ëüêè îäíå ç â³äêðèòèõ â³êîí ìîæå áóòè àêòèâíèì. Íà ðîáî÷îìó ñòîë³ òàêå â³êíî â³äð³çíÿºòüñÿ â³ä íåàêòèâíèõ òåìíèì êîëüîðîì фону çàãîëîâêó, à íà ïàíåë³ çàäà÷ êíîïêà, ç ³ìÿì àêòèâíîãî ó äàíèé ìîìåíò äîäàòêó âèãëÿäຠÿê íàòèñíóòà. Âñ³ ³íø³ â³äêðèò³ â³êíà на ïàíåë³ çàäà÷ ìàþòü âèãëÿä íåíàòèñíóòèõ êíîïîê. Ùîá ïåðåêëþ÷èòèñü íà ³íøå â³äêðèòå â³êíî (àêòèâ³çóâàòè éîãî), потрібно çàô³êñóâàòè êóðñîð ìèøки íà â³äïîâ³äí³é êíîïö³ â ïàíåë³ çàäà÷ àáî ж ó áóäü-ÿêîìó ì³ñö³ ïîòð³áíîãî â³êíà íà ðîáî÷îìó ñòîë³. Ô³êñàö³ºþ êóðñîðó ìèøки íà êíîïö³ â ïàíåë³ çàäà÷ ìîæíà òàêîæ ðîçãîðíóòè çãîðíóòå â³êíî.
Системне меню
Це меню дає змогу звертатись майже до всіх функцій Windows та запускати на виконання будь-які програми, знайти на дисках будь-який файл, відкрити документ, змінити поточні настройки системи, отримати довідкову інформацію.
Для розкриття цього меню, потрібно виділити курсором кнопку “Пуск” на панелі задач і клацнути лівою кнопкою мишки (мал.12.1.).
Якщо затримати курсор на рядку з трикутником біля правого його краю, праворуч розкривається додаткове меню - підменю, яке має таку ж структуру, як і головне меню (пункти “Программы”, “Документы”, “Настройка” і “Поиск”). Підменю також можуть містити рядки з трикутником, тобто виклик підменю нижчого рівня (мал.12.2.)
Мал.12.1. Вигляд системного меню
Мал.12.2. Системне меню з розкритими підменю
різних рівнів
Пункти системного меню мають таке призначення:
Завершение работы... |
дозволяє перезавантажити операційну систему та підготувати компютер до вимкнення (при роботі з Windows 95 вимикати живлення компютера можна тільки після виконання цієї операції); |
Выполнить... |
дозволяє запустити на виконання будь-яку програму, відкрити папку або документ, які розміщено не тільки на локальних дисках компютера, але й на мережних дисках, якщо відомо імя файлу; тут також можна виконувати команди DOS; |
Справка |
забезпечує виклик довідкової системи для отримання інформації про роботу й налагодження Windows; |
Поиск |
дозволяє знайти та відкрити конкретний файл або папку, знайти у мережі потрібний компютер; вікно пошуку містить декілька вкладинок, за допомогою яких можна задати досить складні умови пошуку; |
Настройка |
відображує перелік компонентів операційної системи, параметри яких можна змінити, наприклад, пункт “Панель задач” дозволяє додавати у системне меню нові пункти та видаляти непотрібні; |
Документы |
відображує список із 15 останніх документів, з якими працював користувач (незалежно від додатків, за допомогою яких вони створені); щоб продовжити працювати з будь-яким із них достатньо зафіксувати курсор мишки на його зображенні, без попереднього завантаження відповідного додатку; |
Программы |
видає на екран список програм (додатків), що є в системі; у цьому списку можуть бути й підменю програм, які розкривають стандартним способом. |
Папка “Мой компьютер”
Папка “Мій компютер” звично розміщується на робочому столі, у верхньому лівому кутку екрана. Це потужний засіб, який забезпечує швидкий доступ до всіх папок, файлів та пристроїв компютера і дозволяє змінювати їхні настройки.
Якщо виділити її курсором мишки та зробити подвійне клацання лівою її кнопко, на екран викликається вікно папки “Мій компютер” (мал.12.13.).
Це вікно дозволяє звернутись до будь-якого диску, підключеного до компютера (у даному випадку: A, B, C, D), до принтера, а також викликати панель керування.
Мал.12.3. Вигляд вікна папки “Мій компютер”
Налагодження системи
За допомогою програм, зібраних у папці “Панель управления” (мал.12.4.), можна змінити параметри клавіатури, екрана, принтера та мишки (наприклад, переключити її під ліву руку).
Оскільки таймер компютера не відзначається великою точністю, досить часто доводиться вносити зміни у системний час. Для цього треба викликати на екран діалогове вікно “Дата/время” з панелі керування, яке має вигляд, показаний на мал.12.5.
Мал.12.4. Папка “Панель управления”
Для зміни року та часу використовують кнопки-стрілки, а місяць вибирається зі списку, що розкривається.Число встановлюють фіксацією курсору мишки на певній даті календаря.
Мал.12.5. Корекція системного часу за допомогою
діалогового вікна “Дата/время”
Папка “Корзина”
Корзина розміщується на робочому столі і призначена для тимчасового збереження файлів, вилучених із жорсткого диска. Вона дозволяє відновити файли, вилучені випадково, тобто файли в корзині насправді не вилучені з диска, а підготовлені до вилучення. Якщо ж корзину очистити, то файли вилучаються зовсім (це видно через збільшення вільного місця на відповідному жорсткому диску).
Корзина з файлами та порожня корзина мають різне зображення (рис.12.6.).
Мал.12.6 Вигляд папки “Корзина” на робочому столі”
Щоб отримати доступ до файлів, перенесених до корзини, треба розкрити вікно “Корзина” подвійним клацанням лівої кнопки мишки.
Щоб вилучити файл із корзини або відновити його на диску, потрібно виділити його у вікні (файл ZAP28_I) і викликати на екран пункт “Файл” головного меню вікна (мал.12.6). У цьому підменю необхідно виділити потрібний пункт (у прикладі пункт “Удалить”) і клацнути лівою кнопкою мишки. Щоб вилучити файл із корзини, потрібно підтвердити необхідність його вилучення, відповівши на додаткове запитання, що зявляється у спеціальному діалоговому вікні (мал.12.7.).
Мал.12.6. Вигляд вікна папки “Корзина” з розкритим
меню
Мал.12.7. Діалогове вікно підтвердження вилучення файлу з корзини
Робота з папками та файлами за допомогою провідника
Провідник - це спеціальна програма, призначена для керування файловою системою Windows. Вона забезпечує доступ до локальних та мережевих ресурсів, у тому числі, до магнітних дисків. Провідник показує вміст папок, дозволяє відкривати, копіювати, переміщувати, видаляти, перейменовувати папки і файли, запускати програми та виводити на екран зображення дерева папок.
Для запуску провідника потрібно розкрити системне меню, клацнувши лівою кнопкою мишки на кнопці “Пуск” з панелі задач, і виділити пункт “Программы”. При цьому на екран видається відповідне підменю, серед рядків якого є пункт “Проводник” (Мал.12.8.) Потім потрібно виділити цей пункт підменю і клацнути лівою кнопкою мишки.
У заголовку вікна провідника вказано, вміст якої папки зображено у цьому вікні. Площина вікна поділяється на дві частини. У лівій (“Всі папки”) зображується структура всіх папок компютера (ієрархія папок), а в правій - вміст папки, виділеної у лівій половині вікна, тобто папки і файли (мал.12.9.).
Мал.12.8. Виклик провідника
Переміщуватись по дереву папок можна за допомогою смуг прокручування, а також клавіш переміщення курсору та маніпулятора “мишка”.
Мал.12.9. Вигляд вікна провідника
Структура дерева папок на диску
Дерево папок можна побачити, якщо викликати “Проводник”. При цьому на екран буде виведено подвійне вікно, ліва половина якого містить дерево папок, коренем якого є папка “Рабочий стол”. Від неї відходять гілки, на яких розміщуються папки “Мой компьютер”, “(С:)”, “Dn” та інші. Таким чином, дерево папок “перекинуте” догори ногами, бо корінь його знаходиться зверху, а гілки “ростуть” униз.
Папки, перед якими в дереві папок у прямокутнику стоїть знак “+”, містять вкладені папки, але в дереві цей вміст не вказано ( мал. 12.6.) це папки “Диск 3.5 (А)”, “Диск 5,25 (В)”, “Dos”, “MSOfice” ).
Папки з поміткою “-” також містять вкладені папки, але їх вміст показано, тобто від такої папки відходить окрема гілка з назвами вкладених папок (це папки “Мой компьютер”, “(С:)” та “Dn”).
Якщо встановити курсор мишки на символ “+” перед якоюсь папкою і клацнути її лівою кнопкою, то її вміст папки розкривається. Якщо ж зафіксувати курсор мишки на символі “-” - папка закриється.
Мал.12.10. Вигляд дерева папок
Якщо зафіксувати курсор мишки на будь-якій папці із дерева папок, то вона стане виділеною і папка розкривається (на темному тлі біла назва - папка “Dn”), а у правій половині вікна буде вказано її вміст, тобто перелік папок і файлів.
Вимкнення компютера
Роботу з Windows не можна завершувати звичним вимкненням або перезавантаженням компютера, оскільки це може призвести до втрати даних. Перед тим, як вимкнути компютер, варто закінчити роботу з усіма програмами. (Це можна зробити у середовищі кожної окремої програми. Інколи це зробити не вдається. Тоді потрібно зафіксувати праву кнопку мишки на панелі задач, на кнопці з назвою програми, вікно якої не закривається, та в меню, що відкриється, вибрати команду Закрить (Закрити, Close)). Після цього потрібно натиснути на кнопку Пуск (Start), щоб викликати головне меню і задати команду Завершение работы (Завершення роботи, Shut Down). На екрані зявиться діалогове вікно Завершение работы с Windows (Завершення роботи з Windows, Shut Down Windows) (Мал.12.11). у якому треба вибрати потрібну команду:
Мал.12.11. Завершення роботи з Windows
• Выключить компьютер (Вимкнути компютер. Shut down the computer). Якщо користувач це не зробив, то система закриє всі активні програми (перед цим надасть можливість користувачу зберегти дані) та збереже всі зміни параметрів Windows. У той час, як дані скидаються на твердий диск, ви бачите повідомлення: "Подождите, идет подготовка к выключенню компьютера" ("Почекайте, йде підготовка до вимкнення компютера", "Please wait while your computer shuts down"), а після невеличкої паузи- "Теперь питание компютера можно отключить" ("Зараз живлення компютера можна вимкнути ", "Its now safe to turn offyour computer"). Після цього, компютер можна вимкнути або перезавантажити за допомогою клавіш Ctrl-Alt-Del;
• Перегрузить компьютер (Перевантажити комп ютер, Restart the computer). Після повідомлення: "Please wait while your computer shuts down" компютер буде перезавантажено;
• Перегрузить компьютер в режиме эмуляции MS-DOS (Перевантажити компютер у режимі емуляції MS-DOS, Restart the computer in MS-DOS mode). Насправді, за цією командою з памяті буде вилучено графічну оболонку Windows 95, виконається пакетний файл DosStart.bat із каталогу Windows 95 і роботу буде продовжено в командному рядку Windows 95. Знову завантажити графічну оболонку можна MS-DOS-командою EXIT або WIN.
Якщо під час роботи з програмою відбувся збій, то можна спробувати перервати роботу програми або цілої системи за допомогою локального перезавантаження. Для цього потрібно натиснути клавіші Ctrl+Alt+Del, вибрати у діалоговому вікні Завершение риботы программы (Завершення роботи програми. Close Program), назву програми, що "зависла" і натиснути кнопку Снять задачу {Завершити задачу, End Task). Можна замість цієї кнопки натиснути кнопку Завершить роботу (Завершити роботу, Shut Down). За цієї умови відбудеться повна підготовка до вимкнення компютера. Так роблять, якщо перервати роботу оболонки іншими засобами на вдається.
Çàõèñò ³íôîðìàö³¿
Áóäü-ÿêà ³íôîðìàö³ÿ, ùî çáåð³ãàºòüñÿ àáî îáðîáëÿºòüñÿ â êîìï'þòåð³, º ÷èºþñü âëàñí³ñòþ ³ ìîæå çàö³êàâèòè ïåâíå êîëо осіб. Власник інформації зацікавлений у її конфіденційності й цілісності.
Іншими словами, виникає необхідність захистити інформацію на дисках від доступу сторонніх осіб (копіювання, внесення змін) і будь-яких фізичних змін (вилучення, перейменування файлів, форматування магнітного диска). Систему захисту інформації можна пîä³ëèòè íà ÷îòèðè ð³âí³ (мал.18.1.).
Мал.18.1. гâí³ çàõèñòó ³íôîðìàö³¿
Ô³çè÷íèé çàõèñò äèñê³â
Äëÿ ô³çè÷íîãî çàõèñòó 3.5-äþéìîâèõ ãíó÷êèõ ìàãí³òíèõ äèñê³â ïåðåäáà÷åíî ñïåö³àëüíèé ïåðåìèêà÷ â îäíîìó ç êóòê³â êîíâåðòà äèñêà (мал.18.2.). ßêùî ïåðåìèêà÷ âñòàíîâëåíî òàê, ùî íàñêð³çíèé îòâ³ð íà êîíâåðò³ â³äêðèòèé, òî äèñê ââàæàºòüñÿ çàõèùåíèì. ϳñëÿ öüîãî ç ìàãí³òíîãî äèñêà ³íôîðìàö³þ ìîæíà ëèøå ÷èòàòè.
Æîðñòê³ äèñêè ô³çè÷íîãî çàõèñòó íå ìàþòü.
Мал.18.2. Ô³çè÷íèé захист інформації на 3.5-дюймовому гнучкому диску
Програмний захист файлів
Для вибіркового захисту файлів від випадкового вилучення (перейменування, перезапису), можна надати файлу статус "R/O" (READ-ONLY - тільки читати). Але при форматуванні диска ці файли будуть знищені, як і всі інші, тобто статус "R/O" не захищає файли від форматування. А тому перед фîðìàòóâàííÿì ñòàðîãî äèñêà потрібно óâàæíî ïåðåãëÿíóòè éîãî êàòàëîã, ùîá íå çíèùèòè ïîòð³áíó ³íôîðìàö³þ.
Ñòàòóñ "R/O" ìîæíà íàäàòè ôàéëó çà äîïîìîãîþ ïðèñâîºííÿ ïîòð³áíîãî àòðèáóòà ó ïðîãðàì³ NORTON COMMANDER (ìåíþ PULLDN-FILES-ATTRIBUTES).
Ùîá çíÿòè çàõèñò ç ôàéëа, éîìó íàäàºòüñÿ ñòàòóñ "R/W" (READ-WRITE). Ó ïðîãðàì³ NORTON COMMANDER, з цією метою ïðîñòî âèìèêàºòüñÿ àòðèáóò "R/O".
Варто çàçíà÷èòè, ùî êîìàíäàìè ÎÑ MS DOS ôàéëè ç àòðèáóòîì "R/O" íåìîæëèâî âèëó÷èòè, ïåðåéìåíóâàòè àáî ïåðåçàïèñàòè. Àëå ïðîãðàìи NORTON COMMANDER, ïðè ñïðîá³ ïîä³áíèõ ä³é íàä çàõèùåíèìè ôàéëàìè, ò³ëüêè âèäàñòü ïîïåðåäæåííÿ ïðî çàõèñò ³, ÿêùî íà çàïèòàííÿ "ïðîäîâæèòè 䳿?" â³äïîâ³ñòè ïîçèòèâíî, то âîíà âèêîíຠö³ 䳿. Òàêèì ÷èíîì, ïðè ðîáîò³ ç ïðîãðàìîþ NORTON COMMANDER потрібно äóæå óâàæíî ñë³äêóâàòè çà ïîâ³äîìëåííÿìè ³ ïîïåðåäæåííÿìè, ùîá âèïàäêîâî íå âèëó÷èòè ïîòð³áí³ ôàéëè.
Ïàðîëüíèé çàõèñò ³íôîðìàö³¿
Äåÿê³ îïåðàö³éí³ ñèñòåìè äîçâîëÿþòü âñòàíîâëþâàòè íà ôàéëè ïàðîëüíèé çàõèñò â³ä íåñàíêö³îíîâàíîãî êîï³þâàííÿ, ïåðåãëÿäó та âíåñåííÿ çì³í. Ïðè öüîìó, ìîæíà ò³ëüêè ïîáà÷èòè ³ì'ÿ ôàéëа ó êàòàëîç³. Îäíàê, â³ä ôîðìàòóâàííÿ äèñêó òàêèé çàõèñò íå âðÿòîâóº.
Êðèïòîãðàôóâàííÿ ³íôîðìàö³¿
Ðÿä ñïåö³àëüíèõ ïðîãðàì äîçâîëÿº çàøèôðîâóâàòè ³íôîðìàö³þ ó ôàéëàõ (êðèïòîãðàôóâàòè). Ïðè öüîìó, файли зберігаються у зашифрованому вигляді і без спеціального криптографічного ключа (пароля, довжина якого може бути до 256 символів) їх вміст неможливо побачити (або запустити файл на виконання). Шифруванням можуть захищатися як виконавчі програми від несанкціонованого запуску, так й ³íôîðìàö³éí³ - äëÿ çàïîá³ãàííÿ íåñàíêö³îíîâàíîãî äîñòóïó äî çàïèñàíî¿ â íèõ ³íôîðìàö³¿. Îäíàê êðèïòîãðàôóâàííÿ íå ìîæå çàõèñòèòè ³íôîðìàö³þ â³ä âèëó÷åííÿ àáî ïîøêîäæåííÿ.
Íàïðèêëàä, êðèïòîãðàô³÷íèé çàõèñò ôàéë³â ìîæóòü âñòàíîâëþâàòè ïðîãðàìè-àðõ³âàòîðè.
Êð³ì ïðîãðàìíèõ, ³ñíóþòü й àïàðàòí³ ñèñòåìè çàõèñòó ³íôîðìàö³¿ â³ä íåñàíêö³îíîâàíîãî äîñòóïó (мал.18.3.). Âîíè ïîëÿãàþòü ó âèêîðèñòàíí³ ñïåö³àëüíîãî äîäàòêîâîãî îáëàäíàííÿ, ùî ï³äêëþ÷àºòüñÿ äî êîìï'þòåðà. Кðèïòîãðàô³÷íèé êëþ÷ ñêëàäàºòüñÿ ç äâîõ ÷àñòèí: àïàðàòíî¿ ³ êîðèñòóâàöüêî¿. Àïàðàòíà ÷àñòèíà êëþ÷à є на ñïåö³àëüíîму îáëàäíàííі, à êîðèñòóâàöüêó ââîäèòü êîðèñòóâà÷ ç³ ñâ âëàñíî¿ ïàì'ÿò³.
Мал.18.3. Êëàñèô³êàö³ÿ ñèñòåì êðèïòîãðàô³÷íîãî çàõèñòó ³íôîðìàö³¿
Ðóéí³âí³ ïðîãðàìè
²ñíóº ðÿä îñîáëèâèõ êîìï'þòåðíèõ ïðîãðàì, ÿê³ íàçèâàþòü ðóéí³âíèìè. ¯õ ìîæíà ïîä³ëèòè íà òðè òèïè (мал.19.1).
Мал.19.1. Êëàñèô³êàö³ÿ ðóéí³âíèõ ïðîãðàì
Ïðîãðàìà "Òðîÿíñüêèé ê³íü", ìàñêóþ÷èñü ï³ä êîðèñíу ïðîãðàìу, ïðè êîæíîìó çàïóñêó âèêîíóº ðóéí³âí³ ä³¿, íàïðèêëàä, âèëó÷ຠôàéëè ç äèñêà, ðóéíóº êàòàëîã äèñêà òîùî.
Ïðîãðàìà "Ãîäèííèêîâà ì³íà" âèêîíóº òàê³ æ 䳿 ÿê ³ "Òðîÿíñüêèé ê³íü", àëå ñâî¿ ðóéí³âí³ ôóíêö³¿ âìèêຠò³ëüêè за ïåâíої äàòи àáî ãîäèíó. Ïðèêëàäîì ìîæå áóòè ïðîãðàìà "Ï'ÿòíèöÿ òðèíàäöÿòîãî", ÿêà âèÿâëÿº ñâî¿ ðóéí³âí³ çä³áíîñò³ ò³ëüêè ïðè ñï³âïàäàíí³ ï'ÿòíèö³ ç òðèíàäöÿòèì ÷èñëîì. За умови àêòèâ³çàö³¿, ïðîãðàìà îð³ºíòóºòüñÿ íà ñèñòåìíó äàòó, ùî çáåð³ãàºòüñÿ â òàéìåð³ ÅÎÌ ç àâòîíîìíèì äæåðåëîì æèâëåííÿ.
Çàãàëüí³ â³äîìîñò³ ïðî êîìï'þòåðí³ â³ðóñè
Òåðì³í "Êîìï'þòåðíèé â³ðóñ" âïåðøå ó 1984 ðîö³ використав ñï³âðîá³òíèê Ëåõàéñüêîãî óí³âåðñèòåòó (ÑØÀ) Ôðåä Êîåí, õî÷ äîñë³äæåííÿ â îáëàñò³ øòó÷íèõ êîíñòðóêö³é, ÿê³ çäàòí³ äî ñàìîðîçìíîæóâàííÿ, áóëè ðîçïî÷àò³ ùå â ñåðåäèí³ íèí³øíüîãî століття áàòüêàìè ê³áåðíåòèêè; Íîðáåðòîì ³íåðîì ³ ôîí Íåéìàíîì.
Програмісти сòâîðþþòü êîìï'þòåðí³ â³ðóñè ç ð³çíèõ ïðè÷èí: через áàæàííÿ äîøêóëèòè ô³ðì³, îáðàçила àáî ж ïðîñòî ç õóë³ãàíñüêèõ ìîòèâ³â.
Êîìï'þòåðíèé â³ðóñ - öå íåâåëèêà, çà ðîçì³ðîì, ïðîãðàìà, ÿêà ìຠçäàòí³ñòü ðîçìíîæóâàòèñü (òîáòî ïðèïèñóº ñåáå äî ³íøèõ ïðîãðàì, таким чином çàðàæàþ÷è ¿õ), à òàêîæ âèêîíóâàòè ð³çí³ íåáàæàí³ ä³¿ íà êîìï'þòåð³.
Ïðîãðàìà ç ïðèïèñàíèì äî íå¿ â³ðóñîì íàçèâàºòüñÿ çàðàæåíîþ ³, ÿêùî ìè çàïóñêàºìî ¿¿ íà âèêîíàííÿ, ïåðøèì ïî÷èíຠïðàöþâàòè â³ðóñ, і тільки через деякий ÷àñ â³í ïåðåäຠêåðóâàííÿ ïðîãðàì³, ÿêà çàïóñêàºòüñÿ, ³ âîíà ïðàöþº ÿê çâè÷àéíî. Òàêèì ÷èíîì, çîâí³øíüî ðîáîòà çàðàæåíî¿ ïðîãðàìè í³÷èì íå â³äð³çíÿºòüñÿ â³ä ðîáîòè íåçàðàæåíî¿.
ßê ïðàâèëî, ìîæíà âèä³ëèòè 2 ñòà䳿 ðîáîòè â³ðóñó (мал.19.2.).
Мал.19.2. Îñíîâí³ ñòà䳿 ðîáîòè êîìïþòåðíîãî â³ðóñó
Íà åòàï³ ðîçìíîæåííÿ â³ðóñ ò³ëüêè ïðèïèñóº ñåáå äî ³íøèõ ïðîãðàì ³ á³ëüøå í³÷îãî íå ðîáèòü(öå ïðèõîâàíèé åòàï).
Åòàï ðóéíóâàííÿ íàñòàº, ÿê ïðàâèëî, ÷åðåç ïåâíий час після проникнення вірусу в комп'ютер.
На першому етапі роботи комп'ютерні віруси великих неприємностей не завдають - вони тільки займають дискову пам'ять, і то в незначній мірі. А ось другий етап може мати катастрофічні наслідки. Вірус може знищити на диску системні або програмні файли, змінити параметри вінчестера, відформатувати диски або ж ïðîñòî çàâàæàòè ðîáîò³ îïåðàòîðà.
ßê ïðàâèëî, êîìï'þòåðí³ â³ðóñè çàðàæàþòü ôàéëè âèêîíàâ÷îãî òèïó: ".ÑÎÌ", ".ÅÕÅ", àáî ".SYS", à òàêîæ äåÿê³ ³íø³ ñïåöèô³÷í³ ôàéëè. Îñòàííüîãî ÷àñó çÿâèëàñü âåëèêà ê³ëüê³ñòü, òàê çâàíèõ, ìàêðîâ³ðóñ³â, ñòâîðåíèõ íà ìàêðîìîâ³ Visual Basic. Âîíè ïðàöþþòü ó ñåðåäîâèù³ Windows ³ çàðàæàþòü òåêñòîâ³ ôàéëè, ñòâîðåí³ çà äîïîìîãîþ òåêñòîâîãî ðåäàêòîðà Word. Ìàêðîâ³ðóñè ðîçïîâñþäæóþòüñÿ за умови ïåðåãëÿäу çàðàæåíèõ íèìè òåêñò³â.
Віруси класифікують за різними ознаками (мал.19.3.):
Мал.19.3. Îçíàêè, çà ÿêèìè êëàñèô³êóþòüñÿ êîìïþòåðí³ â³ðóñè
Çàëåæíî â³ä ñåðåäîâèùà ³ñíóâàííÿ â³ðóñè ïîä³ëÿþòü íà 4 ãðóïè (мал.19.4.).
Мал.19.4. Êëàñèô³êàö³ÿ â³ðóñ³â çà ñåðåäîâèùåì ¿õ ³ñíóâàííÿ
Ìåðåæåâ³ â³ðóñè ðîçïîâñþäæóþòüñÿ íà ³íø³ êîìïþòåðè ïî êîìï'þòåðí³é ìåðåæ³.
Ôàéëîâ³ â³ðóñè óêîð³íþþòüñÿ ó âèêîíàâ÷³ ôàéëè, çàðàæàþ÷è ¿õ òàêèì ÷èíîì, ³ ðîçìíîæóþòüñÿ за умови çàïóñêó çàðàæåíèõ ôàéë³â íà âèêîíàííÿ.
Áóòîâ³ (çàãðóçî÷í³) â³ðóñè çàïèñóþòü ñâîº ò³ëî â ñåêòîð ìàãí³òíîãî äèñêà, ùî ì³ñòèòü ïðîãðàìó ïî÷àòêîâîãî çàâàíòàæåííÿ ÎÑ (Boot-record), ³ çàðàæàþòü ³íø³ äèñêè, ï³äêëþ÷åí³ äî êîìïþòåðà, за умови çâåðíåííя êîìïþòåðà äî ñåêòîðà çàðàæåíîãî äèñêà.
³ðóñè çì³øàíîãî òèïó ìîæóòü ³ñíóâàòè â ð³çíèõ ñåðåäîâèùàõ. Âîíè є ôàéëîâî-ìåðåæåâèìè, ôàéëîâî-çàãðóçî÷íèìè ³ ò.³.
Çà ñïîñîáîì çàðàæåííÿ, â³ðóñè поділяють íà äâà òèïè (мал.19.5.).
Мал.19.5. Êëàñèô³êàö³ÿ â³ðóñ³â
Äî ðåçèäåíòíèõ íàëåæàòü â³ðóñè, ÿê³ ï³ñëÿ çàïóñêó çàðàæåíî¿ ïðîãðàìè ðîçì³ùóþòüñÿ â îïåðàòèâí³é ïàìÿò³ êîìïþòåðà ³ çíàõîäÿòüñÿ òàì äî ïåðåçàâàíòàæåííÿ îïåðàö³éíî¿ ñèñòåìè àáî ж äî âèêëþ÷åííÿ êîìïþòåðà. Ïåð³îäè÷íî, àáî ïðè çâåðíåíí³ êîìïþòåðà äî ³íøèõ ïðîãðàì, öåé â³ðóñ àêòèâ³çóºòüñÿ ³ çàðàæຠìàãí³òí³ äèñêè òà äèñêîâ³ ôàéëè.
Íåðåçèäåíòí³ â³ðóñè îïåðàòèâíó ïàìÿòü íå çàðàæàþòü, à çàëèøàþòüñÿ â ïàì'ÿò³ êîìïþòåðà тільки на êîðîòêèé ÷àñ íа- ïî÷àòêó ðîáîòè çàðàæåíî¿ ïðîãðàìè.
Çà ðóéí³âíèìè çä³áíîñòÿìè â³ðóñè ïîä³ëÿþòüñÿ íà ÷îòèðè òèïè (мал.19.6.).
Мал.19.6. Êëàñèô³êàö³ÿ êîìïþòåðíèõ â³ðóñ³â, çà ðóéí³âíèìè çä³áíîñòÿìè
Íåøê³äëèâ³ â³ðóñè íå âïëèâàþòü íà ðîáîòó êîìï'þòåðà, оêð³ì çìåíøåííÿ äèñêîâî¿ ïàì'ÿò³, âðåçóëüòàò³ ñâîãî ðîçïîâñþäæåííÿ.
Íåçàãðîçëèâ³ - êð³ì ð³çíèõ çâóêîâèõ ³ ñâ³òëîâèõ åôåêò³â, à òàêîæ çìåíøåííÿ äèñêîâî¿ ïàì'ÿò³, í³ÿêî¿ øêîäè íå çàâäàþòü.
Íåáåçïå÷í³ â³ðóñè ìîæóòü ïðèзâåñòè äî ñåðéîçíèõ збитків ó ðîáîò³ êîìï'þòåðà.
Äóæå íåáåçïå÷í³ â³ðóñè çäàòí³ ïðèâåñòè äî âòðàòè ³íôîðìàö³¿ íà äèñêàõ àáî â ïàì'ÿò³ êîìïþòåðà (âèëó÷àþòü ôàéëè, ôîðìàòóþòü äèñêè ç äàíèìè ³ ïðîãðàìàìè òîùî).
Ïðàâèëà çàõèñòó ïðîãðàì â³ä çàðàæåííÿ
Ìîæíà âèä³ëèòè äâà øëÿõè ïðîíèêаííÿ â³ðóñ³â ó ÅÎÌ (мал.19.7.).
Мал.19.7. Øëÿõè ïðîíèêаííÿ â³ðóñ³â ó êîìïþòåð
Îñíîâíèì øëÿõîì ïðîíèêаííÿ â³ðóñ³â ó êîìïþòåð ìîæíà ââàæàòè çàðàæåí³ äèñêåòè, òîáòî äèñêåòè, ùî ì³ñòÿòü çàðàæåí³ â³ðóñîì ïðîãðàìè àáî ж BOOT-ñåêòîð. Ïðè öüîìó íàéá³ëüø íåáåçïå÷íèìè º ³ãðîâ³ ïðîãðàìè ³ äèñêåòè, що їх містять.
Ó áóäü-ÿêîìó âèïàäêó çàðàæåííÿ êîìï'þòåðà äóæå íåáàæàíå. Оскільки ãîëîâíèì îá'ºêòîì àòàêè â³ðóñó º ìàãí³òí³ äèñêè, òî, ùîá çàïîá³ãòè çàðàæåííþ êîìï'þòåðà, застосовують çàõèñí³ çàñîáè, скеровані íà çàõèñò äèñêîâî¿ ³íôîðìàö³¿. Їх ìîæíà ïîä³ëèòè íà:
- çàãàëüí³ çàõîäè çàõèñòó ³íôîðìàö³¿, ùî êîðèñí³ òàêîæ ³ ÿê ñòðàõóâàííÿ â³ä ô³çè÷íîãî ïñóâàííÿ ìàãí³òíèõ äèñê³â, íåïðàâèëüíî ïðàöþþ÷èõ ïðîãðàì àáî ж ïîìèëêîâèõ ä³é êîðèñòóâà÷³â;
- ïðîô³ëàêòè÷í³ çàõîäè, ùî äîçâîëÿþòü çìåíøèòè â³ðîã³äí³ñòü çàðàæåííÿ â³ðóñîì;
- ñïåö³àë³çîâàí³ ïðîãðàìè äëÿ çàõèñòó â³ä â³ðóñ³â.
Çàãàëüí³ çàõîäè çàõèñòó ³íôîðìàö³¿
²ñíóº äâà îñíîâíèõ ð³çíîâèäè öèõ çàõîä³â:
- ñòâîðåííÿ êîï³é ôàéë³â ³ ñèñòåìíèõ îáëàñòåé äèñê³â;
- ðîçìåæóâàííÿ äîñòóïó äî îáëàñòåé äèñêó àáî äî ôàéë³â, ùî çàïîá³ãຠíåñàíêö³îíîâàíîìó âèêîðèñòàííþ ³íôîðìàö³¿, íàïðèêëàä, çì³íи вірусами ïðîãðàì ³ їх äàíèõ.
Àíòèâ³ðóñíà ïðîô³ëàêòèêà
Çàñòîñóâàííÿ çàãàëüíèõ çàõîä³â çàõèñòó äóæå âàæëèâå, àëå íåäîñòàòíº. Належну óâàãó потрібно ïðèä³ëÿòè ³ ïðîô³ëàêòè÷íèì ìåòîäàì, çîêðåìà:
- ïðè âèêîðèñòàíí³ ñâî¿õ äèñêåò íà ÷óæèõ êîìï'þòåðàõ, варто îáîâ'ÿçêîâî âñòàíîâëþâàòè ô³çè÷íèé çàõèñò â³ä çàïèñó;
- âñ³ ôàéëè òèïó ".EXE" ³ ".COM" ïîâèíí³ áóòè çàõèùåí³ â³ä çàïèñó, øëÿõîì ïðèñâîºííÿ ¿ì àòðèáóòà "R/O";
- âñþ ö³ííó ³íôîðìàö³þ потрібно зберігати íà äèñêåòах;
- íå êîðèñòóâàòèñü ïðîãðàìàìè, ùî îäåðæàí³ ³ç ñóìí³âíèõ äæåðåë;
- ïåðåä çàïóñêîì íîâî¿ ïðîãðàìè îáîâÿçêîâî потрібно ïåðåâ³ðèòè ¿¿ íà íàÿâí³ñòü â³äîìèõ â³ðóñ³â, çà äîïîìîãîþ ñïåö³àëüíèõ àíòèâ³ðóñíèõ ïðîãðàì. Îäíàê, ÿêùî ïðîãðàì³-àíòèâ³ðóñó â³ðóñ íåâ³äîìèé, òî ö³ëêîì ìîæëèâî, ùî ôàéë òàê ³ çàëèøèòüñÿ çàðàæåíèì.
Ïðîãðàìè çàõèñòó â³ä â³ðóñ³â
Ðàçîì ç óêàçàíèìè çàõîäàìè, варто застосовувати ³ ñïåö³àë³çîâàí³ ïðîãðàìè çàõèñòó â³ä â³ðóñ³â (àíòèâ³ðóñè), ÿê³ ïîä³ëяють íà äåê³ëüêà âèä³â (мал.19.8.).
Мал.19.8. Êëàñèô³êàö³ÿ ïðîãðàì äëÿ çàõèñòó â³ä êîìï'þòåðíèõ â³ðóñ³â
Ïðîãðàìè-äåòåêòîðè äîçâîëÿþòü âèÿâиòè ôàéëè, çàðàæåí³ ÿêèìîñü îäíèì àáî ê³ëüêîìà â³äîìèìè â³ðóñàìè.
Ïðîãðàìè-âàêöèíè (àáî ³ìóí³çàòîðè) ìîäèô³êóþòü ïðîãðàìè ³ äèñêè òàêèì ÷èíîì, ùîб öå íå âïëèâàло íà ðîáîòó ïðîãðàìè. Проте â³ðóñ, â³ä ÿêîãî ðîáèòüñÿ âàêöèíàö³ÿ, ââàæຠö³ ïðîãðàìè, àáî äèñêè, çàðàæåíèìè ³ âäðóãå ¿õ íå çàðàæàº.
Ïðîãðàìè-ë³êàð³ (àáî ôàãè) ë³êóþòü çàðàæåí³ ïðîãðàìè àáî äèñêè. Âîíè "âèð³çàþòü" іç çàðàæåíî¿ ïðîãðàìè ò³ëî â³ðóñó ³ òàêèì ÷èíîì â³äíîâëþþòü ïðîãðàìó.
Ïðîãðàìè-ðåâ³çîðè ñïî÷àòêó çàïàì'ÿòîâóþòü â³äîìîñò³ ïðî ñòàí ïðîãðàì ³ ñèñòåìíèõ îáëàñòåé äèñê³â, à ïîò³ì ïîð³âíþþòü ¿õ ñòàí іç ïî÷àòêîâèì. ßêùî âèíèêàþòü ðîçá³æíîñò³, òî зявляється â³äïîâ³äíå ïîâ³äîìëåííÿ êîðèñòóâà÷ó.
Ïðîãðàìè-ô³ëüòðè ïîñò³éíî çíàõîäÿòüñÿ â îïåðàòèâí³é ïàì'ÿò³ êîìï'þòåðà ³ ïåðåõîïëþþòü òà блокуються ті звертання до операційної системи, які використовуються вірусами для розмноження і нанесення шкоди. При цьому користувачу видається запит на дозвіл, а користувач може дозволити або заборонити виконання вказаних операцій (це DEPROTECT.COM, VIRBLOK.EXE та ін.).
Окð³ì öèõ îñíîâíèõ àíòèâ³ðóñíèõ ïðîãðàì, ³ñíóþòü ã³áðèäí³ ñèñòåìè, наприклад, ë³êàð³-ðåâ³çîðè (ïðîãðàìè, ÿê³ íå ò³ëüêè âèÿâëÿþòü çì³íè ó ôàéëàõ, àëå é ìîæóòü àâòîìàòè÷íî ïîâåðíóòè ¿õ äî ïî÷àòêîâîãî ñòàíó).
Îñê³ëüêè жодний іç названих çàõîä³â íå забезпечує àáñîëþòíîãî çàõèñòó â³ä â³ðóñ³â, ðåêîìåíäóюòü âèêîðèñòîâóâàòè ¿õ ó êîìïëåêñ³.
КОНТРОЛЬНІ ПИТАННЯ
Керування процесами
Керування локальними ресурсами
Найважливішою функцією операційної системи є організація раціонального використання всіх апаратних i програмних pecypciв системи. До основних pecypciв належать: процесори, пам'ять, зовнішні пристрої, дані та програми. Приваблива тими ж ресурсами, але керована різними ОС, обчислювальна система може працювати з різним ступенем ефективності. Тому знання внутрішніх механізмів операційної системи дозволяє всебічно аналізувати її експлуатаційні можливості та характеристики.
Керування процесами
Найважливішою частиною операційної системи, що безпосередньо впливає на функціонування обчислювальної машини, є підсистема керування процесами. Процес ( по-іншому, задача) - абстракція, що описує програму, котра виконується. Для операційної системи процес являє собою одиницю роботи, заявку на споживання системних pecypciв. Підсистема керування процесами планує виконання процесів, тобто розподіляє процесорний час між декількома, одночасно існуючими в системі, процесами, а також займається створенням i знищенням процесів, забезпечує процеси необхідними системними ресурсами та підтримує взаємодію між процесами.
Стан процесів
У багатозадачній (багатопроцесорній) системі процес може бути в одному з трьох основних станів:
ВИКОНАННЯ - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами i безпосередньо виконується процесором.
ЧЕКАННЯ - пасивний стан процесу. Процес заблокований, він не може виконуватися за своїми внутрішніми причинами. Процес чекає здійснення події, наприклад, завершення операції введення-виведення, одержання повідомлення від іншого процесу, звільнення якого-небудь необхідного йому ресурсу. ГОТОВНІСТЬ - також пасивний стан процесу, але в цьому випадку процес заблокований у зв'язку із зовнішніми обставинами: процес має всі необхідні для нього ресурси, готовий виконуватися, однак він зайнятий виконанням іншoro процесу.
Протягом життєвого циклу кожен процес переходить з одного стану в інший, відповідно до алгоритму планування процесів, реалізованим у даній операційній системі. Типовий граф станів процесу зображений на малюнку 2.1.
У стані виконання, в однопроцесорній системі, може знаходитися тільки один процес, а в кожному із станів чекання i готовності - кілька процесів. Ці процеси утворюють черги, відповідно, очікують готових процесів. Життєвий цикл процесу починається із стану ГОТОВНІСТЬ, коли процес готовий до виконання i чекає своєї черги. При активації, процес переходить у стан ВИКОНАННЯ i знаходиться в ньому доти, поки або ж він сам звільнить процесор, перейшовши в стан ЧЕКАННЯ якої-небудь події, або буде насильно "витиснутий" iз процесора. Наприклад, унаслідок вичерпання відведеного процесу кванта процесорного часу. В останньому випадку, процес повертається в стан ГОТОВНІСТЬ. У цей же стан процес переходить із стану ЧЕКАННЯ, після того, як очікувана подія відбулася.
Мал 2.1. Графа станів процесу в багатозадачному середовищі
Контекст i дескриптор процесу
Протягом існування процесу, його виконання може бути багаторазово перерване i продовжене. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом pericтpiв i програмного лічильника, режимом роботи процесора, показниками відкритих файлів, інформацією про незавершені операції введення-виведення, кодами помилок, виконуваних даним процесом системних викликів . Цю інформацію називають контекстом процессу.
Крім цього, операційній системі, для реалізації планування процесів, потрібна додаткова інформація; ідентифікатор процесу, стан процесу, дані про cтупінь привілейованості процесу, місце перебування кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) таку інформацію ( що використовують ОС для планування процесів) називають дескриптором процесу.
Дескриптор процесу, в порівнянні з контекстом, містить більш оперативну інформацію, що легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію i використовується операційною системою тільки після того, як прийняте рішення про поновлення перерваного процесу.
Черги процесів є дескрипторами окремих процесів, що об'єднані в списки. Таким чином, кожен дескриптор, крім всього іншого, містить, принаймні, один показник на інший дескриптор, що сусідить із ним у черзі. Така організація черг дозволяє легко їx переупорядковувати, включати i виключати процеси, переводити процеси з одного стану в інший.
Програмний код тільки тоді починає виконуватися, коли для нього операційна система буде створює процес. Створити процес - це значить:
1. створити інформаційні структури, що описують даний процес, тобто його дескриптор i контекст;
2. включити дескриптор нового процесу в чергу готових процесів;
3. завантажити кодовий сегмент процесу в оперативну пам'ять чи в область свопінгу.
Алгоритми планування процесів
Планування процесів містить у coбi рішення наступних завдань:
1. визначення моменту часу, з метою зміни виконуваного процесу;
2. вибір процесу на виконання з черги готових процесів;
3. переключения контекстів "старого" i "нового" процесів.
Перші два завдання вирішують програмні засоби, а останні в значній мірі,- апаратно.
Існує безліч різних алгоритмів планування процесів, по-різному вирішуваних у перерахованих вище завданнях, що переслідують piзні цілі i забезпечують різну якість мультипрограмування. Серед цих алгоритмів розглянемо докладніше дві їх групи, що часто зустрічаються: алгоритми, засновані на квантуванні i алгоритми, засновані на пріоритетах.
Відповідно до aлгоритмів, заснованих на квантуванні, зміна активного процесу відбувається, якщо:
Процес, що вичерпав свій квант, переводиться в стан ГОТОВНІСТЬ i очікує, коли йому буде наданий новий квант процесорного часу, а на виконання, відповідно до визначеного правила вибирається новий процес з черги готових. Таким чином, жоден процес не займає процесор надовго. Тому квантування широко використовують у системах поділу часу. Графа станів процесу, зображена на мапюнку 2.1., відповідає алгоритму планування, заснованому на квантуванні.
Кванти, виділені процесом, можуть бути однаковими для всіх процесів. Кванти, виділені одному процесові, є фіксованої величини.Вони можуть змінюватися в piзнi періоди життя процесу. Процеси, що не повністю використали виділений їм квант (наприклад, через відхід на виконання операцій виводу введення-виведення), можуть одержати, чи не одержати, компенсації у виді привілеїв при наступному обслуговуванні. По-різному може бути організована черга готових процесів.Наприклад, циклічно, за правилом "перший прийшов - перший обслужився" (FIFO) чи за правилом "останній прийшов - перший обслужився" (LIFO).
Інша група алгоритмів використовує поняття "пріоритет" процесу. Пріоритет - це число, що характеризує ступінь привілейованості процесу при використанні ресурсів обчислювальної машини, зокрема, процесорного часу: чим вище пріоритет, тим вище привілей.
Пріоритет може виражатися цілими чи дробовими, позитивним чи негативним значениям. Чим вищий привілей процесу, тим менше часу він буде в чергах. Пріоритет може призначатися директивно адміністратором системи, в залежності від важливості роботи чи внесеної плати, або ж обчислюватися самою ОС за визначеними правилами. Він може залишатися фіксованим протягом усього життя процесу або змінюватися в часі, відповідно до якогось закону. Уцьому випадку пріоритети називають динамічними. Існує два різновиди пріоритетних алгоритмів: алгоритми, що використовують відносні пріоритети, i алгоритми, що використовують абсолютні пріоритети.
В обох випадках вибір процесу на виконання, з черги вже готових, здійснюється однаково: вибирається процес, що має найвищий пріоритет. По-різному вирішується проблема визначення моменту зміни активного процесу. У системах із відносними пріоритетами, активний процес виконується доти, поки він сам не залишить процесор, перейшовши в стан ЧЕКАННЯ (чи ж закрадеться помилка або ж процес завершиться). У системах з абсолютними пріоритетами виконання активного процесу, він переривається ще при одній умові: якщо в черзі готових процесів з'явився процес, пріоритет якого вище пріоритету активного процесу. У цьому випадку перерваний процес переходить у стан готовності. На малюнку 2.2 зображені графи станів процесу для алгоритмів із відносними (a) i абсолютними (б) пріоритетами.
Мал. 2.2. Графи станів процесів у системах (а) із відносними пріоритетами; (б )з абсолютними пріоритетами.
У багатьох операційних системах алгоритми планування побудовані з використанням як квантування, так i пріоритетів. Наприклад, в основі планування лежить квантування, але величина кванта чи порядок вибору процесу з черги вже готових визначається пріоритетами процесів, що витісняють або не витісняють алгоритми планування.
Існує два основних типи процедур планування процесів: що витісняють (preemptive) i не витісняють (non-preemptive).
Non-preemptive multitasking - не витісняє багатозадачність - це cпociб планування процесів, при якому активний процес виконується доти, поки він сам, за власною ініціативою, не віддасть керування планувальнику операційної системи для того, щоб той вибрав з черги інший, готовий до виконання процес.
Preemptive multitasking (витісняє багатозадачність) - це cnociб, при якому рішення про переключення процесора з виконання одного процесу на виконання іншого приймається планувальником операційної системи, а не самою активною задачею.
Поняття preemptive i non-preemptive іноді утотожнюють із поняттями пріоритетних i безпріоритетних дисциплін, що зовсім невірно, а також з поняттями абсолютних i відносних пріоритетів, що частково неправильно. Що витісняє i не витісняє багатозадачність - це ширше поняття, ніж типи пріоритетності. Пріоритети задач можуть як застосовувати, так i не застосовувати. Так, у випадку використання пріоритетів, дисципліна відносних пріоритетів може належати до класу систем, що не витісняють багатозадачність, а дисципліна абсолютних пріоритетів - до класу систем, що витісняють багатозадачність. Безпріоритетна ж дисципліна планування, заснована на виділенні рівних квант часу для вcix задач, належить до алгоритмів, що витісняють.
Основною різницею між preemptive i non-preemptive варіантами багатозадачності є ступінь централізації механізму планування задач. При витісненні багатозадачності, механізм планування задач цілком зосереджений в операційній системі i програміст пише свій додаток, не турбуючись про те, що він буде виконуватися паралельно з іншими задачами. При цьому, операційа система виконує наступні функції: визначає момент зняття з виконання активної задачі, запам'ятовує її контекст, вибирає з черги готових задач наступну i запускає її на виконання, завантажуючи її контекст.
При невитісненні багатозадачності, механізм планування розподіляється між системою i прикладними програмами. Прикладна програма, одержавши керування від операційної системи, сама визначає момент завершення своєї чергової ітерації i передає керування ОС, за допомогою будь-якого системного виклику, а ОС формує черги задач i вибирає, відповідно до будь-якого алгоритму (наприклад, з урахуванням пріоритетів), наступну задачу на виконання. Такий механізм створює проблеми як для користувачів, так i для розроблювачів.
Для користувачів це означає, що керування системою губиться на довільний період часу, що визначається додатком (а не користувачем). Якщо додаток витрачає занадто багато часу на виконання будь-якої роботи, наприклад, на форматування диска, користувач не може переключитися з цієї задачі на іншу. Наприклад, на текстовий редактор, у той час як форматування продовжувалося б у фоновому режимі. Ця ситуація небажана, тому що користувачі звичайно, не хочуть довго чекати, поки машина завершить виконувати свою задачу.
Тому розроблювачі додатків для non-preemptive операційного середовища, покладаючи на себе функції планувальника, повинні створювати додатки так, щоб вони виконували свої задачі невеликими частинами. Наприклад, програма форматування може відформатувати одну доріжку дискети і повернути керування системі. Після виконання iнших задач, система поверне керування програмі форматування, вона відформатувала наступну доріжку. Подібний метод поділу часу між задачами “працює”, але він істотно затрудняє розробку програм i висуває підвищені вимоги до кваліфікації програміста. Програміст повинен забезпечити "дружнє" відношення своєї програми до іншої виконуваної одночасно з нею, досить часто віддаючи їй керування. Проявом “недружності” додатку є його зависання, що призводить до загального краху системи. У системах, що витісняють багатозадачність, такої ситуації, як правило, небуває.
Однак розподіл функцій планувальника між системою i додатками, завжди є недоліком, хоча, за певних умов, може бути i перевагою, оскільки дає можливість розроблювачу додатків самому проектувати алгоритм планування, найбільш придатний для даного фіксованого набору задач. У цьому випадку розроблювач сам визначає у npoгpaмi час віддачі керування, при цьому неможливі нераціональні переривання програм у "незручні” для них моменти часу. Kpiм цього, легко вирішуються проблеми використання даних: задача під час кожної ітерації використовує їх монопольно й упевнено, що не дозволяє нікому протягом цього періоду змінити ці дані. Істотною перевагою non-preemptive систем є висока швидкість переключення з задачі на задачу.
Прикладом ефективного використання, що не витісняє багатозадачності, є файл-сервер NetWare, де, у значній мipi, завдяки цьому, досягнута висока швидкість виконання файлових операцій. Менш вдалим є використання, що не витісняє багтозадачності з операційного середовища Windows 3.x.
Однак, майже всі сучасні операційні системи, орієнтовані на високопродуктивне виконання додатків (UNIX, Windows NT, OS/2 VAX/VMS), спрямовані на витіснена багатозадачності. Останнім часом, дійшла черга i до ОС класу настільних систем, наприклад, OS/2 Warp i Windows 95. Можливо, в зв'язку з цим, ОС, що витісняє багатозадачність, часто називають щирою багатозадачністю.
Засоби синхронізації i взаємодії процесів. Проблема синхронізації. Процесам часто потрібно взаємодіяти один з одним, наприклад, один процес може передавати дані іншому процесові, чи кілька процесів можуть обробляти дані із загального файлу. В ycix цих випадках виникає проблема синхронізації процесів, що може спричиняти припинення й активізацію процесів, організацією черг, блокування i звільнення pecypciв.
Мал. 2.3. Приклад необхідності синхронізації
Недооцінювання питаньми синхронізації процесів, що виконуються в режимі мультипрограмування, може привести до їх неправильної роботи чи, навіть, до краху системи. Розглянемо, як приклад (малюнок 2.3), програму печатки файлів (принт-сервер). Ця програма друкує по черзі yci файли, імена яких, послідовно, за порядком надходження, записують у спеціальний загальнодоступний файл "замовлень" iншi програми. Змінна NEXT, що доступна процесам-клієнтам, містить номер першої вільної, для запису iмeнi файлу, позиції файлу "замовлень". Процеси-клієнти читають цю змiннy, записують у відповідну позицію файлу "замовлень" ім'я свого файлу i нарощують значения NEXT на одиницю. Уявімо, що в деякий момент, процес R вирішив роздрукувати свій файл. З цією метою він прочитав значення перемінної NEXT, припустимо - 4. Процес запам'ятав це значення, але помістити iм'я файлу не встиг, тому що його виконання було перервано (наприклад, унаслідок вичерпання кванта). Черговий процес S, що бажає роздрукувати файл, прочитав те ж саме значення перемінної NEXT, помістив у четверту позицю ім'я свого файлу i наростив значення перемінної на одиницю. Коли чергу керування буде передано процесу R, то він, продовжуючи своє виконання, у повній відповідності зi значенням поточно вільної позиції, отриманим під час попередньої ітерації, запише ім'я файлу також у позицію 4, поверх iмeнi файлу процесу S.
Таким чином, процес S ніколи не побачить свій файл роздрукованим. Складність проблеми синхронізації полягає в нерегулярності виникаючих ситуацій(можна уявити й інший розвиток подій): загублені файли декількох процесів, навпроти, не був загублений жоден файл. У даному випадку ycе визначається взаємними швидкостями процесів i моментами їхнього переривання. Тому налагодження взаємодіючих процесів є складною задачею. Ситуації подібні до тiєї, коли два чи більше процеси обробляють поділювані дані, i кінцевий результат залежить від співвідношення швидкостей процесів, називаються гонками.
Критична секція
Важливим поняттям синхронізації процесів є поняття "критичнї секції" програми. Критична секція - це частина програми, у якій здійснюється доступ до поділюваних даних. Щоб виключити ефект гонок стосовно деякого ресурсу, необхідно забезпечити, щоб у будь-який момент, у критичній секції, повязаній із цим ресурсом, був, максимум, один процес. Цей прийом називають взаємним виключенням.
Найпростіший cnociб забезпечити взаємне виключення - дозволити процесу, що знаходиться в критичній секції, забороняти всі переривання. Однак, цей спосіб - непридатний, оскільки небезпечно довіряти керування системою користувальницькому процесу; він може надовго зайняти процесор, а за умови краху процесу в критичній області, зазнає краху потерпить вся система, тому що переривання не дозволені.
Мал. 2.4. Реалізація критичних секцій з використанням блокуючих перемінних.
Іншим способом є використання блокуючих змінних. Із кожним поділюваним ресурсом пов'язується двійкова перемінна, котра приймає значення 1, якщо ресурс вільний (тобто жоден процес не є в даний момент у критичній секції, пов'язаній з даним процесом), i значення 0, якщо ресурс зайнятий. На малюнку 2.4 зображений фрагмент алгоритму, що використовують для реалізації виключення доступу до поділюваного ресурсу D блокуючої перемінни F(D). Перед входом у критичну секцію процес перевіряє чи вільний ресурс D. Якщо він зайнятий, - то перевірка циклічно повторюється, якщо вільний, - то значення перемінної F(D) встановлюється на 0, i тому процес входить у критичну секцію. Після того, як процес виконає всі дії з поділюваним ресурсом D, значення перемінної F(D) знову встановлюється рівним 1.
Якщо вci процеси написані з використанням вищеописаних угод, то взаємне виключення гарантується. Варто зауважити, що операція перевірки й установки блокуючої перемінної, повинна бути неподільною. Пояснимо це. Нехай у результаті перевірки перемінної процес визначив, що ресурс вільний, але відразу після цього, не встигнувши установити перемінну в значенні 0, був перерваний. Протягом його припинення інший процес зайняв ресурс, ввійшов у свою критичну секцію, але також був перерваний, не завершивши роботу з поділюваним ресурсом. Коли керування було повернуто першому процесу, він, вважаючи ресурс вільним, установив ознаку зайнятості й почав виконувати свою критичну секцію. У такий спосіб був порушений принцип взаємного виключення, що, потенційно, може привести до небажаних наслідків. Щоб уникнути таких ситуацій у системі команд машини, бажано мати єдину команду "перевірка-установка", чи ж реалізовувати системними засобами відповідні програмні примітиви, які б забороняли переривання протягом всієї операції перевірки й установки.
Реалізація критичних секцій з використанням блокуючих перемінних має істотний недолік: протягом часу, коли один процес знаходиться в критичій секції, інший процес, якому потрібен той же ресурс, буде виконувати рутинні дії з опитування блокуючої перемінної, даремно витрачаючи процесорний час. З метою усунення таких ситуацій, може бути використаний так званий апарат подій. За допомогою цього засобу можуть зважуватися не тільки проблеми взаємного виключення, але й більш загальніші задачі синхронізації процесів. У piзниx операційних системах апарат подій реалізується по - своєму, але в будь-якому випадку використовують системні функції аналогічного призначення, що умовно назвемо WAIT(x) i POST(x), де х -ідентифікатор деякої події. На малюнку 2.5 зображений фрагмент алгоритму процесу, що використовує ці функції. Якщо ресурс зайнятий, то процес не виконує циклічне опитування, а викликає системну функцію WAIT(D), тут D позначає подію, що полягає в звільненні ресурсу D. Функція WAІT(D) переводить активний процес у стан ЧЕКАННЯ i робить оцінку в його дескрипторі стосовно того, що процес очікує події D. Процес, що у цей час використовує ресурс D, після виходу з критичної секції виконує системну функцію POST(D), у результаті чого операційна система переглядає чергу процесів, що очікують, i переводить процес, що очікує події D, у стан ГОТОВНІСТЬ.
Узагальнити засіб синхронізації процесів запропонував Дейкстра, що ввів два нових примітиви. В абстрактній формі вони, позначаються Р i V, оперують над цілими ненегативними перемінними, названими семафорами. Нехай S такий семафор. Операції внзначають у такий cпociб:
V(S); - перемінна S збільшується на 1 однією неподільною дією; вибірка, інкрементi запам'ятовування не можуть бути перервані. До S немає доступу іншим процесам під час виконання цієї операції.
P(S); - зменшення S на 1, якщо це можливо. Якщо S=0, то неможливо зменшити S i залишитися в oблacтi цілих негативних значень, у цьому випадку процес, що викпикає Р-операцію, чекає, поки це зменшення стане можливим. Успішна перевірка i зменшення також є неподільною операцією.
Мал. 2.5. Релізація критичної секції, з використанням системних функцій WAIT(D) i POST(D)
В окремому випадку, коли семафор S може приймати тільки значення 0 i 1, він перетворюється в блокуючу перемінну. Операція Р містить у coбi потенційну можливість переходу процесу, що її виконує, у стан чекання, у той час як V-операція може, при деяких обставинах, активізувати інший процес, припинений операцією Р (порівняєте ці операції із системними функціями WAIT i POST).
Розглянемо використання семафорів на класичному прикладі взаємодії двох процесів, що виконуються в режимі мультипрограмування, один із яких дано в буферний пул, a інший зчитує його з буферного пула. Нехай буферний пул складається з N буферів, кожнен з яких може містити один запис. Процес '"письменник" повинен припинятися, коли вci буфери є зайнятими, i активізуватися, при звільненні хоча б одного буфера. Навпроти, процес "читач" припиняється, коли всі буфери порожні i активізується з появою хоча б одного запису.
Введемо два семафори: е - число порожніх буферів i f - число заповнених буферів. Припустимо, запис у буфер i зчитування з буфера з критичними секціями (як у прикладі з принт-сервером на початку даного розділу). Введемо також двоїчний семафор b, що використовують для забезпечення взаємного виключення.
іnt e = N, f = 0, b=1;
void Writer ()
{
while(1)
{
PrepareNexlRecordf); /* пiдготовка нового запису */
P(e); /* Зменшити число вільних буферів, якщо вони є */
/* в іншому випадку - чекати, поки вони звільняться */
P(b); /* Bxiд у критичну секцію */
AddToBuffer(); /* Додати новий запис у буфер */
V(b); /* Вихід iз критичної секції */
V(f); /* Збільшити число зайнятих буферів */
{
{
void Reader ()
{
while(1)
{
P(f); /* Зменшити число зайнятих буферів, якщо вони є */
/* в іншому випадку - чекати, поки вони з'являться
Р(b); /* Bxiд у критичну секцію */
GelFromBufferQ; */ Узяти запис із буфера */
V(b); /* Вихід iз критичної секції */
V(e); /* Збільшити число вільних буферів */
Process Record (); /* Опрацювати запис */
Тупіки
Наведений вище приклад допоможе нам проілюструвати ще одну проблему синхронізації - взаємні блокування, названі також дедлоками (deadlocks), клінчами (clinch) чи тупіками. Якщо переставити місцями операції Р(е) i P(b) у пporpaмi "письменник", то при збігy обставин ці два процеси можуть взаємно заблокувати один одного. Дійсно, нехай "письменник" першим ввійде в критичну секцію i знайде відсутність вільних буферів; він почне чекати, коли "читач" візьме черговий запис із буфера, хоча "читач" не зможе цього зробити, тому що для цього необхідно ввійти в критичну секцію, вхід у яку заблокований процесом "письменником".
Розглянемо ще один приклад тупіка. Нехай двом процесам, що виконуються в режимі мультипрограмування, для виконання їхньої роботи потрібно два ресурси, наприклад, принтер i диск. На малюнку 2.6.(а) показані фрагменти відповідних програм. I нехай після того, як процес А зайняв принтер (установив блокуючу перемінну), він був перерваний. Керування одержав процес У, що спочатку зайняв диск, але при виконанні наступної команди, був заблокований, тому що принтер виявився вже зайнятим процесом А. Керування знову одержав процес А, що у відповідності із своєю програмою, зробив спробу зайняти диск i був заблокований: диск уже зайнятий процесом В. У такому стані процеси А і В можуть знаходитися як завгодно довго.
У залежності від співвідношення швидкостей процесів, вони можуть або зовсім незалежно використовувати поділювані ресурси (г), або утворювати черги до поділюваних pecypciв (в), або ж взаємно блокувати один одного (б). Тупикові ситуації треба відрізняти від простих черг, хоча i ті й інші виникають при спільному використанні pecypciв i ззовні виглядають подібними: процес припиняється і чекає звіпьнення ресурсу. Однак черга - це нормальне явище, невід'ємна ознака високого коефіцієнта використання pecypciв при випадковому надходженні запитів. Вона виникає тоді, коли ресурс недоступний у даний момент. Проте через деякий час він звільняється i процес продовжує своє виконання. Тупік же ж, що видно з його назви, є нерозв'язною ситуацією.
Мал. 2.6. (а) фрагменти програм А і В, що розділяють принтер i диск;
(б) взаємне блокування (клінч); (в) черга до поділюваного диска;
(г) незалежне використання pecypciв.
У розглянутих прикладах тупік був зумовлений двома процесами, але взаємно блокувати один одного можуть i більша кількість процесів.
Проблема тупіків містить у собі наступні задачі:
• запобігання утворення тупиків;
• розпізнавання тупіків;
• відновлення системи після тупіків.
Тупіки можуть бути ліквідовані на стадії написання програм, тобто програми повинні бути написані таким чином, щоб тупік не міг виникнути ні при якому співвідношенні взаємних швидкостей npoцeciв. Так, якби в попередньому прикладі, процеси А й У запитували ресурси в однаковій послідовності, то тупік був би в принципі неможливий. Другий підхід до запобігання тупіків називається динамічним i полягає у дотриманні визначених правил при призначенні ресурсів процесам, наприклад, ресурси можуть виділятися у визначеній послідовності, що є загальною для всіх процесів.
У випадках, коли тупікова ситуація зумовлена багатьма процесами, що використовують багато pecypciв, розпізнавання тупіка є нетривалою задачею. Існують формальні, програмно-реалізовані методи розпізнавання тупіків, засновані на веденні таблиць розподілу pecypciв, а також таблиць запитів до зайнятих pecypciв. Аналіз цих таблиць дозволяє знайти взаємні блокування.
Якщо ж тупікова ситуація все ж таки виникла, то не обов'язково знімати з виконання всі заблоковані процеси. Можна зняти тільки частину з них, при цьому звільняються ресурси, очікувані іншими процесами, можна повернути деякі процеси в область свопінга, можна "відкотити" деякі процеси до так званої контрольної крапки, у якій запам'ятовується вся інформація, необхідна для відновлення виконання програми з даного місця. Контрольні крапки розставляють у пporpaмi в місцях, після яких можливе виникнення тупіка. З усього вищесказаного зрозуміло, що використовувати семафори потрібно дуже обережно, тому що одна незначна помилка може призвести до зупинки системи. Для того, щоб полегшити написания конкретних програм, запропонували високорівневий засіб синхронізації, названий монітором. Moнiтop - це нaбіp процедур, перемінних структур даних. Процеси можуть викликати процедури монітоpa, але не мати доступу до внутрішніх даних монітора. Монітори мають важливу властивість, що робить їx корисними для досягнення взаємного виключення: тільки один процес може бути активним, стосовно монітоpa. Компілятор обробляє виклики процедур монітора особливим образом. Звичайно, коли процес викликає процедуру монітора, то перші кілька інструкцій цієї процедури перевіряють, чи не активний будь-який інший процес, стосовно монітора. Якщо так, то зухвалий процес припиняється, поки інший процес не звільнить монітоp. Таким чином, виключення входу декількох процесів у моніторі реалізується не програмістом, а компілятором, що робить помилки менш ймовірними.
У розподілених системах, що складаються з декількох процесорів, кожний з яких має власну оперативну пам'ять, семафори i монітори виявляються непридатними. У таких системах синхронізація може бути реалізована тільки за допомогою обміну повідомленнями. Докладніше про це - у розділі "Синхронізація в розподілених системах".
Нитки
Багатозадачність є найважливішою властивістю ОС. Для підтримки цієї властивості, ОС визначає і оформляє для себе ті внутрішні одиниці роботи між якими i буде розподілятися процесор та iншi ресурси комп'ютера. Ці внутрішні одиниці роботи в різних ОС мають piзні назви - задача, завдання, процес, нитка. У деяких випадках сутності, що позначаються цими поняттями, принципово відрізняються один від одного.
Згадуючи про процеси, ми відзначали, що операційна система підтримує їхню відособленість: у кожного процесу є свій віртуальний адресний npocтip, кожному процесу призначаються свої ресурси - файли, вікна, семафори i т.д. Така відособленість потрібна для того, щоб захистити один процес від іншого, оскільки вони, спільно використовуючи всі ресурси машини, конкурують один з одним. Взагалі, процеси належать різним користувачам, що поділяють один комп'ютер, i ОС бере на себе роль арбітра в суперечках процесів за ресурси.
За умови мультипрограмування, підвищується пропускна здатність системи, але окремий процес ніколи не виконується швидше, ніж, якби він виконувався в однопрограмному режимі (всякий поділ pecypciв сповільнює роботу одного з учасників, за рахунок додаткових витрат часу на чекання звільнення ресурсу). Однак задача, розв'язувана в рамках одного процесу, може мати внутрішній паралелізм, що упринципі дозволяє прискорити її рішення. Наприклад, у ході виконання задач відбувається звертання до зовнішнього пристрою, i на час цієї операції можна не блокувати виконання процесу, а продовжити обчислення по іншій "галузі" процесу.
Для цих цілей сучасні ОС пропонують використовувати, порівняно, новий механізм багатониткової обробки (multithreading). При цьому вводиться нове поняття "нитки" (thread), а поняття "процес" у значній мipi змінює зміст.
Мультипрограмування тепер реалізується на piвнi ниток i задача, оформлена у вигляді декількох ниток у рамках одного процесу, може бути швидше виконана за рахунок псевдопаралельного (чи рівнобіжного в мультипроцесорній системі) виконання її окремих частин. Наприклад, якщо електронна таблиця була розроблена з урахуванням можливостей багатониткової обробки, то користувач може запросити перерахування свого робочого листа й, одночасно, продовжувати заповнювати таблицю. Особливо ефективно можна використовувати багатонитковість для виконання розподілених додатків, наприклад, багатонитковий сервер може паралельно виконувати запити відразу декількох клієнтів.
Нитки, що належать до одного процесу, не настільки ізольовані одна від одної як процеси в традиційній багатозадачній системі: між ними легко організувати тісну взаємодію. Дійсно, на відміну від процесів, що конкурують з додатками, yci нитки одного процесу завжди належать одному додатку, тому програміст, що пише цей додаток, може заздалегідь продумати роботу безлічі ниток процесу таким чином, щоб вони могли взаємодіяти, а не боротися за ресурси.
У традиційних ОС поняття "нитка" тотожна поняттю "процес". У дійсності часто бажано мати кілька ниток, що виконуються паралельно і розділяють єдиний адресний npocтip, завдяки чому нитки стають подібними до процесів (за винятком поділюваного адресного простору).
Нитки iноді називають полегшеними процесами чи міні-процесами. Дійсно, нитки в багатьох відношення подібні до процесів. Кожна нитка виконується строго і послідовно i має свій власний програмний лічильник та стік. Нитки, як і процеси, можуть, наприклад, породжувати нитки-нащадки, можуть переходити зі стану в стан. Подібно до традиційних процесів (тобто процесам, що складаються з однієї нитки), вони можуть знаходитися в одному з наступних станів: ВИКОНАННЯ, ЧЕКАННЯ i ГОТОВНІСТЬ. Поки одна нитка заблокована, інша нитка того ж процесу може виконуватися. Нитки розділяють процесор так як це роблять процеси, відповідно до різних варіантів планування.
Однак різні нитки в рамках одного процесу не настільки незалежні, як окремі процеси. Уci вони мають той самий адресний простір. Це означає, що вони розділяють ті caмі глобальні перемінні. Оскільки кожна нитка є доступ до кожної віртуальної адреси, то одна нитка може використовувати стек іншої нитки. Між нитками немає повного захисту, тому що, по-перше, це неможливо, а по-друге, не потрібно. Уci нитки одного процесу завжди вирішують загальну задачу одного користувача i апарат ниток використовують для більш швидкого рішення задачі, шляхом її розпаралелювання. При цьому, програмісту дуже важливо мати у своєму розпорядженні зручні засоби організації взаємодії частин oднієї задачі. Kpiм поділу адресного простору, yci нитки розділяють також нaбip відкритих файлів, таймерів, сигналів i т.п.
Отже, нитки мають власні:
Нитки розділяють:
Багатониткова обробка підвищує ефективність роботи системи в порівнянні з багатозадачною обробкою. Наприклад, у багатозадачному середовищі Windows може одночасно працювати з електронною таблицею i текстовий редактор. Однак, якщо користувач запитує перерахування свого робочого листа, електронна таблиця блокується доти, поки ця операція не завершиться, що може вимагати значного часу. У багатонитковому середовищі, у випадку, якщо електронна таблиця була розроблена з урахуванням можливостей багатониткової обробки, наданої програмісту, цієї проблеми не виникає i тому користувач завжди має доступ до електронної таблиці.
Широке застосування має багатониткова обробка в розподілених системах. Про це в розділі "Процеси i нитки в розподілених системах".
Деякі приклади задач легше програмувати, використовуючи паралелізм, наприклад, задачі типу "письменник-читач", у яких одна нитка виконує запис у буфер, а інша - зчитує записи з нього. Оскільки вони розділяють загальний буфер, то не потрібно їx робити окремими процесами. Інший приклад використання ниток - це керування сигналами, (наприклад, переривання з клавіатури (del чи break)). Замість обробки сигналу переривання, одна нитка призначається для постійного чекання надходження сигналів. Таким чином, використання ниток може скоротити необхідність у перериваннях користувальницького рівня. У цих прикладах не настільки важливе рівнобіжне виконання, як важлива якість програми.
Hapeштi, у мультипроцесорних системах для ниток з одного адресного простору є можливість виконуватися паралельно на різних процесорах. Це, дійсно, один з головних шляхів реалізації поділу pecypciв у таких системах. 3 іншого боку, правильно сконструйовані програми, що використовують нитки, повинні працювати однаково добре як на однопроцесорній машині в режимі поділу часу між нитками, так i на сучасному мультипроцесорі.
Керування пам'яттю
Пам'ять є найважливішим ресурсом, що вимагає ретельного керування з боку мультипрограмної операційної системи. Розподілу підлягає вся оперативна пам'ять, не зайнята операційною системою. Звичайно ОС розташовується в наймолодших адресах, однак може займати i найстарші адреси. Функціями ОС, із керування пам'яттю є: відстеження вільної i зайнятої пам'яті, виділення пам'яті процесам i звільнення пам'яті при їх завершенні, витиснення процесів з оперативної пам'яті на диск, коли розміри основної пам'яті не достатні для розмщення в ній ycix процесів i повернення їх в оперативну пам'ять, коли там звільняється місце, а також настроювання адрес програми на конкретну область фізичної пам'яті.
Типи адрес
Для ідентифікації перемінних i команд використовують символьні імена (мітки), віртуальні i фізичні адреси (малюнок 2.7).
Символьні iмeнa привласнює користувач, при написанні програми алгоритмічною мовою або на ассемблері.
Віртуальні адреси виробляє транслятор, що переводить програму на мову машинни. Оскільки під час трансляції не відомо, у яке місце оперативної пам'яті буде завантажена програма, транслятор привласнює перемінні та віртуальні (умовні) адреси, звичайно, вважаючи за замовчування те, що програма буде розміщена, починаючи з нульової адреси. Сукупність віртуальних адрес процесу називають віртуальним адресним простором. Кожен процес має власний віртуальний адресний пpocтip. Максимальний poзмip віртуального адресного простору обмежується розрядністю адреси, властивій даній apxiтeктypi комп'ютера i, як правило, не збігається з обсягом фізичної пам'яті, що є в комп'ютері.
Фізичні адреси відповідають номерам осередків оперативної пам'яті, де в дійсності будуть розташовані перемінні i команди. Перехід від віртуальних адрес до фізичних може здійснюватися двома способами. У першому випадку заміну віртуальних адрес на фізичні робить спеціальна системна програма - завантажник. Завантажник, на підставі наявних у нього вихідних даних про початкову адресу фізичної пам'яті, у яку має бути завантаженна програма, й інформації, наданої транслятором про константи програми, виконує завантаження програми, сполучаючи її, із заміною віртуальних адрес фізичними.
Мал. 2.7. Типи адрес
Другий спосіб полягає в тому, що програма завантажується в пам'ять у незміненому вигляді з віртуальними адресами, при цьому операційна система фіксує зсув дійсного розташування програмного коду щодо віртуального адресного простору. Під час виконання програми, при кожному звертанні до оперативної пам'яті, відбувається перетворення віртуальної адреси у фізичну. Другий cпociб є гнучішим, він допускає переміщення програми під час її виконання, у той час як переміщає завантажувач жорстко прив'язує програму до початку виділеному їй на ділянці пам'яті. Разом з тим, використання завантажника, що переміщує, зменшує накладні витрати, тому що перетворення кожної віртуальної адреси відбувається тільки один раз під час завантаження, а в іншому випадку - щораз при звертанні за даною адресою.
У деяких випадках (звичайно, у спеціалізованих системах), коли заздалегідь точно відомо, у якій області оперативноі пам'яті буде виконуватися програма, транслятор видає код, що виконується відразу у фізичних адресах.
Методи розподілу пам'яті без використання дискового простору
Уci методи керування пам'яттю можуть бути поділені на два класи: методи, що використовують переміщення процесів між оперативною пам'яттю i диском та методи, що не виконують цього (малюнок 2.8). Почнемо з останнього, простішого класу методів.
Мал. 2.8. Класифікація методів розподілу пам'яті.
Розподіл пам'яті фіксованими розділами
Найпростішим способом керування оперативною пам'яттю є поділ її на кілька розділів фасованої вепичини. Це може бути виконане вручну оператором під час старту системи, чи під час її генерації. Чергова задача, що надійшла на виконання, міститься або в загальній черзі (малюнок 2.9,а), або ж в черзі до якогось розділу (малюнок 2.9,б).
Підсистема керування пам'яттю, в цьому випадку, виконує наступні задачі:
• порівнюючи розмір програми, що надійшла на виконання, i вільних розділів, вибирає придатний розділ;
• здійснює завантаження програми i настроювання адрес.
При очевидній перевазі - простоті реалізації - даний метод має істотний недолік - твердість. Оскільки в кожному розділі може виконуватися тільки одна програма, то рівень мультипрограмування заздалегідь обмежений числом розділів, не залежно від того, який розмір мають програми. Навіть якщо програма має невеликий обсяг, вона займає весь розділ, що призводить до неефективного використання пам'яті. 3 iншoгo боку, навіть якщо обсяг оперативної пам'яті машини дозволяє виконати програму, розбивка пам'яті на розділи не дозволяє зробити цього.
Мал. 2.9. Розподіл пам'яті фіксованими розділами: а - із загальною чергою; б - з окремими чергами.
Розподіл пам'яті розділами змінної величини.
У цьому випадку пам'ять машини не поділяють заздалегідь на розділи. Спочатку вся пам'ять вільна. Кожній задачі виділяється необхідна їй пам'ять. Якщо достатній обсяг пам'яті відсутній, то задача не приймається на виконання i стоїть в черзі. Після завершення задачі, пам'ять звільняється i на це місце може бути завантажена інша задача. Таким чином, у довільний момент часу оперативна пам'ять є випадковою послідовністю зайнятих i вільних ділянок (poзділів) довільного розміpy. На малюнку 2.10 зображених стан пам'яті в piзні моменти часу, при використанні динамічного розподілу. Так у певний момент у пам'яті знаходиться тільки ОС, а до моменту t1 пам'ять поділена між 5 задачами, причому задача П4, завершуючись, залишає пам'ять. На звільнене місце завантажується задача П6, що надійшла в момент t3.
Мал. 2.10. Розподіл пам'яті динамічними розділами.
Задачами операційної системи, за умови реалізації даного методу, керування пам'яттю є:
• ведення таблиць вільних i зайнятих областей, де вказуються початкові адреси i розміри ділянок пам'яті;
• при надходженні нової задачі - аналіз запиту, переглядають таблиці вільних областей i вибирають розділ, розмір якого достатній для розміщення задачі, що надійшла;
• завантаження задачі у виділений для неї розділ i коректування таблиць вільних i зайнятих областей;
Вибір розділу для задачі можуть здійснювати за певними правилами, такими, наприклад, як "перший розділ достатнього розміру", або ж "розділ, що має найменший достатній розмір", чи "розділ, що має найбільший достатній розмір". Уci ці правила мають свої переваги i недоліки.
У порівнянні з методом розподілу пам'яті фіксованими розділами, даний метод має набагато більшу гнучкість, але йому властивий дуже вагомий недолік память фрагментами. Фрагментація - це наявність великого числа несуміжних ділянок вільної пам'яті дуже маленького розміру (фрагментів). Настільки маленького, що жодна із програм, що надходять не може поміститися в жодній з ділянок, хоча сумарний обсяг фрагментів може скласти значну величину, що набагато перевищує необхідний обсяг пам'яті.
Переміщувані розділи
Одним з методів боротьби з фрагментацією є переміщення вcix зайнятих до старших або молодших адрес, так, щоб уся вільна пам'ять утворювала єдину вільну область (малюнок 2.11). У даному випадку в ОС повинна ще час від часу копіювати вміст розділів з одного місця пам'яті в інше, коректуючи таблицю вільних i зайнятих областей. Ця процедура називається "стиском". Стиск може виконуватися або при завершені задачі, або ж тільки тоді, коли для нової задачі немає вільного розділу достатнього розміру. Першомий випадок потребує менше обчислювальної роботи при коректуванні таблиць, а в другому - рідше виконується процедура стиску. Оскільки програми переміщуються по оперативній пам'яті протягом виконання, то перетворення адрес із віртуальної форми у фізичну повинно виконуватися динамічнішим способом.
Мал. 2.11. Розподіл пам'яті переміщуваними розділами.
Хоча процедура стиску i призводить до ефективнішого використання пам'яті, вона може зажадати значного й часу, що є істотним недоліком
.
Методи розподілу пам'яті з використанням дискового простору.
Поняття віртуальної пам'яті.
Уже досить давно користувачі зіштовхнулися з проблемою розміщення в пам'яті програм, poзмір яких перевищував вільну пам'ять. Рішенням цієї проблеми стала розбивка програми на частини, названі оверлеями. О - вий оверлей починав виконувався першим. Коли він закінчував своє виконання, то викликав інший оверлей. Bci оверлеї зберігалися на диску i переміщалися між пам'яттю i диском засобами операційної системи. Однак розбивку програми на частини i планування їхнього завантаження в оперативну пам'ять повинен був здійснювати програміст.
Розвиток методів організації обчислювального процесу в цьому напрямку призвело до появи методу, відомого за назвою “віртуальна пам'ять”. Віртуальним називається ресурс, що користувачу чи користувальницькій програмі представляється таким, що володіє властивостями, котрими він, у дійсності, не володіє. Так, наприклад, користувачу може бути надана віртуальна оперативна пам'ять, розмір якої переверщує всю наявну в системі реальну оперативну пам'ять. Користувач пише програми так, начебто в його розпорядженні є однорідна оперативна пам'ять великого обсягу, але, в дійсності, вci дані, що використовуються програмою, зберігаються на одному чи кількох різнорідних запам'ятовуючих пристроях, звичайно ж, на дисках, i при необхідності, частинами відображаються в реальній пам'яті.
Отож, віртуальна пам'ять - це сукупність програмно-апаратних засобів, що дозволяють користувачам писати програми, розмір яких переверщує наявну оперативну пам'ять: Віртуальна пам'ять вирішує наступні задачі:
• розміщує дані в запам'ятовуючих пристроях різного типу, наприклад, частина програми - в оперативній пам'яті, а частина - на диску;
• переміщує за необхідності, дані між запам'ятовуючими пристроями різного типу, наприклад, довантажує потрібну частину програми з диска в оперативну пам'ять;
• перетворює віртуальні адреси у фізичні.
Уci ці дії виконуються автоматично, без участі програміста, тобто механізм віртуальної пам'яті є прозорим стосовно користувача. Найбільш розповсюдженою реалізацією віртуальної пам'яті є сторінковий, сегментний i сторінково - сегментний розподіл пам'яті, а також свопінг.
Сторінковий розподіл
На малюнку 2.12 зображена схема сторінкового розподілу пам'яті. Віртуальний адресний пpocтip кожного процесу поділяється на частини однакового, фіксованого для даної системи, розміру, що названі віртуальними сторінками. Взагалі розмір віртуального адресного простору не є кратним розміру сторінки. Тому остання сторінка кожного процесу доповнюється фіктивною областю.
Вся оперативна пам'ять машини також поділяється на частини такого ж розміру, названі фізичними сторінками (чи блоками). Розмір сторінки, звичайно, вибирається рівним ступеня двійки: 512, 1024 i т.д., це дозволяє спростити механізм перетворення адрес.
При завантаженні процесу, частина його віртуальних сторінок поміщається в оперативну пам'ять, a iнша - на диск. Суміжні віртуальні сторінки не обов'язково розташовуються на суміжних фізичних сторінках. При завантаженні, операційна система створює для кожного процесу інформаційну структуру - таблицю сторінок, у якій установлюється відповідність між номерами віртуальних i фізичних сторінок для сторінок, що завантажені в оперативну пам'ять, чи робиться оцінка того, що віртуальна сторінка вивантажена на диск. Kpiм того, у таблиці сторінок міститься керуюча інформація: ознака модифікації сторінки, ознака невивантаження (вивантаження деяких сторінок може бути заборонено), ознака звертання до сторінки (використовується для підрахунку числа звертань за визначений період часу), - й інші дані, формовані i використовувані механізмом віртуальної пам'яті.
При активізації чергового процесу, в спеціальний регістр процесора завантажується адреси таблиці стopiнок даного процесу.
При кожному звертанні до пам'яті відбувається читання з таблиці сторінок інформації про віртуальну сторінку, до якої звертаються. Якщо дана віртуальна сторінка знаходиться в оперативній пам'яті, то здійснюється перетворення віртуальної адреси у фізичну. Якщо ж потрібна віртуальна сторінка в даний момент вивантажена на диск, то відбувається, так назване, сторінкове переривання. Процес, що виконується, переводиться в стан чекання i активізується інший процес, з черги готових. Паралельно, програма обробки cтopiнковoгo переривання “знаходить” на диску необхідну віртуальну сторінку i намагається завантажити її в оперативну пам'ять. Якщо в пам'яті є вільна фізична сторінка, то завантаження виконується негайно, якщо ж вільних стopiнок немає, то вирішується питання, яку сторінку варто вивантажити з оперативної пам'яті.
У даній ситуації використовують багато різних критеріїв вибору, але найбільш популярні з них наступні:
• сторінка яка найдовше не використовувалася;
• перша сторінка, що потрапила;
• сторінка, до якої останнім часом було найменше звертань.
Після того, як обрана сторінка, що повинна залишити оперативну пам'ять, аналізується її ознака модифікаціїї (з таблиці сторінок). Якщо сторінка, що виштовхується, з моменту завантаження була модифікована, то її нова версія повинна бути переписана на диск. Якщо нi, то її просто знищують, тобто відповідна фізична сторінка стає вільною.
Віртуальна адреса, при сторінковому pозпoділі, може бути представлена у вигляді пари (р, s), де р - номер віртуальної сторінки процесу (номерація сторінок починається з 0), a s - зсув у межах віртуальної сторінки. З огляду на те, що poзмір сторінки дорівнює 2 у ступені до, зсув s можна отримати простим віддленням к молодших розрядів у двійковому записі віртуальної адреси. Старші розряди, що залишилися, є двійковим записом номера сторінки р.
При кожному звертанні до оперативної пам'яті апаратними засобами виконуються наступні дії:.
1. на підставі початкової адреси таблиці сторінок (вмicт peгiстpу адреси таблиці сторінок), номера віртуальної сторінки (старші розряди віртуальної адреси) i довжини запису в таблиці сторінок (системна константа) визначається адреса потрібного запису в таблиці;
2. із цього запису витягається номер фізичної сторінки;
3. до номера фізичної сторінки приєднується зсув (молодші розряди віртуальної адреси). Використання в пункті (3) того факту, що розмір сторінки дорівнює ступеню 2, дозволяє застосувати операцію конкатенації (приєднання) замість тривалішої операції додавання, що зменшує час одержання фізичної адреси, а значить підвищує продуктивність комп'ютера.
На продуктивність системи зi сторінковою організацією пам'яті впливають тимчасові витрати, пов'язані з обробкою сторінкових переривань i перетворенням віртуальної адреси у фізичну. При часто виникаючих сторінкових перериваннях, система може витрачати велику частину часу “впусту”, на свопинг сторінок. Щоб зменшити частоту сторінкових переривань, варто було б збільшувати розмір сторінки. Крім того, збільшення розміру сторінки зменшує розмір таблиці сторінок, а значить зменшує витрати пам'яті. 3 іншого боку, якщо сторінка велика, значить велика i фіктивна область в останній віртуальній сторінці кожної програми. У середньому, на кожній програмі губиться половина обсягу сторінки, що в сумі при великій сторінці може скласти істотну величину. Час перетворення віртуальної адреси у фізичну в значній мipi визначається часом доступу до таблиці сторінок. У зв'язку з цим, таблицю сторінок прагнуть розміщувати в "швидких" запам'ятовуючих пристроях. Це може бути, наприклад, набір спеціальних peгістрів пам'яті, що використовують для зменшення часу доступу на асоціативний пошук i кеширування даних.
Сторінковий розподіл пам'яті може бути реалізований у спрощеному вapiaнті, без вивантаження cторінок на диск. У цьому випадку вci віртуальні сторінки всix процесів постійно знаходяться в оперативній пам'яті. Такий варіант сторінкової організації хоча i не надає користувачу віртуальної пам'яті, але майже виключає фрагментацію за рахунок того, що програма може завантажуватися в несуміжні області, а також того, що при завантаженні віртуальних сторінок ніколи не утворюють залишків.
Сегментний розподіл
При сторінковій організації, віртуальний адресний простір процесу поділяється, механічно, на piвні частини. Це не дозволяє диференціювати способи доступу до різних частин програми (сегменти). Ця властивість є корисною. Наприклад, можна заборонити звертатися з операціями запису i читання в кодовий сегмент програми, а для сегмента даних дозволити тільки читання. Kpiм того, розбивка програми на "осмислені” частини робить можливим поділ одного сегмента декількома процесами. Наприклад, якщо два процеси використовують ту саму математичну підпрограму, то в оперативну пам'ять може бути завантажена тільки одна її копія.
Розглянемо, яким чином сегментний розподіл пам'яті реалізує ці можливості (малюнок 2.14). Віртуальний адресний пpocтip процесу поділяється на сегменти, розмір яких визначається програмістом з урахуванням значеннєвого значення інформації, що міститься в них. Окремий сегмент може являти собою підпрограму, масив даних i т.п. Іноді сегментація програми виконується за замовчуванням компілятором.
При завантаженні процесу, частина сегментів міститься в оперативній пам'яті (при цьому, для кожного з цих сегментів операційна система підшуковує придатну ділянку вільної пам'яті), а частина сегментів розміщується в дисковій пам'яті. Сегменти однієї програми можуть займати в оперативній пам'яті несуміжні ділянки. Під час завантаження система створює таблицю сегментів процесу (аналогічну таблиці сторінок), у якій для кожного сегмента вказується початкова фізична адреса сегмента в оперативній пам'яті, pозмір сегмента, правила доступу, ознака модифікації, ознака звертання до даного сегмента за останній інтервал часу та й інша інформація. Якщо вipтyaльні адресні простори декількох процесів містять той самий сегмент, то в таблицях сегмент цих процесів робить посилання на ту саму ділянку оперативної пам'яті, у якій завантажується в єдиному екземплярі.
Мал. 2.14. Розподіл пам'яті сегментами.
Система із сегментною організацією функціонує аналогічно системі з сторінковою організацією: час від часу відбуваються переривання, пов'язані з відсутністю потрібних сегментів у пам'яті, при необхідності звільнення пам'яті, деякі сегменти вивантажуються; при кожному звертанні до оперативної пам'яті виконується перетворення віртуальної адреси у фізичну.
Віртуальна адреса, при сегментній організації пам'яті, може бути представлена парою (g, s), де g -номер сегмента, a s - зсув у сегменті. Фізична адреса обчислюється додавання початкової фізичної адреси сегмента, знайденого в таблиці сегментів за номером g, i зсуву s.
Недоліком даного методу розподілу пам'яті є фрагментація на piвнi сегментів i повільніше, в порівняння з сторінковою організацією, перетворення адреси.
Сторінково - сегментний розподіл
Даний метод являє собою комбінацію сторінкового i сегментного розподілу пам'яті i, внаслідок цього, поєднує достоїнства обох підходів. Віртуальний простір процесу поділяється на сегменти, а кожен сегмент, у свою чергу, поділяється на віртуальні сторінки, що номеруються в межах сегмента. Оперативна пам'ять поділяється на фізичні сторінки. Завантаження процесу виконується операційною системою посторінково, при цьому частина сторінок розміщується в оперативній пам'яті, а частина - на диску. Для кожного сегмента створюється своя таблиця сторінок, структура якої збігається зі структурою таблиці сторінок, що використовують при сторінковому розподілі. Для кожного процесу створюється таблиця сегментів, у якій вказують адреси таблиць сторінок для вcix сегментів даного процесу. Адреси таблиці сегментів завантажуються в спеціальний регістр процесора, під час активізації відповідного процесу. На малюнку 2.15 зображена схема перетворення віртуальної адреси у фізичну (для даного методу).
Мал. 2.15. Схема перетворення вipmyaльнoї адреси у фізичну для сегментно-сторінкової організації пам'яті
Різновидом віртуальної пам'яті є свопінг. На малюнку 2.16 зображено графік залежності коефіцієнта завантаження процесор, в залежності від числа одночасно виконуваних процесів i частки часу, протягом якого процесами були в стані чекання введения - виведення.
Мал. 2.16. Залежність завантаження процесора від числа задач i інтенсивності введення-виведення.
3а малюнком 2.16, для завантаження процесора на 90% достатньо лише трьох розрахункових задач. Однак, для того, щоб забезпечити таке ж завантаження інтерактивними задачами, що виконують інтенсивне введення-виведення, потрібні десятки таких задач. Варто зауважити, що необхідною умовою для виконання задачі є завантаження її в оперативну пам'ять, обсяг якої обмежений. За цих умов, був запропонований метод організації обчислювального процесу, названий свопінгом. Відповідно до нього, деякі процеси (звичайно, знаходяться в стані чекання) тимчасово вивантажуються на диск. Планувальник операційної системи не виключає їх зi свого розгляду, i за умов активізації деякого процесу, що знаходиться в області свопінгу на диску, цей процес переміщується в оперативну пам'ять. Якщо вільного місця в оперативній пам'яті не вистачає, то вивантажується інший процес.
При свопінгу, на відміну від розглянутих раніше методів реалізації віртуальної пам'яті, процес переміщається між пам'яттю i диском, тобто протягом деякого часу процес може бути відсутній в оперативній пам'яті. Існують різні алгоритми вибору процесів на завантаження i вивантаження, а також piзні способи виділення оперативної i дискової пам'яті процесу, що завантажується.
Ієpapxiя запам'ятовуючих пристроїв. Принцип кешування даних
Пам'ять обчислювальної машини є ієрархією запам'ятовуючих пристроїв (внутрішні pericтри процесора, piзні типи надоперативної й оперативної пам'яті, диски, стрічки), що відрізняються середнім часом доступу i вартістю збереження даних, у розрахунку на один біт (малюнок 2.17). Користувачу хотілося б мати i недорогу, i швидку пам'ять. Кеш-пам'ять є компромісним рішенням цієї проблеми.
Мал. 2.17. Ієрархія ЗП.
Кеш-пам'ять - це спосіб організації спільного функціонування двох типів запам'ятовуючих пристроїв, що відрізняються часом доступу i вартістю збереження даних, що дозволяє зменшити середній час доступу до даних за рахунок динамічного копіювання, в "швидке" ЗУ найчастіше використовуваної інформації з "повільного" ЗП.
Кеш-пам'яттю часто називають не тільки спосіб організації роботи двох типів запам'ятовуючих пристроїв, але й один iз пристроїв - "швидке" ЗП. Він коштує дорожче i, як правило, має, порівняно, невеликий обсяг. Важливо, що механізм кеш-пам'яті є прозорим для користувача, що не повідомляє інформацію про інтенсивність використання даних. Він не повинний брати участь у переміщенні даних із ЗП одного типу в ЗП іншого типу, усе це роблять системні засоби автоматично.
Розглянемо окремий випадок використання кеш-пам'яті, з метою зменшення середнього часу доступу до даних, що зберігається в оперативній пам'яті. Для цього, між процесором i оперативною пам'яттю міститься швидке ЗП, назване просто кеш-пам'яттю (малюнок 2.18). З цією метою може бути використана, наприклад, асоціативна пам'ять. Вміст кеш-пам'яті являє собою сукупність записів щодо всіх завантажених у неї елементів даних. Кожен запис про елемент даних містить у собі його адресу, i керуючу інформацію: ознака модифікації й звертання до даних, за певний період часу.
Мал. 2.18. Кеш-пам'ять
У системах, оснащених кеш-пам'яттю, кожен запит до оперативної пам'яті виконується у відповідності з наступним алгоритмом:
1. Розглядається вміст кеш-пам'яті, з метою визначення чи не знаходяться потрібні дані в кеш-пам'яті; кеш-пам'ять не є адресною, тому пошук потрібних даних здійснюється за вмістом - значенню поля чи адреси в оперативній пам'яті ( із запиту).
2. Якщо дані містяться в кеш-пам'яті, то вони зчитуються з неї, а результат передається в процесор.
3. Якщо потрібних даних немає, то вони разом з адресою копіюються з оперативної пам'яті в кеш-пам'ять, а результат виконання запиту передається в процесор. При копіюванні даних може зясуватися, що в кеш-пам'яті немає вільного місця. Тоді вибирають дані, до яких у певний період було найменше звертань, для витиснення з кеш-пам'яті. Якщо ці дані були модифіковані за час перебування в кеш-пам'яті, то вони листуються в оперативну пам'ять. Якщо ж вони не модифіковані, то їхне місце в кеш-пам'яті стає вільним.
На практиці в кеш-пам'ять зчитується не один елемент даних, до якого відбулося звертання, а цілий їх блок. Це збільшує ймовірність, так званого "попадання в кеш", тобто перебування потрібних даних у кеш-пам'яті.
Покажемо, як середній час доступу до даних залежить від ймовірності попадання в кеш. Нехай, є основні запам'ятовуючі пристрої з середнім часом доступу до даних t1 i кеш-пам'ять, що має час доступу t2, мабуть, t2<t1. Позначимо через t середній час доступу до даних у системі з кеш-пам'яттю, а через р -ймовірність попадання в кеш. За формулою повної ймовірності маємо:
t = t1(0-p) + t2(p )
Отже, середній час доступу до даних у системі з кеш-памятю лінійно залежить від ймовірності попадання в кеш i змінюється від середнього часу доступу в основне ЗП (при р=0) до середнього часу доступу безпосередньо в кеш-пам'ять (при р=1).
У реальних системах, ймовірність попадання в кеш складає приблизно 0,9. Високе значения ймовірності перебування даних у кеш-пам'яті пов'язано з наявністю об'єктивних властивостей: просторової i тимчасової локальності.
Уci попередні міркування справедливі i для інших пар запам'ятовуючих пристроїв, наприклад, для оперативної i зовнішньої пам'яті. У цьому випадку, зменшується середній час доступу до даних, розташованих на диску i роль кеш-пам'яті виконує буфер, що є в оперативній пам'яті.
Засоби апаратної підтримки керування памяттю
Процесори Intel 80386, 80486 і Pentium з точки зору розглянутих у даному розділі питань, характеризуються аналогічністю. Тому для стислості тексту використовують термін "процесор і386", хоча вся інформація цього розділу в однаковій мірі належить трьом моделям процесорів фірми Intel.
Процесор і386 має два режими роботи - реальний (Real time) і захищений. У реальному режимі процесор і386 працює як швидкий процесор i86, із трохи розширеним набором команд. У захищеному режимі процесор і386 може використовувати всі механізми 32-х розрядної організації пам'яті, у тому числі й механізми підтримки віртуальної пам'яті та механізми переключення задач. Крім цього, у захищеному режимі для кожної задачі процесор і386 може емулювати і86 і 286 процесори, що, у цьому випадку, називають віртуальними процесорами. Таким чином, при багатозадачній роботі в захищеному режимі процесор і386 працює як кілька віртуальних процесорів, що мають загальну пам'ять. На відміну від реального режиму, режим віртуального процесора і86, що називають, у цьому випадку, режимом V86, підтримує сторінкову організацію пам'яті і властивість багатозадачності. Тому задачі, що виконуються в режимі V86, використовують ті ж засоби міжзадачного захисту і захисту ОС від користувальницьких задач, що і задачі, котрі працюють у захищеному режимі і386. Однак, максимальний розмір віртуального адресного простору складає 1 Мб, як і в процесора і86. Переключення процесора і386 з реального режиму в захищений і назад здійснюється шляхом виконання команди МOV, що змінює біт режим в одному з керуючих регістрів процесора. Перехід процесора в режим V86 відбувається подібним шляхом зміни значення визначеного біта в іншому регістрі процесора.
Засоби підтримки сегментації пам'яті.
Фізичний адресний простір процесора і386 складає 4 Гбайта, що визначається 32-розрядною шиною адреси. Фізична пам'ять є лінійною з адресами від 00000000 до FFFFFFF у шістнадцятирічному представленні. Віртуальна адреса, використовувана в програмі, являє собою пари - номер сегмента і зсув усередині сегмента. Зсув зберігається у відповідному полі команди, а номер сегмента - в одному із шести сегментних регістрів процесора (СS, SS, SD, ЕS, FS чи GS), кожний з яких є 16-бітним. Засоби сегментації утворюють верхній рівень засобів керування віртуальною пам'яттю процесора і386, а засоби сторінкової організації - нижній рівень. Засоби сторінкової організації можуть бути як включені, так і виключені (за рахунок установки визначеного біта в керуючому регістрі процесора). У залежності від цього, змінюється зміст перетворення віртуальної адреси, що виконують засоби сегментації. Спочатку розглянемо випадок роботи засобів сегментації при відключеному механізмі керування сторінками.
Мал. 2.19. Підтримка сегментів.
На малюнку 2.19 показаний віртуальний адресний простір процесора і386, при відключеному механізмі керування сторінками. 32-бітний зсув визначає розмір віртуального сегмента в 232=4 Гбайта, а кількість сегментів визначається розміром поля чи відведеного в сегментному регістрі номером сегмента. На малюнку 2.20, а показана структура даних у сегментному регістрі. Ця структура називається селектором, тому що призначена для вибору дескриптора визначеного сегмента з таблиць дескрипторів сегментів. Дескриптор сегмента описує всі характеристики сегмента, необхідні для перевірки правильності доступу до нього і його перебування у фізичному адресному просторі. Процесор і386 підтримує дві таблиці дескрипторів сегментів - глобальну (Global Descriptor Таble, GDT) і локальну (Local Descriptor Table, LDT). Глобальна таблиця призначена для опису сегментів операційної системи і сегментів міжзадачної взаємодії, тобто сегментів, що, у принципі, можуть використовуватися всіма процесами, а локальна таблиця - для сегментів окремих задач. Таблиця GDT одна, а таблиць LDT повинно бути стільки, скільки в системі виконується задач.
За малюнком, селектор складається з трьох полів - 13-бітного поля чи індексу (номера сегмента) у таблицях GDT і LDТ, 1-бітного поля чи показника типу використовуваної таблиці дескрипторів і двохбітного поля чи поточних прав доступу задачі СРL. Розрядність поля чи індексу визначає максимальне число глобальних і локальних сегментів задачі • по 8К (233) сегментів кожного типу, всього 16 К. З урахуванням максимального розміру сегмента - 4 Гбайта - кожна задача, при сегментній організації віртуальної пам'яті, працює у віртуальному адресному просторі в 64 Тбайта.
Тепер зясуємо, як віртуальний простір відображається у фізичному просторі, розміром у 4 Гбайта, при чисто сегментному механізмі відображення. Отже, коли у задачі необхідно одержати доступ до осередку фізичної пам'яті, то для вибору дескриптора віртуального сегмента використовують значення селектора з відповідного (у залежності від команди і стадії ЇЇ виконання - вибірка коду чи команди даних) сегментного регістра процесора. Значення поля чи типу таблиці вказує на те, яку таблицю потрібно використовувати GDT чи LDT. Розглянемо спочатку випадок використання таблиці GDT. Для збереження таблиць GDT і LDT використовують оперативну пам'ять (використання швидкої асоціативної пам'яті процесора для збереження елементів цих таблиць розглянемо пізніше). Для того, щоб процесор зміг знайти у фізичній пам'яті таблицю GDТ, 17 - повна 32-бітна фізична адреса (адреса початку таблиці), а також розмір (поле в 16 біт) зберігаються в спеціальному регістрі процесора GDTR (малюнок 2.20, б). Кожен дескриптор у таблицях GDT і LDT має розмір 8 байт, тому максимальний розмір цих таблиць - 64 ДО (8(8 До дескрипторів). Для витягу потрібного дескриптора з таблиці, процесор складає базову адресу таблиці GDT із регістра GDTR, зі зрушеним на 3 розряди вліво (множення на 8, відповідно до числа байтів в елементі таблиці GDT) значенням поля чи індексу із сегментного регістра. Таким чином він одержує фізичну лінійну адресу потрібного дескриптора у фізичній пам'яті. Таблиця GDT постійно присутня у фізичній пам'яті, тому процесор витягає за цією адресою потрібний дескриптор сегмента і поміщає його у внутрішній (програмно недоступний) регістр процесора. (Таких регістрів шість і кожний із них відповідає визначеному сегментному регістру, що значно прискорює роботу процесора).
Дескриптор віртуального сегмента (малюнок 2.20,в) складається з декількох полів, основними з який є поле бази - базової 32-розрядної фізичної адреси початку сегмента, поле розміру сегмента і поле прав доступу до сегмента - DРL (Descriptor Рrivilege LEVEL). Спочатку процесор визначає правильність адреси, порівнюючи зсув і розмір сегмента (у випадку виходу за границю). Потім процесор перевіряє права доступу задачі до даного сегмента, порівнюючи значення полів CPL селектора і DРL дескриптора сегмента. У процесорі і386 мандатний спосіб визначення прав доступу (названий також механізмом кілець захисту), який має кілька рівнів прав доступу. Вартує уваги й те, що об'єкти будь-якого рівня мають доступ до всіх об'єктів даного рівня чи обєктів нижчих рівнів, але не мають доступу до об'єктів вищих рівнів. У процесорі і386 існує чотири рівні прав доступу - від 0-го, що є найвищим до 3-го найнижчого. Очевидно, що операційна система може використовувати механізм рівнів захисту на свій розсуд. Однак передбачається, що нульовий рівень буде використаний для ядра операційної системи, а третій рівень - для прикладних програм, проміжні рівні - для утиліт і підсистем операційної системи, менш привілейованих, ніж ядро. Таким чином, доступ до віртуального сегмента вважається законним, якщо рівень прав селектора СРL чи вище дорівнює рівню прав сегмента DРL (СРL DPL). При порушенні прав доступу, відбувається переривання, як і у випадку недотримання границь сегмента. Далі перевіряється наявність сегмента у фізичній пам'яті, за значенням біта Р дескриптора, і якщо сегмент відсутній, то відбувається переривання. За наявності сегмента в пам'яті обчислюється фізична лінійна адреса шляхом додавання бази сегмента і зсуву, а також виробляється доступ до елемента фізичної пам'яті, за цією адресою.
У випадку, коли селектор вказує на таблицю LDT, віртуальна адреса перетворюється у фізичну аналогічним шляхом. Проте для доступу до самої таблиці LDT додається ще один етап, тому що в процесорі регістр LDTR вказує на розміщення таблиці LDT не прямо, а побічно. Сам регістр LDTR має розмір 6 біт і містить селектор дескриптора таблиці GDT, що описує розташування цієї таблиці у фізичній пам'яті. Тому за умови доступу до елемента фізичної пам'яті через таблицю LDT, відбувається дворазове перетворення віртуальної адреси у фізичну, причому обидва рази за описаною вище схемою. Спочатку, за значенням селектора LDTR, визначається фізична адреса дескриптора з таблиці GDT, що описує початок розташування таблиці LDT у фізичній пам'яті, а потім за допомогою селектора задачі обчислюється зсув у таблиці LDT і визначається фізична адреса потрібного дескриптора. Далі процес аналогічний перетворенню віртуальної адреси, за допомогою таблиці GDT.
Мал. 2.21. Типи дескрипторів
Дескриптор сегмента містить ще кілька полів. Однобітне поле G визначає одиницю виміру розміру сегмента. При G = 0 розмір визначається в байтах і тоді сегмент не може бути більше 64 ДО, а при G = 1 розмір визначається в 4К-байтних сторінках. При цьому максимальний розмір сегмента досягає зазначених 4 Гбайт. Поле D визначає тип адресації сегмента: при D = 0 сегмент є 16-бітним (для режиму емуляції 16- бітних процесорів i86 і і286), а при D = 1 сегмент є 32-бітним. Крім цього, в дескрипторі є поле типу сегмента, що, у свою чергу, поділяється на кілька полів (малюнок 2.21). Поле S визначає чи є сегмент системним (S = 1), чи користувальницьким (S = 0). У свою чергу, користувальницькі сегменти поділяються на сегменти даних (Е=0) і сегменти коду (Е=1). Для сегмента даних визначають однобітні поля:
ЕD - напрям поширення сегмента (ЕD = 0, для звичайного сегмента даних, що поширюється у бік збільшення адреси, ЕD = 1, для стекового сегмента даних, що поширюється у бік зменшення адреси).
W - поле дозволу запису в сегмент (при W=1 запис дозволений, при W=0 - заборонений).
А - поле доступу до сегмента (1 означає, що після очищення цього поля, до сегмента було звертання, за читання запису. Це поле може використовуватися операційною системою в її стратегії заміни сторінок в оперативній пам'яті).
Для сегмента коду використовують однобітні ознаки:
А - має сенс, аналогічний полю А сегмента даних.
R - дозволяє чи забороняє читання з кодового сегмента.
С - біт підпорядкування, дозволяє чи забороняє виклик даного кодового сегмента з іншого кодового сегмента, з нижчими правами доступу.
У процесорі i386 існує велика кількість системних сегментів, до яких, зокрема, відносяться системні сегменти типу LDT, шлюзи виклику підпрограм і задач, а також сегменти стану задачі ТSS.
Таким чином, для використання сегментного механізму процесора і386, операційній системі необхідно сформувати таблиці GDT і LDT, завантажити їх у пам'ять (для початку досить завантажити тільки таблицю GDT), завантажити показники на ці таблиці в регістри GDTR і LDTR і виключити сторінкову підтримку. Якщо ж операційна система не хоче використовувати сегментну організацію віртуальної пам'яті, то їй досить створити таблицю дескрипторів з одного входу (дескриптора) і завантажити базові значення сегмента в дескриптор. Віртуальний адресний простір задачі, у цьому випадку складається з одного сегмента, довжиною, максимум, 4 Гбайта.
Сегментно-сторінковий механізм
При включеній системі керування сторінками, працює, як описаний вище сегментний механізм, так і механізм керування сторінками, однак при цьому зміст роботи сегментного механізму міняється. У цьому випадку віртуальний адресний простір задачі має розмір у 4 Гбайта, де розміщаються всі сегменти (малюнок 2.22). За колишнім селектором, задачі визначає номер віртуального сегмента, а зсув у команді задачі зсув у середині цього сегмента. Оскільки тепер усі сегменти розділяють один адресний простір, то можливе їхнє накладення, але процесор не контролює такі ситуації, залишаючи цю проблему операційній системі. Перший етап перетворення віртуальної адреси, пов'язаний із перетворенням зсуву і селектора з використанням таблиць GDT і LDT, що містять дескриптори сегментів, у точності збігається з етапом перетворення цих даних при відключеному механізмі керування сторінками. Усі структури даних цих таблиць такі ж. Однак, якщо раніше дескриптор сегмента містив його базову адресу у фізичному адресному просторі, і при додаванні його зі зсувом з команди програми одержували лінійну адресу у фізичній пам'яті, то тепер дескриптор містить базову адресу сегмента у віртуальному адресному просторі. Тому в результаті його додавання зі зсувом одержуємо лінійну віртуальну адресу, що на другому етапі (сторінковому) перетворюється в номер фізичної сторінки. Для реалізації механізму керування сторінками як фізичні, так і віртуальні адресні простори, розбиті на сторінки, розміром 4 ДО, всього в цих адресних просторах нараховується 1 М сторінок.
Лінійна віртуальна адреса містить, у своїх старших 20 розрядах, номер віртуальної сторінки, а в молодших 12 розрядах - зсув у середині сторінки. Для відображення віртуальної сторінки у фізичну досить побудувати таблицю сторінок, кожен елемент якої - дескриптор віртуальної сторінки - містив би номер відповідної їй фізичної сторінки та атрибути. У процесорі і386 так і зроблено: структура дескриптора сторінки зображена на малюнку 2.23. 20-ти розрядів номера сторінки досить для визначення фізичної адреси початку сторінки, бо при її фіксованому розмірі 4 до молодшого 12 розрядів цієї ж адреси, завжди дорівнюють нулю. Дескриптор сторінки також містить наступні поля або ж близькі за змістом до відповідних полів дескриптора сегменти:
Р - біт присутності сторінки у фізичній пам'яті,
W - біт дозволу запису на сторінці,
U - біт користувач/супервізор
А - ознака того чи був доступ до сторінки,
D - ознака модифікації вмісту сторінки,
РWТ і РСD - керують механізмом кешування сторінок (введені, починаючи з процесора і486),
АVL - резерв для нестатків операційної системи (available for use).
Мал. 2.23. Формат дескриптора сторінки
При невеликому розмірі сторінки процесора i386, щодо розмірів адресних просторів, таблиця сторінок повинна займати в пам'яті значне місце - 4 байти ( 1M = 4 Мбайти). Це занадто багато для сучасних моделей персональних комп'ютерів, тому в процесорі i386 використовують розподіл усієї таблиці на розділи по 1024 дескриптора. Розмір обирають так, щоб один розділ займав одну фізичну сторінку (1024 ( 4 байти = 4 Кбайта). Усього виходить 1024 сторінок розділу (1024 (1024 = 1M). Для того, щоб не зберігати всі розділи таблиці у фізичній пам'яті, використовують каталог розділів таблиці сторінок, що використовує такі ж, за структурою, дескриптори сторінок, що й у таблиці сторінок. Тому для збереження інформації про дескриптори 1024 розділів, необхідна пам'ять 4 ДО, тобто одна фізична сторінка. Сукупність дескрипторів, що описують стан і характеристики віртуальних сторінок розділів таблиці сторінок, називається каталогом чи розділом таблиць. Віртуальна сторінка, що зберігає вміст каталогу, завжди знаходиться у фізичній пам'яті і номер її фізичної сторінки зазначений у спеціальному керуючому регістрі СR3 процесора (точніше, в одному з полів цього регістра).
Перетворення лінійної віртуальної адреси у фізичну відбувається в такий спосіб (малюнок 2.24). Поле номера віртуальної сторінки (старше 20 розрядів) поділяється на дві рівні частини, по 10 розрядів поле номера розділу і поле номера сторінки в розділі. За допомогою номера фізичної сторінки, що зберігає каталог і зсуви в цій сторінці, що задається полем номера, процесор знаходить дескриптор віртуальної сторінки. Відповідно до атрибутів цього дескриптора, визначаються права доступу до цієї сторінки, а також наявність її у фізичній пам'яті. У випадку її відсутності відбувається сторінкове переривання і операційна система повинна, в цьому випадку, перемістити її в пам'ять. Після того, як потрібна сторінка знаходиться в пам'яті, для визначення адреси елемента даних використовується зсув, обумовлений полем номера сторінки лінійної віртуальної адреси.
Таким чином, при доступі до сторінки в процесорі використовується дворівнева схема адресації сторінок, що сповільнює перетворення, але дозволяє використовувати сторінковий механізм і, для збереження самої таблиці сторінок, істотно зменшити обсяг фізичної пам'яті для її ж, збереження. Для прискорення сторінкових перетворень у блоці керування сторінками, використовується асоціативна пам'ять, у якій кеширується 32 комбінації "номер віртуальної сторінки - номер фізичної сторінки". Ця спеціальна кеш-пам'ять (додаткова стосовно 8 Кбайт кешу даних процесорів і486 і Реntium) значно прискорює перетворення адрес, тому що у випадку влучення в кеш, тривалий процес, описаний вище, виключається.
Мал. 2.24. Перетворення лінійної віртуальної адреси у фізичну адресу
Організація віртуальної пам'яті в процесорі і386 дозволяє захистити адресні простори різних процесів за рахунок двох механізмів:
1. Ізоляція адресних просторів у фізичній пам'яті шляхом призначення їм різних сторінок сегментів (якщо сторінковий механізм відключений).
2. Захист сегментів від несанкціонованого доступу за допомогою привілеїв чотирьох рівнів.
Засоби виклику підпрограм і задач
Операційна система, як однозадачна, так і багатозадачна, повинна надавати задачам виклику підпрограм операційної системи, бібліотечних підпрограм, а також мати засіб для запуску задач, а при багатозадачній роботі - засобу швидкого переключення з задачі на задачу. Виклик підпрограми відрізняється від запуску задачі тим, що в першому випадку адресний простір залишається таким же (таблиця LDT залишається колишньою), а при виклику задачі, адресний простір цілком міняється.
Виклик підпрограм без зміни кодового сегмента в захищеному режимі процесора і386 виробляється аналогічно виклику в реальному режимі за допомогою команд JMP і CALL.
Для виклику підпрограми, код якої знаходиться в іншому сегменті (який може належати бібліотеці, іншій задачі операційної системи), процесор і386 надає 2 варіанти виклику, причому обоє використовують захист за допомогою прав доступу.
Перший спосіб складається через безпосередню вказівцу в поле команди JMP чи САLL селектора сегмента, що містить код підпрограми, що викликають, а також зсув у цьому сегменті адреси початку підпрограми.
Мал. 2.25.Безпосередній виклик підпрограми
Схема такого виклику зображена на малюнку 2.25. Тут і далі показаний тільки етап одержання лінійної адреси у віртуальному просторі, а наступний етап (маємо на увазі те, що механізм підтримки сторінок включений) перетворення цієї адреси в номер фізичної сторінки пропущений, тому що він не містить нічого специфічного в порівнянні з доступом до сегмента даних, розглянутого вище. Дозвіл виклику відбувається в залежності від значення поля чи С у дескрипторі сегмента викликуваного коду. При С=0, викликуваний сегмент не вважається підлеглим і виклик дозволяється, за умови, що рівень прав зухвалого коду не менший рівня прав викликуваного сегмента. При С=1, викликуваний сегмент вважається підлеглим і допускає виклик із коду з будь-яким рівнем прав доступу, але при виконанні, підпрограма наділяється рівнем прав коду, що викликав.
Мал. 2.26. Формат дескриптора шлюзу виклику підпрограми
Мал. 2.27. Виклик підпрограми через шлюз виклику
Керування введенням - виведенням
Однією з головних функцій ОС є керування пристроями введення - виведення комп'ютера. ОС повинна передавати пристроям команди, перехоплювати переривання й обробляти помилки; вона також забезпечую інтерфейс між пристроями й частинами системи. З метою розвитку, інтерфейс повинен бути однаковим для всіх типів пристроїв (незалежно від них).
Фізична організація пристроїв введення-виведення
Пристрої введення - виведення поділяють на два типи: блок - орієнтовані пристрої і байт - орієнтовані пристрої. Блок - блок - орієнтовані пристрої зберігають інформацію в блоках фіксованого розміру, кожний з який має свою власну адресу. Найпоширеніший блок - блок - орієнтований пристрій - диск. Байт - байт орієнтовані на адресовані пристрої, що і не дозволяють робити операцію пошуку. Вони генерують чи споживають послідовність байтів. Прикладами є термінали, рядкові принтери, мережні адаптери. Однак, деякі зовнішні пристрої не належать до класів, наприклад, годинник, що, з одного боку, не адресує, а з іншого боку, не породжує потоку байтів. Цей пристрій тільки видає сигнал переривання в певні моменти часу. Зовнішній пристрій, звичайно, складається з механічного й електронного компонента. Електронний компонент називається контролером чи адаптером пристрою. Механічний компонент є власне пристроєм. Деякі контролери можуть керувати декількома пристроями. Якщо інтерфейс між контролером і пристроєм
стандартизований, то незалежні виробники можуть випускати сумісні як контролери, так і пристрої.
Операційна система, звичайно, має справу не з пристроєм, а з контролером. Контролер, як правило, виконує прості функції, наприклад, перетворює потік бітів у блоки, що складаються з байт і здійснює контроль та виправлення помилок. Кожний контролер має кілька регістрів, що використовують для взаємодії з центральним процесором. У деяких комп'ютерах вони є частиною фізичного адресного простору. У таких комп'ютерах немає спеціальних операцій введення-виведення. В інших комп'ютерах адреси регістрів введення-виведення, названі портами, утворюють власний адресний простір за рахунок введення спеціальних операцій введення-виведення (наприклад, команди IN і ОUT у процесорах і86).
ОС виконує введення-виведення, записуючи команди в регістри контролера. Наприклад, контролер гнучкого диска ІВМ РС приймає 15 команд, таких як READ, WRITE, SEEK, FORMAT. За умови прийняття команди, процесор залишає контролер і займається іншою роботою. При завершенні команди, контролер організує переривання для того, щоб передати керування процесором операційній системі, що повинна перевірити результати операції. Процесор одержує результати і статус пристрою, читаючи інформацію з регістрів контролера.
Організація програмного забезпечення введення-виведення
Основна ідея організації програмного забезпечення введення-виведення становить в його розбивці кілька рівнів, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх, а ті, у свою чергу, забезпечують зручний інтерфейс для користувачів.
Ключовим принципом є незалежність від пристроїв. Вид програми не повинен залежати від того чи читає вона дані з гнучкого диска, чи з твердого.
Дуже близькою до ідеї незалежності від пристроїв є ідея однакового іменування, тобто з метою іменування пристроїв потрібні прийняти єдині правила.
Іншим важливим питанням програмного забезпечення введення-виведення є обробка помилок. Взагалі, помилки варто обробляти як найближче до апаратури. Якщо контролер виявляє помилку читання, він повинен спробувати її скорегувати. Якщо ж це йому не вдається, то виправленням помилок повинен зайнятися драйвер пристрою. Багато помилок можуть зникати при повторних спробах виконання операцій введення-виведення. Наприклад, помилки, викликані наявністю порошин на голівках читання диску. Якщо ж нижній рівень не може справитися з помилкою, він повідомляє про неї верхньому рівню.
Ще одне ключове питання - це використання,синхронних (що блокують) і асинхронних (не блокують) передач. Більшість операцій фізичного введення-виведення виконується асинхронно - процесор починає передачу і переходить на виконання іншої роботи, поки не наступає переривання. Користувальницькі програми набагато легше писати, якщо операції введення-виведення, що блокують, - після команди READ автоматично припиняють програму доти, поки дані не потрапляють у буфер програми. ОС виконує операції введення-виведення асинхронно, але представляє їх для користувальницьких програм у синхронній формі.
Остання проблема полягає в тому, що одні пристрої є поділюваними, а інші - виділеними. Диски це поділювані пристрої, оскільки одночасний доступ декількох користувачів до диска не є проблемою.
Принтери - це виділені пристрої, оскільки не можна зміщувати рядки, що друкуються різними користувачами.
Наявність виділених пристроїв створює для операційної системи деякі проблеми. Для вирішення поставлених проблем, доцільно розділити програмне забезпечення введення-виведення на чотири пласти (малюнок 2.30):
Мал. 2.30. Багаторівнева організація підсистеми введення-виведення.
Обробка переривань
Переривання повинні бути сховані якнайглибше в надрах операційної системи, щоб, як можна, менша частина ОС мала з ними справу. Найкращий спосіб полягає в дозволі процесу, що ініціює операцію введення-виведення, блокування себе до завершення операції і переривання. Процес може блокувати себе, використовуючи, наприклад, виклик DOWN для семафора, чи виклик WAIT для перемінної умови, або ж виклик RESEIV для чекання повідомлення. Коли наступає переривання процесу, процедура обробки переривання здійснює розблокування процесу, що ініціював операцію введення-виведення, використовуючи виклики UP, Signal- чи посилаючись на процес повідомлення V, в будь-якому випадку ефект від переривання полягає в тому, що раніше заблокований процес тепер продовжує своє виконання.
Драйвери пристроїв
Залежний від пристрою код міститься в драйвері пристрою. Кожен драйвер керує пристроями одного типу і може бути одного класу.
В операційній системі тільки драйвер пристрою знає про конкретні особливості будь - якого пристрою. Наприклад, тільки драйвер диска має справи з доріжками, секторами, циліндрами, часом, із встановленням голівки й інших факторів, що забезпечують правильну роботу диска. Драйвер пристрою приймає запит від пристроїв програмного пласту і вирішує як його виконати. Типовим запитом є читання блоків даних. Якщо драйвер вільний під час надходження запиту, то він починає виконувати запит негайно. Якщо ж він був зайнятий обслуговуванням іншого запиту, то запит, що надійшов, приєднується до черги вже наявних запитів, і він буде виконаний, коли наступить його черга.
Перший крок у реалізації запиту введення-виведення, наприклад, для диска, полягає в перетворенні його з абстрактної форми в конкретну. Для дискового драйвера це означає перетворення номерів блоків у номери циліндрів, голівок, секторів, перевірку чи працює мотор, чи знаходиться голівка над потрібним циліндром. Іншими словами, він повинен вирішити, які операції контролера потрібно виконати й у якій послідовності.
Після передачі команди контролеру, драйвер повинен вирішити чи блокувати себе до закінчення заданої операції, чи ні. Якщо операція забирає значний час як при печатанні деякого блоку даних, драйвер блокується дотих пір, поки операція не завершиться, і оброблювач переривання не розблокує його. Якщо команда введення-виведення виконується швидко (наприклад, прокручування екрана), то драйвер очікує її завершення без блокування.
Незалежна від пристроїв частина операційної системи
Велика частина програмного забезпечення введення-виведення є незалежною від пристроїв. Точна межа між драйверами і незалежними від пристроїв програмами визначається системою, оскільки деякі функції, що могли б бути реалізованими незалежним способом, у дійсності, виконані у вигляді драйверів.
Типовими функціями для незалежного від пристроїв пласту є:
Зупинимося на деяких функціях даного переліку. Верхнім пластам програмного забезпечення не зручно працювати з блоками різної величини, тому даний пласт забезпечує єдиний розмір блоку, наприклад, за рахунок об'єднання декількох різних блоків у єдиний логічний блок. У зв'язку з цим, верхні рівні мають справу з абстрактними пристроями, що використовують єдиний розмір логічного блоку, незалежно від розміру фізичного сектора.
При створенні файлу та заповненні його новими даними, необхідно виділити для нього нові блоки. Для цього, ОС повинна ввести в список бітову карту вільних блоків диска. На підставі інформації про наявність вільного місця на диску, може бути розроблений алгоритм пошуку вільного блоку, незалежний від пристрою і реалізований програмним пластом, що знаходиться вище пласту драйверів.
Користувальницький пласт програмного забезпечення
Хоча велика частина програмного забезпечення введення-виведення знаходиться усередині ОС, деяка його частина міститься в бібліотеках, що пов'язуються з користувальницькими програмами. Системні виклики, що містять виклики введення-виведення, звичайно, подаються через бібліотечні процедури. Якщо програма, написана мовою С, містить виклик:
count = write (fd, buffer, nbytes),
то бібліотечна процедура write пов'язана з програмою. Набір подібних процедур є частиною системи введення-виведення. Зокрема, форматування чи введення- виведення виконується бібліотечними процедурами. Прикладом може бути функція printf мови С, що приймає рядок формату і, можливо, деякі змінні як вхідну інформацію, потім будує рядок символів АSCSII і робить виклик printf для виведення цього рядка. Стандартна бібліотека введення-виведення містить велике число процедур, що виконують введення-виведення і працюють як частина користувальницької програми.
Іншою категорією програмного забезпечення введення-виведення є система спулінга (spooling).
Спулінг - це спосіб роботи з виділеними пристроями в мультипрограмній системі. Розглянемо типовий пристрій, що вимагає спулінга, - рядковий принтер. Хоча, технічно, легко дозволити кожному користувальницькому процесу відкрити спеціальний файл, пов'язаний із принтером. Такий спосіб небезпечний через те, що користувальницький процес може монополізувати принтер на довільний час. Тому створюють спеціальний процес - монітор, що має виняткові права на використання цього пристрою. Також створюють спеціальний каталог, названий каталогом спулінга. Для того, щоб надрукувати файл, користувальницький процес розміщує виведену інформацію в цьому файлі і в каталозі спулінга.
Процес-монітор, по черзі, роздруковує усі файли, що містяться в каталозі спулінга.
Файлова система
Файлова система - це частина операційної системи, призначення якої полягає в тому, щоб забезпечити користувачу зручний інтерфейс при роботі з даними, що зберігаються на диску, і забезпечити спільне використання файлів декількома користувачами та процесами. Поняття "файлова система" включає:
• сукупність усіх файлів на диску;
• набори структур даних, використовуваних для керування файлами, такі, наприклад, як каталоги файлів, дескриптори файлів, таблиці розподілу вільного і зайнятого простору на диску;
• комплекс системних програмних засобів, що реалізують керування файлами, зокрема: створення, знищення, читання, запис, перейменування, пошук й інші операції над файлами.
Імена файлів
Файли ідентифікуються іменами. Користувачі дають файлам символічні імена, при цьому враховуючи обмеження ОС як на використовувані символи, так і на довжину імені. Донедавна ці межі були дуже вузькими. Так, у популярній файловій системі FАТ, довжина імен обмежується відомою схемою 8,3 (8 символів - власне ім'я, 3 символи - розширення імені), а в ОС UNIX system V ім'я не може містити більше 14 символів.
Загальна модель файлової системи
Однак, користувачу набагато зручніше працювати з довгими іменами, оскільки вони дозволяють дати файлу дійсно мнемонічну назву, за якою навіть через досить великий проміжок часу можна буде згадати, що містить цей файл. Тому сучасні файлові системи, як правило, підтримують довгі символьні імена файлів. Наприклад, Windows NT у своїй новій файловій системі NTFS установлює, що ім'я файлу може містити до 255 символів, не враховуючи завершального нульового символу.
При переході до довгих імен, виникає проблема сумісності з раніше створеними додатками, що використовують короткі імена. Щоб додатки могли звертатися до файлів відповідно до прийнятих раніше угод, файлова система повинна вміти надавати еквівалентні короткі імена (псевдоніми) файлам, що мають довгі імена. Таким чином, однією з важливих проблем є проблема генерації відповідних коротких імен.
Довгі імена підтримують не тільки нові файлові системи, але і нові версії відомих файлових систем. Наприклад, в ОС Windows 95 використовують файлову систему VFАТ, що являє собою істотно змінений варіант FАТ. Серед багатьох інших удосконалень однією з головних позитивних рис VFАТ є підтримка довгих імен. Крім проблеми генерації еквівалентних коротких імен, при реалізації нового варіанта FАТ, важливим завданням було збереження довгих імен за умови, що метод збереження і структура даних на диску принципово не повинні змінитися.
Звичайно, різні файли можуть мати однакові символьні імена. У цьому випадку, файл, однозначно, ідентифікується так званим складеним ім'ям, що являє собою послідовність символьних імен каталогів. У деяких системах, одному файлу не можуть присвоїти кілька імен, а в інших - таке обмеження відсутнє. В останньому випадку, операційна система присвоює файлу додатково унікальне ім'я так, щоб можна було встановити взаємо-однозначну відповідність між файлом і його унікальним ім'ям.
Унікальне ім'я є числовим ідентифікатором і використовується програмами операційної системи.
Прикладом такого унікального імені файлу є номер індексного дескриптора в системі UNIX.
Типи файлів
Файли є різних типів: звичайні файли, спеціальні файли, файли-каталоги.
Звичайні файли, у свою чергу, поділяються на текстові і двоїчні. Текстові файли складаються з рядків символів, представлених у АSCSI-коді. Це можуть бути документи, вихідні тексти програм і т.п. Текстові файли можна прочитати на екрані а роздрукувати на принтері. Двоїчні файли не використовують АSCSI - коди, вони часто мають складну внутрішню структуру, наприклад, об'єктний код чи програми архівних файлів.
Спеціальні файли - це файли, асоційовані з пристроями введення-виведення, що дозволяє користувачу виконувати операції введення- виведення, використовуючи звичайні команди запису в файл чи читання з файлу. Ці команди обробляються спочатку програмами файлової системи, а потім, на певному етапі, виконання запиту перетворюється ОС у команди керування відповідним пристроєм. Спеціальні файли, так як і пристрої введення-виведення, поділяють на блок-блок-орієнтовані і байт-байт-орієнтовані.
Каталог - це, з одного боку, група файлів, об'єднаних користувачем виходячи з певних міркувань (наприклад, файли, що містять програми ігор чи файли, що складають один програмний пакет), а з іншого боку - це файл, що містить системну інформацію про групу файлів, його складових. Каталог містить список файлів, що належать йому, і установлюєть відповідність між файлами і їхніми характеристиками (атрибутами).
У різних файлових системах можуть використовуватися атрибути з різними характеристиками, наприклад:
• інформація про дозволений доступ;
• пароль для доступу до файлу;
• власник файлу;
• творець файлу;
• ознака "тільки для читання";
• ознака "схований файл";
• ознака "системний файл";
• ознака "архівний файл";
• ознака "двоїчний / символічний";
• ознака "тимчасовий" (видалити після завершення процесу);
• ознака блокування;
• довжина запису;
• показник ключового поля в записі;
• довжина ключа;
• час створення, останнього доступу й останньої зміни;
• поточний розмір файлу;
• максимальний розмір файлу.
Каталоги можуть безпосередньо містити значення характеристик файлів, як це зроблено у файловій системі MS-DOS, чи посилатися на таблиці, що містять ці характеристики як це реалізовано в ОС UNIX (малюнок 2.31). Каталоги можуть утворювати ієрархічну структуру за рахунок того, що каталог нижчого рівня може належати каталог з вищого рівня (малюнок 2.32).
Ієрархія каталогів може бути виражена деревом чи мережею. Каталоги утворять дерево, якщо файлу дозволено входити тільки в один каталог, і мережу - якщо файл може входити відразу в кілька каталогів. У MS-DOS каталоги утворюю деревоподібну структуру, а в і UNIX'е - мережну. Як і будь-який інший файл, каталог має символічне ім'я. Він еідентифікується складеним ім'ям, що містить ланцюжок символічних імен усіх каталогів, через які проходить шлях від кореня до певного каталогу.
Мал. 2.31. Структура каталогів: а - структура запису каталогу MS-DOS (32 байта),
б - структура запису каталогу ОС UNIX
Кореневий каталог
Файли
Логічна організація файлу
Програміст має справу з логічною організацією файлу, представляючи його у вигляді організованих логічних записів. Логічний запис - це найменший елемент даних, яким може оперувати програміст, за умови обміну з зовнішнім пристроєм. Навіть якщо фізичний обмін із пристроєм здійснюється великими одиницями, операційна система забезпечує програмісту доступ до окремого логічного запису. На малюнку 2.33 показані кілька схем логічної організації файлу. Записи можуть бути фіксованої чи перемінної довжини. Вони можуть бути розташовані у файлі послідовно (послідовна організація) чи в складнішому порядку, з використанням, так званих, індексних таблиць, що дозволяють забезпечити швидкий доступ до окремого логічного запису (індексно-послідовна організація). Для ідентифікації запису використовують спеціальне поле запису, назване ключем. У файлових системах ОС UNIX і MS-DOS файл має найпростішу логічну структуру - послідовність однобайтових записів.
Мал. 2.33. Способи логічної організації файлів
Фізична організація й адреса файлу
Фізична організація файлу описує правила його розташування на пристрої зовнішньої пам'яті, зокрема, на диску. Файл складається з фізичних записів - блоків. Блок - найменша одиниця даних, якими зовнішній пристрій обмінюється з оперативною пам'яттю. Безупинне розміщення - найпростіший варіант фізичної організації (малюнок 2.34,а), при якому файлу надається послідовність блоків диска, що утворюю єдину суцільну ділянку дискової пам'яті. Для задання адреси файлу, в цьому випадку досить указати тільки номер початкового блоку. Інший позитив цього методу - простота. Але є і два істотних недоліки. По-перше, під час створення файлу заздалегідь не відома його довжина, а значить не відомо, скільки пам'яті треба зарезервувати для цього файлу, по-друге, при такому порядку розміщення неминуче виникає фрагментація і простір на диску використовується не ефективно, тому що окремі ділянки маленького розміру (мінімально 1 блок) можуть залишитися не використаними.
Наступний спосіб фізичної організації - розміщення у вигляді списку блоків дискової пам'яті (малюнок 2,34,6). За умови такого способу, на початку кожного блоку міститься показник на наступного блоку. У цьому випадку, адреса файлу також може бути задана одним числом - номером першого блоку. На відміну від попереднього способу, кожен блок може бути приєднаний до ланцюжка будь-якого файлу, отже фрагментація відсутня. Файл може змінюватися під час свого існування, нарощуючи кількість блоків. Недоліком є складність реалізації доступу до довільно заданого місця файлу: для того, щоб прочитати п'ятий, один за одним блок файлу, необхідно послідовно прочитати чотири перших блоки, прослідковуючи ланцюжок номерів блоків. Крім того, за умови цього способу, кількість даних файли, що містяться в одному блоці, не дорівнює ступеню двійки (одне слово витрачене на номер наступного блоку), а багато програм читають дані блоками, розмір яких дорівнює ступеню двійки.
Популярним способом, що використовують, наприклад, у файловій системі FАТ операційної системи MS-DOS, є використання зв'язного списку індексів. Із кожним блоком пов'язується деякий елемент - індекс. Індекси розташовуються в окремій області диска (у MS-DOS це таблиця FАТ). Якщо певний блок належить деякому файлу, то індекс цього блоку містить номер наступного блоку даного файлу.
Мал. 2.34. Фізична організація файлу: а) - безупинне розміщення; б) - зв'язний список блоків, в) зв'язний список індексів; г) перелік номерів блоків
За такої фізичної організації, зберігаються всі переваги попереднього способу, але ліквідуються всі відзначені недоліки: по-перше, для доступу до довільного місця файлу досить прочитати тільки блок індексів, відрахувати потрібну кількість блоків файлу, за ланцюжком, і визначити номер потрібного блоку, і, по-друге, дані файли займають блок повністю, а значить мають обсяг, рівний ступені двійки.
Нарешті, розглянемо завдання фізичного розташування файлу шляхом простого перерахування номерів блоків, що містять цей файл. ОС UNIX використовує варіант даного способу, що дозволяє забезпечити фіксовану довжину адреси, незалежно від розміру файлу. Для збереження адреси файлу, виділено 13-полів. Якщо розмір файлу менший чи дорівнює 10 блокам, то номера цих блоків безпосередньо перераховані в перших десятьох полях адреси. Якщо розмір файлу більший 10 блоків, то наступне 11-е поле містить адресу блоку, у якому можуть бути розташовані ще 128 номерів наступних блоків файлу. Якщо файл більший, ніж 10+128 блоків, то використовують 12-е поле, у якому знаходиться номер блоку, що містить 128 номерів блоків, що містять по 128 номерів блоків даного файлу. І, нарешті, якщо файл більший 10+128+128(128, то використовується останнє 13-е поле для потрійної непрямої адресації, що дозволяє задати адресу файлу, що має розмір максимум 10+ 128 + 128(128+128(128+128)).
Права доступу до файлу
Визначити права доступу до файлу - значить визначити для кожного користувача набір операцій, котрі він може застосувати до певного файлу. У різних файлових системах є визначений свій список диференційованих операцій доступу. Цей список може включати наступні операції:
• створення файлу,
• знищення файлу,
• відкриття файлу,
• закриття файлу,
• читання файлу,
• запис у файл,
• доповнення файлу,
• пошуку файлів,
• одержання атрибутів файлу,
• установлення нових значень атрибутів,
• перейменування,
• виконання файлу,
• читання каталогу,
й інші операції з файлами і каталогами.
Взагальному, права доступу описані матрицею прав доступу, де стовпці відповідають усім файлам системи, рядки - усім користувачам, а на перетині рядків і стовпців указують дозволені операції (малюнок 2.35). У деяких системах, користувачі поділені на окремі категорії. Для всіх користувачів однієї категорії визначають єдині права доступу. Наприклад, у системі UNIX усіх користувачів поділяють на три категорії: власник файлу, члени його групи і всі інші.
Розрізняють два основних підходи до визначення прав доступу:
• виборчий доступ, коли для кожного файлу і кожного користувача сам власник може визначити допустимі операції;
• мандатний підхід, коли система наділяє користувача визначеними правами, стосовно кожного поділюваного ресурсу (у даному випадку, файлу) у залежності від того, до якої групи користувач належить.
Мал 2.35. Матриця прав доступу
Кеширування диску
У деяких файлових системах запити до зовнішніх пристроїв, де адресація здійснюється блоками (диски, стрічки), перехоплюються проміжним програмним пластом-підсистемою буферизації. Підсистема буферизації являє собою буферний пул, що розташовується в оперативній пам'яті, і комплекс програм, керуючих цим пулом. Кожен буфер пула має розмір, рівний одному блоку. При надходженні запиту на читання певного блоку, підсистема буферизації переглядає свій буферний пул і, якщо знаходить необхідний блок, то копіює його в буфер запитуючого процесу. Операцію введення-виведення вважають виконаною, хоча фізичного обміну з пристроєм не відбувалося. Очевидний виграш у часі доступу до файлу. Якщо ж потрібний блок у буферному пулі відсутній, то він зчитується з пристрою й, одночасно, з передачею запитуючому процесу копіюється в один із буферів підсистеми буферизації. При відсутності вільного буфера на диск витісняється найменш використовувана інформація. Таким чином, підсистема буферизації працює за принципом кеш-пам'яті.
Загальна модель файлової системи
Функціонування будь-якої файлової системи можна представити багаторівневою моделлю (малюнок 2,36), у якій кожен рівень надає певний інтерфейс (набір функцій) вищестоячому рівню, а сам, у свою чергу, для виконання своєї роботи використовує інтерфейс (звертається з набором запитів) нищестоячого рівня.
Мал. 2.36. Загальна модель файлової системи
Задачею символьного рівня є визначення, за символічним іменем файлу, його унікального імені. У файлових системах, де кожен файл може мати тільки одне символічне ім'я (наприклад, MS-DOS), цей рівень відсутній, тому що символічне ім'я, присвоїне файлу користувачем, є, одночасно, унікальним і може бути використаним операційною системою. В інших файлових системах, де той же ж файл має кілька символічних імен, на даному рівні, проглядається ланцюжок каталогів для визначення унікального імені файлу. У файловій системі UNIX, наприклад, унікальним іменем є номер індексного дескриптора файлу (і- node).
На наступному, базовому рівні, за унікальним іменем файлу, визначають його характеристики: права доступу, адреса, розмір та інші. Як уже було сказано, характеристики файлу можуть належати до складу чи каталогу та зберігатися в окремих таблицях. При відкритті файлу, його характеристики переміщаються з диска в .оперативну пам'ять, щоб зменшити середню тривалість доступу до файлу. У деяких файлових системах (наприклад, NTFS), при відкритті файлу разом з його характеристиками в оперативну пам'ять переміщаються кілька перших блоків файлу, що містять дані. Наступним етапом реалізації запиту до файлу є перевірка прав доступу до нього. Для цього порівнюються повноваження користувача процесу, що видав запит, зі списком дозволених видів доступу до даного файлу. Якщо ж запитуваний вид доступу дозволений, то виконання запиту продовжується, якщо ж ні, то видається повідомлення про порушення прав доступу.
На логічному рівні визначають координати запитуваного логічного запису у файлі, тобто визначають, на якій відстані (у байтах) від початку файлу знаходиться необхідний логічний запис. При цьому абстрагуються від фізичного розташування файлу, він зображається у вигляді безупинної послідовності байт.
Алгоритм роботи даного рівня залежить від логічної організації файлу. Наприклад, якщо файл організований як послідовність логічних записів фіксованої довжини І, то n-1 логічний запис має зсув 1(n-1) байт. Для визначення координат логічного запису у файлі з індексно-послідовною організацією, виконується читання таблиці індексів (ключів), де безпосередньо вказана адреса логічного запису.
Мал.2.37. Функції фізичного рівня файлової системи
Вихідні дані:
V - розмір блоку;
N - номер першого блоку файлу;
S - зсув логічного запису у файлі:
Потрібно визначити на фізичному рівні:
n - номер блоку, що містить необхідний логічний запис;
s - зсув логічного запису в межах блоку;
n = N + [S/V], де [S/V] ціла частина числа S/V-
S = R [S/V] - дробова частиначисла S/V.
На фізичному рівні файлова система визначає номер фізичного блоку, що містить необхідний логічний запис і зсув логічного запису у фізичному блоці. Для вирішення цієї задачі, використовуються результати роботи логічного рівня - зсув логічного запису у файлі, адреса файлу на зовнішньому пристрої, а також інформація про фізичну організацію файлу, включаючи розмір блоку. Малюнок 2.37 ілюструє роботу фізичного рівня для найпростішої фізичної організації файлу у вигляді безупинної послідовності блоків. Підкреслимо, що задача фізичного рівня зважується незалежно від того, як був логічно організований файл.
Після визначення номера фізичного блоку, файлова система звертається до системи введення - виведення для виконання операції обміну з зовнішнім пристроєм. У відповідь на цей запит, у буфер файлової системи буде переданий потрібний блок, у якому, на підставі отриманого при роботі фізичного рівня зсуву, вибирається необхідний логічний запис.
Сучасні архітектури файлових систем
Розробники нових операційних систем прагнуть забезпечити користувача можливістю працювати відразу з декількома файловими системами. У новому розумінні, файлова система складається з багатьох складових, до складу котрих входять і файлові системи, в традиційному розумінні.
Нова файлова система має багаторівневу структуру (малюнок 2.39), на верхньому рівні якої розташовується, так названий, перемикач файлових систем (у Windows 95, наприклад, такий перемикач називається встановлюваним диспетчером файлової системи - installable filesystem maneger, 1FS). Він забезпечує інтерфейс між запитами додатка і конкретною файловою системою, до якої звертається цей додаток. Перемикач файлових систем перетворює запити у формат, що сприймається наступним рівнем рівнем файлових систем.
Кожен компонент рівня файлових систем, виконаний у вигляді драйвера відповідної файлової системи, підтримує визначену організацію файлової системи. Перемикач є єдиним модулем, що може звертатись до драйвера файлової системи. Додаток не може безпосередньо звертатися до нього. Драйвер файлової системи може бути написаний у вигляді рентерабельного коду, що дозволяє відразу декільком додаткам виконувати операції з файлами. Кожен драйвер файлової системи в процесі власної ініціалізації реєструється в перемикача, передаючи йому таблицю крапок входу, що будуть використовуватися при наступних звертаннях до файлової системи.
Мал. 2.39. Архітектура сучасної файлової системи
Для виконання своїх функцій, драйвери файлових систем звертаються до підсистеми введення-виведення, що утворює наступний пласт файлової системи нової архітектури. Підсистема введення-виведення - це складова частина файлової системи, що відповідає за завантаження, ініціалізацію і керування всіма модулями нижчих рівнів файлової системи. Звичайно, ці модулі є драйвером портів, що безпосередньо займаються роботою з апаратними засобами. Крім цього, підсистема введення-виведення забезпечує певний сервіс драйверам файлової системи, що дозволяє їм здійснювати запити до конкретних пристроїв. Підсистема введення-виведення повинна постійно бути присутньою у пам'яті й організовувати спільну робо ієрархії драйверів пристроїв. У цю ієрархію можуть входити драйвери пристроїв визначеного типу (драйвери чи диски нагромаджувачів на стрічках): драйвери, підтримувані постачальниками (такі драйвери перехоплюють запити до блокових пристроїв і можуть, частково, змінити поведінку існуючого драйвера цього пристрою, наприклад, зашифрувати дані): драйвери портів, що керують конкретними адаптерами.
Велика кількість рівнів архітектури файлової системи забезпечує авторам драйверів пристроїв велику гнучкість - драйвер може одержати керування на будь-якому етапі виконання запиту - від виклику додатком функції, що займається роботою з файлами, до того моменту, коли працюючий на найнижчому рівні драйвер пристрою починає переглядати регістри контролера. Багаторівневий механізм роботи файлової системи реалізується за допомогою ланцюжків виклику.
У ході ініціалізації драйвер пристрою може приєднатися до ланцюжка виклику певкого пристрою, визначивши при цьому рівень наступного звертання. Підсистема введення-виведення поміщає адресу цільової функції до ланцюжку виклику пристрою, використовуючи заданий рівень для того, щоб належним чином упорядкувати його. У міру виконання запиту, підсистема введення-виведення послідовно викликає усі функції, що раніше помістили до ланцюжку виклику.
Внесена до ланцюжку виклику, процедура драйвера може вирішити передати запит далі - у зміненому чи в незміненому вигляді - на наступний рівень чи, якщо це можливо, процедура може задовольнити запит, не передаючи його далі по ланцюжку.
КОНТРОЛЬНІ ПИТАННЯ
Перелік використаних джерел
PAGE 4