на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Системне програмне забезпечення
p align="left">Для інтерактивних обчислень бажано насамперед забезпечити прийнятний час реакції системи і рівність в обслуговуванні. Для вирішення подібних проблем використовується дисципліна обслуговування, називана RR (round robin, кругова, карусельна), і пріоритетні методи обслуговування.

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

Виконані задачі

3. Розподіл переривань по рівнях пріоритету. Облік пріоритету. Дисципліни обслуговування переривань

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

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

Механізм переривань реалізується апаратно-програмними засобами і включає наступні елементи:

1. Установлення факту переривання.

2. Запам'ятовування стану перерваного процесу.

3. Керування апаратно передається підпрограмі обробки переривання.

4. Обробка переривання..

5. Відновлення інформації, що відноситься до перерваного процесу

6. Повернення в перервану програму.

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

Однак така схема використовується тільки в найпростіших програмних середовищах. У мультипрограмних операційних системах обробка переривань відбувається по більш складних схемах.

Підпрограма обробки переривань

Рис.1 Обробка переривання

Отже, головні функції механізму переривань:

розпізнавання або класифікація переривань;

передача керування відповідно оброблювачу переривань;

коректне повернення до перерваної програми.

Переривання, що виникають при роботі обчислювальної системи, можна розділити на два основних класи: зовнішні (їх іноді називають асинхронними) і внутрішні (синхронні).

Зовнішні переривання викликаються асинхронними подіями, що відбуваються поза процесом, що переривається, наприклад:

переривання від таймера;

переривання від зовнішніх пристроїв (переривання по введенню/виведенню);

переривання по порушенню живлення;

переривання з пульта оператора обчислювальної системи;

переривання від іншого процесора чи іншої обчислювальної системи.

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

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

при наявності в поле коду операції незадіяної двійкової комбінації;

при діленні на нуль;

при переповненні або зникненні порядку;

при виявленні помилок парності, помилок у роботі різних пристроїв апаратури засобами контролю.

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

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

Зовнішні

пристрої

Рис.2. Розподіл переривань по рівнях пріоритету

Програмне керування спеціальними регістрами маски (маскування сигналів переривання) дозволяє реалізувати різні дисципліни обслуговування переривань:

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

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

за принципом стека, чи, як іноді говорять, по дисципліні LCFS (1аst соme first served -- останнім прийшов -- першим обслугований), тобто запити з більш низьким пріоритетом можуть переривати обробку переривання з більш високим пріоритетом. Для цього необхідно не накладати маски ні на один сигнал переривання і не виключати систему переривань.

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

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

Рис. 3. Обробка переривання при участі супервізорів ОС

4. Способи виділення пам'яті під новий розділ. Їх переваги і недоліки

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

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

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

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

Фізична пам'ять - це впорядкована множина комірок, що пронумеровані, тобто до кожної з них можна звернутись, вказавши її адресу. При цьому кількість комірок фізичної пам'яті обмежена і фіксована.

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

Простір імен програми

Фізична пам'ять комп'ютера

Рис.1. Пам'ять і відображення

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

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

Просте неперервне розподіленння і

розподілення з перекриттям (оверлейні структури)

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

область, яку займає операційна система;

область, у якій розміщується задача, що виконується;

незайнята нічим (вільна) область пам'яті.

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

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

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

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

Цей метод розподілу припускає, що вся програма може бути розбита на частини - сегменти. Кожна оверлейна програма має одну головну частину (main) і кілька сегментів (segment), причому в пам'яті машини одночасно можуть знаходитися тільки її головна частина й один чи декілька сегментів.

Поки в оперативній пам'яті розташовуються сегменти, що виконуються, решта знаходяться в зовнішній пам'яті.

Розподіл статичними і динамічними розділами

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

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

Розділи з фіксованими границями

Розбивка всього обсягу оперативної пам'яті на кілька розділів може відбуватися одноразово чи в міру необхідності оператором системи.

Приклад розбивки пам'яті на кілька розділів приведений на рис.2

Рис.2. Розподіл пам'яті розділами з фіксованими границями

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

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.