pismeni Flashcards

1
Q

Što je operacijski sustav, od čega se sastoji i čemu služi?

A

Program ili skup programa koji upravljaju svim uređajima u sustavu i omogućuju jednostavno sučelje korisničkim programima prema sklopovlju. Današnji operacijski sustavi omogućuju višekorisnički i višezadaćni rad.

Sastoji se od:
1) jezgre operacijskog sustava (eng. kernel) – dio koji upravlja sklopovljem
2) ljuske za izvođenje programa (eng. command shell) - spona korisničkog sučelja i kernela
3) datotečnog sustav (eng. file system)
4) sustavskih programa (eng. system utilities) - programi i programski jezici za dogradnju i razvoj OS-a
5) korisničkih programa - isporučuju se zajedno sa OS-om da bi korisniku bilo dostupno što više usluga bez
dodatne nabave programa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Navedite, skicirajte i ukratko objasnite razine između kojih je smješten OS.

A

Compilers | Editors | Command interpreter
——————————————————————-
Operating system
——————————————————————-
Machine language
——————————————————————-
Microarchitecture
——————————————————————-
physical devices
——————————————————————-

Smještaj OS-a:
– fizička razina - uređaji (IC-i, sklopovi, PCB, ožičenja, posebne komp.)

– razina mikroarhitekture - tu fizički uređaji zajedno formiraju pojedine funkcijske cjeline: registri - ALU – CPU

– razina strojnog jezika - mikroprogram u asembleru, upravlja tijekom podataka između registara CPU i registara U/I
uređaja

– operacijski sustav - sloj programske podrške koji djelomično skriva ovu sklopovsku složenost i programeru omogućuje
skup instrukcija kojima će lakše pristupiti do tog sklopovlja

– ostali sustavski programi - ljuska, kor. sučelje, prevoditelji, editori, ostali

– korisnički programi - kupljeni, “kupljeni” ili pisani od strane korisnika

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Navedite 5 generacija operacijskih sustava i ukratko opišite njihova osnovna obilježja.

A

Prva generacija(1945 - 1955):
relejna tehnologija I vakumske cijevi, bušene kartice

Druga generacija(1955 - 1965):
Tranzistori,batch sustavi, pojavljuje se FORTRAN (OS), a podatke je bilo moguće snimiti na magnetske trake

Treća generacija(1965 - 1980):
pojava IC-a, multiprogramiranje, time sharing, spooling, MULTICS,UNIX,MINIX,Linux
Multiprogramiranje je dijeljenje memorije za različite poslove. (Uz to CPU ne stoji dok čeka podatke sa U/I sučelja. Nego dok čeka, obavlja drugi posao.) Spooling (Simultaneous Peripheral Operation On Line) - pri završetku posla, se učitava sljedeći posao.
Time Sharing je dijeljenje vremena korištenja CPU-a svakom poslu.

Četvrta generacija(1980 - danas):
LSI čipovi, osobna računala, mikroračunala
pojava operacijskih sustava MS-DOS,WIN NT/98/ME/2000/XP,Vista,W7,W8,W10
UNIX: X Windows, Motif, Niz Linux distribucija…
NOS (mrežni), DOS (raspodijeljeni)

Peta generacija(1990 - danas):
PDA, smartphone, Android iOS, Windows Phone, Symbian, RIM Blackberry

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Navedite i ukratko opišite najznačajnije vrste operacijskih sustava prema računalnoj okolini i prema namjeni.

A

Operacijski sustavi velikih računala (mainframe, vratili se kao veliki web poslužitelji)
- slijed poslova, obrada transakcija, podjela vremena, posluga brojnih korisnika

Operacijski sustavi poslužitelja
- jači PC-i, radne stanice ili mainframe računala, posluga velikog broja korisnika koji dijele sklopovlje, programe i podatke

Višeprocesorski operacijski sustavi
- razlika u načinu spajanja i dijeljenu resursa: paralelna računala, višeračunalni i višeprocesorski sustavi (posebnost: komunikacija, spajanje)

Operacijski sustavi osobnih računala
- dobro sučelje prema korisniku (Windows, Linux)

Operacijski sustavi za rad u stvarnom vremenu (real-time)
- strogi, ublaženi i postojani vremenski zahtjevi, mobilni, ECos

Operacijski sustavi ugradbenih računalnih sustava (embedded)
- smanjeni resursi: kućanski aparati, TV, automobili: Windows CE, Windows Embedded, TV OS, Linux, Embedded Linux, QNX, VxWorks

Operacijski sustavi senzorskih čvorova
- Tiny OS

Operacijski sustavi pametnih kartica (smart card)
- pokreću se na kartici, JVM interpreter, Java Appleti, jedna ili više jednostavnih mogućnosti

Operacijski sustavi ručnih računala i mobilnih uređaja
- PDA, mali uređaji, pametni telefoni

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ukratko objasnite što je jezgrin, a što korisnički način rada operacijskog sustava i kako se postižu.

A

Jezgrin način rada ima ovlasti pristupati svim mogućnostima sklopovlja
Korisnički način rada je ograničen način rada I štiti sklopovlje od korisnika, samo podskup instrukcija i podskup mogučnosti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Navedite i ukratko opišite svaki od koncepata (načela) rada OS-a.

A

1) Procesi - proces je program u izvođenju. Svakom procesu pridružujemo:
- adresni prostor, odnosno listu memorijskih lokacija u koje i iz kojih proces može pisati i čitati; adresni prostor sadrži izvršni program, podatke programa i stog
- Skup registara (PC, SP i drugi) (Program Counter, Stack Pointer)
prekinuti proces može se ponovo pokrenuti samo ako su svi navedeni podaci sačuvani (čuvaju se u tablici procesa)

2) Zastoji (deadlocks)
- kada dva ili više procesa međudjeluju, mogu izazvati situacije iz kojih ne mogu izaći.
- Primjer: Proces A treba resurs D1, Proces B treba resurs D2, potom Proces A treba resurs D2, i Proces B treba resurs D1, time se dogodi da proces A nemože dobiti resurs D2 dok proces B ga koristi, a proces B neće otpustiti resurs D2, dok ne dobije D1. I time se dobije prekid.

3) Rukovanje memorijom
- zbog više programa istovremeno u memoriji OS mora rukovati memorijom i zaštiti glavnu memoriju (fizička i prividna (virtualna) memorija), te osigurati memorijski prostor procesima

4) Ulaz/izlaz podataka
- OS ima U/I podsustav koji brine o vrlo različitim i zahtjevnim U/I uređajima (pogonski programi – dio neovisan o uređaju, a dio poseban za svaki uređaj i za svakog proizvođača)

5) Datotečni sustav
- sakriva složenost U/I uređaja i pruža korisniku čisti apstraktni model datoteka i direktorija neovisnih o uređaju
- organiziran hijerarhijski u obliku stabala
- definirane ovlasti korisnika
- “UNIX – mounting file system: omogućuje rad s prenosivim U/I uređajima (CD, FDD)
- Posebne datoteke: UNIX – posebne datoteke omogućuju pristup I/O uređajima kao datotekama
- postoje blok datoteke (diskovi) i znakovne datoteke (pisač, modem)
- Cjevovod - vrsta pseudo-datoteke koja se može koristiti za spajanje dva procesa -
- ako proces A želi poslati podatke procesu B, on piše u cjevovod kao u izlaznu datoteku -
- proces B može čitati te podatke iz cjevovoda kao iz ulazne datoteke

6) Sigurnost
- tajni podaci dostupni samo ovlaštenim korisnicima
- datoteke u UNIX-u zaštićene 9-bitnim binarnim kodom: 3-bitno polje i to jedno za vlasnika, jedno za druge članove vlasnikove grupe i jedno za sve ostale; bitovi poznati kao rwx bitovi (read, write, execute)
- zaštita od nametljivaca (ljudi, virusa)

7) Ljuska (shell)
- OS je kod koji izvodi sustavske pozive
- UNIX ima shell interpreter naredbi – shell (sh, csh, ksh….), odzivni znak (prompt)

8) Recikliranje koncepata

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Što je sustavski poziv? Nabrojite ili skicirajte korake nastanka sustavskog poziva. Pokažite na nekom primjeru izvođenje sustavskog poziva (npr. printf() – write ())

A

Sustavski poziv je sučelje između OS-a i korisničkih programa definirano skupom sustavskih poziva koje omogućuje OS.
Ti pozivi različiti su za svaki OS, pri čemu trebaju zadovoljiti zajedničke zahtjeve i posebnosti svakog OS-a.
Ti pozivi su ovisni o stroju.
Dok su oni često ostvareni u asembleru, biblioteka procedura omogućuje njihovo korištenje iz C-a i drugih VPJ.
(Viših Programskih Jezika)
Koraci nastanka sustavskih poziva:
1., 2. i 3. Pozivajući program najprije stavlja parametre na stog (1. i 2. parametar pozivaju se po vrijednosti, a treći po referenci)
4. Poziv bibliotečne procedure (instrukcija jednaka za pozivanje svih proc.)
5. Bibliotečna procedura stavlja broj sustavskog poziva u registar.
6. OS izvodi instrukciju TRAP s ciljem prijelaza iz korisničkog u jezgrin način rada.
7. Jezgrin kod utvrđuje broj poziva i dodjeljuje ga odgovarajućem rukovatelju poziva (handleru)
8. Pokreće se rukovatelj sustavskog poziva.
9. Kada rukovatelj odradi, nadzor se vraća bibliotečnoj proceduri korisničkog prostora, odnosno instrukciji koja slijedi TRAP instrukciju. (software interrupt)
10. Ta procedura vraća se na razinu korisničkog programa.
11. Za potpuni završetak, korisnički program briše stog i to poslije svakog poziva procedure.

Primjer:

void typefile(char* filename){
int fd, nread;
char buf[1024];

fd = open(filename,O_RDONLY);
if(fd == -1){
perror(filename);
return;
}

while( (nread = read(fd, buf, sizeof(buf) ) ) > 0 )
write(1,buf,nread);
close(fd);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Navedite i objasnite barem po dva sustavska poziva za:
a) rukovanje procesima
b) rad s datotekama
c) rad s direktorijima
d) razne zadaće

A

rukovanje procesima: fork (kreira novi proces dijete kao kopija procesa roditelja), waitpid (čeka da dijete završi)
rad s datotekama: close, open
rad s direktorijima: mkdir (stvara novi direktorij), rmdir (briše prazan direktorij)
razne zadaće: kill (ubija proces), time (vraća vrijeme u sekundama)
a) rukovanje procesima
- fork
- kreiranje novog procesa djeteta kao kopije procesa roditelja sa svim opisnicima, registrima itd
- Novi proces nastavlja samostalan put izvođenja, ali im je zajednički tekst programa.
- fork vraća vrijednost koja je 0 za proces dijete i odgovara njegovom PID-u, dok je za roditelja 1 (tako ih sustav razlikuje).
- nakon fork, dijete često treba izvršavati kod različit od roditelja(slika-Shell): čita naredbu s terminala, stvara proces dijete, čeka dijete da izvede naredbu i kada dijete završi, čita sljedeću naredbu s terminala.
- zbog čekanja da dijete (djeca) završi(e), roditelj izvodi poziv waitpid, a čeka postavljajući prvi parametar u -1.
- Kada waitpid završi, adresa na koju pokazuje parametar statloc, bit će postavljena na status za izlazak djeteta (exit).
- exit
- proces ga koristi kad završi izvođenje.
- Ima 1 parametar (0 - 255), koji se vraća roditelju preko statloc u waitpid pozivu.

b) rad s datotekama
- open
- zahtjeva ime datoteke, apsolutnu ili relativnu putanju i kod načina otvaranja:
- za čitanje(O_RDONLY),
- pisanje (O_WRONLY),
- ili oboje (O_RDWR),
- za kreiranje (O_CREATE).

  • close
  • zatvaranje datoteke, nakon čega je moguće ponovno otvaranje s open.
  • lseek
  • mijenja vrijednost pokazivača trenutnog položaja datoteke kod uzastopnog pisanja i čitanja i smješta ga u poziciju
  • Ima 3 parametra: (opisnik datoteke, položaj datoteke relativni položaj datoteke u odnosu na njen početak)
  • stat
  • za dohvaćanje informacija o vrsti datoteke (obična, posebna, direktorij itd.), duljini, vremenu izmjene itd., a parametri su ime datoteke i pokazivač na strukturu gdje će se smjestiti informacija

c) rad s direktorijima
- mkdir i rmdir
- kreiranje i uklanjanje praznog direktorija
- link i unlink
- omogućuje da se ista datoteka pojavljuje pod više imena u različitim direktorijima (dijeljenje datoteka među više korisnika), unlink obrnuto.
- mount i unmount
- Dva sustava datoteka mogu biti spojeni u jedan, unmount obrnuto.

d) razne zadaće
- chdir
- mijenja trenutni radni direktorij
- chmod
- mijenja način korištenja datoteka (mode)
- kill
- način na koji korisnici ili korisnički procesi šalju signale.
- Ako je proces pripremljen za hvatanje nekog signala, kada se signal pojavi, pokreće se rukovatelj signala.
- Ako nije pripremljen za rukovanje signalom, njegov dolazak ubija proces.
- time
- vraća trenutno vrijeme u sekundama, a 0 odgovara 1.1.1970. 32-bitni PC ima maks. vrijednost vremena 232-1 sekundu (preko 136 godina – do 2106.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Objasnite osnovne razlike između sustavskih poziva u Unix-u/Linux-u i Windowsima.

A
  • UNIX program sastoji se od koda koji nešto radi, a sustavski pozivi omogućuju pojedinu uslugu
  • Windows programi su obično pokretani događajima, odnosno glavni program čeka da dođe do nekog događaja, a zatim poziva proceduru koja će ga poslužiti.
  • Obično su događaji: pritisak tipke, pomak miša, pritisak tipke miša, umetanje diska itd. Rukovatelji se pozivaju kako bi obradili događaj, osvježili zaslon i obnovili unutarnje stanje programa.
  • UNIX ima 1-1 vezu između sustavskog poziva i procedure iz biblioteke koja ga poslužuje.
  • u Windowsima su pozivi biblioteke i sustavski pozivi vrlo isprepleteni i povezani.
  • Microsoft je definirao skup procedura zvanih Win32 API (Application Program Interface), a programer ih mora koristiti kako bi tražio usluge od OSa.
  • Postoji na tisuće Win32 API poziva, pa je u Windowsima često nemoguće znati što je sustavski poziv (omogućen od jezgre), a što poziv biblioteke (u korisničkom prostoru)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Što su procesi i kako se modeliraju?

A

Procesi su apstrakcije programa u izvođenju. Prilikom izvođenja imamo dojam pseudoparalelizma.
(zbog brzine izvođenja čini nam se da se procesi izvode paralelno, no oni se zapravo izvode jedan po jedan.)
Model procesa:
- Svi izvršni programi računala (ponekad uključujući i OS), organizirani su kao određeni broj slijednih procesa
Proces
- program u izvođenju, uključujući trenutna stanja PC, registara i varijabli.
- Recimo, svaki proces ima svoju virtualnu CPU, a zapravo se na njoj procesi brzo izmjenjuju.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Navedite uobičajene događaje (i primjere) koji dovode do stvaranja procesa, te objasnite razliku u stvaranju procesa u UNIX-u/Linux-u i Windowsima.

A
  1. Inicijalizacija sustava
    - kod boot-a stvaraju se prednji (sučelje prema korisniku)
    - i pozadinski(daemons) (primanje e-mail-a, zahtjev za web stranicom) procesi.
    - Lista procesa: UNIX - ps, Windows - CTRL-ALT-DEL CTRL-SHIFT-ESC (prečac za Task Manager)
    (to je prečac za menu za; zaključavanje, odjavljivanje, i task manager.)
  2. Izvođenje sustavskog poziva za stvaranje procesa od strane pokrenutog procesa (postojeći proces izaziva sustavski poziv za stvaranje novog procesa – npr. 1 proces dohvaća podatke s mreže, a drugi i dodjeljuje )
  3. Zahtjev korisnika za stvaranje novog procesa (u interaktivnim sustavima, korisnik s ENTER ili dvoklik pokreće program. To pokreće novi proces i pripadajuće zadatke – više otvorenih prozora u Windowsima)
  4. Iniciranje nakupine poslova (batch job) – korisnik postavlja poslove sustavu na izvođenje, a kada OS odluči da ima resursa za neki posao,kreira novi proces i pokreće sljedeći posao iz reda čekanja.

Sustavski poziv:
- u UNIX-u fork nakon kojega imamo dva procesa (roditelj i dijete) koji imaju jednaku sliku u memoriji, okolinu i otvorene datoteke. Dijete izvodi execve ili sličan poziv koji mijenja sliku u memoriji i pokreće novi program.
- u Windows-ima CreateProcess obavlja kreiranje procesa i učitavanje odgovarajućeg programa u novi proces. Poziv ima 10 parametara

U oba OS-a, nakon što je proces kreiran, i dijete i roditelj imaju vlastite odvojene adresne prostore

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Navedite uobičajene razloge (i primjere) i uvjete završetka procesa

A
  1. Normalni izlazak (svojevoljno), nakon obavljenog posla. Npr. kada prevoditelj prevede program, on izvodi sustavski poziv kojim OS-u govori da je gotov (exit ili ExitProcess), ali i da nešto treba ukloniti.
  2. Izlazak zbog pogreške (svojevoljno), odnosno otkrivene pogreške. Npr. pokrenemo prevoditelj cc foo.c, a programa foo.c nema (Pop-Up prozor)
  3. Fatalna pogreška (nije svojevoljno), često zbog pogreške u programu. Npr. izvođenje nepostojeće instrukcije, referenciranje nepostojeće adrese u memoriji, dijeljenje s 0.
  4. Ubijanje od strane drugog procesa (nije svojevoljno), gdje proces izvodi sustavski poziv koji OS-u govori da ubije neki drugi proces. Ubojica mora biti ovlašten za ubijanje. U UNIX-u je to kill, a u Windows TerminateProcess.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ukratko objasnite hijerarhiju procesa i razliku između Windowsa i UNIXa.

A
  • Proces roditelj kreira proces dijete, a onda svaki ima svoj put izvođenja. Dijete može također kreirati više procesa, stvarajući hijerarhiju. Pri tome ima jednog roditelja, nijedno, jedno ili više djece.
  • UNIX:
  • proces, njegova djeca i daljnji nasljednici čine skupinu procesa.
  • Kada korisnik tipkovnicom pošalje signal, on se prosljeđuje svim članovima skupine pridruženima tipkovnici, a proces ga može uhvatiti, ignorirati ili poduzeti neku “default” akciju.
  • Posebni proces init nalazi se u boot-u. Kad se pokrene, gleda broj terminala, a onda stvara jednog ili više novih procesa po terminalu. Oni čekaju da se netko prijavi, što opet može razgranati stablo procesa.
  • Windows:
  • nema hijerarhije procesa - svi su procesi jednaki.
  • Ipak, kreiranom procesu roditelj daje posebnu oznaku (token), zvanu rukovatelj (handle) koju koristi za nadzor djeteta.
  • Dijete može oznaku dati drugom procesu.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Navedite moguća stanja procesa, te skicirajte i objasnite dijagram prijelaza stanja procesa.

A

Moguća stanja procesa:
- Pokrenut (trenutno koristi CPU)
- Pripravan (pokretljiv, ali zaustavljen da bi se mogao izvesti drugi proces)
- Blokiran (ne može se pokrenuti dok ne dođe do nekog vanjskog događaja)

      Running   
       /           \ Blocked --> Ready
  1. Proces otkriva da se ne može pokrenuti, jer nema ulaznog podatka.
  2. Raspoređivač oduzima CPU trenutnom i dodjeljuje je nekom drugom procesu
  3. Raspoređivač vraća CPU procesu koji je bio pokretan prije trenutnog procesa
  4. Dogodio se događaj izvana na kojeg je proces čekao da bi se pokrenuo (npr. raspoloživost ulaznog podatka
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Navedite barem 10 parametara iz svih skupina parametara iz tablice procesa potrebnih pri implementiranju procesa.

A

Process management:
- Registers
- Program counter
- Program status word
- Stack pointer
- Process state
- Priority
- Scheduling parameters
- Process ID
- Parent process
- Process group

Memory management:
- Pointer to text segment
- Pointer to data segment
- Pointer to stack segment

File Management:
- Root directory
- Working directory
- File descriptors
- User ID
- Group ID

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Što su niti i kako se modeliraju?

A

Nit je dio procesa koji obavlja rad, niti se raspoređuju i izvode na CPU. Proces objedinjuje resurse potrebne za izvršavanje.
Sve niti u jednom procesu dijele isti adresni prostor (time i globalne varijable, otvorene datoteke, child procese)pa nisu neovisne. Niti kao i procesi, mogu biti u stanjima: Ready, Running, Blocked, Finished.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Navedite osnovne razlike između procesa i niti, te navedite parametre koji su nužni pri implementiranju niti.

A

Osnovne razlike između procesa i niti:
- Procesi su obično nezavisni, dok niti postoje kao podsetovi procesa.
- Procesi nose znatno više informacija stanja nego niti, dok niti u procesu dijele stanje procesa te memoriju i druge resurse.
- Procesi imaju zasebne adresne prostore, dok niti dijele adresni prostor.
- Procesi komuniciraju samo kroz sistemski dodijeljene IPC mehanizme.
- Zamjena konteksta je obično brža među nitima nego među procesima.
- Niti istog procesa su pokrenute u istom adresnom prostoru, procesi će postojati pojedinačno u svojim adresnim prostorima.

Parametri potrebni za implementiranje niti:
- Program counter
- Registers
- Stack
- State

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Navedite razloge korištenja niti i ukratko opišite jedan primjer korištenja niti, te mogući način programskog ostvarenja višenitnosti.

A

include <Windows.h></Windows.h>

Razlozi za korištenje niti:
- Omogućavaju paralelne entitete u istom adresnom prostoru
- Niti nemaju pridružene resurse, pa ih je 100 puta brže kreirati i uništiti nego procese
- Znatno poboljšanje performansi pri korištenju U/I
- Vrlo pogodne pri višestrukim procesorima gdje je moguć pravi paralelizam

Primjer: Korištenje uređivača dokumenta.  -	Jedna nit se koristi za naredbu zamijeni, gdje zamijeni string u dokumentu, sa drugim stringom. -	Ako bi korisnik u slučaju gdje se zamjena predao nekakvu naredbu, bilo sa tipkovnice ili miša, ta naredba bi bila ignorirana sve dok nit ne obavi svoje. -	Da imamo više niti, to se ne bi dogodilo. Ta naredba bi se dovršila sve dok za nit koja zamjenjuje stringove, vrši. -	U ovom slučaju više procesa na isti dokument ne bi bio moguć, jer procesi ne dijele isti adresni prostor i datoteke.

Primjer višenitnosti:

#include <iostream>
using namespace std;</iostream>

DWORD WINAPI thread1(__in LPVOID lpParameter) {
while (1) {
std::cout &laquo_space;” From Thread 1 \n”; Sleep(1500);
}
}

DWORD WINAPI thread2(__in LPVOID lpParameter) {
while (1) {
std::cout &laquo_space;” From thread 2\n”; Sleep(5000);
}
}

WORD WINAPI thread3(__in LPVOID lpParameter) {
while (1) {
std::cout &laquo_space;” From thread 3\n”; Sleep(2000);
}
}

int main() {
DWORD threadID1, threadID2, threadID3;
HANDLE h1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread1, 0, 0, &threadID1);
HANDLE h2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread2, 0, 0, &threadID2);
HANDLE h3 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread3, 0, 0, &threadID3);
getchar();
return 0;
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Što su Pthreads i kojim pozivima se njima upravlja.

A

Pthreads
- POSIX threads, dozvoljavaju programu da kontrolira više različitih tokova rada koji se odvijaju u isto vrijeme

Poziv - Opis:
Pthread_create | Create a new thread
Pthread_exit | Terminate the calling thread
Pthread_join | Wait for specific thread to exit
Pthread_yield | Release the CPU to let another thread run
Pthread_attr_init | Create and initialize a thread’s attribute structure
Pthread_attr_destroy | Remove a thread’s attribute structure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Što je kritični odsječak i zašto je potreban? Objasnite po potrebi i slikom.

A

Kritični odsječak je dio programa u kojem proces pristupa dijeljenoj memoriji. Služi za sprečavanje utrkivanja, tj. zabranjuje da više od jednog procesa čitaju ili pišu iz ili u dijeljeni prostor podataka u isto vrijeme - osigurati međusobno isključivanje (mutual exclusion)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Navedite četiri uvjeta koji omogućuju međusobno isključivanje.

A

Uvjeti sprečavanja isključivanja:
1. Dva procesa istovremeno ne mogu biti u kritičnom odsječku
2. Ne rade se pretpostavke o brzinama i broju procesora
3. Proces pokrenut izvan kritičnog odsječka ne može blokirati drugi proces
4. Proces ne mora beskonačno čekati do ulaska u svoj kritični odsječak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Navedite zahtjeve za komuniciranjem među procesima, te zahtjeve za komuniciranjem među nitima.

A

Prosljeđivanje informacije jednog procesa drugom
Sprječavanje ulaska procesa u kritične odsječke jedno drugom
Omogućavanje redoslijeda izvođenja koji poštuje međusobnu zavisnost među procesima
Za niti: komuniciranje među procesima treba biti jednako primjenjivo na niti, još lakše za niti u istom adresnom prostoru

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Navedite postupke koji postižu međusobno isključivanje čekanjem, te ukratko opišite barem tri od njih. (Busy Waiting)

A

Zabrana prekida
Najjednostavnije je da svaki proces zabrani svaki prekid odmah kada uđe u K.O., a dozvoli čim izađe. CPU se samo prebacuje s procesa na proces prema takta ili na prekid. Postupak je nepopularan, jer nije zgodno korisničkom procesu dati mogućnost dozvole/zabrane prekida (može ga zaraniti i više nikad ne dozvoliti - crash). Zabrana prekida korisna, ali unutar OS-a, a ne na razini korisnika.

Varijable Ključanja
Imamo dijeljenu (lock) varijablu inicijalno u 0. Kada proces želi ući u K.O., ispituje lock. Ako je lock 0, proces ga postavlja u 1 u ulazi u K.O. Ako je lock već u 1, proces mora čekati dok ne bude 0.
Nedostatak: proces čita lock i vidi da je 0. Prije nego ga postavi u 1, drugi proces je raspoređen za izvođenje i postavlja lock u 1. Kada se prvi proces ponovo pokrene, on također postavi lock u 1 i oba su u K.O.

