Treći kolokvijum iz Operativnih sistema 1. Kandidat: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku

Similar documents
Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

Prvi kolokvijum iz Operativnih sistema 1. Kandidat: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Uputstvo za korišćenje logrotate funkcije

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Ispit traje 3 sata. Nije dozvoljeno korišćenje literature Prvih sat vremena nije dozvoljeno napuštati ispit.

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Izrada VI laboratorijske vježbe

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

VHDLPrimeri Poglavlje5.doc

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

VDSL modem Zyxel VMG1312-B10A/B30A

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

2. Linijska algoritamska struktura

Računarske osnove Interneta (SI3ROI, IR4ROI)

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

VRIJEDNOSTI ATRIBUTA

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Uvod u relacione baze podataka

VB komande. Programiranje 1

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Vežbe - XII nedelja PHP Doc

PRIJEMNI ISPIT IZ INFORMATIKE

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

PREDMET. Osnove Java Programiranja. Čas JAVADOC

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

4. Fajlovi i direktorijumi

x y = z Zadaci - procedure

Programiranje III razred

12. Uskladištene procedure (Stored Procedures)

Sberbank Business Online na Mozilla FireFox

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom.

Operativni sistemi 2

... ; ako je a n parno. ; ako je a n neparno

Ulazno/Izlazni Podsistem (IO)

Programiranje u realnom vremenu Bojan Furlan

VEŽBA 5 do while petlja, switch case

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

JavaScript i HTML DOM

Programske paradigme Funkcionalna paradigma

Operativni Sistemi 2

PARALELNO PROGRAMIRANJE

GUI - događaji (Events) i izuzeci. Bojan Tomić

Računarske mreže. Čas 8. Ivana Tanasijević Matematički fakultet, Beograd

Informacioni sistemi i baze podataka

Praktikum iz Operativnih sistema - rešenja za godinu -

Upravljanje sistemom datoteka

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

NIZOVI.

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

[] znači opciono; znači ili. Strana 3 od 5

Algoritmi i strukture podataka

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Ispit iz Programiranja 1

VHDLPrimeri Poglavlje3.doc. end process seq; Slika 3.1: Anatomija osnovne definicije test bench-a

Rekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n.

Standardna ulazno-izlazna biblioteka

6. Sistemski softver

NISKE (stringovi) u C-u: podsećanje. 1. Primer programa koji uvodi niske karaktera terminisane nulom

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

KREDITI ZA POLJOPRIVREDNIKE

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

TEHNIKA I INFORMATIKA U OBRAZOVANJU

Objektno orijentisano programiranje

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

PROGRAMSKI PAKET ZA IN-CIRCUIT UPIS KODA U UNUTRAŠNJU FLEŠ MEMORIJU DIGITALNIH SIGNALNIH KONTROLERA 28XXX BEZ UPOTREBE DODATOG NAMENSKOG HARDVERA

Cjenovnik usluga informacionog društva

Uputstvo za podešavanje mail klijenta

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

32-Bit-Digital Signal Controller TMS320F2833x. Texas Instruments Incorporated

Numeričke metode i praktikum

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

9. RAD S DATOTEKAMA PODATAKA

Operacijski sustavi. Laboratorijska vježba 2. Petra Lončar, mag. ing. el., asistent FESB, 2016.

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju

Aktuelna verzija Matlaba je 7, koja ima dosta poboljšanja u odnosu na prethodne.

FORENZIČKA ANALIZA WINDOWS 7 REGISTRY

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

Nakon uključenja, računar testira priključeni hardver i po izdavanju odgovarajućih poruka, ispisuje takozvani prompt (A:> ili C:>).

operativni sistem part 2

I PISMENI ZADATAK III6 I GRUPA IME I PREZIME

Transcription:

Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Operativni sistemi 1 (SI2OS1, IR2OS1) Nastavnik: prof. dr Dragan Milićev Odsek: Softversko inženjerstvo, Računarska tehnika i informatika Kolokvijum: Treći, jun 2017. Datum: 11.6.2017. Treći kolokvijum iz Operativnih sistema 1 Kandidat: Broj indeksa: E-mail: Kolokvijum traje 1,5 sat. Dozvoljeno je korišćenje literature. Zadatak 1 /10 Zadatak 3 /10 Zadatak 2 /10 Ukupno: /30 = % = /10 Napomena: Ukoliko u zadatku nešto nije dovoljno precizno definisano, student treba da uvede razumnu pretpostavku, da je uokviri (da bi se lakše prepoznala prilikom ocenjivanja) i da nastavi da izgrađuje preostali deo svog odgovora na temeljima uvedene pretpostavke. Ocenjivanje unutar potpitanja je po sistemu "sve ili ništa", odnosno nema parcijalnih poena. Kod pitanja koja imaju ponuđene odgovore treba samo zaokružiti jedan odgovor. Na ostala pitanja odgovarati čitko, kratko i precizno. 1/5

1. (10 poena) Ulaz/izlaz U nekom sistemu implementira se keš blokova sa blokovskih uređaja ( diskova ) kodom koji je dat u nastavku. Za svaki uređaj sa datim identifikatorom pravi se jedan objekat klase BlockIOCache, inicijalizovan tim identifikatorom, koji predstavlja keš blokova sa tog uređaja. Keš čuva najviše CACHESIZE blokova veličine BLKSIZE u nizu cache. Svaki ulaz i u nizu cachemap sadrži broj bloka na disku koji se nalazi u ulazu i keša. Flegovi u ulazu i niza flags ukazuju na to da je u ulazu i validan sadržaj (da ulaz nije prazan, odnosno već je bio korišćen i u njega je učitan sadržaj nekog bloka) fleg F_VALID, odnosno da je sadržaj zaprljan, tj. menjan i treba ga upisati na disk fleg F_DIRTY. Kod koji koristi ovaj keš koristi ga na sledeći način za neku složenu operaciju sa uređajem: Byte* buffer = diskcache->getblock(blk); buffer[] = ; diskcache->writeblock(buffer); diskcache->releaseblock(buffer); Na početku ovakve složene operacije sa uređajem, ovaj kod najpre traži da keš obezbedi da je potrebni blok učitan pozivom funkcije getdiskblock koja vraća pokazivač na niz bajtova u baferu učitanom bloku. Potom ovaj kod može da čita ili upisuje u sadržaj tog bafera. Ako je upisivao, mora da pozove funkciju writeblock, kako bi keš znao da dati blok treba da upiše na uređaj. Kada završi celu operaciju, kod poziva funkciju releaseblock, kako bi kešu stavio do znanja da on više ne koristi taj blok. Pošto više ovakvih složenih operacija može biti ugnježdeno, blok iz keša može biti izbačen (zamenjen drugim) samo ako ga više niko ne koristi, što se realizuje brojanjem referenci u nizu refcounter. Implementirati funkcije getblock i releaseblock. Funkcija getblock treba da obezbedi da je traženi blok u kešu, odnosno učita ga ako nije; ako ga treba učitati, to može biti urađeno u bilo koji ulaz keša koji sadrži blok koji nije validan ili nije više korišćen; ako takvog nema, treba vratiti 0 (greška, nema mesta u kešu). Na raspolaganju su sledeće dve funkcije koje vrše učitavanje, odnosno upis (respektivno) bloka na dati uređaj: void ioread(int device, BlkNo blk, Byte* buffer); void iowrite(int device, BlkNo blk, Byte* buffer); typedef char Byte; // Unit of memory typedef long long BlkNo; // Device block number class BlockIOCache { public: BlockIOCache (int device); Byte* getblock (BlkNo blk); void writeblock (Byte* buffer); void releaseblock (Byte* buffer); private: static const unsigned BLKSIZE = ; // Block size in Bytes static const unsigned CACHESIZE = ; // Cache size in blocks static const short F_VALID = 0x01; // Valid bit mask static const short F_DIRTY = 0x02; // Dirty bit mask int dev; Byte cache [CACHESIZE][BLKSIZE]; // Cache BlkNo cachemap [CACHESIZE]; // Contents of the cache (block numbers) unisgned refcounter [CACHESIZE]; // Reference counters short flags [CACHESIZE]; // Valid, Dirty flags }; 2/5

