wiki:WikiStart

Version 263 (modified by Mattia Monga, 7 years ago) ( diff )

--

Laboratorio di Sistemi Operativi

Materiale 2016/2017

1. 1 marzo 2017 (Aula 403)

2. 8 marzo 2017 (Aula 307)

3. 15 marzo 2017 (Aula 307)

4. 22 marzo 2017 (Aula 307)

5. 29 marzo 2017 (Aula 307)

6. 5 aprile 2017 (Aula 307)

7. 12 aprile 2017 (Aula 307)

19 aprile 2017 Lezione sospesa

8. 26 aprile 2017 (Aula 307)

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

Note: See TracWiki for help on using the wiki.