wiki:WikiStart

Version 330 (modified by Mattia Monga, 14 months ago) (diff)

--

Laboratorio di Sistemi Operativi

Turno cognomi con lettera iniziale A-I

Materiale 2018/2019

1. 27 febbraio 2019 (Aula 303)

2. 6 marzo 2019 (Aula Gamma)

3. 13 marzo 2019 (Aula Gamma)

4. 20 marzo 2019 (Aula Gamma)

5. 27 marzo 2019 (Aula Gamma)

6. 3 aprile 2019 (Aula Gamma)

7. 10 aprile 2019 (Aula Gamma)

8. 17 aprile 2019 (Aula Gamma)

9. 8 maggio 2019 (Aula Gamma)

15 maggio 2019 LEZIONE SOSPESA

10. 22 maggio 2019 (Aula Gamma)

11. 29 maggio 2019 (Aula Gamma)

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