Tema01 OperativniSistemi

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 60

OPERATIVNI SISTEMI

JEZGRO
OPERATIVNOG
SISTEMA

18:03:26

NASTAVNO OSOBLJE

vanr. prof.. dr. sci. Samir Ribi samir.ribic@etf.unsa.ba


strunjak iz prakse Lamija emalovi (ETF)
demonstratori Timur erimagi, Emina Huski, Sanil Music,
Mustafa Mahmutovic (ETF)
vii asistent Adis Alihodi (PMF)

18:03:26

PLAN PREDAVANJA
O operativnim sistemima

Ulazno-izlazni ureaji

Upravljanje procesima

Ureaji za komunikaciju s
korisnikom

Rasporeivanje procesa

Diskovi

Sinhronizacija procesa i
IPC

Datoteni sistemi

Upravljanje resursima i
zastoji

Arhitektura Unix/Linux

Upravljanje memorijom

Mobilni operativni sistemi

Virtualna memorija
18:03:26

Arhitektura Windows
Sigurnost operativnih sistema
Izvorni kod jezgra OS
3

LITERATURA
Skripta

operativni sistemi, Husovi, Brka, Ribi


Ribi Linux distribucija BHLD
A. Silberschatz, P. B. Galvin, and G. Gagne. Operating
System Concepts. Wiley Publishers
A. Tanenbaum: Modern Operating Systems, Prentice Hall
A. Tanenbaum: Operating Systems Design (Minix book),
Prentice Hall
B. orevi, D. Pleskonji, N. Maek: Operativni sistemi,
Mikro knjiga
Biljeke i slajdovi s predavanja (moi e se nai na WEB
stranici Elektrotehnikog fakulteta) http://c2.etf.unsa.ba

18:03:26

NAIN OCJENJIVANJA
Prisustvo predavanjima i vjebama je obavezno
Prisustvo predavanjima i vjebama : max. 10 bodova
ETF: Poeni prisustva se raunaju linearno po svakom prisustvu predavanju i
laboratorijskim vjebama. Povremeno prozivanje s spiska potpisanih u cilju nagradnih
poena i provjere
PMF: Poene dostavlja asistent na bazi prisustva i aktivnosti na laboratorijskim
vjebama
Izrada domaih zadaa : max 10 bodova (5 domaih zadaa ili projektnih zadataka).
Po izboru: zadae vezane za gradivo ili projekt lokalizacije Linux softvera
Ubuntu/KDE/GNOME
I parcijalni ispit : max 20 bodova
II parcijalni ispit : max 20 bodova
Zavrni usmeni ispit : max 40 bodova.
Ako je student radio zadae, parcijalni pismeni ispit ili zavrni usmeni vie puta, uzima
mu se u obzir najbolji rezultat od svakog od dijelova ispita. Zadae i korekcija
prisustva se mogu raditi ponovo samo ako je to uslov za izlazak na usmeni, dok se
ispiti mogu ponoviti i ako student nije zadovoljan ocjenom.
18:03:26

NAIN OCJENJIVANJA
Uslov za zavrni usmeni je ostvareno po 10 bodova iz oba parcijalna ispita

Student za aktivnost na predavanjima (tano odgovoreno pitanje), zadatke i aktivnost


na vjebama ili najbolje uraene zadae/lokalizacije dobija take. Za prisustvo preko
50% nastave dobija se jedna taka, za prisustvo preko 90% dvije take
Studenti koji nemaju najmanje 10 bodova na svakom parcijalnom ispitu polau
popravni ispit radei ponovo taj ili oba parcijalna ispita
Ako je ukupan broj poena ispod 20 poena, student se upisuje na ponovno sluanje
kursa i njemu se ne priznaju uraene zadae i poeni prisustva ranije godine
Student kome je konana ocjena 5 moe ponovo izai na zavrni ispit. Ako nakon
posljednjeg zavrnog ispita u kolskoj godini student nije ostvario uslov za prolaznu
ocjenu, moe traiti prenoenje poena zadaa i prisustva u narednu kolsku godinu
Ocjene ETF 0-54 (5), 55-64 (6), 65-74 (7),75-84 (8), 85-94(9), 95-100 (10)
Ocjene PMF 0-49 (5), 50-59 (6), 60-69 (7), 70-79 (8),80-89(9), 90-100 (10)

18:03:26

NAIN OCJENJIVANJA
Zavrni usmeni ispit se sastoji od 4 sluajno izabrana pitanja, svako nosi po 10

bodova. Spisak pitanja za usmeni ispit objavljen je na poetku semestra, eventualne


promjene u toku godine e biti napomenute.
.Ukoliko student ima take, on ima pravo da zamijeni pitanje na usmenom ispitu ali u
istoj oblasti samo jednom.
Prilikom zamjene, ako se iskoristi jedna taka, maksimalan broj poena na
zamijenjenom pitanju je 8.
Prilikom zamjene, ako se iskoriste dvije take, maksimalan broj poena na
zamijenjenom pitanju ostaje 10.
S tri iskoritene take, student moe na usmenom odabrati jedno pitanje po svojoj
elji.
Tri take se mogu zamijeniti i za poveanje bodova prije usmenog ispita, za 5
bodova, ovo se koristi na dan uvida u radove drugog parcijalnog ispita, ali ukupan zbir
poena ne smije prei 60.
Svako lano potpisivanje na predavanjima troi jednu taku, izbacivanje zbog
ometanja nastave dvije take
PMF: Fond asova predavanja je manji nego na ETF, pa e se spisak pitanja za
usmeni ispit skratiti zavisno o odranim lekcijama.
18:03:26

TA JE OPERATIVNI SISTEM

Program koji slui kao interfejs izmeu


korisnika raunara i raunarskog hardvera

Uloga operativnog sistema:

Pruiti korisniku okruenje koje e mu


omoguiti efikasno izvrenje programa

Stvoriti pogodno korisniko okruenje

OS

Proirena maina

Upravlja resursa

18:03:26

RAUNARSKI SISTEM
Igra

Bankovni
alter

Kompajler
Operativni sistem

Editor

Web
browser

Aplikativni
programi

Interpreter
Sistemski
programi

Mainski jezik
Mikroarhitektura
Fiziki ureaj

18:03:26

Hardver

Raunarski
sistem sastoji
se od
hardvera
sistemskih
programa
aplikacionih
programa
9

STRUKTURA RAUNARSKOG
SISTEMA

18:03:26

Hardver: centralna procesorska jedinice


(CPU), memorije i ulazno- izlaznih ureaji
(U/I),...
Operativni sistem: kontrolie i koordinira
koritenje hardvera izmeu razliitih
aplikacija razliitih korisnika
Sistemski i aplikacioni programi: kompajleri,
poslovni programi, sistemi baza podataka,
igre i dr. definiu nain na koji se raunarski
sistem koristi da zadovolji potrebe korisnika
Korisnici: ljudi, maine, drugi raunari

