Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.docx
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
73.2 Кб
Скачать

Библиография

На русском языке

• Гордеев А.В. Операционные системы. - М.,Питер, 2007

• Дейтел Х.М. и др. Операционные системы. - М.,Бином, 2006

• Э. Таненбаум , Современные операционные системы, Питер, 2004,

На английском языке

Abraham Silberschatz and others. Operating System Concepts (7th Edition) -USA, BARENTS,

Group LLC, 2007

A. Nico Habermann . Introduction to Operation Systems Design. - USA, Science Research

Associates, 2005

http://citforum.ru/operating_system

http://cs.mipt.ru/docs/courses/osstud

=================================== ======================= =================

T1. Введение в Операционные системы (ОС)

1. Роль ОС в вычислительных системах

2. Эволюция ОС

3. Классификация ОС

Осн. Компоненты компьютерной (вычислительной) системы

1. Человек (пользователь)

2. Компьютер (набор электронных взаимосвязанных элементов) – eng. Hardware

3. Компьютерные программы (логические сценарии работы и взаимодействия электронных

элементов) – eng. Software

4. Коммуникационные каналы

5. Информация

Место ОС в компьютерной (вычислительной) системе

Операционная система составляет основу программного обеспечения ПК.

Операционная система представляет комплекс системных и служебных программных

средств, который обеспечивает взаимодействие пользователя с компьютером и выполнение

всех других программ.

С одной стороны, она опирается на базовое программное обеспечение ПК, входящее в его систему

BIOS, с другой стороны, она сама является опорой для программного обеспечения более высоких

уровней – прикладных и большинства служебных приложений.

Операционная система как менеджер ресурсов

Операционная система предназначена для управления всеми частями весьма сложной архитектуры

компьютера.

Операционная система, как менеджер ресурсов, осуществляет упорядоченное и контролируемое

распределение процессоров, памяти и других ресурсов между различными программами.

Операционная система как постоянно функционирующее ядро

можно дать и такое определение:

операционная система – это программа, постоянно работающая на компьютере и

взаимодействующая со всеми прикладными программами.

Казалось бы, это абсолютно правильное определение, но, во многих современных операционных

системах постоянно работает на компьютере лишь часть операционной системы, которую принято

называть ее ядром.

Операционная система как защитник пользователей и программ

Если вычислительная система допускает совместную работу нескольких пользователей, то

возникает проблема организации их безопасной деятельности.

Необходимо обеспечить сохранность информации на диске, чтобы никто не мог удалить или

повредить чужие файлы.

Нельзя разрешить программам одних пользователей произвольно вмешиваться в работу

программ других пользователей.

Нужно пресекать попытки несанкционированного использования вычислительной системы.

Всю эту деятельность осуществляет операционная система как организатор безопасной работы

пользователей и их программ. полицейские и контрразведывательные функции.

Поколения операционных систем

Нулевое поколение — В первых компьютерах операционные системы отсутствовали. Это

период с момента появления первых компьютеров до середины 50-х годов XX века.

Первое поколение — Пакетная обработка, многозадачные операционные системы. Появились

в середине 50-х годов XX века.

Второе поколение — Многорежимные операционные системы, операционные системы

реального времени. Появились в середине 60-х годов XX века.

Третье поколение — Операционные системы для персональных компьютеров, сетевые

операционные системы, графический пользовательский интерфейс ОС. Появились в начале

80-х годов XX века.

Четвертое поколение — Распределенные операционные системы. Появились на границе 80-х

и 90-х годов XX века.

Пятое поколение — Поддержка беспроводной связи для мобильных устройств. Появились в

середине 90-х годов XX века.

ОС появились и стали развиваться параллельно с вычислительной техникой

Таким образом, существуют ОС для разных компьютеров:

для 8 bits – CP/M

для 16-64 bits – MS-DOS,

для 32-64 bits – Windows 95,

Для компьютерных сетей – Unix, Novel Netware, OS/2,Windows NT,ect.

