Laboratorio de Sistemas Operativos - 2008 - 2 | |||||
Usted se encuentra en: Universidad del Cauca → ~emezav → Laboratorio de Sistemas Operativos | |||||
|
Contenido de la asignaturaEn esta página puede consultar el contenido de la asignatura y alguna bibliografía asociada. [18-02-2009] En el siguiente enlace encontrarán las notas del tercer corte (HTML). 28-01-2009: Imagenes de disco En el siguiente enlace encontraran una guia de como crear imagenes de disco (HTML). 28-01-2009: Parcial Final. En el siguiente enlace encontraran el enunciado del parcial final (PDF). Fecha de entrega: Febrero 4 de 2009, 4:00 P.M.
[14-01-2009] : Entrada / Salida usando interrupciones de la BIOS y Memoria de Video. Desarrollar un sector de arranque en GNU Assembler, que cargue un mini-kernel que ocupa 8 sectores de 512 bytes. El mini-kernel deberá implementar la siguiente funcionalidad: * Imprimir un carater en pantalla * Imprimir una cadena de caracteres en pantalla * Leer una cadena e imprimir la cadena al revés * Manipular los atributos de texto / fondo para escribir cadenas. [02-12-2008] Segundo examen parcial El enunciado del segundo parcial se encuentra en el siguiente enlace (PDF). Fecha de entrega: Miércoles 10 de Diciembre de 2008. [02-12-2008] : Comunicacion de procesos. 1. Señales POSIX: Desarrollar un programa que cree una copia de sí mismo mediante la llamada al sistema fork(). Una vez creada la copia, el proceso padre deberá enviar la señal SIGUSR1 al proceso hijo. El proceso hijo deberá implementar la lógica necesaria para capturar la señal e imprimir un mensaje. 2. Sockets: Desarrollar un programa que implemente la funcionalidad echo (eco) mediante sockets. Para ello se deberá crear un programa servidor, que escuche en un puerto específico (por ejemplo, el puerto 3333). La única tarea del servidor consistirá en recibir líneas del socket, y enviar de vuelta las líneas recibidas (de ahí el nombre echo - eco). Por otra parte, se deberá implementar un programa cliente, que se conectará al servidor en el puerto que éste se encuentra escuchando (para el mimso ejemplo, el puerto 3333). El cliente deberá leer líneas de caracteres por la entrada estándar, enviarlas al servidor, e imprimir la respuesta que se obtiene del servidor (que debe ser la misma linea enviada) a la salida estándar. El cliente terminará cuando se lea una línea con la palabra end. [03-12-2008] Las notas del primer corte se encuentran disponibles en el siguiente enlace (HTML). [26-11-2008] :Otro problema de sincronizacion para solucionar: La Montaña Rusa. Un conjunto de M (>=3) turistas ingresan a un parque de diversiones con el fin de realizar un recorrido en una montaña rusa. Para subir a esta atracción, los turistas primero deben comprar un boleto en el orden de llegada a la taquilla. Luego se acomodan en carros con cupo para tres (3) personas, en el mismo orden de llegada (Tenga en cuenta que todo carro debe quedar con el cupo completo, a excepción del último carro necesario para las M personas). Un operador de la montaña rusa verifica que todos los turistas se hayan acomodado en los carros, y sólo hasta ese momento se puede iniciar el recorrido. Una vez finalizado el recorrido, los turistas pasan a firmar un libro en el cual certifican que han llegado bien al final del recorrido. Tenga en cuenta que sólo un turista puede firmar al tiempo, y que los turistas pueden firmar en cualquier orden. Una vez que todos los turistas han firmado, la montaña rusa queda disponible para realizar el recorrido a otro conjunto de turistas.
Desarrolle un algoritmo que permita sincronizar los recorridos de la montaña rusa, teniendo en cuenta lo siguiente: Existen 10 carros disponibles en la montaña rusa. Si M > 30, los turistas sobrantes deberán esperar al siguiente recorrido. [12-11-2008] : El problema del Barbero Dormilón. Implementar el problema del barbero dormilón utilizando hilos y semáforos POSX. Algunos ejemplos se encuentran en el siguiente archivo comprimido (ZIP). Recuerde que para compilar necesita la librería pthread. Por ejemplo, para un archivo llamado thread1.c: gcc -o thread1 thread1.c -lpthread [05-11-2008] Primer examen parcial El enunciado del primer parcial se encuentra en el siguiente enlace (PDF). Una propuesta para el algoritmo del parcial se encuentra en el siguiente enlace (PDF). Fecha de entrega: Miércoles 12 de Noviembre de 2008. [25-04-2008] En los siguientes enlaces podrán encontrar una guía para instalar y configurar Cooperative Linux :
En la siguiente dirección URL pueden encontrar una excelente guía sobre la programación en C yel uso de las llamadas al sistema. (Derechos de autor de David Marshall, 1994).
|
||||
Erwin Meza Vega. Oficina 450 edificio FIET, Sector Tulcán. Popayán, Cauca. Tel: (2)8209800 ext 2149. |