Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Итог / +Раздел VIII. Операционные системы.doc
Скачиваний:
99
Добавлен:
23.03.2015
Размер:
278.53 Кб
Скачать

3) Процессы

Основным компонентом, на уровне которого происходит управление выполнением программ со стороны ОС в режиме мультипрограммирования, является процесс.

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

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

4) Устройства ввода-вывода и хранения данных

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

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

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

Часто используется многоуровневая схема управления, которая позволяет не только освободить процессор, но и унифицировать работу ОС с устройствами.

38. Процессор. Принципы работы процессора. Команды процессора, счетчик команд, слово состояния процессора. Режимы работы процессора. Прерывания и их обработка. Квантование времени.

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

Обычный цикл работы ЦП включает следующие действия: 1. чтение команды по адресу, находящемуся в счётчике команд; 2. декодирование команды; 3. изменение значения счётчика команд, так чтобы он указывал на следующую команду программы;4. выполнение команды.

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

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

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

Команды процессора, счетчик команд, слово состояния процессора;

В общем случае система команд процессора включает в себя следующие четыре основные группы команд: 1. команды пересылки данных; 2. арифметические команды; 3. логические команды; 4. команды переходов.

Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination). Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода.

Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд.

Логические команды производят над операндами логические операции, например, логическое И, логическое ИЛИ, исключающее ИЛИ, очистку, инверсию, разнообразные сдвиги (вправо, влево, арифметический сдвиг, циклический сдвиг). Этим командам, как и арифметическим, требуется один или два входных операнда, и формируют они один выходной операнд.

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

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

PSW

CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или если требуется заем (при вычитании), иначе устанавливается в 0.

PF — флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число бит, равных 1; устанавливается в 0, если число единичных бит нечетное.

AF — флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции.

ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль.

SF — флаг знака. Этот флаг всегда равен старшему биту результата.

TF — флаг ловушки. Этот флаг был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой команды программы управление временно передается отладчику.

IF — флаг прерываний. Установка этого флага в 1 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств. Обычно его устанавливают на короткое время для выполнения критических участков кода.

DF — флаг направления. Этот флаг контролирует поведение команд обработки строк — когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, а когда DF = 0 — наоборот.

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

Смещение следующей выполняемой команды всегда хранится в специальном регистре — IP (указатель инструкции). Процессор использует регистр CS совместно с регистром IP для формирования 20-битового физического адреса. Регистр CS определяет сегмент выполняемой программы, а IP задает смещение.

Режимы работы процессора;

Real Mode (RМ) Классический режим адресации, использованный в первых моделях семейства. Использует сегментированную модель памяти, организованную следующим образом: адресное пространство в 1MiB разбивается на 16-байтовые блоки, называемые параграфами. Всего параграфов в 1 MiB — 65536, что позволяет пронумеровать их 16-разрядными числами. Сегменты памяти имеют размер 65536 байт, и всегда начинаются на границе параграфа. Адрес ячейки памяти состоит из двух частей: номера параграфа, с которого начинается сегмент и смещения внутри сегмента.

Protected Mode (РМ) Более совершенный режим, впервые появившийся в процессоре 80286 и в дальнейшем многократно улучшавшийся. Имеет большое количество подрежимов, по которым можно проследить эволюцию семейства ЦП. В этом режиме поддерживается защита памяти, контексты задач и средства для организации виртуальной памяти. Аналогично реальному режиму, тут также используется сегментированная модель памяти, однако уже организованная по другому принципу: деление на параграфы отсутствует, а расположение сегментов описывается специальными структурами (таблицами дескрипторов), расположенными в оперативной памяти. Помимо базового адреса сегмента дескрипторы содержат размер сегмента (точнее, максимально доступное смещение) и различные атрибуты сегментов, использующиеся для защиты памяти и определения прав доступа к сегменту для различных программных модулей. Существует два типа дескрипторных таблиц: глобальная и локальная. Глобальная таблица описывает сегменты операционной системы и разделяемых структур данных. Локальная таблица может быть определена для каждой конкретной задачи (процесса).

Virtual Mode 86 (V 86) – Является подрежимом защищенного, но использует адресную модель, аналогичную реальному режиму. Применяется для запуска старых программ 8086 в среде современных операционных систем. В отличие от реального режима, где все программы имеют доступ ко всей памяти (кольцо 0), в режиме V86 программа выполняется в кольце 3 (наименее привилегированном), а особые ситуации и прерывания обрабатываются обычными процедурами защищенного режима.Page

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

Условно все типы прерываний можно разделить на следующие классы:

  1. программные прерывания (из-за ошибок в выполняемых программах, например деление на нуль);

  2. прерывания при обращении к супервизору (ядру ОС), которые инициируются прикладной программой, при необходимости выполнения системных функций;

  3. прерывания ввода-вывода, которые инициируются устройствами ввода-вывода;

  4. внешние прерывания (прерывания от других управляющих устройств);

  5. прерывания контроля машины.

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний. Общая схема обработки прерывания:

  1. получив сигнал прерывания, процессор прекращает выполнение активной программы;

  2. содержимое регистров процессора сохраняется в текущем стеке;

  3. процессор получает номер прерывания и просматривает вектор прерываний;

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

  5. процессор извлекает и выполняет команду, адрес которой находится в счётчике команд и, таким образом, начинается выполнение обработчика прерываний;

  6. последним действием обработчика прерываний является извлечение из стека и загрузка содержимого регистров процессора, включая счётчик команд;

  7. обнаружив в счётчике команд адрес очередной команды прикладной программы, процессор продолжает её выполнение.

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

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

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

Квантование времени.

Вытесняющая многозадачность – способность операционной системы прервать выполняемый поток практически в любой момент времени и передать управление другому ожидающему потоку. Реализация ее выглядит так: все существующие в данный момент потоки, часть из которых может принадлежать одному и тому же процессу, претендуют на процессорное время и, с точки зрения пользователя должны выполняться одновременно. Для создания этой иллюзии система через определенные промежутки времени забирает управление, анализирует свою очередь сообщений, распределяет сообщения по другим очередям в пространстве процессов и, если считает нужным, переключает потоки. Когда заканчивается квант времени, отведенный текущей программе, система ее прерывает, сохраняет контекст и отдает управление другой программе, которая ждет своей очереди. Величина кванта времени (time slice) зависит от ОС и типа процессора, в Windows NT она в среднем равна 20-30 мс