Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Розподіл переривань по рівнях пріоритету. Облік пріоритету. Дисципліни обслуговування переривань
Переривання являють собою механізм, що дозволяє координувати паралельне функціонування окремих пристроїв обчислювальної системи і реагувати на особливі стани, що виникають при роботі процесора. Таким чином, переривання — це примусова передача керування від виконуваної програми до системи (а через неї — до відповідної програми обробки переривань), що відбуває при виникненні визначеної події. Основна мета введення переривань — реалізація асинхронного режиму роботи і розпаралелювання роботи окремих пристроїв обчислювального комплексу. Механізм переривань реалізується апаратно-програмними засобами і включає наступні елементи: 1. Установлення факту переривання. 2. Запам'ятовування стану перерваного процесу. 3. Керування апаратно передається підпрограмі обробки переривання. 4. Обробка переривання.. 5. Відновлення інформації, що відноситься до перерваного процесу 6. Повернення в перервану програму. На мал.1 показано, що при виникненні запиту на переривання природний хід обчислень порушується і керування передається програмі обробки переривання. При цьому засобами апаратури зберігається (як правило, за допомогою механізмів стекової пам'яті) адреса тієї команди, з якою варто продовжити виконання перерваної програми. Після виконання програми обробки переривання керування повертається перерваній раніше програмі за допомогою занесення в покажчик команд збереженої адреси команди. Однак така схема використовується тільки в найпростіших програмних середовищах. У мультипрограмних операційних системах обробка переривань відбувається по більш складних схемах. Підпрограма обробки переривань
Рис.1 Обробка переривання
Отже, головні функції механізму переривань: розпізнавання або класифікація переривань; передача керування відповідно оброблювачу переривань; коректне повернення до перерваної програми. Переривання, що виникають при роботі обчислювальної системи, можна розділити на два основних класи: зовнішні (їх іноді називають асинхронними) і внутрішні (синхронні). Зовнішні переривання викликаються асинхронними подіями, що відбуваються поза процесом, що переривається, наприклад: переривання від таймера;
переривання від зовнішніх пристроїв (переривання по введенню/виведенню); переривання по порушенню живлення; переривання з пульта оператора обчислювальної системи; переривання від іншого процесора чи іншої обчислювальної системи. Внутрішні переривання викликаються подіями, що зв'язані з роботою процесора і є синхронними з його операціями. Прикладами є наступні запити на переривання: при порушенні адресації (в адресній частині виконуваної команди зазначена заборонена чи неіснуюча адреса, звертання до відсутнього сегменту або сторінки при організації механізмів віртуальної пам'яті); при наявності в поле коду операції незадіяної двійкової комбінації; при діленні на нуль; при переповненні або зникненні порядку; при виявленні помилок парності, помилок у роботі різних пристроїв апаратури засобами контролю. Нарешті, існують власне програмні переривання. Ці переривання відбуваються по відповідній команді переривання, тобто по цій команді процесор здійснює практично ті ж дії, що і при звичайних внутрішніх перериваннях. Сигнали, що викликають переривання, формуються поза процесором чи у самому процесорі, можуть виникати одночасно. Вибір одного з них для обробки здійснюється на основі пріоритетів, приписаних кожному типу переривання. Зовнішні пристрої Рис.2. Розподіл переривань по рівнях пріоритету
Програмне керування спеціальними регістрами маски (маскування сигналів переривання) дозволяє реалізувати різні дисципліни обслуговування переривань: з відносними пріоритетами, тобто обслуговування не переривається навіть при наявності запитів з більш високими пріоритетами. Після закінчення обслуговування даного запиту обслуговується запит з найвищим пріоритетом. Для організації такої дисципліни необхідно в програмі обслуговування даного запиту накласти маски на всі інші сигнали переривання або просто відключити систему переривань; з абсолютними пріоритетами, тобто завжди обслуговується переривання з найвищим пріоритетом. Для реалізації цього режиму необхідно на час обробки переривання замаскувати всі запити з більш низьким пріоритетом. При цьому можливе багаторівневе переривання, тобто переривання програм обробки переривань. Число рівнів переривання в цьому режимі змінюється і залежить від пріоритету запиту;
за принципом стека, чи, як іноді говорять, по дисципліні LCFS (1аst соme first served — останнім прийшов — першим обслугований), тобто запити з більш низьким пріоритетом можуть переривати обробку переривання з більш високим пріоритетом. Для цього необхідно не накладати маски ні на один сигнал переривання і не виключати систему переривань. У багатьох операційних системах перші секції підпрограм обробки переривань виділяються в спеціальний системний програмний модуль, називаний супервізором переривань. Супервізор переривань насамперед зберігає в дескрипторі поточної задачі робочі регістри процесору, що визначають контекст обчислювального процесу, що переривається. Далі він визначає ту підпрограму, що повинна виконати дії, зв'язані з обслуговуванням поточного запиту на переривання. Нарешті, перед тим як передати керування цій підпрограмі, супервізор переривань установлює необхідний режим обробки переривання. Після виконання підпрограми обробки переривання керування знову передається супервізору, цього разу уже на той модуль, що займається диспетчеризацією задач. І уже диспетчер задач, у свою чергу, відповідно до прийнятого режиму розподілу процесорного часу (між процесами, що виконуються,) відновить контекст тієї задачі, якій буде вирішено виділити процесор. Розглянута нами схема проілюстрована на мал.3
Рис. 3. Обробка переривання при участі супервізорів ОС
|
||||||||||||||||||
Последнее изменение этой страницы: 2020-03-02; просмотров: 236; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.213.209 (0.008 с.) |