AOR2/K2 2023

Izvor: SI Wiki
< АОР2
Datum izmene: 12. maj 2023. u 21:22; autor: KockaAdmiralac (razgovor | doprinosi) (K2 od danas, sve bez tabele izvršenja zasad // Edit via Wikitext Extension for VSCode)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Drugi kolokvijum 2023. godine održan je 12. maja, trajao je 75 minuta i svaki zadatak je vredeo 5 bodova. Postavka ovog roka nije trenutno dostupna sa stranice predmeta.

1. zadatak

Postavka

Kod hardverske virtualizacije[sic] koristi se tehnika prateće[sic] tabela stranica (Shadow Page Tables). Opisati tehnike za ažuriranje prateća[sic] tabela stranica ukoliko gost načini promene tabele stranica gosta.

Rešenje

Sličan zadatak pojavio se na kolokvijumu 2021. godine, gde je napisano i njegovo rešenje.

2. zadatak

Postavka

Adresni prostor procesora je veličine 128KB, adresibilna jedinica je 16 bitna reč. Procesor je jednoadresni sa razdvojenim memorijskim i U/I adresnim prostorom i sa hardverskom podrškom za virtuelizaciju procesora.

Procesor poseduje 16 bitni akumulator ACC, 16 bitnu programsku statusnu reč PSW i 16 bitne registre opšte namene R0 i R1. U registru PSW postoji bit VM. Procesor prelazi u mod virtuelizacije postavljanjem bita VM na 1. Stek domaćina i gosta raste prema nižim lokacijama, a SP ukazuje na poslednju zauzetu lokaciju. Procesor poseduje i registar VMPTR koji ukazuje na trenutnu VM kontrolnu strukturu koja se koristi. U tabeli 1 je prikazana VM kontrolna struktura gde se vidi sadržaj registara domaćina, sadržaj registara gosta, bit mapa instrukcija koje izazivaju VM izlazak i razlog izlaska iz VM. Prikazana struktura se nalazi u memoriji počevši od adrese 6000h. Smatrati da svako polje ove strukture zauzima jednu memorijsku lokaciju i da se adresa ove strukture nalazi u registru VMPTR.

Tabela 1. VM kontrolna struktura
Registri Domaćin Gost
SP FFFFh EFFFh
PC 1008h 7000h
PSW VM=1 VM=0
ACC 0h 1h
R0 0h 0h
R1 6000h 0h
Bit mapa instrukcija (najniža 4b polja): 1101b
Razlog izlaska: 00h

Polja prikazane VM kontrolne strukture su smeštena u memoriji tako da su prvo smeštena polja stanja domaćina, pa polja stanja gosta i na kraju polja koja predstavljaju bit mapu instrukcija i razlog izlaska. Vrednost 1 bita u bit mapi instrukcija izaziva VM izlazak. Bitovi bit mape instrukcija se odnose na sledeće instrukcije: bit 0 — LD, bit 1 — ST, bit 2 — PUSH i bit 3 — POP. Smatrati da instrukcija HALT uvek izaziva VM izlazak. Razlog izlaska može da ima sledeće vrednosti: 00 — izvršavanje HALT instrukcije, 00 — izvršavanje HALT instrukcije, 01 — izvršavanje LD instrukcije, 02 — izvršavanje ST instrukcije, 03 — izvršavanje POP instrukcije i 04 — izvršavanje PUSH instrukcije. Smatrati da se prilikom VM ulaska vrši samo učitavanje registara koji predstavljaju stanje gosta iz VM kontrolne strukture, a da se prilikom VM izlaska prvo vrši čuvanje stanja gosta u polja gosta VM kontrolne strukture, a zatim učitavaju registri koji predstavljaju stanje domaćina iz VM kontrolne strukture u registre procesora.

Na slici 1, dat je deo koda koji je učitan u operativnu memoriju računara, vodeće nule adresa i podataka nisu prikazane. Instrukcija na adresi 1000h označena je kao 1. (prva) po redosledu izvršavanja, a svaka sledeća instrukcija koja se izvršava označena je sledećim rednim brojem. Početni sadržaj registra PC je 1000h. Rezultat dati nakon faze izvršenja instrukcije. Prilikom VM izlaska u posebnom redu je potrebno naznačiti novo stanje VM kontrolne strukture, vrednost akumulatora domaćina i vrednost VM bita registra PSW domaćina. Prilikom svake izmene VM kontrolne strukture potrebno je napisati novo stanje polja gosta i stanja bit mape instrukcija i razloga izlaska VM kontrolne strukture u tabeli stanja VM kontrolne tabele i naznačiti u rešenju gde se koristi novo stanje. Smatrati da su sve adrese na slici 1 fizičke adrese.

Slika 1. Deo koda učitan u operativnu memoriju
Adresa Instrukcija
1000h VON
1001h LD #0h
1004h ST 2000h
1007h VLAUNCH
1008h LD (R1)Dh
100Bh CMP #0h
100Eh JZ 1027h
1011h CMP #4h
1014h JNZ 101Dh
1017h LD #5h
101Ah ST (R1)Ch
101Dh LD 2000h
1020h INC
1023h ST 2000h
1026h VRESUME
1027h VOFF
1028h HALT
7000h LD #0h
7003h ST 7500h
7006h INC
7007h PUSH
7008h POP
7009h HALT

Rešenje

Tabela 2. Stanje tokom izvršavanja instrukcija iz rešenja zadatka
R.b. Adresa Instrukcija ACC [h] VM kontrolna struktura VM Komentar[1]
1 1000h 0h 1 0
2 1000h 0h 1 0
3 1000h 0h 1 0
4 1000h 0h 1 0
5 1000h 0h 1 0
6 1000h 0h 1 0
7 1000h 0h 1 0
8 1000h 0h 1 0
9 1000h 0h 1 0
10 1000h 0h 1 0
11 1000h 0h 1 0
12 1000h 0h 1 0
13 1000h 0h 1 0
14 1000h 0h 1 0
15 1000h 0h 1 0
16 1000h 0h 1 0
17 1000h 0h 1 0
18 1000h 0h 1 0
19 1000h 0h 1 0
20 1000h 0h 1 0
21 1000h 0h 1 0
22 1000h 0h 1 0
23 1000h 0h 1 0
24 1000h 0h 1 0
25 1000h 0h 1 0
26 1000h 0h 1 0
27 1000h 0h 1 0
28 1000h 0h 1 0
29 1000h 0h 1 0
30 1000h 0h 1 0
31 1000h 0h 1 0
32 1000h 0h 1 0
33 1000h 0h 1 0
34 1000h 0h 1 0
35 1000h 0h 1 0
Tabela 3. Stanje VM kontrolne strukture iz rešenja zadatka
Stanje
Gost 1 2 3 4 5
SP EFFFh EFFFh EFFEh EFFEh EFFFh
PC 7000h 7003h 7008h 7008h 700Ah
PSW VM=0 VM=0 VM=0 VM=0 VM=0
ACC 1h 0h 1h 1h 1h
R0 0h 0h 0h 0h 0h
R1 0h 0h 0h 0h 0h
Bit mapa instrukcija 1101b 1101b 1101b 0101b 0101b
Razlog izlaska 00h 01h 04h 04h 00h

Napomene

  1. Na kolokvijumu nije postojala ova kolona, već je ona ovde dodata za dodatna objašnjenja.