Está en la página 1de 4

SECCIN 1.

12

RESUMEN

79

de los discos. Para evitar ambigedades, en este libro utilizaremos los smbolos KB, MB y GB para 210, 220 y 230 bytes, respectivamente y los smbolos Kbps, Mbps y Gbps para 103, 106 y 109 bits/seg, respectivamente.

1.12 RESUMEN
Los sistemas operativos se pueden ver desde dos puntos de vista: como administradores de recursos y como mquinas extendidas. En el punto de vista correspondiente al administrador de recursos, la funcin del sistema operativo es administrar las distintas partes del sistema en forma eficiente. En el punto de vista correspondiente a la mquina extendida, la funcin del sistema operativo es proveer a los usuarios abstracciones que sean ms convenientes de usar que la mquina actual. Estas abstracciones incluyen los procesos, espacios de direcciones y archivos. Los sistemas operativos tienen una larga historia, empezando desde los das en que reemplazaron al operador, hasta los sistemas modernos de multiprogramacin. Entre los puntos importantes tenemos a los primeros sistemas de procesamiento por lotes, los sistemas de multiprogramacin y los sistemas de computadora personal. Como los sistemas operativos interactan de cerca con el hardware, es til tener cierto conocimiento del hardware de computadora parea comprenderlos. Las computadoras estn compuestas de procesadores, memorias y dispositivos de E/S. Estas partes se conectan mediante buses. Los conceptos bsicos en los que se basan todos los sistemas operativos son los procesos, la administracin de memoria, la administracin de E/S, el sistema de archivos y la seguridad. Cada uno de estos conceptos se tratar con detalle en un captulo posterior. El corazn de cualquier sistema operativo es el conjunto de llamadas al sistema que puede manejar. Estas llamadas indican lo que realmente hace el sistema operativo. Para UNIX, hemos visto cuatro grupos de llamadas al sistema. El primer grupo de llamadas se relaciona con la creacin y terminacin de procesos. El segundo grupo es para leer y escribir en archivos. El tercer grupo es para administrar directorios. El cuarto grupo contiene una miscelnea de llamadas. Los sistemas operativos se pueden estructurar en varias formas. Las ms comunes son como un sistema monoltico, una jerarqua de capas, microkernel, cliente-servidor, mquina virtual o exokernel.

PROBLEMAS
1. Qu es la multiprogramacin? 2. Qu es spooling? Cree usted que las computadoras personales avanzadas tendrn spooling como

caracterstica estndar en el futuro? 3. En las primeras computadoras, cada byte de datos ledos o escritos se manejaba mediante la CPU (es decir, no haba DMA). Qu implicaciones tiene esto para la multiprogramacin?

80
5.

INTRODUCCIN

CAPTULO 1

4. La idea de una familia de computadoras fue introducida en la dcada de 1960 con las mainframes

6. 7.

8.

9. 10.

11.

12.

IBM System/360. Est muerta ahora esta idea o sigue en pie? Una razn por la cual las GUI no se adoptaron con rapidez en un principio fue el costo del hardware necesario para darles soporte. Cunta RAM de video se necesita para dar soporte a una pantalla de texto monocromtico de 25 lneas x 80 caracteres? Cunta se necesita para un mapa de bits de 1024 768 pxeles y colores 24 bits? Cul fue el costo de esta RAM con precios de 1980 (5 dlares/KB)? Cunto vale ahora? Hay varias metas de diseo a la hora de crear un sistema operativo, por ejemplo: la utilizacin de recursos, puntualidad, que sea robusto, etctera. De un ejemplo de dos metas de diseo que puedan contradecirse entre s. Cul de las siguientes instrucciones debe permitirse slo en modo kernel? a) Deshabilitar todas las interrupciones. b) Leer el reloj de la hora del da. c) Establecer el reloj de la hora del da. d) Cambiar el mapa de memoria. Considere un sistema con dos CPUs y que cada CPU tiene dos hilos (hiperhilamiento). Suponga que se inician tres programas P0, P1 y P2 con tiempos de ejecucin de 5, 10 y 20 mseg, respectivamente. Cunto se tardar en completar la ejecucin de estos programas? Suponga que los tres programas estn 100% ligados a la CPU, que no se bloquean durante la ejecucin y no cambian de CPU una vez que se les asigna. Una computadora tiene una canalizacin con cuatro etapas. Cada etapa requiere el mismo tiempo para hacer su trabajo, a saber, 1 nseg. Cuntas instrucciones por segundo puede ejecutar esta mquina? Considere un sistema de cmputo con memoria cach, memoria principal (RAM) y disco, y que el sistema operativo utiliza memoria virtual. Se requieren 2 nseg para acceder a una palabra desde la cach, 10 nseg para acceder a una palabra desde la RAM y 10 ms para acceder a una palabra desde el disco. Si la proporcin de aciertos de cach es de 95% y la proporcin de aciertos de memoria (despus de un fallo de cach) es de 99%, cul es el tiempo promedio para acceder a una palabra? Un revisor alerta observa un error de ortografa consistente en el manuscrito del libro de texto de sistemas operativos que est a punto de ser impreso. El libro tiene cerca de 700 pginas, cada una con 50 lneas de 80 caracteres. Cunto tiempo se requerir para digitalizar en forma electrnica el texto, para el caso en que la copia maestra se encuentre en cada uno de los niveles de memoria de la figura 1-9? Para los mtodos de almacenamiento interno, considere que el tiempo de acceso dado es por carcter, para los discos suponga que el tiempo es por bloque de 1024 caracteres y para la cinta suponga que el tiempo dado es para el inicio de los datos, con un acceso posterior a la misma velocidad que el acceso al disco. Cuando un programa de usuario realiza una llamada al sistema para leer o escribir en un archivo en disco, proporciona una indicacin de qu archivo desea, un apuntador al bfer de datos y la cuenta. Despus, el control se transfiere al sistema operativo, el cual llama al driver apropiado. Suponga que el driver inicia el disco y termina hasta que ocurre una interrupcin. En el caso de leer del disco, es obvio que el procedimiento que hizo la llamada tiene que ser bloqueado (debido a que no hay datos para leer). Qu hay sobre el caso de escribir en el disco? Necesita ser bloqueado el procedimiento llamador, para esperar a que se complete la transferencia del disco?

