Операционные системы предоставляют пользователям достаточно широкий спектр вычислительных услуг, упрощая процесс использования ЭВМ. Прежде всего это касается разнообразия режимов работы машин, обеспечиваемых ОС. Под режимом работы понимают принципы структурной и функциональной организации аппаратных и программных средств. В общем случаережимы использования ЭВМ подразделяют на однопрограммные и многопрограммные.
Исторически однопрограммные режимы появились первыми. При их реализации все основные ресурсы ЭВМ (время работы процессора, оперативная память и др.) полностью отдаются в монопольное владение пользователя. Однопрограммный режим может иметь модификации: однопрограммный режим непосредственного доступа и однопрограммный режим косвенного доступа.
Многопрограммный режим работы ЭВМ позволяет одновременно обслуживать несколько программ пользователей. Реализация режима требует соблюдения следующих непременных условий:
• независимости подготовки заданий пользователями;
• разделения ресурсов ЭВМ в пространстве и времени;
• автоматического управления вычислениями.
Независимость подготовки заданий пользователями обеспечивается развитыми средствами САП. Используя имеющиеся языки программирования, пользователи не должны учитывать ситуации, в которых может произойти одновременное их обращение к одним и тем же ресурсам ЭВМ. Они могут использовать даже одинаковые идентификаторы, обращаться к одним и тем же библиотекам программ и массивам данных, задействовать одни и те же устройства и т.д. Очереди к общим ресурсам должны обслуживаться средствами ОС, не создавая взаимных помех пользователям.
Разделение ресурсов ЭВМ между программами пользователей обеспечивается аппаратно-программными средствами системы. Программы управления заданиями ОС определяют виды требуемых ресурсов в заданиях пользователей и регламентируют их использование. Перспективное планирование при этом отсутствует, так как заранее определить динамику последующих вычислений практически невозможно. Отдельные виды ресурсов, например области оперативной и внешней памяти, допускают одновременное их использование программами пользователей. В этом случае пространство адресов памяти разбивается на непересекающиеся зоны или разделы. "Охрану границ" этих зон обеспечивают схемы защиты памяти - аппаратурные и программные средства ЭВМ.
Некоторые виды ресурсов допускают только последовательное их использование программами пользователей, например, в однопроцессорной ЭВМ время работы единственного процессора является неразделяемым ресурсом. Его использование предполагает упорядочение потока заявок и поочередное его использование программами. В современных ЭВМ упорядочение потока заявок обеспечивается на основе их приоритетов, где приоритет - некоторая априорная характеристика заявки, определяющая ее место в очереди на обслуживание. Формирование очередей обеспечивают программные компоненты ОС. Обслуживание очередей заявок выполняется с использованием системы прерываний и приоритетов. Последняя выделяет из группы одновременно поступающих заявок одну, наиболее приоритетную.
Автоматическое управление вычислительным процессом в многопрограммном режиме выполняется центральной программой управления задачами. Сущность управления сводится к управлению ресурсами. При этом ОС составляет таблицы управления, выделяет ресурсы, запускает их в работу и корректирует таблицы.
Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Подкачка страниц).
При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.
Применение механизма виртуальной памяти позволяет:
упростить адресацию памяти клиентским программным обеспечением;
рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. В то же время во встраиваемых системах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика (системы реального времени) виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные иерархии памяти.
Система прерываний.
Прерывание - приостановление работы одной программы и передача управления другой при возникновении некоторого независящего от них события. При этом сохраняется возможность возврата управления прерванной программе, без потери ею работоспосодности.
Адреса подпрограмм обслуживания прерываний находятся в специальной таблице и называются векторами прерывания. В реальном режиме таблица вектров распологается в начале физической памяти; вектор имеет длину четыре байта и храниться в форме CS:IP. В защищенном режиме таблица векторов может быть расположена в любом месте и содержит более сложные дескрипторы (в режиме V86 имеется подобие таблицы реального режима).
Работа с системой прерываний может рассматриваться с двух точек зрения:
Работа с векторами прерываний;
Работа с микросхемами контроллеров прерываний (современные рашины могут не иметь отдельной микросхемы контроллера прерываний, но их регистры сохранены в адресном пространстве).
ПРИМЕЧАНИЕ: Еще раз подчеркивается, что речь идет прежде всего о реальном режиме. Попытка "попробовать" в любом другом может иметь непредсказуемые последствия.
Таблица дескрипторов прерываний защищенного режима доступна только из нулевого кольца защиты, вы можете создать или изменить ее если выполните переключение в защищенные режим самостоятельно!
При работе в режиме V86 возможно изменение образа таблицы прерываний, но последствия определяются возможностями виртуального монитора!
Таблица аппаратных прерываний:
запрос
прерывание
функция
08h
Запрос от таймера
09h
Контроллер клавиатуры
0Ah
Вторая микросхема в AT, XT286, PS50 + или вертикальный обратный ход луча EGA/VGA
0Bh
Запросы от COM2 или COM4
0Ch
Запросы от COM1 или COM3
0Dh
НЖМД в XT или запрос от LPT2 (AT)
0Eh
Запросы от контроллера НГМД
0Fh
Запросы от LPT1
70h
Часы реального времени в AT, XT286, PS50 +
71h
В AT, XT286, PS50 + программно переназначено на запрос 2
74h
Перывание от мыши в PS50 +
75h
Ошибка математического сопроцессора в AT, XT286, PS50 +