Top Banner
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
35

Racunarstvo i programiranje

Feb 12, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Racunarstvo i programiranje

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

Page 2: Racunarstvo i programiranje

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

Page 3: Racunarstvo i programiranje

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

Page 4: Racunarstvo i programiranje

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

Page 5: Racunarstvo i programiranje

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

Page 6: Racunarstvo i programiranje

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

Page 7: Racunarstvo i programiranje

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

Page 8: Racunarstvo i programiranje

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

Page 9: Racunarstvo i programiranje

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

Page 10: Racunarstvo i programiranje

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

Page 11: Racunarstvo i programiranje

Izbor programskog jezika

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

11

Page 12: Racunarstvo i programiranje

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

Page 13: Racunarstvo i programiranje

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

Page 14: Racunarstvo i programiranje

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

Page 15: Racunarstvo i programiranje

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

Page 16: Racunarstvo i programiranje

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

Page 17: Racunarstvo i programiranje

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

Page 18: Racunarstvo i programiranje

Fon-Nojmanova arhitektura

18

Page 19: Racunarstvo i programiranje

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

Page 20: Racunarstvo i programiranje

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

Page 21: Racunarstvo i programiranje

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

Page 22: Racunarstvo i programiranje

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

Page 23: Racunarstvo i programiranje

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

Page 24: Racunarstvo i programiranje

Generacije savremenih elektronskih računara

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

24

Page 25: Racunarstvo i programiranje

Struktura savremenog računarskog sistema

Hardver Softver

25

Page 26: Racunarstvo i programiranje

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

Page 27: Racunarstvo i programiranje

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

Page 28: Racunarstvo i programiranje

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

Page 29: Racunarstvo i programiranje

Memorijska hijerarhija Kapacitet, vreme pristupa:

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

29

Page 30: Racunarstvo i programiranje

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

Page 31: Racunarstvo i programiranje

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

Page 32: Racunarstvo i programiranje

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

Page 33: Racunarstvo i programiranje

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

Page 34: Racunarstvo i programiranje

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

Page 35: Racunarstvo i programiranje

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