Sistemas operativos modernos
Cada uno de esos archivos está asociado con un apuntador que indica la posición actual (es de cir, el número del byte o registro que se leerá a continuación). Cuando un proceso se suspende de manera temporal, todos estos apuntadores tienen que guardarse para que una llamada read ejecutada luego de reiniciado el proceso lea los datos correctos. En muchos sistemas operativos, toda la información acerca de cada proceso, salvo el contenido de su propio espacio de direccio nes, se guarda en una tabla del sistema operativo llamada tabla de procesos, que es un arreglo (o lista enlazada) de estructuras, una para cada uno de los procesos existentes en ese momento. Así pues, un proceso (suspendido) consiste en su espacio de direcciones, que también se conoce como imagen del núcleo {core image, recordando las memorias de núcleos magnéti cos de ferrita empleadas antaño), y su entrada en la tabla de procesos, que contiene sus regis tros y algunas otras cosas. Las llamadas importantes al sistema para administración de procesos son las que se ocu pan de la creación y terminación de procesos. Consideremos un ejemplo representativo. Un proceso llamado intérprete de comandos o shell lee instrucciones o comandos desde una ter minal. El usuario acaba de teclear un comando para solicitar la compilación de un programa. Ahora el shell debe crear un proceso nuevo que ejecute el compilador. Cuando ese proceso ter mine la compilación, ejecutará una llamada al sistema para terminarse a sí mismo. Si un proceso puede crear uno o más procesos distintos (llamados procesos hijos), y éstos a su vez pueden crear procesos hijos, pronto llegaremos a la estructura de árbol de procesos de la figura 1-12. Los procesos relacionados que están cooperando para llevar a cabo alguna tarea a menudo necesitan comunicarse entre sí y sincronizar sus actividades. Esta comunicación se denomina comunicación entre procesos y se tratará con detalle en el capítulo 2. Figura 1-12. Árbol de procesos. El proceso A creó dos procesos hijos, 6 y C. El pro ceso B creó tres procesos hijos, D, E y F. Existen otras llamadas al sistema que pueden emitir los procesos para solicitar más memo ria (o liberar memoria que ya no ocupan), esperar a que un proceso hijo termine y sobrescribir otro programa en ese lugar. En ocasiones surge la necesidad de comunicar información a un proceso en ejecución que no la está esperando. Por ejemplo, un proceso que se está comunicando con otro en una compu tadora distinta lo hace enviando mensajes al proceso remoto a través de una red. Para proteger se contra la posibilidad de que se pierda un mensaje o su respuesta, el remitente podría solicitar que su propio sistema operativo se lo notifique después de cierto número de segundos, para po der retransmitir el mensaje si todavía no ha recibido acuse de recibo. Una vez puesto este tem- porizador, el programa puede seguir con otras tareas.
RkJQdWJsaXNoZXIy MjI4NDcx