/*update_task_status: изменить состояние конкретной задачи */
/*в соответствии с допустимым переходом (рис. 8.14) */
/****************************************************************/
void update_task_status(unsigned char task, char task_status) {
//установить состояние задачи на выходе порта T
switch(task_status) {
case 'D': //бездействие (D)
PORTT = 0x01;
break;
case 'R': //готовность (R)
PORTT = 0x02;
break;
case 'A': //активность (A)
PORTT = 0x04;
break;
case'W': //ожидание (W)
PORTT = 0x08;
break;
case 'S': // приостановка(S)
PORTT = 0x10;
break;
case 'X': //восстановление (X)
PORTT = 0x20;
break;
}
PORTA = task 0x7F; /*выбор задачи, активизируйте декодер */
PORTA = 0xFF /*Высокоомный выход (Hi-Z) декодера */
}
/****************************************************************/
/****************************************************************/
8.11.Заключение по главе 8
В этой главе мы познакомили вас с концепциями операционных систем реального времени. Мы не хотели выбирать конкретные ОСРВ и затем рассматривать их работу. Вместо этого, мы сосредоточились на концепциях, связанных с самими ОСРВ и на ключевых вопросах их применения. Мы рассмотрели терминологию ОСРВ, структуры данных, алгоритмы планирования и затруднения, встречающиеся при разработке этих систем.
8.12. Что еще почитать?
1. Barrett S. F, D. J. Pack, С Straley, L. Sircin, and G. Janack. «Real-Time Operating Systems: A Visual Simulator.» Paper presented at the annual meeting of the American Society for Engineering Educations, June 2004.
2. Ganssle, J. «Writing a Real-Time Operating System-Part I: A Multitasking Event Scheduler for the HD64180.»
3. Ganssle, J. «Writing a Real-Time Operating System-Part II: Memory Management and Applications for the HD64180.»
4. Ganssle, J. «An OS in a CAN.»
5. Korsch, J. F., and L. J. Garrett.
6. Labrosse, J. J.
7. Lafore, R.
8. Laplante, P.
9. Miller, G. H.
10. Moore, R.
11. Motorola Inc. «68HC12 M68EVB912B32 Evaluation Board User's Manual.» Motorola Document 68EVB912B32 UM/D, 1997.
12. Motorola Inc. «HC12 M68HC12B Family Advance Information.» Motorola Document M68HC12B/D, 2000.
13. Pack, D. J., and S. F. Barrett.
8.13. Вопросы и задания
1. Что такое — ОСРВ?
2. Что называется задачей в системах реального времени?
3. Что такое контекст задачи? Приведите конкретные примеры содержимого контекста задачи.
4. Опишите действия, которые ОСРВ должен выполнить относительно задачи.
5. Что такое — ядро ОСРВ? Какими основными свойствами оно должно обладать?
6. Каковы различия между глобальной и локальной переменной?
7. Что понимается под динамическим распределением памяти?
8. Какая память (RAM, ROM, и т.д.) используется при динамическом распределении памяти? Объясните почему.
9. Опишите следующие структуры данных. Где они обычно используются:
• Структура/запись;