Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Раздел 2. Операционные системы



Тема 2.1. ФУНКЦИИ И РЕЖИМЫ РАБОТЫ ОПЕРАЦИОННОЙ СИСТЕМЫ

Функции операционной системы

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

Рассмотрим функции операционных систем. Их можно разбить на три основные группы.

1. Управление задачами:

· загрузка в память программ, подлежащих выполнению;

· запуск программы на выполнение;

· прием и выполнение запросов, поступающих от выполняемых программ;

· обеспечение режима мультипрограммирования;

· обеспечение работы компьютера в сети;

· обеспечение работы компьютера в режиме реального времени;

· организация взаимодействия с системами программирования;

· обработка ошибок при выполнении программ.

2. Управление данными:

· распределение памяти;

· организация виртуальной памяти;

· организация операций ввода-вывода;

· формирование файловой системы и управление ею;

· обеспечение обмена данными между работающими программами;

· организация защиты памяти.

3. Организация взаимодействия с пользователем:

· прием команд пользователя и организация их выполнения;

· предоставление пользователю прав в соответствии с его учетной записью;

· информирование пользователя о состоянии системы и ходе вычислительного процесса;

· формирование и поддержание пользовательского интерфейса.

Приведенное распределение функций операционной системы на три группы во многом условно, однако в целом позволяет получить представление о назначении операционных систем. По существу, операционная система выступает в качестве посредника, организующего и упрощающего взаимодействие аппаратуры вычислительной машины, прикладных программ и оператора (пользователя) ЭВМ (см рис. 9).

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

       
 
 
   


Рис. 9. Роль операционной системы во взаимодействии аппаратуры вычисли-

тельной машины, прикладных программ и оператора ЭВМ.

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

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

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

· режим реального времени – обеспечивает изменение вычислительного процесса при поступлении сигналов с внешних устройств в течение фиксированного достаточно небольшого промежутка времени;

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

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

Состав операционных систем

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

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

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

Модули, входящие в состав операционной системы по их назначению можно разделить на несколько групп:

· управляющие программы – организуют работу вычислительной машины, обеспечивают непрерывное выполнение пользо-вательских программ, хранение и поиск данных, подключают необходимые ресурсы для вычислительного процесса;

· обрабатывающие программы – выполняют обработку информации в соответствии с имеющимися инструкциями. Это могут быть программы, выполняющие вычисления или процедуры, программы обработки прерываний и т.п.;

· программы конфигурирования – настраивают систему в соответ-ствии с имеющимся оборудованием и требованиями пользователя;

Тема 2.2. ОБРАБОТКА ПРЕРЫВАНИЙ. ОРГАНИЗАЦИЯ СИСТЕМЫ ПРЕРЫВАНИЙ

Принципы обработки прерываний операционными системами

Понятие прерывания было приведено выше (см. тему 1.3). Рассмотрим более подробно работу операционной системы по организации обработки прерываний.

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

Основными функциями супервизора прерываний являются:

· распознавание прерывания;

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

· корректное возвращение к выполнению прерванной программы.

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

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

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

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

Таким образом, сигнал на прерывание может вызвать его немедленное выполнение, постановку на очередь либо игнорирование. Реакция системы на прерывания определяется супервизором прерываний. Если супервизор прерываний дает команду на обработку поступившего прерывания, то выполняются следующие действия:

1. сохранение в дескрипторе (таблице) текущей задачи значений рабочих регистров;

2. определение адреса начала программы обработки прерывания, для этого процессор должен обратиться в таблицу адресов прерываний;

3. включение режима обработки прерываний;

4. выполнение программы – обработчика прерываний;

5. отключение режима обработки прерываний и восстановление из ранее созданной таблицы значений рабочих регистров для продолжения прерванного процесса.

Организация обработки прерываний в процессоре i80x86

Рассмотрим в качестве примера обработку прерываний в процессоре i80x86, являющегося базовым для персональных компьютеров серии IBM PC.

