Sei sulla pagina 1di 12

Lab1: Un Baash DIRECTORIO PROC El directorio especial /proc provee informacin completa y detallada acerca de los trabajos internos

de Linux y te permite ajustar a la medida muchos aspectos de su configuracin. Tipo y modelo de CPU. 1. Utilice el comando cat /proc/cpuinfo para saber la informacin sobre el procesador AMD Turion(tm) X2 Dual-Core Mobile RM-70 AunthenticAMD

Versin del kernel. versin 2.6.38-8generic


Utilice el comando cat /proc/uname r y el comando cat /proc/versin nos da la informacin de nuestro kernel

Tiempo en das, horas, minutos y segundos que han transcurrido desde que se inici el sistema operativo con el comando cat /proc/uptime

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. Con el comando cat /proc/meminfo nos da la informacin sobre la memoria

Cuantos pedidos de lectura/escritura a disco se han realizado. Con el comando hdparm tT /dev/sda para realizar prueba de lectura en un disco duro

Cuantos cambios de contexto han sucedido. El cambio de contexto lo podemos observar con el comando cat /proc/stat

Cuantos procesos se crearon desde que inici el sistema. El comando strace -c ls >/dev/null mostrara las llamadas del sistema hechas y recibidas por un proceso

Lab2: Un Baash 1. Cmo ejecutamos un archivo que se llama exactamente como un builtin? Como ya sabemos el builtin nos permite modificar el comportamiento de comandos Solo busca comandos internos EN WINDOWS Si el archivo es un ejecutable, basta hacer un "CreateProcess". Si el archivo no es un ejecutable, tienes que hacer un "ShellExecuteEx" con el "verbo" (lpVerb) correcto. Usualmente, "open" ser suficiente. Con esto dejas que Windows decida qu programa debe abrir el archivo en particular. 1. Por qu las recomendaciones de seguridad indican que es peligroso tener ./ en PATH al ms puro estilo DOS? En la cual se conforma de de lo que es el path, unidades y rutas Ya que el path nos indica como y en donde podemos nostros buscar cualquier archivo de comandos ya que suele darnos mas directorios o directorios raiz y cualquier directorio dentro de una unidad de disco 1. Supongamos que existen 2 comandos posibles dentro de la secuencia que contien PATH, donde el primero en la secuencia no est marcado como ejecutable y el segundo si. Qu hace el intrprete bash, ejecuta el segundo o informa que el primero no tiene permiso de ejecucin? (incorporte esta semntica a baash) 2. Indique qu sucede cuando se tiene un directorio en el pwd actual con el mismo nombre que un archivo ejecutable en el PATH. Dice que no puede ejecutar un directorio o ejecuta el comando que encontr? (siga esta forma en baash) path que ejecuta los archivos solo los que se podran ejecutar 3. Obtenga la lgica ms sencilla que unifique los tres tipos de bsqueda. 4. Podemos poner directorios relativos en PATH? (haga lo propio con baash) son las que se construyen apartir de directorios desde donde iniciamos

1. Investigue cuales son los comandos internos para manejo de procesos en background de bash cd, chdir, alias, set , export.

2. En el ejemplo de arriba el operador '&' funciona como operador de composicin paralela. Cul es el operador de composicin secuencial en Bourne shell? en las que podemos hacer comparaciones cadenas o enteros

1 Sistemas Operativos 1.-Cuales son las dos funciones principales de un Sistema Operativo? la primera seria gestionar recursos ya sea el control de discos duros dvdrom cdrom, la asignacion de espacio en memoria administracion de archivos el sistema se encarga de almacenar la informacion en diferentes unidades del disco para que asi el usuario pueda recuperarlos 2.- Que es la multiprogramacion? es la que permite que uno o mas procesos ocupen la misma memoria y se puedan ejecutar en un mismo tiempo dentro de lo que es la pc 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)? 4000 bytes de RAM de vdeo 2MB de RAM nicamente para contener la imagen. En 1980 el costo de la memoria era de u$s5/KB, ?Cuanto cuesta en la actualidad? Memoria Ram 1gb Ddr Pc2100 Pc2700 $295 Memoria Udimm Ddr3 1333mhz 4gb Adata $349 4. Cuales de las siguientes instrucciones deberian permitirse en modo kernel? Deshabilitar todas las interrupciones Leer el Reloj de Tiempo Real (RTC) Escribir el RTC Cambiar el mapa de memoria

