Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Demo_Operacionnie_Systemi_230212

.pdf
Скачиваний:
61
Добавлен:
11.05.2015
Размер:
636.64 Кб
Скачать

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

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

ЗАДАНИЕ N 15 ( - выберите один вариант ответа)

В операционной системе UNIX сигналы можно рассматривать как простейшую форму взаимодействия между …

ВАРИАНТЫ ОТВЕТОВ:

1)

процессами

2)

процессорами

3)

сегментами

4)

каналами

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

ЗАДАНИЕ N 16 ( - выберите несколько вариантов ответа)

Область эффективного применения событийного программирования начинается там, где возникают …

ВАРИАНТЫ ОТВЕТОВ:

 

трудности декомпозиции

 

возможности декомпозиции

 

решаемой задачи, при которой

 

решаемой задачи, при которой

1)

генерация и обработка

2)

генерация и обработка

 

рассматриваются как

 

рассматриваются как объединенные

 

объединенные процессы

 

процессы

3)

необходимость использования

4)

неудобство использования графа

 

 

11

 

графа перехода между состояниями

переходов между состояниями

Событийно-ориентированное программирование (англ. event-driven programming; в дальнейшем СОП) — парадигма программирования, в которой выполнение программы определяется событиями — действиями пользователя (клавиатура, мышь), сообщениями других программ и потоков, событиями операционной системы (например, поступлением сетевого пакета).

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

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

Событийно-ориентированное программирование, как правило, применяется в трех случаях:

1.при построении пользовательских интерфейсов (в том числе графических);

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

3.при программировании игр, в которых осуществляется управление множеством объектов.

ЗАДАНИЕ N 17 ( - выберите один вариант ответа)

Два параллельных процесса могут быть …

ВАРИАНТЫ ОТВЕТОВ:

1)

взаимоисключающими

2)

независимыми

3)

критическими

4)

коммутационными

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

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

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

ЗАДАНИЕ N 18 ( - выберите один вариант ответа)

12

Главной целью мультипрограммирования в системах пакетной обработки является

ВАРИАНТЫ ОТВЕТОВ:

1)

обеспечение удобства работы

2)

минимизация простоев всех

 

пользователей

 

устройств компьютера

3)

минимизация времени выполнения

4)

обеспечение реактивности системы

одной задачи

Под мультипрограммированием понимается способ организации вычислений, когда на однопроцессорной вычислительной системе создается видимость одновременного выполнения нескольких программ. Любая задержка в решении программы (например, для осуществления операций ввода-вывода данных) используется для выполнения других (таких же либо менее важных) программ. Иногда при этом говорят о мультизадачном режиме, причем, вообще говоря, термины «мультипрограммный режим» и «мультизадачный режим» — это не синонимы, хотя и близкие понятия. Основное принципиальное отличие этих терминов заключается в том, что мультипрограммный режим обеспечивает параллельное выполнение нескольких приложений, и при этом программисты, создающие эти программы, не должны заботиться о механизмах организации их параллельной работы (эти функции берет на себя сама ОС; именно она распределяет между выполняющимися приложениями ресурсы вычислительной системы, осуществляет необходимую синхронизацию вычислений и взаимодействие). Мультизадачный режим, наоборот, предполагает, что забота о параллельном выполнении и взаимодействии приложений ложится как раз на прикладных программистов.

ЗАДАНИЕ N 19 ( - выберите один вариант ответа)

Учет участков свободной памяти с помощью связного списка свободных/занятых блоков позволяет …

ВАРИАНТЫ ОТВЕТОВ:

1)

находить в памяти наиболее долго

2)

выделять участки памяти

занятые участки

произвольных размеров

3)

освобождать память, занятую

4)

перемещать процессы в памяти

неактивными процессами

 

 

 

Управление свободным и занятым дисковым пространством Дисковое пространство, не выделенное ни одному файлу, также должно быть управляемым. В

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

Учет при помощи организации битового вектора