Как и в других системах, здесь используются прерывания двух видов – внутренние и внешние. Внешние прерывания инициируются сигналом какого-либо внешнего устройства. Существует два основных сигнала на прерывание от внешнего устройства: NMI (No Mask Interrupt – немаскируемое прерывание) и INTR (Interrupt Request – запрос на прерывание).

В качестве примера внутренних прерываний можно привести прерывание деления на 0, прерывания для трассировки программ, программные прерывания, возникающие по команде int (Interrupt – прерывание).

Система прерываний процессора i80x86 позволяет осуществить эффективный вычислительный процесс в двух режимах – реальном и защищенном. Команда int аналогично команды вызова процедуры (подпрограммы) сохраняет информацию о содержимом рабочих регистров прерванного вычислительного процесса и передает управление обработчику прерываний.

В реальном режиме адреса обработчиков считываются из специальной таблицы, в которой на каждый адрес отводится 4 байта, причем количество адресов (а значит и количество прерываний) не может превышать 256. Вызов прерывания осуществляется по его номеру, записанному в шестнадцатиричном коде, например, int 19h.

В защищенном режиме адреса прерываний недоступны для прямого чтения или записи вычислительным процессом. Для этого их размещают в таблице IDT (Interrupt Descriptor Table – таблица дескрипторов прерываний). Для получения адреса прерывания из этой таблицы программа должна обратиться к операционной системе.

С помощью прерываний в процессоре i80x86 операционная система выполняет значительное количество системных функций: чтение/запись файлов, управление вводом/выводом и др. Например, в следующем фрагменте

MOV AH,01

INT 21

INT 20

первая из инструкций прерывания int 21h обеспечивает считывание одного символа с клавиатуры, второе прерывание int 20h заканчивает выполнение программы и осуществляет возврат управления процессу, вызвавшему данную программу.

Тема 2.3. УПРАВЛЕНИЕ ПАМЯТЬЮ. РАСПРЕДЕЛЕНИЕ ПАМЯТИ. ЗАЩИТА ПАМЯТИ

Работа операционной системы по управлению и распределению памяти

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

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

· область памяти, занятая самой операционной системой;

· область памяти для размещения выполняемых прикладных программ;

· свободная область памяти.

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

Супервизор памяти при организации вычислительного процесса берет на себя ряд важных функций:

· выделение свободных областей памяти для хранения данных и команд их обработки;

· организация замещения модулей программы в основной и внешней памяти при недостаточном объеме основной памяти для выполнения поставленной задачи;

· кэширование памяти, т.е. создание двухуровневой (или многоуровневой) памяти с возможностью быстрого доступа к данным, размещенным в кэш-памяти (на более высоком уровне);

· установление соответствия между виртуальными адресами памяти и реальным физическим адресным пространством ячеек памяти;

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

Распределение памяти в операционной системе MS DOS

Рассмотрим в качестве примера распределение памяти в операционной системе MS DOS. Младшие адреса памяти используются для хранения таблицы прерываний (первые 1024 ячейки). Далее в память загружается ядро операционной системы – модуль, обеспечивающий операции ввода/вывода, модуль обработки прерываний и командный интерпретатор, содержащий инструкции по выполнению наиболее часто используемых команд MS DOS. Следующую область памяти занимают программы, обеспечивающие заданную конфигурацию системы, в основном это драйверы внешних устройств. После них располагаются программы пользователя.

Для выделения большего пространства программам пользователя и ускорения их работы командный интерпретатор (или командный процессор) разделен на две части – резидентную и транзитную. Транзитная часть размещается в области старших разрядов памяти. Если для размещения прикладной программы недостаточно места, то эта программа может перекрывать область транзитной части, которая в дальнейшем будет восстановлена. Этот метод позволяет выделить для прикладных программ объем основной памяти порядка 530 Кбайт из имеющихся 640 Кб.

Так как первые версии системы MS DOS разрабатывались для машин с небольшим объемом памяти, предусматривается механизм разбивки программы на части, каждая из которых загружается в память в момент ее выполнения (оверлейность). Ряд языков программирования предусматривает возможности для создания оверлейных программ.





Дата публикования: 2014-11-29; Прочитано: 472 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...