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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.