- •Лабораторная работа № 5 моделирование процессов в операционной системе
- •1. Управление процессами
- •2. Синхронизация процессов
- •3. Планирование процессов
- •4. Вталкивание-выталкивание
- •5. Конфигурация вычислительной системы
- •6. Состояние процесса
- •7. Взаимодействие процессов в системе
- •8. Управление памятью (memory manager)
- •9. Управление файлами (File System). Семафорные операции
- •10. Пользовательские процессы
- •Порядок использования модели
- •1. Цель
- •2. Порядок использования модели
- •3. Общая организация моделируемой вычислительной системы
- •Общее задание для выполнения
- •Зависимость числа страничных сбоев от кванта процессорного времени
- •Оценка зависимости загрузки процессора от величины кванта времени
- •Индивидуальные задания для выполнения
1. Управление процессами
Текущее состояние псевдокомпьютера, предоставляемого пользователю, называется образом. Процесс - это выполнение образа. Образ состоит из: образа памяти, значений общих регистров, состояния открытых файлов, текущей директории и другой информации.
Образ процесса во время выполнения размещается в основной памяти. Образ может быть откачен на диск, если какому либо более приоритетному процессу потребуется место в основной памяти. Образ памяти состоит из трех сегментов:
Сегмент реентерабельных процедур |
Сегмент данных |
……………. |
Сегмент стека |
Рис.1. Образ памяти
Сегмент реентерабельных процедур может совместно использоваться несколькими процедурами - в первичной памяти такие разделяемые сегменты представляются единственной копией. Сегментами процедур система управляет централизованно при помощи таблицы процедур (рис. 2).
Рис. 2. Таблицы управления процессом
Каждый элемент таблицы содержит адреса сегмента как в первичной, так и во вторичной памяти. Когда процесс первый раз обращается к разделяемому сегменту, этот сегмент помещается во вторичную память и заводится элемент в таблице процедур с соответствующими адресами и счетчиком, указывающим число процессов, совместно использующих этот сегмент. Когда в счетчике окажется нуль, освобождается элемент таблицы и области первичной и вторичной памяти.
Сегмент данных располагается следом за сегментом процедур и может расти вниз. Он содержит данные, записываемые и считываемые только одним процессом. Системные данные, относящиеся к процессу, хранятся в отдельном сегменте фиксированного размера. Этот системный сегмент заканчивается вместе с процессом. Он содержит:
состояние регистров;
дескрипторы (описатели) открытых файлов;
данные для расчетов за использование машины;
область рабочих данных;
стек для системной фазы выполнения процесса.
Сам процесс к этому сегменту адресоваться не может. Когда процесс не активен, система хранит информацию о процессе в таблице процессов. В ней содержится имя процесса, расположение его сегментов и информация для планировщика.
Сегмент стека (рис.1) начинается со старшего адреса в виртуальном адресном пространстве и растет вверх по мере занесения в него информации при вызовах подпрограмм и прерываниях.
2. Синхронизация процессов
Синхронизация процессов осуществляется механизмом событий. Процессы ожидают событий. События представляются адресами соответствующих таблиц. Родительский процесс, ожидающий завершения одного из дочерних процессов, ожидает события, представленного адресом его собственного элемента таблицы своего родительского процесса.
3. Планирование процессов
Процессы выполняются в двух состояниях: либо в системном, либо в пользовательском. В пользовательском состоянии процесс имеет доступ к пользовательскому сегменту данных, а в системном - к системному сегменту. Главной целью планирования процессов в системе является обеспечение высокой реактивности для интерактивных пользователей. Планирование процессов происходит в соответствии с их приоритетами. Высший приоритет отдан процессу, который обрабатывает события и ожидания. События, связанные с работой дисков, получают следующий по старшинству приоритет. События, связанные с терминалами, временем суток и пользовательскими процессами, получают соответственно более низкие приоритеты. Все системные процессы имеют более высокий приоритет. Пользовательские приоритеты зависят от времени загрузки процессора. Чем больше процесс получает пользовательского времени, тем ниже его приоритет. Такой метод планирования обеспечивает хорошее время реакции во время диалога.