
- •Оглавление
- •1 Операционные системы. Общие понятия 6
- •2 Однопользовательские операционные системы 16
- •3 Сетевые операционные системы 18
- •4 Управление локальными ресурсами 23
- •5 Современные концепции и технологии проектирования операционных систем 60
- •Введение
- •1Операционные системы. Общие понятия
- •1.1Понятие и функции операционной системы
- •1.1.1Ос как расширенная машина
- •1.1.2Ос как система управления ресурсами
- •1.2Этапы развития ос
- •1.3Классификация ос
- •1.3.1Особенности алгоритмов управления ресурсами
- •Поддержка многозадачности
- •Поддержка многопользовательского режима
- •Вытесняющая и невытесняющая многозадачность
- •Поддержка многонитевости
- •Многопроцессорная обработка
- •1.3.2Особенности аппаратных платформ
- •1.3.3Особенности областей использования
- •1.3.4Особенности методов построения
- •2Однопользовательские операционные системы
- •2.1Структура однозадачной операционной системы
- •2.2Структура многозадачной операционной системы
- •3Сетевые операционные системы
- •3.1Структура сетевой операционной системы
- •3.2Одноранговые сетевые ос и ос выделенных серверов
- •4Управление локальными ресурсами
- •4.1Понятие ресурса
- •4.1.1Свойства и классификация ресурсов
- •4.1.2Действия над ресурсами
- •4.2Управление процессами
- •4.2.1Состояние процессов
- •4.2.2Алгоритмы планирования процессов
- •4.2.3Вытесняющая и невытесняющая многозадачность
- •4.2.4Нити
- •4.2.5Взаимодействие процессов Разделяемая память
- •Программные каналы
- •Системы, управляемые событиями
- •4.2.6Средства синхронизации процессов Проблема синхронизации
- •Критическая секция
- •4.3Управление памятью
- •4.3.1Типы адресов
- •4.3.2Методы распределения памяти без использования дискового пространства
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •4.3.3Методы распределения памяти с использованием дискового пространства Понятие виртуальной памяти
- •Страничное распределение
- •Сегментное распределение
- •Странично-сегментное распределение
- •Свопинг
- •4.3.4Иерархия запоминающих устройств. Принцип кэширования данных
- •4.4Управление вводом-выводом
- •4.4.1Физическая организация устройств ввода-вывода
- •4.4.2Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств, слой операционной системы
- •Пользовательский слой программного обеспечения
- •4.5Файловая система
- •4.5.1Имена файлов
- •4.5.2Типы файлов
- •4.5.3Логическая организация файла
- •4.5.4Физическая организация и адрес файла
- •4.5.5Права доступа к файлу
- •4.5.6Общая модель файловой системы
- •4.5.7Отображаемые в память файлы
- •4.5.8Современная архитектура файловой системы
- •5Современные концепции и технологии проектирования операционных систем
- •5.1Требования, предъявляемые к ос нового поколения
- •5.2Пользовательский интерфейс
- •5.2.1Интерфейс cli
- •5.2.2Интерфейс gui
- •5.3Операционная система Windows nt
- •5.3.1История создания
- •5.3.2Особенности Windows nt версий 4.0 и 5.0
- •5.3.3Требования к аппаратуре
- •5.3.4Области использования Windows nt
- •5.3.5Микроядерная структура Windows nt
- •5.3.6Планирование процессов и нитей
- •5.3.7Управление памятью
- •5.3.8Файловые системы Windows nt
- •Файловая система fat
- •Файловая система ntfs Структура ntfs
- •Короткие имена
- •Надежность ntfs
- •5.3.9Управление вводом-выводом в Windows nt
- •5.3.10Встроенная сетевая поддержка в Windows nt
- •5.3.11Доменная справочная служба Windows nt
- •5.3.12Служба каталогов Active Directory Общие сведения о службе каталогов
- •Архитектура Active Directory
- •Модель данных
- •Логическая структура
- •Модель защиты данных
- •Модель управления
- •Свойства Active Directory
- •Интеграция dns
- •Именование объектов
- •Доступ к Active Directory
- •Виртуальные контейнеры
- •Глобальный каталог
- •Безопасность
- •Репликация
- •Деревья и лес
- •Логическая структура
- •Публикация
- •Лабораторные работы по курсу «Операционные системы»
- •Управление файлами в ms dos
- •Основные отличия Windows от ms dos
- •Windows и объектно-ориентированное программирование
- •Принцип разделения ресурсов компьютера при работе нескольких задач в Windows
- •Динамически подключаемые библиотеки (dll) и принципы организации памяти Windows
- •Реестр Windows
- •Управление файлами в Windows
- •Общая организация традиционного ядра ос unix
- •Основные функции ядра
- •Принципы взаимодействия с ядром
- •Принципы обработки прерываний
- •Файловая система Linux
- •Задание на лабораторную работу
- •Состояние процессов
- •Алгоритмы планирования процессов
- •Взаимодействие и синхронизация процессов
- •Задание на лабораторную работу
- •Варианты заданий
- •Методы распределения памяти с использованием дискового пространства
- •Задание на лабораторную работу
- •Варианты заданий
- •Общая модель файловой системы
- •Физическая организация файла на устройстве внешней памяти
- •Файловая система fat
- •Файловая система ntfs
- •Файловая система ext2
- •Журналируемые файловые системы
- •Задание на лабораторную работу
- •Варианты заданий
- •Литература
Задание на лабораторную работу
Разработать программу, моделирующую один из алгоритмов управления процессами в соответствии с вариантом задания. При моделировании считать что:
моделированию подвергается однопроцессорная вычислительная система разделения времени;
общий объем памяти вычислительной системы составляет 64К;
ввод-вывод является разделяемым ресурсом, недопускающим одновременного использования несколькими процессами и требующий решения проблемы синхронизации процессов;
поступаемые на выполнение задачи содержатся в файлах, моделирующих процессы (формат смотри ниже);
вытеснение процесса из процессора приводит к сохранению информации о его состоянии в контексте процесса, который восстанавливается при последующем поступлении процесса в процессор;
вытеснение процесса из процессора также приводит к освобождению занимаемой им памяти;
пользователь может «загружать» в моделируемую систему новые задачи, порождающие процессы.
Предусмотреть возможность интерактивного слежения за состоянием вычислительной системы в процессе выполнения задач (состояние очередей «ОЖИДАНИЕ» и «ГОТОВНОСТЬ», приоритеты процессов, требования к ресурсом, состояние ПРОЦЕССОРА, состояние ВВОДА-ВЫВОДА, состояние ПАМЯТИ и т.д.).
Формат файла, моделирующего задачу:
ПАМЯТЬ-1000
ПРЦЕССОР-10
ВВОД-ВЫВОД-20
ПРЦЕССОР-12
...
ПРЦЕССОР-5
ВВОД-ВЫВОД-25
Где первая строка «ПАМЯТЬ» – определяет требования процесса на объем (в байтах) доступной памяти (если такового в системе на данный момент нет, то процесс поступает в очередь готовых). Остальные строки представляют собой поэтапное требование процесса в процессорном времени «ПРОЦЕССОР» (в секундах) и во времени ввода-вывода «ВВОД-ВЫВОД» (в секундах).
В отчете представить блок-схему функционирования вычислительной системы.
Варианты заданий
Вариант |
Алгоритм управления процессами |
1 |
Управление процессами на основе бесприоритетного квантования. Очередь готовых процессов – FIFO. Синхронизация процессов с использованием аппарата событий. |
2 |
Управление процессами на основе квантования. Очередь готовых процессов – с абсолютными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |
3 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием аппарата событий. |
4 |
Управление процессами на основе квантования. Очередь готовых процессов – LIFO. Квант времени, отводимый процессу, выбирается в соответствии с приоритетом процесса (приоритеты назначаются пользователем при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |
5 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются пользователем при загрузке соответствующей задачи). Квант времени, отводимый процессу, выбирается случайным образом в заданном диапазоне. Синхронизация процессов с использованием аппарата событий. |
6 |
Управление процессами на основе бесприоритетного квантования. Очередь готовых процессов – LIFO. Квант времени, отводимый процессу, равен среднему значению требований процессорного времени «ПРОЦЕССОР» соответствующей задачи. Синхронизация процессов с использованием блокирующих переменных. |
7 |
Управление процессами на основе квантования. Очередь готовых процессов – с абсолютными приоритетами. Приоритеты назначаются системой: процесс, предъявляющий минимальные требования к вводу-выводу, получает наивысший приоритет Синхронизация процессов с использованием аппарата событий. |
8 |
Управление процессами на основе квантования. Очередь готовых процессов – с относительными приоритетами (приоритеты назначаются системой случайным образом при загрузке соответствующей задачи). Синхронизация процессов с использованием блокирующих переменных. |
Лабораторная работа №3 «Моделирование алгоритмов управления локальным ресурсом «Память» в операционных системах»
Цель работы
Изучить основные алгоритмы управления памятью в операционных системах, разработать программную модель управления памятью в соответствии с вариантом задания.
Теоретические сведения
Более подробные сведения по данному вопросу можно получить в разделе «4.3. Управление памятью» настоящего учебного пособия.
Управление памятью
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого. Ниже рассмотрены основные алгоритмы управления памятью.
Методы распределения памяти без использования дискового пространства
1) Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь, либо в очередь к некоторому разделу. Подсистема управления памятью в этом случае выполняет следующие задачи: во-первых, сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел и, во-вторых, осуществляет загрузку программы и настройку адресов.
Достоинства метода: простота реализации.
Недостатки метода:
так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования ограничен числом разделов;
даже если программа имеет небольшой объем, она будет занимать весь раздел;
даже если объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
2) Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера.
Достоинства метода: обладает гораздо большей гибкостью чем предыдущий.
Недостаток метода: фрагментация памяти.
3) Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область. В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется «сжатием». Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц, а во втором – реже выполняется процедура сжатия.
Достоинства метода: более эффективное использование памяти
Недостатки метода: процедура сжатия может требовать значительного времени, что часто перевешивает преимущества данного метода.