viernes, 6 de julio de 2007

Tarea #1

Tarea # 1

Introducción A Los Sistemas Operativos.

Ricardo Pérez Aguirre

4-739-1352

1. ¿Cuáles son las principales funciones de un sistema operativo?

El Sistema Operativo crea el entorno en el que se ejecutan los procesos y para ello ofrece tanto a los procesos como a los usuarios una serie de funciones que varían mucho de unos sistemas a otros.

Se pueden agrupar en tres grandes categoría:

*Gestión de los recursos de la computadora: asignación de recursos, protección y contabilidad.

*Ejecución de servicios para los programas

*Ejecución de los mandatos de los usuarios

2. ¿Qué diferencia existe entre un mandato y una llamada al sistema?

La diferencia radica en que los mandatos son ejecutados por los usuarios y las llamadas al sistema son realizadas por los procesos que se están ejecutando en el sistema operativo.

3. ¿Cómo se solicita una llamada al sistema operativo?

La "llamada al sistema" (System Call) es el mecanismo usado por un programa aplicativo para solicitar un servicio al Sistema Operativo.

Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el procesador transfiera el control a un código privilegiado, previamente especificado por el mismo código. Esto permite al código privilegiado especificar donde el va a ser conectado así como el estado del procesador.

En los sistemas operativos bajo norma POSIX o similares, algunas llamadas al sistema muy usadas son open, read, write, close, wait, exec, fork, exit y kill. Los sistemas operativos actuales tienen cientos de llamadas, por ejemplo Linux 2.x y FreeBSD tienen mas de 300.

4. ¿Cómo indica POSIX en un programa C el tipo de error que se ha producido en una llamada al sistema? ¿Y Win32?

· POSIX: devuelve 0 en caso de éxito ó –1 en caso de error.

· Win32: devuelve en general true en caso de éxito y false en caso de error.


5. ¿Cuál de las siguientes técnicas hardware tiene mayor influencia en la construcción de un sistema operativo? Razone su respuesta

A continuación presento la definición de cada una de estas técnicas hardware:

· Microprogramación del procesador: es la realización de las instrucciones convencionales (aritméticas, booleanas, de comparación y de bucle) son realizadas paso a paso por un intérprete que se ejecuta en el nivel de microprogramación, consta de dos componentes la ruta de datos y la sección de control.

· Caché de memoria Principal: es invisible para el sistema operativo, interactúa con otras partes del hardware de gestión de memoria. Es más, muchos principios utilizados en la memoria virtual son también aplicable a esta.

· DMA (Direct Memory Access): Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.

· RISC (Computadora con reducido conjunto de Instrucciones): RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse.

6. ¿El intérprete de mandatos de UNIX es interno o externo? Razone su respuesta con un ejemplo

El intérprete de comandos es externo pongo como ejemplo si existe un usuario que desea ejecutar una orden o comando tendrá que escribirlo en un Terminal y luego el sistema lo ejecutara.

7. ¿Dónde es más compleja una llamada al sistema, en un sistema operativo monolítico o en uno por capas?

Una llamada al sistema es más compleja en un sistema monolítico.

8. ¿Qué tipo de sistema operativo es más fácil de modificar, uno monolítico o uno por capas? ¿Cuál es más eficiente?

Un sistema monolítico es más fácil de modificar pero al contrario el sistema por capas es mucho mas eficiente.


9. ¿Debe ser un sistema operativo multitarea de tiempo compartido? ¿Y viceversa? Razone su respuesta.

Si porque al ser un sistema de multitarea y tiempo compartido se pueden tener muchas tareas en ejecución y aprovechar al máximo los recursos de mi sistema.

10. ¿Qué ventajas considera que tiene escribir un sistema operativo utilizando un lenguaje de alto nivel?

Como en los lenguajes de alto nivel la escritura de las líneas de código se asemeja mas al lenguaje natural humano seria más fácil crear un sistema operativo a alto nivel, y no a un nivel inferior ya que seria mucho mas complicado.

11. Liste cinco servicios que un sistema operativo presta. Explique cómo cada uno ofrece comodidad a los usuarios, y también en que casos sería imposible que programas en el nivel de usuario proporcionen estos servicios.

No hay comentarios: