- •Вопросы для подготовки к экзамену по дисциплине «Операционные системы»
- •Тематический план
- •Лекция 1 (2/2) введение
- •В будущем:
- •Раздел 1. Основы теории операционных систем
- •Тема 1.1 Общие сведения об операционных системах
- •1. Системы пакетной обработки,
- •2.Системы разделения времени
- •3. Системы реального времени.
- •2. Мультипрограммирование в системах разделения времени
- •3. Мультипрограммирование в системах реального времени
- •Требования к ос
- •Тема 1.1 Общие сведения об операционных системах (продолжение)
- •Тема 1.2 Интерфейс пользователя
- •Тема 1.3 Операционное окружение
- •1. Основная ф-ция ос: ос как виртуальная машина
- •Раздел 2. Машинно-зависимые свойства
- •Тема 2.1 Архитектурные особенности модели микропроцессорной системы семейства Pentium.
- •С истемная магистраль данных (шина)
- •Оперативная память
- •5.1.1.2. Контроллеры.
- •5.1.1.3. Жесткий диск.
- •Центральный процессор
- •Характеристики процессора.
- •Тема 2.2 Обработка прерываний
- •Тема 2.3 Планирование процессов
- •Планировщик!!!!!!! Понятие вычислительного процесса и ресурса.
- •2. Основная ф-ция ос: Повышение эффективности использования компьютера за счет рационального управления его ресурсами.
- •Дисциплины диспетчеризации и алгоритмы планирования процессов
- •Алгоритмы планирования процессов
- •Тема 2.4 Обслуживание ввода-вывода
- •Основные понятия и концепции организации ввода/вывода в ос
- •Основные системные таблицы ввода/вывода
- •2. Таблица описания виртуальных логических устройств.
- •3. Таблица прерываний.
- •Очередь запросов ввода-вывода. Алгоритм обработки прерываний по вводу-выводу.
- •Тема 2.5 Управление памятью
- •Функции ос по управлению памятью.
- •Типы адресов.
- •Алгоритмы распределения реальной памяти.
- •Свопинг и виртуальная память. Методы распределения памяти с использованием дискового пространства
- •Свопинг
- •Страничное распределение
- •Сегментное распределение
- •Сегментно-страничное распределение
- •Раздел 3. Машинно-независимые свойства операционных систем
- •Тема 3.1 Работа с файлами
- •Тема 3.2 Планирование заданий
- •Тема 3.3 Распределение ресурсов
- •Средства синхронизации и взаимодействия процессов
- •Синхронизация процессов на основе семафорных операций
- •1. Двоичный семафор
- •2. Универсальный семафор (считающий семафор)
- •Тупики и методы борьбы с ними
- •1. Граф распределения ресурсов
- •3. Вычислительные схемы
- •Тема 3.4 Защищенность и отказоустойчивость операционных систем
- •Раздел 4. Работа в операционных системах dos и windows 2000
- •Тема 4.1 Структура операционной системы
- •Практическая работа №1 Изучение структуры операционной системы Windows 2000.
- •Тема 4.2 Интерфейс пользователя
- •Тема 4.3 Организация хранения данных
- •Тема 4.4 Средства управления и обслуживания
- •Тема 4.5 Утилиты операционной системы
- •Тема 4.6 Поддержка приложений других операционных систем
- •Раздел 5. Инсталляция и конфигурирование ос. Восстановление
- •Тема 5.1. Инсталляция и настройка ос.
- •Практическая работа №19 «Конфигурирование системы. Подключение новых устройств.»
- •Тема 5.2. Восстановление системы.
- •Практическая работа №20 «Работа с программами резервного копирования»
Дисциплины диспетчеризации и алгоритмы планирования процессов
Операционная система выполняет следующие основные функции, связанные с управлением задачами:
создание и удаление задач;
планирование процессов и диспетчирезация задач;
3) синхронизация задач, обеспечение их средствами коммуникации.
Система управления задачами обеспечивает прохождение их через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необходимо разместить в основной памяти - следовательно, ему необходимо выделить часть адресного пространства. Новый порожденный поток текущего процесса необходимо включить в общий список задач, конкурирующих между собой за ресурсы центрального процессора.
Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между процессами появляются «родственные» отношения. Порождающая задача называется «предком», «родителем», а порожденная «потомком» «сыном» или «дочерней задачей». «Предок» может приостановить или удалить свою дочернюю задачу, тогда как «потомок» не может управлять «предком».
Основным подходом к организации того или иного метода управления процессами, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов. На распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем» оно не может распределяться между параллельно выполняющимися процессами, то процессы вынуждены будут одень долго ждать своей очереди. Таким образом, недоступность одного ресурса может привести к тому, что длительное время не будут использоваться и многие другие ресурсы. Если, же мы возьмем набор таких процессов, которые не будут конкурировать между собой за неразделяемые ресурсы при параллельном выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более эффективно. Итак, возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе ресурсов. Такая задача называется планированием вычислительных процессов. Задачи динамического планирования стали называть диспетчеризацией. К сожалению, здесь наблюдается терминологическая несогласованность. Собственно модули супервизора, отвечающие за диспетчеризацию задач, часто называют планировщиками (sheduler). Но фактически, говоря о тех же планировщиках памяти или о каких-нибудь других модулях, отвечающих за динамическое распределение ресурсов, имеют в виду, что эти планировщики осуществляют диспетчеризацию. Иногда диспетчеризацию называют краткосрочным планированием. Основное отличие между краткосрочными и долгосрочными планировщиками заключается в частоте запуска. В большинстве современных ОС долгосрочный планировщик отсутствует.
Операционная система для реализации мультипрограммирования выполняет планирование и диспетчеризацию потоков (в ОС, не поддерживающих потоков — диспетчеризацию процессов). Планирование включает определение момента времени для смены текущего потока, а также выбор нового потока для выполнения. Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой.
Стратегия планирования определяет, какие процессы мы планируем на выполнение, чтобы достичь поставленной цели. Существует три наиболее распространенные стратегии:
по возможности заканчивать вычисления в том же порядке, в котором они были начаты;
отдавать предпочтение более коротким процессам;
предоставлять всем пользователям одинаковые услуги, в том числе и время ожидания.
Пречень дисциплин диспетчеризации и их классификация приведены на рис.1.
Рис. 1. Дисциплины диспетчеризации. Рассмотрим кратко основные дисциплины диспетчеризации. |
Рис.2. Дисциплина диспетчеризации FCFS
Самой простой в реализации является дисциплина
FCFS (первым пришел – первым обслужен). Согласно этой дисциплине задачи обслуживаются в порядке очереди, то есть в порядке их появления. Те задачи, которые были заблокированы в процессе работы после перехода в состояние готовности, вновь ставятся в эту очередь перед теми, которые еще не выполнялись. То есть, образуется две очереди (рис. 2): очередь новых задач и очередь ранее выполнявшихся задач. |
Существующие дисциплины диспетчеризации могут быть разбиты на два класса – вытесняющие и не вытесняющие.
1. Вытесняющие алгоритмы – это такие способы планирования, в которых решения о переключении процессора принимаются ОС, а не активной задачей.
2. Невытесняющие алгоритмы – основаны на том, что активному потоку позволено выполняться до тех пор, пока он сам не отдаст управление ОС (не перейдёт в ожидание). Можно сказать, что рассмотренная дисциплина FCFS относиться к не вытесняющим.
Вытесняющий алгоритм, основанный на квантовании: в соответствии с этим алгоритмом каждому потоку предоставляется ограниченный непрерывный период процессорного времени – квант. Условия смены активного потока:
Поток завершился или покинул систему;
Произошла ошибка;
Поток перешёл в состояние ожидания;
Исчерпан квант процессорного времени.
Вытесняющий алгоритм, основанный на приоритетах.
Приоритет – число, характеризующее степень привилегированности потока. Приоритет процесса определяется ОС при его создании, а приоритет потока всегда определён приоритетом процесса. Различают динамические и фиксированные процессы установки приоритетов. Существует 2 разновидности приоритетного планирования: с относительными и с абсолютными приоритетами обслуживания. Они различаются моментом смены процессов.
Смешанные алгоритмы планирования.
В их основе лежит совмещение квантования и алгоритма приоритетов: квант времени, отводимый потоку, зависит от степени его приоритета. Перепланировка происходит, если:
Получено прерывание от таймера, сигнализирующее, что время, отведённое данному процессу на выполнение, закончилось;
Активный процесс выполнил системный запрос на доступ к ресурсу, который занят;
Процесс выполнил запрос к освободившемуся ресурсу;
Аппаратное прерывание, поступившее от периферийных устройств после завершения операции ввода-вывода, переводит процесс в состояние готовности;
Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения процесса.