Exemple #1
0
void
pm_clean (struct physical_memory *pm, FILE *backstore, struct page page_table[NUM_PAGES])
{
    
    for(int i=0;i<NUM_PAGES;i++){
        if(page_table[i].flags==dirty){
            
            pm_backup_frame(pm,backstore,page_table[i].frame_number,i);
            
            
            
        }
    }
    
    // Enregistre l'état de la mémoire physique.
    if (pm->log)
    {
        for (unsigned int i = 0; i < PHYSICAL_MEMORY_SIZE; i++)
        {
            if (i % 80 == 0)
                fprintf (pm->log, "%c\n", pm->memory[i]);
            else
                fprintf (pm->log, "%c", pm->memory[i]);
        }
    }
}
void
pm_clean (struct physical_memory *pm, struct page *page_table)
{
	// Assurez vous d'enregistrer les modifications apportées au backing store!
   for (int i = 0; i < NUM_PAGES; i++)
      if(page_table[i].flags & 0x2) //if dirty, save it
         pm_backup_frame(pm, page_table[i].frame_number, i);
   
	// Enregistre l'état de la mémoire physique.
	if (pm->log)
	{
		for (unsigned int i = 0; i < PHYSICAL_MEMORY_SIZE; i++)
		{
			if (i % 80 == 0)
			{
				fprintf (pm->log, "%c\n", pm->memory[i]);
			}
			else
			{
				fprintf (pm->log, "%c", pm->memory[i]);
			}
		}
	}
}