ZEMRIS                                                               English

Operacijski sustavi, laboratorijske vježbe


Organizacija vježbi

Laboratorijske vježbe mogu se predati isključivo tijekom semestra u tjednima navedenima u tablici.

Tjedan labosa

Rad s demonstratorima
(za demonstrature nema prijave)

Termini predaje labosa
u A109 i A110
(prijave putem sustava ferko)

Bodovanje (najveći mogući broj bodova)

Vježba 1

Vježba 2
opcionalno

Vježba 3

Vježba 4
opcionalno

1. tjedan
24.3. - 28.3.

ponedjeljak, 24.3.2025. 10-10:45 u A102
četvrtak, 27.3.2025 9-9:45 u A110

četvrtak, 27.3.2025. 8-18
petak, 28.3.2025. 8-15
4

-

-

-

2. tjedan
31.3. - 4.4.

četvrtak, 3.4.2025. 9-9:45 u A110

četvrtak, 3.4.2025. 8-18
petak, 4.4.2025. 8-15
3

-

-

-

3. tjedan
7
.4. - 11.4.

četvrtak, 10.4.2025 9-9:45 u A110

četvrtak, 10.4.2025. 8-18
petak, 11.4.2025. 8-15
2

4

-

-

4. tjedan
14.4. - 18.4.

četvrtak, 17.4.2025 9-9:45 u A110

četvrtak, 17.4.2025. 8-18
petak, 18.4.2025. 8-15
-

3

-

-
             

5. tjedan
19
.5. - 23.5.

četvrtak, 22.5.2025 9-9:45 u A110

četvrtak, 22.5.2025. 8-18
petak, 23.5.2025. 8-15

-

-

8

-

6. tjedan
26
.5. - 30.5.

srijeda, 28.5.2025 9-9:45 u A110

srijeda, 28.5.2025. 8-18
četvrtak, 29.5.2025. 8-15
-

-

6

4

7. tjedan
2
.6. - 6.6.

četvrtak, 5.6.2025 9-9:45 u A110

četvrtak, 5.6.2025. 8-18
petak, 6.6.2025. 8-15
-

-

4

3

8. tjedan
12
.6.

-

(NADOKNADA)
četvrtak, 12.6.2025. 9-16:30

0

-

0

-

 

Zadaci iz laboratorijskih vježbi rješavaju se samostalno kod kuće.

Prijava predaje vježbe. Svaki student se za svaku vježbu koju želi predati u nekom terminu mora prijaviti na ferku.
Svaki nedolazak na prijavljeni termin labosa kažnjava se negativnim bodom.

Predaja vježbe i bodovanje. Prilikom predaje laboratorijske vježbe će se bodovati od -2 (moguće je dobiti i negativne bodove) do najviše onoliko bodova koliko je naznačeno u tablici. Laboratorijska vježba se ne može predati ako prethodno nije postavljena na web.
U nekom terminu/tjednu je moguće predati najviše dvije vježbe. U terminu nadoknade moguće je predati najviše jednu, obveznu vježbu.
Vježbe se predaju po redu.
Vježbe se moraju postaviti na web (upload) u tjednu kada se predaje labos najkasnije do srijede do 9 sati,

Studenti koji su ranijih godina odradili laboratorijske vježbe, ali nisu položili predmet, mogu se javiti predmetnom nastavniku u prva tri tjedna nastave da im se priznaju bodovi iz prošle godine (skalirano).

Demonstrature. Za rad s demonstratorima nije se potrebno unaprijed prijaviti u sustavu ferko već se može po potrebi sudjelovati uživo na sastancima s demonstratorima u terminima navedenima u tablici.

Izvorne tekstove programa pisati prema uputama (posebice paziti na 'uvlačenje', razmake te lomljenje preduge linije!). Primjeri korištenja stila prikazani su u kodovima priloženim u uputama (npr. random_prime.c, sigaction.c).

Sve izvorne tekstove programa koji čine jednu vježbu staviti u arhivu proizvoljnog imena, npr. "vjezba_x.zip" (x-broj vježbe). Sustav za detekciju plagijata ne prihvaća druge arhive osim zip (primjerice rar, gz i sl.)!
Ako se radi samo o jednoj datoteci, ne treba ju arhivirati.
Nikakve druge datoteke (osim izvornih tekstova programa) ili direktorije ne stavljati u arhivu (arhiva ne sadrži direktorij već samo datoteke i to datoteke s izvornim tekstovima programa (arhiva ne sadrži primjerice makefile)!
Nakon provjere da je ispravna datoteka (zip arhiva) postavljena na Web, obavezno zaključati predaju na Webu. Nepridržavanje navedenih uputa će se bodovno sankcionirati. (Učestale pogreške koje nose negativne bodove su: korištenje neke druge arhive osim zip, predaja vježbe na krivom mjestu: vježba x predaje se kao vjezba_y.zip, arhiva sadrži poddirektorije ili izvršne datoteke.) Odabrati pravu datoteku za upload je izazov i kažnjava se negativnim bodovima upload pogrešne datoteke prilikom detekcije plagijata.)

