Sistemas operativos modernos
2.1.1 El modelo de procesos En este modelo, todo el software ejecutable de la computadora, que a veces incluye al sistema operativo, se organiza en varios procesos secuenciales, o simplemente procesos. Un proceso no es más que un programa en ejecución, e incluye los valores que tienen el contador de pro grama, los registros y las variables. En lo conceptual, cada proceso tiene su propia CPU vir tual. Claro que, en la realidad, la verdadera CPU cambia en forma continua de un proceso a otro, pero para entender el sistema es mucho más fácil pensar que hay un conjunto de proce sos que se ejecutan en (seudo) paralelo, que tratar de comprender la manera en que la CPU cambia de un programa a otro. Esta rápida conmutación se denomina multiprogramación, co mo vimos en el capítulo 1. En la figura 2-la se muestra una computadora que multiprograma cuatro programas en la memoria. En la figura 2-lb se aprecian cuatro procesos, cada uno con su propio flujo de control (es decir, su propio contador lógico de programa) y ejecutándose de manera indepen diente. Desde luego, sólo hay un contador físico de programa, así que al ejecutarse cada pro ceso, su contador lógico de programa se carga en el contador de programa real. Cuando termina provisionalmente, el contador físico de programa se guarda en el contador lógico de programa del proceso, en la memoria. La figura 2-le muestra que, si se observan durante su ficiente tiempo, todos los procesos han avanzado, pero en un instante dado sólo se ejecuta un proceso en realidad. Un contador de programa Cuatro contadores (a) (b) Tiempo- (c) Figura 2-1 . a) Multiprogramación de cuatro programas, b) Modelo conceptual de cua tro procesos secuenciales independientes, c) Sólo un programa está activo a la vez. Con la CPU conmutando entre los procesos, la rapidez con que un proceso efectúa sus ope raciones no será uniforme y es probable que ni siquiera sea reproducible si los mismos proce sos se ejecutan otra vez. Por ello, los procesos no deben programarse con base en supuestos acerca de los tiempos. Por ejemplo, considere un proceso de E/S que pone en marcha una cin ta para restaurar archivos respaldados, ejecuta un ciclo inactivo 10,000 veces para permitirle alcanzar la velocidad de operación y luego emite un comando para leer el primer registro. Si la CPU decide cambiar a otro proceso durante el ciclo inactivo, el proceso de cinta podría no eje cutarse otra vez sino hasta que el primer registro pase bajo la cabeza de lectura. Cuando un pro
RkJQdWJsaXNoZXIy MjI4NDcx