10

TA RADI OPERATIVNI SISTEM


OS slui kao posrednik izmeu korisnika,
odnosno njegovih programa, i raunarskog
hardvera

OS upravlja hardverskim i softverskim resursima


sistema

OS prua stabilno okruenje za aplikacione


programe i omoguva im da se koriste
hardverskim resursima (bez potrebe poznavanja
detalja o tim resursima)

18:03:26

11

TA OBUHVATA OS

Tradicionalno shvatanje:
kernel (jezgro) program koji
obavlja osnovne funkcije OS i
uvijek se nalazi u memoriji
skup uslunih sistemskih
programa

shell (koljka) komandni ili


grafiki korisniki interfejs (GUI)
prema funkcijama OS

18:03:26

Moderno
shvatanje: sve
ovo i jo:
GUI
skup
uslunih
aplikativnih
programa
programi za
Internet usluge
12

ISTORIJA OPERATIVNIH SISTEMA

Prva generacija 1945 - 1955, Katodne cijevi, plug boards

Druga generacija 1955 - 1965, tranzistori, batch sistemi

Trea generacija 1965 - 1980, IC (integrisana kola) i


multiprogramiranje
etvrta generacija 1980 - sada, personalni raunari (personal
computers)
Peta generacija 1990 - sada, mobilni raunari (mobile
computers)

18:03:26

13

VRSTE OPERATIVNIH SISTEMA


Podjela na osnovu:

Broja korisnika i/ili procesa

Prema nainu obrade poslova

Prema distribuciji procesorske snage i


ostalih resursa

18:03:26

Prema namjeni i funkcionalnim osobinama

14

PODJELA PO BROJU KORISNIKA I


PROCESA
Jednokorisniki (engl. single-user) virtuelna maina za samo jednog korisnika
(jeftinija konfiguracija, ili prilagoeni za odreenu funkciju)
Viekorisniki (engl. multiuser) jaa hardverska konfiguracija simultani
prisup vie korisnika istovremeno (preko posebnih terminala)
Jednoprocesni (engl. single-tasking, singleprocess)
Vieprocesni (engl. multitasking. multiprocess)
Kombinovani:
Jednokorisniki jednoprocesni (engl. single-user, singletasking) MS-DOS
Jednokorisniki vieprocesni (engl. single-user, multitasking) OS/2, MS
Windows 3.1
Viekorisniki vieprocesni (engl. multiuser, multitasking) UNIX, a uslovno
MS Windows 2000/XP ako obezbjeuju terminalske usluge

18:03:26

15

PODJELA PO NAINU OBRADE

Sistemi sa grupnom obradom (engl. Batch)


Grupna obrada- predaja poslova na
izvrenje posredstvom ulaznih jedinica,
obrada u nizu, nema komunikacije izmeu
korisnika i posla
Interaktivni sistemi (engl. Interactive
systems) Korisnici komuniciraju sa svojim
poslovima (u time- sharing okruenju)
Kombinovani sistemi

18:03:26

16

SISTEMI S GRUPNOM OBRADOM


(BATCH SISTEMI)

prvi raunari 1960-ih i 70-ih

ulazni ureaji: ita kartica i magnetne trake

izlazni ureaj: linijski tampa, bua kartica i magnetne trake


nema interakcije sa korisnikom
korisnik pripremi posao (job) za obradu (program+podaci),
operater to postavi na sistem, pokrene izvravanje i vrati
korisniku rezultat (izlazni podaci ili izvetaj o greci)
OS je stalno u memoriji i samo prelazi s posla na posao

18:03:26

17

SISTEMI S GRUPNOM OBRADOM


(BATCH SISTEMI)
Ulaz:Programi, podaci naredbe
Rezultat
i

Red ekanja

izvrenje

Uvoenjem diska procesu se moe direktno pristupiti, bez potrebe za


serijalizacijom
18:03:26

18

MULTIPROGRAMIRANI BATCH
SISTEMI
Rasporeivanje poslova (job
scheduling):

iz skupa raspoloivih poslova


(pool), izabrati poslove koji e se
uitati u memoriju i izvravati

Multiprogramiranje
(multiprogramming):

izvravati vie poslova uporedo;


dok jedan eka na zavretak I/O
operacije, CPU izvrava drugi
posao
18:03:26

19

PROBLEMI MULTIPROGRAMIRANJA

Kako iz skupa svih poslova izabrati one koji e se uitati u


memoriju i izvravati job scheduling
Kako smjestiti poslove razliite veliine u memoriju
memory management
Kada posao koga CPU trenutno izvrava zatrai U/I
operaciju, kako izabrati slijedei koga e CPU izvravati
CPU scheduling
Kako prei sa izvravanja jednog posla na izvravanje
drugog context switch
Kako opsluivati zahtjeve za U/I operacijom na dijeljenom
ureaju I/O device scheduling
Kako sprijeiti da jedan posao sluajno ili namjerno ugrozi
memorijski sadraj drugog protection

18:03:26

20

SISTEMI DIJELJENOG VREMENA


(TIME SHARING)
Batch sistemi ne pruaju korisniku mogunost interakcije sa
zadatkom dok se on izvrava.
Time-sharing ili multitasking je logiki nastavak multiprogramiranja.
To je tehnika dijeljenja vremena tako da se proces izvrava u
malom intervalu
CPU izvrava vie zadatako tako to se prebacuje izmeu njih.
Ovo prebacivanje se deava tako esto da korisnik moe uticati
na svaki od programa u izvrenju.
Interaktivni raunarski sistem prua on-line komunikaciju izmeu
korisnika i sistema.
Sistem sa dijeljenim vremenom prua
mogunost da vie korisnika dijeli
jedan raunar.
18:03:26

21

SISTEMI DIJELJENOG VREMENA


(TIME SHARING)
Razlika pojmova program i proces:

proces predstavlja izvravanje nekog programa nad datim


skupom podataka
vie procesa moe biti aktivirano nad istim programom
monoprogramski, monoprocesni: specijalizovani ili ugraeni
(embedded) sistem za upravljanje nekim HW sistemom
multiprogramski, monoprocesni: personalni raunar starije
generacije koji moe imati u memoriji i izvravati samo jedan
program u jednom trenutku; stariji batch sistemi
monoprogramski, multiprocesni: specijalizovani sistem posebne
namjene sa vie korisnika, serverski sistem,
multiprogramski, multiprocesni: sistemi sa raspodelom vremena, svi
moderni OS opte namjene

18:03:27

22

PO FUNKCIONALNIM OSOBINAMA

