Прекъсвания в компютърните системи

Прекъсвания в компютърните системи

Компютърната система (КС) в процеса на своята работа трябва да се справя с много задачи, при което на потребителя му се струва, че те се изпълняват едновременно. Обработването на прекъсванията може да се разглежда като вид асинхронно изпълняване на подпрограми. Асинхронно, защото прекъсване може да настъпи теоретично във всеки един момент.

Системите за прекъсване могат да изпълняват вътрешни (On-Line) функции. Това са апаратните прекъсвания на централния процесор. Те са синхронни. Външните (Off-Line) функции на системите за прекъсване са на всички периферни устройства на дадена компютърна система и се определят от конкретните параметри на това външно устройство. Това са асинхронни прекъсвания. Например, апаратното прекъсване на активиране на печатащо устройство и за прослушване на музика е едно и също, като не се препоръчва по време на изпълнение на едното действие да се активира другото действие, за да не се получи срив в ОС на КС.

Параметри на системите за прекъсване: Максималното време за обслужване на прекъсването се състои от:
  • Latency time - това е т.н. Interrupt Latency time - максималното време, чрез което прекъсванията са забранени, плюс времето, необходимо за стартиране на програмата за обслужване на прекъсването;
  • Response time - Interrupt Response time - това е времето, включващо Interrupt Latency time, плюс времето за запазване на контекста, както и времето, необходимо на ядрото да запише прекъсването (за някои от операционните системи - ОС);
  • Recovery time - Interrupt Recovery time - това е времето за възстановяване на контекста и за рестартиране на задачата, която е била прекъсната. За някои ОС трябва да се добави и времето, необходимо на оператора да реши коя е следващата задача, която да се стартира.
Апаратни и програмни прекъсвания. Приоритети при прекъсванията. Маскиране на прекъсванията. Определяне на допустимия момент за прекъсване.

В компютърните системи (КС) прекъсванията на изпълняваните програми са два основни вида: апаратни (hardware) прекъсвания и програмни (software) прекъсвания:
  • Апаратни (hardware) прекъсвания: те са предвидени за определени апаратни компоненти и предизвикват програмни прекъсвания. Апаратните прекъсвания са два класа: от процесора - вътрешни и от периферията - външни;
  • Програмни (software) прекъсвания: те са предвидени за реализиране на определени функции - прекъсване на BIOS , DOS. Тези прекъсвания не са присвоени на определени системни компоненти, а на определени функции. Например, клавишите Ctrl и Break едновременно активирани, създават прекъсване под код 23h. В една съвременна компютърна система съществуват 16 канала за апаратни прекъсвания. В предишните (по-старите КС) бяха само 8. Това означава, че понастоящем в КС има два контролера за прекъсвания (на фирмата Intel - I 8259 A), като всеки контролер е за осем канала. Единият от контролерите се нарича главен (Master Controller), другият - подчинен контролер (Slave Controller).
Организация на обслужване на прекъсванията в компютърните системи.

Обслужването на дадено прекъсване става по фронта на импулса (Edge Triggering) на един от изводите IRQ. За сигурност срещу шума е предвидено и прекъсване по ниво (Level Triggering).

При стандартните карти тип ISA присвояването на канали за обслужване на прекъсванията на отделни части - контролери, интерфейсни карти и др., се осъществява апаратно - чрез джъмпери или DIP превключватели.

При картите ISA Plug & Play и при картите PCI присвояването на канал става автоматично от Plug & Play BIOS и/или от операционната система Windows 95 и нагоре.

При картите PCI прекъсването се означава с INT (INTerrupt). Обработката на прекъсванията в компютърните системи с такава шина (PCI) е по-различна. PCI дефинира четири (4) нови прекъсвания: INT A, INT B, INT C, INT D. С времето настъпи опростяване, при което понастоящем не е необходимо установяване на джъмпери на дънната платка (Main Board) или на разширителната карта PCI . На тези места се задават само канали чрез джъмпери.

Нива на прекъсване:

Прекъсването може да се намира в едно от следните три състояния:
  • Забранено (маскирано) състояние - разгледано по-горе, това състояние се игнорира в дадения момент;
  • Активно състояние - процесорът в момента обработва това прекъсване;
  • Състояние на изчакване - процесорът в дадения момент обработва прекъсване с по-висок приоритет. След обработката на това прекъсване с висок приоритет, прекъсването излиза от това състояние на изчакване и преминава в едно от горните две.
Дума за състоянието на програмата: Всеки един момент от работата на ОС при поява на прекъсване следва да се зададе с точно определена дума в програмата. Тази дума представлява определени байтове, изпратени от ЦП за инициализиране на контролера. Думите са два вида:
  • Initialization Command Words (ICW) - инициализиращи думи;
  • Operation Control Words (OCW) - командни думи, с които контролерът може да се препрограмира по време на работа.
Вектори на прекъсванията: Векторите на прекъсванията са насочени към определени избрани от потребителя операции. Във вектора на прекъсването се намират адресите на подпрограмите в ядрото (основната програма), които подпрограми обработват прекъсванията. Съответната операционна система (ОС) зарежда тези подпрограми в оперативната памет на компютърната система при начално зареждане на ОС. Така различаваме вектор на прекъсването за операцията Print Screen, вектори за прекъсването на BIOS , вектори за прекъсване на DOS и т.н.

Коментари: