- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Структура ос.
Как правило, под структурой объекта понимается совокупность компонент, определенных по какому-либо признаку и взаимосвязи между ними.
Функциональная структура – выполняемые функции. Программная – компоненты, программные компоненты, реализующие функции, организация их функционирования и взаимодействия. Любая программная система должна иметь понятную и рациональную структуру: разделяться на модули, имеющие законченное функциональное назначение и оговоренные правила взаимодействия (соглашения).
Программная структура ос.
Наиболее общим подходом к построению является разбиение всех модулей ОС на:
- ядро (выполняет основные системные функции по организации вычислительного процесса);
- вспомогательные модули.
Структура является многослойной. Каждый слой обслуживает вышестоящий с помощью функций, образующих межслойный интерфейс.
Ядро.
Модули ядра функционируют в привилегированном режиме, в котором разрешается выполнять команды процессора, недопустимые в пользовательском режиме. (Если такая команда появляется, то вырабатывается прерывание по привилегированной операции.)
Для IBM360 была команда modeset и далее можно было выполнять команды в режиме ядра.
Установка привилегированного режима поддержана (предустановленна) аппаратной частью компьютера.
В пользовательском режиме запрещено выполнять команды:
- управление системой (передача управления из пользовательского режима на ядро);
- управление вводом-выводом непосредственно внешним устройством;
- управление распределением памяти и её защитой.
Программная структура ядра.
Ядро состоит из двух частей:
Резидентная. Постоянно находится в ОП, не подвергается страничному обмену.
Нерезидентная. Модули могут находится в виртуальной памяти ядра и загружаться в реальную по мере необходимости или загружаться из системных областей файловой системы, в общем случае модуля ядра, является рентабельным (непрерывным). В некоторых ОС возможна установка маски прерывания, которая позволяет прервать исполнение модуля ядра.
Модули ядра могут быть повторно используемыми (в ходе выполнения модуля ядра в нём ничего не меняется). Адреса модулей ядра хранятся в системной таблице. Переход выполняется загрузкой адреса из системной таблицы. Передача параметров выполняется через один из регистров, в котором указан адрес списка параметров модуля (программному доступно в X86 – 0…14 регистров).
Разделение на резидентную и нерезидентную часть условно и в различных ОС осуществляется на основе различных подходов. В целях сокращения количества операций ввода-вывода наиболее часто используемые модули помещают в резидентную часть. В некоторых ОС существует инструмент оптимизации, который показывает, какая нагрузка на ввод-вывод и какие модули наиболее часто используются.
Если ОС позволяет осуществить сборку ядра перед инсталляцией, то на основе этих данных те или иные компоненты включаются в резидентную часть.
Ядро, как и ОС в целом, имеет многослойную программную структуру: модули по управлению средствами аппаратной поддержки устанавливаются в привилегированном режиме, управляет обработкой, обеспечивает защиту адресного пространства процессов друг от друга.
Машинозависимые модули отражают специфику аппаратной платформы. Этот слой экранирует основные компоненты ядра от специфики аппаратуры, что позволяет разрабатывать модули ядра как машинозависимые компоненты.
Базовые модули – слой выполняет наиболее примитивные операции ядра, является исполнительным механизмом модулей более верхних уровней (выполняет краткосрочное планирование организации вычислительного процесса).
Менеджеры ресурсов (диспетчеры процессов, ввода-вывода, ОП и т.д.) реализуют алгоритмы планирования, выполнения заданий и использования ресурсов системы (долгосрочное планирование).
Диспетчеризация – непосредственно выделяются ресурсы в виртуальную память.
Каждый диспетчер выполняет функции учёта, распределения и освобождения ресурсов, для выполнения тех или иных заданий обращаются к базовым модулям.
