<?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=Bogi97</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=Bogi97"/>
	<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/Bogi97"/>
	<updated>2026-06-04T03:15:27Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A12/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2016&amp;diff=6511</id>
		<title>ОС2/Јануар 2016</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A12/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2016&amp;diff=6511"/>
		<updated>2023-09-25T22:13:19Z</updated>

		<summary type="html">&lt;p&gt;Bogi97: /* 1. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
[http://os.etf.rs/OS2/rokovi/2016/jan/Jan%202016.pdf Zadaci na stranici predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Zaokružiti slovo ispred onih karakteristika koje važe za MFQS raspoređivanje procesa u osnovnom/najčešćem obliku.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Za izvršavanje se uzima proces iz prvog sledećeg nepraznog reda u odnosu na onaj iz kog je prethodno uzet proces za izvršavanje (po &#039;&#039;round-robin&#039;&#039; politici)&amp;lt;/span&amp;gt;&lt;br /&gt;
# Za izvršavanje se uzima proces iz nepraznog reda najvišeg prioriteta, a unutar njega po &#039;&#039;round-robin&#039;&#039; politici&lt;br /&gt;
# Procesu iz reda višeg prioriteta daje se kraći interval vremena izvršavanja&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Procesu iz reda višeg prioriteta daje se duži interval vremena izvršavanja&amp;lt;/span&amp;gt;&lt;br /&gt;
# Proces koji ponovo postaje spreman nakon I/O operacije smešta se u red nižeg prioriteta od onog iz koga je taj proces prethodno uzet za izvršavanje&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Proces koji ponovo postaje spreman nakon I/O operacije smešta se u red višeg prioriteta od onog iz koga je taj proces prethodno uzet za izvršavanje.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na jeziku Java napisati kod za monitor koji realizuje standardni brojački semafor.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Semaphore {&lt;br /&gt;
	private int count;&lt;br /&gt;
	&lt;br /&gt;
	public synchronized void waitx() {&lt;br /&gt;
		while (--count &amp;lt; 0)&lt;br /&gt;
			try {&lt;br /&gt;
				wait();&lt;br /&gt;
			} catch (InterruptedException e) {}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public synchronized void signal() {&lt;br /&gt;
		if (++count &amp;lt;= 0) notifyAll();&lt;br /&gt;
	}&lt;br /&gt;
&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;
Da li serverski osluškivač (engl. &#039;&#039;listener&#039;&#039;) na istoj serverskoj priključnici (engl. &#039;&#039;socket&#039;&#039;) može uporedo da obavlja komunikaciju sa više klijenata? Ako može, na koji način?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Može, tako što klijentu odredi neki drugi port na kom treba da uspostavi priključnicu sa serverom i onda komunicira sa njim u odvojenoj niti.&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
U koji model međuprocesne komunikacije (&#039;&#039;shared object&#039;&#039; ili &#039;&#039;message passing&#039;&#039;) spada tehnika:&lt;br /&gt;
&amp;lt;div data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;message passing, shared object&amp;quot;&amp;gt;&lt;br /&gt;
# veb servisa (&#039;&#039;Web service&#039;&#039;) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;message passing&amp;lt;/span&amp;gt;&lt;br /&gt;
# razmene podataka preko memorijski preslikanog fajla (&#039;&#039;memory-mapped file&#039;&#039;) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;shared object&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
U nekom sistemu postoje dva procesa, P1 i P2, koji koriste resurse R1, R2 i R3 na način dat dole. Pretpostavlja se da odmah nakon operacije zauzeća određenih resursa dati proces vrši operacije sa tim resursom, odnosno da je proces ovako konstruisan da bi resurse držao zauzete najmanje moguće (alocira ih najkasnije što može, pre same operacije). Prestrukturirati ove procese tako da se spreči njihova mrtva blokada (deadlock) ukidanjem uslova cirkularnog čekanja (&#039;&#039;circular wait&#039;&#039;). Prestrukturiranje podrazumeva da proces može da zauzme resurs i ranije nego što je to neophodno za operaciju sa tim resursom, ali ne pre nego što je neophodno za sprečavanje mrtve blokade.&lt;br /&gt;
{|&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
P1:&lt;br /&gt;
request(R1);&lt;br /&gt;
request(R2, R3);&lt;br /&gt;
release(R1, R2, R3); &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; || &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
P2:&lt;br /&gt;
request(R2);&lt;br /&gt;
request(R1, R3);&lt;br /&gt;
release(R1, R2, R3); &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Data je sledeća sekvenca referenciranja stranica od strane nekog procesa:&lt;br /&gt;
&amp;lt;code&amp;gt;3, 2, 6, 8, 5, 6, 9, 8, 2, 6, 4, 9, 3, 6, 7, 9, 8, 6, 7, 8&amp;lt;/code&amp;gt;&lt;br /&gt;
Procesu su dodeljena 4 okvira, zamena se vrši lokalno, samo u skupu stranica dodeljenih tom procesu, a inicijalno nije učitana nijedna stranica ovog procesa. Koliko puta ovaj proces generiše straničnu grešku (&#039;&#039;page fault&#039;&#039;) ako je algoritam zamene stranica LRU?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Koji osnovni problem alokacije memorije rešava &#039;&#039;slab&#039;&#039; alokator?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&#039;&#039;Slab&#039;&#039; alokator rešava problem fragmentacije, pošto se objekti iste veličine smeštaju u tačno dimenzionisane odeljke.&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Na kom disku 0 do 15 se nalazi logički blok broj 67 (blokovi su numerisani počev od 0) kod strukture RAID5 / 4+1 (na svaka 4 bloka 1 blok parnosti)?&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Ako ima 16 diskova i redom se distribuiraju blokovi na 4 i onda se jedan koristi kao blok parnosti, to znači da je do 67. bloka bilo 67 / 4 = 16 blokova za parnosti. Bez njih, 67. blok bi bio na 3. disku, ali je do tad bilo još 16 za parnost. (67 % 16 + 16)% 16 = 3, što znači da je 67. blok na 3. disku.&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
: &#039;&#039;Isti zadatak se našao i na [[ОС2/Јануар 2022#8. zadatak|januarskom roku iz 2022]].&#039;&#039;&lt;br /&gt;
Ukratko objasniti šta je .Net CLR.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&#039;&#039;Common Language Runtime&#039;&#039; (CLR) je komponenta virtuelne mašine koja pokreće .NET programe.&lt;br /&gt;
&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Navesti osnovne slojeve arhitekture Android sistema i kratko navesti šta koji sloj predstavlja-sadrži.&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
* Linux kernel - sadrži drajvere, kontrolu napajanja, alokaciju memorije itd.&lt;br /&gt;
* Biblioteke - napisane u C/C++ i služe programima na sloju aplikacija preko JNI (&#039;&#039;Java Native Interface&#039;&#039;)&lt;br /&gt;
* &#039;&#039;Android Runtime&#039;&#039; - okruženje koje sadrži virtuelnu mašinu koja izvršava programe&lt;br /&gt;
* &#039;&#039;Application Framework&#039;&#039; - sadrži Java aplikacije i servise koje služe sloju aplikacija&lt;br /&gt;
* Sloj aplikacija - sadrži korisničke aplikacije&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОС2]]&lt;/div&gt;</summary>
		<author><name>Bogi97</name></author>
	</entry>
</feed>