Operativni sistemi za velike raunarske sisteme (engl.


Mainframe systems)
Operativni sistemi za sisteme sa dijeljenim vremenom
(engl.time-sharing systems)
Operativni sistemi za desktop sisteme
Operativni sistemi za vieprocesorske sisteme
(engl.multiprocessor systems)
Mreni operativni sistemi (engl. network OS)
Distribuirani sistemi (engl. distributed systems)
Udrueni sistemi (engl. clustered systems)
Operativni sistemi za upravljanje u realnom vremenu (engl. realtime systems)
Runi sistemi (engl. handheld systems)
Ugraeni sistemi (embedded)
18:03:27

23

MAINFRAME OS

Fiziki velike maine


Slini poslovi su se udruivali u grupe i
zajedniki obraivali
Uvodi se tehnika multiprogramiranje i
automatskog sekvenciranja, bez operatora
se prebacuje kontrola sa jednog posla na
drugi

18:03:27

24

OS S DIJELJENIM VREMENOM

Sistemi sa dijeljenim vremenom omoguavaju


svakom korisniku on-line komunikaciju sa
svojim poslom i OS-om

Tehnika multiprogramiranja
vie poslova se nalazi u memoriji istovremeno

tehnika dijeljenja vremena

poslije isteka vremenskog kvantuma svaki


posao mora predati kontorlu drugom poslu i
saekati svoj novi kvantum

18:03:27

25

DESKTOP OS

Raunari namjenjeni jednom korisniku po


pristupanoj cijeni

Prve verzije skromne performanse

Razvijen grafiki korisniki interfejs (GUI)

Fleksibilni, prilagodljivi

DOS, MS Windows, Novell NetWare, UNIX,


Linux

18:03:27

26

OS ZA VIEPROCESORSKE
SISTEME

Sistemi sa vie procesora komuniciraju putem


zatvorenih komunikacionih linija a smjeteni su
u istom kuitu
Komunikacija i sinhronizacija izmeu procesora
putem djeljive memorije
Simetrino multiprocesiranje: ista kopija OS-a,
svi procesori ravnopravni
Asimetrino multiprocesiranje: Svakom
procesoru je dodijeljen specifian zadatak,
master procesor dodjeljuje zadatak slave
procesoru

18:03:27

27

MRENI OS

Korisnici mogu pristupati resursima udaljenih maina


na dva naina
Daljinsko prijavljivanje na sistem (remote login)
Razmjena datoteka sa udaljenim sistemom (remote
file transfer)
Raunari povezani u mreu sa visokim stepenom
autonomije
Svaki raunar ima svoj OS, ameusobno razmjenjuju
podatke pomou odgovarajuih protokola
OS mogu biti razliiti potreban je samo zajedniki
protokol (zajedniki jezik za komunikaciju)

18:03:27

28

DISTRIBUIRANI OS

Osim dijeljenja datoteka i resursa, distribuiranje procesa

Korisnik vidi jednoprocesorski sistem

Vie raunara povezanih u mreu a jedan OS upravlja svim


resursima
Korisnik ne mora znati da je umreen sa drugim raunarima pa
se cio sistem vidi kao jedan raunar
Kolekcija procesora tj. raunara koji ne dijele memoriju i
sistemski sat.
Svaki procesor ima lokalnu memoriju a komuniciraju putem
LAN- a (lokalna mra) ili WAN-a (mrea irokog podruja)

18:03:27

29

KLASTER SISTEMI

Clusteri se sastoje od udruenih raunara


vrsto povezanih LAN mreom
Dvije vrste udruivanja:
Asimetrino (jedan server -vor izvrava
aplikaciju, ostali pratei -monitoring serveri)
Simetrino (svi aktivni i svi izvravaju
aplikaciju)

18:03:27

30

OS U REALNOM VREMENU

Specijalni OS
Davanje odziva u tano definisanom
vremenskom intervalu
Izvori podataka:

senzorski ureaji,

razni prekidai,

A/D i D/A konvertori.

Specijalni grafiki sistemi, sistemi za medicinsku


grafiku, sistemi za industrijsku
kontrolu,kontrolisanje naunih eksperimenata

18:03:27

31

RUNI SISTEMI

PDA ureaji (engl. Personal Digital


Assistants)

Mobilni telefoni

Osnovna karakteristika: mobilnost

Slabi hardverski resursi

Procesoris skromnih mogunosti

Mali ekrani

18:03:27

32

JEZGRO OPERATIVNOG
SISTEMA

Najnii sloj jezgro OS-a (engl. kernel)


Veina operativnih sistema ne moe stati u
radnu memoriju
Dio OS-a koji uvijek mora biti u memoriji
jezgro
Ostali dijelovi se ubacuju kad su potrebni i
izbacuju kad nisu vie potrebni
Ovaj kurs se prije svega bavi jezgrom

18:03:27

33

Jezgro
Jezgro (nukleus, kernel) osnovni dio OS-a
Intefejs izmeu hardvera i ostalih slojeva OS-a
Izuzetak slojevita NT arhitektura ispod jezgra sloj
apstrakcije hardvera (engl. Hardware Abstraction
Layer, HAL) OS vidi razliit hardver na isti nain
Omoguava programima da na siguran nain pristupe
hardveru
Osnovna funkcija jezgra upravljanje procesima
Dodjeljivanje procesora procesima (procesor je nedjeljiv
resurs)
18:03:27

34

ZATITA JEZGRA

Razdvojiti podruje memorije za korisnike


programe i sam operativni sistem
Slika memorije koju vide korisniki programi
moe biti drugaija od slike memorije koju
vidi operativni sistem
Moderni procesori imaju korisniki i
sistemski reim rada
Neke instrukcije su mogue samo u
sistemskom reimu rada

18:03:27

35

Preduslovi na nivou hardvera za


zatitu jezgra
Mehanizam prekida
Obezbjeuje izvrenje upravljakog programa (prekidne rutine)
prebacivanje kontrole sa korisnikog na upravljaki program
Zatita mehanizama adresiranja memorije
Onemoguava da jedan proces upie svoje podatke u prostor memorije
dodjeljen drugom procesu
Skup privilegovanih instrukcija
Skup instrukcija dostupnih OS-u ali ne korisnikom programu.
Korisniki program izvrava privilegovane instrukcije samo putem
sistemskih poziva
Sat realnog vremena
Satni mehanizam realnog vremena kontrolie i evidentira potronju
resursa raunara za sve pojedinane procese
18:03:27

36

DIZAJN JEZGRA OS-a

Monolitni

Slojeviti i prstenasti

Mikrokernel

Virtuelne maine

Exokernel

18:03:27

37

MONOLITNI SISTEMI

Najea realizacija u prolosti (UNIX, DOS)


Skup procedura koje se po potrebi mogu meusobno pozivati
bez ikakvih ogranienja
Nakon pozivanja jezgra OS-a (engl. kernel call) prelaz u
sistemski reim rada
Tri osnovna skupa programa:
Glavni program koji obrauje sistemske pozive

