Sistemas operativos modernos
ellos. Otros son procesos de segundo plano que no están asociados con un usuario en particu lar, sino que tienen una función específica. Por ejemplo, podría diseñarse un proceso de segun do plano que acepte el correo electrónico entrante; este proceso quedaría inactivo casi todo el día pero entraría en acción repentinamente si llega algún mensaje de correo electrónico. Podría diseñarse otro proceso para aceptar las solicitudes de páginas Web albergadas en esa máquina, y se activaría cuando llegara una solicitud para atenderla. Los procesos que permanecen en se gundo plano para encargarse de alguna actividad, como correo electrónico, páginas Web, no ticias, impresión, etcétera, se llaman demonios (daemons). Los sistemas grandes suelen tenerlos por docenas. En UNIX puede usar el programa ps para mostrar una lista de los proce sos que se están ejecutando. En Windows 95/98/Me puede ver qué se está ejecutando si opri me CTRL+ALT+SUPR. En Windows 2000 puede utilizar el Administrador de tareas. Además de los procesos que se crean en el momento del arranque, es posible crear proce sos posteriormente. Es común que un proceso en ejecución emita llamadas al sistema para crear uno o más procesos que le ayuden en su labor. La creación de procesos tiene especial uti lidad cuando el trabajo a realizar puede formularse con facilidad a partir de varios procesos re lacionados, pero independientes, que interactúan entre sí. Por ejemplo, si quiere bajar una gran cantidad de datos de una red para procesarlos después, podría ser conveniente crear un proce so que traiga los datos y los ponga en un búfer compartido, mientras otro proceso los saca de ahí, uno por uno, y los procesa. En un multiprocesador el trabajo también se realizaría más rá pido si permite que cada proceso se ejecute en una CPU distinta. En los sistemas interactivos, los usuarios pueden iniciar un programa tecleando un comando o haciendo (doble) clic en un icono. Ambas acciones inician un proceso nuevo y eje cutan allí el programa seleccionado. En los sistemas UNIX basados en comandos que funcio nan con X Windows, el proceso nuevo se apropia de la ventana en la que se inició. En Microsoft Windows, cuando se inicia un proceso no tiene una ventana, pero puede crear una (o más), y casi todos lo hacen. En ambos sistemas, los usuarios pueden tener varias ventanas abiertas a la vez, cada una de las cuales ejecuta un proceso. Con el ratón, el usuario puede se leccionar una ventana e interactuar con el proceso; por ejemplo, proporcionándole entradas cuando las necesite. La última situación en la que se crean procesos sólo es válida en los sistemas por lotes de los mainframes grandes. En ellos, los usuarios pueden enviar trabajos por lotes al sistema (qui zá desde un lugar remoto). Cuando el sistema operativo decide que tiene los recursos suficien tes para ejecutar otro trabajo, crea un proceso y ejecuta en él el siguiente trabajo de la cola de entrada. Desde el punto de vista técnico, en todos estos casos un proceso se crea haciendo que un pro ceso existente ejecute una llamada al sistema para crear procesos. Dicho proceso existente podría ser uno de usuario que ya se esté ejecutando, uno de sistema invocado con el teclado o el ratón, o uno administrador de lotes. Lo que hace es ejecutar una llamada al sistema para crear el proce so; esta llamada le ordena al sistema operativo crear un proceso e indica, de manera directa o in directa, cuál programa debe ejecutar en él. En UNIX sólo hay una llamada al sistema para crear un proceso: fork. Ésta crea una copia exacta del proceso invocador. Después de fork, los dos procesos, el padre y el hijo, tienen la misma imagen de memoria, las mismas cadenas de entorno y los mismos archivos abiertos. Eso
RkJQdWJsaXNoZXIy MjI4NDcx