<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paunovicmilos</id>
	<title>SI Wiki - Кориснички доприноси [sr]</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paunovicmilos"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D0%B1%D0%BD%D0%BE:%D0%94%D0%BE%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8/Paunovicmilos"/>
	<updated>2026-06-04T09:05:22Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7713</id>
		<title>ОС1/Јун 2024</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7713"/>
		<updated>2024-06-30T18:57:01Z</updated>

		<summary type="html">&lt;p&gt;Paunovicmilos: pomereni tagovi za delimično rešeno na odgovarajuće zadatke&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
[http://os.etf.rs/OS1/rokovi/2024/jun/Jun%202024.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; se nalazi u poddirektorijumu &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; roditeljskog direktorijuma tekućeg direktorijuma interpretera komandne linije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;code&amp;gt;cat &amp;lt; ../docs/text | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na asembleru 32-bitnog procesora picoRISC napisati naredbu tela date funkcije &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; koja u registar &amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt; učitava vrednost argumenta &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;. Upotrebiti simboličku konstantu, a njenu vrednost prethodno definisati direktivom &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;. 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 &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; je 32-bitni.&lt;br /&gt;
&amp;lt;code&amp;gt;void f (int x, int y, int z);&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Šta je eksterna fragmentacija?&lt;br /&gt;
b) Da li se ona javlja kod kontinualne organizacije memorije, a da li se javlja kod segmentno-stranične organizacije memorije?&lt;br /&gt;
c) Navesti samo naziv tehnike kojom se rešava eksterna fragmentacija bez promene načina organizacije memorije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# 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.&lt;br /&gt;
# Eksterna fragmentacija se javlja kod kontinualne organizacije memorije, ali ne i kod segmentno-stranične.&lt;br /&gt;
# kompakcija&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Kojom tehnikom se izbegava nepotrebna alokacija fizičke memorije za procese pokrenute sistemskim pozivom &amp;lt;i&amp;gt;fork&amp;lt;/i&amp;gt; (navesti samo naziv na srpskom i engleskom)? Kakva hardverska podrška je neophodna za implementaciju ove tehnike?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# kopiranje na upis (engl. &amp;lt;i&amp;gt;copy-on-write&amp;lt;/i&amp;gt;)&lt;br /&gt;
# Potrebno je da procesor podržava virtuelizaciju memorije, to jest da &amp;lt;strong&amp;gt;ima MMU&amp;lt;/strong&amp;gt;, 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.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati deo C koda kojim tekući Unix proces čeka da mu se završi proces dete sa &amp;lt;i&amp;gt;pid&amp;lt;/i&amp;gt; datim u promenljivoj &amp;lt;code&amp;gt;cpid&amp;lt;/code&amp;gt;, a povratni status tog procesa deteta upisuje u promenljivu &amp;lt;code&amp;gt;stat&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
waitpid(cpid, &amp;amp;stat);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Koji hardverski mehanizam je neophodan za to da operativni sistem radi preotimanje (&amp;lt;i&amp;gt;preemption&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
b) Kako se zovu hardverski uređaji računara koji omogućavaju implementaciju vremenske raspodele (&amp;lt;i&amp;gt;time sharing&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Spoljašnji hardverski prekidi.&lt;br /&gt;
# Tajmeri.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je problem sledeće implementacije kritične sekcije uposlenim čekanjem?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
shared var flag1 = false, flag2 = false;&lt;br /&gt;
process P1&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag1: true;&lt;br /&gt;
        while flag2 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag1 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P1;&lt;br /&gt;
&lt;br /&gt;
process P2&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag2: true;&lt;br /&gt;
        while flag1 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag2 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Problem datog rešenja je mogići &amp;lt;strong&amp;gt;livelock&amp;lt;/strong&amp;gt;. Ako bi jedan proces izgubio procesor nakon svoje &amp;lt;code&amp;gt;flagx := true&amp;lt;/code&amp;gt; linije, došlo bi do livelocka-a.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Precizno objasniti šta radi sledeći fragment programa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int fd = open(&amp;quot;./log&amp;quot;,O_CREAT|O_TRUNC|O_WRONLY);&lt;br /&gt;
if (fd&amp;lt;0) handle_error(&amp;quot;Cannot open log file.&amp;quot;);&lt;br /&gt;
int pid = fork ();&lt;br /&gt;
if (pid==0) {&lt;br /&gt;
    dup2(fd,2);&lt;br /&gt;
    execlp(&amp;quot;./myprog.a&amp;quot;,NULL);&lt;br /&gt;
    handle_error(&amp;quot;Cannot open exe file.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Proces otvara fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt; za upisivanje i prazni ga. Ukoliko ne postoji, biće napravljen.&lt;br /&gt;
Zatim pravi dete proces koji preusmerava svoj izlaz za greške na dati fajl, i na kraju pokreće program &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;. Ukoliko pokretanje programa ne bude uspešno, ispisaće poruku o grešci.&lt;br /&gt;
&lt;br /&gt;
Ukratko: Pokreće proces-dete nad &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;, čiji će se izlaz za greške upisati u fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kako se zove jednostavan i jedan od najstarijih standardnih protokola za prenos fajlova&lt;br /&gt;
između udaljenih računara po principu klijent-server (dati pun naziv i akronim)?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
FTP, File Transfer Protocol.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta predstavlja struktura pod nazivom &amp;lt;i&amp;gt;dentry cache&amp;lt;/i&amp;gt; u implementaciji fajl sistema i čemu&lt;br /&gt;
služi? Navesti kratak primer upotrebe te strukture.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС1]]&lt;/div&gt;</summary>
		<author><name>Paunovicmilos</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7712</id>
		<title>ОС1/Јун 2024</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7712"/>
		<updated>2024-06-30T15:23:04Z</updated>

		<summary type="html">&lt;p&gt;Paunovicmilos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
[http://os.etf.rs/OS1/rokovi/2024/jun/Jun%202024.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; se nalazi u poddirektorijumu &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; roditeljskog direktorijuma tekućeg direktorijuma interpretera komandne linije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;code&amp;gt;cat &amp;lt; ../docs/text | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na asembleru 32-bitnog procesora picoRISC napisati naredbu tela date funkcije &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; koja u registar &amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt; učitava vrednost argumenta &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;. Upotrebiti simboličku konstantu, a njenu vrednost prethodno definisati direktivom &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;. 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 &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; je 32-bitni.&lt;br /&gt;
&amp;lt;code&amp;gt;void f (int x, int y, int z);&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Šta je eksterna fragmentacija?&lt;br /&gt;
b) Da li se ona javlja kod kontinualne organizacije memorije, a da li se javlja kod segmentno-stranične organizacije memorije?&lt;br /&gt;
c) Navesti samo naziv tehnike kojom se rešava eksterna fragmentacija bez promene načina organizacije memorije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# 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.&lt;br /&gt;
# Eksterna fragmentacija se javlja kod kontinualne organizacije memorije, ali ne i kod segmentno-stranične.&lt;br /&gt;
# kompakcija&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Kojom tehnikom se izbegava nepotrebna alokacija fizičke memorije za procese pokrenute sistemskim pozivom &amp;lt;i&amp;gt;fork&amp;lt;/i&amp;gt; (navesti samo naziv na srpskom i engleskom)? Kakva hardverska podrška je neophodna za implementaciju ove tehnike?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# kopiranje na upis (engl. &amp;lt;i&amp;gt;copy-on-write&amp;lt;/i&amp;gt;)&lt;br /&gt;
# Potrebno je da procesor podržava virtuelizaciju memorije, to jest da &amp;lt;strong&amp;gt;ima MMU&amp;lt;/strong&amp;gt;, 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.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati deo C koda kojim tekući Unix proces čeka da mu se završi proces dete sa &amp;lt;i&amp;gt;pid&amp;lt;/i&amp;gt; datim u promenljivoj &amp;lt;code&amp;gt;cpid&amp;lt;/code&amp;gt;, a povratni status tog procesa deteta upisuje u promenljivu &amp;lt;code&amp;gt;stat&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
waitpid(cpid, &amp;amp;stat);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Koji hardverski mehanizam je neophodan za to da operativni sistem radi preotimanje (&amp;lt;i&amp;gt;preemption&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
b) Kako se zovu hardverski uređaji računara koji omogućavaju implementaciju vremenske raspodele (&amp;lt;i&amp;gt;time sharing&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Spoljašnji hardverski prekidi.&lt;br /&gt;
# Tajmeri.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je problem sledeće implementacije kritične sekcije uposlenim čekanjem?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
shared var flag1 = false, flag2 = false;&lt;br /&gt;
process P1&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag1: true;&lt;br /&gt;
        while flag2 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag1 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P1;&lt;br /&gt;
&lt;br /&gt;
process P2&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag2: true;&lt;br /&gt;
        while flag1 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag2 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Problem datog rešenja je mogići &amp;lt;strong&amp;gt;livelock&amp;lt;/strong&amp;gt;. Ako bi jedan proces izgubio procesor nakon svoje &amp;lt;code&amp;gt;flagx := true&amp;lt;/code&amp;gt; linije, došlo bi do livelocka-a.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Precizno objasniti šta radi sledeći fragment programa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int fd = open(&amp;quot;./log&amp;quot;,O_CREAT|O_TRUNC|O_WRONLY);&lt;br /&gt;
if (fd&amp;lt;0) handle_error(&amp;quot;Cannot open log file.&amp;quot;);&lt;br /&gt;
int pid = fork ();&lt;br /&gt;
if (pid==0) {&lt;br /&gt;
    dup2(fd,2);&lt;br /&gt;
    execlp(&amp;quot;./myprog.a&amp;quot;,NULL);&lt;br /&gt;
    handle_error(&amp;quot;Cannot open exe file.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Proces otvara fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt; za upisivanje i prazni ga. Ukoliko ne postoji, biće napravljen.&lt;br /&gt;
Zatim pravi dete proces koji preusmerava svoj izlaz za greške na dati fajl, i na kraju pokreće program &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;. Ukoliko pokretanje programa ne bude uspešno, ispisaće poruku o grešci.&lt;br /&gt;
&lt;br /&gt;
Ukratko: Pokreće proces-dete nad &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;, čiji će se izlaz za greške upisati u fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kako se zove jednostavan i jedan od najstarijih standardnih protokola za prenos fajlova&lt;br /&gt;
između udaljenih računara po principu klijent-server (dati pun naziv i akronim)?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
FTP, File Transfer Protocol.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta predstavlja struktura pod nazivom dentry cache u implementaciji fajl sistema i čemu&lt;br /&gt;
služi? Navesti kratak primer upotrebe te strukture.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС1]]&lt;/div&gt;</summary>
		<author><name>Paunovicmilos</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7711</id>
		<title>ОС1/Јун 2024</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7711"/>
		<updated>2024-06-29T12:57:47Z</updated>

		<summary type="html">&lt;p&gt;Paunovicmilos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
[http://os.etf.rs/OS1/rokovi/2024/jun/Jun%202024.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; se nalazi u poddirektorijumu &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; roditeljskog direktorijuma tekućeg direktorijuma interpretera komandne linije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;code&amp;gt;cat docs/text | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na asembleru 32-bitnog procesora picoRISC napisati naredbu tela date funkcije &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; koja u registar &amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt; učitava vrednost argumenta &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;. Upotrebiti simboličku konstantu, a njenu vrednost prethodno definisati direktivom &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;. 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 &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; je 32-bitni.&lt;br /&gt;
&amp;lt;code&amp;gt;void f (int x, int y, int z);&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Šta je eksterna fragmentacija?&lt;br /&gt;
b) Da li se ona javlja kod kontinualne organizacije memorije, a da li se javlja kod segmentno-stranične organizacije memorije?&lt;br /&gt;
c) Navesti samo naziv tehnike kojom se rešava eksterna fragmentacija bez promene načina organizacije memorije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# 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.&lt;br /&gt;
# Eksterna fragmentacija se javlja kod kontinualne organizacije memorije, ali ne i kod segmentno-stranične.&lt;br /&gt;
# kompakcija&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Kojom tehnikom se izbegava nepotrebna alokacija fizičke memorije za procese pokrenute sistemskim pozivom &amp;lt;i&amp;gt;fork&amp;lt;/i&amp;gt; (navesti samo naziv na srpskom i engleskom)? Kakva hardverska podrška je neophodna za implementaciju ove tehnike?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# kopiranje na upis (engl. &amp;lt;i&amp;gt;copy-on-write&amp;lt;/i&amp;gt;)&lt;br /&gt;
# Potrebno je da procesor podržava virtuelizaciju memorije, to jest da &amp;lt;strong&amp;gt;ima MMU&amp;lt;/strong&amp;gt;, 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.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati deo C koda kojim tekući Unix proces čeka da mu se završi proces dete sa &amp;lt;i&amp;gt;pid&amp;lt;/i&amp;gt; datim u promenljivoj &amp;lt;code&amp;gt;cpid&amp;lt;/code&amp;gt;, a povratni status tog procesa deteta upisuje u promenljivu &amp;lt;code&amp;gt;stat&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
waitpid(cpid, &amp;amp;stat);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Koji hardverski mehanizam je neophodan za to da operativni sistem radi preotimanje (&amp;lt;i&amp;gt;preemption&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
b) Kako se zovu hardverski uređaji računara koji omogućavaju implementaciju vremenske raspodele (&amp;lt;i&amp;gt;time sharing&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Spoljašnji hardverski prekidi.&lt;br /&gt;
# Tajmeri.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je problem sledeće implementacije kritične sekcije uposlenim čekanjem?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
shared var flag1 = false, flag2 = false;&lt;br /&gt;
process P1&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag1: true;&lt;br /&gt;
        while flag2 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag1 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P1;&lt;br /&gt;
&lt;br /&gt;
process P2&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag2: true;&lt;br /&gt;
        while flag1 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag2 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Problem datog rešenja je mogići &amp;lt;strong&amp;gt;livelock&amp;lt;/strong&amp;gt;. Ako bi jedan proces izgubio procesor nakon svoje &amp;lt;code&amp;gt;flagx := true&amp;lt;/code&amp;gt; linije, došlo bi do livelocka-a.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Precizno objasniti šta radi sledeći fragment programa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int fd = open(&amp;quot;./log&amp;quot;,O_CREAT|O_TRUNC|O_WRONLY);&lt;br /&gt;
if (fd&amp;lt;0) handle_error(&amp;quot;Cannot open log file.&amp;quot;);&lt;br /&gt;
int pid = fork ();&lt;br /&gt;
if (pid==0) {&lt;br /&gt;
    dup2(fd,2);&lt;br /&gt;
    execlp(&amp;quot;./myprog.a&amp;quot;,NULL);&lt;br /&gt;
    handle_error(&amp;quot;Cannot open exe file.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Proces otvara fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt; za upisivanje i prazni ga. Ukoliko ne postoji, biće napravljen.&lt;br /&gt;
Zatim pravi dete proces koji preusmerava svoj izlaz za greške na dati fajl, i na kraju pokreće program &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;. Ukoliko pokretanje programa ne bude uspešno, ispisaće poruku o grešci.&lt;br /&gt;
&lt;br /&gt;
Ukratko: Pokreće proces-dete nad &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;, čiji će se izlaz za greške upisati u fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kako se zove jednostavan i jedan od najstarijih standardnih protokola za prenos fajlova&lt;br /&gt;
između udaljenih računara po principu klijent-server (dati pun naziv i akronim)?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
FTP, File Transfer Protocol.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta predstavlja struktura pod nazivom dentry cache u implementaciji fajl sistema i čemu&lt;br /&gt;
služi? Navesti kratak primer upotrebe te strukture.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС1]]&lt;/div&gt;</summary>
		<author><name>Paunovicmilos</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7710</id>
		<title>ОС1/Јун 2024</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%88%D1%83%D0%BD_2024&amp;diff=7710"/>
		<updated>2024-06-28T21:22:12Z</updated>

		<summary type="html">&lt;p&gt;Paunovicmilos: Нова страница: {{tocright}} [http://os.etf.rs/OS1/rokovi/2024/jun/Jun%202024.pdf Zadaci na stranici predmeta.] &amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;  == 1. zadatak == === Postavka === Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; se nalazi u poddire…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
[http://os.etf.rs/OS1/rokovi/2024/jun/Jun%202024.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati Unix komandnu liniju koja pokreće procese nad sistemskim programima &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;, tako da prvi proces znakove sa svog standardnog ulaza dobija iz fajla &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, a znakove svog standardnog izlaza prosleđuje na stanadardni ulaz drugog procesa. Fajl &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; se nalazi u poddirektorijumu &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; roditeljskog direktorijuma tekućeg direktorijuma interpretera komandne linije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;code&amp;gt;cat docs/text | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na asembleru 32-bitnog procesora picoRISC napisati naredbu tela date funkcije &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; koja u registar &amp;lt;code&amp;gt;r1&amp;lt;/code&amp;gt; učitava vrednost argumenta &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;. Upotrebiti simboličku konstantu, a njenu vrednost prethodno definisati direktivom &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;. 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 &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; je 32-bitni.&lt;br /&gt;
&amp;lt;code&amp;gt;void f (int x, int y, int z);&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Šta je eksterna fragmentacija?&lt;br /&gt;
b) Da li se ona javlja kod kontinualne organizacije memorije, a da li se javlja kod segmentno-stranične organizacije memorije?&lt;br /&gt;
c) Navesti samo naziv tehnike kojom se rešava eksterna fragmentacija bez promene načina organizacije memorije.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# 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.&lt;br /&gt;
# Eksterna fragmentacija se javlja kod kontinualne organizacije memorije, ali ne i kod segmentno-stranične.&lt;br /&gt;
# kompakcija&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Kojom tehnikom se izbegava nepotrebna alokacija fizičke memorije za procese pokrenute sistemskim pozivom &amp;lt;i&amp;gt;fork&amp;lt;/i&amp;gt; (navesti samo naziv na srpskom i engleskom)? Kakva hardverska podrška je neophodna za implementaciju ove tehnike?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# kopiranje na upis (engl. &amp;lt;i&amp;gt;copy-on-write&amp;lt;/i&amp;gt;)&lt;br /&gt;
# Potrebno je da procesor podržava virtuelizaciju memorije, to jest da &amp;lt;strong&amp;gt;ima MMU&amp;lt;/strong&amp;gt;, 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.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati deo C koda kojim tekući Unix proces čeka da mu se završi proces dete sa &amp;lt;i&amp;gt;pid&amp;lt;/i&amp;gt; datim u promenljivoj &amp;lt;code&amp;gt;cpid&amp;lt;/code&amp;gt;, a povratni status tog procesa deteta upisuje u promenljivu &amp;lt;code&amp;gt;stat&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
waitpid(cpid, &amp;amp;stat);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
a) Koji hardverski mehanizam je neophodan za to da operativni sistem radi preotimanje (&amp;lt;i&amp;gt;preemption&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
b) Kako se zovu hardverski uređaji računara koji omogućavaju implementaciju vremenske raspodele (&amp;lt;i&amp;gt;time sharing&amp;lt;/i&amp;gt;) procesora?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Spoljašnji hardverski prekidi.&lt;br /&gt;
# Tajmeri.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je problem sledeće implementacije kritične sekcije uposlenim čekanjem?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
shared var flag1 = false, flag2 = false;&lt;br /&gt;
process P1&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag1: true;&lt;br /&gt;
        while flag2 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag1 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P1;&lt;br /&gt;
