OS1/Jun 2024
1. zadatak
Postavka
Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima cat
i less
, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla text
, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl text
se nalazi u poddirektorijumu docs
roditeljskog direktorijuma tekućeg direktorijuma interpretera komandne linije.
Rešenje
cat < ../docs/text | less
2. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Na asembleru 32-bitnog procesora picoRISC napisati naredbu tela date funkcije f
koja u registar r1
učitava vrednost argumenta z
. Upotrebiti simboličku konstantu, a njenu vrednost prethodno definisati direktivom def
. Argumenti se na stek smeštaju zdesna nalevo, stek raste ka nižim adresama, SP ukazuje na poslednju popunjenu lokaciju, povratna adresa je 32-bitna i samo ona se, osim argumenata, stavlja na stek pri pozivu potprograma, adresiblina jedinica je bajt, a tip int
je 32-bitni.
void f (int x, int y, int z);
Rešenje
3. zadatak
Postavka
a) Šta je eksterna fragmentacija? b) Da li se ona javlja kod kontinualne organizacije memorije, a da li se javlja kod segmentno-stranične organizacije memorije? c) Navesti samo naziv tehnike kojom se rešava eksterna fragmentacija bez promene načina organizacije memorije.
Rešenje
- Eksterna fragmentacija je situacija u kojoj je slobodna memorija izdeljena među memorijom alociranom za procese. Fragmentacija je u tom slučaju eksterna jer se nalazi van prostora alociranog za procese. Pri eksternoj fragmentaciji može doći do situacije da u sistemu ima dovoljno slobodne memorije, ali da se neko parče zbog svoje veličine ne može alocirati u kontinuitetu.
- Eksterna fragmentacija se javlja kod kontinualne organizacije memorije, ali ne i kod segmentno-stranične.
- kompakcija
4. zadatak
Postavka
a) Kojom tehnikom se izbegava nepotrebna alokacija fizičke memorije za procese pokrenute sistemskim pozivom fork (navesti samo naziv na srpskom i engleskom)? Kakva hardverska podrška je neophodna za implementaciju ove tehnike?
Rešenje
- kopiranje na upis (engl. copy-on-write)
- Potrebno je da procesor podržava virtuelizaciju memorije, to jest da ima MMU, kao i da desktiptori stranica imaju bitove za dozvolu upisa, kako bi moglo da dođe do određenog izuzetka kada bi se stranice iskopirale.
5. zadatak
Postavka
Napisati deo C koda kojim tekući Unix proces čeka da mu se završi proces dete sa pid datim u promenljivoj cpid
, a povratni status tog procesa deteta upisuje u promenljivu stat
.
Rešenje
...
waitpid(cpid, &stat);
...
6. zadatak
Postavka
a) Koji hardverski mehanizam je neophodan za to da operativni sistem radi preotimanje (preemption) procesora? b) Kako se zovu hardverski uređaji računara koji omogućavaju implementaciju vremenske raspodele (time sharing) procesora?
Rešenje
- Spoljašnji hardverski prekidi.
- Tajmeri.
7. zadatak
Postavka
Šta je problem sledeće implementacije kritične sekcije uposlenim čekanjem?
shared var flag1 = false, flag2 = false;
process P1
begin
loop
flag1: true;
while flag2 = true do null end;
<critical section>
flag1 := false;
<non-critical section>
end
end P1;
process P2
begin
loop
flag2: true;
while flag1 = true do null end;
<critical section>
flag2 := false;
<non-critical section>
end
end P2;
Rešenje
Problem datog rešenja je mogići livelock. Ako bi jedan proces izgubio procesor nakon svoje flagx := true
linije, došlo bi do livelocka-a.
8. zadatak
Postavka
Precizno objasniti šta radi sledeći fragment programa:
int fd = open("./log",O_CREAT|O_TRUNC|O_WRONLY);
if (fd<0) handle_error("Cannot open log file.");
int pid = fork ();
if (pid==0) {
dup2(fd,2);
execlp("./myprog.a",NULL);
handle_error("Cannot open exe file.");
}
Rešenje
Proces otvara fajl log
za upisivanje i prazni ga. Ukoliko ne postoji, biće napravljen.
Zatim pravi dete proces koji preusmerava svoj izlaz za greške na dati fajl, i na kraju pokreće program myprog.a
. Ukoliko pokretanje programa ne bude uspešno, ispisaće poruku o grešci.
Ukratko: Pokreće proces-dete nad myprog.a
, čiji će se izlaz za greške upisati u fajl log
.
9. zadatak
Postavka
Kako se zove jednostavan i jedan od najstarijih standardnih protokola za prenos fajlova između udaljenih računara po principu klijent-server (dati pun naziv i akronim)?
Rešenje
FTP, File Transfer Protocol.
10. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Šta predstavlja struktura pod nazivom dentry cache u implementaciji fajl sistema i čemu služi? Navesti kratak primer upotrebe te strukture.