<?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%90%D0%9E%D0%A02%2F%D0%9A2_2023</id>
	<title>АОР2/К2 2023 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%9E%D0%A02%2F%D0%9A2_2023"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;action=history"/>
	<updated>2026-06-04T05:55:07Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;diff=6180&amp;oldid=prev</id>
		<title>KockaAdmiralac: Tabela // Edit via Wikitext Extension for VSCode</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;diff=6180&amp;oldid=prev"/>
		<updated>2023-05-12T20:03:08Z</updated>

		<summary type="html">&lt;p&gt;Tabela // Edit via Wikitext Extension for VSCode&lt;/p&gt;
&lt;a href=&quot;https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;amp;diff=6180&amp;amp;oldid=6179&quot;&gt;Прикажи измене&lt;/a&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;diff=6179&amp;oldid=prev</id>
		<title>KockaAdmiralac: K2 od danas, sve bez tabele izvršenja zasad // Edit via Wikitext Extension for VSCode</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A2_2023&amp;diff=6179&amp;oldid=prev"/>
		<updated>2023-05-12T19:22:16Z</updated>

		<summary type="html">&lt;p&gt;K2 od danas, sve bez tabele izvršenja zasad // Edit via Wikitext Extension for VSCode&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Други колоквијум 2023. године&amp;#039;&amp;#039;&amp;#039; одржан је 12. маја, трајао је 75 минута и сваки задатак је вредео 5 бодова. Поставка овог рока није тренутно доступна са странице предмета.&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Код хардверске виртуализације&amp;lt;sup&amp;gt;[sic]&amp;lt;/sup&amp;gt; користи се техника пратеће&amp;lt;sup&amp;gt;[sic]&amp;lt;/sup&amp;gt; табела страница (&amp;#039;&amp;#039;Shadow Page Tables&amp;#039;&amp;#039;). Описати технике за ажурирање пратећа&amp;lt;sup&amp;gt;[sic]&amp;lt;/sup&amp;gt; табела страница уколико гост начини промене табеле страница госта.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
Сличан задатак појавио се [[АОР2/К 2021#3. задатак|на колоквијуму 2021. године]], где је написано и његово решење.&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Адресни простор процесора је величине 128KB, адресибилна јединица је 16 битна реч. Процесор је једноадресни са раздвојеним меморијским и У/И адресним простором и са хардверском подршком за виртуелизацију процесора.&lt;br /&gt;
&lt;br /&gt;
Процесор поседује 16 битни акумулатор ACC, 16 битну програмску статусну реч PSW и 16 битне регистре опште намене R0 и R1. У регистру PSW постоји бит VM. Процесор прелази у мод виртуелизације постављањем бита VM на 1. Стек домаћина и госта расте према нижим локацијама, а SP указује на последњу заузету локацију. Процесор поседује и регистар VMPTR који указује на тренутну ВМ контролну структуру која се користи. У табели 1 је приказана ВМ контролна структура где се види садржај регистара домаћина, садржај регистара госта, бит мапа инструкција које изазивају ВМ излазак и разлог изласка из ВМ. Приказана структура се налази у меморији почевши од адресе 6000h. Сматрати да свако поље ове структуре заузима једну меморијску локацију и да се адреса ове структуре налази у регистру VMPTR.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ Табела 1. ВМ контролна структура&lt;br /&gt;
! Регистри !! Домаћин !! Гост&lt;br /&gt;
|-&lt;br /&gt;
| SP       || FFFFh   || EFFFh&lt;br /&gt;
|-&lt;br /&gt;
| PC       || 1008h   || 7000h&lt;br /&gt;
|-&lt;br /&gt;
| PSW      || VM=1    || VM=0&lt;br /&gt;
|-&lt;br /&gt;
| ACC      || 0h      || 1h&lt;br /&gt;
|-&lt;br /&gt;
| R0       || 0h      || 0h&lt;br /&gt;
|-&lt;br /&gt;
| R1       || 6000h   || 0h&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Бит мапа инструкција (најнижа 4b поља):&lt;br /&gt;
| 1101b&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Разлог изласка:&lt;br /&gt;
| 00h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Поља приказане ВМ контролне структуре су смештена у меморији тако да су прво смештена поља стања домаћина, па поља стања госта и на крају поља која представљају бит мапу инструкција и разлог изласка. Вредност 1 бита у бит мапи инструкција изазива ВМ излазак. Битови бит мапе инструкција се односе на следеће инструкције: бит 0 — LD, бит 1 — ST, бит 2 — PUSH и бит 3 — POP. Сматрати да инструкција HALT увек изазива ВМ излазак. Разлог изласка може да има следеће вредности: 00 — извршавање HALT инструкције, 00 — извршавање HALT инструкције, 01 — извршавање LD инструкције, 02 — извршавање ST инструкције, 03 — извршавање POP инструкције и 04 — извршавање PUSH инструкције. Сматрати да се приликом ВМ уласка врши само учитавање регистара који представљају стање госта из ВМ контролне структуре, а да се приликом ВМ изласка прво врши чување стања госта у поља госта ВМ контролне структуре, а затим учитавају регистри који представљају стање домаћина из ВМ контролне структуре у регистре процесора.&lt;br /&gt;
&lt;br /&gt;
На слици 1, дат је део кода који је учитан у оперативну меморију рачунара, водеће нуле адреса и података нису приказане. Инструкција на адреси 1000h означена је као 1. (прва) по редоследу извршавања, а свака следећа инструкција која се извршава означена је следећим редним бројем. Почетни садржај регистра PC је 1000h. Резултат дати након фазе извршења инструкције. Приликом ВМ изласка у посебном реду је потребно назначити ново стање ВМ контролне структуре, вредност акумулатора домаћина и вредност VM бита регистра PSW домаћина. Приликом сваке измене ВМ контролне структуре потребно је написати ново стање поља госта и стања бит мапе инструкција и разлога изласка ВМ контролне структуре у табели стања ВМ контролне табеле и назначити у решењу где се користи ново стање. Сматрати да су све адресе на слици 1 физичке адресе.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Слика 1. Део кода учитан у оперативну меморију&lt;br /&gt;
! Адреса !! Инструкција&lt;br /&gt;
|-&lt;br /&gt;
| 1000h  || VON&lt;br /&gt;
|-&lt;br /&gt;
| 1001h  || LD #0h&lt;br /&gt;
|-&lt;br /&gt;
| 1004h  || ST 2000h&lt;br /&gt;
|-&lt;br /&gt;
| 1007h  || VLAUNCH&lt;br /&gt;
|-&lt;br /&gt;
| 1008h  || LD (R1)Dh&lt;br /&gt;
|-&lt;br /&gt;
| 100Bh  || CMP #0h&lt;br /&gt;
|-&lt;br /&gt;
| 100Eh  || JZ 1027h&lt;br /&gt;
|-&lt;br /&gt;
| 1011h  || CMP #4h&lt;br /&gt;
|-&lt;br /&gt;
| 1014h  || JNZ 101Dh&lt;br /&gt;
|-&lt;br /&gt;
| 1017h  || LD #5h&lt;br /&gt;
|-&lt;br /&gt;
| 101Ah  || ST (R1)Ch&lt;br /&gt;
|-&lt;br /&gt;
| 101Dh  || LD 2000h&lt;br /&gt;
|-&lt;br /&gt;
| 1020h  || INC&lt;br /&gt;
|-&lt;br /&gt;
| 1023h  || ST 2000h&lt;br /&gt;
|-&lt;br /&gt;
| 1026h  || VRESUME&lt;br /&gt;
|-&lt;br /&gt;
| 1027h  || VOFF&lt;br /&gt;
|-&lt;br /&gt;
| 1028h  || HALT&lt;br /&gt;
|-&lt;br /&gt;
| 7000h  || LD #0h&lt;br /&gt;
|-&lt;br /&gt;
| 7003h  || ST 7500h&lt;br /&gt;
|-&lt;br /&gt;
| 7006h  || INC&lt;br /&gt;
|-&lt;br /&gt;
| 7007h  || PUSH&lt;br /&gt;
|-&lt;br /&gt;
| 7008h  || POP&lt;br /&gt;
|-&lt;br /&gt;
| 7009h  || HALT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Табела 2. Стање током извршавања инструкција из решења задатка&lt;br /&gt;
! Р.б. !! Адреса !! Инструкција !! ACC [h] !! ВМ контролна структура !! VM !! Коментар&amp;lt;ref&amp;gt;На колоквијуму није постојала ова колона, већ је она овде додата за додатна објашњења.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 2    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 3    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 4    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 5    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 6    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 7    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 8    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 9    || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 10   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 11   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 12   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 13   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 14   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 15   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 16   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 17   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 18   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 19   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 20   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 21   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 22   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 23   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 24   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 25   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 26   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 27   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 28   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 29   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 30   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 31   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 32   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 33   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 34   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|-&lt;br /&gt;
| 35   || 1000h  ||             || 0h      || 1                      || 0  ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Табела 3. Стање ВМ контролне структуре из решења задатка&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Стање&lt;br /&gt;
|-&lt;br /&gt;
! Гост !! 1    !! 2     !! 3     !! 4     !! 5&lt;br /&gt;
|-&lt;br /&gt;
| SP  || EFFFh || EFFFh || EFFEh || EFFEh || EFFFh&lt;br /&gt;
|-&lt;br /&gt;
| PC  || 7000h || 7003h || 7008h || 7008h || 700Ah&lt;br /&gt;
|-&lt;br /&gt;
| PSW || VM=0  || VM=0  || VM=0  || VM=0  || VM=0&lt;br /&gt;
|-&lt;br /&gt;
| ACC || 1h    || 0h    || 1h    || 1h    || 1h&lt;br /&gt;
|-&lt;br /&gt;
| R0  || 0h    || 0h    || 0h    || 0h    || 0h&lt;br /&gt;
|-&lt;br /&gt;
| R1  || 0h    || 0h    || 0h    || 0h    || 0h&lt;br /&gt;
|-&lt;br /&gt;
| Бит мапа инструкција&lt;br /&gt;
|        1101b || 1101b || 1101b || 0101b || 0101b&lt;br /&gt;
|-&lt;br /&gt;
| Разлог изласка&lt;br /&gt;
|        00h   || 01h   || 04h   || 04h   || 00h&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Напомене ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:АОР2]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>