Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "LCFSPR.h"
- static queue_object* LCFSPR_queue;
- //You can add more global variables here
- int new_here = 0; // flag zeigt ob der neue prozess angekommen ist & der laufende verdraengt werden sollte
- static process* new_process; //variable in die wir den neuen prozess ablegen
- int LCFSPR_startup(){
- LCFSPR_queue=new_queue();
- if (LCFSPR_queue==NULL){
- return 1;
- }
- return 0;
- }
- process* LCFSPR_tick (process* running_process){
- if (running_process==NULL || running_process->time_left==0){ // der laufende prozess zuende
- running_process=queue_poll(LCFSPR_queue);
- }
- if (new_here == 1){ //neuer prozess angekommen, der laufende muss verdraengt werden
- //den laufenden Prozess verdraengen also den neuen auf die erste stelle stellen
- queue_add(running_process, LCFSPR_queue); // den laufenden prozess hinden einreihen
- running_process = new_process;
- new_here = 0;
- }
- if (running_process!=NULL){
- running_process->time_left--;
- }
- return running_process;
- return NULL;
- }
- process* LCFSPR_new_arrival(process* arriving_process, process* running_process){
- if(arriving_process!=NULL){
- if (LCFSPR_queue != NULL){
- new_here = 1;
- new_process = arriving_process; //in die variable abgelegt damit er nicht hinten eingereit wird, wir wollen den ja gleich ausfueren
- }
- else
- queue_add(arriving_process, LCFSPR_queue);
- }
- return running_process;
- return NULL;
- }
- void LCFSPR_finish(){
- free_queue(LCFSPR_queue);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement