Sistemas Operativos: Estructura, Procesos y Gestión de Recursos
Clasificado en Informática
Escrito el en español con un tamaño de 4,9 KB
Un sistema operativo (S.O.) es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando es cargado en memoria por un programa específico, que se ejecuta al iniciar el equipo o una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.
Estructuras de Sistemas Operativos
Sistemas Monolíticos
- Cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados.
- Para ejecutar los servicios del S.O. (llamadas al sistema):
- Se solicitan colocando los parámetros en lugares bien definidos (registros o pilas).
- Se ejecuta una instrucción especial de trampa: llamada al núcleo o llamada al supervisor.
- La instrucción cambia la máquina del modo usuario al modo núcleo (o modo supervisor).
- Se transfiere el control al S.O.
- El S.O. examina los parámetros de la llamada para determinar cuál de ellas se desea realizar.
Sistemas por Capas
- Asignación del Procesador y Multiprogramación.
- Administración de la Memoria y del Disco.
- Comunicaciones Operador - Proceso.
- Control de Entrada - Salida.
- Programas del Usuario.
- Operador.
Máquinas Virtuales
Una máquina virtual es un software que emula a un ordenador y puede ejecutar programas como si fuese un ordenador real. Pueden ejecutar cualquier S.O. que se ejecute en forma directa sobre el hardware. Las distintas máquinas virtuales pueden ejecutar distintos S.O. y en general así lo hacen.
Modelo Cliente-Servidor
El modelo cliente-servidor puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones, por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes.
Procesos e Hilos
Un proceso es un programa en ejecución. Un hilo es un miniproceso o proceso ligero.
Estados de un Proceso
- Ejecutando: El proceso está siendo ejecutado en la CPU. En un computador uniprocesador, solo un proceso puede estar en este estado.
- Listo: El proceso está en condiciones de ejecutarse, pero debe esperar su turno de CPU.
- Bloqueado: El proceso no está en condiciones de ejecutarse. Está esperando que algún evento ocurra, como la finalización de una operación de E/S. También se dice que está suspendido o en espera.
Multiprogramación, Multiprocesamiento y Procesamiento Distribuido
- Multiprogramación: Consiste en la gestión de varios procesos dentro de un sistema monoprocesador.
- Multiprocesamiento: Consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
- Procesamiento distribuido: Consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.
Concurrencia y Exclusión Mutua
Concurrencia: En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea.
Exclusión Mutua: Sólo un proceso, de todos los que poseen secciones críticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin interferir con los otros procesos. No puede permitirse el interbloqueo ni la demora indefinida de un proceso para acceder a una sección crítica.
Interbloqueo (Deadlock)
El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros.
Detección, Predicción y Prevención del Interbloqueo
La detección del interbloqueo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en él. Una posibilidad es monitorear cada cierto tiempo el estado de los recursos. La detección de un bloqueo se debe aplicar cuando el bloqueo ya ocurrió.
Diferencia entre predicción y prevención de un bloqueo: En la predicción, el sistema se adelanta a las posibles causas que puedan generar un bloqueo. En la prevención, se intentan resolver los bloqueos cuando estos aparecen.