Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мои шпоры ОСиСП(1).doc
Скачиваний:
32
Добавлен:
26.09.2019
Размер:
1.63 Mб
Скачать

Билет 8

1. Атрибуты процессов в unix (8) – 66

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

Типичные элементы управления блока процесса:

1. Идентификаторы процесса:

- идентификатор данного процесса;

- идентификатор родительского процесса;

- идентификатор пользователя.

2. Информация о состоянии процесса:

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

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

- указатели на стек – указывает на вершину стека, с процессом связывается один или несколько стеков.

3. Управляющая информация процесса:

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

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

в) обмен информацией между процессами: флаги, сигналы, сообщения;

г) привилегии процессов – это права доступа к определенным областям памяти, права выполнять определенные виды команд, возможности использования системных утилит;

д) управление памятью: это указатели на таблицы сегментов или страниц, описывающих распределение процессов в виртуальной памяти;

е) владение ресурсами и их использование: перечень открываемых файлов, сведения об исполнении процесса и других устройств ввода-вывода.

2.Применение общего семафора для решения задачи "производитель-потребитель" с неограниченным буфером.

Рассматриваются два процесса, которые называются производитель и потребитель. Оба процесса являются циклическими. Производитель при каждом циклическом повторении участка программы про­изводит отдельную порцию информации, которая должна быть обработана потребителем. Потребитель при каждом повторении обрабатывает следующую порцию информации, выработанную производите­лем. Отношения производитель-потребитель подразумевают односторонний канал связи, по которому могут передаваться порции информации. С этой целью процессы связаны через буфер неограниченной емкости. То есть, произведенные порции не должны немедленно потребляться, а могут организовывать в буфере очередь. Буфер работает по принципу FIFO.

ЧПБ – число порций в буфере.

РБ – работа с буфером

begin integer ЧПБ;

ЧПБ := 0;

parbegin

производитель: begin

П1: производство новой порции;

добавление новой порции в буфер;

v(ЧПБ);

goto П1;

end;

потребитель: begin

П2: p(ЧПБ);

взятие порции из буфера;

обработка взятой порции;

goto П2;

end;

parend;

end;

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

begin integer ЧПБ, РБ;

ЧПБ := 0;

parbegin

производитель: begin П1: производство новой порции;

p(РБ)

добавление новой порции в буфер;

v(PБ);

v(ЧПБ);

goto П1;

end;

потребитель: begin П2: p(ЧПБ);

p(PБ);

взятие порции из буфера;

v(PБ);

обработка взятой порции;

goto П2;

end;

parend;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]