You are on page 1of 9

Prctico Introduccin

1.- Cuales son las dos funciones principales de un sistema operativo? GESTIN DE RECURSOS: control de discos duros,gestin de perifricos (teclado, ratn, etc...), asignacin de cantidades de memoria. ADMINISTRACIN DE ARCHIVOS: el sistema operativo de encarga de guardar los datos en distintas unidades de almacenamiento (disco duro, disquetes, CD's y DVD's), as como de recuperarlos cuando el usuario se lo pida. GESTIN DE TAREAS: los SO actuales son multitarea, es decir, pueden realizar varias tareas y ejecutar varios programas a la vez. 2.-Que es la multiprogramacion? permite que dos o ms procesos ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo en la unidad central de proceso o CPU. 3.-Una de las razones por las que las Interfaces Graficas de Usuario (GUI) fueron adpotadas lentamente, fue por el costo del hardware necesario para soportarlas. ?Cuanta RAM de video se necesita para una terminal modo texto de 80x25 (columnas, lineas)? ?Cuanta para una pantalla grafica de 1024x768 con 24 bits de profundidad de color? En 1980 el costo de la memoria era de u$s5/KB, ?Cuanto cuesta en la actualidad? La tarjeta de vdeo o grfica, es una placa de circuito impreso que aloja la electrnica necesaria para realizar las funciones tpicas de una unidad de salida. Pueden configurarse en dos modos de trabajo: En modo texto. La pantalla del monitor se divide en celdas y cada una es capaz de contener un carcter. La resolucin tpica de estas es de 80 columnas por 25 filas. En modo grfico. La resolucin viene dada en pxeles, donde un pxel es la interseccin de una fila y una columna de la pantalla. En este modo un carcter se dibuja mediante la combinacin de un nmero determinado de pxeles que harn que su tamao y color sea seleccionable. Las caractersticas de los estndares de video son las siguientes: Sistema de Vdeo Monocromo: Modo texto en blanco y negro. Primer sistema utilizado. Resolucin: 80x25 pxeles. Sistema de Vdeo EGA: Modo texto o modo grfico. Resolucin: 640x350. Sistema de Vdeo VGA: Tanto monitores de un solo color como a color, Resolucin de 640x480. Puede simular los colores con diferentes tonos de grises. Sistema de Vdeo SVGA: Tarjetas de alta resolucin con controladores especficos que permiten alcanzar resoluciones de 800x600 o de 1024x768 pxeles.

Memoria Ram Ddr1, 512mb, 266Mhz, Pc2100 $200 Memoria Udimm Ddr3 1333mhz 4gb Adata $349 Memoria Ram 2gb Ddr3 1333 Mhz $179

4.-Cuales de las siguientes instrucciones deberian permitirse en modo kernel? 1. Deshabilitar todas las interrupciones 2. Leer el Reloj de Tiempo Real (RTC) 3. Escribir el RTC 4. Cambiar el mapa de memoria 5.- Un microprocesador tiene un pipeline de 4 etapas. Todas las etapa demoran 1nseg en procesar. ?Cuantas intrucciones por segundo (IPS, KIPS, MIPS) puede ejecutar este micro? miles de instrucciones por segundo (kips) millones de instrucciones por segundo (MIPS) instrucciones de giga por segundo (GIPS) 6.-La MMU normalmente compara la direccion virtual entrante con el Registro Limite, provocando una excepcion cuando la primera se excede. Un diseo alternativo consiste en primero sumar la direccion virtual al Registro Base y despues comparar el resultado con la direccion fisica del Registro Limite. ?Son equivalentes estos metodos? ?Son equivalentes en velocidad? MMU Unidad de administracin de memoria (memory management unit): Verifica las direcciones generadas por el programa Convierte las direcciones virtuales en fsicas Direccin virtual generada por el programa Direccin fsica accedida en memoria Registro lmite tamao mximo del programa y los datos Registro base posicin de inicio del programa en memoria

7.-Cuando un programa de usuario efectua un SysCall para leer o escribir un archivo en disco, este provee el archivo necesita, un puntero a un buffer de datos y la cantidad de datos. Entonces, el control pasa al SO, el que llama al driver apropiado. Supongamos que el driver le da la orden al disco y termina cuando llega una interrupcion. En caso de una lectura, obviamente el programa que llamo tiene que permanecer bloqueado (pues no hay datos). ?Es lo mismo para una escritura a disco?, es decir, ?Necesita bloquear el programa que pidio la escritura hasta que se complete la transferencia? 8.-De condiciones de falla para cada uno de los SysCall que siguen: fork(), exec() y unlink(). ? 9.-Puede la siguente llamada a sistema retornar en count un valor menor que nbytes? Explicar. count = write(fd, buffer, nbytes)?

10-Indique la diferencia escencial entre un dispositivo de caracteres y uno de bloques. ? principales caractersticas de los dispositivos de bloque : La informacin se almacena en bloques de tamao fijo. Cada bloque tiene su propia direccin. Los tamaos ms comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes. Se puede leer o escribir en un bloque de forma independiente de los dems, en cualquier momento. Un ejemplo tpico de dispositivos de bloque son los discos. principales caractersticas de los dispositivos de caracter : La informacin se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques. No se pueden utilizar direcciones. No tienen una operacin de bsqueda. Un ejemplos tpico de dispositivos de caracter son las impresoras de lnea, terminales, interfaces de una red, ratones, etc. 11.-Laboratorio 2 :) 12.-Tome un *nix personal (Linux, OpenBSD, MINIX, Darwin, etc.) que pueda romper sin problemas. Escriba un shell script que intente crear un numero ilimitado de procesos hijos y observe lo que sucede. Nota: no intente esto en un laboratorio de acceso publico. ? 13.-El comando strace da un registro (traza) de todas las SysCalls que llama el comando que le sigue. Obtenga las trazas de los siguientes comandos, tratando de identificar todos los SysCalls que producen (el comando man puede ayudar). 1. strace cat /etc/hosts 2. strace cat (CTRL-D puede ayudar a terminar) 3. strace echo 1 4. strace mozilla (busquese una silla comoda) Intente identificar patrones comunes que correspondan a codigos de inicializacion y terminacion de procesos.

Prctico Procesos
Procesos e Hilos 1.-Por que un hilo dejaria voluntariamente la CPU con un thread_yield si sabe que despues de esto puede que se quede sin CPU para siempre? un thread puede en un determinado momento renunciar voluntariamente a su tiempo de CPU y otorgrselo al sistema para que se lo asigne a otro thread. Esta renuncia se realiza mediante el mtodo yield().

2.-En un sistema con hilos, ?hay un solo stack por hilo o un stack por proceso cuando se usan hilos en espacio de usuario? ?Y si se usan hilos a nivel de kernel?
Un hilo a nivel de usuario mantiene todo su estado en el espacio de usuario. Como consecuencia de ello, el hilo no utiliza recursos del kernel para su gestin, y se puede conmutar entre hilos sin cambiar el espacio de direcciones. Como desventaja, los hilos a nivel de usuario no se pueden ejecutar mientras el kernel est ocupado, por ejemplo, con paginacin o E/S, ya que esto necesitara algn conocimiento y participacin por parte del kernel. Hilos de nivel kernel.En este tipo de paquetes el ncleo gestiona los hilos. No se necesita un sistema de tiempo de ejecucin como en el caso de los hilos a nivel de usuario.En un sistema operativo con soporte de hilos a nivel del kernel, los procesos no son entidades planificables, sino que son los hilos las entidades planificables y los procesos son slo contenedores lgicos para los hilos. 3.-Para el siguiente programa decidir que valores se pueden imprimir.

int a, *ptr_b; a = 0; ptr_b = malloc(sizeof(int)); *ptr_b = 0; if (fork()!=0) { a = 2; *ptr_b = 4; printf("%d %d\n", a, *ptr_b); } else { a = 5; *ptr_b = 7; printf("%d %d\n", a, *ptr_b); } Pensar en el mismo codigo, solo que en vez de procesos tenemos hilos.
4.-Dado el siguiente par de procesos que insertan datos en el spooler de impresion, donde cola es un espacio de memoria compartida y libre es una variable local a cada proceso.

P0: . libre := cola->fin+1; cola->buffer[libre] := job4; cola->fin := libre; . P1: . libre := cola->fin+1; cola->buffer[libre] := job5; cola->fin := libre; .

1. Dar una planificacion o escenario que produce la perdida de un trabajo.

2. Dar una planificacion o escenario que funciona correctamente. 3. ?Cuantas planificaciones existen para estas 3+3 lineas de codigo? ?Cuantas son correctas y cuantas producen problemas? (determine el %)
5.- Se tienen 2 procesos P0 y P1, P0 con N acciones atomicas y P1 con M acciones atomicas. Calcular cuantos escenarios posibles de ejecucion se pueden dar en un entorno concurrente. 6.-Considere los procesos P0 y P1, con un valor inicial de x=0. ?Cuales son los valores finales de x?

{ x=0 } P0: x:=x+1;

P1: x:=x+1;

Si ahora consideramos que x:=x+1 no es atomico a nivel de ensamblador y se compila en una secuencia de accesos a memoria y operaciones de la ALU, equivalentes al siguiente multiprograma. ?Cuales son los valores finales de x? { x=0 } P0: A := x; A := A+1; x := A;

P1: A := x; A := A+1; x := A;

