- •«Национальный исследовательский ядерный университет «мифи»
- •Н.В. Куликова, е.Н. Петровская
- •XXI век. Общество и образование
- •Глава 1. Исторический экскурс
- •1.1. Отличительные особенности развития электронно-счетного машиностроения
- •1.2. Сферы применения эвм
- •1.3. Этические, правовые и социально-психологические проблемы внедрения эвм
- •2.2. Этапы развития математического обеспечения
- •Глава 2. Математическое обеспечение
- •2.1. Понятие математического обеспечения
- •2.3. Назначение и классификация программного
- •Контрольные вопросы
- •Глава 3. Операционная система
- •3.1. Понятие операционной системы
- •3.2. Типы операционных систем
- •3.2.1. Программное обеспечение системы реального
- •3.2.2. Операционная система пакетной обработки
- •3.2.3. Операционная система разделения времени
- •3.2.4. Системы общего назначения
- •3.3. Основные принципы проектирования
- •3.4. Управление вводом-выводом
- •Вопросы для самоконтроля
- •Глава 4. Схема функционирования операционной системы
- •4.1. Определение основных элементов
- •4.2. Структуры рабочих программ
- •4.3. Уровни операционной системы и виртуальность
- •Контрольные вопросы
- •Глава 5. Иерархическая операционная система
- •5.1. Понятие и структура иерархической операционной
- •5.2. Механизм планирования
- •5.3. Основные блоки операционной системы
- •5.4. Критическая область и синхронизация
- •5.5. Тупики
- •Контрольные вопросы
- •Глава 6. Формальная модель операционной системы
- •6.1. Понятие моделирования и типы моделей
- •6.2. Формальная модель операционной системы
- •6.3. Взаимосвязь процессов и ресурсов
- •6.4. Режимы мультирограммирования
- •Контрольные вопросы
- •Глава 7. Функциональность операционной системы при многозадачных режимах
- •7.1. Система запросов на основную память
- •7.2. Управление запросами
- •7.3. Управление подпулами
- •7.4. Организация управление задачами
- •Контрольные вопросы
- •Глава 8. Идеология совершенствования операционных систем (ос юникс)
- •8.1. Общие положения
- •8.2. Переадресация ввода-вывода
- •8.3. Файловая система ос юникс и ее структура
- •8.4. Ядро системы
- •8.5. Программные компоненты make и sccs
- •8.6. «Генеалогия» системы unix
- •Контрольные вопросы
- •Примерные варианты лабораторных работ по отдельным темам
- •Формат команды
- •Специализированные команды
- •Chkdsk диск:имя_файла.Расш /f /V
- •Перемещение по документу
- •1) Комбинации клавиш:
- •2) Вертикальная полоса прокрутки:
- •3) Кнопки навигатора:
- •Особенности linux
- •Операции с файлами и каталогами
- •Оболочки и команды linux
- •Движение по дереву каталогов
- •Просмотр содержимого каталогов
- •Перенос файлов
- •Уничтожение файлов и каталогов
- •Просмотр содержимого файлов
- •Экранная документация
- •Стандартный ввод и вывод
- •Печать файлов
- •Выход из системы
- •Литература
- •Содержание
- •Глава 1. Исторический экскурс
- •Глава 2. Математическое обеспечение
- •Глава 3. Операционная система
- •Глава 4. Схема функционирования операционной системы
- •Глава 5. Иерархическая операционная система
- •Глава 6. Формальная модель операционной системы
- •Глава 7. Функциональность операционной системы при многозадачных режимах
- •Глава 8. Идеология совершенствования операционных систем (ос юникс)
- •Глава 9. Примерные варианты лабораторных работ по отдельным темам
6.2. Формальная модель операционной системы
Для упрощения понимания работы различных блоков операционной системы имеет смысл ввести ее формальную модель, функционирующую на некоторой абстрактной вычислительной системе.
Пусть Т=[t0,tk] – время функционирования ОС (от t0 – времени инициирования и загрузки системы до tk – времени ее уничтожения). Структуру ОС в некоторый момент времени tТ можно представить с помощью графа Гt, вершинами которого являются элементы множеств процессов P={p0,p1,…,pn} и ресурсов R={r0,r1,…,rg}, а ребра устанавливают связи между вершинами, Р и R − конечные непустые множества. Так как ОС является динамически изменяющейся системой, то в некоторые моменты времени t1,t2T, t1t2 ее структура может быть представлена соответственно в виде графов Гt1 и Гt2. Проследим изменение Гt – графа, отображающего структуру ОС, в любой момент времени tТ. Выделим в некоторое множество все возможные вершины и ребра, которые могут быть получены на промежутке времени [t0,tk]. В дальнейшем каждый элемент множества (вершину или ребро) будем обозначать как j, j1. Определим множество E как совокупность правил, фиксирующих изменение структуры графа Гt для любого tТ. Каждое правило из множества E имеет вид
Y j,: ij1, j2,…, jв, yj1, yj2, yj3,
где yj, – номер правила, i=1,2,3 j, j1, j2,…, jв означает, что элемент j в момент времени tТ заменяется на набор элементов j1, j2,…, jв, yj1, yj2 – соответственно номера правил, на которые осуществляется переход, если элемент j активен или блокирован, yj3 указывает правило, определяющее для заданного j либо весь граф ресурсов (если j – процесс), либо альтернативный ресурс (если j – ресурс). Обозначим через Y – множество номеров правил из Е. Пусть 0 – некоторый начальный процесс, инициирующий работу системы. Тогда M – формальная модель операционной системы, которую можно определить следующим образом:
М=[Т,,Е,Y, 0].
Пусть каждый элемент j характеризуется следующей тройкой:
[m(j),x(j),S(j)],
где m(j) – имя элемента; x(j) – тип элемента (процесс, процессор, память и т.д.); S(j) определяет состояние элемента (активен, блокирован и т.д.).
Примем, что некоторый элемент j в момент времени t порождает цепочку элементов φi,=j1j2…jв (т.е. j φj ), если к j применимо некоторое правило из Е.
Будем говорить, что граф Гt порождается вершиной j (т.е. j*Гt(j)=Гt), если существует набор правил y1, y2, …,yn , для которых справедливо утверждение j φ1φ2φl=Гt(j), причем на каждом шаге φi-1=φi выполняется только одно правило из Е.
Обозначим через Гtp(pi) граф процессов, порождаемый процессом рiР, P есть подмножество b в некоторый момент времени t. Если p0 – начальный процесс, то Гtp(pi) Гtp(p0), 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 (P0).
Вершины графа Гtp
(т.е. процессы) могут быть соединены
ориентированными или неориентированными
ребрами. Ориентированное ребро
указывает, что вершина pb
находится в отношении иерархического
подчинения к вершине pа,
т.е. процесс pb
является потомком процесса pа.
Неориентированное ребро аb=(pa,pb)
показывает, что существует связь между
процессами pа
и pb.
Например, аb
говорит о том, что pа
и pb
используют общий ресурс r.
Вершинами графа Гtr
будут некоторые ресурсы rjR,
R,
которые могут быть соединены между
собой ориентированными и неориентированными
ребрами. Ориентированное ребро
указывает, что ресурс rb
является потомком ресурса rа.
Например, если rа
определяет память, то rb
– это один из сегментов памяти rа.
Будем считать, что все вершины графа Гt расположены по уровням, причем на нулевом уровне находится единственная вершина p0 . На уровнях Ui1 помещаем вершины, каждая из которых зависит хотя бы от одной вершины предыдущего уровня Ui-1 и не зависит ни от одной вершины последующих уровней. Одноуровневые вершины не зависят друг от друга.
