Операционные сети сущ. ОС. Обзор содержания дисциплины операционные системы Обсуждение функций и эксплуатационных требований к ос
Скачать 356.76 Kb.
|
ЛЕКЦИЯ 2. ОС – ПроцессыКомпоненты вычислительной системы (аппаратура) обычно работают параллельно. ОС выполняет множество вычислительных работ, которые продвигаются вперед почти независимо. Понятие процесса – это формализация идеи независимой работы. Процесс является единицей работы, выполняемой вычислителем. Поскольку работы независимы, то представляющие их процессы независимы. Поскольку аппаратура работает с различными скоростями, то допускаются произвольные соотношения скоростей выполнения процессов. Свойства процессов. Процессы – независимые работы, выполняются параллельно, выполняются с различными скоростями. Параллельно выполняющимся работам необходимо обмениваться информацией при совместном использовании ресурсов вычислителя. Процесс – область памяти, содержимое которой меняется по правилам, описываемой программой, которую интерпретирует ЦП. Процесс – пространство состояний набора переменных состояния Х={x1,x2,…,xk}; функция действия в этом пространстве; особые элементы пространства состояний – начальные состояния. Состояние – описывается заданием значений всех переменных состояний. Переменные состояния – ячейки памяти. Действие – присвоение значений некоторым переменным набора Х. Функция действия – функция, которая отображает состояния в действия (процедура). Реализация процессов. В реальной вычислительной системе процесс это выполнение процедуры на ЦП. Каждый процесс однозначно определяется информационной структурой – дескриптором: Идентификатор процесса. Переменная состояния, определяющая положение процесса (готов к работе, работающий, заблокирован). Защищенная область памяти (область сохранения), в которой хранятся текущие значений регистров при прерывании процесса. Информация о ресурсах, которыми владеет процесс. Разделяемые переменные, необходимые для общения с другими процессами. В вычислителе процесс представляется дескриптором и областью памяти, содержащей программный код и обрабатываемые данные – программный процесс. В ОС без структурной организации все процессы равноправны и порождаются обычно супервизором. В ОС со структурной организацией процессов все процессы как правило организованы в виде древовидной структуры. Имеются предки и потомки. Распределение ресурсов находится под контролем: ресурсы любого процесса были когда-то собственностью его предка. Одни процессы имеют больше власти, чем другие – предок управляет потомком. ЛЕКЦИЯ 3. Синхронизация процессовЦель ОС – эффективное использование аппаратных и программных ресурсов вычислительной среды.ТОГДА: ресурсы необходимо разделять между процессами, каждый момент времени аппаратные (физические) и программные (логические) ресурсы доступны только одному процессу. КРИТИЧЕСКИЙ РЕСУРС – ресурс, допускающий обслуживание только 1 пользователя (процесса) в каждый момент времени. Процессы, использующие критический ресурс должны синхронизировать свои действия. Разделяемые переменные – пример критического ресурса. КРИТИЧЕСКИЙ УЧАСТОК ПРОЦЕССА – участок, в котором происходит обращение к критическим ресурсам. Критические участки должны быть взаимно исключаемыми. Механизм синхронизации процессов механизм недопущения одновременного выполнения критических участков – должен обладать 2-мя свойствами: Если >=1 процесса хотят войти в критический участок, то 1 из них должен получить разрешение войти в свой критический участок. В каждый момент только 1 процессу разрешается находиться в своем критическом участке. Синхронизация с помощью приемов нижнего уровня. Блокировка памяти (операции над памятью – неделимы) = Алгоритм Деккера (для синхронизации 2-х процессов), трудно обобщается на произвольное число процессов. АЛГОРИТМ ДЕККЕРА есть состояния очереди, определяет какой процесс входит в участок. Неделимая операция ПРОВЕРИТЬ и УСТАНОВИТЬ (ПиУ) = Test end Set Lock (TSL). Операция имеет два параметра ОБЩ (глобальная переменная разделяемая процессами), ЛОК (локальная переменная процесса) и выполняется в виде двух присвоений: ПиУ(ЛОК,ОБЩ)==ЛОК:=ОБЩ; ОБЩ:=1; Значения переменной ОБЩ: 1 – блокирующее, 0 – разблокирующее. begin int ОБЩ; ОБЩ:=0; parbegin ПРОЦЕСС1: begin int ЛОК1; ЛОК1:=1; do while (ЛОК1=1) ПиУ(ЛОК1,ОБЩ); end; <критический участок> |