Vous êtes sur la page 1sur 12

PORTAFOLIO SISTEMAS OPERATIVOS

CRISTIAN ESCORCIA ESPITIA

12

JERARQUA DE MEMORIA Organizacin piramidal de la memoria en niveles, que tienen los ordenadores.

Niveles de la jerarqua de memoria. Nivel 0: Registros Nivel 1: Memoria cach Nivel 2: Memoria Principal Nivel 3: Disco duro. Objetivo: Conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad. Hay 3 puntos bsicos relacionados con la memoria: Cantidad: cuanta ms memoria haya disponible, ms podr utilizarse. Velocidad ptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre clculo y clculo, utilizados para traer operando o guardar resultados. Coste no debe ser excesivo, para que sea factible construir un equipo accesible. Registros. Los registros estn en la cima de la jerarqua de memoria, y son la manera ms rpida que tiene el sistema de almacenar datos. Definicin de registros: Es una memoria de alta velocidad y poca capacidad, esta integrada en el microprocesador y permite guardar y acceder a valores muy usados, por lo general en operaciones matemticas. Los registros se miden por lo general por el nmero de bits que almacena. Tipos de registros: De datos: usados para guardar nmeros enteros. De memoria: usados para guardar exclusivamente direcciones de memoria. De propsito general: pueden guardar tanto datos como direcciones.

De coma flotante: usados para guardar datos en formato de coma flotante De propsito especfico: guardan informacin especfica del estado del sistema. Constante: tiene valores creados por el hardware de solo lectura. Memoria cach Definicin: Es una memoria rpida y pequea, situada entre la memoria principal y el microprocesador, especialmente diseada para contener informacin que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias, reduciendo considerablemente el tiempo de acceso al ser ms rpida que el resto de la memoria principal.

Diagrama de una memoria cach de CPU. La memoria cach es una memoria en la que se almacena un serie de datos para su rpido acceso. La memoria cach de un microprocesador es de tipo voltil (del tipo RAM), pero de una gran velocidad. Su objetivo es almacenar una serie de instrucciones y datos a los que el microprocesador accede continuamente, con el fin de que estos accesos sean instantneos. Estas instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de forma continua, por lo que para el rendimiento del procesador es imprescindible que este acceso sea lo ms rpido y fluido posible. La operacin bsica de cach es: Cuando la CPU necesita accesar memoria, se revisa la cach. Si se encuentra la palabra en cache, se lee de la memoria rpida. Si la palabra direccionada de la CPU no se encuentra en cach, se accesa la memoria principal para leer la palabra. Despus, se transfiere un bloque de palabras que contiene la que se acaba de accesar, de la memoria principal a la memoria cach. El tamao de bloque puede variar de una palabra a cerca de 16 palabras adyacentes a la que se acceso. En esta manera, se trasfieren algunos datos cach para que las futuras referencias a memoria encuentren la palabra requerida en la memoria rpida cach. Hay tres tipos diferentes de memoria cach para microprocesadores: Cach de 1er nivel (L1): Integrada en el ncleo del microprocesador, trabajando a la misma velocidad que este. La cantidad de memoria cach L1 vara de un microprocesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos.

