35
Računarstvo računarstvo (vs. informatika) algoritamski procesi opisuju i transformišu informaciju teorija, analiza, projektovanje, efikasnost, implementacija, primene u nauci, tehnici, svakodnevici (digitalni) računar: programabilna elektronska (matematička) mašina koja svodi svaki zadatak na niz elementarnih (matematičkih) operacija nad brojevima Oblici? metode: teorija, projektovanje, eksperiment matematika, tehnika, prirodne nauke nauka / tehnologija (D. Knuth, R. Hoare, E. Dijkstra, N. Wirth...) 1

Racunarstvo i programiranje

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Računarstvo računarstvo (vs. informatika)

algoritamski procesi opisuju i transformišu informaciju teorija, analiza, projektovanje, efikasnost, implementacija, primene

u nauci, tehnici, svakodnevici

(digitalni) računar: programabilna elektronska (matematička)mašina koja svodi svaki zadatak na niz elementarnih (matematičkih)operacija nad brojevima

Oblici?

metode: teorija, projektovanje, eksperiment matematika, tehnika, prirodne nauke

nauka / tehnologija (D. Knuth, R. Hoare, E. Dijkstra, N. Wirth...)

1

Podoblasti računarstva (ACM –Association for Computing Machinery)

1. hardver

2. organizacija računarskih sistema arhitekture

serijska, paralelna, distribuirana - u oblaku, klijent / server

... 3. mreže

mrežne arhitekture, protokoli, algoritmi za mrežnu komunikaciju ...

4. softver i softversko inženjerstvo operativni sistemi, programski jezici, kompilatori, verifikacija

i validacija softvera...

2

Podoblasti računarstva (nast.) 5. teorija izračunavanja

modeli izračunavanja formalni jezici i teorija automata logika analiza i razvoj algoritama, ...

6. matematika izračunavanja diskretna matematika verovatnoća i statistika, ...

3

Podoblasti računarstva (nast.) 7. informacioni sistemi

upravljanje bazama podataka primene informacionih sistema www Pretraživanje informacija

8. bezbednost i privatnost kriptografija formalne metode bezbednost sistema, baza podataka, mreža, softvera, ...

4

Podoblasti računarstva (nast.) 9. Izračunavanje orijentisano ka čoveku

Interakcija čovek – računarUređaji, tehnike, paradigme, vizualizacija, ...

10. metodologije izračunavanja … veštačka inteligencija (i obrada prirodnog jezika) mašinsko učenje računarska grafika, obrada slike, simulacija i modeliranje, ...

5

Podoblasti računarstva (nast.) 11. primene računarstva

e-trgovina fizičke nauke i inženjerstvo, biološke i medicinske nauke

bioinformatika, biomedicina pravo i društvene nauke računarska forenzika umetnost i jezik...

6

Podoblasti računarstva (nast.) 12 društvene i profesionalne teme

računarska industrija upravljanje (projektima, ...) obrazovanje u računarstvu pravni aspekti računarstva... kodeksi dobre prakse i etika, intelektualna svojina, ...

7

Programiranje

Komponenta računarstva Aktivnost izrade programa za elektronsku računsku mašinu Programiranje: veština i nauka Nauka: metode razvoja programa sa unapred poznatim

ponašanjem Izvođenje programa uz dokaz korektnosti Ponašanje programa izvodi se iz teksta programa – bez

testiranja Programski sistemi sa kritičnom bezbednošću

8

Programiranje (nast.) Primer (R.Sethie: Programming Languages – Concepts and

Constructs) jula 1962.g. raketa sa Venerinom sondom bez posade, Mariner I uništena 290 sekundi posle lansiranja gubitak: 18-20 miliona US$ uzrok: greška u programskom fragmentu

if not (raketa u kontaktu sa radarom) thenkorigovati putanju leta

korišćen prethodno u četiri lansiranja na Mesec tri stotine nezavisnih testiranja

9

Programiranje (nast.) Primer (R.Sethie: Programming Languages – Concepts and

Constructs) jula 1962.g. raketa sa Venerinom sondom bez posade, Mariner I uništena 290 sekundi posle lansiranja gubitak: 18-20 miliona US$ uzrok: greška u programskom fragmentu

if not (raketa u kontaktu sa radarom) thenne korigovati putanju leta

korišćen prethodno u četiri lansiranja na Mesec tri stotine nezavisnih testiranja

10

Izbor programskog jezika

Pomaže da se napiše dobar program lako čita lako razume lako modifikuje

11

Računari – mehaničke naprave 1600-te: V. Outred, sveštenik: klizajući lenjir „šiber“, logaritmar

– kontinualna računaljka

1642.g. B.Paskal: “Paskalina” sabira i oduzima: digitalnikalkulator, rad sa brojevima

