- •Операционные системы Оглавление
- •Введение. Общие сведения.
- •1.2 История вычислительной системы
- •1.2.1 Первый период 45 – 55 гг.
- •1.2.2 Второй период 55-60 гг.
- •1.2.3 Третий период 60 – 80 гг.
- •1.2.4 Четвертый период с 80-х годов по наст. Время (персональные компьютеры, сетевые и распределенные системы).
- •1.2.5 Итоги развития вс.
- •1.3 Основные понятия и концепции ос
- •1.3.1 Системные вызовы.
- •1.3.2 Программные прерывания.
- •1.3.3 Файл.
- •1.4 Процессы и потоки. Архитектурные особенности ос.
- •1.4.1 Монолитное ядро.
- •1.4.2 Слоеные системы (Layered Systems)
- •1.4.3 Виртуальные машины.
- •1.4.4 Микроядерная архитектура.
- •1.4.5 Смешанные системы.
- •1.5 Классификация ос
- •2. Процессы и их поддержка в ос.
- •2.1 Понятие процесса.
- •2.2 Состояние процесса.
- •2.3 Операции над процессами и связанные с ними понятия
- •2.3.1 Набор операций.
- •2.3.2 Процесс Control Block и контекст процесса.
- •2.3.3 Одноразовые операции.
- •2.3.4 Многоразовые операции над процессами.
- •2.3.5 Переключение контекста.
- •3.Планирование процесса.
- •3.1. Уровни планирования
- •3.2 Критерии планирования и требовании к алгоритмам.
- •3.3 Параметры планирования
- •3.4 Вытесняющие и невытесняющие планирования
- •3.5 Алгоритмы планирования
- •3.5.1FirstComeFirstServed
- •3.5.2 Round Robin
- •3.5.3ShortestJob–First
- •3.5.4 Гарантированное планирование
- •3.5.5 Приоритетное планирование
- •3.5.6 Многоуровневые очереди (multilevelQueue)
- •3.5.7 Многоуровневые очереди
- •4. Кооперация процессов и основные аспекты в её логической реализации.
- •4.1 Взаимодействующие процессы
- •4.2 Категории средств обмена информацией
- •4.3 Логическая организация механизма передачи информации
- •4.3.1 Установление связи
- •4.3.2 Информационная валентность процессов и средств связи.
- •4.3.3 Особенности передачи информации с помощью линии связи.
- •4.3.4 Надежность средств связи
- •4.3.5 Как завершается связь?
- •4.4 Потоки исполнения
- •5. Алгоритмы синхронизации
- •5.1 Interleaving race condition
- •5.2 Критическая секция
- •5.3 Программные алгоритмы организации взаимодействия процессов
- •5.3.1 Требования, предъявляемые к алгоритму.
- •5.3.2 Запрет прерываний
- •7.8.2 Недостатки алгоритма банкира
- •8.2 Логическая память
- •8.3 Связывание адресов
- •8.4 Функции системы управления памятью
- •8.6 Страничная память
- •8.7 Сегментная и сегментно-страничная организация памяти
- •9. Виртуальная память
- •9.1 Понятие виртуальной памяти
- •9.2 Архитектурные средства поддержки виртуальной памяти
8.3 Связывание адресов
Логическое и физическое адресные пространства ни по организации, ни по размеру не соответствуют друг другу => процессор и ОС д/б способны отобразить ссылки на адреса в коде программы в реальные физические адреса, соответствующие текущему положению программы в основной памяти. Такое отображение адресов называют трансляцией(привязкой адреса или связыванием адресов).
Связывание логического адреса с физическим д/б осуществлено до начала выполнения соответствующей команды или в момент его выполнения. Таким образом, привязка инструкции и данных к памяти м/б сделана в следующий момент:
Этап компиляции – когда знаем куда загружать
Этап загрузки – отсутствует информация о размещении программ на стадии компиляции, окончательное связывание откладывается до момента загрузки
Этап выполнения – если процесс м/б перемещен во время выполнения из одной области памяти в другую, связывание откладывается до стадии выполнения
8.4 Функции системы управления памятью
При использовании памяти ОС должна выполнять следующие функции:
Отображать адрес пространства процесса (логический адрес) на конкретную область оперативной памяти
Распределение памяти между конкурирующими процессами
Контроль доступа к адресным пространствам процессора
Выгрузка процессов во внешнюю память, если оперативной памяти не достаточно
Учет свободной и занятой памяти
8.5 Простейшие схемы управления памятью
8.5.1 Схема с фиксированными разделами
|
|
|
ОС |
8.5.1.2 Овирлейная (overlay) структура
Если размер логического адресного пространства процесса превышает размер выделенной ему оперативной памяти.
Основная идея:держать в памяти только те инструкции программы, которые нужны в данный момент.
8.5.4 Динамическое распределение памяти (swapping)
Swapping– ситуация, когда для увеличения скорости работы ОС один из процессов выгружается во внешнюю память. Выгруженный процесс со временем д/б возвращен в оперативную память и может возвращаться либо в старый раздел, либо в новый раздел памяти.
Swappingсвязан с системой планирования заданий.
8.5.5 Схема с переменными разделами
Когда разделы памяти выделялись для каких-то задач и впоследствии не изменялись – схема с фиксированными разделами. Возможна ситуация когда распределение памяти осуществляется динамически. В этом случае все процессы размещаются в памяти целиком, и каждый процесс занимает столько памяти, сколько ему необходимо для его размещения.
|
|
|
|
|
|
|
Р3 |
Р3 | |||||
Р3 |
Р2 |
| ||||
Р1 |
Р1 |
Р1 | ||||
ОС |
ОС |
ОС |
ОС |
Возможны три стратегии размещения процессов в памяти с переменными разделами:
Стратегия первого подходящего (First fit) – процесс помещается в первый подходящий по размеру раздел
Стратегия наиболее подходящего (Best fit) – процесс помещается в тот свободный раздел, в котором меньше всего остается свободного места
Стратегия наименее подходящего (Worstfit) – вновь поступающая задача размещается в самом большом разделе; расчет:
на то, что в большом разделе останется достаточно памяти для других задач;
на то, что можно быстрее разместить задачу в разделе
Эти стратегии используются при загрузке файлов на диски.
Типовой цикл работы менеджера памяти следующий:
Анализ запроса на выделение свободного участка
Выбор среди имеющихся свободных участков памяти для загрузки в него поступающего процесса
Загрузка процесса в выбранный раздел
Изменение таблиц учета свободных и занятых участков памяти
Всегда остаются незанятые участки памяти – фрагментация (внешняя). С точки зрения фрагментации метод наиболее подходящего наиболее вреден. Одно из решений проблемы внешней фрагментации – сжатие, т.е. перемещение всех незанятых участков памяти либо в сторону ОС, либо к другому концу памяти.
Идеальный вариант – фрагментация должна отсутствовать.