wiki:WikiStart

Version 356 (modified by Mattia Monga, 2 months ago) (diff)

--

Laboratorio di Sistemi Operativi

Edizione per gli studenti del corso di laurea in "Sicurezza dei sistemi e delle reti informatiche" (F68)

Materiale 2019/2020

1. 7 ottobre 2019 (Aula 303)

2. 14 ottobre 2019 (Aula Delta)

qemu-system-i386 -cdrom /path/dove/hai/messo/solab.iso
# meglio con 768M di memoria
qemu-system-i386 -m 768 -cdrom /path/dove/hai/messo/solab.iso
# è utile usare attivare la rete e connettersi con ssh -p 8022 user@localhost per evitare problemi con la tastiera, soprattutto in ambiente Windows & Mac
qemu-system-i386 -m 768 -net nic,model=virtio -net user,hostfwd=tcp::8022-:22 -cdrom /path/dove/hai/messo/solab.iso
# In ambiente Linux l'emulatore kernel KVM velocizza parecchio l'esecuzione
qemu-system-i386 -m 768 -enable-kvm -net nic,model=virtio -net user,hostfwd=tcp::8022-:22 -cdrom /path/dove/hai/messo/solab.iso

3. 21 ottobre 2019 (Aula Delta)

4. 28 ottobre 2019 (Aula Delta)

5. 4 novembre 2019 (Aula Delta)

6. 11 novembre 2019 (Aula Delta)

7. 18 novembre 2019 (Aula Delta)

8. 25 novembre 2019 (Aula Delta)

Esame

La procedura per finalizzare l'intero esame di Sistemi Operativi I e II è riassunta di seguito:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>

int solab(void) {
    return rand() % 31;
}

int teoria(void) {
    return rand() % 31;
}

int main() {
    int fds[2], rt, rl;
    printf("Iscrizione SIFA a (entrambi) Sistemi Operativi I e II\n");
    pipe(fds);
    srand(time(NULL));
    if (fork() == 0) {
        int r;
        do {
            sleep(rand() % 2);
            r = solab();
            printf("Voto laboratorio: %d\n", r);
        } while (r < 18);
        close(fds[0]);
        write(fds[1], &r, sizeof(r));
        return 0;
    } 
    do {
        sleep(rand() % 3);
        rt = teoria();
        printf("Voto teoria: %d\n", rt);
        srand(time(NULL));
    } while (rt < 18);

    close(fds[1]);
    read(fds[0], &rl, sizeof(rl));
    printf("Registrazione (occorre essere iscritti SIFA) di Sistemi Operativi I e II: %u \n", 
           (unsigned int)((3.*(float)rl + 9.*(float)rt)/12.));
    return 0;
}

Materiale aa.aa. precedenti