Skup sistemskih procedura koje se pozivaju prilikom


sistemskih poziva

18:03:27

Skup pomonih procedura koje koriste sistemske proceure.

38

SLOJEVITI SISTEMI
OS se dijeli na slojeve
Svaki sloj moe pozivati samo funkcije nieg
sloja hijerarhijska organizacija

OPERATOR
KORISNIKI PROGRAM
ULAZ/IZLAZ
MEUPROCESNA KOMUNIKACIJA
RAD S MEMORIJOM I DATOTEKAMA
UPRAVLJANJE PROCESIMA
HARDVER

Prvi slojeviti OS THE (Technische Hogeschool


Eindhoven) 6 slojeva
Najnii sloj - hardver

ARHITEKTURA THE SISTEMA

Najvii sloj - korisniki programi


Neophodno uvoenje mehanizma sistemskih
poziva koji omoguavaju prelazak iz
korisnikog prostora u sistemski prostor radi
pozivanja operacija OS-a
Windows NT: Hardver-HAL-Kernel i ExecutiveWindows podsistem-Aplikacijski program
18:03:27

39

PRSTENASTI SISTEM
Arhitektura slina
slojevitom samo to
svaki sloj ima dodatnu
hardversku zatitu od
pristupa drugih slojeva
Grupisanje nije po
funkcionalnosti nego po
privilegijama

Prsten 3
Prsten 2
Prsten 1
Prsten 0
Jezgro
Drajveri
Drajveri
Aplikacije

Primjer: MULTICS
18:03:27

40

OS S MIKROJEZGROM

ideja: izbaciti sve nepotrebne dijelove iz


kernela i pretvoriti ih u sistemske procese i
programe koji rade u korisnikom modu
kernel uiniti to manjim, sa minimumom
potrebnih funkcionalnosti koje se izvravaju
u kernel modu
Sistemski procesi razmjenjuju poruke
prednost: fleksibilnost (laka proirivost,
promenljivost i prenosivost, pouzdanost)
nedostatak: loije performanse

18:03:27

41

OS S MIKROJEZGROM
Minix: sastoji se od vie sistemskih
procesa od kojih je samo mali koordinator u
jezgru
Pad podsistema detektuje reinkarnacijski
server i restartuje ga
Korisnikov
proces

Procesni
Server

Disk
drajver
Kernel

18:03:27

Datoteni
Server

Korisnikov
proces

Internet
Server

Inicijalizacijski
Server

Audio
drajver

Sistemski proces

Reinkarn.
Server

Podatkovni
Server

Terminal
drajver

Proces sata

42

OS PREKO
VIRTUELNIH MAINA
Najnii nivo hardver
Iznad hardvera monitor virtuelnih maina (engl. Virtual machine
monitor) niz virtualnih maina tana kopija hardvera (ukljuujui
i kernel/user mode)
Na te virtuelne maine se mogu instalirati razliiti OS (VM/370)
Realizacija novih OS
Procesi

Procesi

Procesi

Jezgro

Jezgro

Jezgro

VM1

VM2

VM3

Procesi

Jezgro
Hardver

Implementacija virtuelne maine


Hardver

Monolitno
jezgro

Jezgro virtuelnih maina

18:03:27

43

OS PREKO VIRTUELNIH MAINA


Virtuelne maine sa razliitim operativnim sistemom se
mogu realizovati na 2 naina
a) Rasporeiva virtuelnih maina (hipervizor) koji
preusmjerava pristup hardveru bez OS a (VM 370,
Oracle VM)
b) Hipervizor koji se izvrava na OS (VMWare, QEMU ...)
OS
OS

OS

OS
Hipervizor tip 2

Hipervizor tip 1
Hardver

18:03:27

OS
Hardver

44

EXOKERNEL
Varijanta OS sa virtuelnim mainama, ali
realizovana na takav nain da svaki
gostujui operativni sistem ne vidi cijelu
mainu nego podskup resursa, npr. Disk
blokove 1024-2048
Ovim je pojednostavljeno mapiranje izmeu
virtuelnih i stvarnih resursa
18:03:27

45

PREKIDI

Procesori mogu primiti specijalne signale


koji prekidaju rad korisnikih programa ili
ponekad i samog operativnog sistema.
Procesor prelazi na izvravanje posebnih
rutina, interrupt handler
Interrupt handler je u sistemskom podruju

18:03:27

46

SISTEMSKI POZIVI

Aplikacioni programi komuniciraju sa OS-om pomou


sistemskih poziva (engl. system calls)

Sistemski pozivi se realizuju pomou sistemskih prekida

Sistemske pozive esto podrava i hardver

Korisniki programi rade u korisnikom reimu rada

Sistemski pozivi obezbjeuju interfejs izmeu programa


koji se izvrava i OS-a
Sistemski poziv (system call) predstavlja interfejs kojim OS
programima nudi pristup do neke svoje usluge

18:03:27

47

MEHANIZAM SISTEMSKIH POZIVA


JEZGRO

PROGRAM 1

PROGRAM 2

18:03:27

Svaki program vidi samo svoju memoriju. Ne vidi


memoriju jezgra
Sistemski poziv se poziva generisanjem prekida
interapta
Ako korisniki program pokua izvriti neku
operaciju koja je dozvoljena samo u sistemskom
reimu rada,kontrola se predaje OS-u.
Prilikom sistemskih poziva procesor prelazi iz
korisnikog reima rada u sistemski, OS obradi
poziv pa se procesor vraa u korisniki reim
rada.
48

API POZIVI

Prilikom programiranja na nekom


programskom jeziku, programer vidi samo
API (application programming interface)
prema sistemskim pozivima
API je skup funkcija koje korisniki
program poziva, prosleujui parametre

DOS INT 21h API

Win API, Win32 API, .NET Framework

Posix API (Unix, Linux)

18:03:27

49

API SISTEMSKI POZIVI


Naziv

Verzije
Namjena
Windows

Kernel API

NT,2000,XP, Skup funkcija u reimu jezgra. Pozivaju ga samo


PspCreateProcess.
Vista,7,8,10 drajveri.
NT,2000,
Klasini sistemski poziv i izaziva prelazak u reim
NtCreateProcess.
XP, Vista, 7, jezgra. Koristi ga zanemariv broj programa, na primjer
8,10
checkdisk.
95,98,ME,N Smjeten je u velikom broju dijeljenih datoteka i
CreateProcess
T,2000,XP, poziva se kao funkcije u C. Uz njega su jo i objektno
Vista, 7,
bazirani API (pozivaju se kao C++ objekti bez
8,10
nasljeivanja) COM, DirectX, ActiveX, najvie koriten
XP,Vista, 7, Ukljuuje veliku biblioteku za objektno-orijentisane
Process.Start
8,10
jezike i prua prilinu neovisnost od programskog
jezika
8,8.1,10
Objektno-orijentisani API dizajniran za saradnju s
Windows.System.Launche
drugim jezicima koristei metapodatke
r.LaunchFileAsync
1,2,3,95,98, esnaestbitna verzija Windows
WinExec
ME,NT,2000
, XP, Vista
1,2,3,95,98, Programi za MSDOS
INT 21, AH=4Bh
ME,NT,2000
, XP, Vista
98,ME,2000 Za izvravanje programa u jeziku Java
Runtime.exec
NT, 2000
Izvravanje programa pisanih za OS/2
DosExecPgm
NT, 2000, Izvravanje programa pisanih za Unix
fork, execve
XP

