📄 round-robinsched.c
字号:
/* include files*/
#include "vxWorks.h"
#include "taskLib.h"
#include "kernelLib.h"
#include "sysLib.h"
#include "logLib.h"
#include "stdio.h"
/* function defined */
void taskOne(void);
void taskTwo(void);
void taskThree(void);
/* global varibles*/
#define ITER1 5
#define ITER2 1
#define PRIORITY 103
#define TIMESLICE 3
#define LONG_TIME 100
void sched(void)/*function to create three tasks*/
{
int taskIdOne,taskIdTwo,taskIdThree;
if( kernelTimeSlice(TIMESLICE)==OK)
printf("\n\n\n\t\t\tTIMESLICE=%dseconds\n\n",TIMESLICE);
if( taskIdOne=taskSpawn("task1", PRIORITY,0x100,20000,(FUNCPTR)taskOne,0,0,0,0,0,0,0,0,0,0)==ERROR)
printf("\nTaskSpawn taskone failed\n");
if( taskIdTwo=taskSpawn("task2", PRIORITY,0x100,20000,(FUNCPTR)taskTwo,0,0,0,0,0,0,0,0,0,0)==ERROR)
printf("\nTaskSpawn tasktwo failed\n");
if( taskIdThree=taskSpawn("task3", PRIORITY,0x100,20000,(FUNCPTR)taskThree,0,0,0,0,0,0,0,0,0,0)==ERROR)
printf("\nTaskSpawn taskthree failed\n");
}
void taskOne(void)
{
int i,j;
for(i=0;i<ITER1;i++)
{
for(j=0;j<ITER2;j++)
logMsg("This is task 1111111\n",0,0,0,0,0,0);
for(j=0;j<LONG_TIME;j++);/*Allow time to context switch*/
}
}
void taskTwo(void)
{
int i,j;
for(i=0;i<ITER1;i++)
{
for(j=0;j<ITER2;j++)
logMsg("This is task 2222222\n",0,0,0,0,0,0);
for(j=0;j<LONG_TIME;j++);/*Allow time to context switch*/
}
}
void taskThree(void)
{
int i,j;
for(i=0;i<ITER1;i++)
{
for(j=0;j<ITER2;j++)
logMsg("this is task 3333333\n",0,0,0,0,0,0);
for(j=0;j<LONG_TIME;j++);/*Allow time to context switch*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -