Operating Systems Internals and Design Principles William Stallings

  • Slides: 39
Download presentation
Operating Systems: Internals and Design Principles, William Stallings Poglavlje 1: Pregled arhitekture računarskog sistema

Operating Systems: Internals and Design Principles, William Stallings Poglavlje 1: Pregled arhitekture računarskog sistema Patricia Roy Manatee Community College, Venice, FL © 2008, Prentice Hall

Mikroprocesor • Hardverska revolucija – izum mikroprocesora, koji sadrži procesor na jedinstvenom čipu •

Mikroprocesor • Hardverska revolucija – izum mikroprocesora, koji sadrži procesor na jedinstvenom čipu • Velika brzina zahvaljujući fizici kojom se podaci kreću brzinom reda veličine dela nanosekunde • U najnovije vreme svaki čip može da sadrži i više procesora, od kojih svaki osim registara može da sadrži i više nivoa takozvane keš memorije.

Procesorski registar • Registar je mala memorijska jedinica koja je deo centralnog procesora (CPU).

Procesorski registar • Registar je mala memorijska jedinica koja je deo centralnog procesora (CPU). • Registrima se može pristupati znatno brže nego osnovnoj memoriji. Tok podataka • Podaci se učitavaju iz osnovne memorije u registre • Podaci se uzimaju iz registara radi obavljanja aritmetičkih operacija u aritmetičko logičkoj jedinici (ALU) • Izmenjeni podaci se smeštaju u registre • Podaci se iz registara smeštaju u glavnu memoriju

Osnovni delovi računara – Centralni procesor – Osnovna memorija • Nestalna – pri isljučenju

Osnovni delovi računara – Centralni procesor – Osnovna memorija • Nestalna – pri isljučenju računara nestaje – I/O Moduli • Sekundarni memorijski uređaji (disk) • Komunikacijski kanali (mreža) • Terminali (tastatura/monitor) – Magistrala podataka (bus) • Komunikacija između procesora, osnovne memorije, I/O modula

Izvršavanje programa • Program koji se izvršava na procesoru sastoji se od skupa instrukcija

Izvršavanje programa • Program koji se izvršava na procesoru sastoji se od skupa instrukcija koje se čuvaju u memoriji računara • Procesor preuzima 1 po 1 instrukciju i izvršava je • Preuzeta instrukcija se učitava u registar instrukcija (IR) – Instrukcija se sastoji od niza bitova kojima je kodirana instrukcija • Procesor izvršava akciju koju instrukcija označava • Program counter registar (PC) koji čuva memorijsku adresu sledeće instrukcije se povećava posle preuzimanja instrukcije (najčešće za 1, osim ukoliko sama instrukcija ne označi drugačije)

Primer programa • Primer jednostavnog programa je sabiranje dva broja: „ Podatak na memorijskoj

Primer programa • Primer jednostavnog programa je sabiranje dva broja: „ Podatak na memorijskoj lokaciji 100, saberi sa podatkom na memorijskoj lokaciji 200. Rezultat upiši na memorijsku lokaciju 300. “ • Za razliku od programa za sabiranje dva broja napisanog u višem programskom jeziku, ovde se navodi veći broj instrukcija, koje između ostalog sadrže tačne adrese memorijskih lokacija na kojima se nalaze operandi (parametri – brojevi koji se sabiraju), kao i adresu memorijske lokacije na kojoj se nalazi rezultat. • Program u višem programskom jeziku se prevodi (kompajlira) na jezik procesora.

Vrste akcija koje procesor može izvršiti • Procesor ↔ memorija – Transfer podatka iz

Vrste akcija koje procesor može izvršiti • Procesor ↔ memorija – Transfer podatka iz registra u memoriju • Procesor ↔ I/O uređaj – Transfer podatka iz registra ka spoljnom I/O uređaju – Pri tome se koriste I/O moduli • Procesiranje (obrada) podataka – Aritmetička ili logička operacija na podacima • Kontrola – Instrukcija može označavati da treba promeniti uobičajeni sekvencijalni tok izvršavanja programa – U ovom slučaju se promeni vrednost program counter registra – U narednom ciklusu izvršavanja instrukcije umesto na prvu sledeću, prelazi se na neku instrukciju koja se nalazi na nekom drugom mestu u memoriji

