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). Po potrebi zatražiti pomoć predavača.

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.


Predaje vježbi

  1. Svaka vježba (zadatak/„LAB“) donosi do 6 bodova:
    1. do dva boda za kod u repozitoriju, ako je ispravan i postavljen u repozitorij prije termina zadane vježbe te je vježba potom i predana
    2. do četiri boda na predaji.
  2. Zadaci se nadograđuju: LAB0 → LAB1 → LAB2→ LAB3. LAB4 je zaseban.
  3. Kod mora biti u repozitoriju dan prije termina (prije petka). Ako nije, onda se ne može pristupiti predaji.
  4. Termini za predaju su (u kalendaru):
    1. LAB-0: 22. 3. (3. tj.)
    2. LAB-1: 12. 4. (6. tj.)
    3. LAB-2: 17. 5. (11. tj.)
    4. LAB-3: 31. 5. upload, 7.6 predaja (13./14. tj.)
    5. LAB-4: 14. 6. (15. tj.)
    6. Nadoknada za LAB-3: 14. 6. (15. tj.)
  5. Redovan način predaje: rješavanje zadataka iz područja vježbe na papiru, na početku predavanja (u 14:15) u navedenim terminima. Primjeri zadataka
  6. Iznimno, ako je student napravio vježbu i postavio ju u repozitorij do roka, ali je opravdano spriječen doći u zadani termin na predaju, vježbu može predati idući tjedan na FER-u, uz prethodni dogovor.
  7. Minimalni uvjeti za prolaz laboratorijskih vježbi jesu (oba moraju biti ispunjena):
    1. izrada zadatka LAB-3, njegovo postavljanje u repozitorij
    2. pozitivna ocjena za LAB-3 na predaji (regularnoj ili na nadoknadi).
  8. Na nadoknadi (zadnji tjedan) se predaje samo LAB-3 (ako već nije predan) te LAB-4. Vježbe LAB-0/1/2 se ne mogu nadoknaditi.
  9. Paziti na ispravnost repozitorija – neispravnost se kažnjava negativnim bodovima.
  10. Rješenja studenata (kodovi) se na kraju semestra međusobno uspoređuju.
    • Neočekivana sličnost u netrivijalnim zadacima se kažnjava – studenti s „presličnim kodom“ dobivaju negativne bodove, neovisno o tome tko je autor a tko je kopirao kod.
    • Alat za provjeru je neosjetljiv na kozmetičke izmjene.
    • Raditi samostalno, ne gledati tuđi kod i nikakvih problema neće biti (ne treba nešto „izmišljati“ da bi kod bio drukčiji).
  11. Studenti koji su u prošlim akademskim godinama odradili laboratorijske vježbe moraju ih ponovno odraditi ove godine (napraviti novi repozitorij / ponoviti postupak dijeljenja repozitorija prema uputama).

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

LAB-0:   a) Git - kratke upute  (+demo)
                b) Zadatak

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

LAB-3: Monitori | kod iz uputa | dodatne upute i komentari

LAB-4: Datotečni sustav + skica (opcionalna vježba)

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

Dodatni primjeri koda