Strogo Izmjenjivanje Kod OS-a najčešće i je pisan u C ili C++ jeziku. Cjelobrojna varijabla turn je početno u 0, a postavlja se za ulaz u K.O. Proces 0 ispituje turn, utvrđuje da je 0, te ulazi u K.O. Proces 1 također vidi da je turn 0 i u petlji ispituje turn da vidi kad će biti 1. Stalno ispitivanje varijable do pojave neke vrijednosti naziva se busy waiting. Uglavnom se sprječava, jer troši vrijeme CPU. Kada proces 0 napusti K.O., postavlja turn u 1 kako bi u K.O. ušao proces1. S obzirom da narušava zahtjev 3., nije uvijek stvarno primjenjiv postupak.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Objasnite na čemu se zasniva Petersonovo rješenje međusobnog isključivanja?

A

Prije upotrebe dijeljenih varijabli (prije ulaska u K.O.), svaki proces poziva enter_region sa svojim vlastitim brojem procesa, 0 ili 1, kao parametrom.
Taj poziv uzrokuje njihovo čekanje do sigurnog ulaska u K.O. Nakon završetka s dijeljenim varijablama, proces zove leave_region da pokaže daje gotov i dozvoli drugom procesu ulazak u K.O.
Početno nijedan proces nije u K.O. Tada proces 0 poziva enter_region. To pokazuje njegov interes postavljanjem turn u 0. Ako proces 1 pozove enter_region, on tamo ostaje dok interested[0] ne bude FALSE…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Ukratko objasnite sljedeće pojmove i način njihovog korištenja: semafor, muteks, futeks, monitor.

A

Semafor:
- cjelobrojna varijabla u programu koja pamti broj buđenja za buduće korištenje
- Dvije operacije:
- down: ispituje je li vrijednost veća od 0, ako je dekrementira vrijednost i nastavlja, ako nije, proces odlazi na spavanje bez završetka down-a.
- up: inkrementira vrijednost semafora.Ako jedan ili više procesa spavaju na semaforu i ne mogu završiti prethodnu down operaciju, jedan on njih se bira da bi ju završio.

Muteks:
- pojednostavljeni semafor koji se koristi za upravljanje međusobnim isključivanjem na resursima programa
- ima dva moguća stanja (otključano i zaključano)
- Ako proces ili nit pozove resurs koji je zaključan(mutex_lock), oni idu u blokiranje sve dok taj resurs ne postane slobodan,tj. Sve dok ne postane otključan(mutex_unlock).

Futeks: fast user space mutex, mehanizam u Linux-u koji implementira mutex, radi na jezgri procesora
- Ako je lock početno u nuli (slobodan), nit upita za “decrement and test” te provjerava rezultat, ako je lock slobodan, nit se izvodi, ako nije, nit ide u red čekanja za jezgru i ulazi kad bude odblokirana.

Monitor: složena varijabla koja se sastoji od procedura i varijabli koja služi za sinkronizaciju procesa
- Isključivo jedan proces može biti aktivan u monitoru
- Proces poziva proceduru u monitor, da utvrdi da li već postoji proces u monitoru. Ako ima, poziv se odgađa dok trenutni proces ne napusti monitor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Ukratko objasnite postupak izmjene poruka i na tome zasnovano rješenje problema proizvođač – potrošač.

A

Koristi sustavske pozive send i receive kako bi se slala poruka procesu. Ta poruka može biti objekt, paralelni proces, funkcija, nit…
Pri slanju poruke je potrebna potvrda prijema i autentifikacija.
Rješava problem proizvođač-potrošač tako da za svakih N poruka koje su poslane a ne mogu biti primljene, potrošač šalje N praznih poruka proizvođaču.
(IPC - Inter-Process Communication)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Ukratko objasnite i skicirajte način rada i ulogu barijera.

A

Mehanizam usmjeren usklađivanju grupa procesa. Neke aplikacije podijeljene su u faze, pri čemu proces ne može ići u sljedeću fazu (blokira se), dok svi procesi ne budu spremni za ulazak u tu fazu. Zato se iza svake faze stavlja barijera (poziv barrier). Proces pristupa barijeri, od svih procesa, jedan blokira barijeru, posljednji proces dolazi, svi prolaze.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Objasnite pojam i razloge raspoređivanja, te navedite podjelu, vrste i ciljeve algoritama raspoređivanja.

A

Raspoređivanje je postupak izrade rasporeda za procese. Primjenjuje se kad se kreira novi proces, kada proces završava, pri prekidu ili blokade U/I…
Koristi se zbog pseudoparalelnog izvođenja procesa.
Algoritmi raspoređivanja:
- Batch - malo ili nimalo prekida,
- Interaktivni - prekidanje zbog hitnosti,
- Realtime - prvo se pokreće proces bitan za dovršavanje aplikacije, prekidi nisu nužni

Ciljevi:
- SVI SUSTAVI - fair share of CPU, poštivanje pravila, svi dijelovi sustava zaposleni;
- BATCH SUSTAVI - maksimizirati broj poslova po satu, minimizirati vremena između poslova, držati CPU stalno zaposlenog
- INTERAKTIVNI SUSTAVI - brzo reagiranje na zahtjev, proporcionalno udovoljiti svim korisnicima;
- REALTIME - poštivati zadane rokove, predvidljivost

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Naučite za zadani skup zadataka po jedan primjer raspoređivanja koristeći: FCFS, SJF i SRTN algoritam.

A

FCFS (First-Come First-Served)
- jednostavan, neprekidan, jedan red, kratki poslovi čekaju vrlo duge

SJF (Shortest Job First)
- neprekidan, po SJF pojedinačna i prosječna vremena završetka poslova su bolja
- optimalan samo ako su poslovi istovremeno pripravni

SRTN (Shortest Remaining Time Next)
- prekidan, statičan, dolazak kraćeg procesa izaziva prekid

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Objasnite što je trorazinsko raspoređivanje.

A
  • prijemni raspoređivač: mješavina CPU i U/I poslova i SJF
  • za primljeni posao, generira se proces i smješta u memoriju ili swap na disk (koji gdje – raspoređivač memorije:
  • koliko dugo je od zadnjeg swapa procesa
  • koliko je zauzimao CPU - trajanje procesa
  • važnost procesa
  • raspoređivanje na CPU(slika)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Naučite za zadani skup zadataka po jedan primjer raspoređivanja koristeći: Round Robin, raspoređivanje na više razina, višestruke redove, Shortest Process Next, Guaranteed Scheduling i Fair-Share Scheduling.

A

ROUND ROBIN
- svakom procesu dodjeljuje se vremenski interval
- na kraju tog intervala pokreće se drugi proces
- drugi proces se pokreće i ako se trentuni proces blokira
- pitanje je samo dužina intervala

RASPOREĐIVANJE S VIŠE RAZINA PRENSTVA
- svakom procesu dodjeljuje se određena razina prvenstva, a proces najviše razine pokreće se prvi
- razine prvenstva mogu se mijenjati svakim novim otkucajem sata
- razine se mijenjaju statički (Unix - nice) ili dinamički (posluživanje U/I uređaja)
- često grupiranje procesa na razine prvenstva

VIŠESTRUKI REDOVI
- bolje je procesu dati jednom duži interval, nego više kratkih (prekidi, swapping)
- daju li se svim procesima dugi intervali, dobivamo loše vrijeme odziva
- procesi se stavljaju u razrede prvenstva: najviša razina jedna jedinica vremena, ispod nje dvije, ispod nje tri…
- svaki put kad proces potroši cijeli iznos dozvoljenog vremena, spuštamo garazinu niže

SHORTEST PROCESS NEXT
- daje najkraće prosječno vrijeme odziva, pa je dobro i u interaktivnim sustavima
- koji od pokrenutih je najkraći: procjena dotadašnjeg ponašanja pokretanih naredbi (procesa) računanjem težinskih zbrojeva (aging) i pokretanje po procjeni najkraćeg procesa

GUARANTEED SCHEDULING
- n korisnika dobiva 1/n kapaciteta CPU (vrijedi i za jednokorisnički sustav i n procesa)
- načiniti omjer potrošenog i dodijeljenog vremena na CPU (1/2 – pola iskoristio, 2 – dvostruko iskoristio)
- pokretati proces najmanjeg omjera, dok omjer ne bude pomaknut iznad suparnika

FAIR-SHARE SCHEDULING
- Svaki korisnik, a ne proces dobije neki dio vremena, pa se to vrijeme dijeli na sve njegove procese
- (Korisnik 1 ima a,b,c,d ;a korisnik 2 ima e: raspored je abecdeabecde)»

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Napišite izraz i ukratko objasnite uvjet rasporedivosti u sustavima stvarnog vremena.

A

Uvjet rasporedivosti u realtime: ∑_(i=1)^m (C〖_i〗)/(P〖_i〗)≤1

  • za m periodnih događaja,
  • događaj i se dogodi unutar perioda Pi i traje Ci
  • ne može biti veći događaj(C) od predviđenog vremena trajanja P)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Navedite i opišite osnovne grupe procesa u operacijskom sustavu.

A

Postoje dvije grupe procesa:
- Prednji procesi - sučelja prema korisniku
- Pozadinski procesi (daemoni) - obrada raznih zahtjeva, i sve što se događa u pozadini

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Opišite razlike između poznatih problema kontrole istovremenosti u višenitnim aplikacijama: međusobnog isključivanja, zastoja i gladovanja

A

Međusobno isključivanje – da se osigura da je jedna proces unutar kritičnog odsječka u slučaju utrke

Zastoj - izvršavanje međusobnog isključivanja može uzrokovati zastoj. Primjerice, ako 2 procesa istovremeno čekaju na 2 resursa, a operacijski sustav svakom da jedan od resursa. Tada su oba procesa u zastoju jer su im potrebna oba resursa za daljnji rad. Nijedan proces neće otpustiti resurs kojim raspolaže pa time neće dobiti ni pravo na drugi resurs.

Gladovanje – ako npr. imamo 3 resursa. P1, P2 i P3 te oni zahtijevaju periodički pristup. Prvo ide P1 te nakon izvršavanja resurs dijeli P3, nakon toga P3 daje P1 i tako dalje. U tom slučaju P2 je u gladovanju.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Objasnite što su računalna sredstva (resursi), te navedite primjere i tipove.

A

Računalni resursi su uređaji i mediji kojima računalo raspolaže. Primjer: pisač, diskovi, memorijski prostor, baza podataka…
Tipovi resursa:
- prekidivi - mogu se oduzeti procesu koji ih posjeduje a da ne dođe do zastoja (memorija)
- neprekidivi - ne mogu se oduzeti trenutnom procesu posjedniku, a da ne dođe do pogreške ili pada sustava (CD snimač); uglavnom uzrokuju zastoje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Prikažite i objasnite kako se semafori koriste za zaštitu (jednog i dva) resursa.

A

Ako imamo jedan resurs, proces mora obavljati poziv semaforu za zahtjev resursa (down), obavljanje rada sa resursom i onda oslobađanje resursa (up)
Ako imamo dva resursa, moramo prvo obaviti poziv semaforu za zahtjev jednog pa drugog resursa i tek kada su oba slobodna možemo obaviti rad na resursu. Nakon obavljenog rada resurs oslobađamo preko semafora.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Što su zastoji i koji su uvjeti nastanka i sprječavanja zastoja?

A

Skup procesa je u zastoju ako svaki proces skupa čeka događaj koji može uzrokovati samo neki drugi proces u istom skupu
Proces se ne može pokrenuti, osloboditi resurse ili biti probuđen
Uvjeti za zastoj:
Međusobno isključivanje - svaki resurs dodijeljen je istovremeno jednom procesu
Držanje i čekanje - proces koji trenutno koristi resurse zahtjeva dodatne
Neprekidivost - resurs ne može biti naglo oduzet procesu nego mora biti otpušten od procesa koji ga trenutno posjeduje
Kružno čekanje - kružni lanac 2 ili više procesa, čeka na resurs koji trenutno drži sljedeći lanac
Zastoj se sprječava uklanjanjem barem jednog od ovih uvjeta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Skicirajte i ukratko objasnite modeliranje zastoja usmjerenim grafom i strategije rada sa zastojima.

A

Strategije rada sa zastoijma:
- Potpuno ignorirati problem (i problem ignorira Vas)
- Detektiranje i oporavak (dopustiti zastoj i onda ga popravljati)
- Dinamičko sprječavanje (pažljivim dodjeljivanjem resursa)
- Prevencija (negiranje jedno od uvjeta za zastoj)

a) R –> A
b) B –> S
c) …D –> U –> C –> T –> D –> U… ( u krug)
- resurs R dodjeljen je procesu A
- proces B zahtjeva/čeka resurs S
- procesi C i D su u zastoju nad resursima T i U

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Objasnite Nojev algoritam i uvjete kada se koristi.

A

Pretvaramo se da to nije problem, koristi se ako se zastoj događa vrlo rijetko ili ako su troškovi sprječavanja vrlo visoki
UNIX i Windows imaju takav pristup.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Navedite i ukratko objasnite načine oporavka od zastoja.

A