Native API
Win32 API

.NET API
WinRT
Win16 API
DOS API
Java API
OS/2 API
Posix API

18:03:28

Funkcija za kreiranje
procesa

50

POSIX API SISTEMSKI POZIVI


exit, fork, read, write, open, close, waitpid, creat,link, unlink, execve, chdir, time, mknod, chmod,lchown,
break, oldstat, lseek, getpid, mount, umount,setuid, getuid, stime, ptrace, alarm, oldfstat, pause,utime, stty,
gtty, access, nice, ftime, sync, kill,rename, mkdir, rmdir, dup, pipe, times, prof, brk,setgid, getgid, signal,
geteuid, getegid, acct, umount2,lock, ioctl, fcntl, mpx, setpgid, ulimit, oldolduname,umask, chroot, ustat,
dup2, getppid, getpgrp, setsid,sigaction, sgetmask, ssetmask, setreuid, setregid,sigsuspend, sigpending,
sethostname, setrlimit, getrlimit,getrusage, gettimeofday, settimeofday, getgroups, setgroups,select,
symlink, oldlstat, readlink, uselib, swapon,reboot, readdir, mmap, munmap, truncate, ftruncate,
fchmod, fchown, getpriority, setpriority, profil, statfs,fstatfs, ioperm, socketcall, syslog, setitimer,
getitimer,stat, lstat, fstat, olduname, iopl, vhangup, idle,vm86old, wait4, swapoff, sysinfo, ipc, fsync,
sigreturn,clone, setdomainname, uname, modify_ldt, adjtimex,mprotect, sigprocmask, create_module,
init_module,delete_module, get_kernel_syms, quotactl, getpgid, fchdir,bdflush, sysfs, personality,
afs_syscall, setfsuid,setfsgid, _llseek, getdents, _newselect, flock, msync,readv, writev, getsid, fdatasync,
_sysctl, mlock,munlock, mlockall, munlockall, sched_setparam,sched_getparam, sched_setscheduler,
sched_getscheduler, sched_yield, sched_get_priority_max, sched_get_priority_min,sched_rr_get_interval,
nanosleep, mremap, setresuid,getresuid, vm86, query_module, poll, nfsservctl,setresgid, getresgid,
prctl,rt_sigreturn,rt_sigaction,rt_sigprocmask, rt_sigpending, rt_sigtimedwait,rt_sigqueueinfo, rt_sigsuspend,
pread, pwrite, chown,getcwd, capget, capset, sigaltstack, sendfile, getpmsg,putpmsg, vfork, ugetrlimit,
mmap2, truncate64, ftruncate64, stat64, lstat64, fstat64, lchown32, getuid32,getgid32, geteuid32,
getegid32, setreuid32, setregid32, getgroups32, setgroups32, fchown32, setresuid32,getresuid32,
setresgid32, getresgid32, chown32, setuid32,setgid32, setfsuid32, setfsgid32, pivot_root, mincore,madvise,
getdents64, fcntl64, 0, security, gettid, readahead, setxattr, lsetxattr, fsetxattr, getxattr,lgetxattr, fgetxattr,
listxattr, llistxattr, flistxattr, removexattr, lremovexattr, fremovexattr, tkill, sendfile64,futex, sched_setaffinity,
sched_getaffinity, set_thread_area,get_thread_area, io_setup, io_destroy, io_getevents,
io_submit,io_cancel, fadvise64, 0, exit_group, lookup_dcookie
18:03:28

51

PRIMJER UPOTREBE POSIX API


#include <fcntl.h>
...
int fd;
mode_t mode = S_IRUSR |
S_IWUSR | S_IRGRP |
S_IROTH;
char *filename = "/tmp/file";
...
fd = open(filename, O_WRONLY |
O_CREAT | O_TRUNC, mode);
...
C program
18:03:28

mov eax, 5
mov ebx, path
mov ecx, flags
mov edx,
mode
int 80h
Linux implementacija

52

DOS API

Gotovo sve MS DOS funkcije se


pozivaju instrukcijom INT 21h
U registru AH se nalazi broj funkcije,
u ostalim registrima dodatni
parametri
Primjer: Napusti program

MOV AH,4Ch
MOV AL,0
INT 21h

18:03:28

53

WINDOWS API

18:03:28

Ukljuuje oko
2000 funkcija za
rad s datotekama,
korisnikim
interfejsom,
grafikom,
mreom,
memorijom itd.
WinApi, Win32,
Win32s
54

WINDOWS API (A-F) (1993)


