МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

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


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


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


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


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


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


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


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


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

Классификация ОС по особенностям методов построения ядра.





§ Монолитное ядро (monolithic kernel).

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

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

§ Слоеные системы(Layered systems).

Продолжая структуризацию, можно разбить всю вычислительную систему на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты из уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне. Впервые такой подход был применен при создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой и его студентами в 1968 г. Эта система имела следующие уровни:

Рис.4. Структура слоеной системы THE.

Преимущества:

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

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

· слоеные системы хорошо модифицируются. При необходимости можно заменить лишь один слой, не трогая остальные.

Недостатки:

· слоеные системы сложны для разработки: тяжело правильно определить порядок слоев, и что, к какому слою относится;

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

§ Микроядерная архитектура(microkernel architecture).

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

Рис. 5 Микроядерная архитектура операционной системы

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

Преимущества:

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

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

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

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

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

Недостатки:

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

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

§ Смешанные (гибридные) системы.

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

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


Раздел 2. Управление локальными ресурсами.

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

3. Управление процессами

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

Понятие процесса

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

Термин «процесс» впервые был применен в 60-х годах разработчиками ОС Multics. Есть много определений этого термина, в том числе:

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

· экземпляр программы, выполняющейся на компьютере

· объект, который можно идентифицировать и выполнять на процессоре

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

Термины "программа" и "задание" предназначены для описания статических, неактивных объектов. Программа же в процессе исполнения является динамическим, активным объектом. По ходу ее работы компьютер обрабатывает различные команды и преобразует значения переменных. Для ее выполнения операционная система должна выделить определенное количество оперативной памяти, закрепить за ней определенные устройства ввода-вывода или файлы, то есть зарезервировать определенные ресурсы из общего числа ресурсов всей вычислительной системы. Их количество и конфигурация могут изменяться с течением времени. Для описания таких активных объектов внутри компьютерной системы вместо терминов "программа" и "задание" используется новый термин "процесс".

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

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

Основные функции ОС, связанные с управлением процессами:

· создание и завершение процессов

· планирование и диспетчеризация (распределение времени) между процессами

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

· переключение процессов

· синхронизация и поддержка обмена информацией между процессами

· организация управляющих блоков процессов

Состояния процессов

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

Каждый процесс может находиться как минимум в двух состояниях: «процесс исполняется» и «процесс не исполняется».

Рис. 6. Простейшая диаграмма состояний процесса.

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

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

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

ИСПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

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

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

Рис. 7. Граф состояний процесса в многозадачной ОС

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

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

Рис. 8. Диаграмма состояний процесса в многозадачной ОС

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

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

Количество операций, совершаемых над процессами, совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары:

· Создание процесса - завершение процесса;

· Приостановка процесса (перевод из состояния исполнение в состояние готовность) - запуск процесса (перевод из состояния готовность в состояние исполнение);

· Блокирование процесса (перевод из состояния исполнение в состояние ожидание) - разблокирование процесса (перевод из состояния ожидание в состояние готовность);

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





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.