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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

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

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

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

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

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

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

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

Майже всі сучасні операційні системи (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). У многопользовательских системах присутні засоби захисту інформації користувачів від несанкціонованого доступу.

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

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

64. Апаратне забезпечення (архітектура)

Основні блоки персонального комп'ютера

В основному персональний комп'ютер складається з трьох частин:

- системного блоку;

- клавіатури

- монітора (дисплея).

Системний блок комп'ютера містить всі основні пристрої:

- електронні схеми, які управляють роботою комп'ютера (мікропроцесор, оперативна пам'ять, контролери зовнішніх пристроїв та ін.)

- блок живлення;

- накопичувачі (дисководи) для гнучких магнітних дисків;

- накопичувач на жорсткому магнітному диску (вінчестері).

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

Оперативна пам'ять - (пам'ять з довільним доступом, Random Access Memory, RAM) - змонтований, як правило, на одній монтажній платі набір мікросхем. Вона працює досить швидко, що дозволяє процесору не простоювати при зверненні до постійної пам'яті.

Інші види пам'яті:

- надоперативна (надшвидка, Cache Memory);

- постійна (Basic Input-Output System, BIOS);

- напівпостійна (Complementary Metal-Oxide Semiconductor, CMOS);

- відеопам'ять.

Клавіатура - пристрій для введення алфавітної і цифрової інформації. Стандартні клавіатури ІВМ РС поділяються на 84 - і 101- клавішні. Існує розширена 104 - клавішна клавіатура, створена спеціально для Windows.

Миша - пристрій, виготовлений у вигляді пластмасової коробочки з вмонтованою кулькою і, як правило, двома клавішами. При переміщенні миші по робочому столі вказівник миші переміщується по екрану монітора. Аналогічні пристрої - трекбол і трекпойнт.

Дисководи - для гнучких дисків - пристрої для введення інформації на гнучких дисках. відповідно до розміру дискет розрізняють для 3,5" і 5,25" (89 і 133 мм відповідно).

Жорсткий диск (вінчестер) - як правило вмонтований в системний блок, служить для запису та зберігання великої кількості інформації.

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

Принтер - пристрій для роздруковування текстової, а часто і графічної інформації - матричні, струменеві, лазерні.

Багатозадачність (англ. multitasking) — властивість операційної системи або середовища програмування забезпечувати можливість паралельної (або псевдопаралельною) обробки декількох процесів. Дійсна багатозадачність операційної системи можлива тільки в багатопроцесорних або кількаядерних системах або в розподілених обчислювальних системах.

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

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

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

Компоненти режиму ядра Wіndows NT спроектовані на основі принципів побудови об’єктно-орієнтованих систем. Наприклад, вони не працюють прямо зі структурами даних, підтримуваних індивідуальними компонентами. Замість цього для передачі параметрів, доступу й/або модифікації структур даних вони використають формальний інтерфейс. Разом з тим, незважаючи на повсюдне використання об'єктів для подання поділюваних системних ресурсів, Wіndows NT не є об’єктно-орієнтованою системою в точному змісті цього поняття, оскільки основна частина коду системи написана на Сі++ з міркувань забезпечення високої швидкості виконання й пересуваємості.

У режимі ядра виконуються наступні компоненти ОС:

• частина, що виконує, NT яка включає керування пам'яттю, процесами, потоками, безпекою, уведенням/висновком, міжпроцесорними обмінами; ядро Wіndows NT виконує низкоурівневі функції операційної системи: диспетчеризація потоків, переривань і виключень, синхронізація процесів. Ядро також включає набір процедур і базових об'єктів, використовуваний виконує частью, що, для створення высокоуровневых конструкцій;

• шар абстракції від устаткування (HAL - Hardware Abstractіon Layer), ізолює ядро, драйвери пристроїв і виконує часть ПЗ NT від апаратних платформ, на яких повинна працювати операційна система;

• драйвери пристроїв включають як файлову систему, так і апаратні драйвери, які транслюють користувальницькі виклики функцій уведення/висновку в запити фізичних пристроїв уведення/висновку;

• функції графічного інтерфейсу користувача працюють із вікнами, елементами керування й малюнками.

Частина, що виконує, Wіndows NT - верхній шар програми - ядра NTOSKRNL.EXE. (Саме ядро - це нижній шар). Частина, що виконує, містить наступні компоненти:

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

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

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

4. Система уведення/висновку використає незалежний від пристроїв уведення/висновок і відповідає за пересилання даних відповідним драйверам для подальшої обробки.

