Next blank.gif Home Page

Class AdmMem - Memoria


SYNOPSIS

import ovsos
classobj AdmMem
  def Setup(parar_reloj,enabled)
  def __init__(self)
  str __module__ = 'ovsos'
  def find_proc(self,pid)
  def gen_report(self)
  def get_free_frame(self)
  def get_swap_block(self,pid,frame,page,flags)
  def if_page_fault(self,proc)
  def init_mem_list(self,nr_tot_frames)
  def mem_page_access(self,pid,type,page)
  def mem_page_fault(self,pid,type,page)
  def mem_swap_in(self,pid,page,flags)
  def mem_swap_out(self,pid,victim_frame,page,flags)
  def mem_tick(self,_time)
  def mem_touch(self,proc)
  def put_free_frame(self, frame)
  def put_swap_block(self,pid,frame,page,flags)
  def remove_proc(self,pid)
  def send_log(self,type,nr,pid)
  def set_page_and_frame(self,pid,page,frame,flags)
  def virt_to_phys(self,pid_,page_)

DESCRIPTION

Clase encargada de representar la gestion de la memoria principal

def __init__(self)

Constructor de la clase AdmMem

Encargada de inicializar las variables.

def find_proc(self,pid)

devuelve el objeto proc del proceso pid

def gen_report(self)

Genera reporte

def get_free_frame(self)

devuelve un frame libre, si no hay devuelve -1

def get_swap_block(self,pid,frame,page,flags)

rescata un bloque de disco aqui se le asigna tiempo aleatorio para la busqueda del bloque

def if_page_fault(self,proc)

verifica si hay fallo de pagina

def init_mem_list(self,nr_tot_frames)

inicializa la memoria fisica, self.list_frame

def mem_page_access(self,pid,type,page)

accede a la pagina 'page' del proceso pid

def mem_page_fault(self,pid,type,page)

resuelve el fallo de pagina

def mem_swap_in(self,pid,page,flags)

realiza swap in

def mem_swap_out(self,pid,victim_frame,page,flags)

realiza el swap out, solo si el bitmod == 1

def mem_tick(self,_time)

tick reloj se encarga de buscar los bloques que estan en las lista list_swap_block

def mem_touch(self,proc)

funcion encargada de "tocar la memoria"

def put_free_frame(self, frame)

libera al frame frame

def put_swap_block(self,pid,frame,page,flags)

pone un bloque en disco, hay que hacer que espere un tiempo aleatorio simulando el tiempo de disco

def remove_proc(self,pid)

remueve los frames y las paginas asociadas al proceso identificado por pid

def send_log(self,type,nr,pid)

funcion encargada de registrar los eventos

def set_page_and_frame(self,pid,page,frame,flags)

asigna el frame a la pagina y la pagina al frame

def virt_to_phys(self,pid_,page_)

devuelve la informacion del frame para el pid_ y la page_

Definition

self.list_proc_page['pid']=[nr_max_page,bitmap[nr_max_page],list_page_frame[nr_max_page]]

Contiene informacion necesaria para la administracion de la memoria del proceso pid

Ej:

self.list_frame = []

lista de los frames ( 24 por defecto )

self.list_event = []

lista para la generacion de reporte, este llevara un registro de todos los eventos producidos.

self.list_swap_out = []

lista que contiene los bloques a guardar

self.list_swap_in = [

lista que contiene los bloques a rescatar

self.list_swap_block = []

lista que contiene los frames que van o vienen de swap

self.stack_frame = []

cola donde van ingresando los frames por orden en que fueron solicitados

SEE ALSO

ovsos


Next blank.gif Home Page
www_icon.gif

Copyright © M. Python
All Rights Reserved
Comments to author: monty@flying.circus.comb
Generated: Wed Aug 22, 2007