_hread _hwrite _lclose _lcreat _llseek _lopen _lread _lwrite AbortDoc AbortPath AbortPrinter AbortSystemShutdown ActivateKeyboardLayout AddAtom
AddFontResource AddJob AddMonitor AddPort AddPrinter AddPrinterDriver AddPrintProcessor AddPrintProvidor AdjustWindowRect
AdjustWindowRectEx AdvancedDocumentProperties AllocConsole AngleArc AnimatePalette AnyPopup AppendMenu Arc ArcTo AreFileApisANSI
ArrangeIconicWindows AttachThreadInput BackupEventLog BackupRead BackupSeek BackupWrite Beep BeginDeferWindowPos BeginPaint BeginPath
BeginUpdateResource BitBlt BringWindowToTop BuildCommDCB BuildCommDCBAndTimeouts CallMsgFilter CallNamedPipe CallNextHookEx
CallWindowProc CancelDC ChangeClipboardChain ChangeServiceConfig CharLower CharLowerBuff CharNext CharPrev CharToOem CharToOemBuff
CharUpper CharUpperBuff CheckDlgButton CheckMenuItem CheckRadioButton ChildWindowFromPoint ChooseColor ChooseFont Chord
ClearCommBreak ClearCommError ClearEventLog ClientToScreen ClipCursor CloseClipboard CloseEnhMetaFile CloseEventLog CloseFigure
CloseHandle CloseMetaFile ClosePrinter CloseServiceHandle CloseWindow CombineRgn CombineTransform CommDlgExtendedError CompareFileTime
CompareString ConfigurePort ConnectNamedPipe ContinueDebugEvent ControlService CopyAcceleratorTable CopyCursor CopyEnhMetaFile CopyFile
CopyIcon CopyMetaFile CopyRect CountClipboardFormats CreateAcceleratorTable CreateBitmap CreateBitmapIndirect CreateBrushIndirect CreateCaret
CreateCompatibleBitmap CreateCompatibleDC CreateConsoleScreenBuffer CreateCursor CreateDC CreateDialog CreateDialogIndirect
CreateDialogIndirectParam CreateDialogParam CreateDIBitmap CreateDIBPatternBrush CreateDIBPatternBrushPt CreateDIBSection CreateDirectory
CreateDiscardableBitmap CreateEllipticRgn CreateEllipticRgnIndirect CreateEnhMetaFile CreateEvent CreateFile CreateFileMapping CreateFont
CreateFontIndirect CreateHalftonePalette CreateHatchBrush CreateIC CreateIcon CreateIconFromResource CreateIconIndirect CreateMailslot
CreateMDIWindow CreateMenu CreateMetaFile CreateMutex CreateNamedPipe CreatePalette CreatePatternBrush CreatePen CreatePenIndirect CreatePipe
CreatePolygonRgn CreatePolyPolygonRgn CreatePopupMenu CreateProcess CreateRectRgn CreateRectRgnIndirect CreateRemoteThread
CreateRoundRectRgn CreateScalableFontResource CreateSemaphore CreateService CreateSolidBrush CreateTapePartition CreateThread CreateWindow
CreateWindowEx DdeAbandonTransaction DdeAccessData DdeAddData DdeClientTransaction DdeCmpStringHandles DdeConnect DdeConnectList
DdeCreateDataHandle DdeCreateStringHandle DdeDisconnect DdeDisconnectList DdeEnableCallback DdeFreeDataHandle DdeFreeStringHandle
DdeGetData DdeGetLastError DdeImpersonateClient DdeInitialize DdeKeepStringHandle DdeNameService DdePostAdvise DdeQueryConvInfo
DdeQueryNextServer DdeQueryString DdeReconnect DdeSetQualityOfService DdeSetUserHandle DdeUnaccessData DdeUninitialize DebugActiveProcess
DebugBreak DefDlgProc DeferWindowPos DefFrameProc DefineDosDevice DefMDIChildProc DefWindowProc DeleteAtom DeleteCriticalSection DeleteDC
DeleteEnhMetaFile DeleteFile DeleteForm DeleteMenu DeleteMetaFile DeleteMonitor DeleteObject DeletePort DeletePrinter DeletePrinterConnection
DeletePrinterDriver DeletePrintProcessor DeletePrintProvidor DeleteService DeregisterEventSource DestroyAcceleratorTable DestroyCaret DestroyCursor
DestroyIcon DestroyMenu DestroyWindow DeviceCapabilities DeviceIoControl DialogBox DialogBoxIndirect DialogBoxIndirectParam DialogBoxParam
DisconnectNamedPipe DispatchMessage DlgDirList DlgDirListComboBox DlgDirSelectComboBoxEx DlgDirSelectEx DocumentProperties
DosDateTimeToFileTime DPtoLP DrawEscape DrawFocusRect DrawIcon DrawMenuBar DrawText DuplicateHandle Ellipse EmptyClipboard
EnableMenuItem EnableScrollBar EnableWindow EndDeferWindowPos EndDialog EndDoc EndDocPrinter EndPage EndPagePrinter EndPaint EndPath
EndUpdateResource EnterCriticalSection EnumChildWindows EnumClipboardFormats EnumDependentServices EnumEnhMetaFile EnumFontFamilies
EnumFonts EnumForms EnumJobs EnumMetaFile EnumMonitors EnumObjects EnumPorts EnumPrinterDrivers EnumPrinters EnumPrintProcessors
EnumProps EnumPropsEx EnumResourceLanguages EnumResourceNames EnumResourceTypes EnumServicesStatus EnumThreadWindows
EnumWindows EqualRect EqualRgn EraseTape Escape EscapeCommFunction ExcludeClipRect ExcludeUpdateRgn ExitProcess ExitThread ExitWindows
ExitWindowsEx ExpandEnvironmentStrings ExtCreatePen ExtCreateRegion ExtEscape ExtFloodFill ExtractIcon ExtSelectClipRgn ExtTextOut
FatalAppExit FatalExit FileTimeToDosDateTime FileTimeToLocalFileTime FileTimeToSystemTime FillConsoleOutputAttribute FillConsoleOutputCharacter
FillPath FillRect FillRgn FindAtom FindClose FindCloseChangeNotification FindFirstChangeNotification FindFirstFile FindNextChangeNotification
FindNextFile FindResource FindResourceEx FindText FindWindow FlashWindow FlattenPath FloodFill FlushConsoleInputBuffer FlushFileBuffers
FlushInstructionCache FlushViewOfFile FoldString FormatMessage FrameRect FrameRgn FreeConsole FreeDDElParam FreeLibrary FreePrinterNotifyInfo

18:03:28

55

WINDOWS API (G)


GdiComment GdiFlush GdiGetBatchLimit GdiSetBatchLimit GenerateConsoleCtrlEvent GetACP GetActiveWindow GetArcDirection
GetAspectRatioFilterEx GetAsyncKeyState GetAtomName GetBitmapBits GetBitmapDimensionEx GetBkColor GetBkMode GetBoundsRect
GetBrushOrgEx GetCapture GetCaretBlinkTime GetCaretPos GetCharABCWidths GetCharABCWidthsFloat GetCharWidth GetCharWidthFloat
GetClassInfo GetClassLong GetClassName GetClassWord GetClientRect GetClipboardData GetClipboardFormatName GetClipboardOwner
GetClipboardViewer GetClipBox GetClipCursor GetClipRgn GetColorAdjustment GetCommandLine GetCommMask GetCommModemStatus
GetCommProperties GetCommState GetCommTimeouts GetCompressedFileSize GetComputerName GetConsoleCP GetConsoleCursorInfo
GetConsoleMode GetConsoleOutputCP GetConsoleScreenBufferInfo GetConsoleTitle GetCPInfo GetCurrentDirectory GetCurrentObject
GetCurrentPositionEx GetCurrentProcess GetCurrentProcessId GetCurrentThread GetCurrentThreadId GetCursor GetCursorPos GetDC
GetDCEx GetDesktopWindow GetDeviceCaps GetDialogBaseUnits GetDIBits GetDiskFreeSpace GetDlgCtrlID GetDlgItem GetDlgItemInt
GetDlgItemText GetDoubleClickTime GetDriveType GetEnhMetaFile GetEnhMetaFileBits GetEnhMetaFileDescription GetEnhMetaFileHeader
GetEnhMetaFilePaletteEntries GetEnvironmentStrings GetEnvironmentVariable GetExitCodeProcess GetExitCodeThread GetExpandedName
GetFileAttributes GetFileInformationByHandle GetFileSize GetFileTime GetFileTitle GetFileType GetFileVersionInfo GetFileVersionInfoSize
GetFocus GetFontData GetForegroundWindow GetForm GetFullPathName GetGlyphOutline GetGraphicsMode GetIconInfo GetInputState
GetJob GetKBCodePage GetKerningPairs GetKeyboardLayoutName GetKeyboardState GetKeyboardType GetKeyNameText GetKeyState
GetLargestConsoleWindowSize GetLastActivePopup GetLastError GetLocaleInfo GetLocalTime GetLogicalDrives GetLogicalDriveStrings
GetMailslotInfo GetMapMode GetMenu GetMenuCheckMarkDimensions GetMenuItemCount GetMenuItemID GetMenuState GetMenuString
GetMessage GetMessageExtraInfo GetMessagePos GetMessageTime GetMetaFileBitsEx GetMetaRgn GetMiterLimit GetModuleFileName
GetModuleHandle GetNamedPipeHandleState GetNamedPipeInfo GetNearestColor GetNearestPaletteIndex GetNextDlgGroupItem
GetNextDlgTabItem GetNextWindow GetNumberOfConsoleInputEvents GetNumberOfConsoleMouseButtons GetNumberOfEventLogRecords
GetObject GetObjectType GetOEMCP GetOldestEventLogRecord GetOpenClipboardWindow GetOpenFileName GetOutlineTextMetrics
GetOverlappedResult GetPaletteEntries GetParent GetPath GetPixel GetPolyFillMode GetPrinter GetPrinterData GetPrinterDriver
GetPrinterDriverDirectory GetPrintProcessorDirectory GetPriorityClass GetPriorityClipboardFormat GetPrivateProfileInt
GetPrivateProfileSection GetPrivateProfileSectionNames GetPrivateProfileString GetPrivateProfileStruct GetProcAddress GetProcessHeap
GetProcessShutdownParameters GetProcessWindowStation GetProfileInt GetProfileSection GetProfileString GetProp GetQueueStatus
GetRandomRgn GetRasterizerCaps GetRegionData GetRgnBox GetROP2 GetSaveFileName GetScrollPos GetScrollRange GetStartupInfo
GetStdHandle GetStockObject GetStretchBltMode GetStringTypeW GetSubMenu GetSysColor GetSystemDefaultLangID
GetSystemDefaultLCID GetSystemDirectory GetSystemInfo GetSystemMenu GetSystemMetrics GetSystemPaletteEntries
GetSystemPaletteUse GetSystemTime GetTabbedTextExtent GetTapeParameters GetTapePosition GetTapeStatus GetTempFileName
GetTempPath GetTextAlign GetTextCharacterExtra GetTextColor GetTextExtentExPoint GetTextExtentPoint GetTextFace GetTextMetrics
GetThreadContext GetThreadDesktop GetThreadLocale GetThreadPriority GetThreadSelectorEntry GetTickCount GetTimeZoneInformation
GetTopWindow GetUpdateRect GetUpdateRgn GetUserDefaultLangID GetUserDefaultLCID GetUserName GetVersion GetViewportExtEx
GetViewportOrgEx GetVolumeInformation GetWindow GetWindowDC GetWindowExtEx GetWindowLong GetWindowOrgEx
GetWindowPlacement GetWindowRect GetWindowsDirectory GetWindowText GetWindowTextLength GetWindowThreadProcessId
GetWinMetaFileBits GetWorldTransform GlobalAddAtom GlobalAlloc GlobalDeleteAtom GlobalFindAtom GlobalFlags GlobalFree
GlobalGetAtomName GlobalHandle GlobalLock GlobalMemoryStatus GlobalReAlloc GlobalSize GlobalUnlock GrayString

18:03:28

56

WINDOWS API (H-R)


HeapAlloc HeapCreate HeapDestroy HeapFree HeapReAlloc HeapSize HideCaret HiliteMenuItem ImpersonateDdeClientWindow
InflateRect InitAtomTable InitializeCriticalSection InitiateSystemShutdown InSendMessage InsertMenu InterlockedDecrement
InterlockedIncrement IntersectClipRect IntersectRect InvalidateRect InvalidateRgn InvertRect InvertRgn IsBadCodePtr IsBadReadPtr
IsBadStringPtr IsBadWritePtr IsCharAlpha IsCharAlphaNumeric IsCharLower IsCharUpper IsChild IsClipboardFormatAvailable
IsDBCSLeadByte IsDialogMessage IsDlgButtonChecked IsIconic IsMenu IsRectEmpty IsValidCodePage IsWindow IsWindowEnabled
IsWindowUnicode IsWindowVisible IsZoomed keybd_event KillTimer LCMapString LeaveCriticalSection LineDDA LineTo
LoadAccelerators LoadBitmap LoadCursor LoadIcon LoadKeyboardLayout LoadLibrary LoadLibraryEx LoadMenu LoadMenuIndirect
LoadModule LoadResource LoadString LocalAlloc LocalFileTimeToFileTime LocalFlags LocalFree LocalHandle LocalLock
LocalReAlloc LocalSize LocalUnlock LockFile LockFileEx LockResource LockServiceDatabase LockWindowUpdate
LookupIconIdFromDirectory LPtoDP lstrcat lstrcmp lstrcmpi lstrcpy lstrlen LZClose LZCopy LZInit LZOpenFile LZRead LZSeek
MakeSureDirectoryPathExists MapAndLoad MapDebugInformation MapDialogRect MapFileAndCheckSum MapViewOfFile
MapViewOfFileEx MapVirtualKey MapWindowPoints MaskBlt MessageBeep MessageBox MessageBoxEx ModifyMenu
ModifyWorldTransform MoveFile MoveFileEx MoveToEx MoveWindow MsgWaitForMultipleObjects MulDiv MultiByteToWideChar
OemKeyScan OemToChar OemToCharBuff OffsetClipRgn OffsetRect OffsetRgn OffsetViewportOrgEx OffsetWindowOrgEx
OpenBackupEventLog OpenClipboard OpenEvent OpenEventLog OpenFile OpenFileMapping OpenIcon OpenMutex OpenPrinter
OpenProcess OpenSCManager OpenSemaphore OpenService OutputDebugString PackDDElParam PaintRgn PatBlt PathToRegion
PeekConsoleInput PeekMessage PeekNamedPipe Pie PlayEnhMetaFile PlayEnhMetaFileRecord PlayMetaFile PlayMetaFileRecord
PlgBlt PolyBezier PolyBezierTo PolyDraw Polygon Polyline PolylineTo PolyPolygon PolyPolyline PolyTextOut PostMessage
PostQuitMessage PostThreadMessage PrepareTape PrintDlg PrinterProperties PtInRect PtInRegion PtVisible PulseEvent
PurgeComm QueryDosDevice QueryPerformanceCounter QueryPerformanceFrequency QueryServiceConfig
QueryServiceLockStatus QueryServiceStatus RaiseException ReadConsole ReadConsoleInput ReadConsoleOutput
ReadConsoleOutputAttribute ReadConsoleOutputCharacter ReadEventLog ReadFile ReadFileEx ReadPrinter ReadProcessMemory
RealizePalette Rectangle RectInRegion RectVisible RedrawWindow RegCloseKey RegConnectRegistry RegCreateKey
RegCreateKeyEx RegDeleteKey RegDeleteValue RegEnumKey RegEnumKeyEx RegEnumValue RegFlushKey RegisterClass
RegisterClipboardFormat RegisterEventSource RegisterHotKey RegisterServiceCtrlHandler RegisterWindowMessage RegLoadKey
RegNotifyChangeKeyValue RegOpenKey RegOpenKeyEx RegQueryInfoKey RegQueryValue RegQueryValueEx RegReplaceKey
RegRestoreKey RegSaveKey RegSetValue RegSetValueEx RegUnLoadKey ReleaseCapture ReleaseDC ReleaseMutex
ReleaseSemaphore RemoveDirectory RemoveFontResource RemoveMenu RemoveProp ReplaceText ReplyMessage ReportEvent
ResetDC ResetEvent ResizePalette RestoreDC ResumeThread ReuseDDElParam RoundRect

