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

37. Операционная система. Понятие ос; основные функции ос; программно-аппаратные средства поддержки режима мультипрограммирования.

а) Понятие ОС

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

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

  2. рациональное управление ресурсами компьютера ведущее к повышению эффективности его использования.

Единственным средством непосредственного управления работой ЭВМ является использования языка машинных команд, которые могут восприниматься и интерпретироваться процессором без дополнительной обработки.

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

б) Основные функции ОС:

  • Загрузка приложений в оперативную память и их выполнение;

  • Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);

  • Управление оперативной памятью (распределение между процессами, виртуальная память);

  • Управление доступом к данным на энергонезависимых носителях (таких как Жёсткий диск, Компакт-диск и т. д.), как правило с помощью файловой системы;

  • Пользовательский интерфейс;

  • Сетевые операции, поддержка стека протоколов

Дополнительные функции:

  • Параллельное или псевдопараллельное выполнение задач (многозадачность);

  • Взаимодействие между процессами: обмен данными, взаимная синхронизация;

  • Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений;

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

в) программно-аппаратные средства поддержки режима мультипрограммирования

Режим мультипрограммирования – это режим работы компьютера, при котором в

памяти компьютера одновременно находятся и поочередно выполняются несколько

программ.

1) Время процессора (CPU).

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

Захват процессора одной программой

Основными методами решения проблемы является квантование времени процессора и использование системы прерываний.

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

Для прекращения работы программы используется аппаратно реализуемая функция процессора, называемая прерыванием.

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

Переключение процессора с выполнения одной программы на другую

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

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

Централизация управления устройствами

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

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

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

  • Для предотвращения использования прикладными программами привилегированных команд используются два режима работы процессора – режим пользователя и режим ядра (супервизора). В режиме пользователя могут выполняться только обычные команды, а в режиме ядра обычные и привилегированные команды. ОС преимущественно работает в режиме ядра.

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

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

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

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

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

2) Основная память.

При одновременном нахождении в памяти нескольких программ возникает необходимость решения двух следующих проблем:

  • Управление размещением программ в памяти.

  • Защита программ друг от друга, а ядро системы от всех них.

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

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

При выполнении программы виртуальные адреса должны быть преобразованы в физические (исполнительные) адреса. Преобразование адресов выполняется двумя основными способами:

• При загрузке программы в память выполняется настройка ее по месту.

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

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

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

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

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

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

При переключении программ выполняется перезагрузка базовых и предельных регистров. Кроме того, переключение активности требует и перезагрузку кэш-памяти.

Существенно снизить загрузку процессора позволяет использование специального контроллера прямого доступа к памяти (DMA, Direct Memory Access), который управляет потоком битов между оперативной памятью и некоторыми контроллерами без постоянного вмешательства центрального процессора. Процессор вызывает микросхему DMA, говорит ей, сколько байтов нужно передать, сообщает адреса устройства и памяти, а также направление передачи данных и позволяет дальше действовать ей самой. По завершении работы DMA инициирует прерывание

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