Sistemas operativos modernos

ceso tiene requisitos cruciales como éstos en tiempo real, es decir, si sucesos específicos deben ocurrir en cierto número de milisegundos, es preciso tomar medidas especiales para garantizar que ocurran. Sin embargo, en situaciones normales, casi ningún proceso se ve afectado por la multiprogramación de la CPU ni por las velocidades relativas de los distintos procesos. La diferencia entre un proceso y un programa es sutil, pero crucial. Una analogía puede ayu­ dar a precisar esto: considere un computólogo con aficiones culinarias que está horneando un pas­ tel de cumpleaños para su hija; tiene una receta de pastel y una cocina bien surtida con todos los materiales: harina, huevos, azúcar, extracto de vainilla, etc. En esta analogía, la receta es el pro­ grama (es decir, un algoritmo expresado en alguna notación apropiada), el computólogo es el procesador (CPU) y los ingredientes del pastel son los datos de entrada. El proceso es la acti­ vidad que consiste en que nuestro repostero lee la receta, trae los ingredientes y hornea el pastel. Ahora imaginemos que el hijo del computólogo entra bañado en lágrimas porque lo acaba de picar una abeja. El computólogo toma nota del punto de la receta donde se quedó (guarda el estado del proceso actual), saca un libro de primeros auxilios y comienza a seguir sus instruc­ ciones. Aquí puede ver que el procesador cambia de un proceso (hornear pasteles) a otro de más alta prioridad (proporcionar atención médica), cada uno de los cuales tiene un programa distin­ to (receta y libro de primeros auxilios). Una vez que el piquete de abeja ha sido atendido, el compu­ tólogo regresa a su pastel y continúa en el punto en el que se había quedado. La idea clave aquí es que un proceso es una actividad de algún tipo: tiene un programa, en­ tradas, salidas y un estado. Varios procesos pueden compartir un solo procesador, y se usa al­ gún algoritmo de calendarización para determinar cuándo hay que dejar de trabajar en un proceso y atender otro. 2.1.2 Creación de procesos Los sistemas operativos requieren alguna forma de comprobar que existan todos los procesos necesarios. En sistemas muy sencillos, o en los diseñados para ejecutar una sola aplicación (por ejemplo, la controladora de un homo de microondas), podría ser factible hacer que todos los pro­ cesos que alguna vez se necesiten estén presentes cuando el sistema arranque. Sin embargo, en los sistemas de propósito general hace falta algún mecanismo para crear y terminar procesos se­ gún se necesite durante la operación. A continuación veremos algunos aspectos del problema. Hay cuatro sucesos principales que causan la creación de procesos: 1. Inicialización del sistema. 2. Ejecución de una llamada al sistema para crear procesos por parte de un proceso en eje­ cución. 3. Solicitud de un usuario para crear un proceso. 4. Inicio de un trabajo por lotes. Cuando se arranca un sistema operativo, por lo regular se crean varios procesos. Algunos son de primer plano; es decir, procesos que interactúan con usuarios (humanos) y trabajan para

RkJQdWJsaXNoZXIy MjI4NDcx