Osnovni ciklus izvršavanja instrukcija na procesoru Dva koraka: • Procesor preuzima instrukciju iz memorije

Osnovni ciklus izvršavanja instrukcija na procesoru Dva koraka: • Procesor preuzima instrukciju iz memorije • Procesor izvršava instrukciju

Prekidi (interrupts) • Menjaju osnovni ciklus izvršavanja instrukcija na procesoru • Uloga im je

Prekidi (interrupts) • Menjaju osnovni ciklus izvršavanja instrukcija na procesoru • Uloga im je da povećaju iskorišćenost procesora • Većina I/O uređaja je sporija od procesora – Procesor mora da čeka dok se vrši I/O operacija na uređaju – Ovo važi čak i za prenos podataka u sekundarnu memoriju (disk), a ekstremni slučaj bi bilo printanje podataka – Dužina pauze može biti i u milionima instrukcijskih ciklusa

Vrste prekida

Vrste prekida

Primer: slika procesora Zaokružen je tajmer (kristal) na procesoru

Primer: slika procesora Zaokružen je tajmer (kristal) na procesoru

Obrada prekida • Prekidi omogućuju da procesor tokom izvršavanja neke I/O operacije može nastaviti

Obrada prekida • Prekidi omogućuju da procesor tokom izvršavanja neke I/O operacije može nastaviti izvršavanje drugih instrukcija • Kada se pojavi zahtev za prekid, procesor prekida (suspenduje) izvršavanje korisničkog programa i prelazi na program za obradu prekida • Kada se prekid obradi, procesor nastavlja izvršavanje korisničkog programa od trenutka u kome je bio suspendovan • Korisnički program ne vodi računa o prekidima • Procesor i operativni sistem (OS) vode računa o tome kako da suspenduju korisnički program, pređu na izvršavanje rutine za obradu prekida, a potom nastave izvršavanje prethodno suspendovanog korisničkog programa

Izvršavanje prekida

Izvršavanje prekida

Ciklus izvršavanja instrukcija na procesoru sa prekidima

Ciklus izvršavanja instrukcija na procesoru sa prekidima

Obrada prekida • Tokom izvršavanja nekog programa na procesoru, obrada prekida može biti dozvoljena

Obrada prekida • Tokom izvršavanja nekog programa na procesoru, obrada prekida može biti dozvoljena ili zabranjena • Ukoliko je dozvoljena, posle obrade bilo koje instrukcije, procesor proverava da li je došlo do prekida (neki uređaj uputio zahtev za prekidom, ili neka druga vrsta prekida se dogodila) • Ako nema signala koji označava zahtev za prekidom, procesor preuzima sledeću instrukciju • Ako ima signala koji označava zahtev za prekidom, procesor suspenduje program i prelazi na izvršavanje rutine za obradu prekida – Rutina za obradu prekida podrazumeva preuzimanje i izvršavanje instrukcija koje čine rutinu za obradu prekida

