ПредишенСледващото

Наличието на сигнал за прекъсване не трябва да доведе до прекъсване на текущата програма. Процесорът има средство за защита срещу прекъсвания: деактивиране прекъсвания или маскиране система (забрана) отделни прекъсване сигнали. Софтуер за управление на тези средства дава възможност за настройване на обработката на сигналът за прекъсване на операционната система: ги обработват веднага след пристигането, за отлагане на лечението за известно време или напълно игнорирани. Обикновено прекъсване Операцията се извършва след приключване на текущата команда. Тъй като сигналите за да се появят на случаен принцип пъти, няколко прекъсване на сигнала може да съществува в момента на получаване на следващия прекъсвам, които могат да бъдат обработвани само последователно. За да се обработи сигналите за по разумен начин, те са възложени приоритети.

Всички прекъсват източници са разделени в класове и всеки клас се задава ниво на приоритет на заявка за прекъсване. Сигналът с по-висок приоритет се обработва първо, обработката на други сигнали се забавя.

Поръчано рум сервиз на заявка за прекъсване, заедно с диаграми на обработка приоритет може да се изпълни исканията маскиране механизъм. Софтуер за контрол на специалните регистри маски - маскиране на сигналите за независимо от нивото на приоритет - позволява да се приложи различна услуга дисциплина:

§ с относителни приоритети. т.е. услуга да не се прекъсва дори получаване на заявки с по-високи приоритети. Едва след края на заявката за услуга се обслужва от нова молба с най-висок приоритет. За организирането на такава дисциплина е необходимо да се програмира служба на това искане за налагане на маска (забрана) за всички други сигнали прекъсне, или просто да се изключи системата за прекъсване;

§ с абсолютен приоритет - винаги обслужени на прекъсване с най-висок приоритет. За да се приложи този режим на времето за изпълнение на прекъсване прикрие всички заявки с по-нисък приоритет. Възможно е многостепенно прекъсване, т.е. прекъсне за прекъсване. Броят на прекъсване нива в този режим, варира в зависимост от приоритета на искането. Ако процесорът работи по такава схема, в един от своите вътрешни регистри поддържа променлива, която улавя нивото на приоритет в момента се обслужва прекъсване.

§ въз основа на пакета (по LCFS дисциплина - последен дошъл, пръв обслужен) - заявките с по-нисък приоритет може да прекъсне обработката на прекъсване с по-висок приоритет. За осъществяването на тази дисциплина е необходимо да не се налага маска за едно прекъсване на сигнала и система за прекъсване на разстояние.

Имайте предвид, че за правилното прилагане на последните две дисциплини трябва да се осигури пълна система прекъсване маскиране на стъпки 1-4 и 6-7, за да се избегне загубата на искането и да го връчи правилно. Когато това многостепенно прекъсване трябва да се появят на сцената на прекъсване на действителната обработка, а не в преход от един процес към друг.

Диспечерски прекъсва е важна функция на операционната система, която се прилага във всички multiprogramming OS. Може да се отбележи, че като цяло в операционната система реализира механизъм двустепенна планиране работи. Горна график ниво се извършва прекъсване контролер, който разпределя процесорното време между получил типово прекъсва. Оставащото време за процесор се разпределя към друг диспечер - диспечерски потоци въз основа на различни дисциплини, които ще бъдат обсъдени по-долу.

Както видяхме по-рано тази схема, за обработка на прекъсвания може да бъде разделен на три етапа. В система multiprogramming, тези стъпки ще изглеждат малко по-различно. По-долу е диаграма, илюстрираща разликата.

В първия етап, когато искане за идентификация сигнал за прекъсване се извършва чрез специален софтуер, модулна система, която се нарича от надзора (или контролера) прекъсва. Той забранява накратко всички прекъсвания, прекъсване на процеса запазва контекст и изяснява причината за прекъсването.

След това, контролерът сравнява определен приоритет прекъсне този източник с ток поток приоритет инструкция се изпълняват от процесор. В този момент, на процесора може да се наложи да се следват инструкциите на друг прекъсне треньор, тъй като има някои приоритет. В зависимост от приоритета на новото искане, или да го манипулатор се нарежда на опашка товарачи, или (ако нейният приоритет е по-висока), тя започва да работи и да работите с този процесор е спряно и се поставя в опашката (втори етап).

Забележка. Прекъсване (независимо от техния приоритет) винаги има по-висок приоритет от потока се извършва по конвенционален последователност определя от Scheduler резба.

След прекъсване надзорник за управление на програми за обработка на се предава отново (третия етап), този път на модула, който се занимава с планирането на задачи. И диспечера на задачите в съответствие с режима на разпределение процесорно време ще възстанови контекста на задачата, която ще бъде взето решение за разпределяне на процесор.

1. Какво е за прекъсване? Когато тя е поставена на мястото и с каква цел?

2. Какви са етапите включва прекъсване механизъм за манипулиране?

3. Възможно ли е да забраните всички прекъсва за периода на прекъсване манипулатор? Защо?

4. Какъв тип прекъсвания са клавиатура прекъсване? Таймер прекъсне? Появата на деление на нула в програмата? Апел към забранената страница на паметта, заета от кода на операционната система?

5. дава хардуер прекъсва примери.

6. Може ли по време на нормална работа на програмата да бъде изключителна ситуация? Защо?

7. Какви са различните начини за въвеждане на механизма за хардуерно прекъсване? Каква е разликата?

8. Какво е маскиране прекъсва и това, което може да се използва?

9. Как е възможно да се приложат различни прекъсване дисциплина услуга чрез маскиране?

10. Каква е разликата между дисциплина прекъсване услуга с относителния приоритет и с абсолютна?

11. Когато съдържа информация за нивото на настоящия приоритет на прекъсване манипулатор?

12. Какви са функциите на ръководител прекъсне?

13. Какво е различното при прилагането на механизма за прекъсване в система multiprogramming на еднократна програма система?

14. Когато се върнете към работеща програма, преди да влезе сигналът за прекъсване в система multiprogramming?


Page генерирана за: 0.014 сек.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!