Primitivas de sincronizacion 16.-Dados 3 procesos P0, P1 y P2 que realizan las acciones A0, A1 y A2, poner P's y V's de semaforos antes y despues de las acciones para sincrinizarlos de manera tal que se ejecuten en secuencia A0,A1,A2. Especificar el/los valor/es inicial/es de el/los semaforo/s. 17.-Implementar utilizando semaforos la Region Critica N-1, es decir dentro de la region critica puede haber a lo mas N-1 procesos. 18.-{Dificil} Implemente semaforos generales (el semaforo almacena valores arbitrarios) usando semaforos binarios (solo pueden valer 0 o 1).

19.-Implementar semaforos utilizando monitores. 20- {Dificil} La sincronizacion en monitores usa variables de condicion y dos operaciones especiales, wait y signal. Una forma mas general de sincronizacion son las esperas por condiciones con auto-sealizacion, donde escribimos await CondicionBooleana para bloquear el proceso hasta que la condicion se cumpla. Por ejemplo el BeginWrite del problema de lectores y escritores se resume a escribir await nr=0nw=0 dentro del monitor Claramente este esquema es mas general y abstracto que los monitores de Hoare y Brinch-Hansen, pero no se usan. ?Por que? Ayuda: pensar en la implementacion. 21.-{Mediano} El problema de lectores y escritores puede ser formulado de varias formas respecto a cuando cada categoria de procesos puede empezar. De manera cuidadosa describa 3 variaciones distintas del problema, cada una favoreciendo (o desfavoreciendo) alguna categoria de procesos. Para cada variacion, especifique que sucede cuando un lector o escritor esta listo para acceder a la base de datos y que sucede cuando un proceso ha terminado de usar la base de datos. 22.-Tenemos un Bao Unisex donde puede haber de manera excluyente varones y mujeres. Mediante semaforos sincronice la entrada y la salida del bao por parte de varones y mujeres (EntraVaron, SaleVaron, EntraMujer, SaleMujer) de manera que se cumpla con el invariante nv=0 nm=0, es decir que no se mezclen. Este problema clasico de sincronizacion tambien se conoce con el nombre de problema del Puente de Una Via, y modela el acceso a un recurso que puede ser compartido por muchos procesos de un tipo o (excluyente) de otro. Planificadores 23.-Los planificadores RR mantienen una lista de todos los procesos listos para correr, donde cada proceso aparece exactamente una vez. ?Que pasaria si hubiera 2 o mas apariciones de un proceso en la lista de procesos para correr? ?Para que serviria? 24.-?Se podra "medir" si un proceso es IO-bound o CPU-bound analizando el codigo fuente? (analisis estatico) ?Como se podria determinar en tiempo de ejecucion? (analisis dinamico) 25.-Mediciones realizadas en un sistema muestran que en promedio un proceso corre por T tiempo antes de bloquearse en I/O. Un cambio de proceso requiere de un tiempo S, denominado overhead (sobrecarga). Para un planificador RR con un quanto Q, dar una formula que mida la eficiencia de la CPU (tiempo usado en CPU/tiempo total) para los siguientes casos. 1. 2. 3. 4. 5. Q = infinito Q>T S<Q<T Q=S Q casi 0

26.-El planificador SPN (shortest process next) necesita de una medida de estimacion del tiempo de computo. Con un "factor de memoria" =1/2, donde los ultimos tiempos de corrida fueron: 40, 20, 40 y 15 msec. ?Cual es la estimacion del tiempo siguiente? 27.-Dar un conjunto de procesos con sus tiempos de arribo y sus tiempos de uso de CPU, que muestren que SJF!=SRTN (shortest job first, shortest remaining time next). 28.-Completar la tabla para las siguientes politicas de planificacion: FCFS, SJN, SRTN, RR (Q=1), RR (Q=5). Proc Arribo UsoCPU

A B C D E F G

0 2 3 7 8 15 25

3 6 10 1 5 2 7

Observando el Comportamiento de Linux


Parte A Buscar informacin acerca de la estructura del directorio /proc, y averiguar los siguientes datos Tipo y modelo de CPU.

Versin del kernel.

Tiempo en das, horas, minutos y segundos que han transurrido desde que se inici el sistema operativo.

Cuanto tiempo de CPU ha sido empleado para procesos de usuario, de sistema y cuando tiempo no se us.

Cuanta memoria tiene y cuanta est disponible.

Cuantos pedidos de lectura/escritura a disco se han realizado. Cuantos cambios de contexto han sucedido. Cuantos procesos se crearon desde que inici el sistema.

Estos datos se tomaron del servidor de alumnos: Type: GenuineIntel Model: Intel(R) Xeon(TM) CPU 2.40GHz Kernel: 2.4.18-custom.1.3 UpTime: 1D 5:32:47.43 UserTime: 1:49.9 SysTime: 6:55.32 IdleTime: 1D 5:24:03.02 TotalMem: 922587136 FreeMem: 15532032 Disk: 667810 Context: 16336100 Processes: 18224

You might also like