Sekvencijalna / Ugnježdena obrada prekida • Više zahteva za prekid mogu stići istovremeno (pre

Sekvencijalna / Ugnježdena obrada prekida • Više zahteva za prekid mogu stići istovremeno (pre završetka obrade prethodnog prekida stiže novi prekid) • Tokom obrade jednog prekida može biti zabranjena obrada prekida (sekvencijalna obrada prekida), ili može biti dozvoljena (ugnježdena obrada prekida).

Sekvencijalna obrada prekida

Sekvencijalna obrada prekida

Ugnježdena obrada prekida

Ugnježdena obrada prekida

Multiprogramiranje • Procesor može imati više programa koje treba da izvršava paralelno (izvršava malo

Multiprogramiranje • Procesor može imati više programa koje treba da izvršava paralelno (izvršava malo jedan, malo drugi program) • Programi mogu imati prioritet • Koji se program izvršava može zavisiti i od toga da li drugi programi čekaju na I/O operaciju • Usled ovoga, posle završetka obrade prekida, može se desiti da se izvršavanje programa ne nastavi odmah od onog programa koji je bio prekinut kada se prekid dogodio, već od nekog koji ima veći prioritet • Naravno, u nekom trenutku nastaviće se i izvršavanje programa koji je bio prekinut zahtevom za prekid • Dakle, više programa mogu da budu suspendovani istovremeno, a koji će sledeći nastaviti izvršavanje zavisi od više faktora

Memorija • Fizička jedinica: BIT • Procesorska jedinica: Reč (WORD) – Bajt: 8 bita

Memorija • Fizička jedinica: BIT • Procesorska jedinica: Reč (WORD) – Bajt: 8 bita – Word: 16, 32, 64 bita • Svaka memorijska lokacija ima jedinstvenu adresu • Ako je dužina reči N, onda ima 2 N adresabilnih memorijskih lokacija

Vrste memorije (tehnologija) Postoje različite vrste memorije koje mogu biti ugrađene u računarski sistem.

Vrste memorije (tehnologija) Postoje različite vrste memorije koje mogu biti ugrađene u računarski sistem. Tri pitanja vezana za odluku o tome koje će se vrste memorije koristiti : 1. Koliko memorije? 2. Koliko brzu memoriju? 3. Koliko skupu memoriju? • Brzina memorije treba da bude uporediva sa brzinom procesora • Cena memorije treba da bude u skladu sa ostalim komponentama sistema

Odnos cene, brzine i kapaciteta • Veća brzina pristupa → veća cena po bitu

Odnos cene, brzine i kapaciteta • Veća brzina pristupa → veća cena po bitu • Veći kapacitet → manja brzina pristupa

Hijerarhija memorije • U cilju maksimizovanja performansi sistema, koristi se više vrsta memorije u

Hijerarhija memorije • U cilju maksimizovanja performansi sistema, koristi se više vrsta memorije u istom računarskom sistemu • Tipična hijerarhija memorije je takva da se na piramidi posmatrano prema dole dešava sledeće: 1. Smanjuje se cena po bitu 2. Povećava se kapacitet 3. Smanjuje se brzina pristupa 4. Smanjuje se učestalost pristupa memoriji od strane procesora

Hijerarhija memorije

Hijerarhija memorije

Stabilna i nestabilna memorija Nestabilna radna memorija • Registri, cash i osnovna memorija •

Stabilna i nestabilna memorija Nestabilna radna memorija • Registri, cash i osnovna memorija • Nestaje / podaci se brišu pri isklučenju računarskog sistema Stabilna memorija • Sekundarna / spoljna memorija • Trajno postoji • Tu se čuvaju podaci i fajlovi • Hard disk, kompakt diskovi, trake, optički diskovi

Cache Memorija • Mnogo brži transfer podataka između cashe memorije i procesora nego između

Cache Memorija • Mnogo brži transfer podataka između cashe memorije i procesora nego između osnovne memorije i procesora • Da bi se iskoristila cashe memorija, koristi se princip lokaliteta reference

Principi rada cashe memorije • Sadrži kopiju dela osnovne memorije • Podeljena je na

Principi rada cashe memorije • Sadrži kopiju dela osnovne memorije • Podeljena je na memorijske blokove – sekvencijalne delove memorije • Procesor prvo proverava da li je memorijska adresa koja je potrebna za izvršavanje instrukcije već u cashe memoriji • Ako podatak nije u cashe memoriji, ne uzima se samo traženi podatak, već čitav blok memorije koji sadrži i taj traženi podatak i prebacuje se u cashe memoriju • Velika je verovatnoća da će podatak koji sledeća programska instrukcija bude tražila biti u istom bloku (princip koji se zove „lokalitet reference“)

Lokalitet reference • Tokom izvršavanja programa, memorijske lokacije koje procesor referencira (iz kojih se

Lokalitet reference • Tokom izvršavanja programa, memorijske lokacije koje procesor referencira (iz kojih se traže podaci) imaju tendenciju da se nalaze u klasterima (blizu jedni do drugih) • Ovo važi i za instrukcije, i za podatke • Tokom dužeg vremenskog perioda, ovi klasteri se menjaju, ali tokom kraćeg, procesor pretežno radi sa jednim istim klasterom

Korišćenje principa lokaliteta reference • Više nivoa cache memorije • Registri – najbrži, najmanji,

Korišćenje principa lokaliteta reference • Više nivoa cache memorije • Registri – najbrži, najmanji, najskuplji – Procesor ih obično ima nekoliko desetina • Cache memorija – Nije vidljiva programeru, ni procesoru – Program je „vidi“ kao deo osnovne memorije

Cache and Main Memory

Cache and Main Memory

Struktura cache u odnosu na osnovnu-memoriju

Struktura cache u odnosu na osnovnu-memoriju

Veličina cache memorije • Ukupna veličina cache memorije – Zbog lokaliteta reference, čak i

Veličina cache memorije • Ukupna veličina cache memorije – Zbog lokaliteta reference, čak i male količine cache memorije imaju veliki uticaj na performansu sistema • Veličina bloka cache memorije – Blok je jedinica količine memorije koja se prenosi između cache i osnovne memorije – Ako je blok veći, ređa će biti potreba za učitanjem novog bloka iz osnovne memorije

Više nivoa cache memorije • • Level 1, 2, 3 cache memorije (L 1,

Više nivoa cache memorije • • Level 1, 2, 3 cache memorije (L 1, L 2, L 3) L 1 – najmanja i najbrža L 2 – veća i sporija od L 1 L 3 – veća i sporija od L 2

Zamena blokova u cache memoriji • Kada je cache memorija puna, a traženi podatak

Zamena blokova u cache memoriji • Kada je cache memorija puna, a traženi podatak nije u njoj, neki od postojećih blokova se briše, a umesto njega se iz osnovne memorije prebacuje blok koji sadrži traženi podatak • Algoritam za pronalaženje bloka koji je najpogodnije izbaciti iz cache memorije i zameniti novim blokom

Napredna tehnologija – Posebne vrste procesora • Grafička procesorska jedinica (GPU) – Efikasne računske

Napredna tehnologija – Posebne vrste procesora • Grafička procesorska jedinica (GPU) – Efikasne računske operacije na nizovima podataka koristeći algoritamske tehnike „ 1 instrukcija – više podataka“ – Prikazivanje kompleksne grafike – Simulacije (fizika i proračuni) u kompjuterskim igrama i animacijama • Procesori digitalnog signala (DSP) – Streaming digitalni signal (audio i video) – Ugradjeni u I/O uređaje kao što su modemi – Ugrađeni u prenosive računare (PDA) • Drugi specijalizovani procesorski uređaji – Ko-egzistiraju sa CPU – Npr. kodiranje i dekodiranje govora i video signala

Napredna tehnologija – Sistemi na čipu • Najnovija tehnologija u mobilnim uređajima • Pored

Napredna tehnologija – Sistemi na čipu • Najnovija tehnologija u mobilnim uređajima • Pored CPU i keš memorije na istom čipu je i DSP, GSP, radio, osnovna memorija

Napredna tehnologija – simetrični multiprocesori • Dva ili više procesora sličnih karakteristika u jednom

Napredna tehnologija – simetrični multiprocesori • Dva ili više procesora sličnih karakteristika u jednom računarskom sistemu, svaki na svom silikonskom čipu • Dele osnovnu memoriju i I/O uređaje • Svi procesori mogu da obavljaju sve funkcije • Računarski sistem kontroliše jedan integrisani operativni sistem koji omogućuje interakciju između procesora i programa

Napredna tehnologija – multi-core computers • Kombinuje se dva ili više procesora (svaki se

Napredna tehnologija – multi-core computers • Kombinuje se dva ili više procesora (svaki se zove „core“) na istom silikonskom čipu • Ne koristi se bus • Što veća količina cache memorije ugražuje se na čip • Brža komunikacija – protok podataka među procesorima