- •Лекционный комплекс по дисциплине «Основы построения операционных систем»
- •Раздел 1. Классификация операционных систем
- •1. Введение. Классификация видов программного обеспечения.
- •2.Назначение и функции операционных систем.
- •3. Мультипрограммирование. Режим разделения времени.
- •4. Многопользовательский режим работы. Режимы реального времени.
- •4. Содержание лекции:
- •1.Универсальные операционные системы и ос специального назначения.
- •2. Классификация операционных систем.
- •3. Модульная структура построения ос и их переносимость.
- •4. Управление процессором.
- •Раздел 2. Организация и управление процессами
- •4. Содержание лекции:
- •1. Понятие процесса и ядра. Сегментация виртуального адресного пространства процесса.
- •2.Структура контекста процесса. Идентификатор и дескриптор процесса.
- •3.Диспетчеризация и синхронизация процессов.
- •4. Иерархия процессов. Понятие приоритета и очереди процессов.
- •4 Лекция
- •2.План лекции
- •5 Лекция
- •1.Тема лекции: Однозадачное и многозадачное выполнение процессов.
- •2.План лекции
- •4. Способы управления многопроцессорным решением задач.
- •Раздел 3. Управление вводом выводом
- •4. Содержание лекции:
- •2. Синхронный и асинхронный ввод-вывод.
- •3. Диспетчеризация ввода-вывода.
- •7 Лекция
- •2.План лекции
- •1. Произвольный и последовательный метод доступа.
- •2. Потоки ввода-вывода.
- •3. Способы защиты ввода-вывода.
- •Раздел 4. Файловая система
- •1.Тема лекция. Основные функции файловой системы. Компоненты файловой системы.
- •2.План лекции
- •4. Содержание лекции: Основные функции файловой системы.
- •2. Компоненты файловой системы.
- •1.Тема лекции. Способы организации файлов. Менеджер файловой системы. Сохранность и защита файлов
- •2.План лекции
- •1. Способы организации файлов.
- •2. Менеджер файловой системы.
- •3. Сохранность и защита файлов.
- •Раздел 5. Управление памятью
- •1.Тема лекции: Совместное использование памяти. Защита памяти. Функции доступа. Организация виртуальной памяти.
- •2.План лекции
- •4. Содержание лекции:
- •1. Совместное использование памяти.
- •2. Защита памяти.
- •3. Функции доступа.
- •4. Организация виртуальной памяти.
- •1.Тема лекции. Стратегии откачки и подкачки страниц Менеджер ресурса памяти. Стратегии распределения памяти.
- •2.План лекции
- •4. Содержание лекции:
- •1. Управление памятью. Совместное использование памяти
- •2. Защита памяти.
- •3. Механизм реализации виртуальной памяти.
- •1.Тема лекции. Стратегии откачки и подкачки страниц Менеджер ресурса памяти. Стратегии распределения памяти.
- •2.План лекции
- •4. Содержание лекции:
- •Раздел 6. Управление телекоммуникационным доступом
- •4. Содержание лекции:
- •1.Пользовательский интерфейс и оболочки.
- •2.План лекции
- •4. Содержание лекции:
- •3. Маршрутизация, буферизация и регистрация сообщений.
- •4. Удаленная обработка. Электронная почта.
- •2.План лекции
- •4. Содержание лекции:
- •6. Программные средства сетевой защиты информации.
3. Функции доступа.
Первым шагом в создании активного процесса является загрузка программы в оперативную память и создание образа процесса. Приложение состоит из ряда скомпилированных или ассемблированных модулей в виде объектного кода. Эти модули связываются для разрешения всех ссылок между ними, а также обращений к библиотечным подпрограммам (которые могут быть внедрены в программу или быть совместно используемым кодом, представляемым операционной системой). Основными функциями доступа и распределения оперативной памяти системы пользуются загрузчики и компоновщики. В их задачи входит организация размещения и связи между собой отдельных модулей программы(процесса).
Абсолютный загрузчик требует, чтобы данный загружаемый модуль располагался в одном и том же месте в памяти. Следовательно, в модуле, передаваемом для загрузки, все обращения должны быть к конкретным, или относительным, адресам основной памяти.
Рис. 7- Загрузка
Назначение определенных адресов ссылкам к памяти в программе может быть выполнено либо программистом, либо автоматически в процессе компиляции или ассемблирования. У такого подхода имеется ряд серьезных недостатков. Во-первых, каждый программист должен знать стратегию размещения модулей в основной памяти. Во-вторых, при любых изменениях в программе, которые включают вставку или удаление кода или данных, требуется соответствующим образом изменить все адреса. Поэтому желательно, чтобы все адреса в памяти были выражены символьно, с тем чтобы в процессе компиляции или ассемблирования разрешить эти символьные ссылки. Каждая ссылка на команду или элемент данных изначально представлена символом. При подготовке модуля к абсолютной загрузке ассемблер или компилятор преобразуют все эти ссылки в конкретные адреса.
Компоновщик получает в качестве входа набор объектных модулей и генерирует на их основе загружаемый модуль объединением множества модулей кода и данных для последующей передачи его загрузчику. В каждом объектном модуле могут иметься ссылки на память в других модулях. Каждая такая ссылка в нескомпонованном модуле может быть выражена только символьно. Компоновщик создает единый загружаемый модуль, который объединяет все отдельные о6ъектные модули. Kaждая ссылка из одного модуля в другой должна быть разрешена и транслирована из символьного адpeca в ссылку на ячейку памяти загружаемого модуля.
Природа компоновки адресов зависит от типа создаваемого модуля и времени компоновки. Если требуется создание перемещаемого модуля, то компоновка обычно выполняется следующим образом. Каждый скомпилированный объектный модуль создается со ссылками относительно начала объектного модуля. Все эти модули объединяются в единый перемещаемый загружаемый модуль, в котором все ссылки даны относительно начала единого модуля. Такой модуль можно использовать для переносимой загрузки или динамической загрузки времени исполнения.
Предположим, наступило время загрузки нового процесса в память. Операционная система начинает ее с размещения в памяти только одного или нескольких блоков, включая блок, содержащий начало программы. Часть располагающегося в некоторый момент времени в основной памяти, называется резидентным множеством процесса. Во время выполнения процесса все происходит, гак, как если бы все ссылки были только на резидентное множество процесса. При помощи таблицы сегментов или страниц процессор всегда может определить, располагается ли блок, к которому требуется обращение в основной памяти. Если процессор сталкивается с логическим адресом, который не находится в основной памяти, он генерирует прерывание, свидетельствующее об ошибке доступа к памяти. Операционная система переводит процесс в заблокированное состояние и получает управление.
Чтобы продолжить выполнение прерванного процесса, операционной системе необходимо загрузить в основную память блок, содержащий вызвавший проблемы логический адрес. Для этого операционная система использует запрос на чтение с диска (во время выполнения которого может продолжаться выполнение других процессов). После того как необходимый блок загружен в основную память, выполняется прерывание ввода-вывода, передающее управление операционной системе, которая, в свою очередь, переводит заблокированный процесс в состояние готовности.
