Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

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

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

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

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

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

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

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

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

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

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





Дата публикования: 2015-02-03; Прочитано: 520 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...