1¿Cuáles son las principales funciones de un sistema operativo?
Respuesta:
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:
Ø Proporcionar comodidad en el uso de un computador.
Ø Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
Ø Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Ø Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades.
2. ¿Qué diferencia existe entre un mandato y una llamada al sistema?
Respuesta:
La diferencia entre estas 2 órdenes es
Ø El mandato es una orden que el usuario le envía al sistema operativo para que realiza una función.
Ø
Ø Por otro lado una llamada al sistema es el procedimiento en el cual los programas, apoyados en el sistema operativo, acceden a los recursos que necesitan.
3¿Cómo se solicita una llamada al sistema operativo?
Respuesta:
La forma en que se realiza una llamada al sistema consiste en colocar una serie de parámetros en un lugar específico (como los registros del procesador), para después ejecutar una instrucción del lenguaje máquina del procesador denominada trap (en castellano, trampa). La ejecución de esta instrucción máquina hace que el hardware guarde el contador de programa y la palabra de estado del procesador (PSW, Processor Status Word) en un lugar seguro de la memoria, cargándose un nuevo contador de programa y una nueva PSW.
Este nuevo contador de programa contiene una dirección de memoria donde reside una parte (un programa) del sistema operativo, el cual se encarga de llevar a cabo el servicio solicitado. Cuando el sistema operativo finaliza el servicio, coloca un código de estado en un registro para indicar si hubo éxito o fracaso, y ejecuta una instrucción return from trap, esta instrucción provoca que el hardware restituya el contador de programa y la PSW del programa que realizó la llamada al sistema, prosiguiéndose así su ejecución.
4. ¿Cómo indica POSIX en un programa C el tipo de error que se ha producido en una llamada al sistema? ¿y Win32?
Respuesta:
En caso de error: Las llamadas al sistema devuelven -1 ó NULL (si la función devuelve tipo puntero) Deben siempre comprobar después de una llamada si todo es correcto, para ello Linux proporciona una variable errno y una función perror():
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
Respuesta:
El Microprogramación del procesador tiene mayor influencia, ya que involucra lo que son las operaciones básicas que un computador debe realizar para propósito general mientras que los demás ya serían los componentes que se le agregan para que las operaciones que vaya a realizar el procesador sea más eficiente.
6. ¿El intérprete de mandatos de UNIX es interno o externo? Razone su respuesta con un ejemplo.
Respuesta:
El intérprete de mandatos de Unix es externo ya que su función es hacer una interacción del usuario con el SO. Por ejemplo cuando un usuario quiere realizar una operación éste escribe un comando y se lo envía al SO para su interpretación.
7. ¿Dónde es más compleja una llamada al sistema, en un sistema operativo monolítico o en uno por capas?
Respuesta:
Una llamada al sistema en un sistema operativo por capa es mucho mas completo ya que como su nombre lo dice este sistema tiene varias capa por ello tiene que pasar por muchos mas procedimientos que en un sistema monolítica.
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?
Respuesta:
Los mas fáciles de modificar son los sistema monolítico debido a su estructura que le permite que se modifique la capa necesaria sin tener que revisar las otras capas, y permite que el programador sea más eficiente concentrándose en arreglar la capa deseada sin preocuparse en tener que modificar otras si no los necesita, pero los sistemas operativos por capas son más eficientes, ya que el intérprete de comandos asimila los mandatos, y luego de ellos haber pasado por cada uno de los niveles la orden habrá sido completado.
9. ¿Debe ser un sistema operativo multitarea de tiempo compartido? ¿Y viceversa? Razone su respuesta.
Respuesta:
En realidad, los sistemas operativos de tiempo compartido o time sharing se caracterizan además de realizar n tareas a la vez, dar servicio a n cantidad de usuarios, por lo cual el SO deberá conmutar los recursos entre los distintos procesos.
Los SO multitareas pueden y deben ser de tiempo compartido, siempre y cuando sean fáciles de entender y operar, seguros y lo suficientemente eficientes como para satisfacer las necesidades de todos los usuarios en el momento.
10-¿Qué ventajas considera que tiene escribir un sistema operativo utilizando un lenguaje de alto nivel?
Respuesta:
Las ventajas 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.
Respuesta:
Ø Acceso a los dispositivos de E/S: El SO proporciona una interfaz uniforme que oculta estos detalles, de modo que el programador pueda acceder a los dispositivos utilizando lecturas y escrituras simples.
Estos accesos son administrado sólo por el SO interno, sería imposible que un programa hiciera esto en el caso de que varios programas al mismo tiempo requieran de los mismos dispositivos de E/S.
Ø Acceso al sistema: controla el acceso al sistema como un todo y a los recursos específicos del sistema.
Esto también es administrado por el SO y no por programas en el nivel de usuario.
Ø Creación de programas: El SO ofrece múltiples funcionalidades y servicios, tales como los editores y los depuradores, para ayudar al programador en la creación de programas.
En programas a nivel de usuarios es imposible porque es el SO mismo que provee los mecanismos para que un programa creado por el usuario o programador se ejecute
Ø Detección y respuesta a errores: Un sistema informático que está en funcionamiento puede producirse una serie de errores. En cada caso el SO debe dar una respuesta que elimine la condición de error con el menor impacto posible sobre las aplicaciones que están en ejecución.
Cuando hay un posible error de cualquier tipo en un programa de aplicación sólo el SO es el encargado de detectar y arreglar las fallas.
Ø Contabilidad: Un buen SO debe recoger estadísticas de utilización de los diversos recursos y supervisar parámetros de rendimiento tales como el tiempo de respuesta. En un sistema multiusuario, la información puede ser utilizada para la carga en cuotas. En un programa a nivel de usurario no se le aplica esto ya que es el SO el que está encargado de hacer las contabilidades de las funciones en que se están ejecutando en la computadora
No hay comentarios:
Publicar un comentario