🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información...

UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación Respuestas Orientadoras e incompletas (en algunos casos) a las preguntas de revisión. Favor tomarlas como orientadoras. Clase 1 – Revisión 1. ¿Cuáles son los elementos básicos de un computador? -Procesador (CPU): controla el funcionamiento del computador, realiza funciones de procesamiento de datos, intercambia datos con la memoria principal. -Memoria Principal: Almacena datos y programas, cojunto de ubicaciones secuenciales numeradas, volatil (cuando se apaga el computador se pierde su contenido) a diferencia de la memoria secundaria (disco rígido, por ejemplo) la cual mantiene su contenido aunque se apague el computador. -Modulos E/S: transfieren datos entre el computador y su entorno externo. El entorno externo esta formado por dispositivos, de todo tipo, dispositivos de memoria secundaria (discos), de comunicaciones y terminales. -Bus del Sistema: interconexion del sistema, comunica procesador con memoria principal y modos E/S. 2. ¿Qué es una interrupción? Mecanismo por el cual otros componentes (ej. módulos E/S) pueden interrumpir la normal ejecución de la CPU. 3. ¿Cómo pueden tratarse múltiples interrupciones? Pueden ocurrir n interrupciones al mismo tiempo. Solución1: Inhabilitar interrupciones mientras se trata una, las que ocurran quedan pendientes y se tratarán luego de que termine la interrupcion actual. Solución elegante, pero no tiene en cuenta las prioridades o criticidad de las interrupciones (por ejemplo, las comunicaciones, que deben ser atendidas rápidamente para hacer lugar a la recepción de nuevos datos y evitar pérdida. Solución 2: Manejar prioridades; una interrupción de prioridad más alta puede interrumpir a una de más baja prioridad. 4. ¿Qué es la memoria cache y qué posición ocupa en la jerarquía de memoria? La memoria cache es una memoria de alta velocidad, cara, pequeña, rápida, invisible para el SO, que se aproxima mucho más que la memoria principal a la velocidad de los registros de la CPU. En la jerarquía de memoria se encuentra por encima de la memoria principal y por debajo de los registro de la CPU. Explotando el principio de proximidad o proximidad de referencias (durante la ejecucion de un programa, las referencias de memoria del procesador -tanto a instrucciones como a datos- tienden a agruparse. Debido a los bucles iterativos, rutinas, etc. Durante un período largo de tiempo, estas agrupaciones van cambiando, pero en un período corto, el procesador esta trabajando principalmente con un grupos fijos de referencias a memoria. Esto motiva al diseño de la cache.) se pueden copiar desde la memoria principal bloques de memoria en la memoria cache para que la CPU la acceda desde allí y de esta forma tener un mejor rendimiento. 5. ¿Qué relación hay entre el costo de memoria, su velocidad, su tamaño y la jerarquía de memoria? Capacidad, Velocidad, Costo son interdependientes. A mayor velocidad, mayor costo, menor capacidad. A menor velocidad, menor costo, mayor capacidad. 6. ¿Por qué cree Ud. que se desarrollo la técnica de DMA? ¿Por qué no continuar sólo con el tratamiento de interrupciones? Para mejorar el rendimiento, de esta forma, la CPU no necesita encargarse de la transferencia de datos desde el dispositivo a la memoria principal, sino que dicha tarea es delegada al modulo DMA quien realiza la tarea con una mínima intervención por parte de la CPU, la cual queda libre para ejecutar otros procesos. Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 1 de 2 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación 7. Describa brevemente las tres técnicas para llevar a cabo operaciones de I/O. -E-S programada: el módulo de E-S no lanza interrupciones sobre la CPU, sino que la CPU chequea periódicamente si se ha completado la operación de E-S para transferir los datos hacia/desde la memoria principal. Consume mucho tiempo (espera activa), ocupa la CPU en forma innecesaria. -E-S dirigida por interrupciones: la CPU envía señal de E-S al módulo de E-S correspondiente y continúa con otra tarea. El módulo de E-S (en paralelo) realiza la operación de E-S y cuando ésta esta lista, envía la señal de interrupción a la CPU; ésta interrumpe -temporariamente- la ejecución del proceso actual, realiza la transferencia de datos y reanuda la ejecución del proceso interrumpido. Elimina espera innecesaria de la CPU, cada palabra a transferir del módulo E-S a la memoria principal debe pasar por la CPU. -DMA: DMA puede ser un módulo separado, implementado sobre el bus del sistema o bien puede estar incorporado dentro de un módulo de E-S. Cuando la CPU necesita realizar una operación de E-S, señala al DMA indicando: -Tipo de operación ( read / write) -Dirección del dispositivo de E-S -Dirección inicial de memoria principal -Número de palabras a escribir / leer la CPU continúa con otra tarea. A partir de allí (en paralelo) el módulo DMA hace la operación de E-S en forma independiente, transfiere los datos y cuando la operación ha finalizado, envía señal de interrupción a la CPU. De esta forma, los datos no pasan a través de la CPU para ser transferidos desde/hacia la memoria principal. Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 2 de 2 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación Respuestas Orientadoras e incompletas (en algunos casos) a las preguntas de revisión. Favor tomarlas como orientadoras. Clase 2 – Revisión 1. ¿Cómo funciona una pila o stack? ¿Cuál es su punto de acceso, su límite y su base? ¿Es una lista de tipo LIFO o FIFO? Una pila es un conjunto ordenado de elementos, en donde el último elemento en entrar al conjunto es el primero en salir, se puede implementar como una lista de tipo LIFO (last-in, first-out). Su punto de acceso es a través de la cima (desde allí se pueden agregar o quitar elementos)... El uso habitual es: push a push b push c...... pop c pop b pop a 2. ¿Qué utilidad puede tener la utilización de una estructura de tipo pila o stack? ¿Qué implicaciones en cuanto a la programación tiene este tipo de estructura? Tiene gran aplicación en la ejecución de procesos, por ejemplo, en un sistema multiprogramado, la cpu puede estar ejecutando el proceso A, supongamos que éste realiza una operación de E-S, la cpu puede "apilar" toda la información del proceso A, interrumpirlo, poner en ejecución el proceso B y si luego que quiere retomar la ejecución del proceso A en el punto en el que había quedado, se puede "desapilar" la información del proceso A. Las implicancias en cuanto a la programación estan indicadas en el punto anterior, en cuanto al orden de "apilamiento" que hay que respetar, si apilo los datos de los registros a,b,c debo desapilarlos en el orden inverso (c,b,a). 3. ¿Qué relación hay entre una pila o stack y las operaciones PUSH y POP? Push -> apilar, poner Pop -> desapilar, sacar 4. ¿Cuáles son los objetivos de un SO? 1-SO como interfaz de usuario... 2-Eficiencia (uso eficiente de los recursos del computador)... 3-Evolución (permitir agregar nuevas funciones sin afectar a los servicios que brinda)... 5. Una vez que el SO está en funcionamiento, ¿El núcleo o kernel siempre permanece cargado en memoria? O bien el mismo se carga y descarga de la memoria según lo requiera la administración de memoria del SO. Siempre permanece cargado en memoria. 6. ¿Cuáles eran los principales problemas del procesamiento en Serie de los primeros SO's? -Planificación: uso de computadores costosos como monousuarios, monotarea. -Tiempo de Preparación: cargar compilador, cargar programa, guardar programa compilado, cargar programa compilado, montar y desmontar cintas, etc. 7. En el procesamiento en Serie, ¿había algún tipo de aislación (isolation) entre el usuario y el hardware utilizado? No. 8. En el procesamiento batch o por lotes, ¿había algún tipo de aislación (isolation) entre el usuario y el hardware utilizado? Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 1 de 2 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación Si, el monitor. 9. ¿De qué manera el usuario podía interactuar con el Monitor? A través del conjunto de instrucciones JCL (job control language) que se acompañaba con cada trabajo a ejecutar. 10. En un sistema de procesamiento batch o por lotes, ¿Qué sucede cuando un programa del usuario ejecuta una instrucción privilegiada (asumiendo que el hardware tiene la facilidad de contar con este tipo de instrucciones)? ¿Cuál cree Ud. que es la razón de ello? Si un programa de usuario pretende ejecutar una instrucción privilegiada se producirá un error, puesto que este tipo de instrucciones no esta permitido para un programa de usuario. Solo el monitor puede ejecutar instrucciones privilegiadas puesto que éstas tienen mayor prioridad que las instrucciones del usuario, si los programas de usuario pudieran ejecutar estas instrucciones habría -al menos- dos problemas: 1. si un programa de usuario acaparara todo el tiempo de cpu ejecutando instrucciones privilegiadas (de mayor prioridad), el monitor no podría tomar el control. 2. se perdería la aislación / abstracción del hardware que provee el monitor, la interacción con el hardware debe hacerse a través del monitor y no directamente desde los programas de usuario. 11. Las instrucciones privilegiadas incluyen también operaciones de I/O, entonces, ¿Cómo es posible que un programa de usuario pueda realizar operaciones de I/O? Porque las hace a través del monitor y no directamente. 12. ¿Qué areas de memoria están disponibles para un programa de usuario cuando éste se ejecuta en “modo usuario” (user mode)? Solo puede acceder a su propia area de datos y aquellas a las que se le haya otorgado acceso. No puede acceder a areas de memoria del monitor o de otro proceso. 13. ¿Qué areas de memoria están disponibles para el monitor teniendo en cuenta que éste se ejecuta en “modo núcleo” (kernel mode)? El monitor puede acceder a cualquier area de memoria. 14. En un sistema de tiempo compartido o time sharing, ¿el sistema de procesamiento batch o por lotes es reemplazado por la terminal? O bien son sistemas en donde pueden convivir tanto el procesamiento batch como procesos interactivos. Son sistemas en donde pueden convivir tanto el procesamiento batch como procesos interactivos. La terminal es solo un proceso más. Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 2 de 2 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación Respuestas Orientadoras e incompletas (en algunos casos) a las preguntas de revisión. Favor tomarlas como orientadoras. Clase 3 – Revisión 1. ¿Cuáles son las características de un proceso? -Programa en ejecución -"espíritu animado" de un programa -entidad asignada a CPU y ejecutada por ésta -instancia de programa en ejecución -unidad de actividad caracterizada por la ejecución de una secuencia de instrucciones, un estado y un conjunto de recursos asociados -entidad formada por n elementos (codigo del programa, conjunto de datos, PCB (process control block)) -entidad que describe un comportamiento o taza, listado de la secuencia de instrucciones del proceso 2. ¿Cuáles son los componentes de un proceso? -Programa ejecutable -Datos asociados al programa (variables, espacio de trabajo, buffers, etc.) -Contexto de Ejecución: info. necesaria para que el SO pueda administrar el proceso, contenido de los registros del procesador, PC, registros de datos, prioridad, etc. 3. Teniendo en cuenta las dos preguntas anteriores y sumado al hecho de la existencia de sistemas con multiprogramación, ¿Qué problemas podrán causar n procesos ejecutándose al mismo tiempo en una misma CPU? -Sincronización Incorrecta: mal manejo de interrupciones, diseño incorrecto de mecanismo de señalización. -Fallos de Exclusión mutua: problemas de concurrencia: mecanismo de exclusión para que solo uno por vez pueda tomar el recurso. -Funcionamiento no determinista del programa: la salida debe depender de la entrada y no de las actividades realizadas por otros programas. -Interbloqueos: dos o más programas suspendidos, uno a la espera del otro (abrazo mortal), por ejemplo con asignación de dos dispositivos de E-S, forma imprevista de asignación y liberación de recursos. 4. ¿Qué ventajas cree Ud. que acarrea el hecho de trabajar con memoria virtual? Permite a los programas direccionar memoria desde el punto de vista lógico, sin importar la cantidad de memoria principal física disponible, permite n procesos concurrentes. Las referencias se manejan por medio de una dirección virtual (a través de un sistema de paginación de memoria, se referencia como un número de página y un desplazamiento) en donde el sistema de paginación proporciona una proyección a una dirección real o física de la memoria principal. Las páginas de un proceso en ejecución se guardan en el disco y sólo se tienen en memoria las mínimas requeridas para la ejecución del proceso, cuando se referencia una dirección que no esta en memoria principal, el hardware de gestión de memoria lo detecta y permite que la página que falta se cargue; a esto se lo llama área de memoria virtual. La CPU y el SO dotan al usuario de un "CPU virtual" que accede a memoria virtual intercalando un traductor de direcciones (memory management unit, MMU, mapper) entre la CPU y la memoria principal. 5. ¿Qué diferencia hay entre un hilo (thread) y un proceso? Un proceso es una unidad de asignación de recursos y de protección, la cual puede ser implementada bajo un modelo de un único hilo o bajo un modelo multihilo. Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 1 de 3 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación Cada hilo tiene su información contextual (BCP), su pila o stack, pero comparte el BCP del proceso al que pertenece el hilo y tiene acceso al espacio de direcciones del proceso común a todos los hilos, ver Fig. 4.2 Pag. 160. Cada hilo tiene: su estado de ejecución, contexto, pila, espacio de direcciones para variables locales, acceso a memoria y recursos del proceso, compartido por todos los hilos de su mismo proceso. 6. ¿Qué diferencia hay entre la arquitectura micro-núcleo (microkernel) y la arquitectura multi- hilo (multithreading)? Una Arquitectura micronúcleo (microkernel) se refiere a una decisión de diseño que se debe tomar en todo SO moderno, la idea es asignar sólo unas pocas funciones escenciales al núcleo del SO que permanecerá en memoria, tales como: -manejo de espacio de direcciones de memoria, comunicación entre procesos, planificación básica de procesos. Esta decisión de diseño está en contraposición con la aquitectura monolítica. La arquitectura multihilo (multithreading) se refiere a la habilidad de un SO para soportar múltiples y concurrentes flujos de ejecución dentro de un mismo proceso, tal como es el caso de windows y los unix modernos (linux, solaris, etc). Sin embargo, los antiguos unix soportaban n procesos concurrentes pero un solo hilo de ejecución por cada proceso. Se puede o no hacer uso de multihilo dentro de una arquitectura microkernel o monolítica, dependiendo si el SO soporta o no multihilos. 7. Responda Verdadero o Falso: En un sistema de multiprocesamiento simétrico (SMP): * existen n procesadores cada uno con su propia memoria (F) * existen 1 solo procesadores que comparte su memoria con n hilos o threads (F) * existen n procesadores que permiten ejecutar distinto set de instrucciones (F) * existen n procesadores que permiten ejecutar el mismo set instrucciones (V) * un procesador para poder ejecutar una instrucción debe esperar a que los otros procesadores no estén ejecutando ninguna instrucción (F) 8. Suponga que un usuario UNIX está usando la aplicación vi (editor) modificando un archivo de texto. Enumere las capas que se encuentran entre este usuario y el hardware de su computador. 1. Unix commands and Libraries (vi) 2. System call interface 3. Kernel 4. Hardware 9. ¿Por qué razón Ud. cree que los diseñadores han optado por un modelo por capas? ¿Qué ventajas cree Ud. que trae el programar de esta forma? ¿Podemos utilizar esta idea en la construcción de software aplicativo? El desarrollo de software por capas requiere de capas de software con un objetivo específico e interfases bien definidas, toda capa de software debe estar especificada. Esto facilita el trabajo en grupo, en donde desarrolladores se concentren en determinada capa, desconociendo el resto, bajando el nivel de complejidad y acelerando la curva de aprendizaje. Las capas pueden ser provistas por distintos proveedores, pueden corregirse, actualizarse (hacia su interior) y hasta incluso ampliarse, sin interferir con el resto (encapsulación). Esta forma de desarrollo puede aplicarse a cualquier tipo de software. 10. Linux no utiliza la arquitectura de micro-núcleo (microkernel), describa brevemente cuál es la idea de su implementación en contraposición con la arquitectura de un UNIX tradicional. Linux no tiene un diseño microkernel sino una aquitectura modular, se trata de una colección de módulos que se cargan en tiempo de ejecución (runtime) y se pueden vincular y desvincular (también en runtime) del kernel a través de los comandos insmod , rmmod. Los módulos son apilab les (stackable) de forma jerárquica. De forma tal, que un modulo puede servir como librería de otro módulo cliente. La idea es que un módulo pueda implementar el código común a n módulos, de esta Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 2 de 3 UTN FRD Sistemas Operativos Ingeniería en Sistemas de Información Preguntas de Revisión Dpto. Ingeniería en Sistemas de Información Area: Computación forma, se reduce la cantidad de código que el SO debe mantener en memoria, no hay duplicación de código, facilita el desarrollo de módulo más específicos, permite definir las dependencias entre módulos y el kernel esta seguro de contar con todos los módulos requeridos. Mgr. Guillermo R. Cherencio - Sistemas Operativos - Página 3 de 3

Use Quizgecko on...
Browser
Browser