Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_ekzamenatsionnye_voprosy по архитекту....doc
Скачиваний:
19
Добавлен:
14.04.2019
Размер:
1.38 Mб
Скачать

5.Оптимизация вычислительного процесса

Вычислительный процесс – последовательность выполнения команд программы. В каждый момент времени работы многозадачной операционной системы может быть несколько процессов. Список процессов строится из дескрипторов процессов.

Определение процессов. В специализированных системах, которые называют ещё встроенными системами, предназначенных для целей управления, обычно совокупность решаемых задач известна заранее, и все программы, которые должна выполнять система, включаются в неё при создании. В таких системах множество процессов (т.е. множество программ), которыми необходимо управлять, фиксируется при создании системы. Это множество не изменяется в процессе работы системы.

В системах общего назначения список процессов заранее не известен. Он создаётся в период работы и может видоизменяться. Для этой цели предоставляются специальные средства. Например, процедуры “создать процесс”, “уничтожить процесс”. Эти процедуры создают дескрипторы процесса и включают (исключают) в список (из списка) процессов.

Обычно управление процессами, т.е. выбор процесса и активизацию осуществляет

системная программа «диспетчер». Для связи пользователя с этой программой создаются специальные процедуры, которые называются “примитивами” диспетчера.

Переключение процессов. Допустим, выполняется некоторый процесс Р. В некоторый момент времени он обращается к диспетчеру с помощью примитива, сообщая, что он закончил свою работу. В этом случае должно производиться переключение контекста: «выполняемый процесс» – «диспетчер». Диспетчер должен выбрать следующий процесс, который он активизирует и осуществляет второе переключение контекста, т.е. запомнить контекст диспетчера и восстановить контекст нового процесса. Стек является наилучшим вариантом реализации хранения контекста.

При вызове вложенных подпрограмм осуществляется запись контекста вызываемой подпрограммы в стек, а при возврате происходит восстановление контекста (обязательно в обратном порядке по отношению к запоминанию).

Если используется произвольный порядок, то Контекст может оказаться недоступным (не находится в вершине стека).

Процессы отличаются от подпрограмм тем, что они могут активизироваться, в общем случае, в произвольном порядке. Поэтому вместо того, чтобы использовать один стек для сохранения всех контекстов используют отдельный для каждого процесса.

Если ориентироваться на систему со многими стеками для каждого процесса, то дескриптор процесса должен включать указатель на стек процесса.

При входе в диспетчер переключение контекста необходимо, но при выходе из диспетчера контекст можно было бы не сохранять, считая, что диспетчер всегда заканчивает работу путём задания контекста нового процесса. Однако мы примем общий механизм переключения контекста, который применим для существующих переключений.

Создание и уничтожение процессов

В отличие от рассмотренных ранее специальных систем, в системах общего назначения количество процессов в каждый момент времени может изменяться, т.е. могут появляться новые процессы и могут уничтожаться закончившиеся процессы.

Создание процессов может выполняться:

а) как при обработке шага задания;

б) так и пользователем, которому предоставляются специальные примитивы создания и уничтожения процессов.

Рассмотрим оба случая:

1) Допустим, что рассматривается однопользовательская операционная система (для персональных компьютеров).

В такой системе пользователю обычно предоставляется право создавать процесс, но не предусматривается возможность уничтожения процесса, т.е. все процессы уничтожаются при завершении сеанса работы.

2) Если система многопользовательская (системы с разделением времени), то необходимо предусмотреть примитивы создания и уничтожения процессов. Например, уничтожение должно выполняться по завершению шага задания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]