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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

. Принцип особого режима работы
Ядро операционной системы и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме работы процессора (привилегированном).
Принцип виртуализации
Сейчас используется практически в любой операционной системе.
Виртуализация ресурсов позволяет:
организовать разделение тех ресурсов между вычислительными процессами, которые не должны разделяться;
абстрагироваться от конкретных ресурсов, обобщить их свойства и работать с некоторой абстракцией.
Принцип мобильности
Мобильность, или переносимость, означает возможность и легкость переноса операционной системы на другую аппаратную платформу. Мобильная операционная система обычно разрабатывается с помощью специального языка высокого уровня, предназначенного для создания системного программного обеспечения. Одним из таких языков является язык С, а также C++.
Принцип совместимости
Одним из аспектов совместимости – способность операционной системы выполнять программы, написанные для других систем или для более ранних версий данной операционной системы, а также для другой аппаратной платформы.
Необходимо разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений.
Принцип генерируемоемости
Исходное представление центральной системной управляющей части операционной системы должно обеспечивать возможность настройки, исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач.
? Под генерацией операционной системы понимается ее сборка (компоновка) из отдельных программных модулей. В результате генерации получают скомпонованные двоичные коды операционной системы и построенные системные таблицы, отражающие конкретную конфигурацию компьютера.
? Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка для этой программы. В результате генерации получается полная версия операционной системы.
Принцип открытости
Открытая операционная система доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Необходимо, чтобы можно было легко внести дополнения и изменения, если это потребуется, не нарушая целостности системы. К открытым операционным системам прежде всего следует отнести UNIX-системы.
14. Синхронизация параллельных процессов на низком уровне

Большинство приемов, применяемых для синхронизации процессов, тесно связаны с аппаратными средствами. Это блокировка памяти, операция “проверка и установка” и семафоры.

Блокировка памяти
Взаимоисключения могут быть реализованы аппаратно, если сделать операции над памятью неделимыми. То есть, если каждый из процессов пытается поместить какие-либо значения в одну и ту же ячейку, то спор разрешается аппаратурой: если одному процессу разрешается выполнить операцию засылки немедленно, то другому приходится ждать пока первый не закончит операцию — такое разрешение спора и называется блокировкой памяти(storage interlock).Механизм блокировки памяти предотвращает одновременный доступ к разделяемой переменной, но не предотвращает чередование доступа. Таким образом, если критические интервалы исчерпываются одной командой обращения к памяти, данного средства может быть достаточно для непосредственной реализации взаимного исключения. Если же критические секции требуют более одного обращения к памяти, то задача становится сложной. Рассмотрим различные попытки использования механизма блокировки памяти для организации взаимного исключения при выполнении критических интервалов.

15. Решение задачи “обедающие философы”

Procedure Типичный_философ;

Begin

While (true) do

begin мыслить; есть

End

end;

Procedure Типичный_философ_А;

Begin

While (true) do

begin мыслить_некоторое время;

взять_обе_вилки;

есть_некоторое время;

положить_обе_вилки

End

end;

Procedure Типичный_философ_В;

Begin

While (true) do

begin мыслить_некоторое время;

Repeat

взять_левую_вилку;

if правой_вилки_нет then положить_левую_вилку

else взять_правую_вилку

until в_руках_обе_вилки;

есть_некоторое время;

положить_левую_вилку;

положить_правую_вилку

End

end;

 

 

Билет № 10

1) Понятие виртуальной памяти

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

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

2) Стратегия управления памятью

Управление памятью можно представлять, как отображение информации в память посредством трех функций13.

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

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

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

 

Результат каждого из этих трех отображений зависит от времени. Это значит, что он может меняться в продолжение всего времени обработки задания системой, Например, результат отображения f1 не устанавливается до тех пор, пока задание не будет связано с системными модулями и файлами, которые в нем упоминаются. Результат отображения f2 может быть зафиксирован после загрузки задания. Однако при некоторых стратегиях распределения памяти отображение f2 меняется в течение всего времени, пока задание находится в оперативной памяти. Ясно, что результат отображения f3 меняется каждый раз, когда выполняется команда записи в память. Действие, состоящее в закреплении результатов одного из упомянутых отображений, называется привязкой. Время, когда происходит привязка отображения, называется моментом привязки. отображения. Привязка может происходить во время программирования задания или во время обработки задания операционной системой, например, во время компиляции. Иногда привязка отображения происходит так часто, что естественнее считать, что привязки вообще не происходит, например, для функции содержимого. Если функцию содержимого определяет пользователь, то функцию памяти и именующую функцию определяет ОС, а избранные изготовителем ОС моменты привязки являются важными ее характеристиками. Так ранняя привязка реализуется значительно проще, но, с другой стороны, для достижения большей гибкости системы, желательно, чтобы привязка происходила достаточно поздно, так как это дает возможность ОС перемещать задание в памяти, добиваясь ее максимальной загруженности

 

3) Решение задачи передачи данных одного процесса другому при помощи монитора (случай информационной базы)

 

monitor Читатели_Писатели;

Var

READERS: integer; {переменная указывает количество активных читателей, когда READERS = 0, ожидающий процесс-писатель получает возможность начать работу}

SmbWRITE: boolean; {somebody write - когда кто-то пишет эта

переменная имеет истинное значение}

PermREAD,

PermWRITE: condition; {permission read/write - пока не появится истинное значение условия читать разрешается,PermREAD - процесс-читатель не может продолжить свое выполнение; пока не появится истинное значение условия писать разрешается, Permwrite - процесс-писатель не может продолжить свое выполнение}

Procedure Начало_Чтения;

Begin



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 421; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.160.154 (0.009 с.)