Sistemas operativos modernos
en forma sucesiva. Por tanto, todos los procesos del sistema pertenecen a un solo árbol que tie ne a init como raíz. En contraste, Windows no tiene el concepto de jerarquía de procesos. Todos los procesos son iguales. Lo único que podría parecerse a una jerarquía de procesos es cuando se crea un proceso: el padre recibe una “ficha” especial (llamada [identificador]) que le sirve para con trolar al hijo. Sin embargo, el padre está en libertad de transferir la ílcha a algún otro proceso, deshaciendo así la jerarquía. En UNIX, los procesos no pueden desheredar a sus hijos. 2.1.5 Estados de procesos Aunque cada proceso es una entidad independiente, con su propio contador de programa y es tado interno, es común que tenga que interactuar con otros procesos. Un proceso podría gene rar salida que otro utilice como entrada. En el comando cat partel parte2 parte3 |grep árbol el primer proceso, que ejecuta cat, concatena y envía tres archivos a la salida. El segundo pro ceso, que ejecuta grep, selecciona todas las líneas que contienen la palabra “árbol”. Dependien do de las velocidades relativas de los dos procesos (lo cual a su vez depende de la complejidad relativa de los programas y del tiempo de CPU con que ha contado cada uno), podría suceder que grep esté listo para ejecutarse, pero todavía no haya entrada para él. En tal caso, tendrá que bloquearse hasta que la haya. Cuando un proceso se bloquea, lo hace porque lógicamente no puede continuar, casi siem pre porque está esperando entrada que todavía no está disponible. También puede ser que un proceso que en teoría está listo y puede ejecutarse se detenga porque el sistema operativo de cidió asignar la CPU a otro proceso. Estas dos condiciones son distintas por completo. En el primer caso, la suspensión es inherente al problema (no es posible procesar la línea de coman dos del usuario antes de que termine de teclearse). En el segundo caso, se trata de un tecnicis mo del sistema (no hay suficientes CPUs para que cada proceso tenga su propio procesador privado.) En la figura 2-2 vemos un diagrama de estado que muestra los tres estados en los que puede estar un proceso: 1. En ejecución (en realidad, usando la CPU en ese instante). 2. Listo (puede ejecutarse; detenido en forma temporal para permitir que se ejecute otro proceso). 3. Bloqueado (no puede ejecutarse mientras no ocurra cierto suceso externo). Desde el punto de vista lógico, los primeros dos estados son similares. En ambos casos, el pro ceso está dispuesto a ejecutarse, sólo que en el segundo por el momento no hay CPU disponi ble para él. El tercer estado es diferente de los primeros dos en cuanto a que el proceso no puede ejecutarse, aunque la CPU no tenga nada más que hacer.
RkJQdWJsaXNoZXIy MjI4NDcx