Задачу планирования процессов можно целиком возложить на приложения
Выталкивание случайной страницы (RANDOM). Если вам нужно иметь стратегию выталкивания страниц, которая характеризовалась бы малыми издержками и не являлась бы дискриминационной по отношению к каким-либо конкретным пользователям, то можно пойти по очень простому пути – выбирать случайную страницу. В этом случае все страницы, находящиеся в основной памяти, могут быть выбраны для выталкивания с равной вероятностью, в том числе даже следующая страница к которой будет производиться обращение (и которую, естественно, удалять из памяти наиболее нецелесообразно). Поскольку подобная стратегия по сути как бы рассчитана на “слепое” везение, в реальных системах она применяется редко.
Выталкивание первой пришедшей страницы (FIFO). При выталкивании страниц по принципу FIFO мы присваиваем каждой странице в момент поступления в основную память временную метку. Когда появляется необходимость удалять из основной памяти какую-нибудь страницу, мы выбираем ту, которая находилась в памяти дольше других. Интуитивный аргумент в пользу подобной стратегии кажется весьма весомым, а именно: у данной страницы уже были возможности “использовать свой шанс”, и пора дать подобные возможности и другой странице. К сожалению, стратегия FIFO с достаточно большой вероятностью будет приводить к замещению активно используемых страниц, поскольку тот факт, что страница находится в основной памяти в течение длительного времени, вполне может означать, что она постоянно в работе. Например, для крупных систем разделения времени стандартна ситуация, когда многие пользователи во время ввода и отработки своих программ совместно используют одну копию текстового редактора. Если в подобной системе выталкивать страницы по принципу FIFO, это может привести к удалению из памяти какой-либо интенсивно используемой странице редактора. А это будет безусловно нецелесообразно, поскольку её почти немедленно придется снова переписывать в основную память.
Выталкивание дольше всего не использовавшейся страницы (LRU).Эта стратегия предусматривает, что для выталкивания следует выбирать ту страницу, которая не использовалась дольше других. Здесь мы исходим из эвристического правила, говорящего о том, что недавнее прошлое – хороший ориентир для прогнозирования ближайшего будущего. Стратегия LRU требует, чтобы при каждом обращении к странице ее временная метка обновлялась. Это может быть сопряжено с существенными издержками, и поэтому стратегия LRU, хотя она и кажется весьма привлекательной, в современных системах реализуется редко. Чаще применяются близкие к LRU стратегии, для которых характерны меньшие издержки.
Выталкивание реже всего используемой страницы (LFU).Одной из близких к LRU стратегий является стратегия, согласно которой выталкивается наименее часто (наименее интенсивно) использовавшаяся страница (LFU). Здесь мы контролируем интенсивность использования каждой страницы. Выталкивается та страница, которая наименее интенсивно используется или обращения к которой наименее часты. Подобный подход опять-таки кажется интуитивно оправданным, однако в то же время велика вероятность того, что удаляемая страница будет выбрана нерационально. Например, наименее интенсивно используемой может оказаться та страница, которую только что переписали в основную память и к которой успели обратиться только один раз, в то время как к другим страницам могли уже обращаться более одного раза. Теперь работающий по принципу LFU механизм вытолкнет эту страницу, а она скорее всего сразу же будет использоваться.
Выталкивание не использовавшейся в последнее время страницы (NUR).Один из распространенных алгоритмов, близких к стратегии LRU и характеризующихся малыми задержками,– это алгоритм выталкивания страницы, не использовавшейся в последнее время (NUR) к страницам, которая в последнее время не использовались, вряд ли будут обращения и в ближайшем будущем, так что их можно заменять на вновь поступающие страницы.
Поскольку желательно заменять ту страницу, которая в период нахождения в основной памяти не изменялась, реализация стратегии предусматривает введение двух аппаратных битов – признаков на страницу. Это
а) бит-признак обращения
б) бит-признак модификации
Бит-признак модификации часто называют так же “признаком записи” в страницу. Стратегия NUR реализуется следующим образом. Первоначально биты-признаки обращения и модификации для всех страниц устанавливаются в 0. При обращении к какой-либо странице её бит-признак обращения устанавливается в 1, а в случае изменения содержимого страницы устанавливается в 1 её бит-признак модификации. Когда нужно выбрать страницу для выталкивания, прежде всего мы пытаемся найти такую страницу, к которой не было обращений (поскольку мы стремимся приблизиться к алгоритму LRU). В противном случае у нас не будет другого выхода, как вытолкнуть страницу, к которой были обращения. Если к странице обращения были, мы проверяем, подверглась ли она изменению или нет. Если нет, мы заменяем ее из тех соображений, что это связано с меньшими затратами, чем в случае замены модифицированной страницы, которую необходимо будет физически переписывать во внешнюю память. В противном случае нам придется заменять модифицированную страницу.
В много абонентских системах основная память, естественно, работает активно, так что рано или поздно у большинства страниц бит-признак обращения будет установлен в 1, и мы не сможем отличать те страницы, которые вытолкнуть наиболее целесообразно. Один из широко распространенных способов решения этой проблемы заключается в том, что все биты-признаки обращений периодически сбрасываются в 0, с тем чтобы механизм выталкивания оказался в исходном состоянии, а затем снова разрешается установка этих битов-признаков в 1 обычным образом при обращениях. Правда, в этом случае существует опасность того, что могут быть вытолкнуты даже активные страницы, однако только в течение короткого периода после сброса битов-признаков, поскольку почти немедленно биты-признаки обращений для этих страниц будут снова установлены в 1.
Описанный выше алгоритм NUR предусматривает существование четырех групп страниц:
Группа 1 | обращений не было | модификаций не было |
Группа 2 | обращений не было | модификация была |
Группа 3 | обращения были | модификаций не было |
Группа 4 | обращения были | модификация была |
4.1.3.2 Формулировка задачи
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 4. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 5. Алгоритм замещения страниц также задан в таблице 5. Номер варианта определяется по последней цифре зачетной книжки.
4.1.3.3 Пример решения
Пусть в оперативной памяти находится 10 из 1000 страниц виртуальной памяти:
№ | № вирт. страницы | Обращение в посл. время | Модификация |
Определить состояние оперативной памяти после выполнения следующей последовательности обращений: 7 (Запись), 251 (Чтение), 46 (запись) при использовании алгоритма NUR.
№ | № вирт. страницы | Обращение в посл. время | Модификация |
№ | № вирт. страницы | Обращение в посл. время | Модификация |
№ | № вирт. страницы | Обращение в посл. время | Модификация |
1 |
4.1.4.1 Элементы теории
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает: совокупность всех файлов на диске, наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске, комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Логическая организация файла. Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 4.2 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.
Рис. 4.2 - Способы логической организации файлов
Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации (рисунок 4.3,а), при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 4.3,б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Рисунок 4.3. Физическая организация файла а - непрерывное размещение; б - связанный список блоков;
в - связанный список индексов; г - перечень номеров блоков
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
4.1.4.2 Формулировка задачи
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 6. Последовательность обращений к API-функциям файловой системы задана таблицей 7. Вариант задания определяется последней цифрой зачетной книжки.
4.1.4.3 Пример решения
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид:
№ кл. | |||
Зн. | EOF | EOF | EOF |
Как изменится состояние таблицы размещения файлов FAT при следующей последовательности вызовов API – функций: 1)Создать файл А; 2)Создать файл В; 3)Записать в А 6кБайта; 4)Записать в В 2кБайт 5)Закрыть А 6)Удалить А 7)Записать в B 3 кБайта 8) Закрыть B.
При открытии файла в системе FAT производится поиск первого свободного кластера диска- это кластер 2. Аналогично поступаем и для файла B:
№ кл. | |||||
Зн. | EOF | EOF | EOF | EOF | EOF |
Файл | A | B | |||
Свободно | 4к | 4к |
Размер кластера жесткого диска – 4 кБайта, поэтому при записи фрагмента 6 кБайт файл будет занимать 2 кластера. При записи в файл В 2 кБайт нового кластера для него не потребуется.
№ кл. | |||||
Зн. | EOF | EOF | EOF | EOF | EOF |
Файл | A | B | А | ||
Свободно | 0к | 2к | 2к |
При удалении файла кластеры, которые он занимает, отмечаются как свободные.
№ кл. | ||||
Зн. | EOF | EOF | EOF | EOF |
Файл | B | |||
Свободно | 2к |
В кластере 3 имеется только 2кБайта свободного пространства. Поэтому при записи 3кБайт будет задействован первый свободный кластер 2.
№ кл. | ||||
Зн. | EOF | EOF | EOF | EOF |
Файл | B | B | ||
Свободно | 3к | 0к |
5 Курсовая работа
Цели и задачи курсовой работы, основные теоретические положений и варианты заданий изложены в методическом указании 5.
Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. – СПб.:Питер, 2001. – 544 с.
Операционная система UNIX / А. Робачевский. – CG. BHV, 1999. – 451 сю
Операционные системы/ Медник С., Донован Дж.. – М.: Мир, 1978. – 648 с.
Методические указания к курсовой работе по дисциплине «Операционные системы»/Сергеев Г.Г. –Севастополь: СевНТУ, 2002 г.
7 Варианты контрольных заданий
Таблица 1 – перечень контрольных теоретических вопросов
Таблица 2– Выбор контрольных вопросов в соответствии с номером варианта задания
№ Вар. | Вопросы | № Вар. | Вопросы | № Вар. | Вопросы | № Вар. | Вопросы | № Вар. | Вопросы |
1,15,51 | 2,13,34 | 3,21,48 | 4,25,53 | 5,16,54 | |||||
3,25,49 | 3,15,37 | 4,33,50 | 5,24,42 | 6,18,39 | |||||
2,18,44 | 4,12,52 | 5,29,53 | 6,17,41 | 7,24,43 | |||||
4,28,42 | 5,18,53 | 6,27,47 | 7,29,51 | 8,28,45 | |||||
5,23,45 | 6,30,46 | 7,11,42 | 8,15,50 | 9,30,51 | |||||
6,20,40 | 7,11,36 | 8,19,39 | 9,20,38 | 1,17,36 | |||||
7,28,43 | 8,22,51 | 9,25,41 | 1,13,49 | 2,18,47 | |||||
8,31,47 | 9,14,35 | 1,10,43 | 2,18,44 | 3,19,44 | |||||
9,32,48 | 1,19,34 | 2,14,36 | 3,31,46 | 4,28,37 | |||||
1,22,39 | 2,27,36 | 3,18,44 | 4,26,35 | 5,29,48 |
Таблица 3 - Исходные данные к задаче 1.1
Вариант | Данные | ||||
t | J1 | J2 | J3 | J4 | J5 |
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 | |||||
t1 | |||||
t2 | |||||
t3 | |||||
t4 | |||||
t5 |
Таблица 4– Размещение и характеристики страниц в оперативной памяти для задачи 1.2
№ | № вирт. страницы | Время пребывания (последнего использования для LRU) | Количество обращений | Обращение в посл. время | Модификация |
Таблица 5– Последовательность и вид обращений к страницам для задачи 1.2
Приоритет – число, характеризующее степень привилегированности потока. Приоритет процесса определяется ОС при его создании, а приоритет потока всегда определён приоритетом процесса. Различают динамические и фиксированные процессы установки приоритетов. Существует 2 разновидности приоритетного планирования: с относительными и с абсолютными приоритетами обслуживания. Они различаются моментом смены процессов.
Смешанные алгоритмы планирования.
В их основе лежит совмещение квантования и алгоритма приоритетов: квант времени, отводимый потоку, зависит от степени его приоритета. Перепланировка происходит, если:
1. Получено прерывание от таймера, сигнализирующее, что время, отведённое данному процессу на выполнение, закончилось;
2. Активный процесс выполнил системный запрос на доступ к ресурсу, который занят;
3. Процесс выполнил запрос к освободившемуся ресурсу;
4. Аппаратное прерывание, поступившее от периферийных устройств после завершения операции ввода-вывода, переводит процесс в состояние готовности;
5. Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения процесса.
Алгоритмы планирования процессов
Планирование процессов включает в себя решение следующих задач:
· определение момента времени для смены выполняемого процесса;
· выбор процесса на выполнение из очереди готовых процессов;
· переключение контекстов "старого" и "нового" процессов.
Первые две задачи решаются программными средствами, а последняя в значительной степени аппаратно. Существует множество различных алгоритмов планирования процессов, по разному решающих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различное качество мультипрограммирования. Среди этого множества алгоритмов рассмотрим подробнее две группы наиболее часто встречающихся алгоритмов: алгоритмы, основанные на квантовании, и алгоритмы, основанные на приоритетах.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:
· процесс завершился и покинул систему,
· процесс перешел в состояние ОЖИДАНИЕ,
· исчерпан квант процессорного времени, отведенный данному процессу.
Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один процесс не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени. Граф состояний процесса, изображенный на рисунке 3, соответствует алгоритму планирования, основанному на квантовании. Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты, выделяемые одному процессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса. Процессы, которые не полностью использовали выделенный им квант (например, из-за ухода на выполнение операций ввода-вывода), могут получить или не получить компенсацию в виде привилегий при последующем обслуживании. По разному может быть организована очередь готовых процессов: циклически, по правилу "первый пришел - первый обслужился" (FIFO) или по правилу "последний пришел - первый обслужился" (LIFO). Другая группа алгоритмов использует понятие "приоритет" процесса. Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии. Приоритет может выражаться целыми или дробными, положительным или отрицательным значением. Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. В последнем случае приоритеты называются динамическими. Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты. В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По-разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности. На рисунке 3 показаны графы состояний процесса для алгоритмов с относительными (а) и абсолютными (б) приоритетами.
Рис.3. Графы состояний процессов в системах
(а) с относительными приоритетами; (б)с абсолютными приоритетами
Сигнал дает возможность задаче реагировать на событие, источником которого может быть операционная система или другая задача. Сигналы вы-зывают прерывание задачи и выполнение заранее предусмотренных дейст-вий. Сигналы могут вырабатываться синхронно, то есть как результат работы самого процесса, а могут быть направлены процессу другим процессом, то есть вырабатываться асинхронно. Синхронные сигналы чаще всего приходят от системы прерываний процессора и свидетельствуют о действиях процесса, блокируемых аппаратурой, например деление на нуль, ошибка адресации, нарушение защиты памяти и т.д.
Примером асинхронного сигнала является сигнал с терминала. Во многих ОС предусматривается оперативное снятие процесса с выполнения. Для этого пользователь может нажать некоторую комбинацию клавиш (Ctrl+C, Ctrl+Break), в результате чего ОС вырабатывает сигнал и направляет его активному процессу. Сигнал может поступить в любой момент выполне-ния процесса (то есть он является асинхронным), требуя от процесса немед-ленного завершения работы. В данном случае реакцией на сигнал является безусловное завершение процесса.
В системе может быть определен набор сигналов. Программный код процесса, которому поступил сигнал, может либо проигнорировать его, либо прореагировать на него стандартным действием (например, завершиться), либо выполнить специфические действия, определенные прикладным про-граммистом. В последнем случае в программном коде необходимо преду-смотреть специальные системные вызовы, с помощью которых операционная система информируется, какую процедуру надо выполнить в ответ на посту-пление того или иного сигнала.
Сигналы обеспечивают логическую связь между процессами, а также между процессами и пользователями (терминалами). Поскольку посылка сигнала предусматривает знание идентификатора процесса, то взаимодейст-вие посредством сигналов возможно только между родственными процесса-ми, которые могут получить данные об идентификаторах друг друга.
Выводы
Мультипрограммирование, или многозадачность (multitasking), - это спо-соб организации вычислительного процесса, при котором на одном про-цессоре попеременно выполняются сразу несколько программ.
Мультипрограммирование применяется для повышения эффективности вычислительной системы, которая может пониматься как:
- общая пропускная способность вычислительной системы;
- удобство работы пользователей, например возможность интерактивной работы для нескольких пользователей или возможность одновременной работы одного пользователя с несколькими приложениями на одной машине;
- реактивность системы - то есть способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.
В зависимости от выбранного критерия эффективности ОС делятся на сис-темы пакетной обработки, системы разделения времени, и системы реаль-ного времени.
Мультипроцессорная обработка - это способ организации вычислительно-го процесса в системах с несколькими процессорами, при котором не-сколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
Основной задачей мультипрограммной операционной системы является распределение ресурсов между процессами и потоками - двумя базовыми единицами работы ОС.
В операционных системах, в которых существуют как процессы, так и по-токи, процесс рассматривается операционной системой как заявка на по-требление всех видов ресурсов, кроме одного - процессорного времени. Процессорное время распределяется ОС между другими единицами рабо-ты - потоками, представляющими собой последовательности команд.
Потоки возникли в операционных системах как средство распараллелива-ния вычислений, облегчающее работу программиста. В ОС, не поддержи-вающей потоков, процесс всегда состоит из одного потока, а программисту приходится самостоятельно решать задачу синхронизации нескольких па-раллельных ветвей программы.
Операционная система для реализации мультипрограммирования выпол-няет планирование и диспетчеризацию потоков (в ОС, не поддерживаю-щих потоков, - диспетчеризацию процессов). Планирование включает оп-ределение момента времени для смены текущего потока, а также выбор нового потока для выполнения. Диспетчеризация заключается в реализа-ции найденного в результате планирования решения, то есть в переключе-нии процессора с одного потока на другой.
Планирование может выполняться динамически, когда решения принима-ются во время работы системы на основе анализа текущей ситуации, или статически, если потоки запускаются на выполнение на основании заранее разработанного расписания. Первый способ характерен для универсальных ОС, а второй - для специализированных ОС, например ОС реального вре-мени.
Динамический планировщик ОС может реализовывать различные алго-ритмы планирования, которые делятся на такие крупные классы, как вы-тесняющие и невытесняющие алгоритмы, алгоритмы квантования и при-оритетные алгоритмы. Используемый алгоритм планирования зависит от назначения ОС. Применяются также смешанные алгоритмы, объединяю-щие достоинства нескольких классов.
При применении вытесняющих алгоритмов планирования ОС получает полный контроль над вычислительным процессом, а при применении не-вытесняющих алгоритмов решения принимаются децентрализовано: ак-тивный поток определяет момент смены потоков, а ОС выбирает новый поток для выполнения.
Система прерываний позволяет ОС реагировать на внешние события, происходящие асинхронно вычислительному процессу: сигналы готовности устройств ввода-вывода, аварийные сигналы аппаратуры вычислительной системы и т.п.
В зависимости от источника прерывания делятся на три больших класса:
- внешние прерывания, связанные с сигналами от внешних устройств;
- внутренние прерывания, возникающие в результате ошибок вычисле-ний;
- программные прерывания, представляющие собой удобный способ вы-зова процедур операционной системы.
Механизм прерываний поддерживается аппаратными средствами компью-тера и программными средствами операционной системы.
Существуют два основных способа выполнения прерывания: векторный (vextired), когда в процессор передается номер вызываемой процедуры обработки прерывания, и опрашиваемый (polled), когда процессор вынужден последовательно опрашивать потенциальные источники запроса прерывания.
Для упорядочивания процессов обработки прерываний все источники пре-рываний распределяются по нескольким приоритетным уровням, а роль арбитра выполняет диспетчер прерываний ОС.
Системные вызовы, с помощью которых приложения получают обслужи-вание со стороны ОС, реализуются на основе механизма программных прерываний. Системные вызовы могут выполняться синхронно, когда по-ток приостанавливается до завершения системного вызова, или асинхрон-но, когда поток продолжает работу параллельно с системной процедурой, реализующей вызов.
Для синхронизации процессов и потоков, решающих общие задачи и со-вместно использующих ресурсы, в операционных системах существуют специальные средства: критические секции, семафоры, мьютексы, собы-тия, таймеры. Отсутствие синхронизации может приводить к таким неже-лательным последствиям, как гонки и тупики.
Задачи и упражнения
1. Поясните употребление терминов "программа", "процесс", "задача", "поток", "нить".
2. В чем состоит принципиальное отличие состояний "ожидания" и "готов-ности" потока, ведь и в том и в другом он ожидает некоторого события?
3. Мультипрограммные операционные системы принято разделять на сис-темы реального времени, системы разделения времени, системы пакетной обработки. С другой стороны, алгоритмы планирования могут быть осно-ваны на квантовании, относительных приоритетах, абсолютных приори-тетах. Предложите для каждого из перечисленных типов ОС наиболее подходящий, по вашему мнению, тип алгоритма планирования.
4. В какой очереди (ожидающих или готовых) скапливается большее число процессов:
A) в интерактивных системах разделения времени;
B) в системах пакетной обработки, решающих "счетные" задачи.
5. Известно, что программа А выполняется в монопольном режиме за 10 минут, а программа В - за 20 минут, то есть при последовательном вы-полнении они требуют 30 минут. Если Т - время выполнения обеих этих задач в режиме мультипрограммирования, то какое из неравенств, приве-денных ниже, справедливо?
6. Может ли процесс в мультипрограммном режиме выполняться быстрее, чем в монопольном?
7. Чем объясняется потенциально более высокая надежность операционных систем, в которых реализована вытесняющая многозадачность?
8. В каких ОС реализована невытесняющая многозадачность? А вытесняю-щая многозадачность?
9. При невытесняющем планировании необходимо, чтобы во всех выпол-няющихся программах были предусмотрены кодовые последовательно-сти, которые передают управление ОС. Эти точки возврата управления прикладной программист должен определить заранее еще до выполнения программы. Можно ли сказать, что в этом случае мы имеем дело со ста-тическим планированием?
10. Приведите пример алгоритма планирования, в результате работы которо-го процесс, располагая всеми необходимыми ресурсами, может бесконеч-но долго находиться в системе, не имея возможности завершиться.
11. Могут ли быть применены сразу все перечисленные характеристики к од-ному алгоритму планирования потоков?
A) вытесняющий, с абсолютными динамическими приоритетами;
B) невытесняющий, с абсолютными фиксированными приоритетами;
C) невытесняющий, с относительными динамическими приоритетами;
D) вытесняющий, с абсолютными фиксированными приоритетами, основанный на квантовании с динамически изменяющейся длиной кванта;
E) невытесняющий, основанный на квантовании с фиксированной дли-ной кванта.
12. Для тех вариантов, которые вы считаете возможными, опишите более подробно алгоритм планирования.
13. Являются ли синонимами термины "планирование процессов" и "дис-петчеризация процессов"?
14. Можно ли задачу планирования процессов целиком возложить на прило-жения?
15. Приведите пример задачи, при программировании которой использование механизма потоков может привести к существенному повышению скоро-сти ее выполнения.
16. Возможно ли существование асимметричной мультипроцессорной ОС для компьютера с симметричной мультипроцессорной архитектурой?
17. Сравните два варианта организации мультипроцессорной обработки. В первом случае процесс (поток), начав выполняться на каком-либо процес-соре, при каждой следующей активизации будет назначаться планиров-щиком на этот же процессор. Во втором варианте процесс (поток) каждый раз, в общем случае, выполняется на произвольно выбранном свободном процессоре. Какой вариант эффективнее в отношении времени выполне-ния отдельного приложения? В отношении суммарной производительно-сти компьютера?
18. Представьте себе ОС, разработанную для компьютера, в котором отсутст-вует система прерываний. Какой алгоритм планирования процессов мо-жет быть реализован в такой ОС?
19. Охарактеризуйте алгоритмы планирования, реализованные в операцион-ных системах, используя следующие характеристики: вытесняю-щий/невытесняющий, приоритеты относительные/абсолютные, динами-ческие/фиксированные, кванты фиксированные/динамические, процессы жесткого/мягкого реального времени:
20. Какие события вызывают перепланирование процессов (потоков)?
21. Поясните разницу между программными и аппаратными прерываниями.
22. Что такое вектор прерываний?
23. Какой тип системы прерываний - векторный или опрашиваемый - реали-зован в процессоре Pentium?
24. Всегда ли прерывание вызывает перепланировку процессов?
25. Опишите механизм обработки прерываний в Windows NT.
26. Какими средствами синхронизации процессов располагает современная ОС?
27. Зачем в системе команд многих компьютеров предусмотрена единая, не-делимая команда анализа и присвоения значения логической переменной, хотя эти же действия могут быть выполнены с помощью двух соответст-вующих отдельных команд, также обычно присутствующих в системе команд?
28. Представим себе двух студентов, которым нужно поработать с одной и той же книгой, имеющейся в библиотеке в единственном экземпляре. Они одновременно пришли в библиотеку, но один из них сначала пошел в чи-тальный зал и, заняв единственное свободное место, отправился в книж-ное хранилище, а другой - наоборот, начал с того, что получил книгу, а потом пошел в читальный зал искать место. В результате ни один из них не может выполнить работу, так как для этого им не хватает необходимо-го ресурса. Можно ли считать, что в данном случае произошла взаимная блокировка, или, другими словами, клинч?
Решение тестов, помощь в закрытии сессии студентам МОИ, Синергии, ГТЕП, Витте, Педкампус, Росдистант
К многозадачным ОС относят: Тип ответа: Множественный выбор OS/2 MS-DOS OC EC MSX Windows 95
Тип установки ОС, при которой устанавливаются основные компоненты и требуется 450 Мб называется: Тип ответа: Одиночный выбор Офис Типовая Разработчику Сервер
Сетевая операционная система – это… : Тип ответа: Множественный выбор Совокупность ОС всех компьютеров сети. ОС отдельного компьютера сети. Набор сетевых служб, выполненных в виде оболочки. Нет правильного ответа
Чем ограничивается максимальный размер виртуального адресного пространства, доступного приложению: Тип ответа: Одиночный выбор Ничем. Разрядностью адреса в системе команд. Разрядностью счетчика команд процессора. Физическим размером оперативной памяти компьютера.
Какие из приведенных ниже терминов являются синонимами : Тип ответа: Множественный выбор Привилегированный режим. Защищенный режим. Режим супервизора. Пользовательский режим. Режим разделения времени. Режим ядра.
Пароль пользователя должен иметь структуру: Тип ответа: Множественный выбор текстовую комбинированную числовую иметь не менее 6 и не белое 256 символов
Слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой называется …
Какие события вызывают перепланирование процессов : Тип ответа: Множественный выбор Прерывание от таймера. Аппаратное прерывание по завершению ввода-вывода. Внутреннее прерывание, сообщающее об ошибке выполнения активной задачи. Нет правильного ответа
В результате каких из перечисленных причин процессы переходит в состояние приостановленных процесс : Тип ответа: Множественный выбор Своппинг. Запрос от родительского процесса. Ошибка ввода вывода. Арифметическая ошибка. Завершение родительского процесса.
Комплекс прикладных и системных программных средств, обеспечивающий взаимодействие пользователя с ОС, называется: Тип ответа: Одиночный выбор Программный интерфейс. Интеллектуальный интерфейс. Интерфейс пользователя. Внутренний интерфейс. Интерфейс прикладного программирования.
Средства, предоставляющие разработчику операционной системы возможность разработки модулей ОС (перечислить все правильные ответы): Тип ответа: Множественный выбор Операционная система. Аппаратура компьютера. Утилиты. Прикладные программы.
Корневой каталог имеет путь: Тип ответа: Одиночный выбор /boot /etc / /bin
Можно ли задачу планирования процессов целиком возложить на приложения: Тип ответа: Одиночный выбор нет. да.
Подкаталоги (домашние каталоги) пользователей имеют путь: Тип ответа: Одиночный выбор /home /lib /sbin /root
Мультипроцессирование (multiprocessing): Тип ответа: Одиночный выбор Режим работы, при котором параллельные вычисления обеспечиваются двумя или более процессорами с общим доступом к оперативной памяти. Режим работы, обеспечивающий возможность выполнения нескольких командных процессоров. Режим работы, при котором обеспечивается чередующееся выполнение двух или большего количества программ одним процессором.
… – программа с развитым полноэкранным интерфейсом, включающим использование мыши, предлагающая меню с перечнем всех имеющихся на компьютере ОС.
Элемент занимающий большую часть экрана в графической оболочки ASPLinux, называется: Тип ответа: Одиночный выбор Рабочий стол Ярлыки Персональный каталог Панель
Для того чтобы смонтировать привод CD-ROM в каталог /MyCD, нужно ввести команду: Тип ответа: Одиночный выбор mount -t iso9660 /dev/cdrom /MyCD mount -t iso9660 /dev/cdrom mount /dev/cdrom г. mount -t vfat /dev/fd0 /diskA
Может ли компьютер работать без операционной системы: Тип ответа: Одиночный выбор Может. Нет, не может.
Многозадачность: Тип ответа: Одиночный выбор Режим работы, при котором обеспечивается чередующееся выполнение двух или большего количества программ. Режим работы, при котором параллельные вычисления обеспечиваются двумя или более процессорами с общим доступом к оперативной памяти. Режим работы, при котором обеспечивается параллельная работа пользователей с нескольких подключенных к вычислительной системе терминалов.
Компонент операционной системы управляющий работой фоновых процессов, имеет Login Name: Тип ответа: Одиночный выбор bin daemon Adm
С помощью какой команды можно ввести или изменить пароль пользователя: Тип ответа: Одиночный выбор adduser имя_пользователя userdel -r имя_пользователя passwd имя_пользователя userdel имя_пользователя
Последовательность операций программы или часть программы при ее выполнении, называется: Тип ответа: Одиночный выбор каталогом программой процессом оболочкой
Процесс : Тип ответа: Множественный выбор Процедура загрузки программы. Выполняемая программа, включающая текущее значение счетчика команд, регистров и переменных. Единица активности, которую можно охарактеризовать единой цепочкой последовательных действий, текущим состоянием и связанным с ней набором системных ресурсов. Объектный код программы, хранящийся на диске.
В UNIX для процессов предусмотрены два режима выполнения: Тип ответа: Множественный выбор привилегированный режим стартовый режим обычный режим Стандартный режим
Вытеснение: Тип ответа: Одиночный выбор Возврат ресурса захваченного процессом до окончательного его использования этим процессом. Завершение работающего процесса. Захват памяти родительского процесса порожденным процессом.
Чем ограничивается максимальный размер физической памяти, которую можно установить в компьютере определенной модели: Тип ответа: Одиночный выбор Характеристиками аппаратуры компьютера. Разрядностью адреса в системе команд. Выбранным типом операционной системы.
Можно ли задачу планирования процессов целиком возложить на приложения: Тип ответа: Одиночный выбор нет. да.
Требования, предъявляемые к ОС (указать неверное): Тип ответа: Одиночный выбор расширяемость; переносимость; изолированность; производительность; совместимость.
С помощью какой команды можно вывести список файлов текущего каталога: Тип ответа: Одиночный выбор ls cd имя_каталога ls -al mkdir имя_каталога
Планирование процессов – это … : Тип ответа: Множественный выбор Определение момента времени для смены текущего активного процесса. Выбор для выполнения процесса из очереди готовых для выполнения процессов. Переключение процессора с одного процесса на другой.
Может ли процесс в мультипрограммном режиме выполняться быстрее, чем в монопольном режиме: да нет
Состояние готовности для выполнения процесса относится к задачам, выполняющимся: Тип ответа: Одиночный выбор В однопрограммном режиме. В мультипрограммном режиме. В обоих режимах
Процесс : Тип ответа: Множественный выбор
Процедура загрузки программы.
Выполняемая программа, включающая текущее значение счетчика команд, регистров и переменных.
Единица активности, которую можно охарактеризовать единой цепочкой последовательных действий, текущим состоянием и связанным с ней набором системных ресурсов.
Объектный код программы, хранящийся на диске.
С помощью каких устройств операции ввода-вывода можно выполнять параллельно с вычислительным процессом даже в однопроцессорных системах: Тип ответа: Одиночный выбор
С помощью контроллеров внешних устройств
С помощью диспетчера памяти
С помощью кэш-памяти
К системам, обладающим не вытесняющей многозадачностью, можно отнести: Тип ответа: Множественный выбор NetWare UNIX Windows NT Windows 3.x OS/2
Читайте также:
- Kerio control web filter не активировано перейти к приложениям и веб категориям
- Как поставить бонус в 1xbet с приложения
- Настройка устройства android что это за приложение
- Telegram как запустить канал привлечь подписчиков и заработать на контенте скачать бесплатно
- Как делать анимации для мобильных приложений