wiki:WikiStart

Version 335 (modified by Mattia Monga, 5 years 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)

10. 22 maggio 2019 (Aula Gamma)

11. 29 maggio 2019 (Aula Gamma)

Per lavorare sul lab2:

git checkout lab2
git cherry-pick image-corrections

12. 5 giugno 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

Note: See TracWiki for help on using the wiki.