Operating Systems Internals and Design Principles William Stallings
- Slides: 39
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 • 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). • 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 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 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 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 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 • Procesor izvršava instrukciju
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
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 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
Ciklus izvršavanja instrukcija na procesoru sa prekidima
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 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
Ugnježdena obrada prekida
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 – 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. 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 • Veći kapacitet → manja brzina pristupa
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
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 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 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 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, 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
Struktura cache u odnosu na osnovnu-memoriju
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, 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 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 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 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 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 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
- Operating system internals and design principles
- Slidetodoc.com
- Operating systems: internals and design principles
- Operating systems: internals and design principles
- Operating systems: internals and design principles
- Operating systems internals and design principles
- Operating systems internals and design principles
- Operating system internals and design principles
- Computer organization and architecture william stallings
- Simplified data communication model
- William stallings network security essentials 5th edition
- Network security essentials william stallings ppt
- William stallings computer networks
- William stallings
- Congruence relation
- Stallings william comunicaciones y redes de computadores
- Cryptography william stallings
- William stallings computer networks
- Design principles of linux
- Unix design principles
- Design issues of distributed system
- Stallings garbage pickup
- Stallings garbage pickup
- Ovid metamorphoses apollo and daphne
- Metodo stallings
- Least cost routing algorithm
- Principles of complex systems for systems engineering
- Sql server internals and architecture
- Zfs internals
- Unix internals
- Linux kernel internals
- Jvm internals
- Spark internals
- Mfc internals
- Windows kernel internals
- Azure internals
- Windows internals tutorial
- Mfc internals
- Mfc hierarchy chart
- Windows system internals