
- •Операционные системы (ос)
- •Назначение и функции ос [01-04]
- •Мультипрограммирование [05-08]
- •Режим работы и ос реального времени [13-16]
- •Универсальные операционные системы и ос специального назначения [17-20]
- •Сегментация виртуального адресного пространства процесса [29-32]
- •Диспетчеризация и синхронизация процессов [37-40]
- •Способы реализации мультипрограммирования [49-52]
- •Понятие прерывания [53-56]
- •Многопроцессорный режим работы [57-60]
- •Управление памятью [01, 05, …, 65]
- •Совместное использование памяти [02,06,...,66]
- •Защита памяти [03,07,...,67]
- •Механизм реализации виртуальной памяти [04,08,...,68]
- •Стратегия подкачки страниц [61-64]
- •Принципы построения и защита от сбоев и несанкционированного доступа [65-68]
- •Листинг 1. Классификация сбоев
- •Задача [01-72]
Режим работы и ос реального времени [13-16]
ОС могут принимать запросы от внешних источников, связанных с ВС, и реагировать на них через некоторое время отклика, которое складывается из времени латентности, времени, которое она тратит на распознавание запроса и переход к его обработчику и времени на обслуживание им источника. Если это время приемлемо и предсказуемо, то говорят, что ОС работает в режиме реального времени. Система реального времени состоит из набора обработчиков и диспетчера - распознавателя запросов. Он может не являться частью ОС, а просто опрашивать все возможные источники по кольцу. Но время отклика должно оставаться приемлемым и предсказуемым. ОС ЕС ЭВМ в штатном режиме имела время латентности порядка минуты. При использовании прикладной задачей пакета реального времени время отклика становилось приемлемым, но некоторые запросы оставались без обслуживания из-за ошибок синхронизации, которые исчезли после замены версии на исходную, от IBM. Вопрос связан с [17-20] и [21-24]. К ОС реального времени принято относить QNX, Windows SE, Scientific Linux CERN.
Универсальные операционные системы и ос специального назначения [17-20]
ВС/ВК создаются в расчёте на исполнение определённого спектра прикладного ПО, при этом предусматривается создание аппаратных предпосылок для разработки ОС, с которыми программы будут взаимодействовать в различных режимах. При разработке (обычно параллельной) аппаратных и программных компонентов создатели ОС стоят перед выбором в пользу общего, специального решения или линейки продуктов. Системы общего назначения могут иметь возможность настройки на различные режимы работы или одновременно предоставлять разные режимы нескольким группам пользователей. Тогда производители этих ОС объявляют их, в целях рекламы, «универсальными», хотя качество услуг в некоторых режимах при этом может ухудшаться, так как увеличиваются накладные расходы на размещение и исполнение задач самой ОС.. Для ВС/ВК специального назначения, например, встроенных систем или систем повышенной надёжности с дублированием и тернированием аппаратных средств создаются ОС специального назначения. В этих случаях для обработки узкого круга задач с применением специализированных программных или аппаратных средств в оптимизированных режимах некоторые компоненты универсальных ОС излишни. ОС UNIX задумывалась двумя разработчиками как специализированная система, но в результате удачных архитектурных решений стала универсальной. По признаку работоспособности режима реального времени ОС ЕС не была универсальной, а версия IBM была.
Классификация ОС +
Модульная структура построения ОС и их переносимость [21-24]
Классификация использует антонимы для назначения (общее/специальное), режимов обработки задач ([одно/много]задачные), доступа пользователей ([одно|много]пользовательские) и архитектуры резидентных модулей системы, в особенности, ядра (kernel), отвечающего, в частности, за взаимодействие с аппаратными ресурсами. Вследствие этого взаимодействия код ядра становится аппаратно-зависимым и подлежит повторной генерации при появлении новых устройств, в частности, при переносе на другую аппаратную платформу. Для облегчения переноса в составе ядра выделяют слой абстракции оборудования HAL и взаимодействующие с ним резидентное микроядро (microkernel) и драйверы устройств (kernel drivers). При переносе переписывается только HAL, исходные коды остальных подмодулей, обычно написанные на C, перекомпилируются. По признаку модульности ядра ОС делятся на микроядерные (например, Minix) и системы с монолитным ядром (например, Linux), которое надо перекомпилировать при появлении нового устройства, включив в него код драйвера. Кроме перечисленных классификационных признаков, ОС делятся на однопроцессорные и многопроцессорные (унитарные и распределённые), сетевые и изолированные, проприетарные и с открытым кодом. Кроме ядра, ОС содержит и другие модули, которые взаимодействуют с ним посредством системных вызовов. В Windows над ядром выделяют исполнительный слой Executive, через который происходит взаимодействие с прикладным ПО. В Общей информационной модели CIM перечислены 57 значений свойства OSType класса CIM_OperatingSystem, обозначающих типы ядер ОС, устанавливаемых на вычислительных узлах локальной сети: [Description("A integer indicating the type of operating system."): ToSubClass Amended, Values{"Unknown", "Other", "MACOS", "ATTUNIX", "DGUX", "DECNT", "Digital Unix", "OpenVMS", "HPUX", "AIX", "MVS", "OS400", "OS/2", "JavaVM", "MSDOS", "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE", "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX", "SCO UnixWare", "SCO OpenServer", "Sequent", "IRIX", "Solaris", "SunOS", "U6000", "ASERIES", "TandemNSK", "TandemNT", "BS2000", "LINUX", "Lynx", "XENIX", "VM/ESA", "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd", "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", "IxWorks", "VxWorks", "MiNT", "BeOS", "HP MPE", "NextStep", "PalmPilot", "Rhapsody", "Windows 2000", "Dedicated", "OS/390", "VSE", "TPF"}: ToSubClass Amended] uint16 OSType;
Управление процессором +
Понятие процесса и ядра [25-28]
Процессор (CPU) предназначен для выполнения машинных операций с данными в своих внутренних регистрах, регистрах оперативной памяти и внешних устройств, к которым он подключен. Операции кодируются в виде машинных инструкций, или команд, поступающих из оперативной памяти. ОС учитывают процессоры как логические устройства, содержащие один или несколько (в современных ПЭВМ обычно 2 или 4) логических процессоров. Для целей создания многозадачных ОС в процессорах предусматриваются несколько (2-4) режимов работы, в одном из которых, режиме пользователя (User mode), запрещено выполнение группы привилегированных команд управления режимом работы процессора и внешними устройствами. Привилегированные команды выполняются в режиме ядра (Kernel mode). Ядро управляет процессором, изменяя состояния его регистров управления и заполняя содержимое хранящихся в памяти таблиц дескрипторов, глобальной и локальных. Кроме машинных инструкций, на работу процессора влияют запросы прерываний. Обработка машинной инструкции (командный цикл процессора) содержит такты обработки прерывания, доставки и дешифрации команды, далее, в зависимости от типа команды, возможны такты доставки данных (операндов), операций АЛУ, обработки ошибок их выполнения и сохранения результатов, последним тактом является вычисление адреса следующей команды.
Процессор в каждый момент занят выполнением инструкций из некоторого потока управления (thread of execution) – группы команд, расположенных в области памяти, выделенной ядру, другой задаче ОС или задаче пользователя. Потоки ядра выполняют работу по обслуживанию задач ОС и пользователей, при учёте работ израсходованные ресурсы приписываются этим задачам с помощью понятия процесса. Процесс является логическим контейнером, содержащим хотя бы один поток и выделенные ядром ресурсы. Все потоки потенциально имеют доступ к ресурсам процесса через дескрипторы, отображённые ядром в виртуальное адресное пространство (ВАП) процесса, изолированное с помощью аппаратных механизмов от ВАП других процессов. Подсистема управления процессами ведёт их учёт по типам (рис. 1) в виде
Рис. 1 Представление ресурсов процесса в интерфейсе оператора Windows 7
таблицы процессов или линейного связанного списка. На рис. 1 видно, что эта подсистема получает информацию от подсистем управления памятью, вводом/выводом и объектами. Кроме того, ядро содержит диспетчер устройств, распределяющий между ними системные ресурсы прерываний, каналов прямого доступа к памяти, портов и диапазонов адресов памяти и связывающий с драйверами.