proyecto final proyecto tere | Page 57

CONTROL DE MEMORIA. Con este método, el SO controla el tiempo del procesador y los recursos de I/O. El tercer recurso es la memoria. En un sistema multiprogramado, la memoria correspondiente al usuario debe subdividirse para acomodar múltiples procesos. Esta tarea la realiza el SO y se conoce como control de memoria, y resulta vital ya que una eficiente distribución permitirá disponer más tareas en memoria y necesitar menos accesos a dispositivos I/O, generalmente lentos, y que obligarían al procesador a permanecer en espera frecuentemente. PARTICION. El SO ocupa una porción fija de memoria principal. El resto está repartido para uso de los distintos procesos. El esquema más simple para repartir la memoria disponible es utilizar particiones de tamaño fijo. De todos modos, aunque las particiones son de tamaño fijo, no todas son de igual tamaño. Cuando un proceso es cargado en memoria, se coloca en la partición disponible más pequeña que lo pueda contener. Buffer de Traducción Rápida En principio, toda referencia a memoria virtual puede ocasionar dos accesos a la memoria física: uno para captar el elemento de la tabla de páginas apropiada, y otro para captar el dato deseado, por lo que en principio se duplicaría el tiempo de acceso a memoria. Para resolver este problema, la mayoría de los esquemas de memoria virtual utilizan una caché especial para los elementos de la tabla de páginas, llamada buffer de traducción rápida (TLB: Translation Lookaside Buffer), que contiene los elementos de la tabla de páginas accedidos más recientemente. Debido al principio de localización de referencias, este esquema mejora el rendimiento del sistema. El mecanismo de memoria virtual interactúa con la caché del sistema. Primero, el sistema de memoria consulta el TLB para comprobar si el descriptor de la tabla de páginas está incluido en él. Si es así, se genera la dirección física. Si no, se accede al elemento correspondiente de la tabla de páginas. Una vez obtenida la dirección real, se consulta la caché para comprobar si el bloque que contiene la palabra está presente. Si es así, se envía a la CPU. Si no, se busca en memoria principal. Deberán actualizarse también, en caso necesario, la TLB y la caché. SEGMENTACION. La segmentación es otra forma de subdividir la memoria direccionable. Mientras la paginación es transparente al programador, la segmentación es generalmente visible, y permite organizar programas y datos, a la vez que asociar privilegios y atributos de protección a los datos e instrucciones. La segmentación permite al programador ver la memoria organizada en múltiples espacios de direcciones, o segmentos. Los segmentos son de tamaño variable. Pueden existir varios segmentos de programa para varios tipos de programa, al igual que 57