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.