Первый период (1945-1955гг) /Ламповые машины./Операционных систем нет

Программирование на машинном языке

Организация вычислительного процесса вручную каждым программистом с пульта

управления

Загрузка программы с помощью панели переключателей, либо перфокарт

ВС выполняет одновременно только одну операцию (ввод-вывод, либо собственно

вычисления)

Возникают первые компиляторы Fortran, Assembler для IBM-701

Строго последовательная обработка данных

Второй период (1955г. – начало 60-х гг.)/Транзисторные машины/Пакетные операционные

системы

Развитие алгоритмических языков LISP, COBOL, ALGOL-60, PL-1

Разделение персонала на программистов и операторов

Изменение процесса прогона программ: пользователь приносит задание (колода перфокарт) и

оператор вводит задание в память машины и запускает его на исполнение.

Поскольку смена запрошенных ресурсов вызывает остановку работы программ и процессор

простаивает, для повышения эффективности задания с похожими ресурсами собирают вместе,

создавая пакет заданий

Появляются первые системы пакетной обработки !

Третий период (начало 60-х – 1980г.) /Компьютеры на основе интегральных

микросхем./Первые многозадачные ОС

Появление электронно-лучевых дисплеев

Time-sharing (системы разделения времени) - процессор переключается между операциями не только

на время операций ввода-вывода, но и просто по прошествии определенного времени =>

пользователи могут интерактивно взаимодействовать со своими программами => возможность

одновременной работы нескольких пользователей на одной компьютерной системе

Запись информации не посредством перфокарт, а непосредственно с клавиатуры на диск

Внешняя эволюция: до этого вычислительные комплексы были несовместимы. Первое семейство

программно совместимых компьютеров, построенных на ИС было IBM/360, затем последовала

линия компьютеров PDT, совместимых с IBM. У нас серия ЕС ЭВМ и СМ

Дальнейшее повышение эффективности достигается за счет мультипрограммирования: пока одна

программа выполняет операцию ввода-вывода, процессор не простаивает как при однопрограммном

режиме, а выполняет другую программу

Мультипрограммные системы обеспечили возможность более эффективного использования

системных ресурсов, но они ещѐ долгое время оставались пакетными (пользователь не мог

непосредственно взаимодействовать с заданием и должен был заранее предусмотреть все возможные

ситуации), отладка программ по-прежнему требовала распечатки содержимого регистров или

использования отладочной печати.

Появление электронно-лучевых дисплеев и переосмысление возможностей использования клавиатур

стали шагом к решению этой проблемы

Логическим расширением систем мультипрограммирования стали time-sharing (системы разделения

времени), в них процессор переключается между операциями не только на время операций ввода-

вывода, но и просто по прошествии определенного времени => пользователи могут интерактивно

взаимодействовать со своими программами => возможность одновременной работы нескольких

пользователей на одной компьютерной системе

В системах разделения времени пользователь получил возможность записывать вводить

информацию не посредством перфокарт, а непосредственно записывать еѐ с клавиатуры на диск.

Появление On-line файлов привело к необходимости разработки файловых систем

Параллельно внутренней эволюции происходит внешняя эволюция, до этого вычислительные

комплексы были несовместимы: программу успешно работающую на одном типе машин

приходилось переписывать для другого типа машин. Первое семейство программно совместимых

компьютеров, построенных на интегральных схемах было IBM/360, затем последовала линия

компьютеров PDT, совместимых с IBM

Четвертый период (с 1980г. по настоящее время)/Персональные компьютеры./Классические

сетевые и распределенные системы

Резкое возрастание интеграции и снижение стоимости микросхем

Массовость, общедоступность

Первоначально персональные компьютеры предназначались для использования одним

пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих

ЭВМ и их ОС (например пропала необходимость защиты файлов памяти, планирования заданий)

В середине 80-х развитие сетей компьютеров => развитие сетевых и распределенных ОС

Суперкомпьютеры./Параллельные вычисления и системы искусственного интеллекта

В то время как предыдущие поколения совершенствовались за счѐт увеличения количества

элементов на единицу площади (миниатюризации), компьютеры пятого поколения должны были для

достижения сверхпроизводительности интегрировать огромное количество процессоров.

Компьютеры Cray стали классикой в области векторно-конвейерных суперкомпьютеров.

Первые сверхвысокопроизводительные векторные компьютеры: Cray-1 (1976 год), ILLIAC-IV,

STAR-100, ASC.

Классификация ОС

Операционные системы различаются особенностями реализации алгоритмов управления

ресурсами компьютера, областями использования.

В зависимости от алгоритма управления процессором, операционные системы делятся на:

Однозадачные и многозадачные

Однопользовательские и многопользовательские

Однопроцессорные и многопроцессорные системы

Локальные и сетевые.

По числу одновременно выполняемых задач операционные системы делятся на два класса:

Однозадачные (MS DOS)

Многозадачные (OS/2, Unix, Windows)

В однозадачных системах используются средства управления периферийными устройствами,

средства управления файлами, средства общения с пользователями.

Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме

того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и

внешние устройства.

В зависимости от областей использования многозадачные ОС подразделяются на три типа:

Системы пакетной обработки (Old)

Системы с разделением времени (Unix, Linux, Windows)

Системы реального времени (RT11)

Системы пакетной обработки предназначены для решения задач, которые не требуют быстрого

получения результатов. Главной целью ОС пакетной обработки является максимальная пропускная

способность или решение максимального числа задач в единицу времени.

Эти системы обеспечивают высокую производительность при обработке больших объемов

информации, но снижают эффективность работы пользователя в интерактивном режиме.

В системах с разделением времени для выполнения каждой задачи выделяется небольшой

промежуток времени, и ни одна задача не занимает процессор надолго.

Если этот промежуток времени выбран минимальным, то создается видимость одновременного

выполнения нескольких задач.

Эти системы обладают меньшей пропускной способностью, но обеспечивают высокую

эффективность работы пользователя в интерактивном режиме.

Системы реального времени применяются для управления технологическим процессом или

техническим объектом, например, летательным объектом, станком и т.д.

По числу одновременно работающих пользователей - ОС разделяются на однопользовательские

(MS DOS) и многопользовательские (Unix, Linux, Windows 95 - XP)

В многопользовательских ОС каждый пользователь настраивает для себя интерфейс пользователя,

т.е. может создать собственные наборы ярлыков, группы программ, задать индивидуальную

цветовую схему, переместить в удобное место панель задач и добавить в меню Пуск новые пункты.

В многопользовательских ОС существуют средства защиты информации каждого пользователя от

несанкционированного доступа других пользователей

Одним из важнейших признаков классификации ОС является разделение их на локальные и сетевые.

Локальные ОС применяются на автономных ПК или ПК, которые используются в

компьютерных сетях в качестве клиента. В состав локальных ОС входит клиентская часть ПО

для доступа к удаленным ресурсам и услугам.

Сетевые ОС предназначены для управления ресурсами ПК включенных в сеть с целью

совместного использования ресурсов. Они представляют мощные средства разграничения

доступа к информации, ее целостности и другие возможности использования сетевых

ресурсов

T2. Архитектура ОС

1. Функции ос.

2. Структура ос.

3. Архитектура ос.

Вычислительная система состоит из 3 базовых компонент, которые связаны между собой через 3

отдельных канала, называемыми магистралями (чаще используется термин из англ.языка - bus).

Информация , которая циркулирует в вычислительной системе делится на 3 категории:

- данные, которые необходимо обработать

- инструкции , при помощи которых осуществляется обработка данных (сложение, вычитание,

сравнение и т.д.)

- Адреса, которые __________позволяют локализовать данные и инструкции.

Таким образом, основной задачей вычислительной системы является выполнение инструкций

(преобразовательных) над данными.

С точки зрения hardware, все компоненты компьютера контролируются процессором.

В свою очередь, процессор выполняет действия, которые определены программами, которые он

