Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Монолитная система





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

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

При обращении к системным вызовам, поддерживаемым операционной системой, параметры помещаются в строго определенные места – регистры или стек, после чего выполняется специальная команда прерывания, известная как вызов ядра или вызов супервизора. Эта команда переключает машину из режима пользователя в режим ядра и передает управление операционной системе (см. рис. 2.5, шаг 6). Затем операционная система проверяет параметры вызова, чтобы определить, какой системный вызов должен быть выполнен. После этого операционная система обращается к таблице как к массиву с номером системного вызова в качестве индекса. В k-м элементе таблицы содержится ссылка на процедуру обработки системного вызова k.

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

 

Структура системы:

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

2. Набор сервисных процедур, реализующих системные вызовы.

3. Набор утилит, обслуживающих сервисные процедуры.

Простая модель монолитной системы

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

Этапы обработки вызова:

· Принимается вызов

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

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

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


Многоуровневая структура ОС

 

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

Первой многоуровневой системой была система THE, созданная в Technische Hogeschool Eindhoven (Нидерланды) Э. Дейкстроем (Е.W. Dijkstra) и его студентами в 1968 г. Она была простой пакетной системой для голландского компьютера Electrologica X8, память которого состояла из 32 Кб 27-разрядных слов. Система включала 6 уровней (рис. 2.7):

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

– уровень 1 управлял памятью, он выделял процессам пространство в оперативной памяти и на магнитном барабане объемом 512 Кб слов для тех частей процессов (страниц), которые не помещались в оперативной памяти;

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

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

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

– уровень 5 предназначался для процесса системного оператора.

Уровни Функции
  Оператор Программы пользователя Управление вводом-выводом Связь оператор-процесс Управление памятью и барабаном Распределение процессора и многозадачность

 

Рис. 2.7. Структура операционной системы THE

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

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

 

Пример структуры многоуровневой системы

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

· Высокая производительность

Недостатки:

· Большой код ядра, и как следствие большое содержание ошибок

· Ядро плохо защищено от вспомогательных процессов

Пример реализации многоуровневой модели UNIX.

 

 

Структура ОС UNIX

 

 

Ядро ОС UNIX

 

Пример реализации многоуровневой модели Windows

 

Структура Windows 2000

 

Date: 2015-08-24; view: 5083; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию