<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%A11%2F%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012</id>
	<title>ОС1/Октобар 2012 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%A11%2F%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;action=history"/>
	<updated>2026-06-04T11:50:39Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=4637&amp;oldid=prev</id>
		<title>KockaAdmiralac: Formatiranje</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=4637&amp;oldid=prev"/>
		<updated>2022-07-19T19:57:07Z</updated>

		<summary type="html">&lt;p&gt;Formatiranje&lt;/p&gt;
&lt;a href=&quot;https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;amp;diff=4637&amp;amp;oldid=3015&quot;&gt;Прикажи измене&lt;/a&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=3015&amp;oldid=prev</id>
		<title>IvnSvc: /* Rešenje */</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=3015&amp;oldid=prev"/>
		<updated>2021-10-03T13:53:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Rešenje&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 3. октобар 2021. у 15:53&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Ред 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Rešenje ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Rešenje ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{delimično rešeno}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Мултипроцесорски систем је сиситем у коме више процесора раде над истом оперативном меморијом.&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Дистрибуирани систем је систем у коме више одвојених рачунара уз помоћ рачунарских мрежа чини једну логичку целину.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 2. zadatak ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 2. zadatak ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>IvnSvc</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=2932&amp;oldid=prev</id>
		<title>Ivan Pešić: средити 10. задатак</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A11/%D0%9E%D0%BA%D1%82%D0%BE%D0%B1%D0%B0%D1%80_2012&amp;diff=2932&amp;oldid=prev"/>
		<updated>2021-09-20T15:53:06Z</updated>

		<summary type="html">&lt;p&gt;средити 10. задатак&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
