Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для упрощения понимания работы различных блоков операционной системы имеет смысл ввести ее формальную модель, функционирующую на некоторой абстрактной вычислительной системе.
Пусть Т= [ t 0 ,tk ] – время функционирования ОС (от t 0 – времени инициирования и загрузки системы до tk – времени ее уничтожения). Структуру ОС в некоторый момент времени t Î Т можно представить с помощью графа Гt, вершинами которого являются элементы множеств процессов P= { p 0 ,p 1 ,…,pn } и ресурсов R= { r 0 ,r 1 ,…,rg }, а ребра устанавливают связи между вершинами, Р и R − конечные непустые множества. Так как ОС является динамически изменяющейся системой, то в некоторые моменты времени t 1 ,t 2Î T, t 1¹ t 2 ее структура может быть представлена соответственно в виде графов Гt 1 и Гt 2. Проследим изменение Гt – графа, отображающего структуру ОС, в любой момент времени t Î Т. Выделим в некоторое множество s все возможные вершины и ребра, которые могут быть получены на промежутке времени [ t 0 ,tk ]. В дальнейшем каждый элемент множества s (вершину или ребро) будем обозначать как s j, j ³1. Определим множество E как совокупность правил, фиксирующих изменение структуры графа Гt для любого t Î Т. Каждое правило из множества E имеет вид
Y j,:s i ®s j 1,s j 2,…,s jв, yj 1, yj 2, yj 3,
где yj, – номер правила, i =1,2,3 s j, s j 1,s j 2,…,s jв Î s означает, что элемент s j в момент времени t Î Т заменяется на набор элементов s j 1,s j 2,…,s jв, yj 1, yj 2 – соответственно номера правил, на которые осуществляется переход, если элемент s j активен или блокирован, yj 3 указывает правило, определяющее для заданного s j либо весь граф ресурсов (если s j – процесс), либо альтернативный ресурс (если s j – ресурс). Обозначим через Y – множество номеров правил из Е. Пусть s0 – некоторый начальный процесс, инициирующий работу системы. Тогда M – формальная модель операционной системы, которую можно определить следующим образом:
М= [ Т, s ,Е,Y, s0].
Пусть каждый элемент s j Îs характеризуется следующей тройкой:
[ m (s j) ,x (s j) ,S (s j)],
где m (s j) – имя элемента; x (s j) – тип элемента (процесс, процессор, память и т.д.); S (s j) определяет состояние элемента (активен, блокирован и т.д.).
Примем, что некоторый элемент s j в момент времени t порождает цепочку элементов φ i,=s j 1s j 2…s jв (т.е.s j Þ φ j), если к s j применимо некоторое правило из Е.
Будем говорить, что граф Гt порождается вершиной s j (т.е.s j* Þ Гt (s j) =Гt), если существует набор правил y 1, y 2, …,yn, для которых справедливо утверждение s j Þ φ1 Þ φ2 Þ φ l=Гt (s j), причем на каждом шаге φ i- 1 = φ i выполняется только одно правило из Е.
Обозначим через Гtp (pi)граф процессов, порождаемый процессом рi Î Р, P есть подмножество s b в некоторый момент времени t. Если p 0 – начальный процесс, то Гtp (pi)Í Гtp (p 0), pi Î Р, i= 1, 2 ,…,n.
Полагаем, что с каждой вершиной – процессом pj Î Гtp (p0) связан некоторый граф Гtr (pj) ресурсов, требуемых для нормального развития pj, j= 0,1,2 ,...,n. Тогда граф Гt определяется как Гt= < Гtp,Гtr >, где Гtp = Гtp (P0), Гtr = Гtr (P 0).
Вершины графа Гtp (т.е. процессы) могут быть соединены ориентированными или неориентированными ребрами. Ориентированное ребро указывает, что вершина pb находится в отношении иерархического подчинения к вершине pа, т.е. процесс pb является потомком процесса pа. Неориентированное ребро s аb=(pa,pb) показывает, что существует связь между процессами pа и pb. Например, s аb говорит о том, что pа и pb используют общий ресурс r. Вершинами графа Гtr будут некоторые ресурсы rj Î R, R Ìs, которые могут быть соединены между собой ориентированными и неориентированными ребрами. Ориентированное ребро указывает, что ресурс rb является потомком ресурса rа. Например, если rа определяет память, то rb – это один из сегментов памяти rа.
Будем считать, что все вершины графа Гt расположены по уровням, причем на нулевом уровне находится единственная вершина p 0. На уровнях Ui³ 1 помещаем вершины, каждая из которых зависит хотя бы от одной вершины предыдущего уровня Ui- 1 и не зависит ни от одной вершины последующих уровней. Одноуровневые вершины не зависят друг от друга.
Дата публикования: 2014-11-03; Прочитано: 403 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!