wiki:WikiStart

Laboratorio di Sistemi Operativi

Materiale 2017/2018

1. 28 febbraio 2018 (Aula 400)

2. 7 marzo 2018 (Aula 309)

3. 21 marzo 2018 (Aula 309)

4. 28 marzo 2018 (Aula 309)

5. 4 aprile 2018 (Aula 309)

6. 11 aprile 2018 (Aula 309)

7. 18 aprile 2018 (Aula 309)

8. 2 maggio 2018 (Aula 309)

9. 16 maggio 2018 (Aula 309)

10. 23 maggio 2018 (Aula 309)

11. 30 maggio 2018 (Aula 309)

12. 6 giugno 2018 (Aula 309)

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

Last modified 4 months ago Last modified on Jun 8, 2018, 8:36:03 PM