Advertisement
madegoff

LCFS PR

Jun 15th, 2023 (edited)
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include "LCFSPR.h"
  2.  
  3. static queue_object* LCFSPR_queue;
  4. //You can add more global variables here
  5. int new_here = 0; // flag zeigt ob der neue prozess angekommen ist & der laufende verdraengt werden sollte
  6. static process* new_process; //variable in die wir den neuen prozess ablegen
  7.  
  8. int LCFSPR_startup(){
  9.  
  10.     LCFSPR_queue=new_queue();
  11.     if (LCFSPR_queue==NULL){
  12.         return 1;
  13.     }
  14.     return 0;
  15. }
  16.  
  17. process* LCFSPR_tick (process* running_process){
  18.  
  19.     if (running_process==NULL || running_process->time_left==0){ // der laufende prozess zuende
  20.         running_process=queue_poll(LCFSPR_queue);
  21.     }
  22.     if (new_here == 1){ //neuer prozess angekommen, der laufende muss verdraengt werden
  23.  
  24.         //den laufenden Prozess verdraengen also den neuen auf die erste stelle stellen
  25.         queue_add(running_process, LCFSPR_queue); // den laufenden prozess hinden einreihen
  26.         running_process = new_process;
  27.         new_here = 0;
  28.     }
  29.     if (running_process!=NULL){
  30.         running_process->time_left--;
  31.     }
  32.  
  33.     return running_process;
  34.     return NULL;
  35. }
  36.  
  37.  
  38. process* LCFSPR_new_arrival(process* arriving_process, process* running_process){
  39.     if(arriving_process!=NULL){
  40.         if (LCFSPR_queue != NULL){
  41.                 new_here = 1;
  42.                 new_process = arriving_process; //in die variable abgelegt damit er nicht hinten eingereit wird, wir wollen den ja gleich ausfueren
  43.         }
  44.         else
  45.         queue_add(arriving_process, LCFSPR_queue);
  46.     }
  47.     return running_process;
  48.     return NULL;
  49. }
  50.  
  51. void LCFSPR_finish(){
  52.     free_queue(LCFSPR_queue);
  53. }
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement