Professional Documents
Culture Documents
Ssos 04
Ssos 04
• U različitim arhitekturama
– ova funkcija može imati različita imena
» (npr. syscall na MIPS ISA arhitekturi).
• Ova instrukcija prebacuje izvršenje u kernel mod
– i nastavlja izvršenje od tačno određene lokacije u
memoriji,
– na kojoj se nalazi kod pozvane sistemske rutine.
• Za ostvarivanje zaštite,
– operativni sistem mora da se osloni na usluge hardvera.
• Hardver minimalno mora da podrži tri stvari:
– privilegovane instrukcije,
– zaštita memorije i
– tajmer prekidi (interapti).
heap
data
kod
0
• Sa virtuelnim adresama,
– memorijski prostor svakog procesa
– počinje na istom mjestu, na adresi nula.
#include <windows.h>;
#include <stdio.h>;
int staticVar = 0;
void main(){
staticVar += 1;
Sleep(10000);
• Randomizacija se zasniva na
– dodavanju malog slučajnog (random) broja
– adresi lokacije na kojoj počinju heap i stack memorije.
• Na višeprocesorskim sistemima,
– prekid se izvršava samo na jednom procesoru,
– dok ostali nastavljaju svoje izvršenje kao da se
ništa nije desilo.
• Pouzdanost.
• Ako je program loše napisan,
– korisnikov pokazivač steka može pokazivati na
pogrešnu lokaciju,
– zbog čega povratak u korisnikov program
» neće moći da bude izvršen na korektan način.
• Da se ne bi gubilo vrijeme,
– upravljački program koji pokreće
– tajmer prekid može odlučiti da se ne gubi vrijeme,
– već da neki drugi proces može da se izvršava.
• Da ponovimo:
• Kada se proces izvršava u korisničkom modu,
– stek kernela je prazan.
• Stek procesa sadrži
– povratne adrese pozvanih potprograma
» proc1, proc2.
• Prvi (lijeva kolona) dio slike: Running
• Waiting for IO
• Waiting for IO
– [1] Asinhrono IZVRŠENJE ovdje znači da se prekid može javiti u bilo kom momentu.
» Treba uočiti razliku između sinhronih (blokirajućih) poziva potprograma i asinhronih (ne-
blokirajućih) poziva. Ako je poziv sinhron, tada će izvršenje glavnog programa biti
zaustavljeno sve do završetka potprograma.
OF DF IF TF SF ZF AF PF CF