1. 2. 3. 3.

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? 6. La MMU normalmente compara la direccion virtual entrante con el Registro Limite, provocando una excepcion cuando la primera se excede. Un dise#o 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? Yo pienso que ya que el nucleo o kernel tiene que estar conectado con por asi decirlo el hardware ?Son equivalentes en velocidad? 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(). Exec()= Retornan -1 si hay error. Sin errores no regresa nada fork()= este da el caso de que si falla le regresa lo que es el comando unlink() ya que

es 9.

el que borra las entradas de directorios ?Puede la siguente llamada a sistema retornar en count un valor menor que nbytes? Explicar

count = write(fd, buffer, nbytes) La llamada write escribe un nmero de bytes dado por count en el fichero cuyo file descriptor viene dado por fd. Los bytes a escribir deben encontrarse a partir de la posicin de memoria indicada en buf. 10.Indique la diferencia escencial entre un dispositivo de caracteres y uno de bloques. carcter conjunto de datos en un bloque de tamao predefinido. bloque, porque este es el camino ms rpido para enviar o recibir grandes cantidades de informacin. 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.

2 Sistemas Operativos 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? Para permitir que se ejecute algn otro thread. Tal llamada es importante ya que no existe ninguna interrupcin de reloj que d soporte al tiempo compartido como en el caso de los procesos. 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? nos referimos mas al nucleo con las tablas threads ya que tienen seguimientos dentro del sistema ya si los threads quieren crear mas de ellos llaman al nucleo o kernel 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. la operacion que realize a, *ptr_b

Condiciones de Carrera 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; . 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?

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?

7. Mostrar que agregando un re-testeo de lock=0 luego del busy waiting en metodo de la variable candado, no soluciona nada. 8. Mostrar que en alternancia estricta el proceso P0 puede impedir al P1 entrar a la CS aunque P0 este fuera de ella. 9. Deshabilitar interrupciones no funciona para regiones criticas anidadas (una dentro de la otra). Reescribir Begin/EndRegion para arreglar este problema. 10.Generalizar la alternancia estricta a 3 procesos. Generalizarla a n. 11. Demostrar de manera rigurosa que el algoritmo de Peterson no adolece del problema de progreso de la alternancia estricta. 12. {Dificil} Demostrar de manera rigurosa que el algoritmo de Peterson cumple con la propiedad de seguridad de la Region Critica (#proc_in_cs1). 13. Sigue cumpliendo con la propiedad de seguridad el algoritmo de Peterson si intercambiamos las 2 primeras asignaciones de su BeginRegion? Demostrar o dar contraejemplo. Primitivas de sincronizacion 15. 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. 16. Implementar utilizando semaforos la Region Critica N-1, es decir dentro de la region critica puede haber a lo mas N-1 procesos. 17. {Dificil} Implemente semaforos generales (el semaforo almacena valores arbitrarios) usando semaforos binarios (solo pueden valer 0 o 1). 18. Implementar semaforos utilizando monitores. Un monitor es una coleccin de procedimientos, variables y estructuras de datos que estn todos agrupados juntos en un tipo especial de mdulo o paquete. Los procesos pueden llamar a los procedimientos de un monitor siempre que quieran, pero no se les permite acceder directamente a las estructuras de datos internas del monitor desde procedimientos declarados fuera del monitor. 19. {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=0 nw=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. El otro uso de los semforos es la sincronizacin. Los semforos entrada_llena y entrada_vacia son necesarios para garantizar que ocurran o no ciertas secuencias de sucesos. En este caso concreto, esos semforos aseguran que el productor detiene su ejecucin cuando el bfer est lleno, y que el consumidor detiene su ejecucin cuando el bfer est vaco. Este uso es diferente de la exclusin mutua. 20. {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. 21. 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 22. 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? Si slo hay una CPU disponible, es necesario hacer una eleccin para determinar cual de esos procesos ser el siguiente que se ejecute. La parte del sistema operativo que realiza esa eleccin se denomina el planificador

Potrebbero piacerti anche