Cach de 2 nivel (L2): Integrada en el microprocesador, no directamente en el ncleo, es algo ms lenta que la cach L1. La cach L2 suele ser mayor que la cach L1, pudiendo llegar a superar los 2MB. Utilizacin est ms encaminada a programas que al sistema. Cach de 3er nivel (L3): Es un tipo de memoria cach ms lenta que la L2, muy poco utilizada en la actualidad. En un principio esta cach estaba incorporada a la placa base, no al microprocesador, y su velocidad de acceso era bastante ms lenta que una cach de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho ms en la poca en la que se utilizaba), depende de la comunicacin entre el microprocesador y la placa base. La memoria cach es rpida, unas 5 6 veces ms que la DRAM (RAM dinmica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 20 veces ms que la memoria principal dinmica para la misma cantidad de memoria. Composicin interna La memoria cach est estructurado por celdas, donde cada celda almacena un byte. La entidad bsica de almacenamiento la conforman las filas, llamados tambin lneas de cach. Cuando se copia o se escribe informacin de la RAM por cada movimiento siempre cubre una lnea de cach. La memoria cach tiene incorporado un espacio de almacenamiento llamado Tag RAM, que indica a qu porcin de la RAM se halla asociada cada lnea de cach, es decir, traduce una direccin de RAM en una lnea de cach concreta. Memoria principal. Son circuitos integrados capaces de almacenar informacin digital, a los que tiene acceso el microprocesador del equipo de computacin. Poseen una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. La memoria principal esta divida en: Memoria ROM: Memoria de slo lectura (Read Only Memory) son utilizadas como medio de almacenamiento de datos en las computadoras. En ella no se puede escribir y conserva intacta la informacin almacenada, incluso en el caso de que se interrumpa la corriente (memora no voltil). La ROM suele almacenar la configuracin del sistema o el programa de arranque de la computadora. Uso principal: Reside en la distribucin de programas que estn estrechamente ligados al soporte fsico de la computadora, y que seguramente no necesita actualizacin. La memoria RAM normalmente es ms rpida para lectura que la mayoria de las memorias ROM, por lo tanto el contenido ROM se suele traspasar normalmente a la memoria RAM cuando se utiliza.

Memoria ROM El software de la ROM se divide en dos partes: a) Rutina de arranque: realiza el chequeo de los componentes de la computadora por ejemplo circuitos controladores de video, de acceso a memoria, el teclado, unidades de disco. Se encarga de determinar cul es el hardware que est presente y de la puesta a punto de la computadora. Mediante un programa de configuracin, el SETUP, lee una memoria llamada CMOS RAM (RAM de Semiconductor de xido metlico). sta puede mantener su contenido durante varios aos, aunque la computadora est apagada, con muy poca energa elctrica suministrada por una batera, guarda la fecha, hora, la memoria disponible, capacidad de disco rgido, si tiene disquetera o no. Se encarga en el siguiente paso de realizar el booteo (arranque): lee un registro de arranque 'BR' (Boot Record) del disco duro o de otra unidad (como CD, USB, etc), donde hay un programa que carga el sistema operativo a la RAM. A continuacin cede el control a dicho sistema operativo y el ordenador queda listo para trabajar. b) Rutina BIOS. Sistema bsico de entrada salida (Basic input output system): permanece activa mientras se est usando la PC. Permite la activacin de los perifricos de entrada/salida: teclado, monitor, etc. Memoria RAM La memoria de acceso aleatorio, o memoria de acceso directo (Random Access Memory). Se compone de uno o ms chips y se utiliza como memoria de trabajo para programas y datos. Es un tipo de memoria temporal que pierde sus datos cuando se queda sin energa (al apagar la computadora), por lo cual es una memoria voltil. Se trata de una memoria de semiconductor en la que se puede tanto leer como escribir informacin. Se utiliza normalmente como memoria temporal para almacenar resultados intermedios y datos similares no permanentes. Se dicen "de acceso aleatorio" o "de acceso directo" porque los diferentes accesos son independientes entre s. Las RAMs se dividen en: Estticas: mantiene su contenido inalterado mientras est alimentada. Dinmica: la lectura es destructiva, es decir que la informacin se pierde al leerla, para evitarlo hay que restaurar la informacin contenida en sus celdas, operacin denominada refresco.

