Разработка операционных систем - Контрольная работа

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

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Необходимо реализовать модель операционной системы реального времени, обладающей следующими свойствами: Тип планировщика: POSIX Управление ресурсами: простые семафоры Управление событиями: события принадлежат задачеЗадача получила все необходимые для выполнения ресурсы (память, стек и т. п.) и ожидает назначения на выполнение. Только из этого состояния задача может перейти в состояние running. При этом задача переходит из состояния suspended в состояние ready, после чего может быть назначена на выполнение. Не допускается наличие нескольких работающих копий одной задачи, т.е. повторная активизация задачи допускается только после завершения работы предыдущей копии этой задачи. Поскольку ОСРВ выполняется в однопроцессорной системе, но может выполнять более одной задачи, необходимо назначать задачи на процессор по очереди.Макрос TASK используется для описания задачи (примерно так же, как описываются функции в языке С). Задача с идентификатором TASKID должна быть предварительно объявлена с использованием макроса DECLARETASK. Удобство такого подхода заключается в том, что в дальнейшем задачу можно активизировать с использованием того же идентификатора TASKID, например: DECLARETASK(task1); Описание Переводит задачу из состояния suspended в состояние ready Параметры task - идентификатор задачи, для которой надо установить одно или более событий mask - маска, согласно которой будут установлены события для задачи taskФайл Содержание additional.cpp Описание дополнительных процедур и функций, необходимых для работы event.cpp Управление событиями global.cpp Описание всех глобальных переменных os.cpp Управление операционной системой resource.cpp Управление ресурсами (реализация функционала простых семафоров) task.cpp Управление задачами (планировщик, диспетчер и т.д.) test.cpp Тесты для проверки правильности работы rtos_api.h Содержатся все макросы, описания типов, декларации функций и другие объекты, которые необходимо включать в пользовательское приложение, Rtos_api.h extern TTASK TASKQUEUE[MAX_PRIOR][MAX_TASK]; // Очередь задач для POSIX планировщика, отдельная очередь на каждый приоритет extern TRUNNINGTASK RUNNINGTASK; // Запущенная задача extern TRUNNINGTASK FREETASK[MAX_TASK]; // Очередь свободных задач отсортированных по убыванию приоритетов extern TRUNNINGTASK SEMAPHOREWAITINGTASK[MAX_TASK]; // Очередь задач, ожидающих освобождение семафора extern TSEMAPHORE Semaphore; // Семафор extern void *SP; // Начало стека extern bool RESTORESTACK; // Флаг, характеризующий необходимость восстанавления стека extern HANDLE MAINPROCESS; // Дескриптор процесса void CHECKTASK(int prt, int tasknumber); Schedule((*Task).priority, TASKNUMBER);} printf("Setting events for %s completed

", (*Task).name);} void GETEVENT(TTASK Task, TEVENTMASK *Mask) if(READPROCESSMEMORY(MAINPROCESS, (LPVOID)(TASKQUEUE[RUNNINGTASK.priority][RUNNINGTASK.task].context.Rsp), TASKQUEUE[RUNNINGTASK.priority][RUNNINGTASK.task].Rsp.stack, TASKQUEUE[RUNNINGTASK.priority][RUNNINGTASK.task].Rsp.size, &sz)) {printf("All events have already happened!

");} if(RUNNINGTASK.task!=-1) printf("Waiting events (Task%i) completed

", RUNNINGTASK.

План
Оглавление операционный алгоритм планировщик

1. Постановка задачи

2. Операционная система реального времени

3. Требования к функционалу

4. Код программы

5. Результаты работы

Выводы

1. Постановка задачи

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?