
ОС_Методические указания
.pdf
<оставшаяся часть > |
<оставшаяся часть > |
end |
end |
Правильно ли работает этот алгоритм? Если нет, то в чем состоит ошибка? Проверьте работу алгоритма при существенно различающихся скоростях выполнения процессов.
4.Используя блокировку памяти, организуйте взаимное исключение между n процессами, у каждого из которых есть один критический участок.
5.Железная дорога, соединяющая два города A и B, включает участок, на котором имеется только один путь:
A B
Роль монитора ЕДИНСТВ_ПУТЬ заключается в том, чтобы все поезда, находящиеся в данный момент на выделенном единственном пути, двигались в одном направлении. Напишите программу монитора ЕДИНСТВ_ПУТЬ, предполагая, что число поездов на единственном пути не ограничено.
6.Выполните предыдущее задание при фиксированном числе поездов N, находящихся на единственном пути.
7.Запрограммируйте семафор как объект, унаследованный от монитора TMonitor (листинг
4.5).
8.Пять философов сидят за круглым столом, изображенном на следующей схеме:
Философы попеременно то едят спагетти, то размышляют. Для размышлений вилок не требуется, для потребления спагетти необходимы две вилки, лежащие слева и справа от тарелки. Таким образом, поведение каждого из философов описывается с помощью процесса, соответствующего выполнению программы
while true do begin
ДУМАТЬ; {--не требует ресурсов} ЕСТЬ; {--требует две вилки}
end
Напишите, используя семафоры, алгоритм, реализующий выделение вилок без взаимной блокировки.
9. Выполните задания 1 и 2 с использованием семафоров.
- 31 -
РАБОТА 5. СПОСОБЫ ОБОЗНАЧЕНИЯ ОБЪЕКТОВ
Целью работы является изучение двух основных способов обозначения объектов, используемых операционными системами: обозначение с помощью цепи доступа и дескрипторный способ.
Информационно-вычислительная система фигурирует в исполняемой программе в виде множества объектов. Эти объекты и связанные с ними операции специфицированы в используемом языке. Для того чтобы практически использовать описанную таким образом информацион- но-вычислительную систему, необходимо каждому объекту поставить в соответствие его конкретное представление в виде некоторой записанной в памяти информации, периферийных устройств и т.д. Работа системы представляется в этом случае действиями, которые изменяют состояние указанных представлений.
Для обозначения объектов, составляющих систему, в программе используются имена. Имя объекта представляет собой информацию, выполняющую двойную функцию: с одной стороны, оно служит для идентификации обозначаемого объекта, т.е. для его выделения среди других объектов; с другой - является «путем доступа» к объекту, т.е. подвержено интерпретации, после которой можно осуществлять действия над объектом. Примерами имен являются идентификаторы, обозначающие переменные и процедуры в языке программирования или файлы в командном языке.
При реализации системы на машине составляющие ее объекты конкретизируются информацией, позволяющей физическим процессорам получить к ним доступ. Эта информация также представляется в виде имен, однако для физической локализации чаще всего используют в этом случае термин адрес. Речь может идти об адресах ячеек памяти, адресах процессоров или периферийных устройств, а также о номерах дорожки или сектора на диске.
Общим термином связь мы будем обозначать установление соответствия между объектом программы и его конкретным представлением. В конечном счете связь выражается соответствием с привлечением идентификаторов и адресов. Такое соответствие часто устанавливается последовательно: от идентификатора к адресу переходят через некоторую последовательность отношений - так называемую цепь доступа.
5.1. СОСТАВ ЦЕПИ ДОСТУПА
Рассмотрим теперь более подробно отношения, которые составляют цепь доступа. Напомним, что речь идет о том, чтобы перейти от некоторого идентификатора X, обозначающего объект, к конкретному представлению R этого объекта.
Отношение, устанавливающее соответствие между именем объекта и представлением объекта, будем называть отношением обозначения. Совершенно необязательно, чтобы объект, находящийся в отношении обозначения, был конечным звеном в цепи доступа. Он может быть, в свою очередь, интерпретирован как имя, обозначающее другой объект. Цепь доступа может представлять, таким образом, композицию некоторого числа отношений обозначения (рис. 5.1). Объект, который играет роль звена в цепи доступа, называется также меткой. Примерами меток являются указатели в языке Паскаль или дескрипторы.
Композиция нескольких отношений обозначения снова является отношением обозначения. Отсюда можно вывести два следствия:
имя цепи доступа обозначает не только конечный член этой цепи (представление), но и все промежуточные члены (метки);
если некоторая цепь доступа образована, можно получить доступ к представлению, начиная
симени любой из промежуточных меток.
-32 -