CAPTULO 1

PROBLEMAS

81

13. Qu es una instruccin de trap? Explique su uso en los sistemas operativos. 14. Cul es la diferencia clave entre un trap y una interrupcin? 15. Por qu se necesita la tabla de procesos en un sistema de tiempo compartido? Se necesita tambin 16. 17. 18. 19.
en los sistemas de computadora personal en los que slo existe un proceso, y ese proceso ocupa toda la mquina hasta que termina? Existe alguna razn por la que sera conveniente montar un sistema de archivos en un directorio no vaco? De ser as, cul es? Cul es el propsito de una llamada al sistema en un sistema operativo? Para cada una de las siguientes llamadas al sistema, proporcione una condicin que haga que falle: fork, exec y unlink. Podra la llamada
cuenta = write(fd, bufer, nbytes);

devolver algn valor en cuenta distinto de nbytes? Si es as, por qu? 20. Un archivo cuyo descriptor es fd contiene la siguiente secuencia de bytes: 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5. Se realizan las siguientes llamadas al sistema:
lseek(fd, 3, SEEK_SET); read(fd, &bufer, 4);

21.

22. 23. 24. 25. 26.

en donde la llamada lseek realiza una bsqueda en el byte 3 del archivo. Qu contiene bufer despus de completar la operacin de lectura? Suponga que un archivo de 10 MB se almacena en un disco, en la misma pista (pista #: 50) en sectores consecutivos. El brazo del disco se encuentra actualmente situado en la pista nmero 100. Cunto tardar en recuperar este archivo del disco? Suponga que para desplazar el brazo de un cilindro al siguiente se requiere aproximadamente 1 ms y se requieren aproximadamente 5 ms para que el sector en el que est almacenado el inicio del archivo gire bajo la cabeza. Suponga adems que la lectura ocurre a una velocidad de 100 MB/s. Cul es la diferencia esencial entre un archivo especial de bloque y un archivo especial de carcter? En el ejemplo que se da en la figura 1-17, el procedimiento de biblioteca se llama read y la misma llamada al sistema se llama read. Es esencial que ambos tengan el mismo nombre? Si no es as, cul es ms importante? El modelo cliente-servidor es popular en los sistemas distribuidos. Puede utilizarse tambin en un sistema de una sola computadora? Para un programador, una llamada al sistema se ve igual que cualquier otra llamada a un procedimiento de biblioteca. Es importante que un programador sepa cules procedimientos de biblioteca resultan en llamadas al sistema? Bajo qu circunstancias y por qu? La figura 1-23 muestra que varias llamadas al sistema de UNIX no tienen equivalentes en la API Win32. Para cada una de las llamadas que se listan y no tienen un equivalente en Win32, cules son las consecuencias de que un programador convierta un programa de UNIX para que se ejecute en Windows?

82

INTRODUCCIN

CAPTULO 1

27. Un sistema operativo porttil se puede portar de la arquitectura de un sistema a otro, sin ninguna

28. 29.

30. 31.

32.

modificacin. Explique por qu no es factible construir un sistema operativo que sea completamente porttil. Describa dos capas de alto nivel que tendr al disear un sistema operativo que sea altamente porttil. Explique cmo la separacin de la directiva y el mecanismo ayuda a construir sistemas operativos basados en microkernel. He aqu algunas preguntas para practicar las conversiones de unidades: (a) A cuntos segundos equivale un microao? (b) A los micrmetros se les conoce comnmente como micrones. Qu tan largo es un gigamicron? (c) Cuntos bytes hay en una memoria de 1 TB? (d) La masa de la Tierra es de 6000 yottagramos. Cunto es eso en kilogramos? Escriba un shell que sea similar a la figura 1-19, pero que contenga suficiente cdigo como para que pueda funcionar y lo pueda probar. Tambin podra agregar algunas caractersticas como la redireccin de la entrada y la salida, los canales y los trabajos en segundo plano. Si tiene un sistema personal parecido a UNIX (Linux, MINIX, FreeBSD, etctera) disponible que pueda hacer fallar con seguridad y reiniciar, escriba una secuencia de comandos de shell que intente crear un nmero ilimitado de procesos hijos y observe lo que ocurre. Antes de ejecutar el experimento, escriba sync en el shell para vaciar los bferes del sistema de archivos al disco y evitar arruinar el sistema de archivos. Nota: No intente esto en un sistema compartido sin obtener primero permiso del administrador del sistema. Las consecuencias sern obvias de inmediato, por lo que es probable que lo atrapen y sancionen. Examine y trate de interpretar el contenido de un directorio tipo UNIX o Windows con una herramienta como el programa od de UNIX o el programa DEBUG de MS-DOS. Sugerencia: La forma en que haga esto depender de lo que permita el SO. Un truco que puede funcionar es crear un directorio en un disco flexible con un sistema operativo y despus leer los datos puros del disco usando un sistema operativo distinto que permita dicho acceso.

También podría gustarte