Professional Documents
Culture Documents
Interbloqueo
Definición:
Los semáforos se implementan con una cola de tareas o de condición a la cual se añaden
los procesos que están en espera del recurso.
- Inicializar
- Espera (wait)
- Señal (signal)
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un
recurso compartido de forma que garantice la integridad del sistema.
La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar
las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la
corrupción de la estructura compartida (la sección crítica). Esto impide que el código de
la interrupción se ejecute en mitad de la sección crítica.
Monitores
Wait -> wait(a) : produce que el proceso que ejecuta la instrucción sea interrumpido y
removido de la cola de ready hasta que otro proceso lo habilite ejecutando la instrucción
signal( )con la misma variable de condición.
Signal -> signal(a) : Habilita la ejecución de algún proceso en espera por la ejecución de
la instrucción wait con la misma variable de condición.
gestion de memoria
Particiones fijas
Un programa puede ser demasiado grande para caber en la partición. En este caso, el
programador debe diseñar el programa mediante superposiciones, para que sólo una
parte del programa esté en memoria principal. Cuando se necesita un módulo que no
está presente, el programa de usuario debe cargar dicho módulo en la partición del
programa, superponiéndose a los programas y datos que se encuentren en ella.
Particiones variables
Tareas en PalmOS.
Memoria Virtual -1
El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea
es que el tamaño combinado de la pila, programa y datos puede exceder la memoria
física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa
que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el
disco y la memoria se intercambian de modo que se vayan necesitando.
Paginación de memoria
Segmentación
Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a
cambios y recopilaciones, sin afectar por ello al resto del programa.
Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio
tamaño y este puede variar.
Protección: se puede proteger los módulos del segmento contra accesos no autorizados.
Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de
protección; aunque no sean propietarios de los mismos.
Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace
antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea
necesario.