Roberto O. Martínez O.
- ¿Cuáles son las principales funciones de un sistema operativo?
- Gestión de la CPU.
La gestión de un sistema operativo monoprogramado es simple.
Los sistemas operativos multiprogramados o de tiempo compartido, realizan:
- Gestión de la memoria principal.
El Sistema operativo debe mantener una estructura de datos donde almacena la información sobre qué zona de la memoria ocupa cada proceso, así como de las zonas de la memoria libres.
- El sistema de ficheros.
Motivos para la utilización de memoria secundaria:
- Existen datos que deben de sobrevivir a la ejecución de un programa. La solución es almacenar estos en memoria secundaria.
- El sistema operativo facilita notablemente el trabajo con la memoria secundaria, al presentar una interfaz de uso simple.
- Gestión de la entrada/salida.
Es misión del sistema operativo gestionar directamente los periféricos, ofreciendo al programador unos servicios para su utilización mucho más sencillos que los que ofrecen éstos a nivel hardware.
- ¿Qué diferencia existe entre un mandato y una llamada al sistema?
Los mandatos sirven para crear y administrar procesos, manejar la E /S, administrar el almacenamiento secundario, gestionar la memoria principal, acceder al sistema de archivos, proteger el sistema y trabajar con redes.
Las llamadas al sistema son la interfaz entre un proceso y el sistema operativo. Estas llamadas generalmente están disponibles como instrucciones en lenguaje ensamblador y casi siempre se listan los manuales empleados por quienes programan en ese lenguaje.
- ¿Cómo se solicita una llamada al sistema operativo?
Se solicita mediante un mecanismo de interrupciones. Cuando es un proceso en ejecución el que la solicita, éste utiliza una instrucción TRAP que genera una interrupción, se consulta la RTI y se buscan en la memoria los argumentos de las llamadas.
Cuando se programa en un lenguaje de alto nivel, la solicitud de servicios al sistema operativo se hace mediante una llamada a una función determinada, que se encarga de generar la llamada al sistema y el trap correspondiente.
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: las funciones normalmente devuelve 0 en caso de éxito ó –1 en caso de error.
Win32: las funciones devuelven 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.- Microprogramación del procesador
B.- Cache de la memoria principal
C.- DMA
D.- RISC
- Microprogramación del procesador: es la realización de las instrucciones convencionales (aritméticas,booleanas, de miento, de comparación y de bucle) son realizadas paso a paso por un interprete que seejecuta en el nivel de microprogramación, consta de dos componentes la ruta de datos y la sección decontrol.
- Caché de memoria Principal: es invisible para el sistema operativo, interactúa con otras partes del hardwarede gestión de memoria.
- DMA (Direct Memory Access): su función se puede llevar a cabo por medio de un módulo separado sobre elbus del sistema o puede estar incorporado dentro de un módulo de E/S.
- RISC (Computadora con Reducido Conjunto de Instrucciones):los programas de usuario se compilan ensecuencia de microinstrucciones y son ejecutados directamente por el hardware sin ninguna intervención deintérprete.
La microprogramación de los procesadores posiblemente tenga mayor influencia en la construcción de SOS, ya que ofrecela posibilidad de administrar de manera eficiente el sistema completo dominando los aspectos relacionados con laoptimización del tiempo de respuesta y la disminución del tiempo libre que se tenga entre tareas.
- ¿El intérprete de mandatos de UNIX es interno o externo?. Razone su respuesta con un ejemplo.
Para mi puede cumplir ambas funciones, por ej,.
Comandos externos, por ejemplo: ls, cat, mkdir, etc.
-son programas ajenos al shell
-cuando se lanzan inician un nuevo proceso
-se buscan en los directorios indicados en la variable PATH
Comandos internos (builtin commands), por ejemplo: cd, bg, alias, eval, exec, pwd, etc.
-se ejecutan en el mismo proceso del shell, sin lanzar un nuevo proceso
-ver el manual del shell para más información (o para el shell bash: man bash-builtins, o el comando help).
- ¿Dónde es más compleja una llamada al sistema, en un sistema operativo monolítico o en uno por capas?
Las llamadas al sistema son más complejas en un sistema monolítico debido a su carencia de estructura, ya que para poder llamar al sistema ocurre lo siguiente: los parámetros deben colocarse en lugares bien definidos, como en los registros o en la pila, se ejecuta la instrucción especial trampa de nombre llamada al núcleo o llamada al supervisor, luego la instrucción cambia la máquina de modo usuario a modo núcleo y transfiere el control al sistema operativo, se examinan los parámetros de la llamada para determinar cual de ellas desea realizar, el SO analiza la entrada que un apuntador que realiza n-enésima llamada al sistema identifica el procedimiento de servicio, la llamada al sistema termina y el control regresa al programa del usuario. Esto no sucede en un sistema por capas.
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?
El de por capas es más fácil de modificar porque no tenemos que concentrarnos en todas las capas para modificar algo, sino que podemos modificar una capa sin preocuparnos de las otras. La mas eficiente es por la de capas también pues esta bien organizado por capa o por niveles, y un capa no necesita saber como se implemente la capa sobre la cual se construye, únicamente necesita conocer la interfaz que ofrece.
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 del sistema.
10. ¿Qué ventajas considera que tiene escribir un sistema operativo utilizando un lenguaje de alto nivel?
La ventaja es que los lenguajes de alto nivel es más fácil para los programadores ya que tiene un lenguaje más próximo al lenguaje natural de los humanos, y así también es más fácil su mantenimiento.
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.
Ejecución de Programas: el sistema podrá cargar un programa en memoria y ejecutarlo.
Operaciones de E/S: programa en ejecución podría requerir E/S. Esta podría implicar el uso de un archivo o un dispositivode E/S. Para el usuario es cómodo porque no tiene que administrar los dispositivos de E/S, el proceso de comunicacióncon los dispositivos es totalmente transparente para el usuario.
Manipulación de archivos: el sistema crea, elimina, lee y escribe archivos específicos identificados con su nombre. Elusuario tiene mejor control dentro del sistema de archivos, fácil manejo y acceso al mismo sin tener que especificar rutasde directorios, o archivos.
Comunicación: el usuario se evita el uso de búsqueda de la información requerida, las direcciones, rutas de acceso ydemás. En el caso de que cada programa tendría que tener algoritmos de búsqueda individuales más todo el sistema derutas de acceso etc.
Detección de errores: el sistema operativo es capaz de detectar errores infórmalos y eliminarlos. Esta siempre pendiente delos posibles errores. Los procesos internos son invisibles al usuario lo que lo imposibilita para la detección de errores antesde que sucedan por lo cual es más fácil que el SO lo haga.
No hay comentarios:
Publicar un comentario