X
объектY, который
обозначает
объектZ, который
обозначает
объектR
обозначает
Рис. 5.1. Пример цепи доступа
5.2. СТРУКТУРА ПРЕДСТАВЛЕНИЙ. ДЕСКРИПТОРЫ
Описанная выше схема очень проста и пригодна только для элементарных объектов, таких как, например, целые числа, действительные числа и т.п. Их представление занимает одну ячейку, и функции доступа непосредственно представляются инструкциями физической машины. Эту схему надо дополнить, чтобы учесть еще два аспекта:
существование составных объектов, которые имеют сложную внутреннюю структуру и размер которых может меняться в течение жизни объекта;
необходимость реализовывать сложные функции доступа к составным объектам.
На практике представление удобно разделить на две физически различные части:
1)информация фиксированного размера, которую называют дескриптором объекта и которая содержит:
структурный состав объекта и физическую локализацию его частей;
способ использования объекта, т.е. тип, защиту, время жизни, имена или адреса процедур доступа и т.п.;
2)собственно представление объекта.
Применение дескриптора дает следующие преимущества:
1)когда описываемый объект передается процедуре в качестве параметра, достаточно передать его дескриптор или адрес дескриптора; гораздо проще управлять информацией, размер которой фиксирован и известен заранее, чем информацией переменного размера;
2)дескриптор является «точкой перехода», обязательной при доступе к объекту, и может, следовательно, служить для контроля доступа, для измерений и т.д.;
3)дескриптор обеспечивает косвенный доступ к объекту, что позволяет динамически изменять цепь доступа или перемещать объект в памяти без повторной компиляции исходной программы;
4)распределение объектов между многими пользователями, имеющими разные права или процедуры доступа, может быть реализовано введением такого же числа дескрипторов, как и пользователей; эти дескрипторы описывают тот же объект и поэтому содержат ту же информацию о физической локализации.
5.3. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
1.Изобразите схематично цепь доступа, образованную следующей программой на языке Паскаль:
Листинг 5.1
program ex1; type
RInteger=^Integer;
RRInteger=^RInteger;
RRRInteger=^RRInteger;
- 33 -

