Post Format

Diseño de Sistemas Operativos – FIC

No suelo hablar en mi blog de temas de la facultad, porque creo que es uno de esos temas que no interesan fuera de contexto, pero últimamente ciertas prácticas están ganándose un post en la categoría Personal, porque ya es algo personal.

Hoy estoy de irónica celebración. Hace un mes que comenzó la entrega de prácticas de una asignatura de segundo ciclo, Diseño de Sistemas Operativos, y ni he acabado de entregarla ni finalmente hemos hecho una cena para celebrar el mes de entrega. A pesar de todo, me gusta la asignatura, y a pesar de todo, me gusta el profesor, a pesar de que su peculiar método de entrega de prácticas obligatorias esté siendo bastante perjudicial para mi estado de ánimo.

El caso es que mejor tomarse las cosas con humor, y de ahí El vídeo del niño loco alemán del Unreal haciendo las prácticas de DSO (Diseño de Sistemas Operativos). No he tenido paciencia para completarlo, y los subtítulos son algo genéricos, pero es suficientemente mediocre como para publicarlo como desahogo.

Después de un mes de entrega

A continuación una serie de consejos, o pequeños truquillos, por si alguien llega a mi blog personal buscando por Google:

  • La relocalización es un tema más complejo de lo que parece a primera vista. Probadlo con un grafo en el que pueda haber varios ciclos, en el que un dato de la estructura pueda ser un puntero (que no se debe relocalizar).
  • Al hacer lseek, comprobad que la posición a la que os movéis no sea negativa.
  • Para compilar utilizando aio_read, aio_write, etc, hay que utilizar el flag -lrt de gcc, además de incluir el aio.h. Esto es del tipo de cosas que nadie te dice.
  • La llamada close hace close. Aunque haya una lectura asíncrona aio_write pendiente de escribir.
  • Sí, sabes lo que hay en la pila, pero la cpu guarda registros con direcciones de pila. EBP (base de pila), ESP (cima de pila), puntero al siguiente frame… ¿cual es cual? Además gcc 3.4 mete instrucciones en las llamadas a funciones para modificar estos punteros, cosa que gcc 4.0 no hace. ¿Esto sirve de ayuda? Posiblemente no.
  • En el kernel 2.6 la forma de compilar módulos es distinta de 2.4. No perdáis tres días intentando hacerlo con manuales para 2.4 como hice yo.
  • Puedes montar una partición en modo síncrono con mount /dev/loquesea /mnt/loquesea -o sync, pero esto no te servirá de nada, medir tiempos “es complicado”.
  • El comando cp utiliza double buffering. O eso dicen.
  • Era más feliz cuando podía utilizar el término memoria virtual sin remordimientos.
  • La vida es demasiado corta como para perder tanto tiempo con una práctica.

    Y de regalo una ración de keywords: Diseño de Sistemas Operativos (DSO), Facultade de Informática (FIC), Universidade da Coruña (UDC)

9 comments

  1. ¡Jajajaja! Me ha gustado, jajaja. Aunque, ejem, algún día podremos discutir algo sobre los no-punteros de Java y los NullPointerException, jajaja.

    Un saludo y suerte con las prácticas, afortunadamente yo ya sólo sufro en mis horas de trabajo, el mundo ya sufre otro “Geniero” en Informática.

    Un saludo cordial.

  2. No me faltan ganas de hacer lo mismo que tu y largarme a Madrid a hacer el segundo ciclo por no tener la FIC delante…

    Yo después de este cuatrimestre ya puedo decir que odio C. La ignorancia es la felicidad, vivan los lenguajes “para tontos” como Java.

    La única forma de sacar un NullPointerException que recuerdo:


    tamaño=lista.lenght(); //Mal!
    for(int i=0;i<;i++)
    {
    if(lista.elementAt(i).metodo==algo) lista.remove(i);
    }

    Vamos, típico error de principiante en Java, errores que se cuentan con los dedos de una mano y bien distintos a los infinitos niveles de profunda oscuridad de C ;)

  3. Pues nene, en Madrid, ahora mismo, están cogiendo gente en todas las empresas que conozco. Obviamente no te voy a decir que sea el trabajo de tu vida pero por algo hay que empezar. En abril se me acaba el contrato que tengo en la universidad y, desgraciadamente para mí, me adentraré en el mundo de la empresa privada. Dónde es algo que todavía estoy estudiando.

    Si te animas y necesitas información, estoy haciendo, poco a poco, una recopilación de información de pequeñas y no tan pequeñas empresas. Coge la dirección de mail de los comentarios y me pones un mail y estaré encantado de ayudarte.

    Un saludo.

    P.D:

    String cadena = NULL;
    cadena.length();

    Pensarás: “error de principiante de Java”. No, error de programador C, jeje.

  4. Taliban informatico

    03/05/2007 @ 9:27

    No se dice hacer un “casting” se dice hacer un “cast”

  5. oe sobre untrabajo exactamente donde seria como se dice hay que empezar lento pero seguro me gusta tu idea

  6. I’m really enjoying the design and layout of your blog. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a developer to create your theme? Superb work!

  7. Veo que el sufrimiento con DSO viene de atrás. A día de hoy lo seguimos haciendo, si a alguien le consuela…

Leave a Reply

Required fields are marked *.