Administración de Procesos
Recursos
Un recurso es un elemento que un programa o proceso puede utilizar en la computadora. Estos recursos son concedidos a un proceso solicitante cuando están disponibles. El ciclo de vida de un recurso implica:
- Solicitar
- Utilizar
- Liberar
Tipos de recursos:
- Reutilizables: Pueden ser utilizados con seguridad por un solo proceso como máximo en una instancia de tiempo.
- Consumibles: Son asignados al proceso y este los retiene desde el momento de iniciar el proceso hasta su finalización.
Tipos de Procesos
- Residentes: Permanecen en memoria principal todo el tiempo que dure su ejecución.
- Intercambiables: Pueden ser llevados de la memoria principal a disco (memoria virtual) mientras están bloqueados.
- Apropiativos: Al tener asignado un recurso, no permiten que otro proceso pueda acceder a él hasta que haya dejado de utilizarlo.
- No apropiativos: Permiten que otros procesos puedan acceder a un recurso que está siendo utilizado por él.
- Reutilizables: Cambian los datos que utilizan cada vez que inician el ciclo de ejecución.
- Reentrantes: No tienen datos asociados, solo se conforman de código puro.
Bloque de Control del Proceso (PCB)
El PCB (Bloque de Control del Proceso) contiene la siguiente información:
- Estado del proceso (Program Counter, PC), prioridad del proceso, modo de ejecución, estado de los registros internos de la computadora, etc.
- Estadística de tiempo y ocupación de recursos.
- Ocupación de memoria interna y externa para el intercambio (swapping).
- Recursos en uso (unidades de entrada/salida).
- Archivos en uso.
- Privilegios, etc.
El PCB permite:
- La localización del proceso y la información sobre este.
- Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla.
Colas de Control
El administrador de procesos establece varias colas de control para controlar la ejecución de los procesos:
- Cola de espera
- Cola de listo o preparado
- Cola de ejecución
- Cola de bloqueados
- Cola de suspendido
Transiciones de estado:
- De espera a listo o preparado: El Administrador de Procesos (AP) asigna al proceso los recursos que necesita para ejecutarse.
- De listo a ejecución: El AP asigna el procesador al proceso.
- De ejecución a bloqueado: El AP detecta que el proceso requiere efectuar operaciones de Entrada/Salida.
- De bloqueado a listo o preparado: El AP detecta que el proceso ha terminado las operaciones de entrada/salida y requiere utilizar el procesador nuevamente.
Control de Concurrencia
- Pesimista: La estrategia pesimista supone el peor caso posible.
- Optimista: Se basan en la suposición de que lo probable es que no haya conflictos o que se reduzca su número.
Concurrencia: Es la existencia de varias actividades ejecutándose simultáneamente, y se requieren sincronizar para actuarse conjuntamente.
Arquitectura del Sistema Operativo
- Núcleo del sistema operativo
- Llamada al S.O.
- Aplicación
- Administrador de Dispositivos
- Controlador general de dispositivos
- Driver
- Manejador/Controlador del dispositivo
- Dispositivo
Arranque del Sistema
- Iniciación de energía
- Arranque del BIOS
- POST (Power-On Self-Test)
- BIOS de video y de dispositivo
- Verificación del sistema
- Verificación de Plug and Play
- Pantalla de resumen
- Dispositivo de arranque encontrado
- Sistema operativo en ejecución
El Sistema Operativo (SO) maneja la operación de la computadora misma, y los programas de aplicación, controla todos los recursos de la computadora.
Tipos de Sistemas Operativos
- Monolítico o estructura simple: Cuentan con un núcleo (kernel) llamado monolítico, este es grande y complejo, engloba todos los servicios.
- Jerárquica, en estratos, modularidad o capas: Dividido en partes, módulos, estratos o capas, cada parte se encarga de una tarea específica.
- En tiempo real: Desarrollado para soportar aplicaciones en tiempo real. Las aplicaciones en tiempo real se caracterizan por contar con una serie de dispositivos los cuales reciben información del medio ambiente, y el sistema debe dar una respuesta inmediata.
- Máquina virtual: Cada proceso genera una máquina virtual. La cual consta de una copia de los programas de servicio, programas de control y el corazón del sistema operativo. El acceso al procesador lo controla el monitor de máquina virtual.
- Servidor del cliente: Se basan en núcleos híbridos. La idea es pasar código a estratos mayores (usuario) e implantar la mayoría de las funciones del S.O. en procesos del usuario y minimizar el núcleo (micro-kernel).
- Orientado a objetos: Se basa en el principio de dividir al sistema operativo en funciones o servicios. Por lo tanto, cada objeto ejecuta una función o servicio específico y mientras más especializado mejor.
Planificación de Procesos
- Planificadores a corto plazo: Asigna el procesador a un proceso, este se selecciona dentro de un conjunto de procesos preparados residentes en memoria. Es invocado cada vez que un suceso (interno o externo) hace que se modifique el estado global del sistema.
- Planificadores a medio plazo: Tiene la misión de manejar los procesos bloqueados y retirados de memoria primaria. Asigna la cantidad necesaria de memoria principal y recursos necesarios para dejar al proceso nuevamente preparado.
- Planificadores a largo plazo: Proporcionar una mezcla equilibrada de trabajos. Trabaja con la cola de lotes y selecciona el siguiente trabajo de lotes a ejecutar.
Algoritmos de Planificación
- SJF (Shortest Job First): Primero el trabajo más corto.
- SRT (Shortest Remaining Time): Elige al de menor tiempo de procesamiento restante.
- SRPT (Shortest Remaining Processing Time): Similar a SRT.
- FIFO (First-In, First-Out): Primeras entradas, primeras salidas.
- Round Robin (RR): Consiste en distribuir el procesador en forma uniforme entre los distintos procesos, dándole a cada uno cierta fracción de tiempo llamada quantum.
- HRRN (Highest Response Ratio Next): Prioriza los procesos con la mayor relación entre el tiempo de espera y el tiempo de servicio.
Multiprocesamiento
Un multiprocesador es una máquina con dos o más (normalmente idénticos) procesadores centrales que comparten una memoria de alta velocidad.
Multiprocesamiento: Son dos o más computadoras procesando juntas.
El paralelismo o programación en paralelo se refiere a varias técnicas que hacen que se realicen varias operaciones simultáneas dentro de las computadoras.