Семейство операционных систем W2k. Обзор версий. Процессы и очереди
Реферат - Компьютеры, программирование
Другие рефераты по предмету Компьютеры, программирование
µделяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Одинаковые процессы реализуются по одной программе и имеют одинаковые трассы.
По месту развития процессы делятся на внутренние (реализуются в центральном процессоре) и внешние (реализуются на внешних процессорах).
По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские.
Система управления процессами обеспечивает прохождение процесса через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необходимо разместить в основной памяти, следовательно, ему необходимо выделить часть адресного пространства. Процессу в состоянии готовый должно быть предоставлено процессорное время. Выполняемый процесс может потребовать оборудование ввода-вывода и доступ к файлу.
Распределение процессов между имеющимися ресурсами носит название планирование процессов.
Очереди
Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов. Новые процессы находятся во входной очереди, часто называемой очередью работ заданий.
Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса адресного пространства основной памяти.
Очередь - структура данных, работающая по принципу "первым пришел, первым ушел" (FIFO(First In, First Out)). Для нее определены две операции: добавление нового элемента в конец очереди ("Put") и получение (получение значения с последующим удалением) элемента из начала очереди ("Get"). Также возможна операция "Peek": получение значения первого элемента очереди без его удаления. Очередь реализуется на основе указателей (ссылок) на следующий элемент очереди [2].
Типы очередей
- Однонаправленные - это когда движешься от начала очереди в конец последовательно, то есть сначала выполняется первый процесс в очереди, потом второй, третий и так далее, при этом выполненный процесс снимается с очереди - это и есть классическая очередь.
При реализации такой очереди в программе хранится только указатель на первый объект очереди. Для доступа, например, к 5-ому элементу, необходимо пройти все предыдущие элементы очереди. При этом в самой записи (элементе очереди) хранится кроме полезной информации, еще и ссылка (указатель) на следующий элемент [8].
- Двунаправленные это процессы выполняются не по порядку, то есть сначала может быть выполнен элемент из начала очереди, далее из конца, затем из середины и т.д. При реализации такой очереди обычно хранится уже две переменные - "голова" и "хвост" очереди. Хотя вполне можно ограничиться только "Головой". В самой записи находится уже два указателя: на предыдущий элемент и на следующий. Первый элемент очереди ссылки на предыдущий элемент не имеет (на Pascal ставиться "пустое значение указателя" - Nil), а последний элемент - ссылки на следующий не имеет и вместо него ставится Nil
- Многонаправленные после выполнения какого-либо элемента из очереди, может начать выполняться не только предыдущий элемент или следующий, а вообще любой элемент из очереди. В реализации одного элемента такой очереди могут участвовать не два (как в предыдущем случае), а большее количество указателей.
Алгоритм программы, формирующей очередь
Для формирования очереди и работы с ней необходимо иметь три переменные типа указатель, первая из которых определяет начало очереди, вторая - конец очереди, третья вспомогательная [2].
Описание компоненты очереди и переменных типа указатель представим следующим образом:
type
PComp=^Comp;
Comp=record
D:T;
pNext:PComp
end;
var
pBegin, pEnd, pAux: PComp;
где pBegin - указатель начала очереди, pEnd - указатель конца очереди, pAux - вспомогательный указатель.
Тип Т определяет тип данных компоненты очереди.
Начальное формирование очереди выполняется следующими операторами (Рис. 1):
Рис. 1 Операторы, выполняющие начальное формирование очереди.
Добавление компоненты в очередь производится в конец очереди (Рис. 2):
Рис. 2 Добавление в конец очереди нового элемента.
Добавление последующих компонент производится аналогично.
Выборка компоненты из очереди осуществляется из начала очереди, одновременно компонента исключается из очереди. Пусть в памяти ЭВМ сформирована очередь, состоящая из трех элементов (Рис. 3):
Рис. 3 Очередь, состоящая из трех элементов.
Выборка компоненты выполняется следующими операторами (Рис. 4):
D1:=pBegin^.D;
pBegin:=pBegin^.pNext;
Рис. 4 Выборка компоненты из очереди.
Текст программы, формирующей очередь
Приведенный в курсовой работе алгоритм реализован в программе, которая формирует очередь, добавляет в нее произвольное количество компонент, а затем читает все компоненты и выводит их на экран дисплея. В качестве данных взять строку символов. Ввод данных - с клавиатуры дисплея, признак конца ввода - строка символов END.(Программа написана на языке Turbo Pascal 7.0)
Program QUEUE;
uses Crt; {использование модуля crt}
type {создание новых типов переменных, которые потребуются в программ