Oporavak od zastoja je moguć:
Prekidanjem (uzima se resurs nekog drugog procesa, ako moguće)
Povratkom unatrag (proces se provjerava periodno i ti podaci se čuvaju kako bi se mogla pokrenuti prijašnja inačica)
Ubijanjem procesa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Objasnite otkrivanje zastoja za jedan resurs svakog tipa, te za više resursa svakog tipa.

A

Otkrivanje zastoja:
za 1 resurs svakog tipa-algoritam detektira kružno čekanje u usmjerenom grafu
za više resursa svakog tipa-potrebni vektor postojećih resursa E, raspoloživih resursa A, matrica trenutnog dodjeljivanja resursa C i matrica potreba za resursima R: ∑_(i = 1)^n C_ij+ A_j= E_j;
algoritam otkriva proces za koji je i-ti red od R manji ili jednak A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Objasnite kako radi Bankarev algoritam za pojedinačne i višestruke resurse, te naučite korištenje tog algoritma na primjeru.

A

Bankarev algoritam je jedna od strategija za sprječavanje zastoja. Algoritam se zasniva na pažljivom dodjeljivanju resursa procesima. Postoji bankarev algoritam za pojedinačne te za višestruke resurse. Bankarev algoritam za pojedinačne resurse: Raspolaže se određenom količinom jednog resursa i to tako da se ne daje maksimalni traženi iznos odjednom, nego se daje onaj iznos kojim bi se određeni proces mogao završiti, nakon čega se resursi tog završenog procesa vraćaju u početnu količinu. Postupkom se otkriva je li stanje sigurno (do zastoja sigurno neće doći) ili nesigurno (do zastoja bi moglo doći).

Bankarev algoritam za višestruke resurse: Raspolaže se određenom količinom više različitih resursa, a postupak se vrši na jednak način kao kod algoritma za pojedinačne resurse, samo što se ovdje raspolaže s više različitih resursa odjednom. Uočavamo matrice: C (currently allocated resources) – količina zasebnih resursa koje svaki pojedini proces trenutno zauzima. R (request resources) – količina zasebnih resursa koje svaki pojedini proces treba kako bi završio. E (every resource) – suma trenutno ustupljene količine resursa (P) i trenutno dostupne količine resursa (A). P (preallocated resources) – trenutno ustupljena količina resursa. A (available resources) – trenutno dostupna količina resursa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Navedite i ukratko objasnite preventivne mjere protiv zastoja.

A
  1. Međusobno isključivanje
    - resurse dodjeljivati samo ako je nužno potrebno, sa što manje procesa istovremeno tražiti resurse
  2. Držanje i čekanje
    - zahtijevati da proces traži resurse prije pokretanja, te da oslobodi sve resurse prije traženja novih
  3. Neprekidivost
    - često nije dobro naglo prekinuti proces( npr. Printer)
  4. Kružno čekanje
    - resurse normalno poredati
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Ukratko objasnite što su zastoji bez resursa i komunikacijski zastoji.

A

Zastoji bez resursa je zapravo zastoj dva procesa: oba čekaju drugog da nešto učini.
Mogu se dogoditi i sa semaforima, gdje svaki proces zahtjeva da učini down() na dva semafora (mutex ili drugo). Ako se napravi krivim redoslijedom, dolazi do zastoja.
Komunikacijski zastoji se događaju pri sinkronizaciji nadmetanja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Navedite i objasnite četiri osnovna stanja poslova (jobs) u operacijskom sustavu Linux.

A
  • Running
  • Sleeping / waiting - proces čeka resurse
  • Zombie - ostatak završenog procesa koji nije do kraja zaustavljen
  • Stopped
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Objasnite razliku između monoprogramiranja i multiprogramiranja, te načine rješavanja problema odvojenim i jednostrukim redovima.

A

Kod monoprogramiranja imamo pokrenut samo jedan program koji dijeli memoriju sa OS-om
Kod multiprogramiranja imamo više procesa istovremeno; jedan radi dok su ostali blokirani, izmjenjuju se kroz vrijeme. Uz to potrebno je podijeliti memoriju na nejednake dijelove:
- Ako imamo odvojene ulazne redove za grupe procesa, red za velike dijelove je prazan a mali procesi će čekati u svom redu.
- Ako imamo jedan ulazni red, proces najbliži čelu reda ide u prazni dio koji mu odgovara.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Skicirajte i objasnite dijagram ovisnosti korisnosti CPU o stupnju multiprogramiranja i čekanju na ulaz/izlaz.

A

Korisnost CPU kao funkcija broja procesa u memoriji (približno)
- proces troši p vremena na čekanje U/I
- za n procesa odjednom u memoriji, vjerojatnost čekanja U/I je pn
- korisnost CPU = 1-pn
- za p vremena čekanja na U/I i n procesa u memoriji: (za veći broj procesa i manje vrijeme čekanja veća je korisnost)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Objasnite kako dolazi do povezivanje instrukcija i podataka s memorijom, te što je relociranje.

A

Događa se u tri različita stanja za:
- Vrijeme prevođenja:
○ ako je lokacija memorije poznata unaprijed, generira se apsolutni kod,
○ a ako se startna lokacija mijenja, mora se ponovno prevesti.

  • Vrijeme učitavanja:
    ○ mora generirati relocirani kod na lokaciju memorije koja nije poznata za vrijeme prevođenja.
  • Vrijeme izvođenja:
    ○ povezivanje kasni do pokretanja ako se proces tijekom pokretanja premješta s jednog segmenta u drugi.
  • Relociranje:
    Process dodjeljivanja “adrese učitavanja” za (memorijski-)pozicijski ovisni program i prilagođavanja koda i podataka programa da se odražavaju na dodijeljene adrese.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Objasnite pojam prividne (virtualne) memorije, postupke njene implementacije, te straničenje na zahtjev.

A

Virtualna memorija - ako programi ne stanu u prostor fizičke memorije, dijele se na sitnije dijelove, samo dio koji se izvodi OS ostavlja u memoriji, a ostatak ide na disk i tako se stvara privid veće memorije.
Omogućena je straničenjem: virtualna memorija se podijeli na stranice, a odgovarajuće jedinice u fizičkoj memoriji su okviri stranica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Objasnite pojam izmjene (engl. swapping) i njegovo rješavanje kod procesa stalne i promjenjive veličine.

A

Kad ponestane memorije za sve procese, vrši se dohvaćanje procesa, njihovo pokretanje i vraćanje na disk. Taj proces se zove izmjena ili swapping.
Procesi stalne duljine su jednostavni za smještanje, smještaju se u rupe nastale izlaskom drugih procesa.

Procesi čiji podatkovni su promjenjive veličine su zahtjevni za swappanje:
- Ako imaju šupljine u memoriji susjedne procesu, on se slobodno širi.
- Ako je proces uz proces, neki procesi izlaze da bi se napravila dovoljno velika šupljina za širenje.
- Ako proces ne može rasti, čeka ga se ili ubija.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Objasnite i skicirajte postupak rukovanja memorijom korištenjem bitmapa, te korištenjem povezanih lista.

A

Uz bitmapu, memorija je podijeljena u jedinice za alociranje reda veličine čak do nekoliko kilobyte-a. Jedan bit u bitmapu ukazuje na to je li slobodan (0) ili je zauzet (1).
Povezana lista dodijeljenih i slobodnih dijelova memorije (proces ili šupljina) - proces (P), šupljina (H), početna adresa, duljina, pokazivač - kada proces završi, lista se lako ažurira - proces ima dva susjeda (osim ako je na vrhu ili dnu memorije)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

Objasnite Best Fit, Worst Fit i First Fit algoritme dodjeljivanja memorije procesima.

A

First Fit - traži dok ne nađe dovoljno veliku prazninu
Next Fit - ne pretražuje od početka već od mjesta gdje je pronađena zadnja dovoljna praznina
Best Fit - pretražuje cijelu listu dok ne nađe najmanju odgovarajuću prazninu
Worst Fit - uvijek uzima najveću prazninu
Quick Fit - ima odvojene liste za najčešće zahtijevane dužine praznina, vrlo brz, pravi veliku fragmentaciju

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Što je virtualna memorija i kako je ona omogućena straničenjem (engl. paging). Osvrnuti se na sliku i po potrebi je skicirati.

A

Virtualna memorija je kombinirana duljina programa i podataka koja prelazi raspoloživu memoriju. OS uz virtualnu memoriju u RAM memoriji ostavlja samo trenutno izvođeni program a ostatak ide na disk.

Paging je način upravljanja memorijom gdje računalo piše i čita podatke sa sekundarnog memorijskog prostora za korištenje u glavnom memorijskom prostoru (RAM podatci idu na disk).
Stranice su jedinice virtualnog adresnog prostora, koji po veličini odgovaraju okvirima u fizičkoj memoriji.
Broj stranice se koristi kao indeks u tablici stranica
Virtualna adresa = broj virtulane stranice + pomak
Paging je izmišljen da dobijemo dugački linearni adresni prostor bez da moramo uzimati više fizičke memorije

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Objasnite ulogu i probleme korištenja tablica stranica.

A

Služi za mapiranje virtualnih stranica u okvire stranica.
To je funkcija kojoj predajemo broj virtualne stranice i vraća broj fizičkog okvira.

Dva su problema:
Tablica stranice može biti vrlo velika, svaki proces ima svoju tablicu (koristi se 32- ili 64-bitno adresiranje: 4- kB stranica i 32-bitno adresiranje ima milijun stranica – toliko redova tablice, a 64-bitno nezamislivo puno)
Mapiranje mora biti brzo (mapiranje virtualna – fizička adresa mora se obaviti pri svakom referenciranju memorije: instrukcija traje 4ns, a pogled u tablicu stranice mora biti 1ns)
- najjednostavnije: jednostruka tablica stranice s brzim registrima
- složenije: tablica stranice cijela u glavnoj memoriji i jedan registar

55
Q

Objasnite što je TLB i kakva je njegova uloga pri straničenju.

A

TLB - translation lookaside buffer
Međuspremnik preslika adresa - vrsta priručne memorije.
Pri straničenju omogućuje mapiranje virtualnih adresa bez prolaska kroz tablicu stranica, time smanjuje vrijeme potrebno da korisnik pristupi memorijskoj lokaciji.
- asocijativna memorija koja omogućuje mapiranje virtualnih adresa bez prolaska kroz tablicu stranica
- svaki redak TLB-a sadrži podatke jedne virtualne stranice
- ubrzava proces straničenja

56
Q

Navedite i ukratko objasnite barem 5 algoritama zamjene stranica.

A

OPTIMALAN ALGORITAM
- kada je zamjena potrebna daleko u budućnosti; treba prikupljati podatke o korištenju stranice pri prethodnim pokretanjima procesa

ZAMJENA STRANICA KOJE NISU NEDAVNO KORIŠTENE
- svaka stranica ima referentni bit koji se postavlja kada je stranica referencirana ili mijenjana; mijenjaju se najniže označene neprazne stranice)

FIFO ALGORITAM
- treba održavati listu stranica prema redoslijedu dospijeća u memoriju; mijenjaju se stranice s početka liste

	ZAMJENA STRANICA IZ DRUGOG POKUŠAJA -	pri dolasku greške stranice, prva učitana stranica se smatra kao najnovija.

LEAST RECENTLY USED
- izbaciti stranice koje nisu dugo korištene, tako što su prve u povezanoj listi nedavno korištene(listu obnavljati pri svakom referenciranju memorije ili imati brojilo u svakom dijelu tablice stranica)

CLOCK PAGE
- ispituje se stranica na kojoj je kazaljka: ako je bit R=0 izbaciti stranicu, ako je R=1 pomaknuti kazaljku na sljedeću stranicu i R postaviti na 0

57
Q

Što je segmentiranje, kako je riješeno, gdje se koristi, te koje su mu prednosti i nedostaci u odnosu na straničenje?

A

Segmentacija je metoda upravljanja memorijom koja logički adresni prostor dijeli na segmente jedinstvenog imena i dužine.
Dozvoljava programima i podacima da se razdvoje na logično nezavisne adresne prostore
Cilj je pojednostaviti rukovanje strukturama podataka koje rastu ili opadaju i lakše povezivanje procedura na odvojenim memorijskim segmentima

58
Q

Opišite i skicirajte rješenje segmentiranja sa straničenjem kod Intel procesora.

A

Virtualna memorija Pentiuma nalikuje MULTICS-u uključujući prisustvo segmentacije i page-inga.
- Intel Pentium ima 16K nezavisne segmente od kojih svaki sadrži do 1 mlrd 32-bitne riječi dok MULTICS ima 256 K nezavisne segmente svaki do 64K 36-bitnih riječi.
- Jezgra Pentium virtualne memorije sastoji se od dvije table (tablice) LDT i GDT.

59
Q

Objasnite razliku između eksterne i interne fragmentacije te navedite razloge do koji dolazi do ovih fenomena.

A

Interna dijeli memoriju na jednake dijelove i svaki proces koji je manji ili veći od particije smješta se u particiju. Nedostatak je velika neiskorištenost. Npr. ako je particija 8MB a proces 2, ostaje 6MB koje niti jedan drugi proces ne mogu iskoristiti.
Eksterna fragmentacija je kada proces koji dolazi u memoriju zauzima točno onoliko mjesta koliko mu je potrebno. S vremenom ponovno dolazi do sve više rupa u memoriji te efikasnost pada.

60
Q

