
- •8 Взаимодействие процессов 79
- •9 Синхронизация процессов 87
- •10 Тупиковые ситуации 101
- •11 Управление памятью 114
- •12 Управление виртуальной памятью 132
- •13 Интерфейс файловой системы 138
- •14 Некоторые аспекты Реализации файловой системы 156
- •Литература 166 введение
- •Понятие операционной системы
- •Контрольные вопросы
- •Организация компьютерной системы
- •Архитектура компьютера с общей шиной
- •Структура памяти
- •Структура ввода-вывода
- •Контрольные вопросы
- •Классификация Операционных Систем
- •Поддержка многопользовательского режима.
- •Поддержка многопоточности
- •Многопроцессорная обработка
- •Особенности областей использования
- •Контрольные вопросы
- •Функциональные компоненты операционной системы
- •Управление процессами
- •Управление памятью
- •Управление файлами и внешними устройствами
- •Безопасность и защита данных
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Контрольные вопросы
- •Структура операционной системы
- •Монолитные системы
- •Многоуровневые системы
- •Виртуальные машины
- •Экзоядро
- •Модель клиент-сервер
- •Контрольные вопросы
- •Процессы и потоки
- •Концепция процесса
- •Состояния процесса
- •Реализация процессов
- •Операции над процессами
- •1Создание процессов
- •2Завершение процессов
- •Контрольные вопросы
- •Планирование процессора
- •Планирование процессов. Очереди
- •Планировщики
- •Моменты перепланировки. Вытеснение
- •Переключение контекста
- •Диспетчеризация
- •Критерии планирования процессора
- •Стратегии планирования процессора
- •3Планирование в порядке поступления
- •Пример.
- •4Стратегия sjf
- •5Приоритетное планирование
- •6Карусельная стратегия планирования
- •7Очереди с обратной связью
- •8Гарантированное планирование
- •9Лотерейное планирование
- •10Планирование в системах реального времени
- •Планирование потоков
- •Оценка алгоритмов планирования
- •11Детерминированное моделирование
- •12Моделирование очередей
- •13Имитация
- •Контрольные вопросы
- •Взаимодействие процессов
- •Разделяемая память. Проблема производителя и потребителя
- •Взаимодействие путем передачи сообщений
- •14Буферизация
- •15Исключительные ситуации
- •Потерянные сообщения
- •Вызов удаленных процедур (rpc)
- •Контрольные вопросы
- •Синхронизация процессов
- •Взаимное исключение и критические участки
- •Синхронизация с помощью элементарных приемов нижнего уровня
- •16Запрещение прерываний
- •17Переменные блокировки
- •18Операция проверки и установки
- •Семафоры
- •19Использование семафоров
- •20Реализация семафоров
- •21Тупики и зависания
- •Классические проблемы синхронизации
- •22Проблема ограниченного буфера
- •23Проблема читателей и писателей
- •24Задача об обедающих философах
- •Двоичные семафоры
- •Сигналы
- •Контрольные вопросы
- •Тупиковые ситуации
- •Необходимые условия возникновения тупиков
- •Граф выделения и закрепления ресурсов
- •Методы решения проблемы тупиков
- •25Предотвращение тупиков
- •Взаимное исключение
- •Захват и ожидание
- •Отсутствие перераспределения
- •Условие кругового ожидания
- •26Обход тупиков
- •27Простейший алгоритм обхода тупика
- •28Алгоритм банкира
- •29Обнаружение тупиков
- •30Восстановление после тупика
- •Контрольные вопросы
- •Управление памятью
- •Функции операционной системы по управлению памятью
- •Типы адресов
- •Физическое и логическое адресное пространство
- •Связывание адресов
- •Динамическая загрузка
- •Динамическое связывание
- •Перекрытие программ в памяти
- •Свопинг
- •Смежное размещение процессов
- •31Простое непрерывное распределение
- •32Распределение с несколькими непрерывными разделами
- •Фрагментация
- •Страничная организация памяти
- •Сегментная организация памяти
- •Защита и совместное использование
- •Фрагментация
- •Сегментация в сочетании со страничной памятью
- •Контрольные вопросы
- •Управление виртуальной памятью
- •Подкачка страниц
- •Алгоритмы вытеснения страниц
- •33Случайный выбор (Random)
- •34«Первым пришел первым ушел» (fifo)
- •35Вытеснение по давности использования (lru)
- •36Вытеснение редко используемых страниц (lfu)
- •37Оптимальный алгоритм (opt)
- •Аномалии в алгоритмах страничной реализации
- •38«Толкотня» в памяти
- •39Аномалия Биледи
- •Эффективность и применимость виртуальной памяти
- •Пример.
- •Контрольные вопросы
- •Интерфейс файловой системы
- •Понятие файла. Атрибуты файла и операции с файлами
- •Операции над файлами
- •Типы файлов
- •Структура файлов
- •Методы доступа
- •40Последовательный метод доступа
- •41 Прямой метод доступа
- •42Другие методы доступа
- •Каталоги
- •Логическая структура каталога
- •43Одноуровневая структура каталога
- •44Двухуровневая структура каталога
- •45 Древовидная структура каталога
- •46Организация каталога в виде графа без циклов
- •47Организация каталога в виде произвольного (простого) графа
- •Проблемы защиты файлов
- •48Типы доступа
- •49Списки прав доступа
- •50Другие подходы к защите
- •Контрольные вопросы
- •Некоторые аспекты Реализации файловой системы
- •Общая структура файловой системы
- •Методы выделения дискового пространства
- •51Выделение непрерывной последовательностью блоков
- •52Связный список
- •53Таблица отображения файлов
- •54Индексные узлы
- •Управление свободным и занятым дисковым пространством
- •55Учет при помощи организации битового вектора
- •56Учет при помощи организации связного списка
- •57Размер блока
- •58Структура файловой системы на диске
- •Контрольные вопросы Литература
Структура памяти
Программа может выполняться компьютером только в том случае, если она размещена в оперативной (основной) памяти. Оперативная память – единственная большая область памяти, к которой компьютер может обращаться непосредственно. Это массив слов или байтов, размером от сотен тысяч до сотен миллионов. Каждое слово имеет свой собственный адрес. Обмен осуществляется с помощью команды загрузки содержимого памяти в регистр и выгрузки содержимого регистра в память. Кроме того, центральный процессор автоматически выбирает команды из ОП для выполнения.
Обычно, например, в компьютерах с фон Неймановской архитектурой, команда выбирается из ОП и размещается в специальном регистре команды (instruction register). Затем команда дешифруется, а операнды, если они есть, выбираются из ОП и размещаются в нескольких внутренних регистрах. После того как действия над операндами выполнены, результат может быть записан обратно в основную память.
В идеале хотелось бы, чтобы программы и данные находились в основной памяти. Однако постоянно хранить их там невозможно по следующим двум причинам:
основная память обычно слишком мала для размещения всех необходимых программ и данных;
содержимое основной памяти теряется при отключении питания.
Поэтому в большинстве компьютеров имеется так называемая вторичная память как продолжение основной, то есть внешние запоминающие устройства. Главное назначение вторичной памяти – длительное хранение больших массивов данных.
В качестве накопителя вторичной памяти обычно используется магнитный диск, на котором размещаются как программы, так и данные.
Все разнообразие запоминающих устройств компьютера может быть организовано в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости, изображенную на рис.2.2.
Многоуровневую схему используют следующим образом. Информация, которая находится в памяти верхнего уровня, обычно хранится также на более низких уровнях. Если процессор не обнаруживает нужную информацию на некотором уровне, он начинает искать ее на нижележащих уровнях. Когда нужная информация найдена, она переносится в более быстрые уровни.
Обычно в центральной части сосредоточены регистры процессора, основная память и кэш-память.
Система команд центрального процессора содержит команды, позволяющие работать с регистрами и основной памятью. Работа с кэш-памятью осуществляется на аппаратном уровне контроллером кэш-памяти. Для работы с вторичной (внешней) памятью нужна программа. Таким образом, программно-доступными являются основная и вторичная память, а также регистры центрального процессора. Кэш-память программно недоступна.
Рисунок 2.3 - Иерархия запоминающих устройств компьютера
Классический состав памяти центральной части включает:
регистры процессора (CPU registers);
основную (оперативную) память (main memory).
Метод доступа к адресуемым элементам памяти центральной части называется произвольным (random access). Это означает, что все элементы доступа равнодоступны и для доступа к ним не требуется просмотра других элементов (direct access), и время доступа не зависит от адреса (arbitrary access). На практике контроллер открывает доступ к содержимому регистра/ячейки, используя в качестве входной информации адрес регистра/ячейки. Причем последовательность адресов на вход контроллера может следовать в произвольном порядке.
Адресное пространство буферных запоминающих устройств ввода-вывода может быть частью адресного пространства основной памяти. Например, контроллер видеодисплея компьютеров IBM PC и Apple Macintosh.
Время доступа к ячейкам основной памяти в несколько раз больше, чем время доступа к регистрам. Поэтому часто, с целью уменьшения среднего времени доступа к памяти центральной части в архитектуру компьютера включают блок памяти, называемый кэш-память (cache-memory). Кэш-память обладает временем доступа равным или соизмеримым со временем доступа к регистрам. В кэш-память поблочно копируется информация из основной памяти. Эффективность кэш-памяти с точки зрения увеличения производительности во многом зависит от стратегии копирования. Вначале центральный процессор проверяет наличие требуемых данных в кэш-памяти, а затем в основной. Хорошая стратегия копирования обеспечивает нахождение информации в кэш-памяти в 80% - 99% случаев обращения процессора к памяти.
Необходимость вторичной памяти обусловлена двумя причинами:
емкость основной памяти недостаточна для хранения всех программ и данных;
основная память энергозависима и ее содержимое теряется после отключения напряжения питания.
В качестве накопителя вторичной памяти обычно используется магнитный диск. Накопитель на магнитном диске обычно состоит из нескольких дисков, покрытых слоем магнитного материала и расположенных на общей оси вращения. В процессе работы диски вращаются с постоянной скоростью. Информация наносится на поверхность магнитного материала побитно в виде концентрических окружностей, называемых дорожками (tracks). Любая дорожка содержит одинаковое количество информации. Дорожки разделены на секторы (sectors). Сектор является наименьшей адресуемой порцией информации для магнитного диска.
Запись/считывание данных осуществляется без остановки диска с помощью универсальных головок чтения/записи. Головки устанавливаются на соответствующую дорожку с помощью механизма доступа.
Накопители на магнитном диске отличаются количеством поверхностей, диаметром дисков, возможностью легкого извлечения накопителя из компьютера.