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

Билет 20

  1. Синхронизация процессов и потоков. Проблемы взаимодействия и синхронизации

  2. Функции ОС по управлению памятью в мультипрограммной системе

Степень осведомленности

Взаимосвязь

Влияние одного процесса на другой

Потенциальные проблемы

Процессы не осведомлены друг о друге

Конкуренция

Результат работы одного процесса не зависит от действий других.

Возможно влияние одного процесса на время работы другого.

Взаимоисключения

Взаимоблокировки

Голодание

Процессы косвенно осведомлены о наличии друг друга

Сотрудничество с использованием разделения

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

Возможно влияние одного процесса на время работы другого.

Взаимоисключения

Взаимоблокировки

Голодание

Синхронизация

Процессы непосредственно осведомлены о наличии друг друга

Сотрудничество с использованием связи

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

Возможно влияние одного процесса на время работы другого.

Взаимоблокировки (возобновляемые ресурсы)

Голодание

Методы взаимоисключений

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

  2. Блокирующие переменные (программный подход)

  3. Использование системных функций входа в критическую секцию

  4. Семафоры Дийкстры

Системные функции для работы с критическими секциями

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

Блокирующие переменные

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

Функциями ОС по управлению памятью в мультипрограммной системе явля­ются:

1. отслеживание свободной и занятой памяти;

2.выделение памяти процессам и освобождение памяти по завершении процессов;

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

4. настройка адресов программы на конкретную область физической памяти.

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

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

Типы адресов

Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена (метки), виртуальные адреса и фи­зические адреса (рис. 5.1).

1. Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

3. Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и ко­манды.

Задача

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

1, 0, 2, 2, 1, 7, 6, 7, 0, 1, 2, 3, 0, 4, 5, 1, 5, 2, 4, 5, 6, 7, 6, 7, 2, 4, 2, 7, 3, 3, 2, 3.

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

1

0

2

2

1

7

6

7

0

1

2

3

0

4

5

1

5

2

4

5

6

7

6

7

2

4

2

7

3

3

2

3

1

1

0

2

2

1

7

6

7

0

1

2

3

0

4

5

1

5

2

4

5

6

7

6

7

2

4

2

7

3

3

2

3

2

1

0

0

2

1

7

6

7

0

1

2

3

0

4

5

1

5

2

4

5

6

7

6

7

2

4

2

7

7

3

2

3

1

1

0

2

1

1

6

7

0

1

2

3

0

4

4

1

5

2

4

5

5

5

6

7

7

4

2

2

7

7

4

8

2

2

1

6

7

0

1

2

3

0

0

4

1

1

2

4

4

4

5

6

6

6

4

4

4

4

Частота удачи 15/32=0,47

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