Главная страница
Навигация по странице:

  • 8. Основные функции ядра

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

  • Уровни систем планирования.

  • Планировщик процессов.

  • Регулировщик процессов.

  • 9. Драйвер ОС

  • Средства синхронизации и взаимодействия процессов

  • ос и с. ОСиС. 1. Классификация программного обеспечения


    Скачать 2.7 Mb.
    Название1. Классификация программного обеспечения
    Анкорос и с
    Дата11.12.2022
    Размер2.7 Mb.
    Формат файлаdoc
    Имя файлаОСиС.doc
    ТипДокументы
    #839260
    страница5 из 29
    1   2   3   4   5   6   7   8   9   ...   29
    7. Ядро ОС


    1. Организация работ ядер ОС.


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

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

    Многозадачные ОС реального времени и многопользовательские ОС обращаются к периферийным устройствам практически одинаково. Системы ввода-вывода реального времени обычно используют системные директивы ввода-вывода, а не обращения к подпрограммам обслуживания прерываний.


    1. Управление заданиями и процессорами.


    В данной работе мы будем рассматривать ОС обеспечивающие работу многопроцессорных ЭВМ.

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

    Компонентами данной службы являются:


    1. Планировщик заданий - создает процессы

    2. Планировщик процессов - выбирает, кому из готовых процессов, в какой момент и на какое время передать управление процессором.

    3. Регулировщик - отслеживает состояние процессов.


    Задание представляет собой описание комплекса работ, которые пользователь хочет выполнить на ЭВМ. Каждое залание разбивается на шаги задания. Для выполнение шага задания система создает процессы.

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

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

    В случае мульти программирования планировщик заданий выбирает несколько заданий из множества всех представленных и вводит их в систему. Для параллельного выполнения этих заданий он создает процессы и выделяет необходимые им ресурсы. Планировщик процессов решает, какому из созданных процессов предоставить процессор, в какой момент и на сколь длительное время.


    1. Стадии обработки.




    1. Стадия хранения - задание попадает в множество других заданий, ожидающих своей очереди на обработку.

    2. Стадия готовности - через некоторое время планировщик заданий выбирает задание среди прочих заданий и создает для его выполнения процесс.

    3. Стадия выполнения - после выделения необходимых прцессу ресурсов планировщик заданий передает задание в распоряжение планировщика процессов. Таким образом процесс допускается к использованию процессора. После завершения выделенного процессу интервала времени обслуживания процесс переводится в состояние готовности, так как работа процесса не была завершена. Затем планировщик процессов опять выделяет интервал обслуживания и процесс переводится в состояние выполнения.

    4. Стадия ожидания или блокировки - при необходимости процесс (родитель) иницирует другой процесс (потомок) (для распечатки результатаов - процесс ввода вывода), а сам дожидается результатов выполнения. Когда процесс потомок завершается, он сообщает об этом процессу родителю.




    1. Планировщик заданий.



    В реальной жизне число заданий для выполнения всегда больше числа заданий, которые могут эффективно выполнятся в режиме мультипрограммирования из-за нехватки аппаратных ресурсов вычислительной системы (ресурсы системы ограничены, многие ресурсы не могут выполнятся совметно несколькими процессами и их использование затруднительно).

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

    Функции планировщика заданий:


    1. Отвечает за регистрацию информации о состоянии всех заданий. Для этого ему необходимо иметь информацию о всех заданиях, ждущих своей очереди на обработку (состояния хранения), и о всех состояниях, находящихся в работе (готовых, выполняемых или ожидающих).

    2. Обеспечивает определенные правила выбора заданий на обработку (перевода процессов из состояния хранения в сотояние готовности). Для принятия этого решения необходимы следующие характеритикизаданий: приоритет, необходимые ресурсы, равномерность загрузкки оборудования вычислительной системы.

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

    4. Освобождает ресурсы после выполнения задания.


    Информация о каждом задании в системе представляется с помощью отдельного блокка управления заданием. Этот блок создается в момент перехода задания в состояние хранения, и в него заносится информация о состоянии задания и его позиции в очереди задания. В этом юлоке могут присутствовать поля: илентификатор задания, текущее состояние, приоритет, оценка времени выполения и т.д.

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

    Планирование заданий может преследовать различные цели:


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

    2. Максимальная загрузка процессора должна быть постоянной (следовательно необходимо выполнять только длинные вычислительные задания).

    3. Обрабатывать все задания по справедливости (встает вопрос о выборе критерия "справедливости").


    В зависимости от целей выбираются дисциплины планирования. При выборе дисциплины необходимо выполнит одно или несколько требований:

    1. Необходимо упорядочивание доступа к критическим (ограниченым) ресурсам.

    2. Быстрая обработка должна иметь более высокую цену.

    3. Чем больше ресурсов запрашивает задание, тем дольше оно ожидает их выделения.

    4. Обеспечить сбалансированность загрузки системы ( сбалансированноть загрузки всех ресурсов).

    5. Гарантированное обслуживание - утановление ограничения на время ожидания.

    6. Гарантированное время завершения задания.


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


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

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

    3. Минимизация предполагаемого времени ответа для систем с разделением времени.

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




    1. Понятие приоритета.


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


    • фиксированный приритет, определенный заранее, функция запрашиваемого времени обслуживания и т. п.

    • меняющийся с течение времени приоритет, функция прошедшего времени ожидания, прошедшего времени обслуживания и т.п.




    1. Типы ОС по архитектурам их ядра




      1. ОС с монолитным ядром



    Рис. 1. Монолитная ОС


    Рис. 2. Трехуровневая монолитная ОС


      1. ОС с микроядром





      1. Сетевые ОС





    1. Базовые объекты ОС.


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

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

    Для этого подхода характерно наличие двух механизмов межпрограммного взаимодействия: один - для подпрограмм, выполняющихся в одном адресном пространстве, другой - для подпрограмм, выполняющихся в разных пространствах. Во втором случае параметры и результаты могут быть только значениями. Передача параметров-значений может трактоваться как передача сообщения от одной задачи к другой, а передача результата - как передача ответа. Эти передачи осуществляет ядро ОС, которому доступна вся память.

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

    Рассмотрим примитивы управления этими объектами.Примитивы реализуются ядром ОС.

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


    1. ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ), где Nз - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина.

    2. ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ) <ИДС>, где Nз - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина. ИДС - идентификатор отправленного сообщения (выходной параметр).

    3. ПРИНЯТЬ СООБЩЕНИЕ (Nв1,...,Nвn,СООБЩ) <ИДС,Nвi>, где Nв1,...,Nвn - список входов в задачу, по которым разрешен прием сообщений. СООБЩ - адрес буфера и его длина, куда будет помещено сообщение. ИДС - идентификатор принятого сообщения, Nвi - идентификатор входа, по которому было получено сообщение. ИДС и Nвi - выходные параметры.

    4. ПОСЛАТЬ ОТВЕТ (ИДС, ОТВЕТ), где ИДС - идентификатор принятого сообщения, на который посылается ответ. ОТВЕТ - адрес и длина посылаемого ответа.

    5. ЖДАТЬ ОТВЕТА (ИДС1,...,ИДСn) <ИДСi>, где ИДС1,...,ИДСn - список идентификаторов отправленных сообщений, по которым ожидаются ответы. ИДСi - идентификатор отправленного сообщения, на который получен ответ.

    6. ЖДАТЬ ВРЕМЯ (Т), где Т - интервал времени, истечения которого ожидает выдавшая примитив задача.


    Кроме перечисленнных примитивов возможны примитивы, которые составляют комбинации примитивов 3, 5 и 6. Существует разновидность примитива 4 - ПОСЛАТЬ ОТРИЦАТЕЛЬНЫЙ ОТВЕТ - в результате выполнения которого будет сгенерирована исключительная ситуация в задаче-отправителе. Семантически примитивы 1-5 соответствуют конструкциям: вызов подпрограммы, вход в подпрограмму и возврат из нее.

    Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО, откладывается до момента выдачи примитива ПОСЛАТЬ ОТВЕТ ее задачей-партнером и переписи ответа в буфер под ответ. Соответственно, задача, давшая примитив ПРИНЯТЬ СООБЩЕНИЕ, либо получает сообщение, если оно есть, либо откладывается до тех пор, пока от одного из ее партнеров не поступит примитив ПОСЛАТЬ СООБЩЕНИЕ и сообщение не перепишется в буфер. Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО, будет продолжать свое выполнение до тех пор, пока не будет выдан явный примитив ожидания сообщения, ответа, времени либо их комбинации. Перепись сообщения из адресного пространства задачи - отправителя в адресное пространство задачи-получателя происходит без промежуточных системных буферов, поэтому для корректной работы повторно использовать память, в которой располагается сообщение, можно только после получения соответствующего ответа на данное сообщение.

    Для задач ОС уникальные идентификаторы фиксированы. Для пользовательской задачи уникальный идентификатор вырабатывается при ее образовании и может быть известен другой задаче через посредство задачи ОС. Уникальные идентификаторы отправленных и полученных сообщений вырабатываются при выполнении примитива ПОСЛАТЬ СООБЩЕНИЕ.

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

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

    Существует ряд программ ОС, для выполнения которых требуется привилегированный режим. К ним относятся программы управления оперативной памятью, массовой памятью, дисковой и т.д. Поэтому эти программы оформляются в виде "псевдозадач". Псевдозадачи имеют собственные уникальные идентификаторы, они взаимодействуют с другими задачами, используя примитивы обмена сообщениями, но в отличие от обычных задач выполняются в привилегированнном режиме, не имеют своего изолированного адресного пространства и виртуального комплекта основных и промежуточных регистров.

    Категория псевдозадач позволяет разгрузить ядро от таких функций, как управления задачами, собственно обработка прерываний, управление оперативной памятью. Функциями ядра остаются только управление передачей сообщений, управление процессором, временем и дешифрация прерываний. Обработку прерываний выполняет соответствующая псевдозадача.

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

    используемых трактах: задача пользователя - задача ОС, и позволяет самим системным задачам решать, кто имеет право к ним обращаться. Так, например, псевдозадача управления оперативной памятью разрешает обрашаться с командами запроса и возврата памяти только Инициатору-Терминатору, а с командами запроса и возврата буферов-только псевдозадаче обмена с внешней памятью.

    Таким образом, операционная система состоит из ядра, псевдозадач и задач. Каждая из задач выполняется в изолированном адресном пространстве. Взаимодействие и синхронизация взаимодействия задач (включая псевдозадачи) осуществляется средствами обмена сообщениями. Программы ОС размещаются и в адресном пространстве пользовательской задачи. Это системные программы, реализующие методы доступа к файлам и программам, выполняющимся на внешней машине, а также программы, интерпретирующие конструкции языка управления заданиями.
    8. Основные функции ядра


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


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

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


      1. Планирование заданий с простой очередностью.


    Данное планирование носит название планирования по принципу FIFO "первым пришел, первым обслужен" (First In, First Out).

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

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


      1. Планирование заданий с преимущественным выбором коротких заданий.


    Shorrtest Job First или SJF.

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

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

    Недостатки:


    • риск отстранения выполнения длинных заданий при повышенной норме прибытия коротких заданий;

    • необходимо заранее точно знать время обслуживания.




      1. "Следующий - с большим ответным отношением".


    Highest Response Ratio Next или HRN

    Способ устраняет недостатки метода SJF.

    Заданиям придается приоритет, возрастающий с ростом времени их пребавания в осереди. Исходный приоритет всегда определяется по запрашиваемому времени обслуживания. При одинаковом времени ожидания приоритет отдается более коротким заданиям. На практике приоритеты пересчитываются через определенные промежутки времени и в соответствии с изменениями очередь переупорядочивается.

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


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


    Используется информация о будующем поведении системы. Если известно, что с минуты на минуту поступят два коротких задания, стоит ли начинать длинное задание?

    Недостатки:


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

        2. Трудность прелвидения.

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

        4. Необходимость учитывания других ресурсов кроме процессора.



      1. Оценка эффективности выполнения:




    • Время обращения задания.

    • Время выполнения задания.

    • Взвешенное время обращения - отношение времени обращения к действительному времени выполнения задания.




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


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

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

    Процессорное время - сумма квантов времени ЦПУ, затраченного на выполнение данного задания.

      1. Без учета ввода-вывода.


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

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


    5

    -

    -

    -

    -

    -

    -

    -

    х

    4

    -

    -

    -

    -

    -

    -

    х

    -

    3

    -

    -

    -

    -

    х

    -

    -

    -

    2

    -

    -

    х

    -

    -

    -

    -

    -

    1

    -

    -

    -

    -

    -

    -

    -

    -

    - выполнение или готовность

    х - время поступление

     

    Рисунок -1. Мультипрограммное выполнение пяти заданий - без совмещения по вводу-выводу.

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

    Среднее взвешенное время обращения улучшается.

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


      1. С учетом ввода-вывода.


    На практике заметная часть времени выполнения задания тратится на ожидание завершения необходимых для его работы операций ввода вывода, выполнение которых может быть совмещено с обработкой ЦП других заданий. Вместо ожидания процессор мог бы переключиться на обработку другого задания.

    Следовательно планировщик должен таким образом создавать процессы заданий, чтобы наиболее оптимально загрузить все устройств машины. Конфликты процессов будут создавать среднее время ожидания.


      1. С учетом требования к памяти и без учета ввода вывода.


    Для выполнения программы необходимо выделить определенное количество основной памяти. Но в любой системе память конечна, и ее выделение процессам подвержено определенным алгоритмам и условиям. Привести пример.

    Конфликты по памяти также увеличивают среднее время ожидания.



      1. С учетом требований к памяти внешним устройствам без учета ввода вывода.


    Конфликты возникающие при распределении внешних устройств, могут заметно отразиться на эффективности вычислительного процесса. Привести пример.


      1. Обобщение результатов.

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

        2. Планирование по принципу "сначала короткие задания" обеспечивает уменьшение среднего времени обращения, но отдает явное предпочтение коротким заданиям.

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

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




    1. Уровни систем планирования.




      1. Двухуровневая система планирования.






      1. Трехуровневая система планирования.





    1. Планировщик процессов.


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

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

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


      1. Функции.


    Планировщик процессов должен выполнять следующие функции:


        1. Регистрация информации о состоянии процессов.

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

        3. Выделение процессоров процессам.

        4. Освобождение процессоров от использующих их процессов.




      1. . Учет информации о состоянии процессов.


    Эту функцию выполняет регулировщик процессов.

    Представляет информацию о каждом процессе в системе в виде отдельной управляющей таблицы, называемой блоком управления процессов(PCB). Эта таблица - единственная "осязаемая" составная часть процесса.

    Примерная информация таблицы:


    • идентификатор процесса;

    • текущее состояние;

    • приоритет;

    • область сохранения регистров;

    • указатель цепочки (адрес следующего PCB в том же состоянии) и др.


    Все PCB, представляющие процессы, находящиеся в одинаковых состояниях (готовности, ожидания и т.п.), связаны в одну цепочку. Данной очереди присваивается специальное название, например очередь готовых процессов.

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

    Очередь ждущих процессов может состоять из подочередей, каждая из которых - цепочка PCB процессов, находящиеся в ожидании по одной и той же причине. Если процесс запрашивает уже занятое устройство, его PCB приписывается к очереди, связанной с этим устройством.

    Когда устройство освободится, регулировщик посмотрит соответствующую цепочку PCB на наличие ожидающих процессов. Если такие процессы имеются - регулировщик вновь переводит их в состояние готовности, после чего процесс может повторно выдать запоос на устройства.

    Другой вариант: устройство выделяется одному из процессов и процесс переводится в состояние готовности, в то время как остальные процессы, запрашивающие это устройство, будут по прежнему находится в состоянии ожидания.


      1. Дисциплины обслуживания.


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

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

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

    • выполнение процесса завершено;

    • процесс перешел в состояние ожидания;

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

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

    • произошла ошибка.

    Решение о выборе процесса на обслуживание принимается путем просмотра очереди готовых PCB в соответствии с принятой дисциплиной обслуживания.

    Способы организации готовых PCB:


        1. При переводе процесса в состояние готовности (из состояний хранения, выполнения или ожидания), его PCB помещается в соответствующую приоритету процесса позицию очереди. Когда процессор освобождается, он переключается на обслуживание процесса, стоящего в очереди первым.

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




      1. Равномерное циклическое квантование.


    Длительность обслуживания каждого процесса ограничена величиной стандартного времени.


      1. Приоритет по характеру использования предшествующего кванта.


    Если процесс полностью использовал свой предшествующий квант времени, он помещается в конец очереди. Если он использовал только половину(например блокировка по ввод/вывод), он попадает в середину очереди ("справедливая").

    Данная дисциплина хороша для обслуживания процессов с интенсивным вводом выводом.


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

        2. Принудительный приоритет. Выбирается процесс с наивысшим приоритетом из всех готовых. Приоритет назначается исходя из важности соответствующей работы или с учетом дополнительной оплаты.

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

        4. Сбалансированная загрузка. Для предотвращения простоя внешних устройств предпочтение отдается процессам, интенсивно использующим ввод/вывод.




      1. Предпочтительное обслуживание интерактивных процессов.


    Если при решении задачи осуществляется оперативное взаимодействие с пользователем (интерактивные задачи), обслуживание соответствующего процесса начинается сразу после запроса пользователя. С помощью такой дисциплины удается обеспечить малое время реакции системы.


      1. . Автоматические приоритеты.

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

    • ОС может повышать приоритеты коротких заданий;

    • автоматическое назначение приоритетов, приводящее к сбалансированной загрузке оборудования (совместное выполнение двух процессов: 1 интенсивно использует ввод/вывод; другой использует его в малой степени).

    При выполнении двух процессов со сходными характеристиками, может возникнуть ситуация перегрузки одного из ресурсов с одной стороны и простоя другого ресурса с другой стороны. Для предотвращения такой ситуации ОС производит постоянную коррекцию приоритетов.


      1. Модель типа вертушки (круговорот) и ее варианта


    Процессор последовательно выбирается процессом в течении фиксированного промежутка времени, называемого квантом. Если процесс заканчивается или блокируется до конца кванта, то процессор сразу же передается следующему процессу. Процессы упорядочиваются в последовательную очередь, указатель активации, который перемещается при каждом новом назначении процессора, выделяет избранный процесс.

    В модели много уровневой вертушки дополнительно уменьшается время обслуживания коротких заданий. Она содержит n очередей ожидания F0,.....,Fn-1. С каждой очередью Fi связан квант Qi, величина которого растет с увеличением i. Задание из очереди Fi обрабатывается только в том случае, если все очереди с меньшими номерами i пусты. Когда квант времени израсходован на задание из очереди Fi, а соответствующее задание еще не окончено , оно помещается в очередь Fi+1, задания из очереди Fn-1 возвращаются в эту же очередь. Новые задания попадают в очередь F0.


      1. Диаграммы работы состояний процессов.




        1. Простой алгоритм обслуживания.


    Различаются два типа состояния готовности: низкоприоритетная и высокоприоритетная.

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


    • выбор на обслуживание процесса из очереди высокоприоритетных готовых процессов.

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


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


        1. Альтернативный алгоритм.


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

    Состояние ожидания может быть трех видов:


    • блокировка по обмену с терминалами;

    • блокировка по обмену с накопителями;

    • блокировка по обмену с внешней страничной памятью.



    Готовые процессы подразделяются на три группы:


    • низкоприоритетные процессы с преимущественным счетом;

    • высокоприоритетные процессы с преим. ввод/вывод;

    • среднеприоритеные процессы с преим. ввод/вывод.



    Алгоритм обслуживания состоит в выборе процесса из очереди высокоприор. Готовых процессов, если очередь пуста - из более низких очередей по приоритету.

    Реализуются несколько частных дисциплин.


    1. Регулировщик процессов.


    Функции:

      1. Регистрация информации о состояниях всех процессов находящихся в стадиях : выполнения, готовности или ожидания.

      2. Подключение процессора к процессу. При этом значения регистров устанавливаются в соответствие с текущим состоянием процесса.

      3. Отключение процессора от процесс(при истечении выделенного интервала времени, при завершении работы, при переходе процесса в состояние ожидания). Значения управляющих регистров, отражающих состояние процесса, сохраняются для последующего восстановления процесса (данное действие отсутствует при завершении работы процесса).




    1. Реализация основных функций ОС:




      1. Структуры данных для реализации функций управления процессами и ресурсами (дескрипторы процессов, ресурсов, обобщенная очередь).

      2. Стратегии и дисциплины выделения ресурсов (определение, цели и критерии выбора).

      3. Планирование и диспетчеризация процессов, дисциплины планирования.

      4. Управление процессами в современных ОС (Windows NT и Windows 95, OS/2, Novell NetWare).


    9. Драйвер ОС
    Ответ на вопрос заключается в обобщении главы 25.
    10. Типы драйверов
    Ответ на этот вопрос вы можете найти в главах 54, 25.
    11. Типы многозадачности, их особенности
    Существует два основных типа процедур планирования процессов - вытесняющие (preemptive) и невытесняющие (non-preemptive).

    Non-preemptive multitasking - невытесняющая многозадачность - это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс.

    Preemptive multitasking - вытесняющая многозадачность - это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей.

    Понятия preemptive и non-preemptive иногда отождествляются с понятиями приоритетных и бесприоритетных дисциплин, что совершенно неверно, а также с понятиями абсолютных и относительных приоритетов, что неверно отчасти. Вытесняющая и невытесняющая многозадачность - это более широкие понятия, чем типы приоритетности. Приоритеты задач могут как использоваться, так и не использоваться и при вытесняющих, и при невытесняющих способах планирования. Так в случае использования приоритетов дисциплина относительных приоритетов может быть отнесена к классу систем с невытесняющей многозадачностью, а дисциплина абсолютных приоритетов - к классу систем с вытесняющей многозадачностью. А бесприоритетная дисциплина планирования, основанная на выделении равных квантов времени для всех задач, относится к вытесняющим алгоритмам.

    Основным различием между preemptive и non-preemptive вариантами многозадачности является степень централизации механизма планирования задач. При вытесняющей многозадачности механизм планирования задач целиком сосредоточен в операционной системе, и программист пишет свое приложение, не заботясь о том, что оно будет выполняться параллельно с другими задачами. При этом операционная система выполняет следующие функции: определяет момент снятия с выполнения активной задачи, запоминает ее контекст, выбирает из очереди готовых задач следующую и запускает ее на выполнение, загружая ее контекст.

    При невытесняющей многозадачности механизм планирования распределен между системой и прикладными программами. Прикладная программа, получив управление от операционной системы, сама определяет момент завершения своей очередной итерации и передает управление ОС с помощью какого-либо системного вызова, а ОС формирует очереди задач и выбирает в соответствии с некоторым алгоритмом (например, с учетом приоритетов) следующую задачу на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков.

    Для пользователей это означает, что управление системой теряется на произвольный период времени, который определяется приложением (а не пользователем). Если приложение тратит слишком много времени на выполнение какой-либо работы, например, на форматирование диска, пользователь не может переключиться с этой задачи на другую задачу, например, на текстовый редактор, в то время как форматирование продолжалось бы в фоновом режиме. Эта ситуация нежелательна, так как пользователи обычно не хотят долго ждать, когда машина завершит свою задачу.

    Поэтому разработчики приложений для non-preemptive операционной среды, возлагая на себя функции планировщика, должны создавать приложения так, чтобы они выполняли свои задачи небольшими частями. Например, программа форматирования может отформатировать одну дорожку дискеты и вернуть управление системе. После выполнения других задач система возвратит управление программе форматирования, чтобы та отформатировала следующую дорожку. Подобный метод разделения времени между задачами работает, но он существенно затрудняет разработку программ и предъявляет повышенные требования к квалификации программиста. Программист должен обеспечить "дружественное" отношение своей программы к другим выполняемым одновременно с ней программам, достаточно часто отдавая им управление. Крайним проявлением "недружественности" приложения является его зависание, которое приводит к общему краху системы. В системах с вытесняющей многозадачностью такие ситуации, как правило, исключены, так как центральный планирующий механизм снимет зависшую задачу с выполнения.

    Однако распределение функций планировщика между системой и приложениями не всегда является недостатком, а при определенных условиях может быть и преимуществом, потому что дает возможность разработчику приложений самому проектировать алгоритм планирования, наиболее подходящий для данного фиксированного набора задач. Так как разработчик сам определяет в программе момент времени отдачи управления, то при этом исключаются нерациональные прерывания программ в "неудобные" для них моменты времени. Кроме того, легко разрешаются проблемы совместного использования данных: задача во время каждой итерации использует их монопольно и уверена, что на протяжении этого периода никто другой не изменит эти данные. Существенным преимуществом non-preemptive систем является более высокая скорость переключения с задачи на задачу.

    Примером эффективного использования невытесняющей многозадачности является файл-сервер NetWare, в котором, в значительной степени благодаря этому, достигнута высокая скорость выполнения файловых операций. Менее удачным оказалось использование невытесняющей многозадачности в операционной среде Windows 3.х.

    Однако почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений (UNIX, Windows NT, OS/2, VAX/VMS), реализована вытесняющая многозадачность. В последнее время дошла очередь и до ОС класса настольных систем, например, OS/2 Warp и Windows 95. Возможно в связи с этим вытесняющую многозадачность часто называют истинной многозадачностью.

    Средства синхронизации и взаимодействия процессов
    1   2   3   4   5   6   7   8   9   ...   29


    написать администратору сайта