Procesos y planificación en sistemas operativos

Proceso

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:

  • Activo: el proceso está empleando la CPU, por tanto, está ejecutándose. Puede haber tantos procesos activos como procesadores haya disponibles.
  • Preparado: el proceso no está ejecutándose, pero es candidato a pasar a estado activo.
  • Bloqueado: el proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una operación de lectura/escritura.

Tarea

Es la parte del sistema operativo que permite la comunicación entre el usuario y la computadora, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas.

Recursos físicos

Es el hardware o equipos físicos utilizados en el sistema, como ser computadoras, impresoras, monitores, tabletas y cualquier otro aparato utilizado como parte del sistema informático.

Recursos lógicos

Es el software (aplicaciones, otros sistemas) empleado en el sistema, como así también los datos y la información.

Job

El JCL (acrónimo de Job Control Language), en español Lenguaje de Control de Trabajos, es lenguaje para solicitar recursos y servicios al sistema operativo.

Process Control Block (PBC)

El bloque de control del proceso (BCP) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular.

Scheduler

El Scheduler es el programa dentro del sistema operativo que administra de manera eficiente el procesador, es parte del núcleo del sistema operativo.

Multiprogramación

Es la habilidad para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutando) al mismo tiempo.

Características de la multiprogramación

Mejora productividad del sistema y utilización de recursos. Generalmente soportan múltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validación de usuario para seguridad y protección.

S.O. que lo soportan

UNIX, MAC-OS, Windows 95, Windows 98, Windows NT, Windows 7, Windows 8.

Ventajas

Varios procesos en ejecución. Permite el servicio interactivo simultaneo a varios usuarios de manera eficiente. Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S y por ende aumenta la eficiencia en el uso de la CPU.

Procesos en sistemas multiprogramados

En un sistema multiprogramado, la memoria principal contiene varios procesos. Cada proceso alterna entre usar el procesador y esperar que se realice una operación de E/S o que ocurra algún otro suceso. La clave de la multiprogramación está en la planificación.

Planificación a largo plazo

Determina cuáles programas son admitidos en el sistema. Una vez aceptado, el programa de usuario se convierte en proceso y se añade a la cola del planificador a corto plazo.

Planificación a mediano plazo

Los procesos se intercambian entre memoria principal y memoria secundaria (normalmente discos) actúa intentando maximizar la utilización de los recursos.

Planificación a corto plazo

Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso.

Procesamiento por lotes (modo batch)

Se le conoce así a la ejecución de un programa sin el control o supervisión directa del usuario este tipo de ejecución se utiliza en tareas repetitivas sobre grandes conjuntos de información.

Ventajas de procesamiento por lotes

Una solución rápida y de menor coste. Características fuera de línea: es por que funcionan sin conexión y una vez terminada la jornada de trabajo los sistemas por lotes aún se procesan en segundo plano.

Desventajas

Despliegue y entrenamiento. La depuración puede ser difícil. Coste.

Tiempo completo

Permiten la simulación de que el sistema y sus recursos son todos para cada usuario.

Características tiempo completo

Dan la ilusión de que cada usuario tiene una máquina para sí. Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.

Multiusuario

Se considera Multiusuario a todo sistema operativo que permite a un mínimo de Dos usuarios a poder acceder a distintas categorías dentro del equipo, compartiendo el mismo entorno físico pero con distintos accesos que son gestionados por aquel que tiene la jerarquía de administrador.

Administrador de procesos

Un hilo no puede correr por sí mismo, se ejecuta dentro de un programa, ya que requieren la supervisión de un proceso padre para correr.

Multihilo

La capacidad de un sistema operativo de dar soporte a múltiples hilos de ejecución en un solo proceso.

Ejecución de un hilo

Ventajas: Lleva menos tiempo finalizar un hilo que un proceso. Lleva menos tiempo finalizar hilos dentro del mismo proceso. Los hilos mejoran la eficiencia de comunicación entre programas.

Estado de los hilos

Creación, Bloqueo, Desbloqueo, Finalización.

3 tipos principales de planificación

A largo, A mediano plazo, A corto plazo.

Socket

El concepto de socket y de programación con sockets se desarrollo en los 80 como el “Berkeley Sockets Interface” dentro del entorno de UNIX, para la comunicación entre procesos pesados residentes en maquinas remotas.

Características más importantes del socket

Es un mecanismo con dirección (depende del dominio). Se utiliza en forma de asociación de pareja de sockets para conseguir comunicación bidireccional. Los sockets tienen buffering, de forma que almacenan mensajes. Ofrecen comportamiento bloqueante o no bloqueante.

Socket importantes

El socket stream (SOCK_STREAM) es similar a una conversación telefónica en la que los participantes van alternando sus mensajes. El socket datagrama (SOCK_DGRAM) es similar a la correspondencia postal.

Semaforo

Es un mecanismo de sincronización que se utiliza generalmente en sistemas con memoria compartida.

Semaforos

Contiene un campo entero contador, al que se le puede asignar un valor inicial no negativo. Dicho contador se utiliza como una de las variables de control para resolver el problema de concurrencia.

Demonio

Un proceso que se ejecuta en segundo plano del sistema operativo, se ejecuta en todo momento y no posee interacción directa con el usuario.

Región crítica

Se puede ver realizado directamente en un lenguaje de programación. Así parte de la responsabilidad se ha trasladado desde el programador al compilador.

Región crítica condicional

El proceso que ejecuta la región crítica debe obtener el acceso exclusivo a la variable compartida.

Algoritmos de planificación

Sirve para optimizar el comportamiento del sistema informático.

FCFS (First Come First Served) o FIFO

Es un algoritmo sencillo, que introduce muy poca sobrecarga en el sistema, lo que permite obtener el máximo rendimiento del procesador.

El trabajo más corto (SJF(Shortest Job First))

Busca el trabajo con la ráfaga de procesamiento más corta de la cola de procesos listos.

Turno rotatorio (Round Robin)

Este algoritmo se utiliza para repartir de forma equitativa el procesador entre los procesos listos, proporcionando un tiempo respuesta acotado.

Basada en prioridades

Este planificador selecciona al usuario con la mayor prioridad.

Comunicación síncronica y asíncronica

La comunicación entre dos procesos es síncrona cuando los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo, es decir, el emisor debe estar ejecutando la operación send y el receptor ha de estar ejecutando la operación receive.

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.