Пример #1
0
static pid_t
setup_dev (vfsmsg_t *msg) {
    pid_t pid;
    pid = createtask(TASK_PRIO_HIGH, PAGE_INVALID);
    allocatestack(pid, DEFAULT_STACK_SIZE);
    setuptask(pid, msg->mkdev.ask.driver, msg->mkdev.ask.args, NULL);
    starttask(pid);
    return pid;
}
Пример #2
0
Task * insertmodel1(Task * head, float lamda, float u, float artime, int priority)// create the queue for task0 or task 1
{
	if(head == NULL)
	{	
		 
		head = createtask(lamda, u,priority);
		head -> artime = artime + head -> iatime;
		return head;
	}
	head -> next = insertmodel1( head-> next ,lamda, u , head -> artime, priority);
	head ->next -> prev = head;
	return head;
}
Пример #3
0
//Model1 tasks creation
Task * insertmodel1(Task * head, float lamda, float u, float aritime)
{
	
	if(head == NULL)
	{	

		head = createtask(lamda, u );
		head -> aritime = aritime + head -> iatime;
		return head;
	}
	head -> next = insertmodel1( head-> next ,lamda, u , head -> aritime);
	return head;
}
Пример #4
0
/*
  File's format:
  b
  n
  p1 p2 ... pn
  w1 w2 ... wn
*/
task_t* readtask(char* filename){
  task_t* task;

  FILE *file;
  if( (file = fopen(filename,"r")) == 0 ) return NULL;

    knint b;
    if( fscanf(file,"%lld",&b) != 1 ) return NULL;

    int size;
    if( fscanf(file,"%d",&size) != 1 ) return NULL;

    task = createtask(size,b);

    item_t *head = task->items;
    knint *tmp;
    //int morethanb = 0;
    for( tmp = head->p ; tmp < head->p+size ; tmp++ )
    { if( fscanf (file,"%lld", tmp) != 1 ) return 0; }
    for( tmp = head->w ; tmp < head->w+size ; tmp++ )
    { 
      if( fscanf (file,"%lld", tmp) != 1 ) return 0;
      //if( *tmp > b ) morethanb++;
    }
	
	/*if( morethanb > 0 ) {
		task_t* task2 = createtask(size-morethanb,b);
		item_t* head2;
		for( head = task->items, head2 = task2->items ; head < task->items+size ; head++ ) {
			if( *(head->w) <= b ) {
				*(head2->p) = *(head->p);
				*(head2->w) = *(head->w);
				head2++;
			}
		}
		free_task(&task);
		task = task2;
	}// if */


  fclose(file);

  return task;
}