Fundamentos de Sistemas Operativos

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.