&lt;br /&gt;
process P2&lt;br /&gt;
begin&lt;br /&gt;
    loop&lt;br /&gt;
        flag2: true;&lt;br /&gt;
        while flag1 = true do null end;&lt;br /&gt;
        &amp;lt;critical section&amp;gt;&lt;br /&gt;
        flag2 := false;&lt;br /&gt;
        &amp;lt;non-critical section&amp;gt;&lt;br /&gt;
    end&lt;br /&gt;
end P2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Problem datog rešenja je mogići &amp;lt;strong&amp;gt;livelock&amp;lt;/strong&amp;gt;. Ako bi jedan proces izgubio procesor nakon svoje &amp;lt;code&amp;gt;flagx := true&amp;lt;/code&amp;gt; linije, došlo bi do livelocka-a.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Precizno objasniti šta radi sledeći fragment programa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int fd = open(&amp;quot;./log&amp;quot;,O_CREAT|O_TRUNC|O_WRONLY);&lt;br /&gt;
if (fd&amp;lt;0) handle_error(&amp;quot;Cannot open log file.&amp;quot;);&lt;br /&gt;
int pid = fork ();&lt;br /&gt;
if (pid==0) {&lt;br /&gt;
    dup2(fd,2);&lt;br /&gt;
    execlp(&amp;quot;./myprog.a&amp;quot;,NULL);&lt;br /&gt;
    handle_error(&amp;quot;Cannot open exe file.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Proces otvara fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt; za upisivanje i prazni ga. Ukoliko ne postoji, biće napravljen.&lt;br /&gt;
Zatim pravi dete proces koji preusmerava svoj izlaz za greške na dati fajl, i na kraju pokreće program &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;. Ukoliko pokretanje programa ne bude uspešno, ispisaće poruku o grešci.&lt;br /&gt;
&lt;br /&gt;
Ukratko: Pokreće proces-dete nad &amp;lt;code&amp;gt;myprog.a&amp;lt;/code&amp;gt;, čiji će se izlaz za greške upisati u fajl &amp;lt;code&amp;gt;log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kako se zove jednostavan i jedan od najstarijih standardnih protokola za prenos fajlova&lt;br /&gt;
između udaljenih računara po principu klijent-server (dati pun naziv i akronim)?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
FTP, File Transfer Protocol.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta predstavlja struktura pod nazivom dentry cache u implementaciji fajl sistema i čemu&lt;br /&gt;
služi? Navesti kratak primer upotrebe te strukture.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС1]]&lt;/div&gt;</summary>
		<author><name>Paunovicmilos</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9D%D0%B5%D1%83%D1%80%D0%B0%D0%BB%D0%BD%D0%B5_%D0%BC%D1%80%D0%B5%D0%B6%D0%B5&amp;diff=3103</id>
		<title>Неуралне мреже</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9D%D0%B5%D1%83%D1%80%D0%B0%D0%BB%D0%BD%D0%B5_%D0%BC%D1%80%D0%B5%D0%B6%D0%B5&amp;diff=3103"/>
		<updated>2021-11-03T23:17:12Z</updated>

		<summary type="html">&lt;p&gt;Paunovicmilos: /* Начин оцењивања */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Неуралне мреже&#039;&#039;&#039; је изборни предмет из петог семестра.&lt;br /&gt;
