INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.
Responda las siguientes preguntas:
1. ¿Cuáles son las principales funciones de un sistema operativo?
Las funciones que tiene un Sistema Operativo varían unos a otros, pero las que todos tienen que tener por defecto son:
Multiacceso
Gestión de memoria
Secuenciamiento de trabajos
Control de procesos
Intérprete de OSCL
Gestión de operaciones de E/S
Gestión de dispositivos y ficheros
Gestión de interrupciones
Planificación
Control de errores y protección
Contabilidad del sistema, etc.
2. ¿Qué diferencia existe entre un mandato y una llamada al sistema?
El mandato es una orden en que se debe ejecutar el programa ya sea que lo llame un proceso en particular o no. Mientras que una llamada depende de que ésta se ejecute si hay una interrupción.
3. ¿Cómo se solicita una llamada al sistema operativo?
Por lo general los sistemas operativos emiten llamadas al sistemadirectamente desde un programa escrito en un lenguaje de alto nivel, por consiguiente las llamadas casi siempre se asemejan predefinidas a funciones o subrutinas. Éstas podrían generar una llamada a una rutina especial de tiempo de ejecución que emite la llamada al sistema.
Las llamadas al sistema se efectúan de diferentes maneras dependiendo del computador. En frecuencia se requiere más información que la identidad de la llamada deseada. El tipo exacto y la cantidad de información varían según el sistema operativo y la llamada en cuestión. Por ejemplo para obtener entradas, tal vez tengamos que especificar el archivo o dispositivo que se usará como fuente, y la dirección y longitud del buffer de memoria en el que se colocarán las entradas leídas. Se usan tres métodos básicos para pasar parámetros al sistema operativo en registro, bloque o tabla en memoria y la pila.
4. ¿Cómo indica POSIX en un programa C el tipo de error que se ha producido en una llamada al sistema? ¿Y Win32?
En POSIX, las funciones normalmente devuelven cero (0) en caso de éxito o menos uno (-1) en caso de error y en Win32, las funciones devuelven cierto en caso de éxito y falso en caso de error (true/false).
5. ¿Cuál de las siguientes técnicas hardware tiene mayor influencia en la construcción de un sistema operativo? Razone su respuesta
- Microprogramación del procesador
- Cache de la memoria principal
- DMA
- RISC
Pienso que la Microprogramación del procesador tiene mayor influencia ya que involucra operaciones básicas que un computador debe realizar para propósitos generales mientras que los demás ya serían los componentes que se le agregan para que las operaciones que vaya a realizar el procesador sean más eficientes.
6. ¿El intérprete de mandatos de UNIX es interno o externo?. Razone su respuesta con un ejemplo
El intérprete de mandatos de UNIX es externo; su función es hacer una interacción entre el usuario y el sistema operativo. Un ejemplo: Si el usuario quiere realizar una operación, éste escribe el comando y se lo envía al sistema operativo 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?
Una llamada es más compleja en un sistema monolítico ya que está formado por un conjunto de rutinas que se compilan por separado, se llaman entre sí y se montan juntas para formar un todo. Cada rutina tiene una interfase con las demás, o sea que cuando una rutina llama a otra la primera le pasa una serie de parámetros y cuando la rutina llamada finaliza su tarea, devuelve el resultado a la rutina madre.
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 operativo por capas es más fácil de modificar, ya que este 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 el más eficiente es el monolítico porque están hechos a medida para correr más rápido en su ejecución y gestión.
9. ¿Debe ser un sistema operativo multitarea de tiempo compartido? ¿Y viceversa? Razone su respuesta.
En realidad sí debe ser, porque multitarea de tiempo compartido conllevan la característica de ejecución de varias tareas en un computador y reflejan el hecho de que el tiempo del procesador se comparte entre los diversos usuarios.
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 son más fáciles de comprender y utilizar para los programadores ya que tiene un lenguaje más próximo al lenguaje expresivo humanos y también son más fáciles en cuanto a 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.
Acceso a los dispositivos de E/S: El sistema operativo proporciona una interfaz uniforme que oculta estos detalles, de modo que el programador pueda acceder a los dispositivos utilizando lecturas y escrituras simples.
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 sistema operativo y no por programas en el nivel de usuario.
Creación de programas: El sistema operativo 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.
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 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.
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.