Учет при помощи организации связного списка

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

13

информацию.

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

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

ЗАДАНИЕ N 20 ( - выберите один вариант ответа)

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

ВАРИАНТЫ ОТВЕТОВ:

1)

аварийному завершению

2)

ускорению

3)

замедлению выполнения

4)

перезапуску

ЗАДАНИЕ N 21 ( - выберите несколько вариантов ответа)

Виртуальная память позволяет …

ВАРИАНТЫ ОТВЕТОВ:

 

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

 

загружать множество небольших

 

 

программ, суммарный объем

1)

прикладным процессам

2)

 

оперативной памяти

 

которых больше объема

 

 

физической памяти

 

 

 

 

загружать программы, размер

 

загружать программы,

3)

которых превышает объем

4)

скомпилированные для другого

 

доступной физической памяти

 

процессора

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

14

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

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.

Применение механизма виртуальной памяти позволяет:

упростить адресацию памяти клиентским программным обеспечением;

рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

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

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

ЗАДАНИЕ N 22 ( - выберите один вариант ответа)

Сегментная организация памяти … отдельно скомпилированных процедур.

ВАРИАНТЫ ОТВЕТОВ:

1)

состоит из

2)

упрощает компоновку

3)

невозможна без

4)

усложняет компоновку

ЗАДАНИЕ N 23 ( - выберите один вариант ответа)

При страничной организации памяти таблица страниц может размещаться в …

ВАРИАНТЫ ОТВЕТОВ:

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

2) в оперативной памяти и на диске

в специальной быстрой памяти 3) только в процессоре 4) процессора и в оперативной

памяти

Для быстрого поиска страниц, таблицы страниц (с дескрипторами страниц) размещают в КЭШ и оперативной памяти. Одна страница имеет как правило размер 4 КБ, таблица страниц имеет содержит 1024 дескриптора, дескриптор который описывает страницу имеет размер 32 бита Как и в случае с сегментным способом организации виртуальной памяти, страничный

15

механизм приводит к тому, что без специальных аппаратных средств он существенно замедляет работу вычислительной системы. Поэтому обычно используется кэширование страничных дескрипторов. Наиболее эффективным механизмом кэширования является ассоциативный кэш. Именно такой ассоциативный кэш и создан в 32-разрядных микропроцессорах i80x86. Начиная с i80386, который поддерживает страничный способ распределения памяти, в этих микропроцессорах имеется кэш на 32 страничных дескриптора. Поскольку размер страницы в этих микропроцессорах равен 4 Кбайт, возможно быстрое обращение к памяти размером 128 Кбайт.

ЗАДАНИЕ N 24 ( - выберите один вариант ответа)

Страничная организация предназначена для …

ВАРИАНТЫ ОТВЕТОВ:

 

облегчения совместного

 

повышения уровня защиты

1)

использования процедур, библиотек

2)

программ и данных

 

и массивов данных

 

 

 

получения большого адресного

 

 

3)

пространства без приобретения

4)

логического разделения программ и

дополнительной физической

данных

памяти

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

только чтение;

чтение и запись;

только выполнение.

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

ЗАДАНИЕ N 25 ( - выберите один вариант ответа)

При страничном сбое и отсутствии свободных блоков физической памяти операционная система должна …

ВАРИАНТЫ ОТВЕТОВ:

 

 

выбрать страницу-кандидат на

 

выбрать страницу-кандидат на

 

удаление из памяти и сохранить

1) удаление из памяти и сохранить

2)

удаляемую страницу на диске,

удаляемую страницу на диске

 

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

 

 

16

выбрать страницу, которая не

 

выбрать страницу-кандидат на

 

удаление из памяти и сохранить

3) изменялась, и сохранить удаляемую

4)

копию удаляемой страницы в

страницу на диске

 

таблице страниц

 

 

ЗАДАНИЕ N 26 ( - выберите один вариант ответа)

Полная реализация алгоритма LRU (Least Recently Used) …

