Sistemas Operativos: Componentes, Funciones y Evolución

Sistemas Computacionales: Conceptos Fundamentales

Funciones Básicas

  • Gestión de Información: almacenamiento, referencias, recuperación y comunicación.
  • Desarrollo de Software: programación y depuración de programas.
  • Ejecución de programas: aplicaciones.

Tareas del Sistema Operativo (SO)

  • Administración de memoria.
  • Administración de CPU.
  • Manejo de dispositivos de Entrada/Salida (E/S).
  • Administración de archivos en disco.
  • Comunicación con el usuario.

Funciones de los Sistemas Operativos

  • Carga de programas en memoria principal y su ejecución.
  • Asignación de recursos: CPU, memoria y periféricos.
  • Supervisión continua de la ejecución del programa, incluyendo el volcado de memoria en caso de errores y procedimientos de reinicialización.
  • Incremento del rendimiento mediante el control de las operaciones de E/S.
  • Control de las interrupciones de E/S, de llamada de supervisor, de programas, de máquina y externas.
  • Operaciones en ficheros: crear, borrar, abrir, cerrar, escribir, leer, avanzar, etc.
  • Garantizar la confidencialidad de la información y la no interferencia de unos trabajos en otros.

Modos de Trabajo

  • Monoprogramación: Modo de trabajo en el que solamente un programa utiliza el procesador.
  • Multiprogramación: Existen varios programas activos en ejecución.

Evolución de los Sistemas Operativos

Tubos al vacío → Por lotes (transistores) → Circuitos Integrados (multiprogramación) → Computador Personal (TCP-IP)

Elementos de Software de un Sistema Operativo

  • Núcleo o Kernel.
  • Programas de aplicación.

Tipos de Sistemas Operativos

  • Sistemas Monitores Residentes: Disminuyen el tiempo de configuración (setup time), agrupación por lotes, operador profesional.
  • Sistemas por Lotes: Mejoran el rendimiento de los sistemas por lotes, perfeccionamiento de técnicas de E/S.
  • Sistemas por Lotes Multiprogramados: Mejoran el rendimiento de la CPU.
  • Sistemas de Tiempo Compartido: Mejoran la interactividad con el usuario.
  • Sistemas Paralelos: Sistemas multiprocesador, sistemas fuertemente acoplados.
  • Sistemas Distribuidos: Sistemas multicomputador, sistemas débilmente acoplados.

Servicios Típicos de un Sistema Operativo

  • Scheduling de CPU: Asignación de tiempo de computación entre todos los procesos.
  • Administración de Memoria: Asignación de memoria principal a los procesos.
  • Swapping: Movimiento de procesos y sus datos entre memoria principal y almacenamiento secundario.
  • Drivers de dispositivos de E/S: Código especializado requerido para operar dispositivos de E/S.
  • Sistema de Archivos: Organizar almacenamiento masivo (disco) en archivos y directorios.
  • Utilitarios: Fecha/hora, accounting, copia de archivo.
  • Intérprete de comandos: Permite a los usuarios ingresar comandos interactivamente.
  • Llamadas al sistema: Permite a los programas de usuario acceder a servicios del SO.
  • Protección: Protege a los procesos y al sistema de interferencias de otros procesos.
  • Comunicación y Compartir Recursos: Permite a los usuarios/procesos comunicarse (sobre una red) y compartir recursos (ejemplo, impresora láser, disco, etc.).
  • Seguridad: Protege a las máquinas de intrusos, gusanos y virus.

Otros Conceptos Importantes

  • El bootstrap: Inicializa todo el sistema: registros de CPU, controladores de dispositivos, memoria, etc.
  • Interrupción: La ocurrencia de un evento (término de una operación de E/S, acceso de memoria inválido, división por cero, llamada a un servicio del SO).
  • Procesador: Es el cerebro de las computadoras, el cual toma las instrucciones de la memoria y las ejecuta.
  • El contador de programas: Contiene la dirección de memoria en que está la siguiente instrucción que se tomará.
  • PCI: La mayoría de los dispositivos de E/S de alta velocidad utilizan hoy en día el Bus PCI.
  • Bus IDE: Sirve para conectar dispositivos periféricos, como discos y unidades CD-ROM, al sistema.
  • El USB (Bus Serie Universal): Fue inventado para conectar todos los dispositivos de E/S lentos.
  • El bus SCSI (Interfaz Estándar de Equipos Pequeños): Es un bus de alto desempeño diseñado para discos rápidos, lectores ópticos y otros dispositivos.

Procesos

Un proceso es cualquier tipo de actividad que demande la atención de utilización de la CPU de una máquina.

Existe una diferencia fundamental entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose).

Estados de los Procesos

  • Activo: Proceso que está ejecutándose en un instante dado.
  • Preparado: Listo para ejecutarse, esperando a que el procesador quede libre.
  • Bloqueado o suspendido: Esperando a que se cumpla alguna condición (E/S, señal, etc.).
  • Muerto: Ha terminado su ejecución o el sistema operativo ha detectado un error fatal.

Bloque de Control de Proceso (PCB)

  • Identificación del Proceso.
  • Estado del Proceso (Ejecutándose, listo, esperando, etc.).
  • Contador de programa (Próxima instrucción).
  • Registros de trabajo (para guardar los registros).
  • Planificación de CPU (prioridades, punteros a colas de planificación y otros parámetros).
  • Administración de Memoria (registros base y límite, tablas de página o segmento, etc.).
  • Contabilidad (CPU usada, límites de tiempo, # cuenta, etc.).
  • Estado de recursos (Lista de recursos asignados y estado).

Término de un Proceso

  • Suicidio: Se autoelimina. Invocación explícita, normal o anormal (ejemplo: exit en Unix). Se deben liberar los recursos del proceso.
  • Asesinato: Otro proceso lo elimina. Normalmente lo hace un antepasado directo (más seguro). La eliminación puede ser normal o anormal. El término de un proceso puede significar el término de toda su descendencia (ejemplo: shutdown y shell en Unix).

Planificador de Recursos del Procesador

  • Recurso: Objeto que puede ser utilizado por un proceso.
  • Asignación: Un recurso está asignado a un proceso si este dispone de un conjunto de operadores para su uso.
  • Administrador: Asigna, recupera y, eventualmente, expropia un recurso a un proceso.

Ejemplos

  • Procesador: Se asigna a los procesos. El administrador dispone de dos procedimientos: el despachador y el planificador.
  • Memoria Principal: Puede ser con asignación explícita o implícita (ejemplo: memoria virtual).
  • Memoria Secundaria: Se asigna en grupos de bloques de tamaño fijo. La asignación puede ser explícita o implícita.
  • Canales de Comunicación: Si existen múltiples procesos compartiendo un servicio de un dispositivo de E/S común, las solicitudes podrían ser enviadas a un proceso servidor.

Objetivos de la Planificación

  • Justicia.
  • Maximizar la productividad.
  • Ser predecible (minimizar la varianza).
  • Balancear el uso de los recursos.
  • Lograr un equilibrio entre tiempo de respuesta y utilización.
  • Evitar inanición (o postergación indefinida).
  • Asegurar prioridades.
  • Favorecer a procesos que utilizan recursos claves.
  • Degradar suavemente el desempeño ante cargas pesadas.

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.