Navedite zahtjeve na U/I sustav u OS-u, te ciljeve U/I sustava.

A

U/I sustav omogućuje uniformna sučelja za upravljanje uređajima, usprkos širokog raspona mogućih perifernih uređaja za računalo
U/I sustav od OS-a zahtjeva mogućnost:
● prosljeđivanja naredbi,
● obradu prekida,
● uniformno sučelje prema korisniku za sve uređaje

61
Q

Objasnite što su blok, a što znakovni U/I uređaji.

A

Blok uređaji: - spremaju informacije u obliku blokova stalne duljine od kojih svaki može imati svoju adresu (512B – 32768B)
- blokovi se mogu nezavisno čitati ili upisivati
- tvrdi disk, disketa

Znakovni uređaji: - isporučuju ili prihvaćaju slijed znakova bez ikakve blokovske strukture
- takav slijed nije adresabilan
- pisač, mrežna kartica, miš

62
Q

U kratkom programskom kodu po izboru pokažite korištenje nekog UI uređaja.

A

int fd = open(“/dev/something”);
for (int i = 0; i < 10; i++) {
fprintf(fd,”Count %d\n”,i);
}
close(fd);

63
Q

Na primjerima ukratko navedite zadaće upravljačkog sklopa.

A

HDD:
- pretvorba serijskog slijeda bitova u blok bajtova,
- omogućavanje ispravljanja pogrešaka,
- spremanje blokova u memoriju(nakon ispitnog zbroja)

Monitor:
- čitanje signala iz memorije,
- moduliranje elektronskog mlaza sinkronizacija

64
Q

Objasnite što su memorijski mapirani U/I uređaji, te načine komuniciranja CPU s uređajima.

A

Uređaji kojima je pridjeljena određena memorija s kojom rade - uređaj i memorija dijele isti adresni prostor, upute CPU-a za pristup memoriji se mogu koristiti i za pristup uređajima
Načini komuniciranja:
Svakom upravljačkom registru pridružen je broj U/I pristupa: adresni prostor memorije i U/I se razlikuje i odvojen je (ovo nije pristup sa memorijskim mapiranjem), sistemski pozivi su IN REG, PORT, OUT PORT, REG
Svi upravljački registri u memoriji: svakom upravljačkom registru je pridružena jedinstvena memorijska adresa, obično na vrhu memorije. Omogućuje adresiranje u C-u.
Mješoviti pristup - koriste ga pentium procesori

65
Q

Objasnite što je DMA, koja mu je zadaća i kako je izveden.

A

DMA (Direct Memory Access) je svojstvo modernih računalnih sustava koje određenim sklopovskim podsustavima omogućava pristup memoriji nezavisno o CPU. CPU bez ovog svojstva zahtjeva od U/I sklopa bajt po bajt. Sa DMA, CPU inicira prijenos i vrši druge operacije dok je prijenos u trajanju te prima prekid od DMA kontrolera kad je operacija završena.
Koriste Disk drive kontroleri, grafičke, mrežne, zvučne kartice.
Izvedba:
1 - CPU programira DMA i kaže upravljačkom sklopu da čita s diska u unutarnji spremnik i provjeri ispitni zbroj
2 - DMA pokreće prijenos izdavanjem zahtjeva sa čitanjem preko sabirnice upravljačkom sklopu
3 - Pisanje u memoriju
4 - Na kraju pisanja, upravljački sklop šalje ACK blok
Koraci 2 - 4 se ponavljaju dok broj bajta ne bude 0 kada DMA prekida CPU

Ima pristup sabirnici neovisno o CPU
Sadrži registre: za adresiranje memorije, brojenje bajta, upravljačke registre(bar 1) koji određuju korišteni pristup, smjer prijenosa i broj jedinica prijenosa
Bez DMA: upravljački sklop čita blok s diska serijski u spremnik, ispituje kontrolni zbroj, upravljački sklop izaziva prekid, a kad se OS pokrene, može čitati bajt po bajt iz spremnika i spremati u memoriju
Prekid izazove U/I uređaj kad završi posao( slanjem signala na sabirničku liniju, a taj signal detektira sklop za upravljanje prekidima i odlučuje što dalje)
Jedan prekid obrađuje se odmah, a više po razini prvenstva

66
Q

Objasnite što su prekidi, kako do njih dolazi i kako se izvode.

A

Kada U/I uređaj završi posao, izazove prekid. To je signal koji se šalje na sabirničku liniju da ga detektira sklop za upravljanje prekidima. Jedan prekid se obrađuje odmah, više prekida se obrađuje po razini prvenstva.
Prekidni vektor je tablica u koju se unose brojevi adresnih linija pojedinih uređaja, ta tablica služi kako bi se pokretale prekidne rutine
Uređaj završava sa radnjom, sklop za upravljanje prekidima pokreće prekidnu rutinu prema CPU te ju onda CPU potvrđuje

  • problem: visoka razina protočnosti i superskalarnosti (instrukcije u raznim stanjima izvođenja) Prekid koji napušta stroj u dobro definiranom stanju nazivamo preciznim prekidom. Njegova svojstva su: - PC spremljen na poznato mjesto - sve instrukcije prije neke na koje pokazuje PC izvedene su do kraja - poslije instrukcije na koju pokazuje PC nema niti jedne koja se izvodi - stanje izvođenja instrukcija na koje pokazuje PC su poznata Prekid koji ne ispunjava ove zahtjeve – neprecizni prekid Obrada preciznih prekida zahtijeva vrlo složenu logiku obrade prekida

Precizni prekidi moraju zadovoljiti ove uvijete:
▪ PC spremljen na poznato mjesto
▪ Sve instrukcije prije neke na koje pokazuje PC izvedene su do kraja
▪ Poslije instrukcije na koju pokazuje PC nema niti jedne koja se izvodi
▪ Stanje izvođenja instrukcija na koje pokazuje PC su poznata
Ostali prekidi su „neprecizni“ prekidi

67
Q

Navedite i ukratko objasnite ciljeve U/I programa.

A

Nezavisnost o uređajima: programi bi trebali moći pristupiti svakom U/I uređaju bez unaprijednog specificiranja uređaja
Uniformnost naziva: ime datoteke ili uređaja je string ili integer neovisno o uređaju
Rukovanje pogreškama: upravljački sklop bi trebao sam ispraviti pogrešku, većina grešaka bi trebala biti privremena
Sinkronost nasuprot asinkronom procesu: većina U/I uređaja je asinkrona
Međuspremanje: buffering, podaci koji ne izlaze iz uređaja često mogu biti spremljeni na krajnje odredište
Djeljivi vs posvećeni uređaji: U/I program ih mora moći razlikovati i prikladno koristiti zbog različite mogućnosti pristupa (diskovi više korisnika odjendom, trake jedan korisnik odjednom)

68
Q

Kako je izveden i na čemu je zasnovan:
a) programirani U/I
b) prekidima pokretan U/I
c) DMA zasnovan U/I

A

programirani U/I:
zasnovan na stalnom pozivanju uređaja na spremnost. Note: Skripta uzima printer kao primjer za objašnjenje.
Korisnički proces sustavskim pozivom otvara pisač, zatim kopira sadržaj spremnika u jezgru i ispituje je li pisač slobodan. Čim je slobodan, kopira znak u spremnik pisača, znak se ispisuje i čeka se idući. Proces se ponavlja za svaki znak. Uređaj se stalno poziva na spremnost.

prekidima pokretan U/I:
zasnovan je blokiranju procesa ispisa prekidom.
Pisač ne pamti znakove, ispisuje sve koje dođu. Ako mu treba 10ms za svaki znak, CPU ne radi ništa 10 ms do sljedećeg znaka, tih 10s se ostvaruje prekidom.

DMA zasnovan U/I:
zasnovan je DMA (Direct Memory Access-om)
DMA uzima jedan po jedan znak pisaču bez CPU-a, smanjuje broj prekida od znaka do znaka na prekid od spremnika do spremnika

69
Q

Skicirajte i ukratko objasnite U/I programske slojeve.

A
  • User-level I/O software
  • Device-independent operating system software
  • Device drivers
  • Interrupt handlers
  • Hardware

Svaki sloj ima dobro definiranu funkciju omogućavanja sučelja prema drugim slojevima

70
Q

Što su rukovatelji prekida i koje korake moraju obaviti po završetku prekida?

A

Rukovatelji prekida (Interrupt Handlers) su prekidne rutine u operacijskom sustavu čije je izvođenje aktivirano pri prekidu. Sadržavaju više različitih funkcija koje se razlikuju po tome kakav je prekid u pitanju.
Prekidna rutina izvršava prekid a zatim odblokira pogonski program koji ju je pokrenuo, putem semafora, signala ili slanjem poruke. Nakon toga, pogonski program se može ponovno pokrenuti.

Obavlja sljedeće korake:
- Sprema registre koji već nisu spremljeni od strane prekidnog sklopovlja
- Postavlja okolinu za posluživanje procedure prekida
- Postavlja stog za posluživanje procedure prekida
- Obaviješta prekidni upravljači sklop i ponovno dozvoljava prekid
- Kopira registre s mjesta gdje su bili spremljeni u tablicu procesa
- Pokreće prodecuru posluživanja
- Postavlja okolinu MMU (Memory Management Unit) za proces koji se slijedeći pokreće
- Pohranjuje nove registre procesa
- Pokreće novi proces

71
Q

Ukratko objasnite što su pogonski programi.

A

Programi smješteni ispod ostalih dijelova OS-a koji nam omogućuju rad sa U/I uređajima. To je potreban kod da bi računalo moglo komunicirati i upravljati sa U/I uređajem.
Modeli različitih perifernih uređaja imaju različite karakteristike, a st time i broj registara, naredbe, kapacitete, funkcije etc. pa je svakom zasebnom modelu potreban poseban pogonski program čije verzije se razlikuju za različite operativne sustave (32 bit, 64 bit, windows 7, 8.1, 10 etc.)
Obično su dio jezgre OS-a iako mogu biti izvedeni sustavskim pozivima u korsiničkom sloju

Svaki pogonski program rukuje jednim uređajem ili razredom uređaja. On je obično dio jezgre OS-a, iako može biti izveden sustavskim pozivima u korisničkom sloju – odvajanje jezgre od loših pogonskih programa. Potreban dobro definiran model: što može i s kim međudjeluje driver

72
Q

Čemu služe U/I programi neovisni o sklopovlju, te koja je prednost uniformnog sučelja pogonskog programa?

A

Služe za omogućavanje U/I funkcije zajedničke za sve uređaje i omogućuju uniformno sučelje prema korisničkim programima.
U/I programi neovisni o sklopovlju- trebaju omogućiti U/I funkcije zajedničke za sve uređaje i omogućiti uniformno sučelje prema korisničkim programima, izvještavati o greškama, omogućiti međuspremanje, dodjeljivanje i otpuštanje uređaja Prednost uniformnog sučelja pogonskog programa-programer zna koje funkcije mora omogućiti i koje kernel funkcije može pozvati, OS se ne treba mijenjati dodavanjem uređaja, omogućuje zaštitu od nedozvoljenih pristupa korisnika

73
Q

Navedite/skicirajte slojeve U/I sustava, navedite njihove glavne funkcije i objasnite UI zahtjev i odziv.

A

User processes : make I/O call, format I/O, spooling

Device - independent software: naming, protection, blocking, buffering, allocation

Device drivers: set up device registers, sheck status

Interrupt handlers: wake up driver when I/O completed

Hardware: perform I/O operation

74
Q

Navedite ulogu i način rada sustava za upravljanje potrošnjom energije (engl. power management) sustava u OS-u.

A

Dijeljenje napona s dva: dijeli napon s 2, dijeli snagu s 4
“Govori programima” kako da troše manje energije
Primjeri
Promjena s izlaza u boji na crno-bijeli
Kod raspoznavanja zvuka reduciraju rječnik
Manja razlučivost ili pojedinosti na slici

75
Q

Ukratko objasnite obilježja programske podrške za grafičko korisničko sučelje, te na kojim se programskim elementima temelji rad s dodirnim zaslonom.

A

Grafičko korisničko sučelje:
tzv. device context
Rukovatelj sadržajem uređaja, hdc.
Koristi kontekst uređaja za pisanje linije teksta na zaslonu specificirajući (x, y) koordinate početka i duljine ispisa stringa
Treći poziv otpušta kontekst uređaja i pokazuje da program trenutno radi ispis

76
Q

Objasnite pojam toka (streama) u UNIX-u/Linux-u.

A

Omogućuju aplikaciji primijeniti cjevovode koda pogonskog programa dinamički.
Dvosmjerna konekcija između korisničkog procesa i perifernog uređaja

77
Q

Navedite metakaraktere za preusmjeravanje standardnog toka podataka u Linuxu te objasnite njihovu upotrebu s opisom i primjerom.

A

Input - stdin - keyboard - Command > file
output - stdout - monitor - Command > file or command&raquo_space; file
Error - stderr - monitor - Command 2> file

  • oznaka > znači otvaranje postojeće datoteke i brisanje postojećeg sadržaja odnosno kreiranje nove datoteke ako datoteka u koju se preusmjeravaju podaci ne postoji - oznaka&raquo_space; znači ‘append’ datoteke, ako datoteka postoji postojeći sadržaj se zadržava a novi se dodaje na kraj datoteke
78
Q