&lt;br /&gt;
== Странице ==&lt;br /&gt;
* [http://automatika.etf.bg.ac.rs/sr/13s053nm Страница предмета]&lt;br /&gt;
&lt;br /&gt;
== Корисне везе ==&lt;br /&gt;
{{Материјали&lt;br /&gt;
| vuk            = 1DJyxOlh-CM7649Y0j34wMkCjtvLr6dDW&lt;br /&gt;
| beastweb       = neuralne-mreze&lt;br /&gt;
}}&lt;br /&gt;
* [https://drive.google.com/open?id=1CUoqF2c9phQftTn190DjcA2_0WY-iCul &#039;&#039;Google Drive&#039;&#039; Јелене Медаревић]&lt;br /&gt;
&lt;br /&gt;
== Начин оцењивања ==&lt;br /&gt;
* &amp;lt;math&amp;gt;K_1&amp;lt;/math&amp;gt; — Први колоквијум (0-100)&lt;br /&gt;
* &amp;lt;math&amp;gt;K_2&amp;lt;/math&amp;gt; — Бодови са колоквијума (0-100)&lt;br /&gt;
* &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; — Бодови са првог пројекта (неуралне мреже, одбрана само у јануарском року) (0-100)&lt;br /&gt;
* &amp;lt;math&amp;gt;P_2&amp;lt;/math&amp;gt; — Бодови са другог пројекта (fuzzy логика, одбрана у јануарском  и фебруарском року) (0-100)&lt;br /&gt;
* &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; — Бодови са испита (0-100)&lt;br /&gt;
* Надокнаде колоквијума могуће само у јануарском року&lt;br /&gt;
* &#039;&#039;&#039;Укупни бодови:&#039;&#039;&#039; &amp;lt;math&amp;gt;P = 0.2K_1 + 0.2K_2 + 0.13P_1 + 0.07P_2 + 0.4I&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бодови&lt;br /&gt;
| &amp;lt;math&amp;gt;P \leq 50&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;50 &amp;lt; P \leq 60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;60 &amp;lt; P \leq 70&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;70 &amp;lt; P \leq 80&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;80 &amp;lt; P \leq 90&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;90 &amp;lt; P&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Оцена&lt;br /&gt;
| 5 || 6 || 7 || 8 || 9 || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Потребна помоћ ==&lt;br /&gt;
* {{zadaci|rešenja}}&lt;br /&gt;
* {{zadaci|postavke}}&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Пети семестар]]&lt;br /&gt;
[[Категорија:Изборни предмети]]&lt;/div&gt;</summary>
		<author><name>Paunovicmilos</name></author>
	</entry>
</feed>