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

2. Применение общих семафоров для решения задачи «производитель-потребитель» с ограниченным буфером (11, 23) – 157

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

ЧПП – число пустых порций

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

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

begin

integer ЧПБ, ЧПП, РБ;

ЧПБ:=0;

ЧПП:=N;

РБ:=1;

parbegin

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

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

P(ЧПП);

P(РБ);

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

V(РБ);

V(ЧПБ);

goto n1;

end;

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

n2: P(ЧПБ);

P(РБ);

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

V(РБ);

V(ЧПП);

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

goto n2;

end;

parend;

end;

И производитель и потребитель решают через РБ задачу взаимного исключения. Проблема производителя: нельзя писать в заполненный буфер. Проблема потребителя: нельзя читать из пустого буфера. Производитель ре­шает свою проблему с использованием общего семафора ЧПП (число пустых порций), а потребитель  через ЧПБ (число порций в буфере).

3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)

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

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

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

При управлении виртуальной памятью решаются следующие задачи:

- размещение;

- перемещение;

- преобразование;

- замещение

Задача размещения

Её сущность состоит в выборе в адресном пространстве ОП сегментов или страниц, на которые будут отображаться сегменты или страницы виртуального адресного пространства.

При решении этой задачи стараются выбрать максимально простой алгоритм распределения памяти. Алгоритм строится таким образом, чтобы уменьшить частоту его использования. Для учета свободных и распределенных страниц можно использовать двоичный вектор. Число двоичных разрядов вектора равно числу страниц ОП. Двоичные разряды нумеруются в той же последовательности, что и страницы. Если в разряде хранится 0 - это значит, что страница свободна и 1 - страница распределена. Если свободных страниц нет, а запрос на страницу поступает, то решается задача замещения и какую-то страницу перемещают во внешнюю память.

Задача перемещения

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

– по требованию;

– предварительно.

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

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

Задача преобразования : Сущность данной задачи состоит в осуществлении перехода от логического к физическому адресу. Самый простой способ – это одноуровневая таблица. Ее недостатком является большой размер страниц.

Лог. адрес

Физ. адрес

1

100

2

70

3

215

4

23

5

47

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

Задача замещения

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

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

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

Существуют следующие стратегии:

- для замещения выбирается страница случайным образом;

- выбирается страница, которая дольше всего была в ОП;

- FIFO (удаляется та страница, которая раньше всех была распределена какому-либо процессу). Фактически, это реализация предыдущей стратегии, но она может быть реализована для различных процессов;

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

В простейшем случае, с каждой страницей для этой стратегии связывается бит использования. Этот бит установлен в 1 при обращении к странице, а способ сброса бита в 0 и определяет способы реализации данной стратегии.

В настоящее время используется варианты «часового» алгоритма.

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