18:03:28

57

WINDOWS API (S-Z)


SaveDC ScaleViewportExtEx ScaleWindowExtEx ScheduleJob ScreenToClient ScrollConsoleScreenBuffer ScrollDC ScrollWindow
ScrollWindowEx SearchPath SelectClipPath SelectClipRgn SelectObject SelectPalette SendDlgItemMessage SendMessage
SendMessageCallback SendMessageTimeout SendNotifyMessage SetAbortProc SetActiveWindow SetArcDirection SetBitmapBits
SetBitmapDimensionEx SetBkColor SetBkMode SetBoundsRect SetBrushOrgEx SetCapture SetCaretBlinkTime SetCaretPos
SetClassLong SetClassWord SetClipboardData SetClipboardViewer SetColorAdjustment SetCommBreak SetCommMask
SetCommState SetCommTimeouts SetComputerName SetConsoleActiveScreenBuffer SetConsoleCP SetConsoleCtrlHandler
SetConsoleCursorInfo SetConsoleCursorPosition SetConsoleMode SetConsoleOutputCP SetConsoleScreenBufferSize
SetConsoleTextAttribute SetConsoleTitle SetConsoleWindowInfo SetCurrentDirectory SetCursor SetCursorPos SetDIBits
SetDIBitsToDevice SetDlgItemInt SetDlgItemText SetDoubleClickTime SetEndOfFile SetEnhMetaFileBits SetEnvironmentVariable
SetErrorMode SetEvent SetFileApisToOEM SetFileAttributes SetFilePointer SetFileTime SetFocus SetForegroundWindow SetForm
SetGraphicsMode SetHandleCount SetJob SetKeyboardState SetLastError SetLastErrorEx SetLocalTime SetMailslotInfo
SetMapMode SetMapperFlags SetMenu SetMenuItemBitmaps SetMetaFileBitsEx SetMetaRgn SetMiterLimit
SetNamedPipeHandleState SetPaletteEntries SetParent SetPixel SetPixelV SetPolyFillMode SetPrinter SetPrinterData
SetPriorityClass SetProcessShutdownParameters SetProp SetRect SetRectEmpty SetRectRgn SetROP2 SetScrollPos
SetScrollRange SetServiceStatus SetStdHandle SetStretchBltMode SetSysColors SetSystemPaletteUse SetSystemTime
SetTapeParameters SetTapePosition SetTextAlign SetTextCharacterExtra SetTextColor SetTextJustification SetThreadContext
SetThreadLocale SetThreadPriority SetTimer SetTimeZoneInformation SetupComm SetViewportExtEx SetViewportOrgEx
SetVolumeLabel SetWindowExtEx SetWindowLong SetWindowOrgEx SetWindowPlacement SetWindowPos SetWindowsHookEx
SetWindowText SetWinMetaFileBits SetWorldTransform ShowCaret ShowCursor ShowOwnedPopups ShowScrollBar ShowWindow
SizeofResource Sleep SleepEx StartDoc StartDocPrinter StartPage StartPagePrinter StartService StartServiceCtrlDispatcher
StretchBlt StretchDIBits StrokeAndFillPath StrokePath SuspendThread SwapMouseButton SystemParametersInfo
SystemTimeToFileTime TabbedTextOut TerminateProcess TerminateThread TextOut TlsAlloc TlsFree TlsGetValue TlsSetValue
ToAscii ToUnicode TrackPopupMenu TransactNamedPipe TranslateAccelerator TranslateMDISysAccel TranslateMessage
TransmitCommChar UnhandledExceptionFilter UnhookWindowsHookEx UnionRect UnloadKeyboardLayout UnlockFile UnlockFileEx
UnlockServiceDatabase UnmapViewOfFile UnpackDDElParam UnrealizeObject UnregisterClass UnregisterHotKey UpdateColors
UpdateResource UpdateWindow ValidateRect ValidateRgn VerFindFile VerInstallFile VerLanguageName VerQueryValue VirtualAlloc
VirtualFree VirtualLock VirtualProtect VirtualProtectEx VirtualQuery VirtualQueryEx VirtualUnlock VkKeyScan WaitCommEvent
WaitForDebugEvent WaitForInputIdle WaitForMultipleObjects WaitForMultipleObjectsEx WaitForSingleObject WaitForSingleObjectEx
WaitMessage WaitNamedPipe WideCharToMultiByte WidenPath WindowFromDC WindowFromPoint WinExec WriteConsole
WriteConsoleInput WriteConsoleOutput WriteConsoleOutputAttribute WriteConsoleOutputCharacter WriteFile WriteFileEx
WritePrinter WritePrivateProfileSection WritePrivateProfileString WritePrivateProfileStruct WriteProcessMemory WriteProfileSection
WriteProfileString WriteTapemark wsprintf wvsprintf

18:03:28

58

PRIMJER WIN32 API


#include <windows.h>
const char g_szClassName[] = "myWindowClass";
// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam,
LPARAM lParam)
{ switch(msg) {
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0); break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}

18:03:28

59

.NET i JAVA API

Standardizovani skup funkcija namijenjen


programerima u programskim jezicima
visokog nivoa
Java: multiplatformski, namijenjena
uglavnom za jedan jezik
.NET API namijenjen za vie jezika, ali
uglavnom za varijante Windows platforme

18:03:28

60

You might also like