- •Конспект по курсу лекций Операционные системы
- •Структура вычислительной системы
- •Аппаратный уровень вычислительной системы
- •Системы программирования
- •Модель организации прерываний с использованием регистра «слово состояние процессора»
- •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Й процесс:
- •Механизм сокетов
- •Типы сокетов.
- •Функция создания сокета
- •Запрос на соединение
- •Прослушивание сокета
- •Подтверждение соединения
- •Прием и передача данных
- •Закрытие сокета
- •Пример. Работа с локальными сокетами
- •Пример работы с сокетами в рамках сети.
Системный стек
Использование системного стека может частично решать проблему минимизации накладных расходов при смене обрабатываемой программы и/или обработке прерываний. Частично стек реализуется на регистрах, таким образом существенно ускоряется работа. Что лучше использовать: стек или регистры? Однозначного ответа нет.
Виртуальная память.
Давайте рассмотрим схему подготовки исполняемого кода. Мы имеем исходный текст, который обрабатываем компилятором. В результате получается объектный модуль. Из достаточного количества объектных модулей с помощью редактора внешних связей сформировали исполнительный модуль. И потом когда-то этот исполнительный модуль мы запустим на выполнение. Т.е. исполнительный модуль – это есть уже программа в коде машины, которая использует определенную адресацию. Эта адресация называется программная или логическая или виртуальная адресация – т.е. те адреса, которые используются в программе, они программные, логические или виртуальные адреса. При выполнении программы имеется проблема установления соответствия между виртуальными адресами и реальными адресами ОП (физическими адресами). Аппарат– это аппаратные средства компьютера, которые обеспечивают преобразование виртуальных адресов, используемых в программе в физические адреса ОП, в которых размещена данная программа при выполнении. Соответственно за время развития вычислительной техники была целая совокупность моделей организации виртуальной памяти. Т.е. моделей аппаратной реализации вот этого установления соответствия, такого чтобы программа, которая уже откомпилирована и собрана, в относительно произвольный момент времени могла спокойно выполняться на компьютере без преобразования.
1-м способом организации виртуальной памяти можно считать организацию базирования.
Базирование адресов.
Аппарат виртуальной памяти – аппаратные средства компьютера, обеспечивающие преобразование (установление соответствия) программных адресов, используемых в программе адресам физической памяти в которой размещена программа при выполнении.
Базирование адресов – реализация одной из моделей аппарата виртуальной памяти. При базировании выделяется регистр, в котором будет храниться адрес, начиная с которого размещается программа. Проблема: программы должны располагаться в одном блоке.
В <Rбазы> загружается адрес начала программы в памяти. Исполняемые адреса, используемые в модуле будут автоматически преобразовываться в адреса физического размещения данных путем их сложения с регистром Rбаз..
Базирование адресов – решение проблемы перемещаемости программы по ОЗУ.
Благодаря базированию адресов виртуальное адресное пространство программы отображается в физическую память взаимнооднозначно.
Аппарат базирования не решает проблемы фрагментации.
Страничная память.
Пусть одна система команд ЭВМ позволяет адресовать и использовать m страниц размером 2k каждая.
Физическое адресное пространство, в общем случае может иметь произвольное число физических страниц. Структура физического и виртуального адресов будут различаться размером поля номер страницы.
В ЦП ЭВМ имеется аппаратная таблица страниц.
Исполнительный физический адрес будет отличаться от исполнительного виртуального адреса за счет поля ”номер страницы”.
Содержимое таблицы определяет соответствие виртуальной памяти физической для выполняющейся в данный момент программы/процесса. Соответствие определяется следующим образом: i-я строка таблицы соответствует i-й виртуальной странице.
При замене процесса таблицу надо менять.
Виртуальное адресное пространство – множество виртуальных страниц, доступных для использования в программе. Количество виртуальных страниц определяется размером поля «номер виртуальной страницы» в адресе.
Физическое адресное пространство – оперативная память, подключенная к данному компьютеру. Физическая память может иметь произвольный размер (число физических страниц может быть меньше, больше или равно числу виртуальных страниц).
Достоинства и недостатки аппарата виртуальной страничной памяти
«+» Частичное решение проблемы фрагментации ОЗУ
«+» Организация защиты памяти, а также свопирования страниц
«-» Необходимость наличия в ЦП аппаратной таблицы значительных размеров
Существуют регистры процессора, где каждой виртуальной странице ставится в соответствие реальная физическая. В процессе выполнения программы при каждом обращении в память по какому-то виртуальному адресу по регистру приписки заменяется номер виртуальной страницы на соответствующую физическую, по адресу которой и будет обращение в память. Может произойти прерывание, происходит замена одного процесса на другой. Страницы будут откачены на внешнюю память (свопинг) и будут ждать нового обращения. После обработки прерываний происходит проверка закачены ли страницы обратно.
