Administracion De Memoria Resumenes
Administración de procesos-Administración de memoria |
Hernández Méndez Mario |
Índice
I) Administración de procesos
Semáforos………………………………………………………………………………………….2
Monitores………………………………………………………………………………………….3
Paso de mensajes………………………………………………………………………………3
Interbloqueo mutuo (DEADLOCK)………………………………………………………4
* Principios delinterbloqueo……………………………………………………..4
* Prevención del interbloqueo…………………...………..…………………..5
* Predicción del interbloqueo…………………………………………………….6
El problema de la cena de los filósofos………………………………………………6
II) Administración de memoria
Gestión de memoria………………………………………………………………………….7
Jerarquía de memoria……………………………………………………………………….8
Estrategias para la administración de memoria………………………………..8
Multiprogramación porparticiones fijas……………………………………………9
Multiprogramación por particiones variables……………………………………9
Administración de memoria con listas enlazadas………………………………10
Distribución del espacio para intercambio (SWAP)…………………………..10
Memoria virtual………………………………………………………………………………..10
Paginación………………………………………………………………………………………...11
SEMAFOROS
Un semáforo es una estructura diseñada para sincronizardos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
Un semáforo básico es una estructura formada por una posición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones.
Se empieza por inicializar la posición dememoria a 1 (o al valor correspondiente si ese recurso concreto admite más de un acceso simultáneo). Esto se hace en el inicio del programa principal.
A continuación, cada vez que un thread o un proceso quieran acceder a dicho recurso (por ejemplo, un fichero), hará primero una petición con la primera de las llamadas disponibles. Cuando el S.O. ejecuta esa llamada, comprueba el valor que hay enla posición de memoria del semáforo, y si es distinta de cero, se limita a restarle 1 y devolver el control al programa; sin embargo, si ya es cero, duerme al proceso que hizo la petición y lo mete en la cola de procesos, en espera de que el semáforo se ponga a un valor distinto de cero.
Por último, cuando el proceso ha terminado el acceso al recurso, usa la segunda llamada para liberar elsemáforo. Cuando el S.O. la ejecuta, comprueba si la cola del semáforo está vacía, en cuyo caso se limita a incrementar el valor del semáforo, mientras que si tiene algún proceso, lo despierta, de modo que vuelve a recibir ciclos de CPU y sigue su ejecución. Si había varios procesos en espera, se irán poniendo en marcha uno tras otro a medida que el anterior va liberando el semáforo. Cuando termina elúltimo, el semáforo se vuelve a poner a 1. Se trata, por tanto, del mismo proceso que seguiríamos con la variable, pero con la ventaja de que es un mecanismo estándar para todos los procesos, y como es una operación atómica (esto es, que durante su ejecución no se admiten cambios de tarea), no surge el problema de que una conmutación pueda producir errores aleatorios.
Vemos que la primera vez queun proceso usa el semáforo, este tiene valor 1, por lo que pasa a cero y el proceso puede acceder al recurso. Si durante ese tiempo otro proceso quiere acceder también, al usar el semáforo, este tiene valor cero, por lo que el S.O. deja de darle ciclos de CPU. Cuando el primer proceso ha terminado, libera el recurso, con lo que el S.O. puede comprobar que el segundo proceso está esperando, por loque le vuelve a dar ciclos. En este punto, el proceso sigue como si nunca hubiese sido detenido. Este tipo de semáforos son los de Exclusión mutua, o Mutex.
MONITORES
Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa
Los monitores son una herramienta de sincronización.
Un monitor posee una estructura propia, es...
Regístrate para leer el documento completo.