Memoria RAM Memoria virtual Es un concepto que permite al software usar ms memoria principal que la que realmente posee el ordenador. Muchas aplicaciones requieren el acceso a ms informacin (cdigo y datos) que la que se puede mantener en memoria fsica. Esto es as sobre todo cuando el sistema operativo permite mltiples procesos y aplicaciones ejecutndose simultneamente. Una solucin al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su informacin en disco, movindola a la memoria principal cuando sea necesario. Aunque la memoria virtual podra estar implementada por el software del sistema operativo, en la prctica casi siempre se usa una combinacin de hardware y software, dado el esfuerzo extra que implicara para el microprocesador. Operacin bsica Cuando se usa Memoria Virtual, o cuando una direccin es leda o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en: la direccin real de memoria (la direccin de memoria fsica): la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde deba y sigue ejecutando normalmente. una indicacin de que la direccin de memoria deseada no se encuentra en memoria principal (llamado excepcin de memoria virtual): el sistema operativo es invocado para manejar la situacin y permitir que el programa siga ejecutando o aborte segn sea el caso.

La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se ejecuten sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. La memoria virtual ha llegado a ser un componente esencial de la mayora de los sistemas operativos actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cmo gestionar este esquema.

Principio de localidad. Mapeo Al pasar los datos desde la memoria principal a la memoria cache estos se traen por bloques. El motivo de llevar los datos por bloques se debe a que, por ejemplo, si el procesador pide el dato de la direccin n entonces es muy probable que despus pida el dato de la direccin n+1, por lo tanto, se ahorra tiempo al llevar los datos por bloques a la cache. Por otro lado como ya hemos visto en los prrafos anteriores la memoria Cache es de poca capacidad, en relacin con la memoria principal, por lo tanto cobra importancia el tema de que y como pongo datos en la memoria Cache. Es necesario entonces contar con un proceso de conversin de las direcciones, que se llama MAPEO. Mapeo Directo Para explicar, el mapeo directo es mejor comenzar con un ejemplo, que por el momento, es slo, ilustrativo y no tiene relacin con la realidad. MM 512B ----> 9b 64 bloques MC 32B ------> 5b 4 bloques Cada bloque de 8B Localidad temporal: un elemento referenciado tiende a ser referenciado nuevamente pronto. Localidad espacial: los elementos cercanos a uno referenciado tienden a ser referenciados pronto.

El Mapeo Directo funciona de la siguiente forma: Segn las condiciones antes definidas se tiene lo siguiente: cada bloque ser de 8 Byte, es decir 8 palabras de largo 8. La memoria principal al ser dividida por 8 (512 B / 8) dar como resultado 64 bloques de 8 palabras cada uno. La memoria Cache tambin se divide por 8 (32B / 8), lo cual da como resultado 4 bloques Cada bloque de la memoria principal se coloca dentro de uno de los bloques de la memoria Cache siguiendo un orden establecido de la siguiente forma (La Fig. muestra parte de esta asignacin): En el bloque cero de la cache pueden ir cualquiera de los mltiplos exactos de 4 (0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60), que son 16. En el bloque uno de la cache van (1, 5, 9, 13, 17, 21, 25...............) En el bloque dos (2, 6, 10, 14, 18, 22, 26..................................) En el bloque tres van (3, 7, 11, 15, 19, 23,27..................) Para distinguir entre las 16 alternativas que corresponden a un bloque determinado de la memoria cache existe una memoria, en este caso de 4 bits, que lleva el registro. Esta memoria se denomina TAG. Si por ejemplo se quiere acceder a la posicin de memoria 405 se ocupa la siguiente tabla de ubicacin.

TAG 1 1 0 0

BIC 1 0

WIB 1 0 1 = 405

El WIB es de 3 bits por que con estos se pueden distinguir entre 8 alternativas, es decir las que corresponden a las divisiones de un bloque. El BIC es de 2 bits porque se pueden distinguir cuatro alternativas, o sea los cuatro bloques de la cache. El TAG, finalmente distingue entre las 16 alternativas que corresponden a los diferentes bloques de la memoria principal que pueden ir a parar a un bloque determinado de la cache. El mapeo directo. Aqu se puede apreciar como las posiciones de la memoria principal son asignadas a los bloques de la cache, por otro lado la flecha que apunta desde la posicin cero de la MM indica como cada bloque de la memoria principal esta dividido en otros ocho sub bloques.

