
- •Классификация ос
- •Основные функции и структура ос
- •Основные функции ядра в ос Linux:
- •Драйвера устройств
- •Разновидности интерфейсов.
- •Регистры архитектуры подсистемы ввода/вывода.
- •Организация оперативной памяти
- •Организация прерываний
- •Планирование процессов. Понятие «Очередь».
- •Дисциплина диспетчерезации.
- •Взаимодействие процессов.
- •Стратегия организации процессов.
- •Взаимоблокировка процессов.
Организация прерываний
Прерывания – сигналы, при поступлении которых нормальная последовательность выполнения программы может быть прервана, при этом система запоминает информацию необходимую для возобновления работы прерванной программы, и передает управление подпрограмме обработки прерывания. В большинстве ОС обработка прерываний берет на себя сама система. Прерывание делится на:
аппаратные – используются для организации взаимодействия с внешними устройствами , его запросы делятся на:
маскируемые - могут быть замаскированы программными средствами ПК
немаскируемые
программные - вызываются следующими ситуациями
особый случай, возникший при выполнении команды и препятствующий нормальной ее работе
наличие в программе спец команды прерывания используемое при обращениях к спец. функциям ОС для ввода/вывода информации
При поступлении запроса прерывания ПК выполняет следующую последовательность действий:
Определение наиболее приоритетного незамаскированного запроса на прерывание
Определение типа выбранного запроса
Сохранение текущего значения счетчиков команд и регистров флагов.
Определение адресов прерывания по типу и передача управления этой команде.
Выполнение программы обработчика прерывания
Восстановление текущего значения счетчиков команд и регистров флагов
Продолжение выполнения прерванной программы.
Существуют 2 основных способа с помощью которых шины выполняют прерывание. (векторный и опрашиваемый)
В обоях случаях в ЦП идет информация о уровне приоритета прерывания на шине подключения внешних устройств. В случае векторных прерываний в ЦП подается так же информация о начальном адресе программы обработки возникшего прерывания. Назначается вектор прерывания – он представляет собой электрический сигнал, выставляемые на соответственные шины ЦП и несет в себе информацию об определенным, закрепленном на данном устройстве номером, который идентифицирует соответствующий обработчик прерывания. Вектор может быть фиксированным, конфигурированным, программированным. ОС может предусматривать процедуру регистрации вектора. При получении сигнала запроса прерывания, ЦП выполняет спец цикл подтверждения прерывания, в котором устройство должно идентифицировать себя. В течении этого цикла устройство отвечает выставляя на шину вектор прерывания, затем ЦП использует этот вектор для нахождения обработчика данного прерывания. Вектор прерываний – целое число от 0 до 255, указывающую на 1 из 256 программ обработки прерываний адреса которых хранятся в таблице обработчиков прерываний.
(31.10.2012)
При использовании опрашиваемых прерываний ЦП получает от запросившего прерывания устройства только информацию об уровне приоритета прерывания. С каждым уровнем прерывания может быть связанно несколько устройств и, соответственно, несколько обработчиков прерывания. При возникновении прерывания ЦП должен определить, какое устройство из тех которые связанны с данным уровнем прерываний действительно запросило прерывания. Это достигается вызовом всех обработчиков прерываний для данного уровня приоритета. Пока один из обработчиков не подтвердит что прерывание пришло от обслуживаемого им устройства. Если же с каждым уровнем прерываний связанно только 1 устройство, то определение нужной программы обработки прерывания происходит немедленно, как и при векторном прерывании. Механизм прерываний поддерживает преаритезацию и маскирование прерываний. Преаритезыция означает что все источники делятся на классы, и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и обсалютные. Обслуживание запросов прерываний по схеме с относительными приоритетами заключается в том, что при одновременном поступлении запросов прерываний из разных классов выбирается запрос с высшип приоритетом. Однако в дальнейшем при обслуживании этого запроса процедура обработки прерываний уже не откладывается даже в том случае когда появляются более приоритетные запросы – решение о выборе запроса принемается только в момент завершения обслуживания очередного прерывания. Если же более преоритетное прерывание разрешается приостанавливать работу процедур обслуживания менее приоритетных прерываний, то это означает применение схемы приоритизации с абсолютным приоритетом. Если ЦП работает по данной схеме, то он поддерживает в одном из своих регистров переменную фиксирующую уровень приоритета обслуживаемого в данный момент прерывания. При поступлении запроса из определенного класса его приоритет сравнивается с текущим приоритетом ЦП, и если приоритет запроса выше, то текущая процедура вытесняется. Упорядочное обслуживание запросов прерывания, наряду со схемами приоритетной обработки запросов, может выполнятся миханизмом маскирований прерывания. Схема маскирования предполагант возможность временного маскирования прерыванию любого класса, независимо от уровня приоритета. Обобщенно, последовательность действий аппаратных и программных средств по обработки прерывания можно описать следующим образом:
При возникновения сигнала прерывания (для аппаратных) или условия (для программных) пролисходит первичное аппаратное распознования типа прерывания. Если прерывания данного типа в настоящий момент запрещены, то ЦП продолжает поддерживать естественный ход выполнения команд, в противном случае происходит автовызов процедуры обработки прерывания, адрес которой находится в спец таблице ОП, либо в определенных регистрах процессора.
Автоматически сохраняется некоторая часть контекстно-прерванного потока, которое позволит ядру возобновить исполнение потока процессора после обработки прерываний. В этот контекст включаются значения счетчика команд, слова состояния машины, хранящие признаки основных режимов работы ЦП, а так же несколько регистров общего назначения, которые требуются обработчику прерываний.
Решение о перепланировании процессов может быть принято в ходе обработки прерываний.
Одновременно, с загрузкой адреса процедуры обработки прерывания в счетчике команд может автоматически выполнятся загрузка нового значения слова состояния машины, которое определяет режим работы ЦП при обработке прерывания, в том числе работу в привилегированном режиме.
Временно запрещаются прерывания данного типа, что бы не образовалась очередь ложных друг другу потоков одной и той же процедуры
После того как прерывание обработано ядром ОС прерванный контекст восстанавливается и работа потока возобновляется с прерванного места, часть контекста восстанавливается аппаратно по команде возврата из прерывания, а чать программным способом с помощью команд извлечения данных из стека. При возврате прерывания, блокировка повторных прерываний данного типа снимается.
14.11.2012
Процесс – минимальный программный объект имеющий свои ресурсы.
В однозадачной ОС:
1.
2.Выполнение системных вызовов процесса
3. Обработка ошибок возникших в ходе выполнения
4. Нормальное завершение процесса
5. Прекращение процесса в случае ошибки или вмешательства пользователя
В многозадачной ОС выполняются следующие задачи:
-реализация параллельного выполнения процесса на единственном процессоре и переключение ЦП между ними.
-Выбор очередного процесса для выполнения с учетом заданных приоритетов процессов и статистики использования ЦП.
-Исключение возможности несанкционированного вмешательства одного процесса в выполнение другого
-Предотвращение или устранение тупиковых ситуаций возникших при конкуренции процессов за системными ресурсами.
-Обеспечение синхронизаций процессов и обмена данными между ними.
Ресурс – это средство вычислительной системы которое может быть выделено процессу на определенный интервал времени. При описании работы многозадачных систем общий термин «параллельное выполнение» объединяет два существенно различных способа организации выполнения процессов – синхронный и асинхронный параллелизм.
Синхронный параллелизм предполагает наличие общей тактовой последовательности управляющей шагами выполнения параллельно работающих процессов.
При асинхронном параллелизме общего такта нет, процессы выполняются независимо друг от друга, при этом не делается ни каких предположений об их сравнительной скорости, о соотношении времени выполнения различных фрагментов программ и т.д. Сопоставить продвижение различных процессов можно только в заданных точках программных процессов называемых точками синхронизации.
Синхронизация обычно означает ожидание одним процессом, какого либо процесса связанного другим процессов. Точка синхронизации может быть связанно так же с обменом данными между процессов. Когда процесс приемник завершает прием данных, то можно быть уверенным что процесс источник достиг точки синхронизации.
Квайза параллельность – это иллюзия параллельности выполняемых процессов, то есть того что процессы сменяют друг друга через малые интервалы времени. Подобная организация работы называется квайзе-пареллельным выполнением процессов. В некоторых случаях может использоваться смешанная организация сочетающая истинную параллельность и квайзе-параллельность.
Основные проблемы в управлении процессоров можно разбить на два уровня:
Проблемы эффективной и корректной реализации параллельного выполнения процессов.
Проблемы корректного взаимодействия параллельных процессов.
Классификация процессов.
По временным характеристикам различают:
Интерактивные пакетные
Процессы реального времени
По генеологическому :
Поражденные
Порождающие
По результативности:
Эквивалентные
Тождественные
Равные
По времени развития:
Последовательные
Комбинированные
По месту развития:
Внешние (на внешнем ЦП)
Внутренние (на внутреннем ЦП)
По принадлежности к ОС:
Системные
Пользовательские
По связанности :
Взаимосвязанные – имеют какую то связь.(управляющую, информационную и др.)
Изолированные – слабосвязанные.
Информационно независимые – используют совместные ресурсы, но имеют свои информационные базы.
Взаимодействующие – имеют информационные связи и разделяют общие структуры данных.
Взаимосвязанные по ресурсам
Конкурирущие
Порядок взаимосвязи процессов определяются правилом синхронизации, процессы могут находится в отношении:
Предшествования – один процесс находится в активном состоянии раньше чем другой.
Приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом или ЦП свободен, или на нем реализуются процессы с меньшим приоритетом.
Взаимного исключения – в процессе используется общий критический ресурс и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания.
Классификация ресурсов.
По признаку реальности:
Физические
Виртуальные
По возможности расширения свойств:
Эластичные
Жесткие
По степени активности:
Активные
Пассивные
По времени существования:
Постоянные
Временные
По степени важности:
Основные
Второстепенные
По структуре:
Простые
Составные
По характеру использования распределяемых ресурсов:
Потребляемые
Воспроизводимые
По характеру использования:
Последовательное
Параллельное
По форме реализации :
Жесткие – не допускают копирования.
Мягкие – допускают тиражирование и подразделяются на программные и информационные ресурсы.
21.11.12
Состояние процессов.
Любой процесс в многозадачной ОС многократно испытывает переход их одного состояния в другое. Основных состояний 3:
Работа – в этом состоянии находится процесс программу которого в данный момент выполняет ЦП.
Готовность – состояние, из которого процесс может быть переведено в состояние работы, как только это сочтет нужным сделать система.
Блокировка (сон) – состояние в котором процесс не может продолжать выполнение пока не произойдет некоторое событие по отношению к этому процессу. Такой процесс в соответствии со своей логикой может ждать:
Завершение начатой операции ввода/вывода
Освобождение запрошенного у системы ресурса
Истечение заданного интервала времени или достижение заданного момента времени.
Сигналы о продолжении от другого взаимосвязанного процесса и т.д.
ОС контролирует следующую деятельность связанную с процессами:
Создание и удаление
Синхронизация
Планирование
Разрешение тупиковых ситуаций процесса.
Понятие процесса включает в себя:
Программный код
Данные
Содержимое адресного и других регистров ЦП и т.д.
Каждый процесс представленный в системе набором данных называемых таблицей управления процессов. В этой таблице описывается набор значений параметров характеризующей текущее состояние процесса и используемых ОС для управлением прохождением процесса через ПК.