wiki:WikiStart

Version 240 (modified by Mattia Monga, 8 years ago) ( diff )

--

Laboratorio di Sistemi Operativi

Materiale 2015/2016

1. 2 marzo 2016

2. 9 marzo 2016

3. 16 marzo 2016

4. 23 marzo 2016

5. 6 aprile 2016

6. 13 aprile 2016

7. 20 aprile 2016

8. 27 aprile 2016

9. 4 maggio 2016

10. 11 maggio 2016

11. 1 giugno 2016

12. 8 giugno 2016

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.