Site hosted by Angelfire.com: Build your free website today!

Introducción

 

En este cuestionario, se presentará las principales definiciones de un sistema operativo, las diferencias que existen que pueden existir entre un mandato y una llamada al sistema, la manera como se solicita una llamada a los diferentes sistemas operativos, la manera de identificar algunos componentes, las consideraciones que debemos de tomar a la hora de hacer un sistema operativo. Los servicios que estos pueden brindar, se puede decir que todas estas ayudan a tener un sentido más claro de lo que es un sistema operativo.

 

 

 

Cuestionario Nº1

 

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

 

      R:.  Las principales funciones de los sistemas operativos son:

¯     Multiacceso

¯     Gestión de Memoria

¯     Secuenciamiento de Trabajos

¯     Control de Procesos

¯     Intérprete de OSCL

¯     Gestión de Operaciones de Entrada Salida

¯     Gestión de dispositivos y ficheros

¯     Gestión de interrupciones

¯     Control de errores y protección

¯     Contabilidad del sistema

 

 

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

 

R:. El mecanismo real de comunicación entre los procesos y el núcleo, el que usan todos los procesos, son las llamadas al sistema.  Un mandato es un comando que le envías al sistema para que realice una tarea. una interrupción es una llamada  que se le hace al sistema cuando ocurre una evento

 

 

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

 

R:. Se puede decir que las llamadas al sistema en un programa de usuario, o son una instrucción especial o están encubiertas en llamadas a funciones de librería

A la hora de realizar una llamada, se tiene que especificar la operación que se desea realizar y es necesario que se le de los parámetros especiales y pertinentes a esta.

Se puede hacer de tres formas:

¯     Dejar el valor de dichos parámetros en los registros del sistema. Puesto que el sistema tiene acceso a los registros puede leerlos de ahí 11.

¯     Guardar el valor de los parámetros en memoria y meter en los registros la dirección donde se guardan dichos parámetros.

¯     Utilizar la pila de ejecución del propio Sistema Operativo, aunque hay máquinas en las que el sistema de protección no permite esto.

 

 

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

 

R:. La forma de uso de una llamada al sistema es idéntica a cualquier otra función del lenguaje C. La mayoría de las llamadas devuelven un valor que suele indicar si la operación se ha efectuado con éxito o no.

Cuando se produce un error al realizar una llamada al sistema, ésta devuelve el valor -1. Todo proceso contiene una variable global llamada errno, de manera que cuando una llamada al sistema termina de forma satisfactoria, el valor de esta variable permanece inalterado, pero cuando la llamada falla en errno, se almacena un código de error.

ERRNO no da información detallada sobre el error que se ha producido.

Por otro lado, existe una función, perror(), que describen los errores que se producen en las llamadas del sistema.

EL  API de programación de win32, esta API es común (con ciertas diferencias mínimas) en todos los sistemas operativos Windows de 32 bits (Windows 98/NT/2000/XP), e incluye un gran número de funciones, desde manejo de ficheros y procesos hasta funciones gráficas.

 

 

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

 

R:.  Las definiciones son:

A.- Microprogramación del procesador: es un mecanismo, en donde se le especifican todas las funciones que un procesador pueden hacer

B.- Cache de la memoria principal: Es un tipo de memoria donde se guardan datos que la PC necesita para trabajar. La memoria principal de la PC (RAM) y la memoria caché son iguales en muchos aspectos; la diferencia está en el uso que se le da a la caché

C.- DMA: es el controlador el que se encarga directamente de transferir los datos entre el periférico y la memoria principal, sin requerir intervención alguna por parte del procesador.

