- •Конспект по курсу лекций Операционные системы
- •Структура вычислительной системы
- •Аппаратный уровень вычислительной системы
- •Системы программирования
- •Модель организации прерываний с использованием регистра «слово состояние процессора»
- •3.6.1.1 Устройство последовательного доступа
- •Организация управления внешними устройствами
- •Иерархия памяти
- •Аппаратная поддержка ос и систем программирования
- •Некоторые проблемы
- •1. Вложенные обращения к подпрограммам
- •2. Накладные расходы при смене обрабатываемой программы:
- •4. Фрагментация памяти
- •4.2.1 Регистровые окна ( register window )
- •Системный стек
- •Виртуальная память.
- •Базирование адресов.
- •Страничная память.
- •Многомашинные, многопроцессорные ассоциации.
- •Терминальные комплексы
- •Компьютерные сети.
- •Семейство протоколов tcp/ip
- •Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- •Транспортный уровень
- •Уровень прикладных программ
- •Сетевые, распределенные ос
- •Операционные системы Основные понятия
- •Структура ос.
- •Модельная ос
- •Жизненный цикл процесса
- •Типы операционных систем
- •Системы разделения времени
- •Управление внешними устройствами. Архитектура.
- •Программное управление внешними устройствами
- •Буферизация обмена
- •Планирование дисковых обменов
- •Raid системы.
- •Файлы устройств, драйверы
- •Управление оперативной памятью
- •Двухуровневая организация
- •Структурная организация файлов
- •Атрибуты файла
- •Типовые программные интерфейсы работы с файлами
- •Подходы в практической реализации файловой системы Структура «системного» диска
- •Модели реализации файлов Непрерывные файлы
- •Файлы, имеющие организацию связанного списка.
- •Индексные узлы (дескрипторы)
- •Модели организации каталогов
- •Варианты соответствия: имя файла – содержимое файла
- •Координация использования пространства внешней памяти
- •Учет свободных блоков файловой системы Связный список свободных блоков
- •Использование битового массива
- •Организация фс Unix
- •Логическая структура каталогов
- •Внутренняя организация фс Модель версии System V Структура фс
- •Работа с массивами номеров свободных блоков
- •Работа с массивом свободных ид
- •Индексные дескрипторы
- •Адресация блоков файла
- •Файл каталог
- •Установление связей
- •Недостатки фс модели версии System V
- •Модель версии ffs bsd
- •Стратегии размещения
- •Внутренняя организация блоков
- •Структура каталога ffs
- •Понятие «процесс».
- •Процессы в ос Unix Системно-ориентированное определение процесса
- •Базовые средства организации и управления процессами
- •Семейство системных вызовов exec()
- •Использование схемы fork-exec
- •Формирование процессов 0 и 1
- •. Планирование Основные задачи планирования
- •Планирование очереди процессов на начало обработки
- •Кванты постоянной длины.
- •Кванты переменной длины
- •Класс подходов, использующих линейно возрастающий приоритет.
- •Разновидности круговорота.
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Общие критерии для сравнения алгоритмов планирования
- •Планирование в ос unix
- •Планирование в Windows nt.
- •Планирование свопинга в ос Unix
- •Взаимодействие процессов: синхронизация, тупики Параллельные процессы
- •Проблемы организации взаимного исключения
- •Тупики (deadlocks)
- •Способы реализации взаимного исключения
- •Семафоры Дейкстры
- •Мониторы
- •Обмен сообщениями
- •Классические задачи синхронизации процессов
- •Задача «читателей и писателей»
- •Задача о «спящем парикмахере»
- •Реализация взаимодействия процессов
- •Сигналы
- •Системный вызов kill()
- •Системный вызов signal()
- •Пример 1.
- •Пример 2.
- •5 Пример. Программа “Будильник”.
- •Пример. Двухпроцессный вариант программы “Будильник”.
- •Пример. Использование канала.
- •Пример. Схема взаимодействия процессов с использованием канала.
- •Пример. Реализация конвейера.
- •Пример. Совместное использование сигналов и каналов – «пинг-понг».
- •Именованные каналы. Особенность именованных каналов в ос Unix.
- •Пример. «Клиент-сервер».
- •Межпроцессное взаимодействие, проводимое по модели «главный-подчинённый».
- •Системный вызов ptrace()
- •Общая схема трассировки процессов
- •Пример. Использование трассировки.
- •Система межпроцессного взаимодействия ipc.
- •Очередь сообщений
- •Системный вызов msgget()
- •Функция msgsnd()
- •Функция msgrcv()
- •Функция msgctl()
- •Пример. Использование очереди сообщений.
- •Пример. Очередь сообщений. Модель «клиент-сервер».
- •Разделяемая память.
- •Пример. Работа с общей памятью в рамках одного процесса.
- •Семафоры
- •Пример. Использование разделяемой памяти и семафоров.
- •1Й процесс:
- •2Й процесс:
- •Механизм сокетов
- •Типы сокетов.
- •Функция создания сокета
- •Запрос на соединение
- •Прослушивание сокета
- •Подтверждение соединения
- •Прием и передача данных
- •Закрытие сокета
- •Пример. Работа с локальными сокетами
- •Пример работы с сокетами в рамках сети.
Структура ос.
Резидентная – постоянно находящаяся в памяти
Ядро (kernel) – резидентная часть ОС, работающая в режиме супервизора. («обычно» работает в режиме физической адресации).
API – набор функций, предоставляемых системному программисту, разрабатывающему прикладные программы, и ориентированные на организацию взаимодействия результирующей программы и вычислительной системы.
В ядре размещаются программы обработки прерываний и драйверы наиболее «ответственных» устройств. Это могут быть и физические, и виртуальные устройства. Например, в ядре могут располагаться драйверы файловой системы.
Динамически подгружаемые драйверы физических и виртуальных устройств- это драйверы, добавление которых в систему возможно «на ходу» без перекомпоновки программ ОС. Они могут являться резидентными и нерезидентными, а также могут работать как в режиме супервизора, так и в пользовательском режиме.
Системный вызов средство ОС, обеспечивающее возможность процессов обращаться к ОС за теми или иными функциями. Пример: создание/завершение процесса, создание канала взаимодействия между процессами и т.д.
При системном вызове основной исполняемый код – часть кода ядра. Вызов подпрограммы – исполняемый код не в ядре.Обычно системный вызов заменяется на специальное прерывание и потом управление передается ОС.
Монолитное ядро – ядро, которое включает в себя все возможности операционной системы, запускаются как единый процесс. Все функциональные компоненты ядра, имеют доступ ко всем внутренним файлам системы. При внесении изменений в монолитную систему все программы перекомпановываются и система перезагружается. Подсистема управления процессами: распределение памяти, планирование, взаимодействие процессов. Файловая подсистема: доступ к файлам.
Можно разделить систему на два уровня: пользовательский уровень, на котором есть штатное средство взаимодействия пользователя с системой для Unix’a. Соответственно внутри реализовано монолитное ядро. Т.е. ядро ОС Unix – это достаточно большой компонент, который собирается из разных частей (компонентов) и он включает в себя разные подсистемы: обеспечение взаимодействия процессами, управление памятью, планирование, файловую подсистему, драйверы разных устройств и т.д. и т.п. И все это является как одно единое целое, и какие-то изменения в этом монолитном большом ядре бывают достаточно трудоемки, как минимум для этого надо выполнять операцию пересборки ядра.
Микроядерная архитектура
Существует стационарное микроядро, которое обеспечивает минимальные функции ОС.
Функции микроядра: работа с адресным пространством, взаимодействие процессов, планирование.
Достоинства микроядерной архитектуры:
Единообразные интерфейсы, расширяемость, гибкость, переносимость, надежность, поддержка распределенных систем.
Недостаток – много накладных расходов, связанных с «перемещением»запроса до адресата.
Логические функции ОС
управление процессами
распределение времени ЦП, распределение ресурсов между процессами, создание и удаление процессов, межпроцессные связи, синхронизация процессов
управление ОП
ОС может реализовать различные стратегии управления ОП. Либо стратегия выделения фиксированного количества ОП под процесс, либо динамическое выделения памяти. Должен быть, соответствующий аппарат распределения памяти. Также должен быть аппарат защиты памяти.
В функции ОС также входит: размещение прикладных процессов, реализация виртуальной памяти, изоляция процессов, автоматическое размещение программ по памяти, средства для организации долгосрочного хранения информации.
планирование
Распределение квантов времени на работу с ЦП, внешними устройствами и т.п. между процессами при многопроцессном использовании
управление устройствами и ФС
Унификация способов доступа к информации, контроль доступа, управление редактированием файлов.