Navedite zahtjeve na dugotrajno spremanje podataka, osnovnu zadaću datotečnog sustava, te ukratko opišite osnovna obilježja, način imenovanja i tipove datoteka.

A

Mora biti moguće spremiti velike količine informacija
Informacije moraju preživjeti završetak procesa koji ih je koristio
Više procesa istovremeno mora imati mogućnost pristupanju informacijama

Datotečni sustav brine o strukturiranju, imenovanju, pristupu, uporabi, zaštiti i implementiranju datoteka.
Datoteke su apstrakcijski mehanizmi: cjeline u računalnoj memoriji koje sadržavaju podatke, informacije, postavke ili naredbe koje koristi računalni program.
Imenuju se u formatu ime.proširenje (proširenje označava tip datoteke)
Tip datoteke daje operacijskom sustavu informaciju kako tumačiti podatke koji se u datoteci nalaze - docx će otvarati u wordu, wav u media playeru etc.

79
Q

Navedite i ukratko objasnite tri vrste datoteka prema strukturi.

A

○ Slijed bajta (bilo što unutra, fleksibilno, OS ne ograničava, ali menože ni pomoći kod nedozvoljenih radnji) – a
○ Slijed slogova (jednake duljine, svaki sa svojom unutarnjom strukturom, čitanje i pisanje na razini sloga) – b
○ Stablo (datoteka je stablo slogova, moguće nejednakih duljina sa ključem na fiksnom mjestu u slogu, brzo pretraživanje po ključu, stvaran položaj datoteke nebitan, OS određuje smještaj, a ne korisnik) – c

Multimedijske datoteke (mov, mp3, avi, mp4, wav, mpeg) - datoteka koja sadržava audio, vizualni ili audiovizualni zapis određene kvalitete
Text (txt) - sirove tekstualne datoteke, bez posebnog formatiranja
Izvorni kod (c, cpp, js, asm) - izvorni kod raznih programskih jezika koje tumači compiler

80
Q

Ukratko objasnite slijedni i slučajni pristup datotekama, te ih prikažite korištenjem odgovarajućih naredbi.

A

Slijedni pristup:
⦁ Čita sve bajtove/slogove otpočetka
⦁ Ne može preskočiti, može se premotavati
⦁ U redu ako se radi o magnetskim trakama

readtext
writetext
reset
no readafterlastwrite
(rewrite)

Slučajni pristup:
⦁ Bajtovi/slogovi se čitaju bilo kojim redom
⦁ Značajno i za baze podataka
⦁ Čitanje može biti: svaka read opcija daje položaj u datoteci gdje treba čitati; posebna operacija seek daje trenutni položaj, a zatim se datoteka može slijedno čitati s tog novog poližaja

read n
write n
position to n
readnext
writenext
rewrite n

81
Q

Navedite i ukratko objasnite barem pet obilježja datoteka.

A
  • Owner: opisuje tko je vlasnik datoteke
  • Password: potreban password da bi se moglo pristupiti datoteci
  • Vrijeme nastanka: datum i vrijeme kad je datoteka nastala
  • Vrijeme zadnje promjene: datum i vrijeme kada se datoteka zadnji puta promijenila
  • Trenutna veličina: broj bajtova datoteke
82
Q

Navedite barem pet operacija s datotekama.

A
  • Create
  • Delete
  • Open
  • Close
  • Read
  • Write
83
Q

Navedite korištenje sustavskih poziva za rad s datotekama

A
  • sustavski pozivi:
    -map (daje ime datoteke i virtualnu adresu, koji uzrokuju da OS mapira datoteku u adresni prostor na virtualnu adresu)
    -unmap ( obrnuti proces od sustavskog poziva map),
  • mapiranje datoteka najbolje u sustavima koji podržavaju segmentiranje: svaka datoteka može biti mapirana u vlastiti segment tako da je bajt k u datoteci također bajt k u segment
84
Q

Objasnite što su direktoriji, te navedite osnovne sustave direktorija.

A

Direktoriji su zapravo datoteke koje opisuju lokacije u koje spremamo datoteke. Ostvaruju svojstvo hijerarhije u datotečnom sustavu i omogućuju organizaciju podataka.

Osnovni sustavi sa direktorijima:
- Jednorazinski: najjednostavniji, root folder sadržava sve datoteke, svi korisnici imaju pristup root-u. Problematično je što više korisnika mogu koristiti ista imena datoteka.

  • Dvorazinski: svaki korisnik ima vlastiti direktorij, često se implementira uz mogućnost prijavljivanja korisnika i mogućnosti pristupa direktorija drugih korisnika
  • Hijerarhijski sustav: uz to što svaki korisnik ima svoj direktorij sam sebi stvara potreban broj direktorija u svojim korisničkim direktorijima
85
Q

Navedite barem pet operacija nad direktorijima.

A
  • Create
  • Delete
  • Opendir
  • Closedir
  • Readdir
86
Q

Navedite i na primjerima objasnite tipove putanja.

A
  • Apsolutna putanja: putanja datoteke od korijenskog (root) direktorija do datoteke, npr: /usr/ast/mailbox
  • Relativna putanja: putanja datoteke od trenutnog (radnog) direktorija, npr. ako je radni direktorij /usr/ast, putanja do datoteke mailbox bi bila samo mailbox
87
Q

Skicirajte i ukratko objasnite ovisnost brzine prijenosa i korisnosti o veličini bloka podataka, te navedite tipičnu duljinu blokova podataka u današnjim OS-ima.

A

Povećanjem bloka podataka povećava se i brzina prijenosa podataka. Iskorištenje diskovnog prostora je maksimalno ako su blokovi podataka malih veličina, ali naglo opada kada blokovi podataka dosegnu određenu veličinu te daljnjim povećanjem bloka podataka iskorištenost diskovnog prostora nastavlja opadati.

88
Q

Ukratko objasnite NTFS datotečni sustav, skicirajte NTFS raspored, te ukratko usporedite NTFS s FAT32 datotečnim sustavom.

A

NTFS (New Technology File System) je datotečni sustav koji je razvio Microsoft
MFT (Master Fire Table) raste, nikad se ne smanjuje. Sadržava informacije o svim datotekama i direktorijima
Prvih 16 MFT unosa rezervirano je za datoteke koje opisuju sustav
Svaka datoteka počinje sa ‘$’
Poboljšava sigurnost, omogućava šifriranje datoteka i mapa te ograničava pristup datotekama

Usporedba s FAT32:
NTFS ima max veličinu datoteke 16 TB (FAT32 je 4GB) i znatno duže ime datoteke (8.3 char vs 255 char)
S povećanjem količine datoteka ne opadaju performanse
NTFS omogućava enkripciju i kompresiju datoteka

89
Q

Objasnite organizaciju prostora na disku Linux sustava u particije te princip mountiranja.

A

Particija je logička cjelina na nekom tvrdom disku, koja se zasebno ponaša kao disk. Koristeći particije, na jednom fizičkom tvrdom disku možemo stvoriti privid više pojedinih diskova te tako imati instalirano više operativnih sustava.
U Linuxu nalazimo barem dvije particije, jednu za operacijski sustav i drugu swap particiju (privremena radna memorija kada računalu ponestane RAM-a).
Mountiranje je spajanje bilo koje disk particije u Linuxovo stablo direktorija u za to predviđen direktorij, te će se nakon toga podatci iz te particije reprezentirati kao sadržaj tog direktorija koji predstavlja točku montiranja particije.

90
Q

● Što uključuje sigurnosna okolina, koje su najčešće prijetnje računalnom sustavu i što je Reference Monitor?

A

Sigurnosna okolina uključuje:
- Sigurnost (općeniti problem sigurnosti)
- Zaštitne mehanizme operacijskog sustava

Najčešće prijetnje računalnom sustavu su izlaganje podataka, neovlašteno izmjenjivanje, premještanje i dodavanje podataka te činjenje sustava neupotrebljivim

Reference monitor je komponenta jezgre operacijskog sustava koja kontrolira pristup softvera podacima ili uređajima. Implementira sigurnost pri pokretanju poslova.

91
Q

Ukratko objasnite/po potrebi skicirajte postupke nadzora pristupa resursima: POLA (Principle of Least Authority), matrica zaštite i ACL (Access Control List), višerazinska sigurnost

A

POLA ovlasti procesa na resursima stavlja u tri domene sigurnosti, pokretanjem procesa mu se pridružuju svi resursi i ovlasti

Matrica zaštite je dvodimenzionalna matrica: popis objekata njihovih dozvola pristupa u svakoj domeni

ACL je lista dozvola pridružena objektu, specificira koji korisnici ili procesi imaju dozvoljene pristupe objektu

https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT

92
Q

Objasnite ulogu šifriranja (kriptografije) i skicirajte postupak šifriranja.

A

Kriptografija poruku ili datoteku kodira u niz znakova tako da je dekodirati mogu samo ovlašteni korisnici. Algoritmi za postizanje kriptografije su javni ali ključevi za pojedine veze su tajni.

93
Q

Objasnite i na primjeru pokažite šifriranje tajnim ključem, te ga usporedite sa šifriranjem javnim ključem.

A

Kod kriptiranja tajnim ključem koristi se jedan ključ i za enkripciju i za dekripciju (zbog toga se postupak još naziva kriptiranje simetričnim ključem). Pošiljatelj informacije koristi taj ključ kako bi izvršio enkripciju nad tom informacijom te šalje kriptirani tekst primatelju informacije. Primatelj koristi isti taj ključ kako bi dekriptirao poruku i otkrio informaciju.
Primjer kriptiranja tajnim ključem je monoalfabetna zamjena (svako slovo zamjenjujemo drugim, različitim slovom->npr. svako A zamijenimo s Q, svako B s W):

tekst: ABCDEFGHIJKLMNOPQRSTUVWXYZ  niz znakova: QWERTYUIOPASDFGHJKLZXCVBNM  ključ kod: QWERTYUIOPASDFGHJKLZXCVBNM  ključ dekod: KXVMCNOPHQRSZYIJADLEGWBUFT  Npr. ATTACK -> QZZQEA

Kod kriptiranja javnim ključem se koriste dva ključa, javni ključ koji je ključ kriptiranja 	te privatni ključ koji je ključ dekriptiranja. Javni ključ je poznat svima, a privatni ključ 	je praktički nemoguće otkriti jer koriste vrlo složene operacije. Nedostatak javnog 	ključa je sporost
94
Q

Što je digitalni potpis i kako se izvodi? Skicirajte i objasnite postupak stvaranja digitalnog potpisa.

A

Digitalni potpis je matematička shema za dokaz autentičnosti digitalne poruke, daje primatelju poruke dokaz da je poruka bez izmjene poslana od poznatog izvora.
Dokument se propušta kroz jednosmjerni hashing algoritam
Korištenjem kriptiranja javnim ključem se primjenjuje na dobiveni hash i dodaje dokumentu
Prijemnik najprije računa hash pa zatim koristi javni ključ kako bi provjerio hash koji je dobio - oni se moraju podudarati.
Uz poruku, certifikat sadrži ime, javni ključ i digitalni potpis

95
Q

Ukratko opišite rješenje sigurnosti zaporki u UNIXu/Linuxu.

A

Program za prijavu pita korisnika ime i zaporku koji se kriptiraju
Čita datoteku sa zapokama /etc/passwd
Sadržava li linija zaporku, postupak prijave je u redu i korisnik može pristupiti sustavu

96
Q

Objasnite što su jednokratne zaporke i kada se koriste, te kako se izvodi prijava izazivanjem odgovora?

A

Jednokratne zaporke su zaporke koje su valjane samo za jedan login session ili transakciju. Algoritmi za generiranje se najčešće baziraju na nasumičnosti.
Korisnici su njima zaštićeni od potencijalnih napada jer je pojedina generirana lozinka valjana samo jednom.
Mana jednokratnih zaporki je ta što zahtjevaju dodatnu tehnologiju koja će dostavljati jednokratne zaporke - tokeni, mobitel, SMS, pošta
Jednokratne zaporke se koriste kada je potrebna stroža zaštita od potencijalnih napada
Prijava izazivanjem odgovora se izvodi tako da svaki novi korisnik ima listu pitanja i odgovora spremljenu sigurno na poslužitelju, pitanja na koja samo korisnik zna odgovor. Kod prijave se slučajno pojavljuje pitanje na koje treba odgovoriti

97
Q

Objasnite kako je riješena prijava korisnika korištenjem fizičkih objekata, te navedite svojstva i mogućnosti primjene RFID sustava?

A

Prijava korištenjem fizičkih objekata je riješena putem sučelja koji računalo povezuju sa tim fizičkim objektom (čitač magnetskih kartica, RFID čitač…)
Poslužitelj šalje kartici 512-bitnu zaporku koja tome dodaje 512-bitnu zaporku s kartice, njihov zbroj se šalje natrag poslužitelju koji ga provjerava.
Postoje magnetske kartice, chip kartice, pametne kartice…
RFID sustav se sastoji od antene, čitača i transpondera, koji izmjenjuje frekvenciju antene te na čitaču daje određenu informaciju
RFID se primjenjuje pri otvaranju štićenih prostora, bezgotovinskim plaćanjem, prijavi u tramvaju ili autobusu…

98
Q

Kako se izvodi prijava korisnika upotrebom biometrijskih obilježja?

A

