proceso

Anuncio
Sistemas Operativos
Clase 2: Administración de procesos.
Administración de procesos
Un concepto muy importante en el ambiente de diseño
de todo sistema operativo, es el de proceso o tarea. De
manera general, un proceso es
un conjunto de instrucciones (programa) que se está
ejecutando y que posee su propio espacio de memoria.
Administración de procesos
Es importante mencionar que un proceso no es un
programa. El programa en sí es un elemento pasivo,
que puede permanecer en memoria, en disco, o en
algún otro lugar de almacenamiento.
El proceso es un elemento activo, un programa en
ejecución es un proceso.
Es posible tener dos o más procesos independientes,
aun cuando provengan del mismo programa.
Administración de procesos
En ocasiones, es común que un proceso “engendre”
muchos procesos durante su ejecución; en este caso se
dice que los procesos generan hijos o procesos hijos; al
proceso generador se le conoce como proceso padre.
Administración de procesos
¿Por qué son importantes los procesos en un sistema
operativo?
Algunas de las características que un SO debe
satisfacer, están en función de la manera en que es
capaz de manejar a los procesos; en ese sentido se
tiene:
• El SO debe ser capaz de intercalar la ejecución de un
conjunto de procesos, de tal manera que maximice el
uso del procesador.
Administración de procesos
• El SO debe asignar los recursos a los procesos,
cumpliendo determinadas reglas que se fijan al inicio
de toda ejecución.
• La comunicación entres procesos es muy importante,
y el soporte lo debe dar el SO.
Administración de procesos
• Un SO monoproceso solo permite que exista un
proceso en cada instante. Si se quieren ejecutar
varios procesos, hay que lanzar la ejecución de la
primera y esperar a que termine antes de poder
lanzar la siguiente. La ventaja de estos sistemas
operativos es que son muy sencillos.
• Un SO multiproceso permite que coexistan varios
procesos a la vez. El SO se encarga de ir repartiendo
el tiempo del procesador entre estos procesos, para
que todos ellos vayan avanzando en su ejecución.
Administración de procesos
Nuestro interés se centra en los sistemas multiproceso
o multitarea.
La multitarea o multiproceso se basa en las tres
características siguientes:
• Paralelismo real entre E/S y procesador.
• Alternancia en los procesos de fases de E/S y de
procesamiento.
• Memoria principal capaz de almacenar varios
procesos.
Administración de procesos
Las ventajas de la multitarea son:
• Facilita la programación, ya que permite dividir las
aplicaciones en varios procesos, lo que beneficia a su
modularidad.
• Permite prestar un buen servicio, puesto que se
puede atender a varios usuarios de forma eficiente,
interactiva y simultánea.
• Aprovecha los tiempos muertos que los procesos
pasan esperando a que se completen sus
operaciones de E/S.
Administración de procesos
Proceso nulo: el procesador no para de ejecutar nunca.
Por lo que hay ocasiones en lo que el procesador no
tiene nada que hacer.
Para evitar lo anterior, los sistemas operativos incluyen
el denominado proceso nulo. Este proceso consiste en
un bucle infinito que no realiza ninguna operación útil.
El objetivo de este proceso es “entretener” al
procesador cuando no hay ninguna otra tarea.
Otra solución es emplear la instrucción HALT.
Administración de procesos
Grado de multiprogramación: es el número de
procesos activos que mantiene un sistema.
Mientras más procesos activos haya en un sistema,
mayor es la probabilidad de encontrar siempre un
proceso en estado de listo para ejecutar, por lo que
entrará a ejecutar menos veces el proceso nulo. Sin
embargo, se tiene el inconveniente de que, a mayor
grado de multiprogramación, se tienen mayores
necesidades de memoria.
Estados de un proceso
La ejecución de varios procesos en un sistema, requiere
que el SO asigne determinados estados de ejecución a
un proceso.
Los estados de un proceso, indican la situación en que
se encuentra cada uno de los procesos; de esta manera
el SO puede implementar mecanismos de asignación de
CPU a cada uno de ellos.
Estados de un proceso
Los estados más comunes por lo que puede pasar un
proceso son:
• Nuevo: que es instante en que se esta creando.
• Ejecución.
• Espera: el proceso esta esperando a que suceda
algún evento, por ejemplo un evento de I/O o una
señal.
• Listo: cuando el proceso esta a la espera de que se le
asigne un procesador.
• Terminado.
Estados de un proceso
Dependiendo del SO, pueden existir más estados de
proceso; por ejemplo, en Linux existe lo que se conoce
como zombi.
Un proceso zombi es aquel que ya termino su
ejecución, pero que el sistema aun registra.
Información de un proceso
Un proceso no sólo posee un estado, sino también
posee información que debe ser considerada por el SO;
esta información es:
• Estado del procesador.
• Imagen de memoria del proceso.
• Tablas del SO.
Información de un proceso
Estado del procesador: representa el contenido de
todos los registros del procesador.
•
•
•
•
•
Registros generales
Contador de programa.
Puntero de pila.
Registro o registros de estado.
Registros especiales.
Información de un proceso
Imagen de memoria: está formada por los espacios de
memoria que está autorizado a utilizar. Las
características son:
• El proceso solamente puede tener información en su
imagen de memoria y no fuera de ella
• La imagen de memoria estará referida a memoria
virtual o a memoria física.
• Los procesos suelen necesitar asignación dinámica
de memoria. Por tanto, la imagen de memoria de los
mismos se deberá adaptar a estas necesidades.
Información de un proceso
Imagen de memoria:
El SO puede asignar la memoria de varias maneras:
• Proceso con un único segmento de tamaño variable.
• Proceso con un número fijo de segmentos de
tamaño variable.
• Proceso con un número variable de segmentos de
tamaño variable.
Información de un proceso
Tablas del sistema operativo: son todas aquellas que
describen a los procesos y a los recursos del sistema.
El SO mantiene un a serie de tablas con información
sobre los procesos y los recursos, la mayoría de estas
tablas no son completas, y su contenido depende de
dos factores: eficiencia y necesidad de compartir
información.
Información de un proceso
Tablas del sistema operativo:
• Eficiencia: estas tablas se construyen con
información básica, de tal manera que el contenido
de esta información debe ser de tamaño fijo.
• Compartir información: la información de estas
tablas puede ser compartida por varios procesos; no
es necesario que el tamaño de la información sea
estática, ya que en principio no se requiere de
acceso rápido.
Fin de la clase 2
Descargar