Sistemas operativos modernos

sino hasta que lo haya guardado en algún lado donde pueda examinarlo. Además, algunos dis­ positivos están sujetos a severas restricciones de tiempo real (por ejemplo, los de audio digital), por lo que los datos deben colocarse por adelantado en un búfer de salida para que la velocidad con la que se vacía no dependa de la velocidad con la que se llena, lo cual podría causar insufi­ ciencias de búfer. El uso de búferes requiere numerosas operaciones de copiado y a menudo tie­ ne un impacto importante sobre el desempeño de E/S. El úUimo concepto que mencionaremos aquí es el de dispositivos compartibles y dedica­ dos. Algunos disposifivos de E/S, como los discos, pueden ser ufilizados por muchos usuarios al mismo tiempo. No hay problemas si varios usuarios tienen archivos abiertos en el mismo disco al mismo tiempo. Otros disposifivos, como las unidades de cinta, fienen que estar dedi­ cados a un solo usuario hasta que éste termine de usarlos. Luego podrá asignarse la unidad de cinta a otro usuario. Que dos o más usuarios escriban bloques entremezclados en forma alea­ toria en la misma cinta definifivamente no funciona. La introducción de disposifivos dedicados (no compartidos) también introduce diversos problemas, como los bloqueos irreversibles. Una vez más, el sistema operativo debe tener la capacidad de manejar dispositivos tanto comparti­ dos como dedicados de forma tal que se eviten problemas. 5.2.2 E/S programada Hay tres formas fundamentalmente distintas de efectuar E/S. En esta sección examinaremos la primera (E/S programada). En las dos secciones que siguen trataremos las otras (E/S controla­ da por interrupciones y E/S empleando DMA). La forma más sencilla de E/S deja que la CPU haga todo el trabajo. Este método se denomina E/S programada. Resulta más sencillo ilustrar la E/S programada con un ejemplo. Consideremos un proce­ so de usuario que desea imprimir la cadena de ocho caracteres “ABCDEFGH” en la impreso­ ra. Lo primero que hace es armar la cadena en un búfer en el espacio de usuario, como se muestra en la figura 5-6a. Espacio de usuario Espacio de kernel Cadena a imprimir ABCD EFGH Página impresa (a) (b) (c) Figura 5-6. Pasos de la impresión de una cadena.

RkJQdWJsaXNoZXIy MjI4NDcx