Оглавление
Аппаратная поддержка взаимоисключений. 3 Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) 8 Семафоры.. 12
Практическое задание №1. 16
Практическое задание №2. 17
Литература. 19
Практическое задание №1
Возможны ли следующие переходы процесса из одного состояния в другое?
a. Из состояния готовность в состояние исполнение. b. Из состояния ожидание в состояние исполнение. c. Из состояния рождение в состояние исполнение.
Если переход возможен, кратко сформулируйте, когда он происходит. Если невозможен, напишите почему.
Практическое задание №2
Пусть в вычислительную систему поступают пять процессов различной длительности по следующей схеме:
Вычислите среднее время между стартом процесса и его завершением (turnaroud time) и среднее время ожидания процесса (waiting time) для каждого из трех алгоритмов планирования FCFS (First Come First Served), RR (Round Robin) и SJF (Short Job First). При вычислениях считать, что процессы не совершают операций ввода-вывода, величину кванта времени принять, равной 1 (временем переключения контекста пренебречь). Процесс, поступающий в систему, считать готовым к исполнению в момент поступления. Для алгоритма RR принять, что вновь прибывший процесс помещается в начало очереди процессов, готовых к исполнению, и, следовательно, сразу выбирается на исполнение.
Переменные-семафоры применяются для организации взаимодействия процессов. В некоторых языках программирования они введены в синтаксис языка, в других случаях реализуются с помощью специальных системных вызовов. Во втором случае соответствующая целая переменная располагается внутри адресного пространства ядра операционной системы. Операционная система обеспечивает неделимость операций P и V. Для этого она может запретить прерывания на время выполнения соответствующих системных вызовов. Если при выполнении операции P заблокированными оказались несколько процессов, то порядок их разблокирования может быть произвольным, например, FIFO.
Одной из типовых задач, требующих организации взаимодействия процессов с использованием семафоров, является задача producer-consumer (производитель-потребитель).
Например. Пусть буферный пул состоит из N буферов, каждый из которых может содержать одну запись.
Поток-производитель осуществляет запись в буфер, а поток-потребитель – чтение из буфера. В общем случае поток-производитель и поток-потребитель могут иметь различные скорости и обращаться к буферному пулу с переменой интенсивностью, В один период скорость записи может превышать скорость чтения, в другой - наоборот.
Для правильной совместной работы поток-производитель должен приостанавливаться, когда все буферы оказываются занятыми, и активизироваться при освобождении хотя бы одного буфера. Напротив, поток-потребитель должен приостанавливаться, когда все буферы пусты, и активизироваться при появлении хоти бы одной записи.
Введем два семафора: е — число пустых буферов, и f — число заполненных буферов, причем в исходном состоянии е = N, a f = 0. Тогда работа потоков с общим буферным пулом может быть описана следующим образом (рис.3).
Список использованной литературы:
Дансмур М. Операционная система UNIX / М. Дансмур, Г. Дейвис. – М.: Радио и связь, 1989. Дейтел Г. Введение в операционные системы: в 2 т. / Г. Дейтел; пер. с англ. – М.: Мир, 1987. Клочко В.И. Теория вычислительных процессов и структур: учеб. пособие / В.И. Клочко. – Краснодар: КубГГУ, 1999. Концептуальное моделирование информационных систем / под ред. В.В. Фильчакова. – СПб.: СПВУРЭ ПВО. 1998. Олифер Н.А. Сетевые операционные системы / Н.А. Олифер, Г.В. Олифер. – СПб.: Питер, 2001. Соловьев Г.Н. Операционные системы ЭВМ: учеб. пособие / Г. Н. Соловьев, В.Д. Никитин. – М.: Высш. шк., 1989.