1670.g G.Lajbnic “Paskalina” množi i deli – ideja

12

Računari – mehaničke naprave

1820.g. Č.Bebidž “Diferencijska mašina”: dijagrami kvadrata i kubova brojeva (1991.g. Londonski muzej);3 tone, 2x4m, 4000 delova

1830.g. Č Bebidž: analitička mašina – projekat; sličan današnjim računarima; Augusta Ada Bajron – bušene kartice, program; smatra se prvim programerom!

(Žozef Mari Žakar, automatski razboj, početak 19. veka) Diferencijska mašina

13

Računari – elektromehaničke naprave 1930-40. H.Aiken (Harvard) programabilni računar Mark I:

program (papirna traka), ulaz(bušene kartice), smeštanje rezultata (elekromehanički prekidači); 17x2.5m, 750000 delova, 800km žice, 3 miliona električnih

spojeva; čitava zgrada 1944. završen; buba u releju;

14

Elektronski računari

SAD, Nemačka, Velika Britanija

ABC (Atanasoff-Berry Computer), SAD – sistem lin. j-na, osmišljena pre II sv. rata, 1939.

1941, Nemačka, Konrad Zuse (Cuze), Z3 programabilniračunar – projekat; elektromehanički realizovan

1943, Blečli Park, V. Britanija, Colosus, A. Tjuring(dešifrovanje šifara Enigme); 1800 cevi – aritmetika –delimično programabilan

15

Elektronski računari

1943. američka vojska: ENIAC (“The Electronic Numerical Integrator and Calculator”);

Eckert, Mauchly; 1946. završen; 1700 cevi, 30 tona, 30x3m – računao trajektorije u sekundama – specijalna namena; “programiranje” lemljenjem i prespajanjem kablova

EDVAC – programabilan (projekat);

John von Neumann – 1945-47; arhitektura elektronskog programabilnog računara

1949. EDSAC M. Wilkis – realizacija programabilnog računara 1949. UNIVAC Eckert, Maucly – projekat komercijalnog

računara; 1951. proizveden16

Fon-Nojmanova arhitektura Elementarni fizički objekat – ćelija: 0 / 1 Registar: niz ćelija fiksne dužine Struktura mašine:

CPU (procesor) Upravljačka jedinica Aritmetička jedinica

+ AK, R

Memorija: Program Podaci 4096 registara, adrese Registar: 40 bita

1 ceo 40-bitni broj 2 instrukcije

Ulazno/izlazni sistem Program: mašinski jezik

17

Fon-Nojmanova arhitektura

18

Generacije savremenih elektronskih računara

I generacija (kraj 30-tih do kraj 50-tih) elektronske cevi magnetni doboši bušene kartice mašinski i simbolički jezik vojska, nauka

19

Generacije savremenih elektronskih računara II generacija (kraj 50-tih do sredina 60-tih)

tranzistori Od 1954 – silicijum umesto germanijuma Magnetni diskovi i trake FORTRAN: John Backus, 1957

blizak matematičkoj notaciji efikasno prevođenje na mašinski jezik

LISP, 1958, McCarthy, rad sa listama; COBOL Prenosivost programa, čitljivost Novi korisnici, umrežavanje IBM

20

Generacije savremenih elektronskih računara III generacija (sredina 60-tih do sredina 70-tih)

Integrisana kola – silicijumski čip (mikročip) Poslovna primena Mejnfrejm računari, IBM Mini-računari, DEC – PDP, VAX memorija - silicijumski čip Telekomunikacioni sateliti Operativni sistemi – Unix 1972, Kovalski: Prolog – neproceduralan Algol 60 (60-tih g, J.Backus, P. Naur)

Algol W (1966, Wirth): poboljšano struktuiranje podataka Pascal (1971): dalja poboljšanja Modula 2 (1983): koncept modula (Wirth) Oberon (1988): Wirth

21

Generacije savremenih elektronskih računara

CPL (Strachy 1966) – Combined Programming Language: nije u potpunosti implementiran; uvodi koncepte

BCPL (Richards 1969): Basic CPL – za pisanje kompilatora

C 1972 – Dennis Ritchie – implementacioni jezik za softver vezan za operativni sistem UNIX (1973. prepisan u C)

1977 usavršen sistem tipova C-a

22

Generacije savremenih elektronskih računara IV generacija (sredina 70.tih – danas)

LSI, VLSI – visoko integrisana kola Mikroprocesor: memorija, logika i kontrolna kola 1971. prvi mikroprocesor Intel 4004 Personalni računari, npr. IBM PC, Apple Macintosh Poslovna i lična upotreba Operativni sistemi Microsoft – MS DOS, MS Windows / Mc

OS X Jezici IV generacije – 4GL - specijalne namene - za rad sa