выпоняет.

НО, поскольку структура вычислительной системы является довольно сложной, она не может

управляться прикладным ПО. Иначе, программист будет вынужден концентриваваться на задачах

управления компонентами системы и в этом случае программы становятся объемными, что в свою

очередь ведет к большой вероятности появления ошибок.

Как следствие, был введен посредник, который осуществлял связь между ТО и прикладным ПО и

обеспечивал эффективное функционирование системы.

Этим посредником стала ОС , которая обеспечивает контроль над ресурсами компьютера и

вмешивается тогда, когда появляются нестандартные или нежелательные ситуации

Основные задачи (цели) ИС

Предоставление некоторых объектов своим пользователям:

Системные команды, которые автоматизируют операции работы с компьютером

Системные функции, которые находятся в распоряжении программ . Эти функции в

зничительной мере зависят от характеристик среды в которых используется ОС.

Эффективное управление физической машиной

ОС работает как менеджер ресурсов вычислительной системы, выполняя такие операции как :

Учет состояния всех ресурсов

Разрешение конфлитных ситуаций между различными компонентами системы в случае

одновременной адресации к одним и тем же ресурсам

Менеджмент ресурсов предполагает распределение ресурсов во времени и в пространстве

Когда ресурсы распределены во времени, различные программы или различные

пользователи используют их по очереди.

Ex. : процессор, принтер.

В случае распределения ресурсов в пространстве, каждой из компонент, которая их

использует выделяется одна или несколько частей соответствующего ресурса.

Ex. : внутренняя u1102 юпамять , диск.

Функции ОС

Предоставление пользователю/программисту виртуальной машины (логического посредника)

вместо прямого управления электронными компонентами (=>упрощение работы)

Управление ресурсами

Процессами

Памятью

Взаимодействию с устройствами Ввода/Вывода (I/О)

Взаимодействие с внешними информационными ресурсами (файловая система)

Защита данных и администрирование

Интерфейс прикладного программирования (API)

Обеспечение пользовательского интерфейса

Структура ОС

Современные ОС состоят из множества взаимозависимых модулей, каждый из которых может быть

отнесен к одному из следующих классов:

Ядро (eng. kernel) – модули, которые выполняют базовые функции ОС .

Эти функции недоступны для пользовательских прогамм.

Некоторые из этих функций обеспечивают необходимую среду для работы приложений. -

Application programming interface (API).

Для обеспечения более высокой скорости работы ОС все или большая часть модулей ядра

находятся постоянно в оперативной памяти. -> являются резидентными.

Дополнительные/вспомогательные (eng. extramodules) – модули, которые выполняют

обеспечивающие функции (полезные, но не обязательные) (ex. – оперативное архивирование

данных, дефрагментация дисков и т.д.)

Модули ядра ОС выполняют следующие базовые функции ОС:

управление процессами

управление памятью

управление устройствами ввода-вывода

Ядро обеспечивает решение задачи организации вычислительного процесса: переключение

контекстов, загрузка/выгрузка страниц, обработка прерываний и т.п.

Другая задача – поддержка приложений, создание для них прикладной программной среды.

Приложения обращаются к ядру с запросами (системными вызовами) для выполнения базовых

операций (открытие и чтение файла, вывод информации на дисплей и т.п.)

Функции выполняемые ядром ОС требуют высокой скорости выполнения и для этого

размещаются постоянно в оперативной памяти (резидентные модули).

Вспомогательные модули ОС условно разделяются на следующие группы:

Утилиты – приложения, решающие отельные задачи управления и сопровождения ОС

Системные обрабатывающие программы – текстовые и графические редакторы,

компиляторы, компоновщики и т.п.

Программы предоставления пользователю дополнительных услуг – специальный

вариант пользовательского интерфейса, калькулятор, игры и т.п.

Библиотеки процедур – модули различного назначения, упрощающие разработку

приложений.

Вспомогательные модули обращаются к функциям ядра ОС посредством системных вызовов.

Привилегированный режим процессора

