OPERACIJSKI SUSTAVI 3.12.2001.

Zadatak 1 Objasnite pojam signala i napišite prekidnu rutinu za obradu prekida više razina. Detaljno objasnite kako i zašto zaštititi neke dijelove programa od prekida.

Zadatak 2 Koristeći sistemske pozive fork, waitpid, exit, sleep i kill napišite program u kojem proces roditelj kreira dijete i to dijete kreira još jedno dijete (’unuk’ početnog procesa). Unuk treba ispisati poruku ’Ja sam unuk’ i vrtiti se u beskonacnoj petlji. Nakon 60 sekundi dijete treba uništiti unuka i završiti svoje izvodenje. Roditelj treba pričekati proces dijete da završi i ispisati poruku ’Proces dijete završio’.

Zadatak 3 Što (najvjerojatnije) ispisuje donji programski odsječak i što bi ispisao kad bi se odkomentirale naredbe za rad s mutexima. Detaljno objasnite zbog čega se njihov ispis razlikuje.

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int A = 0;
void *thread_function (void *arg) {
    int i, x, n; n = (int) arg;
/*  pthread_mutex_lock(&mutex);     */
    for (i=0; i<n; i++){
        x=A; x=x+1;
        if (n%2) sleep (1);
        A=x;
    }
/*  pthread_mutex_unlock(&mutex);   */
}
void main (void) {
    pthread_t t_id[D]; int arg; int i;
/*  pthread_mutex_init(&mutex, NULL));  */
    for (i=0; i<D; i++)
        pthread_create(&t_id[i], NULL, &thread_function, (void*)(i+1)));
    for (i=0; i<D; i++) pthread_join(t_id[i], NULL);
/*  pthread_mutex_destroy(&mutex);      */
    printf ("A = %d\n", A);
}

Zadatak 4 Što je to Belady-jeva anomalija i navedite jedan primjer u kojem dolazi do te pojave.

Zadatak 5 Riješite sljedeći sinkronizacijski problem: U nekom kemijskom laboratoriju nalazi se 6 robota koji rade odredene spojeve. Kako bi odredeni spoj nastao svaki robot treba dvije epruvete, sastojke A i B i katalizator K. Prilikom inicijalnog mješanja sastojaka u prvoj epruveti robot se mora nalaziti u prostoriji sa posebnim uvjetima (unutar koje ima mjesta za 2 robota) Nakon tog mješanja smjesa mora odstajati 4 minute, nakon čega se iz te smjese lagano odvaja traženi spoj dok katalizator K ostaje nepromijenjen. Dobiveni spoj se stavlja u drugu epruvetu i odnosi u skladište, kao i katalizator K. U skladištu se nalazi 6 epruveta, ’neograničeno’ sastojaka A i B te 4 katalizatora.

Boris Milašinović

Rezultati: četvrtak 5.12.2001. u 16h Usmeni ispit: utorak 10.12. u 10h