русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекция №4. Последовательность выполнения команд микропроцессором. Режимы адресации.


Дата добавления: 2015-08-14; просмотров: 806; Нарушение авторских прав


Прежде чем вести речь о последовательности выполнения команд рассмотрим диаграммы состояний и переходов процесса.

Процесс – целенаправленная последовательность вычислительных действий, которая характеризуется:

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

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

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

Таблица 4.1. Характерные отличия процессов и примитивов.

Нить (поток) – некоторая совокупность кодов внутри процесса, получаемая процессорное время для выполнения.

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

Каждый поток имеет:

· уникальный идентификатор потока;

· содержимое набора регистров процесса, определяющих его состояние;



· два стека, первый используется потоком при выполнении в режиме ядра, другой в режиме задачи;

· закрытую область памяти, называемую локальной памятью потока.

Теперь рассмотрим диаграммы.

Рис. 4.1. Диаграмма состояний процесса.

Стрелки соответствуют следующим переходам:

1. диспетчеризация (запуск процесса);

2. вызов системных служб;

3. прерывание;

4. запрос к системе;

5. завершение ожидания;

6. остановка работы задачи (если недоступен ресурс);

7. активация задачи;

8. контроль задачи;

9. запрос к системным службам;

10. прерывание и возврат из прерывания.

Но могут появиться и новые стрелки:

· создание процесса – переход из состояния рождения в состояние готовности;

· уничтожение процесса – переход из состояния выполнения в состояние смерти;

· восстановление процесса – переход из состояния готовности в состояние выполнения;

· изменение приоритета процесса – переход из состояния выполнения в состояние готовности;

· блокировка процесса – переход из состояния выполнения в состояние ожидания;

· пробуждение процесса – переход из состояния ожидания в состояние готовности;

· запуск (выбор) процесса – переход из состояния готовности в состояние выполнения.

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

Рис. 4.2. Диаграмма переходов процесса.

Состояния:

1. процесс выполняется в режиме задачи;

2. процесс выполняется в режиме ядра;

3. процесс не выполняется, но готов к запуску под управлением ядра;

4. процесс приостановлен и находится в оперативной памяти;

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

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

7. процесс возвращен из режима ядра в режим задачи; ядро резервирует его и переключает контекст на другой процесс;

8. процесс вновь создан и находится в переходном состоянии; он существует, но не готов к выполнению и не приостановлен;

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

Всё начинается с системного вызова int pid=fork() – рождение процесса, по которому создаётся процесс.

Стрелки:

1. достаточно памяти;

2. запуск процесс;

3. возврат из прерывания;

4. прерывание (или функция прерывания);

5. прерывание и возврат из прерывания;

6. приостановка;

7. возобновление;

8. выгрузка;

9. возобновление;

10. загрузка;

11. выгрузка;

12. нехватка памяти;

13. конец работы;

14. резервирование;

15. возврат;

16. зарезервирован.



<== предыдущая лекция | следующая лекция ==>
 | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.219 сек.