Za prijavu korisnika koriste se fizička obilježja osobe koja su jedinstvena za svaku osobu i teška ili nemoguća za krivotvorenje: otisak prsta, šarenica, glas, potpis..
Podatak se prvo mjeri i digitalizira (i enkriptira, u slučaju iPhone X, recimo), i onda se koristi za identifikaciju pri prijavi korisnika

99
Q

Navedite osnovna načela i mogućnosti primjene steganografskih postupaka i Captcha.

A

Steganografija je znanstvena disciplina koja se bavi skrivanjem informacija.
Omogućuje nam da, primjerice, u slikovnu datoteku sakrijemo drugu sliku, bez da se se ona očigledno vidi već bi do nje morali uz ključ i primjenu određenog algoritma koji bi ju “izvukao” van.
Captcha je automatizirani Turingov test za razlikovanje računala od ljudi. Sprječava pristup zlonamjernim programima tako da traži od korisnika odgovor koji ne bi mogao dati stroj (očitanje teksta, broja, prepoznavanje predmeta na slici)

100
Q

Ukratko objasnite napade formatiranjem stringa i napade umetanjem naredbi.

A

Napad formatiranjem stringa je napad na memoriju. Pojavljuje se kada unos u obliku stringa može koristiti grešku u funkcijama kao printf, fprintf kako bi mijenjala memoriju
Napad ubacivanjem naredbi podrazumjeva izvođenje skrivenih naredbi kada one nisu svjesno pozvane od strane korisnika. Ako haker ima pristup shellu može sam sebi poslati passwd datoteku, primjerice

101
Q

Navedite što sve spada u napade na sustav iznutra, te ukratko objasnite: logičke bombe, back doors, zloćudne kodove (trojanci, virusi,).

A

Napadi na sustav izvana su napadi nakon ulaska u sustav. Načini napada: trojanski konj, logičke bombe, zamke.
Napadi na sustav iznutra su napadi kad nije potreban ulaz u sustav jer je računalo na „vjetrometini“ mreže. Načini napada: virusi, Internet crvi, mobilni kodovi.

Napadi izvana:
● Nakon ulaska u sustav
● Način napada
○ Trojanski konji, praćenje logiranja, logičke bombe, zamke, prepunjavanje spremnika

Napadi iznutra:
● Nije potreban ulaz u sustav jer je računalo na „vjetrometini“ mreže
● Načini napada:
○ Virusi
○ Internet crvi
○ Mobilni kodovi
○ JVM napadi

102
Q

Objasnite osnovne stavke sigurnosti operacijskog sustava.

A

Osnovne stavke sigurnosti:
* Sigurnost fizičkog pristupa – zaštita od atmosferskih utjecaja i neovlaštenog pristupa hardveru
* Sigurnost login/zaporka – zaštita od neovlaštenog pristupa operacijskom sustavu
* Sigurnost datotečnog sustava – sigurni i kontrolirani pristup datotečnom sustavu
* Zaštita od virusa
* Zaštita udaljenog pristupa – kontrolira se mogućnost pristupa servisima za udaljeni pristup
* Internet vatrozidi
* Sigurnosna pohrana podataka – procedure za kreiranje i povrata podataka, načini fizičkog čuvanja medija za pohranu
* Kreiranje procedura za oporavak od katastrofa
* Praćenje – periodičko praćenje izvršenja sigurnosnih planova

103
Q

Opišite tri glavna oblika backupa.

A
  • Puni backup – važni podaci se pohranjuju svaki dan neovisno jesu li se mijenjali od prošlog backupa ili ne. Traje dugo i zahtijeva najviše prostora na trakama. Omogućuje jednostavan pronalazak podataka nakon povratka iz backupa.
  • Inkrementalni backup – radi se u manjim koracima tijekom određenog vremenskog razdoblja (najčešće tjedna) pri čemu se pohranjuju podaci koji su se promijenili od zadnje pohrane. Trajanje pohrane je značajno manje u odnosu na puni backup, ali je proces povratka podataka duži i kompliciraniji. Ako se bilo koja traka iz sustava pokvari, cijeli backup je kompromitiran. Zahtijeva izradu punog backupa na početku vremenoskog razdoblja za koji se radi.
  • Diferencijalni backup – kompromis između punog i inkrementalnog backupa. Pohranjuju se samo podaci koji su promijenjeni od puno backupa koji se radi na početku vremenskog razdoblja. Za povrat podataka su potrebne dvije trake, početni puni backup i posljednja diferencijalna traka
104
Q

Objasnite sigurnost datotečnog sustava, prava pristupa datotekama i direktorijima i kategorije prava.

A

Sigurnost datotečnog sustava temelji se na pravima koja određuju koji korisnici mogu pristupiti pojedinim datotekama i direktorijima datotečnog sustava i što s njim mogu raditi.

’-‘ za datoteke, ‘d’ za direktorije

Prava pristupa datotekama i direktorijima:
‘r’ – čitanje
‘w’ – pisanje
‘x’ – izvršavanje/pokretanje

Kategorije prava:
Vlasnik (Owner) – korisnik koji je kreirao ili ima datoteku u vlasništvu
Grupa (Group) – grupa koja ima prava nad datotekom
Ostali (Others) – svi ostali koji nisu vlasnik datoteke i ne pripadaju grupi koja ima prava nad datotekom, ali imaju prava pristupa sustavu

105
Q

Na primjeru usporedite simbolički i oktalni mod za mijenjanje pristupnih prava datotekama i direktorijima.

A

Simbolički mod mijenja prava pristupa relativno u odnosu na trenutna prava:
* chmod mod naziv_datoteke:
o mod se sastoji od tri dijela: kategorija korisnika na koju se odnosi naredba: ‘u’ – user, ‘g’ – group, ‘o’ – other, ‘a’ – all operator koji se koristi: =, +, - pravo koje se postavlja (=), dodaje (+) ili oduzima (-): r, w, x

Oktalni mod numerički mijenja prava na datoteci za sve kategorije istovremeno:
* chmod octal_mod naziv_datoteke ili chmod –R octal_mod naziv_direktorija: o 4 – Read o 2 – Write o 1 – Execute

106
Q

Što je to UMASK i koja su predefinirana prava pristupa datotekama i direktorijima u Linux OS-u?

A

UMASK je korisnička maska za kreiranje datoteke. Koristi se za postavljanje predefiniranih ovlasti prilikom kreiranja datoteka i direktorija. umask – prikazuje trenutnu vrijednost maske, umask umask_vrijednost – postavljanje vrijednosti maske. Predefinirana prava pristupa za direktorije su 777, tj. drwxrwxrwx, a za datoteke 666, tj. –rw-rw-rw-.

107
Q

Opišite/skicirajte osnovnu građu UNIXa i njegove slojeve.

A
  • User level
    • shell, editors, compilers
    • standard library (open, close, read…)
  • System/kernel level
    • process menagement, memory
      menagement, file system, I/O…
  • Hardware
    • CPU, memory, terminals…
108
Q

Navedite UNIX/Linux naredbe (na primjerima) za rad s datotekama i direktorijima, rad s poslovima, ispis, upravljanje korisnicima, rad i preusmjeravanje ulaza/izlaza, filtriranje, administriranje sustava.

A

Naredbe za rad s datotekama i direktorijima:
cp a b – kopira datoteku a u b čuvajući original
mv a b – kopira a u b, ali uklanja original
cat – čita datoteku i prikazuje ju na standardni izlaz
rm – uklanja datoteku
chmod – omogućava promjene bitova za prava pristupa (npr. datotekama)
mkdir – stvaranje direktorija
rmdir – uklanjanje direktorija
ls – prikaz datoteka i direktorija

Naredbe za rad i preusmjeravanje ulaza/izlaza:
sort <in>out – ne smije se istovremeno preusmjeravati i ulaz i izlaz
sort >in>temp – sortira ulaz i smješta ga u temp
head -30<temp – ispisuje prvih 30 linija
rm temp – briše temp</in>

Naredbe za filtriranje:
grep – izdvaja linije koje sadrže određene uzorke i to sa standardnoga ulaza ili iz datoteka
sort – sortira ulaz i ispisuje ga na izlaz
head – izdvaja početne linije ulaza
tail – izdvaja završne linije ulaza
cut, paste – izrezivanje i ubacivanje teksta
od – pretvara (često binarni) ulaz u ASCII tekst
tr – promjena znakova (npr. mala u velika slova)
pr – formatira izlaz na pisač (zaglavlja, broj stranica, itd.)

109
Q

Skicirajte i objasnite arhitekturu sustava Linux.

A

Kernel, ljuska, datotečni sustav, naredbe

110
Q

Objasnite što je u Linux-u bootloader, čemu služi, koje kategorije bootloadera postoje, te navedite barem tri Linux bootloadera.

A

Vrlo bitan, iako se koriste samo za pokretanje sustava
Konfiguriranje za PC ili postavljanje bootloadera za ugradbeni sustav predstavlja poseban izazov (za CPU ili SoC i vanjske jedinice)
Dvije kategorije:
loaders: samo jednostavna funkcionalnost inicijaliziranja sklopovlja i učitavanja OS-a
monitors: uz navedeno, uključuju i komandnu liniju kroz koju korisnik komunicira s bootloaderom s ciljem konfiguriranja, reprogramiranja, inicijaliziranja sklopovlja, te ostale zadaće (potpora razvoju i puštanju u rad, pa korisnik nema pristup monitoru)

Uloga bootloadera:
inicijalizira samo sklopovlje nužno za podizanje sustava, dok ostalo inicijalizira ili reinicijalizira OS
podizanje se vrši s adrese bootroma (EEPROM, flash)
u prvoj fazi, to je izravni rad s memorijom, a onda se uključuje MMU Linux bootloaderi
razlikuju se po funkcionalnosti, pa neki podižu samo Linux, a neki i druge OSe i to s drugih medija ili mreže preko BOOTP ili TFTP
neki u tablici uključuju neke mogućnosti, a neki odgovaraju PC okolini ili nekoj drugoj
LILO, GRUB i GRUB2 3 BOOTLOADERA

111
Q

Ukratko objasnite ulogu Linux jezgre, skicirajte podsustave Linux jezgre, te ih ukratko opišite.

A

Omogućuje:
upravljanje resursima računala,
dozvoljava ostalim programima izvođenje i pristup resursima.

Osnovni resursi su, a jezgra omogućuje sljedeće:
CPU: raspoređuje procese i postavlja izvedbenu okolinu
Memorija: dodjeljuje memoriju programima, štiti je i odlučuje što napraviti kad program traži više memorije nego što ima raspoloživo
I/O uređaji: poslužuje zahtjeve programa s ciljem razmjene podataka preko uniformnog sučelja prema sklopovlju

Glavni podsustavi Linux jezgre
Kod ovisan o arhitekturi
većina koda ne ovisi o arhitekturi, a onaj koji ovisi je u poddrirektoriju Linux/arch koji sadrži poddirektorij kernel u kojem je kod zavisan o arhitekturi, a pokretanje CPU omogućuje datoteka head.S

Pogonski programi
rukovanje programskim (svi HW) i sklopovskim (npr. watchdog timer) uređajima i to iz direktorija linux/drivers s poddirektorijima za uređaje Bluetooth, FireWire, I2C SCSI itd.

Upravljanje memorijom
dodjeljivanje virtualne/fizičke memorije za pokrenute procese obično u stranicama od 4kB, ali preko tzv. slab allocatora i više da ne bude fragmentiranja
swapping u slučaju potrebe za većim memorijskim prostorom od raspoloživog
ovaj kod nalazi se u linux/mm

Virtualni datotečni sustav
Core Linux datotečni sustavi: ext2, ext3, ext4; VFAT, NTFS, ZFS, Btrfs
Linux kernel omogućuje apstr. sučelje za operacije s datotekama preko VFS i to između implementacije datotečnog sustava i sučelja sustavskih poziva
izvorni kod je u direktoriju linux/fs

112
Q

Što je LIBC API? Navedite barem tri primjera LIBC API-ja.

A

LIBC je specificiran ANSI C standardom koji je dio POSIX biblioteke (trenutno POSIX.1-2008 ili IEEE Std 1003.2008)

113
Q

Navedite tri značajnije distribucije Linuxa i ukratko ih opišite.

A
  • Red Hat Linux – izvorna Linux distribucija slobodna
  • Red Hat Enterprise Linux – komercijalna „neslobodna“ inačica za velike tvrtke koje imaju Linux poslužitelje i stolna računala
  • Debian GNU/Linux – slobodna distribucija; popularno na poslužiteljima; nepogodna za početnike
114
Q

Objasnite prednosti korištenja CLI (Command Line Interface) načina rada.

A

CLI nudi veću fleksibilnost u radu, tj. često pruža više mogućnosti nego grafičko sučelje (GUI). Također, više naredbi se može kombinirati pomoću cjevovoda što je prilično teško u GUI programima. CLI se koristi i kada GUI programi zakažu.

115
Q

Ukratko objasnite način izvođenja Windows aplikacije.

A

Windows aplikacije pokreću se u korisničkom načinu rada, tj. imaju niži prioritet od procesa pokrenutih u jezgrinom načinu rada. Povezuju se za API funkcije koje oblikuje okruženje operacijskog sustava. Većina aplikacija kreira barem jedan prozor prilikom izvođenja. Također, kreiraju grafički izlaz za prikaz podataka (monitor, printer, itd.). Aplikacije koriste funkcije za rad sa sustavskim uslugama kako bi upravljali resursima računala potrebnim aplikaciji za rad te mogu raditi i sa audio i video datotekama.

