Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиС.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.5 Mб
Скачать

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 соответствуют конструкциям: вызов подпрограммы, вход в подпрограмму и возврат из нее.

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

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

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

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

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

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

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

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

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

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