Finalmente no solo basta con llevar los datos a las posiciones de la cache, adems el procesador de alguna forma debe ubicar los datos, ya sea que los encuentre o no, en la cache.

GESTIN DE PROCESOS Un proceso es una abstraccin de un programa en ejecucin y es la unidad de trabajo del sistema. Se puede definir a un proceso como un programa en ejecucin. Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y la ejecucin de dichos procesos, pues para que se ejecute un programa es necesario que el microprocesador ejecute los procesos de ese programa. El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina que proceso se debe ejecutar y cuanto tiempo debe estar ejecutndose, a todo esto se le denomina gestin de procesos.

Estados de un proceso Los estados por los que transita un proceso son: Nuevo: El proceso esta siendo creado En Ejecucin: Se estn ejecutando las instrucciones. En espera: El proceso est esperando a que se produzca un suceso Preparado: El proceso est a la espera de que se le asigne a un procesador Terminado: Ha finalizado su ejecucin En el estado en ejecucin solo puede haber un proceso, sin embargo, varios pueden estar listos o bloqueados. Los procesos no pueden pasar por ellos mismos de listos a ejecucin, es el S.O. el que decide cuando se pasa de listo a ejecutado. Bloque De Control De Procesos Cada proceso se encuentra representado en el S.O. mediante una estructura denominada Bloque de Control de Procesos o PCB, que contiene toda la informacin que se necesita saber sobre el proceso entre otras cosas debe guardar el estado actual del proceso. Un BCP contiene muchos elementos de informacin asociados con un proceso especfico, entre los que se incluyen: Estado del proceso: El estado puede ser nuevo, en ejecucin, en espera, etc. Contador de programas: Contiene la direccin de la siguiente instruccin a ejecutar por el proceso. Registro de CPU: Varan en cuanto a nmero y tipo, dependiendo de la arquitectura de la computadora. Incluye acumuladores, registro de ndices, punteros de pila y registros de propsito general. Informacin de planificacin CPU: Incluye prioridad del proceso, apuntadores a colas de planificacin, etc. (Informacin del algoritmo de planificacin). Informacin de gestin de memoria: Incluye informacin acerca del valor de los registros base y limites, las tablas de paginacin o tablas de segmentos, dependiendo del mecanismo de gestin de memoria. Informacin contable: Contiene informacin acerca de la cantidad de CPU y tiempos empleados, los lmites de tiempo asignados, el nmero de trabajo o de proceso. Informacin del estado de E/S: Esta informacin incluye, solicitudes pendientes de E/S, dispositivos de E/S asignados al proceso, etc.

HEBRAS (Hilos) Los hilos son procesos ligeros que se componen de registros, un espacio de pila y un contador de programa. Los hilos comparten su cdigo ejecutable, su pila y los recursos que utiliza. Con el uso de hilos deja de ser necesaria la costosa conmutacin de contexto de uno a otro proceso. Los hilos son especiales para realizar procesamiento paralelo, pero esto incurre en algunos problemas como la consistencia de datos, para lo que se usan distintos mecanismos para solucionarlos como secciones crticas y cerraduras. Planificacin de procesos La planificacin de procesos tiene como objetivos obtener siempre la mayor productividad, o la mayor cantidad de trabajos realizados en una unidad de tiempo, por Ejemplo: 77 procesos por hora. El concepto de planificacin podra llamarse al conjunto de polticas y mecanismos incorporados al sistema operativo por el que se rige el orden en el que se completa el trabajo que hay que realizar. Con la planificacin se pretende: 1. Justicia en el reparto de la CPU entre los diferentes usuarios. 2. Evitar la postergacin indefinida de los procesos siempre dentro de la seguridad de las prioridades. 3. Logra la mxima capacidad de ejecucin con el mayor nmero de usuarios interactivos. 4. Se busca el equilibrio del uso de los recursos y de la respuesta de utilizacin. 5. Se pretende poder discriminar procesos de tal manera que se permita dar mayor prioridad a aquellos procesos que tengan asignados recursos claves. Se puede planificar a tres niveles distintos - A alto nivel o de trabajo. Determinar a que trabajos se les va a permitir competir activamente por los recursos del sistema. - A nivel intermedio. Discriminamos a qu procesos se les puede permitir competir por la C.P.U., siempre intentando conseguir el mayor rendimiento del sistema. - A bajo nivel. Determina a que proceso de los que estn listos se le va a asignar la C.P.U. al quedar sta disponible. Criterios de planificacin Los algoritmos de planificacin deben tener en cuenta una serie de casos: Utilizacin de la C.P.U., queremos que la C.P.U. se mantenga tan ocupada como sea posible. Rendimiento, una medida del trabajo es el nmero de procesos que se completa por unidad de tiempo.

