Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема: Фаза переривання основного циклу




Лабораторна робота № 13

Якщо в комп'ютері мається механізм роботи з перериваннями, можна так організувати обчислювальний процес, що процесор не буде простоювати під час виконання операцій вводу-виводу. Розглянемо потік керування, представлений на діаграмі мал. 7.3,6. Перший фрагмент програми в цьому випадку виконується так само, як і в попередньому. Далі програма знову викликає підпрограму WRITE, але сама ця підпрограма складається тільки з фрагмента підготовки і власне команди запуску сеансу обміну. Підпрограма завершує свою роботу і повертає керування основній програмі, як тільки відправить на зовнішній пристрій команду запуску сеансу. Сам же пристрій, одержавши необхідні дані і команду, приступає до самостійної роботи, зчитуючи дані з пам'яті і виводячи їх на печатку. Таким чином, операції вводу-виводу й обробки інформації сполучаються.

Коли зовнішній пристрій виявиться готовим до нового сеансу, модуль керування їм (модуль вводу-виводу) посилає сигнал запиту переривання процесора. У відповідь процесор тимчасово припиняє виконання поточної послідовності команд і переходить до виконання підпрограми обробки даного переривання. Після завершення роботи програми обробки переривання, процесор повертається до перерваної роботи. Крапки, у яких виникають такі переривання, відзначені на схемі мал. 7.3,6 зірочкою.

Що стосується користувальницької програми, сам термін "переривання" відноситься до нормального ходу виконання її команд, що переривається. Коли обробка переривання завершується, природна послідовність виконання команд програми відновлюється (мал. 7.4). Отже, користувальницька програма не має потреби в спеціальному коді, що буде зайнятий роботою з перериваннями — усі турботи по припиненню виконання користувальницької програми і поновленню її після завершення обробки переривання беруть на себе процесор і операційна система.

Для того щоб процесор міг відслідковувати сигнали переривання, до складу основного циклу обробки команди вводиться фаза переривання (мал. 7.6). На цій фазі процесор перевіряє, чи не надійшов сигнал запиту переривання. Якщо такий відсутній, процесор завершує поточний цикл і починає фазу витягу чергового циклу — зчитує наступну команду поточної програми.

Якщо ж виявлений сигнал запиту переривання, процесор виконує такі операції.

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

2. У лічильник команд записується початкова адреса оброблювача переривання (підпрограми обробки переривання).

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

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

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

Але набагато частіше в практиці роботи обчислювальних комплексів зустрічається ситуація, коли час підготовки нової порції даних значно менше, ніж час їхнього виводу, наприклад, на печать. Саме такий випадок відображає діаграма, представлена на мал. 7 .7,б. У процесі виконання користувальницької програми другий виклик підпрограми WRITE відбувається перш, ніж раніше викликана підпрограма WRITE завершить вивід переданої їй порції даних. У результаті користувальницька програма, якщо не прийняти спеціальних мір, може в цій точці "зависнути". Підпрограму WRITE варто викликати після того, як раніше запущений сеанс вводу-виводу завершиться. Тільки тепер можна починати новий сеанс. На мал. 7.8 показана тимчасова діаграма виконання програми, що бідує в подібному тривалому сеансі вводу-виводу, — варіанти без використання переривань і з перериваннями. Як видно, і для таких додатків ефективність роботи процесора підвищується, якщо використовувати переривання.

Діаграма станів процесора в циклі виконання команд при використанні механізму переривань показана на мал. 7.9.

 




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 469; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.