Sva pitanja vezana uz laboratorijske vježbe uputiti na adresu os@zemris.fer.hr.


Sadržaj vježbi

Važna napomena: Sve što u zadacima nije zadano, riješiti na proizvoljan način!

Prvi labos: Prekidi i signali

    (4) U proizvoljno odabranom programskom jeziku simulirati rad:
            - prekidnog sustava s programskom potporom prekidanju (rješavaju studenti čiji JMBAG završava znamenkama 0, 1, 2, 3 ili 4 )
            - prekidnog sustava sa sklopovskom potporom prekidanju (rješavaju studenti čiji JMBAG završava znamenkama 5, 6, 7, 8 ili 9 )
          s pet razina prekida (pet prioriteta) gdje se prekidi simuliraju ili proizvoljno odabranim signalima generiranih iz tipkovnice ili drugim programom, ili su svi prekidi simulirani jednim signalnom (npr. SIGINT) nakon čega se unosi prioritet prekida.
          Simulator treba ispisivati stanje sustava (izvodi li se glavni program ili neki prekidni potprogram te vrijednosti svih bitnih struktura podataka) svaki puta kada se dogodi neka promjena u sustavu.

Primjeri izvornih tekstova programa: primjer_signali.c, primjer_spavanja.c
Ime datoteke s izvornim tekstom programa nije važno, ali se preporuča da se datoteka s izvornim tekstovima programa zove signali.c gdje ekstenzija ovisi o programskom jeziku, pa će se tako datoteka, ako je zadatak rješavan u programskom jeziku C++, zvati signali.cpp. Jednako vrijedi i za sve ostale vježbe gdje su crveno u zagradama prijedlozi kako se datoteke s izvornim tekstovima programa mogu zvati.
Primjeri pitanja koja se studentima mogu postaviti prilikom predaje prve i druge vježbe.

Drugi labos: Višezadaćni rad

(4) Zadatak 2 (zadatak nije obavezan, ali donosi bodove): U programskom jeziku C ili C++ te u bilo kojem UNIX/linux okruženju ostvariti sljedeće osnovne funkcionalnosti ljuske: osnovno pokretanje programa u prvom planu (foreground), pokretanje više programa u pozadini (background) i povijest izdanih naredbi u ljusci (naredba history). U pozadini treba ljuska omogućiti ispis pokrenutih procesa i završavanje s radom zadanog procesa signalom SIGKILL ili SIGTERM. Dozvoljeno je koristiti sve funkcije koje pruža standardna C biblioteka (npr. glibc, musl) osim funkcije system. Detaljne upute za izradu vježbe.

Treći labos: Sinkronizacijski mehanizmi

U programskom jeziku C ili C++ riješiti sljedeće sinkronizacijske probleme:
(4)
Zadatak 3a: Problem procesa pripravljača sendviča riješiti  uz pomoć semafora (semafori.c)
(4) Zadatak 3b: Problem dretvi partibrejkera riješiti uz pomoć monitora (
monitori.c)

Četvrti labos: Raspoređivanje radnog spremnika straničenjem (zadatak nije obavezan, ali donosi bodove)

(4) Zadatak 4: U proizvoljno odabranom programskom jeziku simulirati straničenje na zahtjev za računalo s proizvoljnim brojem raspoloživih okvira, a programi neka se sastoje od proizvoljnog broja stranica. Strategija zamjene stranica u okvirima neka se odvija prema pravilima satnog algoritma. Nakon svakog zahtjeva za pristup spremniku ispisati sadržaj svih korištenih struktura podataka.
Primjer ispisa
Primjer prošlog zadatka s opisom potrebnih struktura podataka (kojeg ne treba riješiti bukvalno tako kako je navedeno u tom primjeru). (stranicenje.c)


Korisni programi i poveznice

Predaja labosa na udaljenom računalu

Linux na računalu s instaliranim MS Windows operacijskim sustavom

Izrada labosa kod kuće na vlastitom PC računalu i predaja labosa na PC računalima na Fakultetu koristeći sliku virtualnog stroja (nije više aktualno)


Konzultacije predavanja i vježbe (uz najavu mailom)

Grupa

Predavač, prostorija

P02

Marin Golub: D316

P04

Leonardo Jelenković:  D342

P03

Marko Đurasević: D338

P01

Domagoj Jakobović: D329

P01E

Nikolina Frid: D340

Konzultacije vježbe (uz obaveznu najavu mailom)

Asistent, prostorija
Ivan Grubišić: D307

Termin konzultacija sa asistentom ili nastavnikom se dogovara mailom na e-mail adresu: ime.prezime(at)fer.hr .
Pitanja u vezi laboratorijskih vježbi poslati na adresu os(at)zemris.fer.hr.


Zadnja promjena:31.03.2025