BlockIOCache::BlockIOCache (int device) : dev(device) { for (int i=0; i<cachesize; i++) this->cachemap[i] = this->refcounter[i] = this->flags[i] = 0; } void BlockIOCache::writeBlock (Byte* buffer) { int i = (buffer-this->cache[0])/blksize; if (i<0 i>=cachesize) return; // Exception this->flags[i] = F_DIRTY; } Rešenje: 3/5

2. (10 poena) Fajl sistem Sistemi bazirani na sistemu Unix podržavaju strukture direktorijuma tipa acikličnog usmerenog grafa (DAG) pomoću dve vrste referenci na fajl kao objekat u fajl sistemu: soft (symbolic) link: meka (ili simbolička) veza predstavlja fajl posebnog tipa čiji sadržaj čuva proizvoljnu (apsolutnu ili relativnu) putanju do nekog drugog fajla, poput prečice (shortcut); svaku operaciju (komandu) nad ovakvom vezom sistem preusmerava na referencirani fajl, osim komande rm za brisanje brisanje simboličke veze briše samu vezu, ne i referencirani fajl; ukoliko referencirani fajl nestane ili se premesti, veza ostaje neažurna, viseća ; hard link: tvrda veza predstavlja jedan ulaz u direktorijumu koji referencira određeni fajl kao objekat (tj. njegov inode); na jedan fajl može ukazivati više tvrdih veza; komanda rm uklanja tvrdu vezu, a sam fajl se implicitno briše iz sistema kada nestane poslednja tvrda veza na njega. Iz komandne linije mogu se izvršiti sledeće sistemske komande: ls prikazuje sadržaj tekućeg direktorijuma (list) cd <dir> menja tekući direktorijum (change directory) ln <src> <dst> za postojeći fajl sa zadatom stazom <src> kreira novu tvrdu vezu sa datom stazom <dst> (link) ln -s <src> <dst> za postojeći fajl sa zadatom stazom <src> kreira novu meku vezu sa datom stazom <dst> rm <file> briše ulaz sa zadatim imenom iz tekućeg direktorijuma; ukoliko je to poslednja tvrda veza na fajl, briše se i sam fajl. Sve staze mogu biti apsolutne ili relativne. Zabeležena je sledeća sesija jednog korisnika: bar foo txt > cd /home/pics jane john chld > ln /home/docs/bar foo > rm john > rm bar > cd /home/pics a)(5) Napisati izlaz poslednje komande. Odgovor: b)(5) Nakon prikazane sekvence zadate su sledeće komande: > ln -s /home/docs/foo bar > rm /home/docs/foo > rm foo Napisati izlaz poslednje komande. Odgovor: 4/5

3. (10 poena) Fajl sistem U implementaciji nekog FAT fajl sistema cela FAT keširana je u memoriji u strukturi: extern unsigned long fat[]; Za ulančavanje se kao null vrednost u ulazu u FAT koristi 0 (blok broj 0 je rezervisan). U FCB fajla polje head sadrži redni broj prvog bloka sa sadržajem fajla i polje size koje sadrži veličinu sadržaja fajla u bajtovima. Slobodni blokovi su označeni ulazima u FAT sa vrednošću -1. Implementirati sledeću funkciju koja treba da obriše sadržaj fajla: void truncate (FCB* fcb); Rešenje: 5/5