lunes, 15 de abril de 2013

UNIDAD II _ROCESO.



 TAREA 2._Resuelva los problemas (1, 2, 4, 5, 9, 10, 12, 15, 16, 17, 18, 20, 22, 23, 27) de la página(148-151) del libro: Sistemas Operativos diseño e implementación de Tanenbaum y Woodhull 



   Suponga que va a diseñar una arquitectura de computadora avanzada que realizará la conmutación de procesos por hardware, en lugar d>e-tenerinterrupciones. ¿Qué información necesitaría la CPU? Describa cómo podría funcionar la conmutación de procesos por hardware.
La CPU está ejecutando sólo un programa, en el curso de un segundo puede trabajar con varios programas, dando a los usuarios la ilusión de paralelismo. A veces se usa el término seudoparalelismo para referirse a esta rápida conmutación de la CPU entre programas, para distinguirla del verdadero paralelismo de hardware de los sistemas multiprocesador.

     En todas las computadoras actuales, al menos una parte de los manejadores de interrupciones se escribe en lenguaje ensamblador. ¿Por qué?

Se incurren en menos errores y los que se cometen son  más fáciles de localizar además, los programas en lenguaje ensamblador son más fáciles de modificar que los programas de lenguaje máquina, Pero existen limitaciones.


4. En un sistema con hilos, ¿hay una pila por hilo o una pila por proceso? Explique.

Por cada hilo hay una pila diferente, pues cada hilo puede ejecutarse en su propio ritmo. Permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.

5. ¿Qué es una condición de competencia?
Es un fenómeno que se produce cuando uno o varios procesos compiten por uno o varios recursos produciendo el bloqueo en la ejecución de esos procesos, lo que a la postre termina con el cuelgue del sistema.

9. Considere una computadora que no cuenta con la instrucción TEST AND SET LOCK pero sí tiene una instrucción que intercambia el contenido de un registro y una palabra de memoria en una sola acción indivisible. ¿Se puede usar esta instrucción para escribir una rutina enter_region como la de la Fig. 2-10?

Al igual que todas las soluciones basadas en regiones críticas, el proceso debe invocar  enter_region y leave_region en los momentos correctos para que el método funcione.

10. Bosqueje la forma en que un sistema operativo que puede inhabilitar interrupciones podría implementar semáforos.  Implementar semáforos.

Se proponen dos operaciones DOWN (aplicada a un semáforo verifica si el valor es mayor que 0) y UP (incrementa el valor del semáforo seleccionado) si uno o más procesos están durmiendo en espera, imposibilitados de completar una operación DOWN previa, el sistema escoge uno de ellos.


12. En la sección 2.2.4 se describió una situación con un proceso de alta prioridad, H, y uno de baja prioridad, L, que condujo a la repetición infinita de H. ¿Ocurre el mismo problema si se usa planificación round robin en vez de planificación por prioridad? Explique.

La solución está en la introducción de variables de condición, junto con dos operaciones que se  realizan con ellas, WA y SIGNAL. Cuando un procedimiento de monitor descubre que no puede continuar. Esta acción hace que el proceso invocador se bloquee, y también permite la entrada de otro  proceso al que antes se le había impedido entrar en el monitor.

15. Suponga que tenemos un sistema de transferencia de mensajes que usa buzones. Al enviar mensajes a un buzón lleno o tratar de recibirlos de un buzón vacío, un proceso no se bloquea, sino que recibe de vuelta un código de error. El proceso responde al código de error intentándolo de nuevo, una y otra vez, hasta que tiene éxito. ¿Da este esquema lugar a condiciones de competencia?

Por qué el sistema recibe un mensaje de error y trata de ejecutar el mensaje por defecto.

16. En la solución al problema de la cena de filósofos (Fig. 2-20), ¿por qué se asigna HUNGRY  (Hambriento) a la variable de estado en el procedimiento take_forks (tomar tenedores)?

El filósofo tiene una condición a  modificar el programa de modo que, después de tomar el tenedor izquierdo, el programa  verifique si el tenedor derecho está disponible.


17. Considere el procedimiento put_forks (poner tenedores) de la Fig. 2-20. Suponga que se asigna el valor THINKING (pensando) a la variable de estado state después de las dos llamadas a test (probar), en lugar de antes. ¿Cómo afectaría este cambio la solución para el caso de tres filósofos? ¿Y para 100 filósofos?

Como acotación, vale la pena señalar que si bien los problemas de lectores y escritores y del  peluquero dormido no implican transferencia de datos, pertenecen al área de IPC porque implican  sincronización entre varios procesos.

18. El problema de lectores y escritores se puede formular de varias formas en lo tocante a cuál categoría de procesos puede iniciarse y cuándo. Describa minuciosamente tres variaciones diferentes del problema, cada una de las cuales favorece (o no favorece) alguna categoría de procesos. Para cada variación, explique qué sucede cuando un lector o un escritor quedan listo para acceder a la base de datos, y qué sucede cuando un proceso termina de usar la base de datos.

Los lectores subsecuentes se limitan a incrementar un contador; conforme los lectores salen, decrementan el contador, y el último en salir ejecuta.

20. Los planificadores round robin normalmente mantienen una lista de todos los procesos ejecutables, y cada proceso aparece una y sólo una vez en la lista. ¿Qué sucedería si un proceso ocurriera dos veces en la lista? ¿Puede usted pensar en alguna razón para permitir esto?

Hay que tratar de saber que quiere hacer el planificador porque puede que se ejecute un error y bloquear el sistema.

22. Cinco trabajos están esperando para ejecutarse. Sus tiempos de ejecución esperados son 9, 6, 3, 5 y X. ¿En qué orden deben ejecutarse si se desea minimizar el tiempo medio de respuesta? (Su respuesta dependerá de X.)


23. Cinco trabajos por lotes, A a E, llegan a un centro de cómputo casi al mismo tiempo, y tienen tiempos de ejecución estimados de 10, 6, 2, 4 y 8 minutos. Sus prioridades (determinadas externamente) son 3, 5, 2, 1 y 4, respectivamente, siendo 5 la prioridad más alta. Para cada uno de los siguientes algoritmos de planificación, determine el tiempo de retorno medio de los procesos. Ignore el gasto extra por conmutación de procesos.


(a) Round robin.


(b) Planificación por prioridad.


(c) Primero que llega, primero que se atiende (ejecutados en el orden 10, 6, 2, 4, 8).


(d) El primer trabajo más corto.


27. Explique por qué se usa comúnmente la planificación de dos niveles.
Es más eficiente el intercambio de los procesos con un planificador de dos niveles. Cada conmutación implicaba escribir el proceso actual en disco y leer uno nuevo del disco.





lunes, 11 de febrero de 2013

UNIDAD I._ INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS




TAREA I._ DEFINICIONES DE SISTEMAS OPERATIVOS._

1.      Un sistema operativo puede ser contemplado como una colección organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar al computador y proporcionan un entorno para la ejecución de programas.
2.      Un sistema operativo es un software que actúa de interfaz  entre los dispositivos de hardware y los programas usados por el usuario.
3.      Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.



*Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de un ordenador, y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es lograr que el Sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del ordenador se emplee de manera eficiente.








TAREA II._FUNCIONES, CARACTERÍSTICAS Y EVOLUCIÓN  HISTÓRICA


 






TAREA III._ CLASIFICACIÓN Y ESTRUCTURA DE SISTEMAS OPERATIVOS







 EVALUACIÓN DE SISTEMAS OPERATIVOS


1. Señale las dos funciones principales de un sistema operativo.
*El sistema operativo como máquina extendida
 *El sistema operativo como administrador de recursos

2. ¿Qué es la multiprogramación?
Es  dividir la memoria en varias secciones, con un trabajo distinto en cada partición , que permite que dos o más procesos ocupen la misma unidad de memoria principal y sean ejecutados al "mismo tiempo".


3. ¿Qué es el spooling? Capacidad de leer trabajos de las tarjetas al disco tan pronto como se llevaban al cuarto de computadoras. Luego, cada vez que un trabajo terminaba su ejecución, el sistema operativo podía cargar uno nuevo del disco en la partición que había quedado vacía y ejecutarlo.

   *¿Cree usted que las computadoras personales avanzadas contarán con spooling como capacidad estándar en el futuro? si




4. En las primeras computadoras, cada byte de datos leído o escrito era manejado directamente por la CPU (es decir, no había DMA: acceso directo a memoria). ¿Qué implicaciones tiene esta organización para la multiprogramación?          

    La solución a la que se llegó fue dividir la memoria en varias secciones, con un trabajo distinto en cada partición. Mientras un trabajo estaba esperando que terminara su E/S, otro podía estar usando la CPU. Si se podían tener en la memoria principal  suficientes trabajos a la vez, la CPU podía mantenerse ocupada casi todo el  tiempo. Tener múltiples trabajos en la memoria a la vez requiere hardware especial para proteger cada trabajo contra espionaje o  por parte de los demás, pero la 360 y otros sistemas de tercera generación estaban equipados con este hardware.




5. ¿Por qué no era muy común el tiempo compartido en las computadoras de la segunda generación?

         Estas máquinas se encerraban en cuartos de computadora con acondicionamiento de aire especial, con equipos de operadores profesionales para operarias. Sólo las grandes empresas, o las principales dependencias del gobierno o universidades, podían solventar el costo de muchos millones de dólares.
Para ejecutar un trabajo (es decir, un programa o serie de programas),  un programador escribía primero el programa en papel y luego lo perforaba en tarjetas. Después, llevaba el grupo de tarjetas al cuarto de entrada y lo entregaba a uno de los operadores.


6. ¿Cuáles de las siguientes instrucciones sólo deben permitirse en modo de kernel?

(a) Inhabilitar todas las interrupciones.

(b) Leer el reloj de hora del día.

(c) Establecer el reloj de hora del día.

(d) Cambiar el mapa de memoria.



7. Cite algunas diferencias entre los sistemas operativos de las computadoras personales y los de las macrocomputadoras.

   Una computadora personal suele estar equipada para cumplir tareas comunes de la informática moderna, es decir permite navegar por Internet, escribir textos y realizar otros trabajos de oficina o educativos, como editar textos y bases de datos.
        Las macrocomputadoras son el corazón de las redes o terminales que permiten que cientos de personas trabajen simultáneamente con los mismos datos. Se requiere un entorno especial frío y seco para su ubicación. Un mainframe puede funcionar años sin problemas ni interrupciones; incluso puede repararse mientras funciona.
      Las macrocumputadoras  se caracterizan por su utilización en el manejo de grandes bases de datos en redes corporativas de gran tamaño. Poseen grandes dispositivos de almacenamiento como discos duros de hasta 500 GigaBytes (GB) y cintas de seguridad (Tape Backup)

12. Señale la diferencia esencial que hay entre un archivo especial por bloques y un archivo especial por caracteres.
  
Archivos especiales por bloques y archivos especiales por caracteres. Los primeros se usan para modelar dispositivos que consisten en una colección de bloques directamente direccionables,como los discos. Al abrir un archivo especial por bloques y leer, digamos, el bloque 4, un programa puede acceder directamente al bloque 4 del dispositivo, pasando por alto la estructura del sistema de archivos que contiene. De forma similar, los archivos especiales por caracteres se usan para modelar impresoras, módems y otros dispositivos que aceptan o producen flujos de caracteres.