close

Вход

Забыли?

вход по аккаунту

?

20 (5)

код для вставкиСкачать
БИЛЕТ 20
1. Понятие виртуальной машины.
Виртуальные машины развились на основе проработки двух принципов: 1. система с разделением времени обеспечивает многозадачность, 2. расширенную машину с более удобным интерфейсом, чем предоставляемый непосредственно оборудо-ванием. Первая ОС такого рода VM/370. Монитор виртуальной машины работает с оборудованием и обеспечивает многоза-дачность, предоставляя верхнему слою не одну, а несколько виртуальных машин. В отличие от других ОС, эти ВМ не явля-
ются расширенными, а представляют собой точную копию аппаратуры, включая режимы ядра и пользователя, ВВ, прерыва-ния и т.д. В итоге на каждой из таких ВМ может быть запущена любая ОС. Когда программа выполняет системный вызов, он прерывает ОС на виртуальной машине, а не на VM/370. В случае ВМ многозадачность реализуется на уровне ядра, и она отделена от ОС пользователя. Недостаток в том, что снижается эффективность, кроме того, подобные системы очень гро-моздки. Однако имеется возможность использования на одной машине программ, написанных для разных ОС. Сейчас ВМ используются несколько в ином контексте. Например, для организации нескольких операционных сред. Примером этого является VDM-машина (Virtual DOS machine) - защищенная подсистема, предоставляющая полную среду MS-DOS и кон-соль для выполнения ее приложений. Одновременно может выполняться практически произвольное число VDM-сессий. Од-нако здесь пользователю предоставляется виртуальный процессор 8086, не обладающий функциональностью реальной сис-темы на уровне Pentium. Понятие виртуальной машины используется и при построении Java-апплетов. Компилятор Java строит код для JVM. Этот код может быть выполнен на любой платформе, для которой существует интерпретатор JVM. Развитие концепции ВМ привело к появлению систем, обеспечивающих пользователя абсолютной копией реального компь-ютера, но с подмножеством ресурсов. На нижнем уровне в режиме ядра работает программа, называемая экзоядром, рас-пределяющая ресурсы для ВМ и защиту их использования. Каждая ВМ на уровне пользователя может работать со своей собственной ОС, с тем отличием, что она ограничена предоставленным набором ресурсов. Преимущество схемы в том, что не требуется таблицы преобразования адресов ВМ в реальные адреса диска, так как каждой ВМ выделяется свой блок адре-сов.
2. Сообщения, очереди и буферы сообщений, порты.
Процессы в ОС могут обмениваться сообщениями. Для хранения посланного, но еще не полученного сообщения, необходимо место, называемое почтовым ящиком или буфером сообщения. Если процесс хочет общаться с другим процессом, то он просит систему выделить ему почтовый ящик, который свяжет эти два процесса. Для отправления сообщения процесс просто помещает его в почтовый ящик, откуда второй процесс может взять его в любое время. Второй процесс должен знать о существовании ящика, и для получения сообщения выполнить к нему обращение. Если объем данных велик, целесообразно не помещать их в ящик, а оставлять всего лишь информацию, где их можно найти. Если почтовый ящик не связан жестко с конкретными процессами, то сообщение должно содержать идентификаторы и про-цесса отправителя и процесса получателя. Почтовый ящик состоит из заголовка, где содержится информация о ящике и из нескольких буферов (ячеек) для сообщений. В простейшем случае сообщения передаются только в одном направлении. Про-цесс может посылать сообщения, пока есть свободные ячейки. Если они все заполнены, то процесс может или ожидать или выполнять другие операции. Аналогично и процесс получатель может получать сообщения, пока есть заполненные ячейки. Можно организовать более сложные ящики. Например, двунаправленные. Такой ящик позволяет подтверждать прием сооб-щений. Чтобы гарантировать доставку подтверждения в случае, когда все ячейки заняты, подтверждение помещается туда же, где лежало исходное сообщение. В эту ячейку не может быть помещено новое сообщение до тех пор, пока не будет по-лучено подтверждение. Как правило, используется буфер из определенного количества элементов, тип которых задается при создании ящика. Для реализации механизма достаточно двух примитивов: send - отправить, и receive - принять. Примитивы имеют два парамет-ра, один из которых - собственно сообщение или его адрес, второй параметр указывает или идентификатор взаимодейст-вующего процесса, или идентификатор почтового ящика. Еще один вариант организации сообщений - не использовать бу-феризацию. В этом случае, если send выполняется раньше receive, посылающий процесс блокируется до выполнения receive, когда сообщение может быть напрямую скопировано от производителя к потребителю без промежуточной буферизации и наоборот. Этот метод называется рандеву, он легче реализуется, чем схема с буферизацией, однако процессы должны быть жестко синхронизированы. Примитивы send и receive имеют скрытый механизм взаимоисключения, а в большинстве систем и блокировки при чтении из пустого ящика или записи в заполненный. Однако, несмотря на простоту использования, это решение менее производительно. Очереди сообщений. Очереди сообщений позволяют обрабатывать сообщения в соответствии с разными дисциплинами обслуживания: - FIFO - первым пришел первым ушел (очередь). - FILO - первым пришел последним вышел (стек) - приоритетный - в зависимости от приоритета - произвольный
В отличие от рассмотренных вариантов, можно организовать такой режим, при котором прочитанное сообщение не удаляет-ся из очереди, и может быть прочитано повторно другими процессами. В очередях присутствуют не сами сообщения, а их адреса и размер. При этом используется общая для всех процессов память, и процесс должен вначале получить разрешение на доступ к ней с помощью системных запросов. Дополнительной информацией при работе с очередями служит флаг, ука-зывающий требуется ли ожидание, если очередь пуста (полностью заполнена). Очередь сообщений может быть реализована в виде порта. Право на отправку сообщений в конкретный порт могут иметь несколько разных процессов, но право получать сообщения из порта имеет только одна задача.
3. Структура элемента таблицы страниц в ОС Windows в неактивном режиме.
Элемент таблицы страниц второго уровня в Win32 имеет следующую 32 битную структуру
Он состоит из 2 больших полей - номера страницы в физической памяти (или ее физического адреса) и поля атрибутов. Ат-рибуты: U -резерв, в многопроцессорных системах указывает, можно ли записывать на эту страницу P - резерв Cw - резерв Gl -Global - трансляция относится ко всем процессам L -Large page - резерв, для элемента каталога страниц указывает, что элемент относится к 4 (2) Mb странице D -Dirty - страница модифицирована A -Accessed - была операция чтения с данной страницы Cd -Cashe disabled - кэширование данной страницы отключено Wt -Write through - отключает кэширование записи на данную страницу, в результате чего все измененные данные сбрасы-ваются непосредственно на диск O -Owner - указывает, доступна ли страница из кода пользовательского режима W -Write - в многопроцессорных системах указывает, можно ли записывать на эту страницу, в однопроцессорных - тип дос-тупа (для чтения и записи или только для чтения) V - Valid - указывает, соответствует ли элемент странице в физической памяти В случае, если страница не является действительной, т.е. младший бит = 0, состав и назначение остальных полей изменяется.
4. Структура загрузочной записи FAT 16, FAT 32.
Документ
Категория
Без категории
Просмотров
29
Размер файла
265 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа