Operacijski sustavi - upute za laboratorijske vježbe


Organizacija vježbi


Domaća zadaća

Laboratorijske vježbe (domaće zadaće) izrađuju se samostalno (svaki student sam radi vježbe kod kuće ili u računarskom laboratoriju, kad je on dostupan studentima). Po potrebi zatražiti pomoć predavača. Ne gledati tuđa rješenja. Ako je nešto "teže" to samo znači da vam ta znanja nedostaju, da ste ih nekako preskočili. Gledanjem tuđeg koda (ili korištenjem AI alata) ćete to opet preskočiti i nećete usvojiti najbitnije -- samostalnost u rješavanju problema. Osim toga, na predaji i provjerama ćete ostvariti značajno manje bodova bez tog znanja.

Izvorne tekstove programa pisati prema uobičajenim pravilima. Posebice paziti na strukturu koda, 'uvlačenje', razmake te lomljenje preduge linije!). Primjer stila pisanja koda u C-u prikazan je u https://www.kernel.org/doc/Documentation/process/coding-style.rst. Jedan od razloga lošeg izgleda koda jest što studenti miješaju korištenje tabulatora i razmaka za ostvarenje uvlaka. Takav program u drugim okolinama (npr. koje koriste druge dimenzije za tabulator) izgleda nečitljivo. KONZISTENTNO koristiti ILI samo tabulatore (preporučeno) ILI samo razmake za uvlake. Prije konačne pohrane vježbe u repozitorij provjeriti izgled, npr. preko web sučelja repozitorija.


Pripremiti razvojno okruženje (opcionalno)

Iako se neke vježbe mogu napraviti i na drugim okruženjima, preporučeno je pripremiti Linux/UNIX okruženje (ako već nemate pristup takvom računalu).

Upute: Priprema razvojnog okruženja su jedan primjer kako to jednostavno napraviti.

Kratke upute za rad u UNIX/Linux ljusci


Sadržaj vježbi

Po izradi neke vježbe (lab1-lab4), u ispisu (koji treba spremiti u readme.txt) mora biti vidljivo ispravno ponašanje programa u svim situacijama koje se spominju u zadatku. Ukoliko se nekim pokretanjem to ne vidi, program ponovno pokrenuti i po potrebi promijeniti parametre (npr. broj dretvi, trajanje odgoda i slično) ili pokrenuti program više puta i sve potrebne ispise uključiti u opis (readme.txt).

LAB-1: Signali

LAB-2: Dretve i semafori

LAB-3: Sinkronizacija monitorom (obavezna vježba) | kod iz uputa

LAB-4: Redovi poruka i cjevovodi

LAB-1::4 Primjeri/predlošci za vježbe (kod)

Dodatni primjeri koda


Upute za predaje vježbi

  1. Svaka vježba (zadatak/„LAB“) donosi do 5 bodova
  2. Zadaci se nadograđuju: LAB1 → LAB2→ LAB3→LAB4.
  3. Očekivani termini za predaju su (u kalendaru):
    1. LAB-1: 10. 4. (6. tj.)
    2. LAB-2: 15. 5. (11. tj.)
    3. LAB-3: 29. 5. (13. tj.)
    4. LAB-4: 12. 6. (14. tj.)
  4. Upute za pojedinu vježbu bit će dani u okviru predavanja tjedan/dva prije navedenih termina.
  5. Vježba se može predati u za to predviđenim dijelovima predavanja (zadnji sat u navedenim terminima) ili u pauzama predavanja, ali samo do početka termina za iduću vježbu. Izuzetak je LAB-3 koji se može predati svaki tjedan.
  6. Minimaln uvjet za prolaz laboratorijskih vježbi je izrada i predaja zadatka LAB-3.
  7. Studenti koji su u prošlim akademskim godinama odradili laboratorijske vježbe moraju ih ponovno odraditi ove godine.