ВУЗ:
Составители:
Рубрика:
End.
2-й случай:
Многопользовательская система. Для создания имя процесса можно не указывать, но
для уничтожения необходимо указать, какой именно процесс уничтожается. Таким образом,
во-первых, следует необходимость именования процессов, во-вторых, так как система мно-
гопользовательская, то существует вероятность, что разные пользователи выберут один и тот
же процесс. Таким образом, оказывается необходимым двойное именование в системе:
а) на уровне пользователя
б) на уровне системы
На уровне системы не должно быть повторяющихся имён.
В качестве системного имени выберем составное имя, состоящее из имени задания и
имени процесса, полагая при этом, что все задания имеют разные имена. Если это не так, то
необходимо вводить двухуровневую систему имён задания.
Каждому составному имени процесса поставим в соответствие ссылку на дескриптор.
Появляется необходимость таблицы соответствия, которую можно описать следующим об-
разом:
Type
ID = array [1..N]of
char; {количество символов в одном имени}
соответствие = record
имя задания : ID;
имя процесса : ID;
внутреннее имя : связь;
end;
Var
Таблица имён процессов : array [ 1..M] of соответствие; {число имён}
Для работы с таблицами определим 3 процедуры:
1. Занести имя (имя процесса : ID; внутреннее имя: связь).
2. Найти имя (имя процесса : ID; внутреннее имя : связь); {Эта процедура для за-
данного имени процесса определяет ссылку на его дескриптор}.
3. Исключить имя (имя процесса : ID); {Эта процедура вычёркивает строку в табли-
це имён процессов}.
Procedure Удалить процесс (внешнее имя : ID);
Var
r, r1: связь;
Begin
Найти (внешнее имя, r);
{Процедура для заданного внешнего имени находит в таблице соответствия внутреннее имя
процесса, которое представляет собой ссылку на дескриптор процесса}
Вн
у
т
ре
нн
ее
имяИмя п
роцесса
Имя
зада
ния
P1A X1
P2B X1
P
3
B X2
P4
C
X2
End. 2-й случай: Многопользовательская система. Для создания имя процесса можно не указывать, но для уничтожения необходимо указать, какой именно процесс уничтожается. Таким образом, во-первых, следует необходимость именования процессов, во-вторых, так как система мно- гопользовательская, то существует вероятность, что разные пользователи выберут один и тот же процесс. Таким образом, оказывается необходимым двойное именование в системе: а) на уровне пользователя б) на уровне системы На уровне системы не должно быть повторяющихся имён. В качестве системного имени выберем составное имя, состоящее из имени задания и имени процесса, полагая при этом, что все задания имеют разные имена. Если это не так, то необходимо вводить двухуровневую систему имён задания. Каждому составному имени процесса поставим в соответствие ссылку на дескриптор. Появляется необходимость таблицы соответствия, которую можно описать следующим об- разом: Type ID = array [1..N]of char; {количество символов в одном имени} соответствие = record имя задания : ID; имя процесса : ID; внутреннее имя : связь; end; Var Таблица имён процессов : array [ 1..M] of соответствие; {число имён} Имя задания Имя процесса Внутреннее имя X1 A P1 X1 B P2 X2 B P3 X2 C P4 Для работы с таблицами определим 3 процедуры: 1. Занести имя (имя процесса : ID; внутреннее имя: связь). 2. Найти имя (имя процесса : ID; внутреннее имя : связь); {Эта процедура для за- данного имени процесса определяет ссылку на его дескриптор}. 3. Исключить имя (имя процесса : ID); {Эта процедура вычёркивает строку в табли- це имён процессов}. Procedure Удалить процесс (внешнее имя : ID); Var r, r1: связь; Begin Найти (внешнее имя, r); {Процедура для заданного внешнего имени находит в таблице соответствия внутреннее имя процесса, которое представляет собой ссылку на дескриптор процесса}
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »