Download 1 - Sistemas Operativos
Document related concepts
Transcript
1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1-¿Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad; el sistema operativo convierte al computador un equipo fácil de usar por el usuario. Eficiencia; El Sistema Operativo ayuda a que los recursos informáticos sean aprovechados mas eficientemente. Capacidad de Evolución; un sistema operativo debe estar construido o programado de tal forma que pueda tener un desarrollo efectivo y evolucionar con respecto a las nuevas tecnologías sin interferir en los servicios que brinda. Administración de Trabajos; Cuando existen varios programas en espera de ser procesados, el sistema operativo debe decidir el orden de procesamiento de ellos, así como asignar los recursos necesarios para su proceso. Administración de Recursos; Mediante está función el sistema operativo esta en capacidad de distribuir en forma adecuada y en el momento oportuno los diferentes recursos (memoria, dispositivos, etc.,...) entre los diversos programas que se encuentran en proceso, para esto, lleva un registro que le permite conocer que recursos están disponibles y cuales están siendo utilizados, por cuanto tiempo y por quien, etc. Control de Operaciones de E/S; Mediante esta actividad el sistema operativo decide que proceso hará uso del recurso, durante cuánto tiempo y en que momento. Recuperación de Errores; El sistema operativo contiene rutinas que intentan evitar perder el control de una tarea cuando se suscitan errores en la transferencia de información hacia y desde los dispositivos de entrada / salida. 2-¿Qué diferencia existe entre un mandato y una llamada al sistema? Introducción a los Sistemas Operativos Edgar A. Mendieta 2 Un mandato es una orden dada al sistema operativo, es una instrucción dada mediante una línea de comando o el llamado a un programa. Dicho mandato o instrucción levantara un o unos procesos al ejecutarse, de las cuales estos procesos para poder ejecutarse harán llamadas al sistema para hacer peticiones de recurso de hardware. De donde podemos decir que una llamada al sistema son las peticiones que hace el sistema operativo al momento de ejecutar un programa para darle recursos al proceso que levantara. 3-¿Cómo se solicita una llamada al sistema operativo? Los programas del usuario se comunican con el sistema operativo y se solicita un servicio mediante las llamadas al sistema. A cada una de estas llamadas le corresponde un llamado de la biblioteca que pueden llamar los programas del usuario ejemplo: Las llamada al sistema de Read que se utiliza en unix y MSDOS tiene tres parametros: El primero es el archivo correr . El segundo detrmina un almacen ( Buffer) en el cual colocar los datos del archivo El tercero indica el numero de bytes por leer 4-¿Cómo indica POSIX en un programa C el tipo de error que se ha producido en una llamada al sistema? ¿y Win32? Todo programa escrito en C para estándares POSIX “Portable Operating System for UNIX”. Para especificar el tipo de error hay una variable global de tipo int, errno que actualiza el procedimiento de llamada al sistema si hay error. El proceso que la recibe debe procesarla y ponerla a 0 al finalizar. El lenguaje C es un lenguaje multiplataforma, por lo que podemos decir que tanto en POSIX (Unix) o en Windows los indicadores de errores serán dado mediante la lecturas de librerías y en cada forma este enviara mensajes anunciando que se produjo el 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 Introducción a los Sistemas Operativos Edgar A. Mendieta 3 C.- DMA D.- RISC Primero que nada veamos de que nos habla o de que trata cada una: Microprogramación del Procesador; Es una estrategia para implementar la unidad de control de un procesador que consiste en programar al nivel de las operaciones de transferencia de registros. Cache de Memoria Principal; La memoria cache es mas que todo una memoria temporal, generalmente de existencia oculta y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente o previsible. DMA; Acceso Directo a Memoria. Consiste en una técnica, implementada bajo un microprocesador especializado, orientada a la transferencia de información desde un dispositivo periférico hasta la memoria principal, sin la utilización para controlarla de la CPU. La CPU solo actúa al principio y fin de dicha transferencia. RISC; Reduced Instruction Set Computing. Tecnologia de alto desempeño, en donde las instrucciones tienen una complejidad muy reducida. Bien, al ver un poco de las descripciones de cada una de las tecnologías descritas se puede decir que para que sea un buen sistema operativo este debe estar reacuerdo a la tecnología. Si bien ese cierto los sistemas operativos irán evolucionando dependiendo a la evolución del hardware. No hay que olvidar que referente a la tecnología se puede tener un Sistema Operativo específico, el cual buscara un mejor desarrollo de dicho equipo. Como se dijo anteriormente un buen Sistema Operativo debe basarse en la tecnología como un todo para buscar el buen aprovechamiento de los recursos existentes. Si se basa en cualquiera característica de un equipo se pueden dejar recursos sin explotar. Todas las técnicas descritas anteriormente serán de vital importancia para construir un Sistema Operativo. 6-¿El intérprete de mandatos de UNIX es interno o externo? Razone su respuesta con un ejemplo Introducción a los Sistemas Operativos Edgar A. Mendieta 4 Si lo vemos del lado de un usuario, administrador o programador el shell de Unix; intérprete de comandos o mandatos, interfaces de usuario y de otra manera se puede llamar el interlocutor del usuario con el kernel. Es una interface externa; ya que el usuario tiene una relación directa con él. A diferencia de otros Sistemas Operativos en los cuales el interprete de comando esta de forma oculta o interna. En los Sistemas Operativos basados en Unix el usuario puede interactuar de forma directa con el shell o interprete de comando. De otra manera se puede decir que el shell no es parte del sistema operativo, pero es útil y de gran ayuda. Sin el shell no podemos realizar llamadas al sistema mediante la introducción de ordenes, pero el sistema operativo puede funcionar sin tener shell; ya que habrá procesos que se ejecutaran sin necesidad que un usuario introduzca un mandato para que lo hagan. 7-¿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 en los Sistemas Operativos monolíticos son menos compleja que en los Sistemas divididos en capas; las instrucciones en los Sistemas Operativos monolíticos se pueden decir o llamar directas, ya que al un usuario ejecutar una instrucción esta es convertida de modo usuario a modo núcleo. Mientras que en las llamadas al sistema en Sistemas Operativos por capas se manejara por permisos para accesar capas inferiores. Si al momento de que un usuario ejecuta una instrucción las capas inferiores verificaran si dicha instrucción ejecutada por dicho usuario tiene permiso para accesar las capas inferiores del Sistema Operativo y hacer gestión de un recurso definido. 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 mas fácil de modificar ya que la división por capas me da menos complejidad al momento de modificar algo perteneciente a la capa que quiero modificar. El sistema monolítico al tener una programación donde los procesos se relacionan unos con los otros tendrá más complejidad para su modificación. Introducción a los Sistemas Operativos Edgar A. Mendieta 5 9-¿Debe ser un sistema operativo multitarea de tiempo compartido? ¿Y viceversa? Razone su respuesta. El fin que buscan los sistemas operativos para su evolución es el de aprovechar al máximo los recursos de hardware. Por esta razón los Sistemas Operativos multitarea y de tiempo compartido son importantes para las tecnologías actuales; ya que se pueden ejecutar mas procesos, los recursos serán mejor aprovechados y distribuidos. 10-¿Qué ventajas considera que tiene escribir un sistema operativo utilizando un lenguaje de alto nivel? Los lenguajes de alto nivel son fáciles y rápidos de comprender por su poca complejidad al momento de introducir mandatos o sentencias en el código fuente de un programa. Si se programara un Sistema Operativo utilizando lenguajes de alto nivel seria ventajoso para el programador y usuario: menos líneas que escribir y más fácil de comprender lo que se hace en el equipo. Pero un lenguaje de alto nivel no nos ayudara a gestionar o a tener una buena planificación de nuestros procesos. Los lenguajes de alto nivel necesitan la ayuda de lenguajes de bajo nivel (código maquina) para gestionar los recursos a utilizar por las sentencias indicadas. Si lo vemos de manera a un buen administrador estos lenguajes no serán muy ventajosos, ya que lo que buscamos es un rendimiento al máximo de nuestro Sistema Operativo y de nuestro equipo, cosa que un lenguaje de nivel alto no nos podrá dar. 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. Los servicios más genéricos que un sistema operativo puede prestar pueden ser: Interfaces de Usuarios. El Sistema Operativo le brinda interfaces al usuario para poder que este interactué con él. De esta forma el usuario tendrá una manera más cómoda, ya que no tendrá que estar ejecutando comandos de lenguaje máquina para ejecutar otros Introducción a los Sistemas Operativos Edgar A. Mendieta 6 procesos. Este servicio es uno de los más importantes que presta el Sistema Operativo. Acceso a Datos, Librerías, Directorios. Este servicio es prestado por todos los sistemas operativos, consiste en que el usuario pueda accesar cierta información del sistema operativo. Muchas veces esta información no será accesada directamente, si no que será mediante sentencias o mandatos dados por el usuario. Muchas veces los programas de usuario no tendrán acceso al estos datos del Sistema Operativo por permisos dados a los mismos. Seguridad. Todo Sistema Operativo debe dar o brindar seguridad a todos los usuarios así como a él mismo. Toda la información del sistema no debe ser accesada por todos los que accesen dicho sistema. A la vez a cada usuario se le debe brindar la protección de sus datos. Gestión de Memoria. El sistema operativo se encargara de brindar apoyo o darle este servicio a todos los usuarios y procesos ejecutados por el mismo. El sistema se encargara de asignar espacios ya sea de memoria principal, memoria virtual o memoria física en el disco para cada usuario. Esta opción puede que no esté para algún programa de usuario dependiendo del grado de seguridad que tenga. Multitareas. Todo Sistema Operativo debe ser capaz de brindar servicios para que cada usuario pueda ejecutar múltiples tareas a la vez. La limitante para el usuario y sus programas serán dadas por los recursos del equipo. Introducción a los Sistemas Operativos Edgar A. Mendieta