česta pitanja Flashcards
Što su niti i kako se modeliraju?
Niti (threads) su dijelovi procesa koji se sastoje od:
- PC koji pokazuje koja se instrukcija sljedeća izvodi
- registara koji čuvaju trenutne vrijednosti varijabli
- stoga koji sadrži povijest izvođenja
Sve niti dijele isti adresni prostor (time i globalne varijable, otvorene datoteke, childeove…) pa nisu neovisne.
Kako je izveden i na čemu je zasnovan:
a) Programirani U/I
a) Programirani U/I
zasniva se na stalnom prozivanju uređaja na spremnost. Korisnički proces sustavskim pozivom otvara pisač ako je slobodan ili čeka. 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.
Što je sustavski poziv?
- 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 viših programskih jezika.
Navedite moguća stanja procesa, te skicirajte i objasnite dijagram prijelaza stanja procesa.
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)
- Proces otkriva da se ne može pokrenuti, jer nema ulaznog podatka.
- Raspoređivač oduzima CPU trenutnom i dodjeljuje je nekom drugom procesu
- Raspoređivač vraća CPU procesu koji je bio pokretan prije trenutnog procesa
- Dogodio se događaj izvana na kojeg je proces čekao da bi se pokrenuo (npr. raspoloživost ulaznog podatka
Dijagram:
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Objasnite na čemu se zasniva Petersonovo rješenje međusobnog isključivanja?
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…
Ukratko objasnite što su pogonski programi.
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 korisničkom sloju
Svaki pogonski program rukuje jednim uređajem ili razredom uređaja.
Ukratko objasnite/po potrebi skicirajte postupke nadzora pristupa resursima: POLA (Principle of Least Authority)
POLA ovlasti procesa na resursima stavlja u tri domene sigurnosti, pokretanjem procesa mu se pridružuju svi resursi i ovlasti
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Objasnite što je u Linux-u bootloader, čemu služi, koje kategorije bootloadera postoje, te navedite barem tri Linux bootloadera.
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
3 BOOTLOADERA:
LILO, GRUB i GRUB2
Što su rukovatelji prekida?
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.
Ukratko objasnite sljedeće pojmove i način njihovog korištenja: semafor
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.
Objasnite pojam prividne (virtualne) memorije, postupke njene implementacije, te straničenje na zahtjev.
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 (paging): virtualna memorija se podijeli na stranice, a odgovarajuće jedinice u fizičkoj memoriji su okviri stranica.
Objasnite što je DMA i koja mu je zadać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.
Objasnite sigurnost datotečnog sustava.
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
Objasnite prava pristupa datotekama i direktorijima
Prava pristupa datotekama i direktorijima:
‘r’ – čitanje
‘w’ – pisanje
‘x’ – izvršavanje/pokretanje
Objasnite 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
Na primjeru usporedi simbolički i oktalni mod za mjenjanje prava pristupa datotekama i direktorijima.
Simbolički mod:
- Mijenja prava pristupa relativno u odnosu na trenutna prava
- Sintaksa: chmod mod filename
- mod se sastoji od tri dijela
- tko - kategorija korisnika na koju se odnosi naredba
(u - user, g - group, o - other, a - all)
- operator - operator koji se koristi (=, +, -)
- pravo - pravo koje se postavlja (=), dodaje (+) ili
oduzima (-): r, w, x
Oktalni mod:
- Numerički mijenja prava na datoteci za sve kategorije istovremeno
- Sintaksa: chmod octal_mod filename ili chmod -R octal_mod directory_nam
Primjer:
student00@linux:~$ chmod g+w linux.txt (simbolički)
student00@linux:~$ chmod 545 linux.txt (oktalni)
Objasnite ulogu i osnove načina rada mehanizma Registry u Windows OS-u.
- 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
Što su zastoji i koji su uvjeti nastanka i sprječavanja zastoja?
Skup procesa je u zastoju ako svaki proces č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
Navedite i ukratko opišite najznačajnije vrste operacijskih sustava prema računalnoj okolini i prema namjeni.
OS velikih računala (mainframe, vratili se kao veliki web poslužitelji)
- slijed poslova, obrada transakcija, podjela vremena, posluga brojnih korisnika
OS poslužitelja
- jači PC-i, radne stanice ili mainframe računala, posluga velikog broja korisnika koji dijele sklopovlje, programe i podatke
Višeprocesorski OS
- razlika u načinu spajanja i dijeljenu resursa: paralelna računala, višeračunalni i višeprocesorski sustavi (posebnost: komunikacija, spajanje)
OS osobnih računala
- dobro sučelje prema korisniku (Windows, Linux)
OS za rad u stvarnom vremenu (real-time)
- strogi, ublaženi i postojani vremenski zahtjevi, mobilni, ECos
OS ugradbenih računalnih sustava (embedded)
- smanjeni resursi: kućanski aparati, TV, automobili: Windows CE, Windows Embedded, TV OS, Linux, Embedded Linux, QNX, VxWorks
OS senzorskih čvorova
- Tiny OS
OS pametnih kartica (smart card)
- pokreću se na kartici, JVM interpreter, Java Appleti, jedna ili više jednostavnih mogućnosti
OS ručnih računala i mobilnih uređaja
- PDA, mali uređaji, pametni telefoni
Ukratko objasnite NTFS datotečni sustav, skicirajte NTFS raspored, te ukratko usporedite NTFS s FAT32 datotečnim sustavom.
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)
- 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
Skica:
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Što je digitalni potpis i kako se izvodi? Skicirajte i objasnite postupak stvaranja digitalnog potpisa.
- Digitalni potpis je matematička shema za dokaz autentičnosti digitalne poruke, daje primatelju 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
Postupak stvaranja (skica):
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Nabrojite ili skicirajte korake nastanka sustavskog poziva.
Koraci nastanka sustavskih poziva:
- Pozivajući program najprije stavlja parametre na stog
- Poziv bibliotečne procedure
- Bibliotečna procedura stavlja broj sustavskog poziva u registar.
- OS izvodi instrukciju TRAP s ciljem prijelaza iz korisničkog u jezgrin način rada.
- Jezgrin kod utvrđuje broj poziva i dodjeljuje ga odgovarajućem rukovatelju poziva (handleru)
- Pokreće se rukovatelj sustavskog poziva.
-Kada rukovatelj odradi, nadzor se vraća bibliotečnoj proceduri
- Ta procedura vraća se na razinu korisničkog programa
- Za potpuni završetak, korisnički program briše stog i to poslije svakog poziva procedure.
Pokažite na nekom primjeru izvođenje sustavskog poziva (npr. printf() – write ())
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);
}
Ukratko objasnite/po potrebi skicirajte postupke nadzora pristupa resursima: matrica zaštite
Matrica zaštite je dvodimenzionalna matrica.
Popis objekata i njihovih dozvola pristupa u svakoj domeni
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Ukratko objasnite/po potrebi skicirajte postupke nadzora pristupa resursima: ACL (Access Control List), višerazinska sigurnost
ACL je lista dozvola pridružena objektu, specificira koji korisnici ili procesi imaju dozvoljene pristupe objektu
https://drive.google.com/drive/folders/1R6LXDCl9iKo8eQKdV_nEsPGO2Gnnm7tT
Kako je izveden i na čemu je zasnovan:
b) Prekidima pokretan U/I
b) Prekidima pokretan U/I
zasniva se na prekidima kojima se CPU iskorištava u vremenu dok nije okupiran (npr. između spremanja znakova u spremnik pisača). U tom vremenu CPU obavlja neki drugi posao (npr. poziva raspoređivač i pokreće neki drugi proces). Pisač ne pamti znakove, ali ispisuje sve koji dođu.
Kako je izveden i na čemu je zasnovan:
c) DMA zasnovan U/I
c) DMA zasnovan U/I
zasniva se na DMA koji uzima jedan po jedan znak pisaču, bez CPU. Smanjuje se broj prekida s prekid-po-znaku na
prekid-po-spremniku. Sporiji je od CPU pa se rabi samo kada je CPU zauzet ili kad se može koristiti puna brzina uređaja.
Koje korake rukovatelji prekida moraju obaviti po završetku prekida?
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čki 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
Ukratko objasnite sljedeće pojmove i način njihovog korištenja: muteks
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).
Ukratko objasnite sljedeće pojmove i način njihovog korištenja: futeks
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.
Ukratko objasnite sljedeće pojmove i način njihovog korištenja: monitor
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
Objasnite kako je izveden DMA.
Izvedba:
1 - CPU programira DMA
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