[http://os.etf.bg.ac.rs/OS1/rokovi/2012/oktobar/Oktobar%202012.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Šta je multiprocesorski, a šta distribuirani sistem?&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Data  je  operacija  &amp;lt;code&amp;gt;yield(jmp_buf  old,  jmp_buf  new)&amp;lt;/code&amp;gt;  koja  čuva  kontekst  niti  čiji  je &amp;lt;code&amp;gt;jmp_buf&amp;lt;/code&amp;gt;  dat kao prvi argument, oduzima joj procesor i restaurira kontekst niti čiji je  &amp;lt;code&amp;gt;jmp_buf&amp;lt;/code&amp;gt;  dat kao  drugi  argument,  kojoj  predaje  procesor.  Koristeći  ovu  operaciju,  realizovati  operaciju &amp;lt;code&amp;gt;dispatch()&amp;lt;/code&amp;gt; koja ima isti efekat kao i ona data u školskom jezgru.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void dispatch () {&lt;br /&gt;
	lock();&lt;br /&gt;
	jmp_buf old = Thread::running-&amp;gt;context;&lt;br /&gt;
	Scheduler::put(Thread::running);&lt;br /&gt;
	Thread::running = Scheduler::get();&lt;br /&gt;
	jmp_buf new = Thread::running-&amp;gt;context;&lt;br /&gt;
	yield(old,new);&lt;br /&gt;
	unlock();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kako se u kodu koji se izvršava nakon sistemskog poziva &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; može znati da li se taj kod izvršava u kontekstu procesa-roditelja ili procesa-deteta? Objasniti i dati primer.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Može se znati u kom se kontekstu izvršava kod na osnovu povratne vrednosti fork-a. Tj. 0 u kontekstu deteta, vrednost veća od 0 u kontekstu roditelja, a manja od 0 ako dođe do greške.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int main(int argc, char* argv[]) {&lt;br /&gt;
	pid_t pid = fork();&lt;br /&gt;
	&lt;br /&gt;
	if(pid &amp;lt; 0) {&lt;br /&gt;
		return -1; &lt;br /&gt;
		// greska&lt;br /&gt;
	}&lt;br /&gt;
	else if(pid == 0) {&lt;br /&gt;
		// dete&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
		// roditelj&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return 0;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati kod jednog od dva procesa koji pristupaju kritičnoj sekciji sa međusobnim isključenjem pomoću uposlenog čekanja (&amp;#039;&amp;#039;busy waiting&amp;#039;&amp;#039;) Petersonovim algoritmom&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
process P1:&lt;br /&gt;
	begin&lt;br /&gt;
		loop&lt;br /&gt;
			flag1 := true; turn := 2;&lt;br /&gt;
			while flag2 and turn = 2 do null;&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; turn := 1;&lt;br /&gt;
			while flag1 and turn = 1 do null;&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;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Date  su  sledeće  deklaracije  u  jednom  izvornom  C  fajlu.  Koji  od  ovih  simbola  će  biti označeni kao „izveženi“, a koji kao „uveženi“ u .obj fajlu? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
extern int a(int); &lt;br /&gt;
void b(int);  &lt;br /&gt;
void b(int) {}&lt;br /&gt;
void c(int); &lt;br /&gt;
extern int d; &lt;br /&gt;
static int e; &lt;br /&gt;
int f;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Uveženi: a, c, d&lt;br /&gt;
Izveženi: b, f&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Neki sistem koristi kontinualnu alokaciju operativne memorije. Data je deklaracija strukture podataka  koja  predstavlja  zaglavlje  svakog  slobodnog  fragmenta  memorije.  Ova  zaglavlja  čine dvostruko  ulančanu  listu  slobodnih  fragmenata  i  upisuju  se  na  sam  početak  svakog  slobodnog fragmenta memorije. Napisati telo funkcije &amp;lt;code&amp;gt;getFirstFitFragment()&amp;lt;/code&amp;gt; koja  treba  da  pronađe fragment slobodne memorije veličine date argumentom po &amp;#039;&amp;#039;first-fit&amp;#039;&amp;#039; algoritmu i vrati njegovu adresu. Preostali deo fragmenta treba da postane novi (manji) fragment u listi slobodnih&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
typedef unsigned int size_t; &lt;br /&gt;
struct FreeFragment { &lt;br /&gt;
  size_t size; // Veličina fragmenta u jedinicama sizeof(char) &lt;br /&gt;
  FreeFragment* prev; // Prethodni u listi &lt;br /&gt;
  FreeFragment* next; // Sledeći u listi &lt;br /&gt;
} &lt;br /&gt;
FreeFragment* head; // Glava liste slobodnih fragmenata &lt;br /&gt;
void* getFirstFitFragment(size_t);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void* getFirstFitFragment(size_t sz) {&lt;br /&gt;
	if(head == 0 || sz == 0) return 0;&lt;br /&gt;
	for(FreeFragment* cur = head; cur; cur = cur-&amp;gt;next) {&lt;br /&gt;
		if(cur-&amp;gt;size &amp;lt; sz) continue;&lt;br /&gt;
		FreeFragment* newFrg = (FreeFragment*)((char*)cur + sz);&lt;br /&gt;
		if(cur-&amp;gt;prev) cur-&amp;gt;prev-&amp;gt;next = newFrg;&lt;br /&gt;
		else head = cur-&amp;gt;next;&lt;br /&gt;
		if(cur-&amp;gt;next) cur-&amp;gt;next-&amp;gt;prev = newFrg;&lt;br /&gt;
		newFrg-&amp;gt;prev = curr-&amp;gt;prev;&lt;br /&gt;
		newFrg-&amp;gt;next = curr-&amp;gt;next;&lt;br /&gt;
		newFrg-&amp;gt;size = cur-&amp;gt;size - sz;&lt;br /&gt;
		return cur;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Objasniti  šta  je  osnovni  motiv  i  pogodnost  tehnike  straničenja  u  više  nivoa  u  odnosu  na straničenje u jednom nivou?&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Veći kapacitet virtuelne memorije.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Kojom tehnikom se fizički nedeljivi izlazni uređaj može učiniti logički (virtuelno) deljivim između procesa koji ga uporedo koriste? &lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Spooling-om.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Neki proces otvara neki fajl samo za čitanje, iako „vlasnik“ tog procesa ima i pravo upisa u taj fajl. Da li se informacija da je taj  proces otvorio taj fajl samo za čitanje čuva u tabeli otvorenih fajlova koja je globalna za sve procese, ili u onoj koja je lokalna za taj proces&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Ta informacija čuva se u tabeli otvorenih fajlova lokalnoj za taj proces.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Neki  fajl  sistem  koristi  indeksiranu  alokaciju  fajlova  na  disku  sa  jednostrukim indeksom. Ako se pretpostavlja da je prostor za smeštanje fajlova (uključujući i njihove indekse) na disku  veličine  32 GB,  veličina  klastera  (jedine  jedinice  alokacije)  2 KB,  i  ceo  prostor  potpuno ispunjen  fajlovima  tako  da  je  svaki  fajl  maksimalne  veličine  takve  da  ima  samo  jedan  indeksni klaster, koliki procenat ukupnog prostora za smeštanje fajlova na ovom disku zauzimaju indeksi? &lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
32GB / 2KB = 16M = 2^24 -&amp;gt; 3B adresa&lt;br /&gt;
&lt;br /&gt;
2KB / 3B = 682 ulaza u indeksu&lt;br /&gt;
&lt;br /&gt;
procenat zauzetosti: 100/(682 + 1)%&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС1]]&lt;/div&gt;</summary>
		<author><name>Ivan Pešić</name></author>
	</entry>
</feed>