var
a:Integer;
b:RRRInteger;
c:RInteger;
d:RRInteger;
begin
a:=225;
c:=@a;
b:=@d;
d:=@c;
end.
Каким образом можно получить доступ к объекту 225 от каждого из объявленных идентификаторов?
2. Что будет выведено на экран в результате работы следующей программы? program ex2;
type
RReal=^Real;
var
a,b:Real;
ra,rb,rp:Real;
begin
a:=0.5;
b:=2.3;
ra:=@a;
rb:=@b;
WriteLn('ra^=',ra^,' rb^=',rb^); rp:=ra;ra:=rb;rb:=rp;
ra^:=7.3;
rb^:=8.6; WriteLn('a=',a,' b=',b);
end.
3.Допустим, некая реализация языка Паскаль позволяет нам создавать с помощью процедуры GetMem (или New) динамические объекты размером не более 60 байт (10 вещественных) каждый. Предложите дескрипторный способ создания больших массивов вещественных чисел. Опишите структуру дескриптора и реализацию функций доступа к этому массиву.
- 34 -
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ. М.: Финансы и статистика, 1992. 544 с.
2.Краковяк С. Основы организации и функционирования ОС ЭВМ: Пер. с франц. М.: Мир, 1988. 480 с.
3.Фролов А.В., Фролов Г.В. Операционная система MS-DOS: В 3 кн. Кн. 1-2. М.: ДИАЛОГ-
МИФИ, 1991. 240 с.
4.Цикритзис Д., Бернстайн Ф. Операционные системы: Пер. с англ. М.: Мир, 1977. 336 с.
- 35 -
ОГЛАВЛЕНИЕ |
|
|
ВВЕДЕНИЕ...................................................................................... |
3 |
|
РАБОТА 1. ПОСЛЕДОВАТЕЛЬНОЕ ВЫПОЛНЕНИЕ ПРОГРАММ |
5 |
|
1.1. ПРОЦЕДУРЫ. АКТИВНОСТЬ. КОНТЕКСТ ................................... |
5 |
|
Вызов процедуры и возврат из процедуры............................. |
6 |
|
Функционирование сопрограмм............................................... |
6 |
|
1.2. МЕХАНИЗМ ПОСЛЕДОВАТЕЛЬНОГО ВЫЗОВА ПРОЦЕДУР........... |
6 |
|
1.3. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ............................ |
8 |
|
РАБОТА 2. ПРЕРЫВАНИЯ. ЗАХВАТЫ. ВЫЗОВ СУПЕРВИЗОРА |
11 |
|
2.1. ПРЕРЫВАНИЯ.......................................................................... |
11 |
|
Уровни прерывания................................................................. |
11 |
|
Приоритет и маскировка прерываний................................. |
11 |
|
Оснащение прерываний .......................................................... |
12 |
|
2.2. ЗАХВАТЫ ................................................................................ |
12 |
|
2.3. ВЫЗОВ СУПЕРВИЗОРА ............................................................. |
12 |
|
2.4. ПРЕРЫВАНИЯ МИКРОПРОЦЕССОРОВ INTEL 80X86 ................. |
12 |
|
Таблица векторов прерываний .............................................. |
12 |
|
2.5. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ .......................... |
13 |
|
РАБОТА 3. ПРОГРАММИРОВАНИЕ ВВОДА-ВЫВОДА ... |
15 |
|
3.1. ОБЩАЯ ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА................................. |
15 |
|
Периферийные устройства. Контроллеры. Каналы .......... |
15 |
|
Адресация периферийных устройств................................... |
17 |
|
3.2. УПРАВЛЕНИЕ ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ ................. |
17 |
|
Синхронный ввод-вывод ......................................................... |
17 |
|
Асинхронный ввод-вывод с прерываниями ........................... |
18 |
|
3.3. БУФЕРНЫЙ ВВОД-ВЫВОД........................................................ |
19 |
|
Очереди .................................................................................... |
20 |
|
Принципы алгоритмизации ................................................... |
20 |
|
3.4. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ .......................... |
22 |
|
РАБОТА 4. ПРОЦЕССЫ. МЕХАНИЗМЫ СИНХРОНИЗАЦИИ ПРОЦЕССОВ 24
4.1. ПОНЯТИЕ ПРОЦЕССА .............................................................. |
24 |
4.2. ВЗАИМОДЕЙСТВИЕ СОВОКУПНОСТИ ПРОЦЕССОВ .................. |
24 |
4.3. СИНХРОНИЗАЦИЯ ПРОЦЕССОВ ............................................... |
26 |
Блокировка памяти................................................................. |
27 |
Проверка и установка ............................................................ |
27 |
Монитор Хоара....................................................................... |
28 |
Семафоры................................................................................ |
30 |
4.4. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ .......................... |
30 |
РАБОТА 5. СПОСОБЫ ОБОЗНАЧЕНИЯ ОБЪЕКТОВ ...... |
32 |
5.1. СОСТАВ ЦЕПИ ДОСТУПА......................................................... |
32 |
5.2. СТРУКТУРА ПРЕДСТАВЛЕНИЙ. ДЕСКРИПТОРЫ ....................... |
33 |
5.3. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ .......................... |
33 |
БИБЛИОГРАФИЧЕСКИЙ СПИСОК...................................... |
35 |
- 36 -
- 37 -

Лицензия №0243 от 20.01.99 г.
Подписано в печать |
14.05.2000 |
Формат 60x84 1/16. |
Бумага писчая. |
Печать RISO. |
3,94 усл.печ.л. |
Тираж 100 |
|
Заказ 155 |
Издательство Казанского математического общества. 420008, Казань, Университетская, 17.
Офсетная лаборатория Нижнекамского химико-технологического института. 423550, Нижнекамск, пр. Строителей, 47