<?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%9A%D0%94%D0%9F%2F%D0%9B%D0%B0%D0%B1_1_2022</id>
	<title>КДП/Лаб 1 2022 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%94%D0%9F%2F%D0%9B%D0%B0%D0%B1_1_2022"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9A%D0%94%D0%9F/%D0%9B%D0%B0%D0%B1_1_2022&amp;action=history"/>
	<updated>2026-06-04T20:32:45Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9A%D0%94%D0%9F/%D0%9B%D0%B0%D0%B1_1_2022&amp;diff=4697&amp;oldid=prev</id>
		<title>KockaAdmiralac: Postavka naše lab vežbe od ove godine</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9A%D0%94%D0%9F/%D0%9B%D0%B0%D0%B1_1_2022&amp;diff=4697&amp;oldid=prev"/>
		<updated>2022-07-26T18:59:17Z</updated>

		<summary type="html">&lt;p&gt;Postavka naše lab vežbe od ove godine&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
{{нерешено}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Прва лабораторијска вежба 2022. године&amp;#039;&amp;#039;&amp;#039; носила је 10 бодова. Исти текст поновио се и на наредних неколико првих лабораторијских вежби. За разлику од лабораторијске вежбе за самосталну вежбу, није био дат скелет кода.&lt;br /&gt;
&lt;br /&gt;
== Група 1 ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Потребно је написати Јава апликацију која проналази број још увек активних серија по деценијама. &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Решење мора бити максимално конкурентно и отпорно на прекиде.&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Делови апликације:&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt; обрађује улазну датотеку са филмовима и информацију о сваком појединачном филму убацује у дељени објекат за даљу обраду. За имплементацију дељеног објекта користити &amp;#039;&amp;#039;Lock&amp;#039;&amp;#039; или семафоре у зависности од групе, али тако да поштују FIFO поредак. Ова класа обраду обавља у свом току контроле. Подаци о филмовима се читају ред по ред из архиве са филмовима ([https://datasets.imdbws.com/title.basics.tsv.gz &amp;#039;&amp;#039;title.basics.tsv.gz&amp;#039;&amp;#039;]).&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; обрађује информације о добијеном филму и резултате обраде на крају прослеђује на даљу обраду. Ова класа обраду обавља у свом току контроле. Класа чита информације о неком филму из дељеног објекта. Чува се само број серија које су започеле (&amp;lt;code&amp;gt;startYear&amp;lt;/code&amp;gt; није &amp;lt;code&amp;gt;\N&amp;lt;/code&amp;gt;) а нису завршиле (&amp;lt;code&amp;gt;endYear&amp;lt;/code&amp;gt; је &amp;lt;code&amp;gt;\N&amp;lt;/code&amp;gt;) по деценијама. На сваких K (задаје се) обрађених филмова које један &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; обради, ажурира информацију о свом броју обрађених филмова користећи посебан посебан дељени објекат. Када не буде било више филмова за обраду, &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; прослеђује свој број серија по деценијама даље коришћењем дељеног објекта који мора бити имплементиран преко монитора или региона у зависности од групе. &lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt; на основу прикупљених бројева незавршених серија по деценијама одређује укупан број незавршених серија по деценијама. Ова класа обраду обавља у свом току контроле. Класа преузима податке из дељеног објекта и након завршене обраде резултат убацује у следећи дељени објекат.&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt; на сваких M (задаје се) секунди штампа информације о броју обрађених филмова, све док се не прикупе коначни подаци и на крају штампа њих на основу података које је доставила класа &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt;. Ова класа обраду обавља у свом току контроле. Излаз апликације је листа која садржи деценију и број незавршених серија у тој деценији.&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Test&amp;lt;/code&amp;gt; тестира овај систем. Класа у својој почетној &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; методи креира све потребне дељене објекте, покреће једну инстанцу класе &amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt;, већи (подесив) број инстанци класе &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt;, једну инстанцу класе &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt; и једну инстанцу класе &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt;. Након комплетно завршене обраде, штампа колико је износило укупно време обраде за дати број нити које раде обраду.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ниједна класа нити (&amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt;) не сме да зна за број инстанци класе Consumer!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&lt;br /&gt;
== Група 2 ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Потребно је написати Јава апликацију која проналази број живих особа које су се бавиле одређеном професијом по деценијама. &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Решење мора бити максимално конкурентно и отпорно на прекиде.&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Делови апликације:&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt; обрађује улазну датотеку са особама и информацију о свакој појединачној особи убацује у дељени објекат за даљу обраду. За имплементацију дељеног објекта користити &amp;#039;&amp;#039;Lock&amp;#039;&amp;#039; или монитора у зависности од групе, али тако да поштују FIFO поредак. Ова класа обраду обавља у свом току контроле. Подаци о особама се читају ред по ред из архиве са особама ([https://datasets.imdbws.com/name.basics.tsv.gz &amp;#039;&amp;#039;name.basics.tsv.gz&amp;#039;&amp;#039;]).&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; обрађује информације о добијеној особи и резултате обраде на крају прослеђује на даљу обраду. Ова класа обраду обавља у свом току контроле. Класа чита информације о особама из дељеног објекта. Чува се само број особа које су још увек живе (&amp;lt;code&amp;gt;deathYear&amp;lt;/code&amp;gt; је &amp;lt;code&amp;gt;\N&amp;lt;/code&amp;gt;) по занимањима и деценијама. На сваких K (задаје се) обрађених особа које један &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; обради, ажурира информацију о свом броју обрађених особа користећи посебан посебан дељени објекат. Када не буде било више особа за обраду, &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt; прослеђује свој број особа по деценијама даље коришћењем дељеног објекта који мора бити имплементиран преко региона или семафора у зависности од групе.&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt; на основу прикупљених бројева незавршених серија по деценијама одређује укупан број незавршених серија по деценијама. Ова класа обраду обавља у свом току контроле. Класа преузима податке из дељеног објекта и након завршене обраде резултат убацује у следећи дељени објекат.&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt; на сваких M (задаје се) секунди штампа информације о броју обрађених филмова, све док се не прикупе коначни подаци и на крају штампа њих на основу података које је доставила класа &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt;. Ова класа обраду обавља у свом току контроле. Излаз апликације је листа која за сваку деценију исписује занимања особа које су се у њој родиле и колико је било особа са тим занимањем.&lt;br /&gt;
* Класа &amp;lt;code&amp;gt;Test&amp;lt;/code&amp;gt; тестира овај систем. Класа у својој почетној &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; методи креира све потребне дељене објекте, покреће једну инстанцу класе &amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt;, већи (подесив) број инстанци класе &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt;, једну инстанцу класе &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt; и једну инстанцу класе &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt;. Након комплетно завршене обраде, штампа колико је износило укупно време обраде за дати број нити које раде обраду.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ниједна класа нити (&amp;lt;code&amp;gt;Producer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Combiner&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Printer&amp;lt;/code&amp;gt;) не сме да зна за број инстанци класе Consumer!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категорија:КДП]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>