Sistemas operativos modernos
forma de reemplazar procedimientos de biblioteca mientras se estaban usando. Con este fm se inventó el concepto de enlace dinámico. Cuando MULTICS pasó a mejor vida, el concepto ca yó en el olvido durante algún tiempo, pero fue redescubierto cuando los sistemas operativos modernos necesitaron alguna forma de permitir a muchos programas compartir los mismos procedimientos de biblioteca sin tener sus propias copias privadas (porque las bibliotecas de gráficos habían crecido en forma desmesurada). Ahora casi todos los sistemas manejan otra vez alguna forma de enlace dinámico. La lista sigue, pero estos ejemplos deberán dejar bien claro que una idea que hoy es obsoleta podría ser el alma de la fiesta mañana. La tecnología no es el único factor que impulsa a los sistemas y el software. La economía también desempeña un papel importante. En las décadas de 1960 y 1970, casi todas las termi nales eran impresoras mecánicas o tubos de rayos catódicos (CRTs) de 25 x 80 caracteres, no ter minales gráficas de mapas de bits. Esta decisión no era cuestión de tecnología; ya se usaban terminales gráficas de mapas de bits antes de 1960. El problema era que costaban decenas de mi les de dólares cada una. Fue sólo cuando el precio se desplomó que se pudo pensar (fuera del ejército) en dedicar una terminal a un usuario individual. 1.6 LLAMADAS AL SISTEMA La interfaz entre el sistema operativo y los programas de usuario está definida por el conjunto de llamadas al sistema ofrecidas por el sistema operativo. Si queremos entender en realidad lo que hacen los sistemas operativos, debemos examinar de cerca esa interfaz. Las llamadas al sis tema con que cuenta la interfaz varían de un sistema operativo a otro (aunque los conceptos tienden a ser similares). Por ello, nos vemos obligados a escoger entre 1) generalidades vagas (“los sistemas ope rativos tienen llamadas al sistema para leer archivos”), y 2) algún sistema específico (“UNIX tiene una llamada al sistema read con tres parámetros: uno para especificar el archivo, uno pa ra indicar dónde deben colocarse los datos y uno para indicar cuántos bytes leer”). Hemos escogido el segundo enfoque. Hay que trabajar más así, pero se entiende mejor lo que hacen los sistemas operativos en realidad. Aunque esta explicación se refiere de manera es pecífica a POSIX (Norma Internacional 9945-1) y por tanto también a UNIX, System V, BSD, Linux, MINIX, etcétera, casi todos los demás sistemas operativos modernos tienen llamadas al sistema que desempeñan las mismas funciones, aunque difieran los detalles. Puesto que el me canismo real para emitir una llamada al sistema depende mucho de la máquina y muchas ve ces debe expresarse en código ensamblador, se proporciona una biblioteca de procedimientos que permite hacer llamadas al sistema desde programas en C y también desde otros lenguajes. Resulta útil tener presente lo que sigue. Cualquier computadora que tenga una sola CPU sólo puede ejecutar una instrucción a la vez. Si un proceso está ejecutando un programa de usuario en modo de usuario y necesita un servicio del sistema, como leer datos de un archivo, tendrá que ejecutar una instrucción TRAP o de llamada al sistema para transferir el control al sistema operativo. Éste determinará entonces lo que quiere el proceso invocador al examinar los parámetros. A continuación, ejecutará la llamada al sistema y devolverá el control a la ins trucción que está después de la llamada al sistema. En cierto sentido, efectuar una llamada al
RkJQdWJsaXNoZXIy MjI4NDcx