У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Лабораторна робота - Периферійні процесори
17
користувач натискає клавішу переривання (break), ядро ЦП посилає процесові-супутнику відповідний сигнал. Якщо супутник перебував у стані зупинки чекаючи введення з термінала порції даних, він негайно виходить із цього стану й припиняє виконання функції read. У своїй відповіді на запит периферійного процесу супутник повідомляє код помилки й номер сигналу, відповідному перериванню. Периферійний процес аналізує відповідь й, оскільки в повідомленні говориться про надходження сигналу переривання, відправляє сигнал самому собі. Перед виходом з функції read периферійне ядро проводить перевірку надходження сигналів, виявляє сигнал переривання, що поступив від процесу-супутника, і обробляє його звичайним порядком. Якщо в результаті одержання сигналу переривання периферійний процес завершує свою роботу за допомогою функції exit, дана функція бере на себе турботу про знищення процеса-супутника. Якщо периферійний процес перехоплює сигнали про переривання, він викликає користувальницьку функцію обробки сигналів і по ви-

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

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

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

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

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

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

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


Сторінки: 1 2 3 4