OS2/Februar 2019
1. zadatak
Postavka
Kod Multilevel Feedback Queue raspoređivanja, precizno navesti u kojoj situaciji (na koji događaj u sistemu) raspoređivač „degradira“ proces (smešta ga u red spremnih procesa nižeg prioriteta od onog u kom je ranije bio), a kada ga „promoviše“ (smešta u red višeg prioriteta od onog u kom je bio)?
Rešenje
- Proces se degradira kada mu istekne vremenski kvant.
- Proces se promoviše kad je dugo čekao.
2. zadatak
Postavka
Na jeziku Java napisati kod serverskog procesa koji prihvata klijentski zahtev preko priključnice (socket) na portu 6060 i odmah raskida konekciju.
Rešenje
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket sock = new ServerSocket(6060);
Socket client = sock.accept();
sock.close();
} catch (IOException e) {
// ...
}
}
}
3. zadatak
Postavka
Šta je SOAP, a šta WSDL?
Rešenje
- SOAP je protokol za razmenu poruka između aplikacija.
- WSDL je jezik za opisivanje web servisa, zasnovan na XML.
4. zadatak
Postavka
Šta je tehnika „starenja“ (engl. aging) i za šta se ona upotrebljava?
Rešenje
Tehnika starenja je tehnika u algoritmima raspoređivanja zasnovanim na prioritetu koja sprečava izgladnjivanje. Što duže neki proces čeka, povećava mu se prioritet, i tako dolazi na red.
5. zadatak
Postavka
Tri uporedna procesa, A, B i C zauzimaju i oslobaˇaju tri nedeljiva resursa X, Y i Z po sledećem redosledu:
A: request(X), release(X), request(Y), release(Y) B: request(Y), release(Y), request(X), release(X) C: request(Y), request(Z), release(Z), release(Y)
Da li ova tri procesa mogu da uđu u stanje mrtve blokade (deadlock)? Ako mogu, dati scenario po kome dolaze u ovo stanje i nacrtati graf zauzeća resursa u tom stanju. Ako ne mogu, precizno objasniti (dokazati) zašto ne mogu.
Rešenje
Ova tri procesa mogu da uđu u stanje mrtve blokade, ako proces A zauzme X a proces B zauzme Y resurs. Na grafu zauzeća se vidi petlja A->Y->B->X->A
6. zadatak
Postavka
Neki sistem primenjuje algoritam časovnika (davanja nove šanse, clock, second-chance) za izbor stranice za izbacivanje. U donjoj tabeli date su različite situacije u kojima treba odabrati stranicu za zamenu. Date su vrednosti bita referenciranja za sve stranice koje učestvuju u izboru i pozicija „kazaljke“. Kazaljka se pomera u smeru prema višim brojevima stranica. Za svaku od datih situacija navesti koja stranica će biti zamenjena.
Situacija 1 | Situacija 2 | Situacija 3 | ||||
---|---|---|---|---|---|---|
Stranica | Bit ref. | Kazaljka | Bit ref. | Kazaljka | Bit ref. | Kazaljka |
0 | 1 | 1 | 1 | |||
1 | 1 | 1 | 1 | |||
2 | 0 | X | 0 | 1 | X | |
3 | 0 | 0 | 1 | |||
4 | 1 | 0 | 1 | |||
5 | 0 | 1 | X | 1 | ||
6 | 1 | 1 | 1 | |||
7 | 1 | 1 | 1 |
Rešenje
Situacija | Stranica |
---|---|
1 | 2 |
2 | 2 |
3 | 2 |
7. zadatak
Postavka
Kod slab alokatora, da li jedna struktura zvana cache sadrži alocirane strukture kernela istog ili različitih tipova?
Rešenje
Cache sadrži ploče koje u sebi sadrže alocirane stukure jednog tipa, tako da jedan cache služi za jedan tip.
8. zadatak
Postavka
Da li struktura RAID0 povećava otpornost na otkaze? Obrazložiti kako/zašto.
Rešenje
Ne, jer ne postoji nikakva redundansa. Otpornost se smanjuje jer se otkazom jednog diska trajno gube podaci celog sistema, pa se RAID 0 koristi tamo gde pouzdanost nije bitna.
9. zadatak
Postavka
Šta je journaling u fajl sistemu
Rešenje
Beleženje ili journaling je funkcionalnost fajl sistema gde se sve modifikacije fajl sistema modeluju kao transakcije i ne vrše se sinhrono, već se zapisuju u "zapisnik" (journal) i izvršavaju asinhrono. U slučaju pada sistema, neizvršene transakcije se mogu izvršiti ili poništiti tako da sistem ostane u konzistentnom stanju.
10. zadatak
Postavka
Na kom jeziku su napisane biblioteke poput OpenGL i SQLite koje su sastavni deo Android sistema?
Rešenje
Napisane su na C/C++.