Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
La creación de procesos en UNIX se realiza por medio de la llamada al sistema fork(). Cuando con un proceso solicita una llamada fork, el sistema operativo realiza las siguientes funciones :
1. Solicita la entrada en la tabla de procesos para el nuevo proceso.
2. Asigna un identificador de proceso único al proceso hijo.
3. Hace una copia de la imagen del proceso padre, con excepción de las regiones de memoria
compartidas.
4. Incrementa el contador de cualquier fichero en posesión del padre, para reflejar el proceso adicional
que ahora también posee dichos ficheros.
5. Asigna al proceso hijo el estado Listo para Ejecutar.
6. Devuelve el identificador del proceso hijo al proceso padre, y un valor 0 al proceso hijo.
Un proceso UNIX es un conjunto de estructuras de datos, más bien complejas, que proporcionan al sistema operativo toda la información necesaria para manejar y activar los procesos.La Tabla 3.10 recoge los elementos de la imagen de proceso, que están organizados en tres partes: contexto a nivel de usuario, contexto de registros, y contexto a nivel de sistema.
El contexto a nivel de usuario contiene los elementos básicos de un programa de usuario que se pueden generar directamente desde un fichero objeto compilado.
El contexto a nivel de sistema contiene la información restante que necesita el sistema operativo para manejar el proceso.
Tabla 3.10
Tabla 3.11
Hace uso de una gestión de procesos simple pero muy potente que es fácilmente visible a nivel de usuario. UNIX sigue el modelo en la cual la gran mayoría del sistema operativo se ejecuta dentro del entorno del proceso. De esta forma se necesitan dos modos, usuario y núcleo. UNIX utiliza también dos categorías de procesos, procesos de sistema y procesos de usuario. Los procesos del sistema ejecutan en modo núcleo y ejecuta código del sistema operativo para realizar tareas administrativas o funciones internas, como reserva de memoria o swapping de procesos. Los procesos de usuario operan en modo usuario para ejecutar programas y utilidades y en modo núcleo para ejecutar instrucciones que pertenecen al núcleo. Un proceso de usuario entra en modo núcleo por medio de la solicitud de la llamada al sistema, cuando se genera una de excepción
(fallo) o cuando ocurre una interrupción
Diagrama de transiciones estre estados de procesos
Estados de los procesos
En los sistemas operativos UNIX se utilizan un total de nueve estados de proceso. Las diferencias se pueden resumir en:
• UNIX utiliza dos estados Ejecutando que indican si el proceso está ejecutando en modo usuario
o en modo núcleo.
• Se debe realizar la distinción entre dos estados: (Listo para Ejecutar, en Memoria) y (Expulsado).
Estos son esencialmente el mismo estado, como indica la línea punteada que los une. La
distinción se realiza para hacer énfasis en la forma mediante la cual se llega al estado de Expulsado.
Todo este trabajo se realiza en modo núcleo, dentro del proceso padre. Cuando el núcleo ha completado estas funciones puede realizar cualquiera de las siguientes acciones, como parte de la rutina del activador:
1. Continuar con el proceso padre. El control vuelve a modo usuario en el punto en el que se realizó la llamada fork por parte del padre.
2. Transferir el control al proceso hijo. El proceso hijo comienza ejecutar en el mismo punto del código del padre, es decir en el punto de retorno de la llamada fork.
3. Transferir el control a otro proceso. Ambos procesos, padre e hijo, permanecen en el estado Listos para Ejecutar.
Puede resultar quizá un poco difícil visualizar este modo de creación de procesos debido a que ambos procesos, padre e hijo, están ejecutando el mismo segmento de código. La diferencia reside en que: cuando se retorna de la función fork, el parámetro de retorno se comprueba.