Для надежного управления работой приложений ядро ОС должно обладать некоторыми

привилегиями по отношению к остальным приложениям.

Обеспечивается привилегированный режим специальными средствами аппаратной

поддержки. Процессор компьютера поддерживает как минимум два режима работы –

пользовательский (user mode) и привилегированный (kernel mode).

Приложения в пользовательском режиме не могут выполнять некоторые критичные команды

(переключение процессора с задачи на задачу, доступ к механизму выделения и защиты

областей памяти и т.п.).

Между числом привилегий, поддерживаемых аппаратурой и операционной системой нет

однозначного соответствия: (Прим.: процессор Intel поддерживает 4 режима работы

процессора – операционные системы Windows используют два из них).

Для реализации привилегированного режима достаточно поддержки двух режимов работы

Повышение устойчивости ОС, обеспечивающееся использованием работы в

привилегированном режиме, достигается за счет некоторого замедления, вызванного

необходимостью переключения работы ядра.

Архитектура ОС, основанная на разделении привилегированного режима для ядра и

пользовательского режима для приложений – стала классической.

Детализация структуры ядра

Ядро, являясь структурным элементом ОС, может быть логически разложен на ряд слоев:

Средства аппаратной поддержки ОС

Машинно-зависимые компоненты ОС (включает модули, отражающие специфику

аппаратной платформы компьютера)

Базовые __________механизмы ядра (включает наиболее примитивные операции ядра –

переключение контекстов процессов, диспетчеризация прерываний), модули

выполняют решения принятые на более высоких уровнях

Менеджеры ресурсов (реализует задачи стратегического управления), включает

менеджеры – диспетчеры процессов, ввода-вывода и т.п.

