- •Вопросы для подготовки к экзамену по дисциплине «Операционные системы»
- •Тематический план
- •Лекция 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 «Работа с программами резервного копирования»
Тема 2.3 Планирование процессов
Процессы и потоки. Состояния процессов и потоков.
Понятия: задание, процесс, планирование процесса. Состояния существования процесса. Диспетчеризация процесса. Блок состояния процесса. Алгоритм диспетчеризации. Способ выбора процесса для диспетчеризации. Понятие события. Блок состояния события. Механизм установления соответствия между процессом и событием.
Планировщик!!!!!!! Понятие вычислительного процесса и ресурса.
Понятие процесса является одним из основных в современных операционных системах. Дадим несколько определений процесса (process), отражающих различные стороны этого важного понятия:
Процесс — это абстракция, описывающая выполняющуюся программу.
Процесс— исполнение последовательности действий в среде, включающей собственно выполняющуюся программу, а также связанных с ней данных и состояний (открытых файлов, текущего каталога и т. п.).
С точки зрения операционной системы, процесс — единица работы, заявка на потребление системных ресурсов.
Процесс — объект, которому выделяется процессор.
Первое упоминание о процессе появилось в 60-е годы XX века в операционной системе MULTICS.
Если говорить о соотношении между процессом и программой, то справедливы следующие два утверждения:
программа — это часть состояния процесса. С этой точки зрения процесс — нечто большее, чем просто программа;
программа может вызывать более чем один процесс для выполнения работы. С этой точки зрения программа — нечто большее, чем процесс.
Определение концепции процесса преследует цель выработать механизмы распределения и управления ресурсами. Понятие ресурса, так же как и понятие процесса, является одним из основных при рассмотрении ОС.
2. Основная ф-ция ос: Повышение эффективности использования компьютера за счет рационального управления его ресурсами.
Р есурсом называется всякий объект, который может распределяться внутри системы.
Ресурсы могут быть разделяемыми, когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течении некоторого интервала времени процессы используют ресурс попеременно), а могут быть неделимыми
Рис. 1. Классификация ресурсов
При разработке первых систем ресурсами считались процессорное время, память, каналы ввода/вывода и периферийные устройства. Однако сегодня понятие ресурса стало более универсальным и общим. Оно превратилось в некоторую абстрактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе
Современная операционная система поддерживает мультипрограммирование (многопроцессность) и старается эффективно использовать ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддерживанием в памяти более одного процесса, ожидающего процессор, и более одного процесса, готового использовать другие ресурсы, как только последние станут доступными. Общая схема выделения ресурсов такова. При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода/вывода, массив данник и т. п.) задача обращается к супервизору операционной системы — ее центральному управляющему модулю, посредством специальных вызовов, команд, директив и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек оперативной памяти, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных и т. п.). Директива обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим, если такой существует. Не все вычислительные комплексы имеют два (и более), режима работы: привилегированный (режим супервизора), пользовательский, режим эмуляции какого-нибудь другой компьютера и т. д.
Ресурс может быть выделен задаче, обратившейся к супервизору с соответствующим запросом, если:
он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).
Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь; к ресурсу, переводя его в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего это осуществляется с помощью списковой структуры.
После окончания работы с ресурсом задача опять с помощью специального вызова супервизора (посредством соответствующей директивы) сообщает операционной системе об отказе от ресурса, или операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции.
Для каждого вновь созданного процесса ОС генерирует информационные структуры, которые содержат данные о потребностях процесса в ресурсах и о фактически выделенных ему ресурсах. Важнейшей задачей ОС является защита ресурсов, выделенных данному процессу, от остальных процессов.
Адресное пространство процесса – совокупность всех областей оперативной памяти, выделенных ОС данному процессу.
Во время выполнения процесса может быть многократно прервана и продолжена его работа. Чтобы возобновить выполнение процесса, необходимо возобновить состояние его операционной среды, которое идентифицируется состоянием регистров, программы-счётчика, режимом работы процессора, информацией о незавершённых операциях ввода-вывода и т.д. Совокупность этих сведений называется контекстом процесса. В ОС нет однозначного соответствия между процессами и программами, т.е. один программный файл может породить несколько параллельно выполняемых процессов, а процесс в ходе выполнения может сменить программный файл и начать выполнять другую программу. Основные задачи подсистемы управления процессами:
Планирование выполнения процессов;
Создание, уничтожение, возобновление, приостановление выполнения процессов;
Основные состояния процесса (рис. 2):
на процессоре — активное состояние, в котором процесс обладает всеми необходимыми ресурсами, в том числе самим процессором;
готовность — процесс находится в очереди на выполнение;
ожидание — процесс ожидает завершение события (например, освобождения ресурса);
остановлен — процесс остановлен, как правило, в отладочном режиме;
создание — выполнение действий, необходимых для создания процесса;
завершение — выполнение действий, связанных с успешным завершением процесса;
зомби — процесс закончен, но предок не принял его завершения.
Рис. 2. Основные состояния процесса
При создании процесса должны быть выполнены следующие действия:
присвоение процессу уникального номера (ID);
добавление процесса в список процессов, известных системе;
определение начального приоритета;
формирование блока управления процессом;
выделение необходимых ресурсов.
За время своего существования процесс может неоднократно совершать переход из одного состояния в другое.
Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях:
по команде пользователя. Имеет место в тех диалоговых операционных системах, где программа может иметь статус задачи, а не просто быть исполняемым файлом.
при выборе из очереди планировщиком (характерно для операционных систем, работающих в пакетном режиме);
по вызову из другой задачи (посредством обращения к супервизору один процесс может создать, инициировать, приостановить, остановить, уничтожить другой процесс);
по прерыванию от внешнего инициативного устройства (сигнал о свершении некоторого события может запускать соответствующую задачу);
при наступлении запланированного времени запуска программы.
Последние два способа запуска задачи, при которых процесс из состояния бездействия переходит в состояние готовности, характерны для операционных систем реального времени.
Процесс, который может исполняться, как только ему будет предоставлен процессор, находится в состоянии готовности. Считается, что такому процессу уже выделены все необходимые ресурсы за исключением процессора.
Из состояния выполнения процесс может выйти по одной из следующих причин:
процесс завершается, при этом он посредством обращения к супервизору передает управление операционной системе и сообщает о своем завершении. В результате этих действий супервизор либо переводит его в список бездействующих процессов (процесс переходит в пассивное состояние), либо уничтожает (уничтожается, естественно, не сама программа, а именно задача, которая соответствовала исполнению некоторой программы). В состояние бездействия процесс может быть переведен принудительно: по команде оператора (действие этой и других команд оператора реализуется системным процессом, который «транслирует» команду в запрос к супервизору с требованием перевести указанный процесс в состояние бездействия), или путем обращения к супервизору операционной системы из другой задачи с требованием остановить данный процесс;
процесс переводится супервизором операционной системы в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;
процесс блокируется (переводится в состояние ожидания) либо вследствие запроса операции ввода/вывода (которая должна быть выполнена прежде, чем он сможет продолжить исполнение), либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент (причиной перевода в состояние ожидания может быть и отсутствие сегмента или страницы в случае организации механизмов виртуальной памяти), а также по команде оператора на приостановку задачи или по требованию через супервизор от другой задачи.
При наступлении соответствующего события (завершилась операция ввода/вывода, освободился затребованный ресурс, в оперативную память загружена необходимая страница виртуальной памяти и т. д.) процесс деблокируется и переводится в состояние готовности к исполнению.
Таким образом, движущей силой, меняющей состояния процессов, являются события. Один из основных видов событий — это прерывания.
Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится специальная информационная структура, называемая дескриптором процесса (описателем задачи, блоком управления задачей). В общем случае дескриптор процесса содержит следующую информацию:
идентификатор процесса (так называемый PID — process identificator);
тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;
приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;
переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства ввода/вывода и т. д.);
защищенную область памяти (или адрес такой зоны), в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи;
информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т.п.)
место (или его адрес) для организации общения с другими процессами;
параметры времени запуска;
в случае отсутствия системы управления файлами – адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из оперативной памяти, если ее вытесняет другая.
Процессы делятся на традиционные (имеющие один поток управления) и многопоточные (многонитевые). Поток (нить) управления (thread) — исполнение команд программы в естественном порядке.
Многопоточность в рамках одного процесса имеет существенные преимущества. Переключение контекста между двумя потоками в одном процессе значительно проще, чем переключение контекста между двумя процессами. Все данные, за исключением стека исполнения и содержимого регистров процессора, разделяются между потоками. Таким образом, многопоточность предоставляет эффективный параллелизм.
Можно указать целые классы программ, где необходима многопоточность:
операционные системы;
сетевые серверы;
встроенные системы;
вычислительные программы.
Об использовании потоков
Как правило, технику явного распараллеливания не следует использовать при прикладном программировании. Нужно переложить заботу о распараллеливании на компиляторы, возможно помогая ему директивами. Однако системному программисту знание и умение применять нити в своих программах необходимо.
Многие операционные системы, ориентированные на рабочие станции и персональные компьютеры, начиная с середины 80-х годов XX века, включают поддержку многопоточности. Впервые стандарт на потоки появился в 1995 году. Это был стандарт IEEE POSIX 1003.1с-1995. Однако стандарт появился достаточно поздно, и некоторые компании успели выпустить свои версии многопоточных библиотек, существенно отличающихся от стандарта. Можно выделить следующие основные семейства потоков:
1. Потоки, поддерживающие стиль POSIX-стандарта. Это семейство состоит из трех подгрупп:
"истинные" POSIX-потоки. Это потоки, базирующиеся на стандарте IEEE POSIX 1003.1с-1995 (также известного как ISO/IEC 9945-1:1996), являющегося частью стандарта ANSI/IEEE 1003.1;
DCE-потоки, базирующиеся на ранней версии стандарта POSIX — 1003.1;
Unix International потоки, также известные как Solaris-потоки. Они достаточно близки к стандарту и поддерживаются в операционных системах Solaris компании Sun Microsystems и UnixWare 2 компании SCO;
2. Потоки Microsoft. Это семейство состоит из двух подгрупп, причем обе разработаны в компании Microsoft:
потоки WIN32, являющиеся стандартными для семейства операционных систем Windows, включая Windows 2000, Windows 95, Windows 98, Windows ME и Windows СЕ;
потоки OS/2, являющиеся стандартными для операционной системы OS/2 компании IBM.
3. Другие варианты потоков. Их не так много. Отдельного упоминания заслуживает лишь пакет С threads, имеющийся в операционной системе Маch.
Различные семейства предлагают различный синтаксис основных функций потоковых библиотек. Основными группами функций являются: функции создания потоков и функции синхронизации потоков (как правило, набор таких функций достаточно богат и разнообразен).
Контрольные вопросы:
A) в интерактивных системах разделения времени; B) в системах пакетной обработки, решающих «счетные» задачи. Ответ: А — в очереди процессов, ожидающих ввода-вывода; В — в очереди готовых процессов.
|
Домашнее задание: 1. Конспект лекций 2. В ТЕТРАДИ ВЫПИСАТЬ ОТВЕТЫ НА ВОПРОСЫ |
Лекция 10 (2/20)
|
Проверка Д/З: |
1). У 3 чел. Проверить конспекты 2). 3 чел. спросить по предыдущему (см. выше) |
Алгоритмы планирования