Недостатки микроядерной архитектуры
Более низкая производительность. Это сказывается на скорости работы прикладных сред, а значит и на скорости выполнения приложений.
Вывод:
Микроядерная аппаратура является альтернативой классическому способу построения ОС, который предусматривает выполнение своих основных функций ОС в привилегированном режиме.
В микроядерных ОС в привилегированном режиме остается работать очень небольшая часть ядра, которая названа микроядром. Все остальные функции ядра оформляются в виде приложений, работающих в пользовательском режиме.
Микроядерные ОС удовлетворяют большинству требований, предъявляемых к совершенным ОС, обладая переносимостью, расширяемостью, надежностью и создают хорошие возможности для поддержки равпределенных приложений.
За эти достоинства приходится расплачиваться снижением производительности и это основной недостаток микропроцессорной архитектуры.
Микроядерную концепцию используют такие ОС, как Windows NT и некоторые версии ОС UNIX.
Дополнительная литература:
Андрей Рабаневский “Операционная система UNIX” Спб.: БХВ – Санкт-Петербург, 1999.
Процессы.
Процесс – основная единица работы в ОС. Рассмотрим сначала наиболее знакомый тип работы – последовательную программу.
Большую последовательную программу , написанную на алгоритмическом языке, можно подразделить на меньшие последовательные программы, называемые процедурами. Если рекурсия исключена, то процедура никогда не может приводиться в действие несколькими обращениями одновременно. Следовательно, любой работе, которая выполняется в данный момент, однозначно соответствует действующая процедура.
Однако, в ОС эта простая связь между выполняемыми работами и процедурами – утрачена. Одна процедура может работать одновременно в нескольких частях системы. Например, несколько каналов, связанных с дисками, могут разделять одну процедуру ввода и наоборот, функция, представляющая по смыслу единую операцию, например “ввод”, может каждый раз по ходу работы использовать одну или несколько различных процедур.
Взаимно однозначного соответствия между процедурами и выполняемыми работами, которое существует в языках последовательного программирования, в ОС нет. Поэтому понятия процедуры и работы нельзя считать эквивалентными.
Эта параллельность отражается и на программном оборудовании. ОС выполняет множество работ, которые движутся вперед почти независимо: ввод, вывод, вычисления на центральном процессоре.
Понятие процесса – формализация идеи “независимой работы”.
Периферийные устройства и связанные с ними каналы работают параллельно с блоком центрального процессора. В самом центральном процессоре тоже можно широко использовать параллелизм аппаратного оборудования. В системах аппаратного оборудования с несколькими арифметическими процессорами и большим числом каналов, работающих параллельно, организация работ становится сложной задачей.
В дополнение к множеству аппаратных устройств, работающих параллельно, может быть еще несколько заданий, которые также выполняются параллельно.
Эти параллельно выполняемые задания вообще не должны учитывать существование друг друга. Когда какое либо задание отдает приказ “печатать”, его не касается то, что другое в это время осуществляет запись на диск и т.д.
Чтобы получить адекватную модель такого функционирования, нудно ввести единицу работы, которая бы отражала эти параллельность, а это и есть процесс.
Поскольку, работы выполняются независимо и представляющие их процессы работают с различными скоростями, то должны допускаться произвольные соотношения скоростей выполнения процессов.
Итак, процессы– независимые работы, которые выполняются параллельно и различными скоростями.
Работам, иногда, все-таки необходимо обмениваться информацией. Поэтому они не вполне независимы. Однако общение между процессами должно проходить только по четким, строго определенным схемам во избежание путаницы и неопределенности.
Кроме того, делается допущение, что операции внутри процесса выполняются в строго определенной последовательности.
Следует попытаться дать формальное определение понятию процесса, поскольку существует очень определений этого понятия. Пусть – набор переменных, характеризующих состояние, называемый набором переменных состояния. Состояниеописывается задание значений всех элементов, входящих в набор переменных состояния.
Пространство состоянийдля данного набора переменных состояния – множество состояний, которые может принимать этот набор переменных.
Действие – присваивание значений некоторым из переменных данного набора. Последовательность состояний, принадлежащих пространству состояний, называется работой.
Один из способов произвести работу состоит в последовательном применении различных действий. Каждое действие порождает новое состояние, которое по определению и есть работа.
Функция действия– это функция, которая отображает состояние в действии. Функция действия может также порождать работу по заданному начальному состоянию. Они просто описывают действие, которое надо применить к каждому очередному состоянию, а это действие порождает новое состояние и т.д. до бесконечности.
На содержательном уровне набор переменных – память, состояние – содержимое памяти, функция действия – программа.
Следовательно, можно определить процесс как тройку: пространство состояний, функцию действия в этом пространстве состояний, и особые элементы этого пространства состояний – начальное состояние.
Пример:
Пусть задан процесс P имеющий две переменные x и y. Работу процесса Р можно описать последовательностью состояний: .
Работу процесса можно такде описать, указав пространство состояний , одно из начальных состояний и функцию действия, которая над всеми состояниями производит действия .
Каждое состояние процесса – это “моментальный снимок” хода работы, который выполняет процесс. Пусть программа вместе со своими переменными находится в оперативной памяти, можно проследить за выполнение программы, наблюдая за связанными с ней ячейками и регистрами. Последовательность состояний описывает ход работы программы в данной среде.
Ясно, что если у двух процессов отдельные наборы переменных состояния, то они не могут взаимодействовать. Общение между процессами обеспечивается разделяемыми переменными.
В ряде ОС кроме понятия процесс выделяется еще более мелкая единица, которая называется поток.
В чем же разница?
В ОС, где существуют и процессы, и потоки процесс рассматривается, как заявка на потребление всех видов ресурсов, кроме одного процессорного времени.
Это важнейший ресурс распределяется ОС между потоками, которые получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд. Потоки возникли как средства распараллеливания вычислений.
В простейшем случае процесс состоит из одного потока. В дальнейшем мы будем, с целью упрощения, отождествлять эти понятия и пользоваться термином процесс.
Дата добавления: 2016-06-15; просмотров: 2422;