116
Q

Objasnite ulogu i osnove načina rada mehanizma Registry u Windows OS-u.

A

Windows pohranjuje sve konfiguracijske podatke unutar registry baze. Ne postoji ništa što se događa unutar OS-a, a da ne kontaktira registry bazu. Registry omogućuje zbivanje složenih odnosa između različitih Windows komponenti, aplikacija i korisničkog sučelja. Daje Windowsima pojavnost i način ponašanja, kontrolira aplikacije, a IT profesionalcima omogućuje uređivanja koja nisu dostupna u GUI razini.
Hijerarhijska struktura Windows registry baze započinje korijenskim ključevima (rootkey). Svaki ključ predstavlja kontejner koji sprema konfiguracijske postavke određenog aspekta sustava. Postoji pet korijenskih ključeva opisanih imenom i standardnom kraticom:
HKEY_CLASSES_ROOT (HKCR) - postavke za aplikacije i datoteke; također baza datotečnih asocijacija
HKEY_CURRENT_USER (HKCU) - postavke za trenutno logiranog korisnika
HKEY_LOCAL_MACHINE (HKLM) - postavke za razinu sustava
HKEY_USERS (HKU) - postavke za default korisnika i korisnika prema profilu
HKEY_CURRENT_CONFIG (HKCC) - postavke trenutnog hardware profila

117
Q

Nabrojite razine prvenstva (engl. priorities) Win32 procesa i niti.

A
  • TIme critical
  • Highest
  • Above normal
  • Normal
  • Below normal
  • Lowest
  • Idle
118
Q

Navedite i ukratko objasnite barem po dvije Win32 API funkcije za rukovanje procesima i nitima, rukovanje memorijom, rad U/I sustava, rad datotečnog sustava, te sigurnosne funkcije.

A

Funkcije za rukovanje procesima i nitima:
CreateProcess – kreira novi proces
ExitProcess – prekida trenutni proces i sve njegove niti
Funkcije za rukovanje memorijom:
VirtualAlloc – zauzimanje memorije
VirtualFree – oslobađanje memorije
Funkcije za rad U/I sustava:
CreateFile – kreira novi dokument ili otvara postojeći
DeleteFile – uklanja postojeći dokument
Funkcije za rad datotečnog sustava:
CreateDirectory – kreira novi direktorij
RemoveDirectory – uklanja prazni direktorij
Sigurnosne funkcije:
DeleteAce – uklanja ACE iz DACL ili SACL
InitializeAcl – inizijalizira DACL ili SACL

119
Q

Skicirajte građu operacijskog sustava Windows ili njegove programske slojeve.

A

USER MODE
- applets, GUI, dynamic libraries, subsystem API

KERNEL MODE
- NTOS kernel layer
- drivers: devices, file systems, network
- NTOS executive layer
- GUI driver
- hardware abstraction layer

120
Q

Navedite stanja u kojima mogu biti dretve u Windows OS-u.

A

Initialized, ready, standby, running, waiting, transition, terminated, unknown

121
Q

Objasnite proširivost, prenosivost, podudarnost, performanse i podršku za Windows OS.

A

Proširivost:
- Slojevita građa
- Jezgrina razina pokreće se u zaštićenom načinu rada i omogućuje pristup CPU uz potporu nitima, prekidima i zamkama
Izvršni sloj pokreće se u zaštićenom načinu rada iznad sloja jezgre i omogućuje osnovne usluge sustava
- Na vrhu izvršnog sloja, podsustavi okoline rade u korisničkom načinu rada,omogućuju različite API-je
- Modularna struktura omoguć. dodavanje dodatnih podsustava okoline bez djelovanja na izvršni sloj

Prenosivost:
- Može se premjestiti s jedne platforme na drugu s razmjerno malo promjena
- Pisan u C i C++

Podudarnost:
- Aplikacije koje slijede IEEE 1003.1 (POSIX) standard mogu se prevesti za pokretanje na Windowsima bez promjene izvornog koda

Performanse:
- Windows podsustav može komunicirati s drugima preko izmjene poruka
- Prekidivost niti visoke razine prvenstva omogućuju sustavu brzo reagiranje na vanjske događaje
- Dizajniran za simetrični višeprocesorski način rada i to na do 100 jezgri

Podrška za Windows OS:
- Podržava različite lokalne i nacionalne, jezične zahtjeve (NLS API), koristi UNICODE, te omogućuje različitost formata prikaza datuma, valute i drugo

122
Q

Navedite četiri glavne zadaće jezgre Windowsa.

A

Raspoređivanje niti, rukovanje prekidima i iznimkama, sinkronizacija procesa na niskoj razini, oporavak nakon pada napajanja. Objekti dispečera nadziru dispečerski rad i sinkroizaciju (događaji, mutanti, muteksi, semafor, niti i vremenski sklopovi (timers) Upravljački objekti (asinkroni pozivi procedura, prekida, obavijesti o napajanju, procesni i profilski objekti)

123
Q

Objasnite ulogu izvršnog sloja, te dva skupa objekata koje koristi izvršni sloj Windowsa.

A

Uloga izvršnog sloja je rukovanje U/I, objektima, sigurnosti i procesima. Izvršni sloj koristi dva skupa objekata: objekti dispečera upravljački objekti

Izvršni sloj obavlja rukovanje objektima, rukovanje prividnom memorijom, imenuje objekte, upravlja procesima, upravlja U/I jedinicama, brine o sigurnosti i potrošnji te omogućava plug and play. Dva skupa objekata: * Objekti dispečera – nadziru dispečerski rad i sinkronizaciju (događaji, mutanti, muteksi, semafori, niti i vremenski sklopovi) * Upravljački objekti – asinkroni pozivi procedura, prekida, obavijesti o napajanju, procesni i profilski objekti

124
Q

Navedite koje sve uloge obavlja izvršni sloj Windows OS-a.

A

Rukovanje objektima
Imenovanje objekata
Rukovanje prividnom memorijom
Upravljanje procesima
Poziv lokalne procedure
Upravljanje U/I jedinicama
Sigurnost
Upravljanje potrošnjom energije

Dva skupa objekata:
Objekti dispečera – nadziru dispečerski rad i sinkronizaciju (događaji, mutanti, muteksi, semafori, niti i vremenski sklopovi)
Upravljački objekti – asinkroni pozivi procedura, prekida, obavijesti o napajanju, procesni i profilski objekti

125
Q

Ukratko objasnite najznačajnije načine rada sustava upravljanja potrošnjom u Windowsima.

A

Sustav upravlja potrošnjom energije od strane CPU i svih ostalih uređaja.
Pogonski programi pomažu i omogućuju isključivanje uređaja koji se i kad se ne koriste.
Procesori se pokreću na nižoj frekvenciji i/ili na nižoj razini potrošnje energije.
Sustav može ići u tzv. standby način rada kada je samo memorija uključena, ili u stanju.
Hibernated kada se sadržaj memorije zapisuje na disk i gasi cijeli sustav.

126
Q

Ukratko objasnite raspoređivanje niti u Windowsima.

A

Raspoređivanje u Windowsima ima četiri razreda prvenstva:
IDLE_PRIORITY_CLASS (razina 4)
NORMAL_PRIORITY_CLASS (razina 8)
HIGH_PRIORITY_CLASS (razina 3)
REALTIME_PRIORITY_CLASS (razina 24)

Procesi imaju početnu razinu prvenstva za svoje niti, a svaka nit ima svoje specifične prioritete koji se koriste u raspoređivanju.
Jezgra dinamički podešava razinu prvenstva niti ovisno U/I i CPU opterećenjima.

127
Q

Što je to Administrative tools i navedite i opišite nekoliko predodređenih alata od kojih se sastoji.

A

Administrative tools je set alata za administriranje i nadziranje sustava. Služi za napredno podešavanje rada operacijskog sustava. Sastoji se od nekoliko predodređenih alata koji dolaze instalirani s operacijskim sustavom, a neki od njih su:
Component Services – konfigurira i podešava COM+ aplikacije
Computer Management – konfigurira hard diskove i omogućava pristup ostalim alatima za kontroliranje lokalnog i udaljenih računala
Data sources – dodaje, uklanja i konfigurira ODBC veze i pogone
Event Viewer – prikazuje izvještaje i poruke samog Windows XP, ali i ostalih programa instaliranih na njemu

128
Q

Skicirajte i ukratko opišite slojeve građe Androida i njihove komponente, te navedite barem dvije njegove aktualne inačice.

A

APPLICATIONS
- Built in, Third-party

APPLICATION FRAMEWORKS
- telephone mgr, Location Mgr, Notification Mgr…

LIBRARIES
- Graphics, media, database…
ANDROID RUNTIME
-Dalvik Virtual Machine

LINUX KERNEL
- Power, file system, drivers, processes, menagement…

Inačice:
* Android 4.4 (KitKat) -> najzastupljenija na tržištu
* Android 5.0, 5.1 (Lollipop)

129
Q

Opišite okolinu i osnove rada Androida, te navedite barem tri biblioteke Androida.

A

Linux je osnova za rad s procesima, memorijom, pogonskim programima i upravljanjem potrošnjom energije. Izvorno se svaka aplikacija pokreće kao nezavisan Linux proces. Proces započinje kada se kod treba izvršiti. Niti se pokreću za izvođenje vremenski zahtjevnih operacija. Svaki proces ima vlastiti Dalvik VM, a svakoj aplikaciji dodjeljuje se jedinstveni Linux ID.

130
Q

Ukratko objasnite postupak razvoja Android aplikacije, uobičajenu razvojnu okolinu i korištene programske jezike.

A

Razvoj Android aplikacije:
Definiranje grafičkog korisničkog sučelja (GUI)
Upravljanje događajima (events)
Upravljanje podacima aplikacije
Pozadinske (background) operacije
Obavijesti prema korisniku
Razvojna okolina:
Java kao jezik za razvoj aplikacija
Datoteke Java razreda najprije se prevode u Java bytecode, a optimiran je za mobilne uređaju; zatim se prebacuju u izvršnu datoteku koja se pokreće na Dalvik virtualnom stroju.
Skup biblioteka za Android aplikacije uključuje okvire za razvoj web preglednika (webkit), podršku bazama podataka (SQLite) i multimediji.

131
Q

Nabrojite dijelove, ukratko opišite okolinu Androida (čemu služe i od čega se sastoje pojedini dijelovi) na razini aplikacije, okvira aplikacije (Application Framework), biblioteka, run-time okoline (Android Runtime) i Linux jezgre.

A

Dijelovi:
- Operacijski sustav
- Međusloj
- Aplikacije
- Software Development Kit (SDK)

Okolina:
Linux je osnova za rad s procesima, memorijom, pogosnkim programima i upravljanjem potrošnje energije.
Run-time okolina sadrži skup biblioteka i Dalvik virtualni stroj
Java kao jezik za razvoj aplikacija
Datoteke Java razreda najprije se prevode u Java bytecode, a optimiran je za mobilne uređaju; zatim se prebacuju u izvršnu datoteku koja se pokreće na Dalvik virtualnom stroju.
Skup biblioteka za Android aplikacije uključuje okvire za razvoj web preglednika (webkit), podršku bazama podataka (SQLite) i multimediji.
Biblioteka libc slična je standardnoj C biblioteci, ali je manja i prilagođena za načelno sporije procese mobilnih uređaja.

132
Q

Nabrojite i ukratko opišite funkcionalne dijelove Linux jezgre.

A

Rad s procesima, memorijom, pogonske programe i upravljanje potrošnjom energije.

133
Q

Navedite korake razvoja Android aplikacije, te objasnite ulogu pojedinih komponenti aplikacije (Activities, Intents, Services, Content Providers, Broadcast Receivers, te ostalih komponenti).

A

Razvoj Android aplikacije:
Definiranje grafičkog korisničkog sučelja (GUI)
Upravljanje događajima (events)
Upravljanje podacima aplikacije
Pozadinske (background) operacije
Obavijesti prema korisniku
Activities:
Odgovara jednom zaslonu/prozoru aplikacije
Aktivnosti međusobno razmjenjuju informacije
Svaka aktivnost sastoji se od liste grafičkih komponenti
Dva su pristupa u izgradnji grafičkog sučelja: programatski (Java kod) – upravlja događajima i rukuje međudjelovanjem korisnikom; deklarativni (XML kod) – definira dizajn/razmještaj/layout i resurse koje aplikacija koristi
Intents:
Asinkrone poruke za aktiviranje osnovne Android komponente kao što su Activities
EkplicitniIntent – komponenta određuje odredište druge komponente
Implicitni Intent – komponenta određuje tip namjene
Services:
Kao Activities, ali pokrenute u pozadini i ne omogućuju korisničko sučelje
Koriste se za tzv. neinteraktivne zadatke
Životni vijek usluge sastoji se od tri stanja: starting, running i destroyed
Content Provides:
Standardno sučelje za pristup dijeljenim podacima među različitim aplikacijama
Svaka Android aplikacija ima vlastiti privatni skup podataka kojima se upravlja preko datoteka ili SQLite baze podataka
Broadcast Receivers:
Aplikacija koja signalizira vanjske događaje
Tipovi obavjesti: dolazni poziv, isporuka SMS-a, otkrivanje mreže i slično