ВАРИАНТЫ ОТВЕТОВ:

возможна при использовании 1) теоретически невозможна 2) стековой организации таблицы

страниц

возможна при условии построения 3) таблицы страниц в виде бинарных 4) практически невозможна

деревьев

LRU часто используется и считается хорошим. Основная проблема - реализация.

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

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

Алгоритм LRU (last recently used - использовавшаяся реже всего) - удаляется блок, к которому меньше всего обращались, требует специального аппаратного обеспечения.

Первый метод:

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

Второй метод:

В таблице страниц добавляется запись - счетчик обращений к странице. Чем меньше значение счетчика, тем реже она использовалась.

алгоритм старения (aging) - программная реализация LRU;

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

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

ЗАДАНИЕ N 27 ( - выберите один вариант ответа)

Запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы получает _____________ ввода-вывода.

17

ВАРИАНТЫ ОТВЕТОВ:

 

 

1)

контроллер

2)

диспетчер

3)

супервизор

4)

процессор

Управление вводом-выводом осуществляется компонентом операционной системы, который часто называют супервизором ввода-вывода.

Перечислим основные задачи, возлагаемые на супервизор.

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

2.Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.

3.Супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод (определяет очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.

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

5.При получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы) и передает управление соответствующим программам обработки прерываний.

6.Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода.

7.Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.

ЗАДАНИЕ N 28 ( - выберите один вариант ответа)

Мыши (в качестве устройства-указателя) относятся к _____________ устройствам ввода-вывода.

ВАРИАНТЫ ОТВЕТОВ:

1)

позиционируемым

2)

символьным

3)

адресуемым

4)

блочным

 

 

 

 

 

 

 

 

18

ЗАДАНИЕ N 29 ( - выберите один вариант ответа)

Любые операции по управлению вводом-выводом объявляются …

ВАРИАНТЫ ОТВЕТОВ:

1)

привилегированными

2)

универсальными

3)

приоритетными

4)

уникальными

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

Поэтому самым главным является следующий принцип: любые операции по управлению

вводом/выводом объявляются привилегированными и могут выполняться только кодом самой ОС. Для обеспечения этого принципа в большинстве процессоров даже вводятся

режимы пользователя и супервизора. Как правило, в режиме супервизора выполнение команд ввода/вывода разрешено, а в пользовательском режиме — запрещено. Использование команд ввода/вывода в пользовательском режиме вызывает исключение и управление через механизм прерываний передается коду ОС. Хотя возможны и более сложные системы, в которых в ряде случаев пользовательским программам разрешено непосредственное выполнение команд ввода/вывода.

ЗАДАНИЕ N 30 ( - выберите один вариант ответа)

Супервизор ввода-вывода инициирует операции ввода-вывода и в случае управления вводом-выводом с использованием прерываний предоставляет процессор …

ВАРИАНТЫ ОТВЕТОВ:

1)

супервизору прерываний

2)

диспетчеру задач

3)

задаче пользователя

4)

супервизору программ

Управление вводом-выводом осуществляется компонентом операционной системы, который часто

19

называют супервизором ввода-вывода.

Перечислим основные задачи, возлагаемые на супервизор.

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

2.Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.

3.Супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод (определяет очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.

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

5.При получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы) и передает управление соответствующим программам обработки прерываний.

6.Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода.

7.Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.

ЗАДАНИЕ N 31 ( - выберите один вариант ответа)

В режиме обмена с опросом готовности устройства ввода-вывода используется

_____________ центрального процессора.

ВАРИАНТЫ ОТВЕТОВ:

1)

рационально время

2)

нерационально память

3)

нерационально время

4)

рационально память

Имеются два основных режима ввода/вывода:

-режим обмена с опросом готовности;

-режим обмена с прерываниями.

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

Центральный процессор в таком режиме используется нерационально.

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

- секцию запуска, которая инициирует операцию ввода/вывода, включает устройство или инициирует очередь ввода/вывода;

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]