Интерфейсы системных вызовов (включает модули взаимодействия с приложениями и

системными утилитами, функции API.

Архитектура ОС зависит от типа ядра

1. Монолитные

2. Многослойные (многоуровневые)

3. Модульные

4. Микроядерные (Micro-kernel)

5. Виртуальные машины

6. Экзоядерные (Exo-kernel)

Монолитные ядра– представляют традиционное построение, адекватное для сложных ОС. (ex.

UNIX)

Код абстрактизации, контроля и администрации ресурсов полностью располагается в ядре

ОС.

Каждая из процедур видима другими процедурами

Многослойные.модульные ядра – представляют современное проектирование ОС, которое

позволяет снизить сложность системы:

каждый из уровней включает набор необходимых данных и процедур, которые :

Могут обращаться к процедурам более высокого уровня

Могут обращаться к процедурам низшего уровня

высокая степень модульности

низкая эффективность использования ресурсов.

Концепция микроядерной архитектуры заключается в выделении в качестве работающего в

привилегированном режиме части ОС, ответственном за небольшой набор системных функций

(управление процессами, обработка прерываний, управление виртуальной памятью, пересылка

сообщений). Данная часть ОС называется микроядром.

Все остальные высокоуровневые функции ядра разрабатываются в виде приложений, работающих в

пользовательском режиме – серверы ОС.

Взаимодействие между обычными приложениями и серверами ОС осуществляется через механизм

обращений. Клиентское приложение отправляет запрос к серверу ОС через микроядро ОС. Такой

механизм обеспечивает защиту работы приложений.

Операционные системы, основанные на микроядерной архитектуре обладают рядом преимуществ,

предъявляемых к современным ОС:

Переносимость (обусловлена малым числом модулей в аппаратно-зависимом

микроядре)

Расширяемость (добавление новых функций связано с включением новых серверов

ОС)

Надежность (обусловлена изолированностью процессов)

Поддержка распределенных вычислений (используется механизм взаимодействия

приложений аналогичный взаимодействию в распределенных системах)

Недостаток

Производительность (обладают меньшей производительностью)

Основным отличием ЭКЗО-ядерной архитектуры является то, что модули которые не входят в

ядро не выносятся во внешние программы , а в библиотеки, которые связаны с прикладными

программами.

Аппаратная зависимость ОС

Операционная система в процессе работы взаимодействует с аппаратными средствами

компьютера:

Средства поддержки привилегированного режима

Средства трансляции адресов

Средства переключения процессов

Защита областей памяти

Система прерываний

Системный таймер

Это делает ОС привязанной к определенной аппаратной платформе

Переносимость операционной системы

Если код операционной системы может быть сравнительно легко перенесен с процессора одного

типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу

другого типа, то такую ОС называют переносимой (portable), или мобильной.

Для того чтобы обеспечить свойство мобильности ОС, разработчики должны следовать

следующим правилам:

большая часть кода должна быть написана на языке, трансляторы которого имеются на всех

машинах, куда предполагается переносить систему;

объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с

аппаратными средствами, должен быть по возможности минимизирован.

Под переносимостью операционной системы понимается способность использования ОС на

различных аппаратных платформах с минимальными изменениями в ее структуре. Для

уменьшения числа машинно-зависимых модулей разработчики ОС ограничивают

универсальность машинно-независимых __________модулей. Например, Windows разработана для

нескольких типов процессоров и для многопроцессорных систем используются собственные

модули.

Для обеспечения переносимости следуют следующим правилам:

Большая часть кода написана на языке, трансляторы которого существуют для всех

планируемых платформ;

Объем машино-зависимых частей кода должен быть минимизирован;

Аппаратно-зависимый код должен быть изолирован в нескольких модулях

В идеале машино-зависимые модули ядра полностью экранируют остальную часть ОС от

конкретных деталей аппаратной платформы (кэши, контроллеры прерываний и т.п.).

Совместимость операционных систем

Совместимость – возможность операционной системы выполнять приложения, написанные для

других ОС.

Выделяют

Двоичная совместимость – на уровне кодов (программные модули могут быть просто

перенесены и запущены)

Совместимость исходных текстов – приложения могут быть перекомпилированы в

новый исполняемый модуль для ОС.

Совместимость на уровне кодов может быть достигнута с помощью эмуляции двоичного кода

T3. Управление процессами в ОС

1. Базовые понятия ОС: программа, задание, процесс, мультизадачность;

2. Жизненный цикл процесса и планирование процессов;

3. Контекст и дескриптор процесса;

4. Планирование процессов и алгоритмы планирования

Программы и задания

Программа” – упорядоченная последовательность действий в виде машинных команд или

инструкций исполнителю.

Задание” - совокупность программы, набора команд языка управления заданиями, необходимых

для ее выполнения, и входных данных.

Две абсолютно идентичные программы, абсолютно идентичных задания в процессе выполнения

различны с точки зрения вычислительной системы:

свое адресное пространство;

свое состояние регистров;

свои «права» и обязанности по отношению к другим задачам.

Термины программа и задание предназначены для описания статических, неактивных объектов.

Программа в процессе исполнения является динамическим, активным объектом.

Вместо терминов программа и задание для активных объектов ВС используется термин процесс.

Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для

операционной системы процесс представляет собой единицу работы, заявку на потребление

системных ресурсов.

Подсистема управления процессами (eng. PCB Process Control Block)

Подсистема управления процессами планирует выполнение процессов, а также занимается

созданием и уничтожением процессов, обеспечивает процессы необходимыми системными

ресурсами, поддерживает взаимодействие между процессами.

Мультипрограммирование или многозадачность – это способ организации вычислительного

процесса, при котором на одном процессоре попеременно выполняется сразу несколько программ.

Если такой способ в операционной системе не предусмотрен, то она называется однозадачной.

Все, что выполняется в ВС (даже определенные части операционных систем), организовано

как набор процессов

Реально на однопроцессорной компьютерной системе в каждый момент времени может

исполняться только один процесс

Пока один процесс выполняется, остальные ждут своей очереди на получение процессора

В мультипрограммных вычислительных системах псевдопараллельная обработка нескольких

процессов достигается с помощью переключения процессора с одного процесса на другой

Процесс, находящийся в состоянии процесс исполняется, может завершиться или быть

приостановлен ОС и переведен в состояние процесс не исполняется. Приостановка процесса: для

работы потребовалось возникновение события (завершение операции ввода-вывода), истек

временной интервал, отведенный ОС для работы этого процесса. Потом ОС выбирает для

исполнения один из процессов, находящихся в состоянии процесс не исполняется и переводит его в

состояние процесс исполняется. Новый процесс, появляющийся в системе, первоначально

помещается в состояние процесс не исполняется

Жизненный цикл процесса

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных

состояний:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми

необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по

своим внутренним причинам, он ждет осуществления некоторого события;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в

связи с внешними по отношению к нему обстоятельствами:

процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят

выполнением другого процесса.

Контекст и дескриптор процесса

Состояние операционной среды отображается :

состоянием регистров и программного счетчика,

режимом работы процессора,

указателями на открытые файлы,

информацией о незавершенных операциях ввода-вывода,

кодами ошибок выполняемых данным процессом системных вызовов и т.д.

Эта информация называется контекстом процесса.

Для реализации планирования процессов требуется дополнительная информация:

идентификатор процесса,

состояние процесса,

данные о степени привилегированности процесса,

место нахождения кодового сегмента и т.п.

Такая информация называется дескриптором процесса.

Задачи планирования

Планирование процессов в мультипрограммных ОС включает в себя решение следующих задач:

1) определение момента времени для смены выполняемого процесса;

2) выбор процесса на выполнение из очереди готовых процессов;

3) переключение контекстов "старого" и "нового" процессов.

Первые две задачи решаются программными средствами, а последняя в значительной степени

аппаратно.

Цели планирования

1. Справедливость: гарантировать каждому заданию или процессу некоторую часть времени

использования процессора в компьютерной системе, не допуская ситуаций, когда процесс

одного пользователя постоянно занимает процессор, а процесс другого пользователя

фактически не выполняется

2. Эффективность: постараться занять процессор на все 100% рабочего времени, не позволяя

ему простаивать в ожидании процессов, готовых к исполнению (в реальных ВС загрузка

процессора колеблется от 40 до 90 %)

Свойства планирования

1. Предсказуемость: одно и то же задание должно выполняться приблизительно за одно и то же

время

2. Минимальные накладные расходы

3. Сбаллансированная загрузка ресурсов ВС с предпочтением процессов, которые будут

занимать малоиспользуемые ресурсы

4. Масштабируемость: алгоритмы должны сохранять работоспособность при увеличении

нагрузки

Статические параметры планирования

Статические параметры (предельные значения ресурсов):

размер оперативной памяти,

максимальное количество памяти на диске для осуществления свопинга,

количество подключенных устройств ввода-вывода

каким пользователем запущен процесс или сформировано задание

насколько важной является поставленная задача, т. е. каков приоритет ее выполнения

сколько процессорного времени запрошено пользователем для решения задачи?

какие ресурсы ВС и в каком количестве необходимы заданию?

Динамические параметры планирования

Динамические параметры:

сколько времени прошло со времени выгрузки процесса на диск или его загрузки в

оперативную память

сколько оперативной памяти занимает процесс

сколько процессорного времени было уже предоставлено процессу

промежуток времени непрерывного использования процессора (CPU brust)

промежуток ввода-вывода – I/O burst

Алгоритм планирования First-Come, First-Served (FCFS)

Невытесняющее планирование

Процесс, получивший в свое распоряжение процессор, занимает его до истечения своего

текущего CPU burst

После этого для выполнения выбирается новый процесс из начала очереди

Преимущество: простота реализации

Недостатки:

Среднее время ожидания и среднее полное время выполнения для этого алгоритма

существенно зависят от порядка расположения процессов в очереди

При наличии процесса с длительным CPU burst короткие процессы, перешедшие в состояние

готовность после длительного процесса, будут очень долго ждать начала своего выполнения

Алгоритм FCFS практически неприменим для систем разделения времени

