Диспетчер процессов. Краткое описание архитектуры
Описание файла
PDF-файл из архива "Диспетчер процессов. Краткое описание архитектуры", который расположен в категории "". Всё это находится в предмете "системы автоматического управления (сау) (мт-11)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системы автоматического управления (сау)" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1Диспетчер процессов. Краткое описание архитектурыДиспетчер предназначен для управления восемью синхроквантами, выполнениекоторых можно жестко привязать к реальному времени с дискретой (тиком) в 1мс иможет быть дополнен для управления рядом интерквантов, выполнение которыхинициируется внешними событиями, фиксируемыми по изменению состояния выводовсвободного порта микроконтроллера. Очередность выполнения квантов определяетсяописанными в них задержками времени.
При совпадении моментов запуска несколькихквантов, предпочтение отдается кванту с минимальным номером. Имеется возможностьменять стратегию диспетчирования, переходя от приоритетной очереди к круговой (см.ячейку 26h).В таблице 1 приведены адреса резидентной памяти данных, в которой затонированыбайты, определяющие работу диспетчера. Эти адреса пользователь может использовать всвоих квантах для настройки диспетчирования.Таблица 1.Распределение резидентной памяти микроконтроллера под диспетчер задачАдрес00h01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10…1FhСодержимое ячейки памятиR0 пользователяR1 пользователяR2 пользователяR3 пользователяR4 пользователяR5 пользователяR6 пользователяR7 пользователяR0 таймера – задержка 0-го кванта в тикахR1 таймера - задержка 1-го кванта в тикахR2 таймера - задержка 2-го кванта в тикахR3 таймера - задержка 3-го кванта в тикахR4 таймера - задержка 4-го кванта в тикахR5 таймера - задержка 5-го кванта в тикахR6 таймера - задержка 6-го кванта в тикахR7 таймера - задержка 7-го кванта в тиках15 свободных байт пользователя (второй и третий банки регистров)20hСтатусквантов21hФлагиквантов22hРазрядностьзадержекСтатус7-гоквантаСтатус6-гоквантаСтатус5-гоквантаСтатус 4-гоквантаСтатус 3-гоквантаСтатус 2-гоквантаСтатус 1-гоквантаСтатус 0-гоквантаSPR7SPR6SPR5SPR4SPR3SPR2SPR1SPR0Флаг 7-гоквантаФлаг 6-гоквантаФлаг 5-гоквантаФлаг 4-гоквантаФлаг 3-гоквантаФлаг 2-гоквантаФлаг 1-гоквантаФлаг 0-гоквантаFPR7FPR6FPR5FPR4FPR3FPR2FPR1FPR0Квант 7Квант 6Квант 5Квант 4Квант 3Квант 2Квант 1Квант 0R_PR7R_PR6R_PR5R_PR4R_PR3R_PR2R_PR1R_PR023h24h25h26h24h..63h64h....7FhСчетный регистр числа малых тиковРегистр значения старшего байта TH0 счетчика ТС0Регистр значения младшего байта TL0 счетчика ТС0Регистр типа очереди квантовБайты пользователяСтек системы и пользователяСтек системы и пользователя1-ый банк регистров – таймерный.
Банк задержек квантов. Каждая задержкаустанавливается пользователем и затем уменьшается с каждым тиком таймером.08h (R0) – задержка времени кванта PR0.209h (R1) – задержка времени кванта PR1.0Ah (R2) – задержка времени кванта PR2.0Bh (R3) – задержка времени кванта PR3.0Ch (R4) – задержка времени кванта PR4.0Dh (R5) – задержка времени кванта PR5.0Eh (R6) – задержка времени кванта PR6.0Fh (R7) – задержка времени кванта PR7.20h – регистр статусов квантов (исходно обнулен, устанавливается побитнопользователем). Если в соответствующем бите 1 – квант активизирован, если 0 –отключен.№ бита76543210Адрес бита76543210SPR6SPR5SPR4SPR3SPR2SPR1SPR0Назначение SPR721h – регистр флагов квантов (устанавливается побитно таймером по истечениизадержки).
Сбрасывается в пультовой петле диспетчера при запуске кванта.№ бита76543210Адрес битаFhEhDhChBhAh98FPR6FPR5FPR4FPR3FPR2FPR1FPR0Назначение FPR722h – регистр разрядности задержек квантов (устанавливается пользователем).Если в соответствующий кванту бит записана единица, задержка отсчитывается вбольших тиках, если ноль, в малых.№ бита76543210Адрес бита17h16h15h14h13h12h11h10hRPR6RPR5RPR4RPR3RPR2RPR1RPR0Назначение RPR723h – счетный регистр малых тиков. Система отсчета времени ведется в малыхтиках, период которых может быть настроен пользователем (исходно длительностьмалого тика 1 мс) и в больших тиках, содержащих 256 малых. Тик, совпадающий собнулением ячейки 23h считается большим.24h – регистр настройки малого тика. Содержит начальное значение старшегобайта TH0 таймера счетчика Т/С0.25h – регистр настройки малого тика.
Содержит начальное значение младшегобайта TL0 таймера счетчика Т/С0.26h – регистр управления очередью квантов. Квант запускается из пультовойпетли диспетчера, если установлены его статус и флаг. Анализ состояний квантов(очередность запуска) ведется по двум стратегиям:- Приоритетный запуск. Начинается анализ с нулевого кванта (самогоприоритетного) и заканчивается седьмым.- Круговой запуск. Если выполнялся, например, пятый квант, после выполнениякванта и возврата в диспетчер первым анализироваться будут условия запускашестого, седьмого, нулевого, первого и т.д.Бит 26.0 (нулевой бит ячейки 26h) – бит круговой очереди в диспетчере. Если онсброшен в 0 – приоритетный запуск, если установлен в 1 – круговой.Распределение памяти программ приведено в таблице 2. Там затонированы строкипамяти программ, занимаемой диспетчером процессов.
Диспетчер является основнойведущей программой. Зоны памяти, которые могут занимать стартовая программа икванты пользователя, оставлены светлыми.3Таблица 2.Распределение памяти программ МКАдрес0000h0003h – 0025h002Bh – 0048h004Ah004Fh – 00BFh00D0h – 0141h0149h – 0164h0149h014Ch014Fh0152h0155h0158h015Bh015Eh0162hАдресаНаименование программы или зоны памятиНачальный пуск системыЗона векторов прерываний MKНачальная системная настройка МКЗапуск начальной настройки МК пользователем по адресу 0162hПультовая петля диспетчера задачПодпрограмма прерываний таймераЗона векторов системных прерываний для пользователяПереход к кванту пользователя с нулевым приоритетом LJMP<адресPR0>Переход к кванту пользователя с первым приоритетом LJMP<адрес PR1>Переход к кванту пользователя со вторым приоритетом LJMP<адресPR2>Переход к кванту пользователя с третьим приоритетом LJMP<адрес PR3>Переход к кванту пользователя с четвертым приоритетом LJMP<адресPR4>Переход к кванту пользователя с пятым приоритетом LJMP<адрес PR5>Переход к кванту пользователя с шестым приоритетом LJMP<адресPR6>Переход к кванту пользователя с седьмым приоритетом LJMP<адресPR7>Переход к подпрограмме начальной настройки МК пользователемSTARTсвободны Кванты пользователя START, PR0, PR1, PR2, PR3, PR4, PR5, PR6, PR7На рис.1.
поясняется взаимодествие диспетчера с квантами пользователя.Рис.1. Схема организации работы диспетчера.