bazama podataka, raširenim tabelama, obradu teksta Internet – teleizračunavanje; web; Google, Yahoo!; Tehnološka konvergencija – pametni telefoni, tableti

23

Generacije savremenih elektronskih računara

Povećanje brzine Smanjenje napona i potrošnje struje Smanjenje zagrevanja Smanjenje površine kola

24

Struktura savremenog računarskog sistema

Hardver Softver

25

Hardver Hardver: opipljive, fizičke komponente računara

Uređaji hardvera:

procesor (CPU): obrada podataka skladište podataka i programa: operativna memorija periferni uređaji:

ulazno/izlazni uređaji spoljašnja memorija

komunikacioni kanali: magistrale

26

CPU Obrada podataka Poluprovodnički (mikroprocesorski) čip; Murov zakon 1965.

(Gordon Mur, Intel: 4.3 milijarde tranzistora na čipu 2014.g.) Obradna jedinica: skup instrukcija Upravljačka jedinica

Dekoder operacije Instrukcije skoka, zaustavljenje

Registri opšte namene Širine 8, 16, 32, 64 bita

Registri specijalne namene Brzina: MIPS / FLOPS (10TFlops – 1012Flops - u 2014.) Arhitektura procesora Više jezgara (2, 4)

Intel (serija ’86’ – 8086, 80286, 80386, 80486, Pentium, (II, III, IV),Intel Core, Core i3, i5, i7, Xeon, Intel Atom; Motorola (serija 68000), IBM (RISC)

27

Memorija Poluprovodnički čip Kratkotrajna

Programi operativnog sistema Programi koji se trenutno izvršavaju Potrebni podaci

Bajt = 8 bita; adresa Registar = niz bajtova (2, 4, 8); adresa Jedinica:1KB=1024B, 1MB=1024KB, 1GB=1024MB,

1TB=1024GB (peta, exa, zetta, yotta – multiplikator 210=1024 ≈1000=103 ; kibi, mebi, gibi, tebi, pebi…)

RAM ROM Varijante...

28

Memorijska hijerarhija Kapacitet, vreme pristupa:

Registri procesora Keš RAM ROM/BIOS USB diskovi Hard diskovi CD, DVD, Blu-ray, magnetne trake

29

Periferni uređaji Ulaz

uz učešće čoveka – miš, tastatura, džojstik bez učešća čoveka - senzor

Primer: tastatura Upis u memoriju Izdavanje na ekran

Izlaz: ekran, štampač, mikrofilm, glas Npr. ekran: grafička kartica

Spoljašnja memorija magnetni disk, pokretni disk, CD ROM, CD R, CD RW, FD

(fleš disk), DVD (Digital Video Disk), memorijske kartice Sadržaj: spoljašnje datoteke; ekstenzije ukazuju na sadržaj

30

Komunikacini kanali

Magistrala: širina Magistrala adresa (20-64-bitne) Magistrala podataka (8-64-bitne)

“64-bitni procesor” Kontrolna magistrala

KONFIGURACIJA: osnovna karakteristika računarskog sistema

31

Softver

Softver: računarski programi i prateći podaci koji određuju izračunavanja koja vrši računar.

Aplikativni softver / Sistemski softver Aplikativni softver: korisnik neposredno koristi, npr.

Pregledač veba, klijenti elektronske pošte Multimedijalni softver - programi za reprodukciju i obradu

slika, zvuka i video sadržaja Kancelarijski softver Video igre

32

Softver Sistemski softver – kontroliše hardver i pruža usluge

aplikativnom softveru

Operativni sistemi Jezgro:

Dodeljivanje sistemskih resursa (npr. procesora i memorije) Kontrola hardvera Nadgledanje sistemskih aktivnosti Sinhronizacija programa

Korisnički interfejs Razni režimi rada

Serijski, rad u razdeljenom vremenu, itd MS Windows (Vista, 2000, XP, Windows 7, 8, 10), OS/2;

z/OS; UNIX - Android, BSD, iOS, Linux, Mac OS X

33

Softver Sistemski softver – kontroliše hardver i pruža usluge

aplikativnom softveru

Jezički procesori Asembleri Kompilatori Interpreteri

Uslužni programi (antivirus, štediša ekrana, drajveri, tekst editori...)

34

Funkcionisanje računarskog sistema Program na programskom jeziku Prevođenje Povezivanje sa drugim programskim celinama Donošenje u operativnu memoriju Izvršavanje: instrukcija po instrukcija

Sekvencijalna, serijska obrada Mašinski ciklus

1. faza: dekodiranje instrukcije i usmeravanje u procesorske registre (reg. adresa, reg. instrukcija)

2. faza: donose se podaci u registre podataka, ALJ izvršava operaciju, rezultat privremeno smešta u AK

Sledeća instrukcija, do instrukcije završetka Paralelna obrada

35