Sistemas operativos modernos
maino { int... : init(): hacer_algo(); read(...): hacer_otra_cosa(); write(...); seguir_trabajando(); exit{0): (a) main() { m e s s j mens; init(): while(rec_mensaje(&mens)) { switch (msg.type) { case 1:... case 2:... case 3:... } } (b) Figura 12-1. a) Código algorítmico, b) Código controlado por sucesos. todo se modelaba como una cinta magnética secuencial. Las tarjetas leídas se trataban como cintas de entrada, las tarjetas a perforar se trataban como cintas de salida y las salidas a la im presora se trataban como una cinta de salida. Los archivos de disco también se trataban como cintas. Sólo era posible el acceso aleatorio a un archivo rebobinando la cinta correspondiente al archivo y leyéndola otra vez. La asociación se efectuaba utilizando tarjetas de control como éstas: MOUNT(TAPE08, REEL781) RUN(INPUT, MYDATA, OUTPUT. PUNCH, TAPEOS) La primera tarjeta ordenaba al operador ir por el carrete de cinta 781 al anaquel de cintas y mon tarlo en la unidad de cinta 8 . La segunda tarjeta ordenaba al sistema operativo ejecutar el pro grama FORTRAN recién compilado, asociando INPUT (que era la lectora de tarjetas) a la cinta lógica 1, el archivo de disco MYDATA a la cinta lógica 2, la impresora (llamada OUTPUT) a la cinta lógica 3, la perforadora de tarjetas (llamada PUNCH) a la cinta lógica 4 y la unidad de cin ta física 8 a la cinta lógica 5. FORTRAN tenía una sintaxis para leer y escribir cintas lógicas. Al leer de la cinta lógi ca 1, el programa obtenía entradas de tarjetas. Al escribir en la cinta lógica 3, las salidas apa recían después en la impresora. Al leer de la cinta lógica 5, podía leerse el carrete de cinta 781, y así sucesivamente. Cabe señalar que la idea de cinta no era más que un paradigma pa ra integrar la lectora de cintas, la impresora, la perforadora, los archivos de disco y las cin tas. En este ejemplo, sólo la cinta lógica 5 era una cinta física; las demás eran archivos de disco ordinarios (en spooling). Era un paradigma primitivo, pero era un paso en la dirección correcta.
RkJQdWJsaXNoZXIy MjI4NDcx