Организация вычислительных процессов. Конспект лекций по дисциплине "Системы реального времени". Степанов Б.М. - 17 стр.

UptoLike

Составители: 

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);
{Процедура для заданного внешнего имени находит в таблице соответствия внутреннее имя
процесса, которое представляет собой ссылку на дескриптор процесса}