Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os_polnaya.doc
Скачиваний:
8
Добавлен:
17.09.2019
Размер:
2.3 Mб
Скачать

62. Багатозадачні операційні системи

Основні функції (найпростіші ОС):

Завантаження програм в оперативну пам'ять і їх виконання;

Стандартизований доступ до периферійним пристроїв (пристрої введення-виведення);

Управління оперативною пам'яттю (розподіл між процесами, віртуальна пам'ять);

Управління доступом до даних на енергонезалежні носіях (таких як Жорсткий диск, Компакт-диск і т. д.), як правило за допомогою файлової системи;

Користувальницький інтерфейс;

Мережні операції, підтримка стека протоколів

Додаткові функції:

Паралельне або псевдопараллельное виконання завдань (багатозадачність);

Взаємодія між процесами: обмін даними, взаємна синхронізація;

Захист самої системи, а також даних користувача та програм від дій користувачів (зловмисних або через незнання) або додатків;

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

Майже всі сучасні операційні системи (Windows 95, Windows NT, Windows 2000, Unix) підтримують переважну багатозадачність {preemptive multi-tasking). Цей термін, який часто переводять як витісняюча багатозадачність, означає, що процес або, точніше,, його потік, який в даний момент активний, має перевагу перед іншими конкуруючими потоками з однаковим пріоритетом. Системи Windows 3.1 і Macintosh підтримують кооперативну багатозадачність {cooperative multi-tasking), у якій все управління віддане системі. У такій системі легко програмувати, але вона менш ефективна.

Основною ознакою багатозадачної ОС є здатність поєднувати виконання декількох прикладних програм. Велике значення при цьому має спосіб поєднання, тобто на якому рівні або як конкретно реалізовано поєднання. Якщо однопроцесорна, але багатозадачна, система виділяє кожній прикладній програмі певний квант часу {lime slice), через який вона перемикається на виконання наступної програми, то це система з розділенням часу {time-sharingsystem). Системи з розділенням часу з'явилися на початку 60-х. Вони управлялися main /rame-компьютерами, обслуговуючими багаточисельні видалені термінали. Як термінали спочатку використовувалися звичайні телетайпи, які уміли лише вводити або виводити інформацію. Завдяки величезній різниці в швидкості роботи таких пристроїв, як телетайп і процесор, системи з розділенням часу встигали перемикатися між багатьма терміналами і вводити або виводити інформацію так, що кожному користувачеві здавалося, що він единолично управляє видаленим процесором. Потім з'явилися персональні комп'ютери, які стали використовуватися як видалені термінали. У зв'язку з цим для операційної системи головного процесора (наприклад, IBM-370) відпала необхідність займатися посимвольним введенням-виводом. Тепер акцент в розробці операційних систем був перенесений на управління виконуваними програмними модулями, що належать різним користувачам і що одночасно знаходяться в пам'яті головного комп'ютера. З'явилися такі поняття, як черга завдань •-- черга на обслуговування яким-небудь пристроєм: принтером, плоттером, накопичувачем на магнітному носієві, пріоритет завдання, очікуваний час завершення завдання і так далі

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

Перші операційні системи, реалізовані на персональних комп'ютерах, сильно поступалися в концептуальному плані і по своїх реальних можливостях системам з розділенням часу, давно реалізованим в mainframe- комп'ютерах. У Win 16, наприклад, теж існує поняття багатозадачності. Реалізовано його таким чином: обробивши чергове повідомлення, додаток передає управління операційній системі, яка може передати управління іншому застосуванню. Такий вигляд багатозадачності, при якому операційна система передає управління від одного застосування іншому не у будь-який момент часу, а лише коли поточне застосування віддає управління системі, отримав, як було згадано, назва кооперативної багатозадачності (cooperative multi-tasking).

Якщо при такому підході обробка повідомлення затягується, то користувач побачить реакцію системи лише після завершення обробки поточним застосуванням • поточного повідомлення. Зазвичай при виконанні тривалих операцій програміст змінює форму курсора (пісочний годинник), викликавши API-функцию BeginWaitCursor. Інколи, якщо це передбачив розробник програми, в таких випадках застрягле застосування навіть викликає функцію PeekMessage, повідомляючи систему, що вона може обробити чергове повідомлення, а поточне застосування здатне і почекати. Але головна неприємність при такому підході полягає в тому, що в разі безконечного циклу, викликаного помилкою в програмі, ОС не має шансів отримати управління і також зависне. Користувачеві доведеться перезавантажувати систему.

У Windows починаючи з Windows 95 реалізований принципово інший вигляд багатозадачності, в якому операційна система дійсно контролює і управляє процесами, потоками і їх перемиканням. Здатність операційної системи перервати виконуваний потік практично у будь-який момент часу і передати управління іншому чекаючому потоку визначається терміном preemptive multitasking - переважна, або що витісняє, багатозадачність. Реалізація її виглядає так: всі потоки, що існують в даний момент, частина з яких може належати одному і тому ж процесу, претендують на процесорний час і, з точки зору користувача повинні виконуватися одночасно. Для створення цієї ілюзії система через певні проміжки часу забирає управління, аналізує свою чергу повідомлень, розподіляє повідомлення по інших чергах в просторі процесів і, якщо вважає потрібним, перемикає потоки (мал. 12.5).

Реалізація витісняючої багатозадачності в Windows 2000 дає не лише можливість плавного перемикання завдань, але і стійкість середовища до зависань, оскільки жодне застосування не може отримати необмежені права на процесорний час і інші ресурси. Так система створює ефект одночасного виконання декількох застосувань. Якщо комп'ютер має декілька процесорів, то системи Windows NT/2000 можуть дійсно поєднувати виконання декількох застосувань. Якщо процесор один, то поєднання залишається ілюзією. Коли закінчується квант часу, відведений поточній програмі, система її перериває, зберігає контекст і віддає управління іншій програмі, яка чекає своєї черги. Величина кванта часу (time slice) залежить від ОС і типа процесора, в Windows NT вона в середньому рівна 20 мс. Слід зазначити, що добитися дійсно одночасного виконання потоків можна лише на машині з декількома процесорами і лише під управлінням Windows NT/2000, ядра яких підтримують розподіл потоків між процесорами і процесорного часу між потоками на кожному процесорі. Windows 95 працює лише з одним процесором. Навіть якщо біля комп'ютера декілька процесорів, під управлінням Windows 95 задіяний лише один з них, а останні простоюють.

63. Багатокористувальницька система, система з колективним доступом, система колективного доступу (multiuser system, multiaccess system) - обчислювальна система або її частина (наприклад операційна система), що дозволяє декільком користувачам одночасно мати доступ до однієї ЕОМ зі свого терміналу (локального або віддаленого). Багатокористувацький характер роботи досягається завдяки режиму розподілу часу, який полягає в дуже швидкому перемиканні ЕОМ між різними терміналами та програмами і відповідно швидкої відпрацюванні команд кожного користувача. При цьому останній не помічає затримок часу, пов'язаних з обслуговуванням інших користувачів. Прикладами розробок зазначеного виду можуть служити крім Windows операційні системи: NetWare, створена і розвиваємося фірмою Novell (США) для локальних інформаційних обчислювальних систем; Unix фірми AT & T's Bell Laboratories (США); REAL/32 та ін

По числу одночасно працюючих користувачів ОС поділяються на одного (MS DOS, Windows Зх, ранні версії OS / 2) і багатокористувацькі (UNIX, WINDOWS NT). У многопользовательских системах присутні засоби захисту інформації користувачів від несанкціонованого доступу.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]