- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Часть 1. Введение в операционные системы
- •Таганрог
- •Оглавление
- •Часть 1. Введение в операционные системы 10
- •Введение Предмет, цель и задачи дисциплины
- •Структура дисциплины
- •Особенности дисциплины
- •Важнейшие моменты эволюции ос
- •Часть 1. Введение в операционные системы
- •1. Основные сведения об операционных системах
- •1.1. Основные элементы аппаратуры компьютера
- •1.2. Определения ос
- •( ( ( (Аппаратура) 1 ) 2 ) 3 ) 4 ) 5
- •1.3. Единицы работы и критерии эффективности вс, подчеркивающие роль ос
- •1.4. Режимы работы компьютеров, обеспечиваемые ос
- •1.5. Функции ос
- •1.6. Классификация ос
- •1.7. Основные принципы построения ос
- •1.8. Требования, предъявляемые к современным ос
- •1.9. Тенденции развития ос на современном этапе
- •1.10. Контрольные вопросы и задания
- •2. Концептуальные основы ос
- •2.1. Ресурс
- •2.1.1. Понятие и определения ресурса
- •2.1.2. Классификация и свойства ресурсов
- •2.2. Процесс
- •2.2.1. Понятие и определения процесса
- •2.2.2. Состояния процесса
- •2.2.3. Виды, классификация и свойства процессов
- •2.2.4. Отношения между взаимосвязанными процессами
- •2.2.5. Поток
- •2.3. Функциональные компоненты ос
- •2.3.1. Подсистема управления процессами
- •2.3.2. Подсистема управления памятью
- •2.3.3. Подсистемы управления файлами и увв
- •2.3.4. Средства защиты данных и администрирования
- •2.3.5. Интерфейс прикладного программирования
- •2.4. Концепция прерывания
- •2.4.1. Назначение и типы прерываний
- •2.4.2. Механизм прерываний
- •2.4.3. Программные прерывания
- •2.5. Концепция виртуализации
- •2.6. Дисциплины распределения ресурсов, используемые в ос
- •2.6.1. Понятия запроса, очереди, дисциплины распределения ресурса
- •2.6.2. Классические дрр
- •2.7. Средства взаимодействия пользователя с компьютером в среде ос
- •2.8. Контрольные вопросы и задания
- •Список сокращений к части 1
- •Глоссарий к части 1
- •Литература к части 1
- •Приложения Приложение 1. Описание дисциплины «Операционные системы»
- •Приложение 2. Взаимосвязь и особенности популярных ос
- •Приложение 3. Тестовые задания по дисциплине «Операционные системы». Часть 1. Введение в операционные системы
- •Основы операционных систем Учебное пособие
- •Часть 1. Введение в операционные системы
2.4.3. Программные прерывания
Программное прерывание реализует один из способов перехода на подпрограмму с помощью специальной инструкции процессора, например, INT в процессорах Intel Pentium. При выполнении команды программного прерывания процессор отрабатывает ту же последовательность действий, но только происходит это в предсказуемой точке программы – там, где программист поместил данную команду [2].
Практически все современные процессоры имеют в своей системе команд инструкции программных прерываний. Одной из причин их появления является то, что их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур. Это объясняется тем, что разработчики процессора обычно резервируют для обработки прерываний небольшое число возможных подпрограмм. Поэтому длина операнда в команде программного прерывания, который указывает на нужную подпрограмму, меньше, чем в команде CALL перехода на эту подпрограмму. Например, в процессоре x86 предусмотрена возможность применения 256 программ обработки прерываний, поэтому в инструкции INT операнд имеет длину в 1 байт. Значение операнда команды INT просто является индексом в таблице из 256 адресов подпрограмм обработки прерываний, один из которых и используется для перехода по команде INT. А при использовании команды CALL потребовался бы уже код длиной в 2 или 4 байта. Другой причиной применения программных прерываний вместо обычных инструкций вызова подпрограмм является возможность смены пользовательского режима на привилегированный одновременно с вызовом процедуры [2].
В результате программные прерывания часто используются для выполнения ограниченного числа вызовов функций ядра ОС – системных вызовов.
2.5. Концепция виртуализации
Виртуальный ресурс – кажущийся, возможный, не имеющий физического воплощения или воспринимаемый иначе, чем он реализован.
Виртуализация – переход на более высокий уровень абстракции в управлении конкретными конфигурациями ВС. Построение виртуальных ресурсов, их распределение и использование свойственны любой ОС [1-4, 10]. Концепция виртуализации
устраняет конфликты при управлении процессами и распределении ресурсов в условиях нехватки ресурсов;
облегчает работу пользователя с системой;
освобождает пользователя от рутинных процедур при обращении к ограниченным физическим ресурсам.
Для осуществления виртуализации нужна централизованная схема распределения ресурсов. При виртуализации ресурсов получаются две формы «обмана» пользователей [10]:
обман 1: ресурс реально не существует или существует, но с ухудшенными характеристиками;
обман 2: для нескольких параллельных процессов создается иллюзия одновременного использования того, что в реальной системе существовать не может.
Такой «обман» преследует вполне благородные цели – предоставить пользователям ресурсы с характеристиками, в наибольшей степени их устраивающими, и снять ограничение на количество распределяемых ресурсов, что позволит повысить скорость развития процессов и гибкость управления процессами в том или ином режиме мультипрограммной обработки.
Примеры виртуализации.
Построение на одном реальном таймере нескольких виртуальных – обман 2: для параллельных процессов используется много таймеров.
Построение на одном реальном канале нескольких виртуальных – обман 2: для параллельных процессов используется много каналов.
Виртуализация УВВ – обман 1: есть требуемое устройство. На базе реального УВВ с лучшими характеристиками моделируется работа УВВ с худшими характеристиками. Для организации виртуального флоппи-диска выбирается пространство реального жестокого диска, с помощью которого моделируется виртуальный флоппи-диск. Еще лучше виртуальный диск в ОП. Его достоинством является самая высокая скорость работы, а недостаток состоит в том, что он работает только до серьезного сбоя или перезагрузки ОС.
Нулевое устройство – обман 1: есть устройство для вывода. Это «заглушка» для псевдовывода в разных ОС (например, в UNIX).
Спулинг принтера – обман 2: для параллельных процессов есть много принтеров. Термин «спулинг» образован от английского simultaneous peripheral operation on-line (SPOOL). Принтер представляет последовательно используемый ресурс, который обычно замедляет развитие параллельных процессов, так как часто оказывается не во время занят. Реализация спулинга имеет следующие особенности [2]:
каждый процесс получает свое виртуальное устройство вывода;
оно моделируется областью на жестком диске, то есть образуется буфер (рис.2.6). При этом запись в буфер производится гораздо быстрее, чем вывод на принтер;
фактическая выдача информации на (единственный) реальный принтер произойдет один раз, когда окончатся все процессы, связанные с данным буфером;
при мультипрограммной работе в системе может существовать несколько буферов, как входных, так и выходных. Моменты их заполнения постоянно меняются;
для всех входных и выходных буферов организуются специальные очереди обслуживания, что обеспечивает требуемый порядок обслуживания.
Рис.2.6. Образование буфера
Со спулингом ОС работает эффективнее, поскольку операции ввода-вывода, виртуальные по своей сути, выполняются быстрее и не задерживают развития процессов из-за недоступности реального УВВ. Можно спланировать и поддерживать равномерную загрузку УВВ.
Приведенные примеры 1–5 иллюстрируют возможности построения и использования виртуальных ресурсов на базе реальных:
каждый виртуальный ресурс моделируется некоторым процессом;
управление этим процессом производится в составе специальной системы – распределителя эластичного ресурса, на базе которого строится один или несколько виртуальных ресурсов;
для построения виртуальных ресурсов используются (дополнительные) реальные ресурсы, распределяемые специальным образом;
при построении нескольких виртуальных ресурсов нужно в составе распределителя реализовать определенные дисциплины распределения виртуальных ресурсов среди процессов-потребителей.
Далее рассмотрим два самых значимых примера виртуализации.
Виртуальная память – обман 1: объем ОП неограничен. ОП и внешняя память (или ее часть) объединяются в виртуальную память, общий объем которой ограничивается только возможностями адресации. Для адресации важно число разрядов адресной шины:
24-разрядная шина позволяет адресовать до 16 Мбайт (224 байт = 2(4+10+10) байт = 24*210*210 байт = 16 Мбайт) памяти;
32-разрядная – до 4 Гбайт (232 байт = 2(2+10+10+10) байт = 22*210*210 *210 байт = 4 Гбайт) памяти.
Все пространство адресуемой виртуальной памяти в простейшем случае делится на страницы определенного размера, например, по 16 Кбайт. Если требуемой программе страницы нет в ОП, выполнятся динамическое замещение страниц в ОП (страничный обмен между ОП и внешней памятью) так, что нужные страницы загружаются в ОП, а ненужные выгружаются на диск. Кроме страниц для этого могут использоваться сегменты.
Наиболее законченным и естественным проявлением концепции виртуализации является понятие «виртуальная машина» (ВМ). По сути, любая ОС, которая распределяет ресурсы и управляет процессами на базе скрытой аппаратуры, уже создает у пользователя видимость ВМ. Но степень восприятия характеристик ВМ у пользователей может существенно различаться. Пользователь может воспринимать ВМ в одном из двух вариантов:
языковое представление. Главное внимание сосредоточено на языке программирования, а ВМ воспринимается как «черный ящик», выполняющий программы. Структура ВМ пользователя не интересует;
архитектурное представление. Главное здесь – характеристики ВМ. ВМ воспроизводит архитектуру реальной машины, но имеет новые, улучшенные или даже идеальные характеристики (бесконечная ОП, один или несколько процессоров, управляемых средствами языка программирования, произвольное число УВВ с удобным способом доступа, представления информации, без ограничений на объем передаваемой или хранимой информации).
Степень приближения к идеальной машине может варьироваться. Чем больше ВМ пользователя, реализуемая средствами конкретной ОС на базе конкретной аппаратной части, приближена к идеальной по характеристикам машине, а значит, чем больше ее архитектурно-логические характеристики отличны от реальных, тем больше ее степень виртуальности.