¿Qué es un proceso?Un proceso puede informalmente entenderse como un programa en ejecución; pero formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados", es la unidad de procesamiento gestionada por el sistema operativo.
Otros conceptos
- Un programa
en
ejecución.
- Una instancia
de un programa en
ejecución.
- Una entidad
que puede ser
asignada
y ejecutada en
un procesador.
- Una unidad
de actividad caracterizada
por
la ejecución de una
secuencia
de instrucciones,
un estado
actual, y un conjunto asociado
de instrucciones
de sistema.
Diferencia entre proceso y programaA pesar de utilizarse algunas veces como sinónimo las palabras programa y proceso, no lo son. Teniendo la definición de proceso ahora veremos que programa es un conjunto de instrucciones detalladas y codificadas que se dan a un ordenador para que realice o ejecute determinadas operaciones.Para aclarar la idea tenemos una analogía propuesta por Tanenbaum, preparar una receta de una torta, el programa es la receta y el proceso es la actividad que consiste en leer la receta, mezclar los ingredientes y hornear la torta.
Bloque de Control de ProcesosUna
parte importante de los procesos es el PCB (process control block) o bloque
de control de procesos, que es un registro especial donde el sistema operativo
agrupa toda la información que necesita conocer respecto a un proceso
particular. Cada vez que se crea un proceso el sistema operativo crea el BCP
correspondiente para que sirva como descripción en tiempo de ejecución durante
toda la vida del proceso. Cuando el proceso termina, su BCP es borrado y el
registro puede ser utilizado para otros procesos.Un proceso resulta conocido
para el sistema operativo y por tanto elegible para competir por los recursos
del sistema sólo cuando existe un BCP activo asociado a él.
¿Qué es jerarquía de procesos?Un proceso ‘padre’ puede crear
nuevos procesos ‘hijos’ mediante llamadas al sistema. A su vez, estos hijos
pueden crear otros procesos. Esta secuencia de creación de procesos genera un árbol
de procesos y para referirse a dichas relaciones entre los procesos de la
jerarquía se emplean los términos de padre, hijo, hermano o abuelo. Bajo esta óptica, la jerarquía de procesos
puede considerarse como un árbol genealógico.
Estados de los procesosPara efectos del sistema
operativo, cada proceso puede estar en uno de los siguientes estados:
- Ejecutando: El proceso está
siendo ejecutado en la CPU, por lo tanto a lo más un proceso puede estar en este
estado en un computador uniprocesador.
- Listo: El proceso está en
condiciones de ejecutarse, pero debe esperar su turno de CPU.
- Bloqueado: El proceso no está en condiciones de ejecutarse.
Está esperando que algún evento ocurra,
como la finalización de una operación de I/O. También se dice que está
suspendido o en espera.
Actividad de repasoAhora los invito a realizar la siguiente actividad para afianzar conceptos de los estados y las transiciones de un proceso.
DefiniciónCambio de contexto consiste en la ejecución de una rutina perteneciente al núcleo del sistema operativo multitarea de una computadora, cuyo propósito es parar la ejecución de un proceso para dar paso a la ejecución de otro distinto.Cuando el sistema operativo entrega a la CPU un nuevo proceso, debe guardar el estado del proceso que estaba ejecutando, y cargar el estado del nuevo proceso; aunque este cambio demora de unos pocos a mil microsegundos dependiendo del procesador, es sobre costo, puesto que mientras la CPU no haga trabajo útil, ningún proceso avanza, y si la CPU hace varios cambios de contexto en un segundo, su costo es relativamente alto.
9
Manipulación Sobre Procesos
Manipulación sobre procesosLos procesos son inicializaciones de un sistema operativo, este los inicia al arrancar su funcionamiento, es decir cuando se enciende la PC. El sistema necesita de un mecanismo para crear y terminar procesos. El sistema nos permite manejar a los procesos por medio de las siguientes operaciones esenciales:
10
Manipulación Sobre Procesos
Crear un procesoExisten cuatro sucesos principales para le creación de un proceso dentro de un sistema operativo:- Inicialización del sistema: Cuando se arranca un sistema operativo se crean varios sucesos.
- Ejecución de una llamada al sistema para crear procesos por parte de un proceso en ejecución, es decir, un proceso puede crear otro proceso.
- Solicitud de un usuario para crear un proceso.
- Inicio de un trabajo por lotes.
11
Manipulación Sobre Procesos
Ejecutar un Proceso Ejecutar un proceso: existen dos maneras de ejecución. Batch no está asociado a una estación y su entrada y salida de datos son proporcionados por un archivo. La otra manera Interactiva está asociado a una estación y su entrada depende un usuario y salida es desplegada a éste.
12
Manipulación Sobre Procesos
Terminar procesosAl término de cada tarea encomendada a cada proceso, es como todos los demás procesos tienen que terminar o acabar su tarea, para lograr esto existen cuatro formas para terminarlos:- Terminación normal: cuando el proceso acaba la tarea encomendada.
- Terminación por error: Lo explicaré con un ejemplo: cuando el archivo o programa no se encuentra instalado acaba el proceso.
- Error fatal: cuando se encuentran archivos borrados en un sistema o programa o un defecto en el programa.
- Terminación por otro proceso: cuando un proceso pide que se termine otro para poder inicializarse.
MONOUSUARIOEs un sistema operativo que sólo puede ser ocupado por un único usuario en un determinado tiempo. En otras palabras los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.MONOTAREASistema monotarea se denomina a aquel Sistema Operativo que solamente puede ejecutar un proceso (programa) a la misma vez. Es una característica de los sistemas operativos más antiguos como MS-DOS pues en la actualidad la mayoría de los sistemas de propósito general son multitarea.Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
14
MultiUsuario-MultiTarea
MULTIUSUARIOEs la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente (tanto en paralelismo real como simulado). Los recursos que se comparten son por lo regular una combinación de:- Procesador.Memoria.Almacenamiento secundario (almacenaje en disco duro).
- Programas.
- Periféricos como impresoras, scanners, etc.
De tal modo que los múltiples usuarios tienen la impresión de utilizar un ordenador y un sistema operativo unificado, que les están dedicados por completo.
MULTITAREAUn sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa mientras compila otro programa, a la vez que está recibiendo correo electrónico. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
Actividad de repasoAntes de continuar con más temas sobre procesos, desarrollemos la siguiente actividad para repasar los conceptos que ya hemos visto.
¿Qué es un sistema multiproceso?Un sistema multiproceso se refiere al número de procesadores del sistema, y que éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente.Cuando se trabaja de manera asimétrica, el SO selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
Ventajas de los Sistemas MultiprocesoEntre las ventajas de la utilización de estos sistemas, tenemos:- Modularidad. Fracciona la ejecución de una aplicación en varios procesos y así favorece la programación.
- Brinda una útil asistencia de la manera más eficaz, interactiva y concurrente a la necesidad de varios usuarios.
- Explota los períodos de tiempo de procesos nulos para terminar la realización de peticiones de funciones de entrada y salida.
- Incrementa la utilización del CPU puesto que emplea el tiempo muerto cuando los procesos están obstruidos.
18
Grado de Multiprogramación
¿Qué es grado de multiprogramación?Se entiende por grado de multiprogramación a la cantidad de procesos vivos que ampara un sistema. Lo que se busca es que a mayor grado de multiprogramación el sistema realize menos procesos nulos, pero esto conlleva a que el sistema posee mayores requerimientos de memoria. Entonces a mayor cantidad de procesos, mayor será el grado de multiprogramación.
¿Qué son los hilos?Los hilos son mini procesos. Cada hilo se ejecuta en forma estrictamente secuencial y tiene su propio contador de programa una pila para llevar un registro de su posición. Los hilos comparten CPU de la misma forma que lo hacen los procesos. Los hilos pueden crear hilos hijos, y los hilos pueden tener distintos estados (en ejecución, bloqueado, listo y terminación). Un sistema multihilo es aquel SO que posee varios hilos de ejecución
Hilo de ejecuciónEn sistemas operativos, un hilo, hebra, thread o subproceso de ejecución, es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo. La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente).
21
Planificación de Procesos
Planificación de procesos en SO Conjunto de políticas y mecanismos incorporados al SO, a través de un módulo denominado planificador, que debe decidir cuál de los procesos en condiciones de ser ejecutado conviene ser despachado primero y qué orden de ejecución debe seguirse.
22
Planificación de Procesos
Objetivos de la Planificación de procesosLa Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.- Equidad: Todos los procesos deben ser atendidos.
- Eficacia: El procesador debe estar ocupado el 100% del tiempo.
- Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del usuario debe ser el menor posible.
- Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados esperados por los usuarios por lotes.
- Rendimiento: Maximizar el número de tareas que se procesan por cada hora.
23
Planificación de Procesos
Algoritmos de planificación Los SO cuentan con un componente llamado planificador, que se encarga de decidir cuál de los procesos hará uso del procesador. La toma de esta decisión, así como el tiempo de ejecución del proceso, estará dada por un algoritmo, denominado Algoritmo de Planificación.Algunos de los algoritmos de planificación más utilizados son:- FCFS o FIFO.
- SJF.
- Round Robin.
A continuación hablaremos un poco de estos algoritmos y se mostrará un ejemplo.
24
Planificación de Procesos
Primero en llegar primero en ser servidoConocido como FIFO o FCFS (First Come First Served). Este algoritmo emplea una cola de procesos, asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es puesto en su lugar en la cola después del que llegó antes que él y se pone en estado de listo. Cuando un proceso comienza a ejecutarse no se interrumpe su ejecución hasta que termina de hacerlo.
25
Planificación de Procesos
Prioridad al más cortoEl algoritmo SJF (Shortest-Job-First) se basa en los ciclos de vida de los procesos, los cuales transcurren en dos periodos:Ciclos de CPU y ciclos de entrada/salida, también conocidos por ráfagas. Si dos procesos tienen igual valor en estos aspectos, se emplea el algoritmo FCFS o FIFO para decidir. Tipos de SJF:- Expulsivo: Si entra un proceso nuevo a la cola de listos y este proceso cuenta con un ciclo de CPU menor al que tiene el proceso que está en ejecución en el momento, entonces ese proceso es desalojado y el nuevo proceso que entró toma el recurso, la CPU.
- No expulsiva: Cuando un proceso está haciendo uso del recurso de CPU, ningún otro proceso podrá apropiarse de este recurso hasta que el proceso que está en ejecución termine.
A continuación veremos un ejemplo para clarificar el concepto:
26
Planificación de Procesos
Round RobinA cada proceso se le asigna un tiempo determinado para su ejecución igual para todos. En caso de que un proceso no pueda ser ejecutado completamente en ese tiempo, se continuará su ejecución después de que todos los procesos restantes sean ejecutados durante el tiempo establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos que se encuentran en estado de listos como una cola circular.En este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio determinado, y de acuerdo con esa prioridad será el orden en que se atienda cada proceso.A continuación tenemos un ejercicio para afianzar el concepto sobre Round Robin:
27
Planificación de Procesos
Actividad de repaso finalActividad final para repasar y afianzar los temas aprendidos en esta presentación.
|