Алгоритм планирования Round Robin (RR)

Вариант FCFS, реализованный в режиме вытесняющего планирования

Готовые процессы организованы циклически - сидят на карусели

Карусель вращается так, что каждый процесс находится около процессора небольшой

фиксированный квант времени, обычно 10 - 100 миллисекунд

Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и

может исполняться

Алгоритм планирования Shortest-Job-First (SJF)

Для алгоритмов FCFS и RR является существенным порядок расположения процессов в

очереди процессов готовых к исполнению

Если короткие задачи расположены в ближе к началу очереди, то общая производительность

возрастает

Если знать время следующих CPU burst для готовых процессов, то можно выбрать для

исполнения процесс с минимальной длительностью CPU burst

Если таких процессов несколько, то для выбора можно использовать FCFS (без квантования

времени)

―Кратчайшая работа первой‖, или Shortest Job First (SJF).

В качестве алгоритма краткосрочного планирования SJF может быть как вытесняющим, так и

невытесняющим

При невытесняющем планировании процессор предоставляется избранному процессу на все

требующееся ему время, независимо от событий в ВС

При вытесняющем SJF-планировании учитывается появление новых процессов в очереди

готовых к исполнению во время работы выбранного процесса

Если CPU burst нового процесса меньше, чем остаток CPU burst у исполняющегося, то

исполняющийся процесс вытесняется новым

Планирование по принципу SRT («по наименьшему остающемуся времени»)

Принцип SRT - это аналог принципа SJF, но с переключением, применимый в системах с

разделением времени. По принципу SRT всегда выполняется процесс, имеющий

минимальное оценочное время до завершения, причем с учетом новых поступающих

процессов. По принципу SJF задание, которое запущено в работу, выполняется до

завершения. По принципу SRT выполняющийся процесс может быть прерван при

поступлении нового процесса, имеющего более короткое оценочное время работы.

Дисциплина SRT характеризуется более высокими накладными расходами, чем SJF.

Механизм SRT должен следите за текущим временем обслуживания выполняющегося

задания и обрабатывать возникающие прерывания. Поступающие в систему небольшие

процессы будут выполняться почти немедленно. Однако более длительные задания будут

иметь даже большее среднее время ожидания и больший разброс времени ожидания, чем в

случае SJF.

Планирование по принципу HRN («по наибольшему относительному времени реакции»)

Бринк Хансен разработал стратегию планирования HRN, которая компенсирует некоторые из

слабостей присущих дисциплине SJF, в частности чрезмерное предубеждение против

длинных заданий и чрезмерную благосклонность по отношению к коротким новым заданиям.

HRN это дисциплина планирования без переключений, согласно которой приоритет каждого

задания является не только функцией времени и обслуживания этого задания, но также

времени, затраченного заданием на ожидание обслуживания. После того как задание

получает в свое распоряжение ЦП, оно выполняется до завершения. Динамические

приоритеты вычисляются по формуле

приоритет = (время ожидания + время обслуживания)/время обслуживания

Поскольку время обслуживания находится в знаменателе, предпочтение будет оказываться

более коротким заданиям. Однако, поскольку в числителе имеется время ожидания, более

длинные задания , которые уже довольно долго ждут, будут также получать определенное

предпочтение. Отметим, что сумма

время ожидания + время обслуживания

есть время ответа системы для данного задания, если бы это задание инициировалось

немедленно.

Сеть очередей

Для каждой группы процессов создается своя очередь процессов, находящихся в состоянии

готовность

Очередям приписываются фиксированные приоритеты

Внутри очередей для планирования могут применяться разные алгоритмы

Для больших счетных процессов, не требующих взаимодействия с пользователем (фоновых

процессов), может использоваться алгоритм FCFS, а для интерактивных процессов –

алгоритм RR

Подход многоуровневых очередей повышает гибкость планирования: для процессов с

различными характеристиками применяется наиболее подходящий им алгоритм

Сеть очередей с обратной связью

Механизм планирования должен:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]