Advertisement
jazz_vico

orga2 2doPar1C2018 ej3

Dec 4th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. // Desde la interrupción de clock, antes de realizar el jmp far, recorremos el sistema
  2. // de apginación revisando las paginas que esten presentes, correspondan a usuario
  3. //(osea pd entry y pt entry tienen bit dpl en 1)
  4. //y el bit de Acceced en 1. al mismo tiempo de contarlas, reseteamos el bit
  5. //de acceced.
  6.  
  7.  
  8. tarea_offset: dd 0x00
  9. tarea_selector: dw 0x00
  10.  
  11.  
  12. //clk
  13. _isr32:
  14.     pushad
  15.  
  16.     call contar_pags
  17.     push eax
  18.     call saveCount
  19.     pop eax
  20.     call prox_indice
  21.     mov [tarea_selector],ax
  22.     jmp far [tarea_offset]
  23.    
  24.     popad
  25.     iret
  26.  
  27. int contar pags(){
  28.     int res=0;
  29.     (PD*) basePD= (PD*)(rcr3()>>12)<<12;
  30.     for(int=0;int<1024;i++){
  31.         if (basePD[i]->bit_p !=0 && basePD[i]->dpl=1){
  32.             if (basePD[i]->bit_a!=0){
  33.                 basePD[i]->bit_a = 1;          
  34.                 (PT*) badePT=(PT*) badePD[i]->base<<12;
  35.                 for (int j = 0; i < 1024; ++j){
  36.                     if (badePT[i]->bit_p ==1 && basePT[i]->bit_a==1){
  37.                         if(basePT[i]->dpl=1){
  38.                             badePT[i]->bit_a=0;
  39.                             res++;
  40.                         }
  41.                     }
  42.                 }
  43.             }
  44.         }  
  45.     }
  46.     return res;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement