2.1 Cual es el propsito de las llamadas de sistema?
R: Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento de servicios del sistema operativo 2.2 Cuales son las 5 principales actividades de un sistema operativos en lo que concierne la gestin de procesos. R: a. La creacin y la eliminacin de tanto usuario u procesos de sistema b. La suspensin y la renaudacin de procesos c. La provisin de mecanismos para procesos de sincronizacin d. La provisin de mecanismos para el manejo de deadlock
2.3 Cuales son las tres principales actividades de un sistema operativo en lo que concierne el manejo de memoria. R. a. . Mantiene registro de las partes de la memoria que estn siendo actualmente utilizadas. b. Decide cuales son los procesos que van a ser cargados en la memoria cuando el espacio de memoria pase a estar disponible. c. Asigna y des-asigna espacios de memoria a medida que sean necesarios. 2.4 Cuales son las tres principales actividades de un sistema operative concerniendo el manejo del almacenamiento secundario: R: a. Manejo de espacio disponible b. Asigncin de almacenamiento c. Programacin (Scheduling) de disco 2.5 Para qu sirve el interprete de rdenes? Por qu est generalmente separado del ncleo? R: Lee los comandos desde el usuario desde un archivo de comandos y los ejecuta, generalmente convirtindolos en ms de una llamada a sistema. Generalmente no es parte del kernel debido a que el intrprete de rdenes est sujeto a cambios.
2.9 Liste 5 servicios provistos por el sistema operative. Explique cmo cada uno prove conveniencia al usuario. Explique tambin los casos en los cuales sera imposible para los programas a nivel de usuario proveer estos servicios. R: a. Ejecucin de programas. EL sistema operativo carga los contenidos (o secciones) de un archivo en la memoria y comenzar su ejecucin. Un programa a nivel usuario no podra ser confiado para asignar correctamente el tiempo de CPU. b. Operaciones de E/S Discos, cintas, lneas seriales y otros dispositivos que deben ser comunicados con un muy bajo nivel. El usuario necesita solamente especificar el dispositivo y la operacin para operar en el, mientras el sistema convierte ese requerimiento en el dispositivo o en los comandos especficos de controladores. Programas a nivel de usuario no pueden ser confiados en el acceder solamente a los dispositivos, estos deberan tener accesos solamente cuando no estn en uso. c. Manipulacin de archivos-sistemas. Existen muchos detalles en la creacin de archivos, la eliminacin de archivos, asignacin y nombrar estos archivos. Estas acciones los usuarios no deberan realizar. Bloques de espacio de discos son utilizados por archivos y deberan ser rastreados. Eliminar un archivos requiere remover el nombre del archivos de informacin y liberar los bloques asignados. Las protecciones pertinentes tambin deben ser revisadas para asegurar un debido acceso a archivos. Los programas a nivel de usuario no podran ni asegurar mtodos de proteccin ni tampoco podran ser confiados en asignar bloques libres ni tampoco reasignar bloques de eliminacin de archivos. d. Comunicacin: Mensajes que se transmiten entre sistemas requieren que estos mismos sean convertidos en paquetes de informacin, enviados desde elcontrolador de red, transmitido a travs de medios de comunicacin y re ensamblados por sistemas de destinacin. La orden de paquetes y datos de correccin pueden tomar lugar. Nuevamente, programas a nivel de usuario pueden no coordinar el acceso al dispositvo de red, o bien pueden recibir paquetes destinados para otros propsitos. e. Deteccin de errores: La deteccin de errores ocurre tanto a niveles de hardware y software. A nivel de hardware, todos los datos transferidos deben ser inspeccionados para asegurar los que estos datos no hayan sido corrompidos en el trnsito. Todos los medios de datos deben ser chequeados para asegurarse de que no cambien desde que estos fueron escritos en el medio. En el nivel de software, los medios deben ser chequeados para encontrar consistencia de datos, por ejemplo, tanto si los nmeros de asignacin y desasignacin de bloques de almacenamiento coincida con el total de nmeros en el dispositivo. En estos casos, los errores son frecuentemente independientes del proceso (como por ejemplo la corrupcin de datos en un disco),es por esto que debe existir un programa global (el sistema operativo) que maneja los tipos de errores. Tambin, por tener errores de procesos por el sistema operativo, los procesos no deben contener cdigo para captar y corregir todos los posibles errores en un sistema.
Para qu sirven las llamadas de sistema? R. Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento de servicios del sistema operativo. 2.11 Cuales son las principales ventajas del enfoque del micro-kernel al sistema? R: Los beneficios tpicamente incluyen: a. Agregar un nuevo servicio no requiere modificar el kernel. b. Es ms seguro mientras ms operaciones se realizan en modo usuario que en modo Kernel. c. Un diseo y una funcionabilidad ms simple tpicamente conlleva a un sistema operativo ms confiable. Por qu algunos sistemas operatvos se almacenan en el sistema de firmware y otros en discos? R. Para algunos dispositivos, como celulares, un disco con un sistema de archivos puede no estar disponible para el dispositivo. En esta situacin, el sistemaoperativo debe ser almacenado en firmware.
Captulo 4: Procesos 4.1 Varios sistemas operativos de microcomputador populares ofrecen poco o ningn soporte del procesamiento concurrente. Comente las principales complicaciones que el procesamiento concurrente aade a un sistema operativo. R. Un mtodo de tiempo compartido debe ser implementado para permitir a cada proceso a tener acceso al sistema. Este mtodo involucra el derecho a prioridad a procesos que no voluntariamente dejaran de utilizar la CPU (Utilizando llamados a sistema) y el Kernel volviendo a entrar (Ms de un proceso puede estar ejecutando cdigo kernel concurrentemente) - procesos y recursos del sistema deben tener proteccin y deben estar protegidos de cada uno. Cualquier proceso dado debe estar limitado en la cantidad de memoria que puede usar y las operaciones que puede realizar en los dispositivos como discos - Se debe tener cuidado en el kernel para prevenir deadlocks entre procesos, para que los procesos no estn esperando los recursos asignados entre si. 4.2 Describa las diferencias entre la planificacin a corto plazo, mediano plazo y largo plazo. R. -Corto plazo (Planificador de CPU (CPU scheduler)- Selecciona desde trabajos en memoria, aquellos trabajos que estn listos para ejecutar, y asigna la CPU a ellos. -Mediano plazo. Utilizado especialmente con sistemas de tiempo compartido como un organizador de nivel intermedio. Un esquema de swapping es implementado para renovar parcialmente programas que estn corriendo en la memoria y reinstaurarlos ms tarde para continuar donde quedaron. -Largo plazo (Planificador de trabajo (Job Scheduler))- Determina cuales trabajos son llevados a la memoria para ser procesados. 4.3 Un computador DECSYSTEM-20 tiene mltiples conjuntos de registros. Describa las acciones de una conmutacin de contexto si el contexto nuevo ya est cargado en uno de los conjuntos de registros. Qu ms debe suceder si el contexto nuevo est en la memoria, no en un conjunto de registro, y todos los conjuntos de registro estn ocupados? R. El registro actual de punteros de la CPU es cambiado para apuntar al set que contenga el nuevo contexto, el cual toma muy poco tiempo. Si el contexto est en memoria, uno de los contextos en el set de registros debe estar escogido y movido en la memoria, y el nuevo contexto debe estar cargado desde la memoria al set. Este proceso lleva ms tiempo que en los sistemas con un solo set de registro, dependiendo en cmo un objetivo a ser reemplazado es escogido. 4.4 Cite las dos ventajas que tienen os hilos sobre los procesos mtiples Qu desventaja importante tienen? Sugiera una aplicacin que se beneficiara del uso de hilos, y una que no se beneficiara. R. Los hilos son muy baratos de crear y destruir, adems de que utilizan muy pocos recursos mientras existen. Sin embargo, si utilizan tiempo de CPU, pero no tienen espacios de memoria completamente separados. Desafortunadamente hilos tienen que confiar entre ellos para no daar datos compartidos. Por ejemplo, un hilo podra destruir datos que todos los dems hilos podran depender, mientras que el mismo no podra ocurrir entre procesos a no ser que haya utilizado una funcin del sistema que les permita compartir datos. Cualquier programa que pueda hacer ms de una tarea a la vez podra beneficiarse de la multitarea. Por ejemplo, un programa que lea dispositivos de entrada, los procese y los libere podra tener 3 hilos, uno para cada tarea. Procesos de una sola forma de pensar no podran beneficiarse de multiples hilos; por ejemplo, un programa que muestre la hora del da. 4.5 Qu recursos se consumen cuando se crea un hilo? En qu difieren de los que se consumen cuando se crea un proceso? R. Un contexto debe ser creado, incluido un registro de un set direcciones de almacenamiento durante cambios de contexto, y un stack local para registrar los procedimientos de llamada de argumentos, retornar valores, retornar direcciones y el almacenamiento local de hilos. Un proceso de creacin resulta en memoria siendo asignado para programas de instrucciones y datos, como tambin almacenamiento de hilos. El cdigo tambin puede ser asignado en memorias asignadas. 4.6 Describa las acciones del ncleo cuando conmuta el contexto a. Entre hilos b. Entre procesos. R. a. El contexto entre hilos debe ser salvado (Registro y contabilidad en caso de ser apropiado), y otros contextos de hilos tambin tienen que ser cargados. b. Lo mismo que en a, pero tambin se agrega que el contexto de memoria debe ser almacenado y el del proceso siguiente debe ser cargado. 4.7 Qu diferencias hay entre los hilos en el nivel de usuario y los apoyados por el ncleo? En qu circunstancias es un tipo mejor que el otro? R. Los hilos a nivel de usuario no tienen soporte del kernel, por lo tanto son muy baratos de crear, destruir y hacerles switch. Sin embargo, si uno se bloquea, todo el proceso se bloquea tambin. Los hilos que tienen soporte del kernel son ms caros debido a que se necesita una llamada al sistema para que puedan ser creados y destruidos y el kernel debe programarlos. Son ms poderosos porque son programados y bloqueados individualmente. 4.8 el algoritmo de productores y consumidores correcto que se presenten la seccin 4.4 slo permite que n-1 buffers estn llenos en cualquier momento. Modifique el algoritmo para permitir que todos los buffers se aprovechen al mximo. R. sin respuesta. Preguntas de repaso: 1. Qu es un proceso? R. Un programa en ejecucin. 2. Qu es PCB? (Ver Figura)
R: Proceso de control de bloqueo. Contiene varias estructuras de datos 3 Haga una lista de algunas de las colas tpicas de un sistema. R. Ready, Run, I/O
4. Cmo son ests colas tpicamente implementadas? R. Colas FIFO, Arboles, Listas enlazadas. 5. Cuantas colas de dispositivos existen en un sistema? R. Una para cada dispositivo. 6. Qu hace el planificador a largo plazo? R. Determina qu trabajos pertenecen en la mezcla actual de trabajos que e estn ejecutando y los que estn esperando 7. Qu hace el planificador de corto plazo? R: Determina cual de los trabajos actuales debera correr en la prxima rfaga de CPU 8. Que planificador debe trabajar muy rpido con el fin de que no se gaste tiempo significante de la CPU? Cul puede ser lento? R. EL que tiene que ser rpido es el de corto plazo, y el que puede ser lento es el de largo plazo. 9. Cual es el grado de multiprogramacin R. no cach. 10. Cuando se invoca al controlador de largo plazo? R. Cuando un trabajo es completado, o cuando un grado no se ha alcanzado. 11. Verdadero o falso: El planificador de largo plazo selecciona un grupo de trabajos ligados a dispositivos de E/S o un grupo de trabajo ligado a la CPU para actividades subsecuentes. Explique R. Falso. Se selecciona. Un mix de tareas para utilizacin eficiente de la mquina. 12. Qu es tiempo compartido? Qu tipo de planificacin tiene involucrada? R. Tiempo compartido es cuando muchos usuarios de forma interactiva usan un sistema simultneamente, cada usuario tiene una parte del tiempo de CPU, despus deque otroas usuarios hayan conseguido su parte. Utiliza planificacin de tiempo medio. 13. Explique el sentido de: Tiempo compartido depende de la retroalimentacin negativo de usuarios para operaciones rpidas R. Usuarios que son impacientes con respuestas de largo tiempo se desconectarn, resultando en que hayan menos usuarios en el sistema con un tiempo de respuesta mayor. 14. Qu es swapping? R. Copiar un proceso que est fuera de la memoria a un disco o tambor, permitiendo as que se desocupe espacio para otros procesos activos. Una vez que el espacio se vuelva a ampliar se volvern a copiar en la memoria. 15. Qu es el cambio de contexto. R. EL tiempo que se necesita para cambiar de una tarea a otra. 16. Describa 5 implementaciones del mecanismo de creacin de nuevos procesos. R. a. Ejecucin contnua de los padres. b. Los padres no se ejecutan hasta que los hijos terminen c. Padres e hijos comparten todas las variables. d. Los hijos comparten solamente un subset de variables de los padres. e. Padres e hijos no comparten recursos en comn. 17. Describa el problema productor/consumidor R. El consumidor no se le permite utilizar un resultado hasta que el productor lo haya creado, y al productor no se le permite de crear resultados si el buffer est completo. 18. De ejemplos de pares productor/consumidor R. Compilador/enlazador, enlazador/cargador, lector de tarjetas/Impresora de lnea 19. Cmo se implementa un arreglo circular= R. ni un brillo
Captulo 5 planificacin de CPU 5.1 Un algoritmo de planificacin de la CPU determina un orden para la ejecicin de sus proceos. Si hay que planificar n procesos, en un procesador ,Cuntos planes distintos puede haber? Deduzca una frmula en trminos den. R: n! (n factorial = n n 1 n 2 ... 2 1). 5.2 Defina la diferencia entre planificacin expropiativa y no expropiativa. Explique por qu es poco probable que se use una planificacin no expropitiva estricta en un centro de cmputo. R. PLanificacin expropiativa permite al proceso ser interrumpido a la mitad de su ejecucin, sacando la CPU y asignadola a otro proceso. Planificacin expropiativa asegura que el proceso renuncie al control de la CPU solamente cuando ha finalizado con su rfaga de CPU actual. 5.3 Considere el conjunto de procesos siguiente (la duracin de la rfaga de CPU s en milisegundos): Proceso Tiempo de rfaga Prioridad P1 10 3 P2 1 1 P3 2 3 P4 1 4 P5 5 2
Se supone que los procesos llegaron en el orden P1,P2, P3, P4, P5 todos en el instante 0. a. Dibuje cuatro diagramas de Gantt que ilustren la ejecucin de estos procesos empleando planificacin FCFS, SJF, una tcnica por prioridad no expropiativa (un nmero de prioridad ms bajo implica una priodidad ms alta) y RR (quantum = 1) b. Calcule el tiempo de retorno para cada proceso con cada uno de los algoritmos de planificacin de la parte a. c. Calcule el tiempo de espera para cada uno de los algoritmos de planificacin de la parte a. d. Cul de los planes de la parte a da pie al tiempo de espera promedio ms bajo (considerando todos los procesos)? R. Sin respuesta 5.4 5.5 R. a. En efecto, este proceso tendr un incremento en su prioridad debido a que al recibir tiempo ms a menudo estar recibiendo un trato preferencial. b. La ventaja es que a tareas ms importantes se le podra asignar ms tiempo, en otras palabras, mayor prioridad en el tratamiento. La consecuencia, desde luego, es que tareas ms pequeas sufrirn. c. Asignandole ms tiempo a los procesos que merezcan mayorprioridad, en otras palabras, tener dos o ms quantums posibles en la planificacin RR 5.6Qu ventaja tendra definir quantums de tiempo de diferente tamaa en distitnso niveles de un sistema de colas multinivel? R. Procesosque necesiten prestacin de servicios frecuentemente, por ejemplo, procesos interactivos como los editores, pueden estar en una cola con un quantum mayor, requiriendo menores cambios de contexto para completar su proceso, haciendo as ms eficiente el uso del computador. 5.7 Considere el siguiente algoritmo de planificacin por prioridad extrapropiativo basado en prioridades que cambian dinmicamente. Un nmero de prioridad mayor implica una prioridad ms alta. Mientras un proceso est esperando la CPU (en la cola de procesos listos, pero no ejecutndose), su prioridad cambia con una rpidez alfa, cuando se est ejecutnado, su prioridad cambia con rapidez beta. Todos los procesos reciben una prioridad de 0 cuando ingresan en la cola de procesos listos. Los parmetros alfa y beta pueden ajustarse para dar muchos algoritmos de planificacin distitnos. a. Qu algoritmo se obtiene si beta>alfa>0? b. Qu algoritmo se obtiene si alfa<beta<0? R: a. FCFS b. LIFO 5.8 Muchos algoritmos de planificacin de la CPU usan parmetros. Por ejemplo, el algoritmo RR requiere un parmetro indique la porcin de tiempo. Las colas multinivel con retroalimentacin necesitan parmetros que definan el nmero de colas, los algoritmos de planificaicn para cada cola, los criterios que se aplican para pasar procesos de una cola a otra, etctera. Por tanto, tales algoritmos son realmente conjuntos de algoritmos (por ejemplo, el conjunto de algoritmos RR para todas las porciones de tiempo, etc) UN conjunto DE ALGORITMOS PODRA INCLUIR OTRO (Por ejemplo el algoritmo FCFS es el algoritmo RR con un quantum de tiempo infinito) Qu relacin hay (si acaso existe alguna) entre los siguientes pares de conjuntos de algoritmos? a. Prioridad y SJF b. Colas multinivel con realimentacin y FCFS c. Prioridad y FCFS d. RR y SJF R. a. La tarea ms corta tiene la mayor prioridad. b. La tarea de ms bajo nivel de MLFQ es FCFS c. FCFS da la mayor prioridad a la tarea habiendo estado en existencia la mayor parte del tiempo. d. Ninguna 5.9 Suponga que un algoritmo de planificacin (en el nivel de planificacin de la CPU a corto plazo) favorece los procesos que han consumido la menor cantidad de tiempo de procesador en el pasado reciente. Por qu este algoritmo favorecera los procesos limitados por E/S pero sin postergar indifenidamente los programas limintados por CPU? R. Favorecer a los programas ligados a E/S porque las rfagas de CPU relativamente cortas solicitadas por estos mismos. Sin embargo, los programas ligados a la CPU no se desabastecern porque los programas ligados a E/S renunciaran a la CPU relativamente temprano para hacer su E/S 5.10 Explique las diferencias en el grado en que los algoritmos de planificacin siguientes discriminan a favor de los procesos cortos: a. FCFS b. RR c. Colas multinivel retroalimentadas. R. a. FCFS Discrimina contra tareas pequeas debido a que cualquier tarea corta que llegue despus de una larga tendr una espera de tiempo mayor. b. RR Trata a todas las tareas por igual (dndoles el mismo tiempo de rfagas de CPU) asique tareas pequeas podrn irse del sistema ms rpido debido a que germinarn primero. c. Colas multinivel retroalimentadas- Trabajan de una forma similar que el algoritmo RR Discriminan favorablemente para las tareas cortas.
Preguntas de resumen. 1. Qu es una Rafaga de CPU? Qu es una rfaga de E/S? - Rfaga de CPU: Un intervalo de tiempo cuando el un proceos usa solamente la CPU - Rfaga E/S: Un intervalo de tiempo donde un proceso usa solamente dispositivos de E/S 2. Un programa ligado a E/S podra tpicamente tener algn tipo de rfaga de CPU? R. Pequeo 3. Qu es el Despachador? R. Determina qu procesos son intercambiados.
Captulo 6 Sincronizacin de procesos. 6.1 Qu significa el trmino espera activa? Qu otros tipos de espera hay en un sistema operativo? Es posible evitar totalmente la espera activa? Explique su respuesta R. - Un proceso est esperando por un evento que ocurra cuando lo hace ejecutando instrucciones. - Un proceso est esperando por un evento a ocurrir en alguna cola de espera (por ejemplo E/S, semforos) y lo hace sin que la CPU lo haya asignado. - La espera activa no puede ser evitada totalmente. 6.2 Paja 6.5 En la seccin 6.3 mencionamos que la desactivacin frecuente de las interrupciones podra afectar el reloj del sistema. Explique por qu podra suceder esto y cmo podra minimizarse dicho efecto. R. La mantencin del tiempo (TImekeeping) est usualmente basado en interrumpiciones generadas por un reloj de cristarl. Fespus de una cantidad definida de oscilaciones, las que equivalen al pasaje de una cantidad de tiempo, una interrupciun ocurre y el computador incrementa su tiempo de almacenamiento. Si la interrupcin es desactivada, estos ticks de reloj pueden ser perdidos, y el valor del tiempo no se incrementara. 6.6 Demuestre que, si las operaciones espera y seal no se ejecutan atmicamente, podra violarse la mutua exlcusin. R. a. T0. P1 determina que el valor de S = 1 b. T1: p2 determina que el valor de S = 1 c. T2: p1 decrementa S por 1 y entra en la seccin crtica d. T3: p3 decrementa S por 1 y entra en la seccin crtica. 6.7 Preguntas de resumen 1. Qu es una seccin crtica? R. Una porcin de cdigo en la que solo un proceso a la vez puede ser ejecutado. 2 Cual es problema de la seccin critca? R: Para disear un algoritmo que permita a lo ms un proceso en la seccin crtica a la vez, sin deadlock 3 . Por qu los programas tienen seccin crtica? R. Para permitir no msde un proceso a la vez. 4. Haga una lista de las limitaciones Dijkstra situadas en soluciones para elproblema de la seccin crtica. a. Ejecucin simultnea es equivalente a la ejecucin secuencial en un orden desconocido. b. Las velocidades de los procesos son independientes uno de otro. c. Un procesos en la seccin no crtica no puede prevenir a otros procesos de entrar en la seccin crtica. d. Seleccin de admitir un proceso en la seccin crtica no puede ser indefinidamente pospuesta. 5 Cuales son los tres requerimientos que debe satisfacer una solucin a la seccin crtica? R. Exclusin mutua, progreso (progress), espera ligada (bounded waiting). 6 Qu significa ejecucin atmica? R. Ejecucin en grupo, sin un cambio de contexto posible hasta que todos las declaraciones en el grupo hayan sido completadas. 7. Defina la operacin wait- (postopone) y wait(S) R. Mientras un semforo est en estado no positivo, wait; cuando un semforo se pone en positivo, sustrae uno y se va. 8. Defina la operacin wakeup signal(s) R. Aade 1 al semforo 9. Suponga que queremos ejecutar instrucciones S1, S2 y S3 en secuencia, pero que S2 no