5. Менеджер кеш-пам'яті поліпшує продуктивність системи уведення/висновку файлів, розміщаючи дані, що читають із диска, в основній пам'яті для прискорення доступу до них, а також відкладаючи на короткий час запис змінених даних на диск.

6. Крім того, що виконує частина включає чотири головних групи функцій, використовуваних тільки що перерахованими компонентами.

7. Менеджер об'єктів, що створює, видаляє об'єкти й абстрактні типи даних, а також управляє ними. Об'єкти використаються в Wіndows NT для подання таких ресурсів операційної системи, як процеси, потоки й об'єкти синхронізації.

8. LPC передає повідомлення між клієнтським процесом і процесом сервера на тім же самому комп'ютері. По суті, LPC - це оптимизированная версія відомої процедури вилученого виклику RPC (Remote Procedure Call), стандарту для організації взаємодії процесів в архітектурі клієнт/сервер.

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

10. Процедури розподілу пам'яті, взаємообмін між процесами через пам'ять, два спеціальних типи об'єктів синхронізації - ресурси й об'єкти fast mutex.

Ядро NTOSKRNL.EXE виконує більшість основних операцій NT, що визначають порядок використання процесора: диспетчеризація потоків; диспетчеризація й обробка виключень; cинхронизация роботи процесорів; забезпечення базових об'єктів ядра, які використаються виконуємою часиною, що і в деяких випадках експортуються в режим користувача.

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

Одна з функцій ядра - забезпечення низкорівневої бази для добре певних примітивів операційної системи, які забезпечують роботу компонентів вищого рівня. Ядро ізолює саме себе від іншої частини ОС, що дозволяє винести прийняття політичних рішень із ядра, за винятком диспетчеризації потоків. Ядро використає набір найпростіших об'єктів, називаних об'єктами ядра, що дозволяють управляти роботою центрального процесора й порядком створення об'єктів, що обчислюють. Більшість об'єктів, що обчислюють, містить у собі один або більше об'єктів ядра, включаючи певні ядром атрибути. Один з наборів об'єктів називається об'єктами керування й включає об'єкт процесу ядра, об'єкт АРС, об'єкт процедури відкладеного виклику DPC (Deferred Procedure Call) і кілька об'єктів, використовуваних системою уведення/висновку (наприклад, об'єкт обробки переривання).

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

Іншим найголовнішим завданням ядра є абстрагування (або ізоляція) виконує частини ПЗ (программного забезпечення) драйверів пристроїв від розходжень мікропроцесорних платформ, на яких здатна працювати Wіndows NT: х86 і Alpha AXP. Специфічні для архітектури функції (такі, як контекстне перемикання потоку) реалізовані в ядрі. Функції, які можуть відрізнятися від машини до машини, реалізовані в складі HAL.

Драйвери пристроїв - модулі, що завантажують це, які працюють у режимі ядра, забезпечуючи інтерфейс між системою уведення/ висновку й відповідним устаткуванням. Назви цих модулів звичайно мають розширення.SYS. Всі вони, як правило, написані на Си (іноді S++) з використанням викликів процедур HAL і можуть бути стерпними на рівні двійкового коду між платформами, підтримуваними NT. Є кілька типів драйверів пристроїв:

• Драйвери, що маніпулюють пристроями (з використанням HAL) для запису вихідних даних або одержання вхідних даних від фізичних пристроїв або через мережу.

• Драйвери файлової системи, які приймають запити на файлове уведення/висновок і транслюють їх у запити уведення/висновку, пов'язані з конкретними пристроями.

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

• Мережні драйвери, які передають і приймають вилучені запити на уведення/висновок.

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

Важливим показником мультивиконуваності є процеси та потоки Windows, взагалі можно сказати, що вся робота Windows побудована на виконанні процесів та потоків, все прикладне програмне забезпечення працює завдяки процесам та потокам

По сути одно и тоже)

Компоненти користувацького режиму

Підсистема користувальницького інтерфейсу в Windows NT реалізує віконний інтерфейс, подібний інтерфейс попередніх версій Windows. Двома типами об'єктів цієї підсистеми, були відсутні в 16-бітових версіях Windows і в Windows 9x, є віконні станції і робочі столи. Віконна станція відповідає одному сеансу користувача Windows NT - наприклад, при підключенні через службу віддаленого робочого столу створюється нова віконна станція. Кожен запущений процес належить до однієї з віконних станцій; служби, крім позначених як здатні взаємодіяти з робочим столом, запускаються в окремих, невидимих віконних станціях.

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

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



Поделиться:


Последнее изменение этой страницы: 2016-06-19; просмотров: 743; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.93.44 (0.03 с.)