- •1.Лекция 1.Операционная система. Введение
- •1.1.Структура вычислительной системы
- •1.2.Что такое операционная система
- •1.2.1. Операционная система как виртуальная машина.
- •1.2.2.Операционная система как менеджер ресурсов
- •1.2.3.Операционная система как защитник пользователей и программ
- •1.2.4.Операционная система как постоянно функционирующее ядро
- •1.3.История эволюции вычислительных систем
- •1.3.1.Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
- •1.3.2.Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
- •1.3.3.Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •1.3.4.Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •1.4. Функции операционной системы.
- •1.5.Основные понятия, концепции ос
- •1.5.1.Системные вызовы
- •1.5.2.Прерывания
- •1.5.3.Исключительные ситуации
- •1.5.4.Файлы
- •1.6.Архитектурные особенности ос
- •1.6.1.Монолитное ядро
- •1.6.2.Многоуровневые или слоеные системы (Layered systems)
- •1.6.3.Виртуальные машины
- •1.6.4.Микроядерная архитектура
- •1.6.5.Смешанные системы
- •1.7.Классификация операционных систем
- •1.7.1.Реализация многозадачности
- •1.7.2.Поддержка многопользовательского режима
- •1.7.3.Многопроцессорная обработка
- •1.7.4.Системы реального времени
- •2 Процессы
- •2.1.Понятие процесса
- •2.2.Состояния процесса
- •2.3.Операции над процессами и связанные с ними понятия
- •2.3.1.Набор операций
- •2.3.2.Блок управления процессом (рсв Process Control Block) и контекст процесса
- •2.3.3.Одноразовые операции
- •2.3.4.Многоразовые операции
- •2.3.5.Переключение контекста
- •2.3.7.Нити исполнения
- •2.4.Заключение
- •3. Планирование процессов
- •3.1.Уровни планирования
- •3.2.Цели планирования
- •3.4. Критерии планирования
- •3.5.Вытесняющее и не вытесняющее планирование
- •3.5.Алгоритмы планирования
- •3.5.1.Планирование по принципу fifo
- •3.5.2.Циклическое планирование)
- •3.5.3. Планирование по принципу кратчайшее задание - первым
- •3.5.4.Гарантированное планирование
- •3.5.5.Приоритетное планирование
- •3.5.6.Многоуровневые очереди (Multilevel Queue)
- •3.5.7.Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •3.6.Заключение
- •4. Лекция: Кооперация процессов и основные аспекты ее логической организации
- •4.1.Взаимодействующие процессы
- •4.2.Средства обмена информацией
- •4.3.Логическая организация механизма передачи информации
- •4.4.Информационная валентность процессов и средств связи
- •4.5.Особенности передачи информации с помощью линий связи
- •4.5.1.Буферизация
- •4.5.2.Поток ввода/вывода и сообщения
- •4.5.3.Надежность средств связи
- •4.5.4.Завершение связи
- •4.6.Нити исполнения
- •4.7.Заключение
1.6.2.Многоуровневые или слоеные системы (Layered systems)
Многоуровневые системы представляют собой ряд уровней с хорошо определенными связями между ними. Многоуровневую систему можно получить, если провести структуризацию работы вычислительной системы с точки зрения выполняемых функций. В слоеной системе объекты n-го уровня вызывают только объекты, уровень которых на единицу меньше. Нижним уровнем обычно является аппаратная часть, верхним уровнем – интерфейс пользователя. Чем ниже уровень модуля, тем более привилегированные команды и действия он может выполнять. Один из примеров слоеной структуры представлен на рисунке 2.
Рис. 2 Пример слоеной структуры
Слоеные структуры имеют свои преимущества и недостатки. Они хорошо реализуются, тестируются и модифицируются. Отладка начинается с нижнего слоя и проводится послойно. Если ошибка возникает, то она находится в тестируемом слое. При модификации можно заменить лишь изменяемый слой, не трогая остальные. Слоеные системы сложны для разработки. Их сложно структурировать, определять назначение слоев и их порядок. Слоеные системы менее эффективны, чем монолитные, поскольку для выполнения некоторых операций придется последовательно проходить все слои от верхнего до нижнего.
1.6.3.Виртуальные машины
Виртуальная машина отделяет пользователя от внутреннего устройства компьютера. Пользователь работает с файлами, а не с магнитными головками и двигателем; с огромной виртуальной, а не ограниченной реальной оперативной памятью. Он работает со своей операционной системой и со своей аппаратной частью, его не интересует единственный он на машине пользователь или нет. При таком подходе операционная система создает виртуальную машину для каждого пользователя, который видит свою аппаратную часть, включая процессор, привилегированные и непривилегированные команды, устройства ввода-вывода, прерывания и т.д. Такой подход позволяет каждому пользователю загрузить свою операционную систему на виртуальную машину и делать с ней все, что душа пожелает. Вариант организации виртуальной машины изображен на рисунке 3.
Рис. 3. Вариант виртуальной машины
Недостатком таких операционных систем является снижение эффективности виртуальных машин по сравнению с реальным компьютером. Преимущество заключается в использовании на одной вычислительной системе программ, написанных для разных операционных систем.
1.6.4.Микроядерная архитектура
При микроядерной архитектуре большинство составляющих системы являются самостоятельными программами, взаимодействие между которыми осуществляет микроядро. Микроядро работает в привилегированном режиме, обеспечивает взаимодействие между программами, планирует использование процессора, осуществляет первичную обработку прерываний, операции ввода-вывода и базовое управление памятью. Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.
Пример микроядерной архитектуры операционной системы представлен на рисунке 4.
Рис. 4. Микроядерная архитектура операционной системы
Основное достоинство микроядерной архитектуры – высокая степень модульности ядра операционной системы. Это упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. В микроядерной архитектуре значительно упрощен процесс отладки компонентов ядра, так как новая версия драйвера загружается без перезапуска операционной системы. Компоненты ядра операционной системы не отличаются от пользовательских программ, поэтому для их отладки применяют обычные средства. Микроядерная архитектура повышает надежность системы. Это связано с тем, что ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра. Недостатком микроядерной операционной структуры является появление дополнительных накладных расходов, связанных с передачей сообщений, что влияет на производительность, поэтому скорость работы микроядерной операционной системы зависит от результатов разбиения системы на компоненты. Чем меньше взаимодействий между компонентами системы, тем больше ее скорость.