D.- RISC: (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.

Todas de alguna manera influencian grandemente al sistema operativo, ya que a la hora de hacer un Sistema operativo hay que tomar en cuenta la capacidad del procesador, el acceso a memoria y la estructura que tiene un computador.

 

 

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

 

R:. En la mayoría de las exploraciones en el mundo de UNIX, estará hablando con el sistema a través del uso de un intérprete de comandos.  Un intérprete de comandos es simplemente un programa que toma la entrada del usuario (p.ej. las órdenes que teclea) y las traduce a instrucciones.

Cuando se hace una llamada al sistema operativo se entra en su núcleo, pero hay más programas que no forman realmente parte del sistema operativo, como linkadores, compiladores, etc. El intérprete de comandos tampoco pertenece al sistema operativo pero todos los sistemas operativos están asociados a uno. Cuando un usuario inicia una sesión, arranca el intérprete de comandos (shell), que presenta el símbolo ‘>’. Cuando le damos una orden, se crea un proceso hijo, y al acabar se vuelve al proceso del intérprete de comandos.

La shell es un intérprete de líneas de comando.  Los comandos tienen la siguiente forma:  cmd  opc arg  donde:

Cmd: es el nombre del comando (ej: ls)

Opc es la lista de las opciones (ej: -al)

Arg es la lista de los argumentos (ej: /)

 

 

 

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

 

R:. Las llamadas más complejas se realizan en un sistema operativo en capas, ya que la monolítica usa un parámetro específico como el Syscall. Mientras el encapas se usa un sistema de anillos se tiene que usar en cada uno una apertura, conocida como puerta o trampa, por donde entran las llamadas de capas interior. De manera que estarán mas protegidas las capas internas. 
 

 

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?

 

R:. El sistema operativo más fácil de manejar es  uno por capas y a la vez es más eficiente ya que se dividió el sistema operativo en pequeñas partes que forman un nivel o capa, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interfase con el resto de elementos. Estas funciones se implementan en módulos, cada uno con sus interfaces y sus estructuras de datos bien definidas. Luego, los distintos módulos se agrupan en las distintas capas o niveles.

 

 

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

 

R:. Si debe ser ya que en los sistemas operativos multitarea de tiempo compartido, cada tarea recibe la atención del microprocesador durante una fracción de segundo, para poder mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Esto le da una ventaja  a este tipo de sistema operativo ya  que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, por lo que las operaciones de multitareas de tiempo compartido parecen ser simultáneas.

 

 

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

 

R:. Unix y la mayor parte de los sistemas q se ejecutan en el, están escrito en lenguaje C y han servido para demostrar que un sistema operativo interactivo no necesariamente es grande y caro, ya sea en equipo o en la cantidad de código, ya que puede utilizarse en minicomputadoras de costo reducido, y el desarrollo inicial de su sistema principal requirió de 2 años hombre.  La razón de la creciente popularidad de UNIX reside en que logra combinar facilidad de uso y eficiencia, y en la gran cantidad de ayudas utilerías que tiene para programar.  Con UNIX es sencillo obtener comunicación y sincronización entre procesos, lo que en otros sistemas operativos, requiere de programación dedicada y  exclusiva en los lenguajes de control lo que incluso en los mas limitados, es virtualmente imposible de lograr.
 
En general, el sistema UNIX emplea programas especiales (escritos en C) conocidos como manejadores (drivers) para atender a cada familia de los dispositivos de E/S.  Los procesos se comunican con los dispositivos mediante llamadas a su manejador.  Además, desde el punto de vista de los procesos, los manejadores aparecen como si fueran archivos en los que se lee o escribe, con esto se logra homogeneidad y elegancia en el diseño.

 

 

 

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.

R:. Cinco servicios que un sistema operativo presta son:

1.    Ejecución de programas.

2.    Acceso a dispositivos de E/S.

3.    Acceso controlado a dispositivos.

4.    Accounting o Estadísticas:

¯     Colección de estadísticas de uso de CPU, rendimiento del sistema.

5.    Detección y respuesta a errores:

¯     Errores de hardware (ejemplo: error memoria, fallas de dispositivos)

¯     Errores de software (ejemplo: overflow, fuera de los límites de memoria)