Tiempo de Retorno, sera la suma de los periodos transcurridos esperando entrar en la memoria, esperando en la cola de procesos listos, ejecutndose en la C.P.U. y efectuando operaciones de E/S. Tiempo de espera, es el tiempo que el proceso espera en la cola de procesos listos. El tiempo de respuesta, el tiempo transcurrido desde la presentacin de una solicitud hasta que se produce la primera respuesta. Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U.) y se intenta minimizar el tiempo de retorno, de respuesta y el de espera. Colas De Planificacin A medida que los procesos entran al sistema se colocan en una cola de trabajos que contiene todos los procesos del sistema. Los procesos que residen en memoria principal y estn preparados y en espera de ejecucin se encuentran en la cola de procesos preparados (lista enlazada, contiene un puntero al primer y ltimo PCB de la lista). Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos preparados. El sistema tambin incluye otras colas como son las colas de dispositivos. Planificadores Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de planificacin. El SO como parte de la planificacin debe seleccionar un proceso que se encuentran en las colas. Este proceso se lo realiza a travs de un Planificador. En un sistema de procesamiento por lotes, se enva ms procesos de los que se puede ejecutar de forma inmediata. Estos procesos se guardan en dispositivos de almacenamiento masivo, donde se mantiene para su posterior ejecucin. Planificacin De Procesos La clave de la multiprogramacin es la planificacin. Implica tres tipos de planificacin. Planificadores a largo plazo (Planificador de trabajos).- Decide si se aade al conjunto de programas a ser ejecutados. Planificador a mediano plazo.- Decide si se aade al nmero de procesos que estn total o parcialmente en memoria principal. Planificadores a corto plazo (Planificador del CPU).-Decide cul de los procesos disponibles ejecutar el procesador.

Cambio de Contexto Cuando se produce una interrupcin el sistema tiene que guardar el contexto actual del proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudndolo despus. El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para el cambio de contexto depende fundamentalmente del soporte hardware. Operaciones bsicas con procesos Lo mnimo que se puede hacer con un proceso es: Crearlo, darle un nombre o identificador, meterlo en la lista de procesos listos, asignarle una prioridad, crear el PCB y darle los recursos que necesite, etc.. Destruir un proceso, liberndose todos los recursos que tena asignado el proceso. La prioridad del proceso sera la prioridad en el PCB. Cambiarle la prioridad al proceso, modificar la prioridad en el PCB. Bloquear un proceso, pasar de estado activo a bloqueado debido a que tiene que esperar a que suceda un evento. Activar un proceso, cuando termina un evento por el que est esperando un proceso y se encontrase este bloqueado, entonces pasa este a listo. Despachar un proceso, el procesador asigna el primer proceso que se encuentra en la lista de listos, pasando ste de estado listo a activo.

Vous aimerez peut-être aussi