Procesos de un sistema operativo

Anuncio
Tema 3.
Procesos.
Hay que tener muy claras las diferencias entre programa y proceso:
Un programa es una entidad pasiva compuesta unicamente por un código y
unos datos, es decir, tiene un listado fijo.
Un proceso es una entidad activa, es el "programa" en ejecución
Un proceso se compone de:
- Código del programa que ejecuta.
- Estado del proceso:
- sección de datos.
- pila
- contador de programa
- puntero de pila
- palabra de estado
- registros de uso general
- informacion del S.O.
Un proceso puede tener tres estados distintos:
- preparado: el proceso está listo para pasar a ejecutarse.
- en ejecución
- en espera: por alguna razón (operación de E/S, interrupción, etc.) el
proceso debe esperar a que se acabe una acción sin la cual no puede continuar
su ejecución.
Ejecución de procesos:
El S.O. inicia la ejecución de un proceso nuevo que está preparado.
Cuando este proceso no va a utilizar la CPU durante un tiempo (hay una
llamada a E/S, etc.) el S.O. lo pone en espera hasta que acaba esa operación.
Mientras tanto pasa a la CPU la ejecución de otro proceso que estuviera
preparado y realiza los mismos pasos: ejecuta hasta que este deja de usar la
CPU, lo pone en espera si es necesario y pasa a ejecutar otro.
Cuando la acción del proceso que está en espera termina (acaba la E/S,
etc.) el S.O. lo pone otra vez en estado de preparado, así hasta que termina con
todo el proceso.
En todos estos cambios de estado el S.O. debe guardar el "contexto" del
proceso, en el cual está toda la información necesaria para volver a ejecutarlo
donde se dejó. Esta información se guarda en el Bloque de Control de Procesos
(PCB), que tiene una dirección de memoria protegida que solo puede modificar
el S.O.
El S.O. deberá decidir que proceso de los que estan en espera pasará a
ejecución cuando la CPU quede libre, esta decisión la hará a traves de un
Planificador de Procesos.
Planificación de Procesos:
Existen dos planificadores que se encargan respectivamente de pasar
trabajos o procesos a la memoria principal y a la CPU.
El más importante es el Planificador de la CPU que se encarga de
decidir qué procesos de los que están preparados pasarán a ejecución cuando
la CPU se libere de algún otro proceso (cuando este pase a estar en espera).
Esta planificación puede ser apropiativa o no apropiativa, siendo la primera
aquella en la que unos procesos tienen prioridad sobre otros y cuando acaban de
estar en espera y pasan a preparado hacen que el S.O. les dé paso a la CPU
que abandona el proceso que tenía en ejecución, lo pone en preparado y pasa a
ejecutar el que tiene prioridad. Con el otro sistema la CPU ejecuta un proceso
hasta que lo termina o por alguna razón éste pasa a estar en espera.
Existen varios criterios por los cuales la CPU es capaz de cambiar de
proceso en ejecución:
- Utilización de la CPU: el S.O. pretende que la CPU este el menor
tiempo posible inactiva.
- Productividad.
- Tiempo de retorno: el proceso en ejecución tarda mucho en acabar una
acción, pudiendo encontrarse en un bucle muy largo.
- Tiempo de espera: se pretende que los procesos no estén demasiado
tiempo en espera.
- Tiempo de respuesta.
Descargar