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