Билет 28 1. Аппаратно-программные средства поддержки мультипрограммирования. Системы прерываний. Принципы построения системы прерываний. Системные вызовы

2. Распределение памяти перемещаемыми разделами. Достоинства и недостатки алгоритма. Аппаратная поддержка перемещения.

Задача

Текущее состояние системы не имеет очередей неудовлетворенных запросов.

Доступно

R1 R2 R3 R4
       

Процессс
Текущее Максимальные Требуется

распределение требования

Р1 Р2 Р3 Р4 Р5
R1

R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
                       
                       
                       
                       
                       

Требуется определить:

1. Какой процесс (если таковой имеется) находится в состоянии взаимоблокировки (или может быть заблокирован)?

2. Если процессом Р3 будет выполнен запрос (0, 1, 0, 0), безопасно ли его немедленное удовлетворение? В каком именно состоянии окажется система после его немедленного удовлетворения? Какие процессы (если таковые имеются) окажутся или могут оказаться заблокированными при немедленном удовлетворении этого запроса?

1. Основным аппаратно-программным средством поддержки мультипрограммирования является система прерываний. Именно она обеспечивает возможность обработки постоянно поступающих данных, регистрирование ошибок происходящих при выполнении программы, а так же выполнение необходимых прерывания внутри программ.

Прерывания могут быть внешними, внутренними и программными

Принципы построения систем прерываний:

*аппаратная поддержка (контроллер прерываний, контроллер DMA, контроллеры внешних устройств, шины подключения внешних устройств, средства микропроцессора);

*векторный (в прерывании идёт уникальный номер устройства, выданный системой), опрашиваемый(в прерывании только приоритет, для определения процессор опрашивает всех обработчиков приоритета данного уровня) и комбинированный (опрос производит контроллер прерываний, передавая в процессор вектор от 0 до 255 (Intel Pentium)). В системе имеется таблица обработчиков. При множестве одинаковых приоритетов происходит опрос обработчиков, при единственном - работает как векторная) способы прерываний.

*приоритетный механизм обслуживания (с абсолютными(немедленное выполнение более высокого приоритета) и относительными(по окончании предыдущего прерывания) приоритетами);

*маскирование прерываний – при работе системы, все прерывания имеющие приоритет =< приоритета обрабатываемой программы, не обслуживаются системой. Так же возможна маскировка любого приоритета.

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

Применяется система повышения приоритета. Например, в ОС MS Windows прерывание, простаивающее длительный период времени получает от системы максимальный приоритет.

По отношению к обработчикам прерываний любой поток, который назначен на выполнение планировщиком, имеет самый низкий приоритет. Процедуры, выполняемые по запросам прерываний, выполняют работу, чаще всего никак не связанную с текущим процессом. Исключение в Windows NT.

Системный вызов позволяет приложению обратиться к ОС с просьбой выполнить то или иное действие, оформленное как процедура кодового сегмента ОС.

Возможные схемы обслуживания системных вызовов:

1. Децентрализованная –за каждым системным вызовом закреплен свой вектор прерываний. Достоинство – высокая скорость обработки системных вызовов, недостаток – разрастание таблицы векторов прерываний.

2. Централизованная – с помощью диспетчера системных вызовов.

В основном используется табличный способ организации системных вызовов

2. Происходит перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера, корректировка таблиц свободных и занятых областей. Затем идет изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти за счет использования относительной адресации.

Достоинства: эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации. Недостаток: дополнительные накладные расходы ОС

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

R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
                0-0=0 0-0=0 1-1=0 2-2=0
                2-2=0 7-0=7 5-0=5 0-0=0
                6-0=6 6-0=6 5-3=2 6-4=2
                4-2=2 3-3=0 5-5=0 6-4=2
                0-0=0 6-5=1 5-3=2 2-2=0

Задача.

Первый процесс может быть выполнен, при этом он освободит ресурсы. Вектор ресурсов станет равен (2, 1, 1, 2). После этого 4-й процесс сможет использовать ресурсы, выполниться и освободить ресурсы. Вектор ресурсов станет равен (4, 4, 6, 6). Ресурсов хватит для выполнения 5-го процесса, в результате чего свободных ресурсов окажется (4, 9, 9, 8), что позволит выполниться 2-му процессу, а после него и последнему 3-ему. Таким образом, взаимоблокировок нет.

Немедленное удовлетворение (0, 1, 0, 0) для Р3 приведет к сокращению вектора ресурсов до (2, 0, 0, 0), так как переданные ресурс не позволит Р3 выполниться. После освобождения ресурсов от Р1 вектор станет (2, 0, 1, 2), эти ресурсы сможет использовать 4-й процесс, и после очередного освобождения вектор станет (4, 3, 6, 6). Ресурсы сможет использовать 5-й процесс, освободив их до (4,8, 9, 8). Ресурсов хватит оставшимся процессам для последовательного выполениня, а значит блокировки не произойдет и (0, 1, 0, 0) действительно можно отдать 3-му процесу


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: