grundläggande datavetenskap, 4p

46
2004-12-17 ITM 1 Grundläggande datavetenskap, 4p Kapitel 1-9 Sammanfattning Sammanfattning Utgående från boken Computer Science av: J. Glenn

Upload: gazit

Post on 27-Jan-2016

51 views

Category:

Documents


1 download

DESCRIPTION

Grundläggande datavetenskap, 4p. Kapitel 1-9 Sammanfattning. Utgående från boken Computer Science av: J. Glenn Brookshear. Datalagring Bitar, minnen, talsystem, två-komplement, grindar, lagrings-enheter, datakommunikation Datamanipulation Maskinspråk, datorarkitektur, programexekvering - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Grundläggande datavetenskap, 4p

2004-12-17 ITM 1

Grundläggande datavetenskap, 4p

Kapitel 1-9

SammanfattningSammanfattning

Utgående från boken

Computer Scienceav: J. Glenn Brookshear

Page 2: Grundläggande datavetenskap, 4p

2004-12-17 ITM 2

Innehåll

• Datalagring– Bitar, minnen, talsystem, två-

komplement, grindar, lagrings-enheter, datakommunikation

• Datamanipulation– Maskinspråk, datorarkitektur,

programexekvering

• Operativsystem– Processer, tidsdelning,

multitasking, bootning, process-administration

• Nätverk och Internet– Topologier, WWW, nätverks-

protokoll, HTML, XML

• Algoritmer– Iteration, rekursion, effektivitet

• Programmeringsspråk– Procedurer, objektorientering,

objekt, klasser, C++

• Programvaruutveckling– Metoder, testning

• Dataabstraktioner– Fält (arrayer), listor, köer, objekt,

klasser, egendefinierade

• Databaser– Relationsdatabaser, SQL,

filstrukturer

Page 3: Grundläggande datavetenskap, 4p

2004-12-17 ITM 3

Kap. 1 - Datarepresentation

• Talsystem– Decimala, Binära, Hexadecimala

• Binär addition

• Två-komplement

• Grindar

Page 4: Grundläggande datavetenskap, 4p

2004-12-17 ITM 4

Hexadecimalt

• Hexa = 6, deci = 10

• Multipel av fyra bitar

• 00002 = 016=010

• 11112 = F16=1510

• 1010010011001000 = A4C8

b3 b2 b1 b0 H D

0 0 0 0 0 0

0 0 0 1 1 1

0 0 1 0 2 2

0 0 1 1 3 3

0 1 0 0 4 4

0 1 0 1 5 5

0 1 1 0 6 6

0 1 1 1 7 7

1 0 0 0 8 8

1 0 0 1 9 9

1 0 1 0 A 10

1 0 1 1 B 11

1 1 0 0 C 12

1 1 0 1 D 13

1 1 1 0 E 14

1 1 1 1 F 15

b3 b2 b1 b0 H D

0 0 0 0 0 0

0 0 0 1 1 1

0 0 1 0 2 2

0 0 1 1 3 3

0 1 0 0 4 4

0 1 0 1 5 5

0 1 1 0 6 6

0 1 1 1 7 7

1 0 0 0 8 8

1 0 0 1 9 9

1 0 1 0 A 10

1 0 1 1 B 11

1 1 0 0 C 12

1 1 0 1 D 13

1 1 1 0 E 14

1 1 1 1 F 15

Kap1

Page 5: Grundläggande datavetenskap, 4p

2004-12-17 ITM 5

Två-komplement• Ex: Skriv -5910 med 8 bitar.

5910 = 001110112

0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 +1 1 1 0 0 0 1 0 1

Positiva taletEtt-komplementetAddera 1Negativa svaret

Kap1

Page 6: Grundläggande datavetenskap, 4p

2004-12-17 ITM 6

Två-komplement forts.

• Addition med två-komplement– Antalet bitar hålls konstant– Overflow kan ske

7 + (-5) 7 + (-7) 5 + 4 0 1 0 1

+ 0 1 0 0 1 0 0 1

Overflow !!!

0 1 1 1 + 1 0 1 1 1 0 0 1 0

Ignorera

0 1 1 1 + 1 0 0 1 1 0 0 0 0

Ignorera

= 2 = 0 = -7

Kap1

Page 7: Grundläggande datavetenskap, 4p

2004-12-17 ITM 7

GrindarELLER, OCH, Exklusivt ELLER

=1A

BC

A B C

0 0 0

0 1 1

1 0 1

1 1 0

&A

BC

A B C

0 0 0

0 1 0

1 0 0

1 1 1

>A

BC

A B C

0 0 0

0 1 1

1 0 1

1 1 1

1

Kap1

Page 8: Grundläggande datavetenskap, 4p

2004-12-17 ITM 8

Kap. 2 - Datalagring

• Maskininstruktioner– Op-kod, operand

• Logiska operationer– AND, OR, XOR, SHIFT, ROTATE

• Datakommunikation– Datahastigheter

Page 9: Grundläggande datavetenskap, 4p

2004-12-17 ITM 9

Maskininstruktioner

• En maskininstruktion består av– Op-kod – generell del– Operand – specifik del– Ex: 0010 0111 0100 1111

2 7 4 F (Hex)

Op-kod Operand (SimpSim)

Kap2

Page 10: Grundläggande datavetenskap, 4p

2004-12-17 ITM 10

Maskininstruktioner forts.

• Exempel på instruktioner

Maskinkod Opkod Operand Assembler Betydelse

3155 3 155 store R,[XY]

store R1,[55]

Spara det som ligger i register 1 i minnescell 55h

5012 5 012 addi R,S,T

addi R0,R1,R2

Addera innehållen i register 1 och 2 (två-komplement) och lägg resultatet i register 0.

C000 C (000) halt Stoppa programmet

Översättning

Kap2

Page 11: Grundläggande datavetenskap, 4p

2004-12-17 ITM 11

Övning logiska operationer

• Utför följande logiska operationer:

• Vilken logisk operation har använts?

10101010

AND 11011000

10101010

OR 11011000

10101010

XOR 10101010

10001000 11111010 00000000

01111010

? 10010000

01111010

? 10010000

11100110

? 10101010

11101010 11111010 10100010

XOR OR AND

Kap2

Page 12: Grundläggande datavetenskap, 4p

2004-12-17 ITM 12

Datakommunikation

• Anta att en hårdisk rymmer 30 GB. Hur lång tid skulle det ta att fylla den med en överföringshastighet på 0.5 Mbps?

• 30·109 · 8 / 0.5 ·106 = 480.000 sekunder

= 5 dagar, 13 timmar och 20 minuter

Kap2

Page 13: Grundläggande datavetenskap, 4p

2004-12-17 ITM 13

Kap. 3 - Operativsystem

• Tidsdelning – Multitasking

• Processadministration

• Deadlock

Page 14: Grundläggande datavetenskap, 4p

2004-12-17 ITM 14

Utveckling av operativsystem

• Tidsdelning (time-sharing)– Flera program och användare kan dela på samma

processor.– Processerna får en liten tid var att exekvera innan nästa

står på tur.– För användarna ser det ut som om dom var ensamma

och dom kan interagera med sina processer.

• Multitasking– Tidsdelning för enanvändarsystem– Flerprocessordatorer

Kap3

Page 15: Grundläggande datavetenskap, 4p

2004-12-17 ITM 15

Time-sharing

• Anta att en dator har tidsdelning med tidluckor med längd 40 ms och att det normalt tar 8 ms att positionera läshuvudet över rätt spår samt ytterligare 15 ms att rotera skivat till rätt läge för läsning.– A: Hur stor andel av en tidlucka måste datorn vänta på

läsinstruktionen?– B: Om datorn kan utföra 10 instruktioner per s, hur många

instruktioner skulle kunna utföras under denna tid?

– A: (15+8) ms / 40 ms= 57.5 %– B: (15+8) ·10-3 s · 10·106 instruktioner/s = 230.000 instruktioner

Kap3

Page 16: Grundläggande datavetenskap, 4p

2004-12-17 ITM 16

Processadministration• Processtabell

– Hanteras av schemaläggaren– Processens minnesarea– Prioritet– Redo eller Väntar

• Tidlucka (time slice)– Hanteras av dispatchern– Är ca 50 millisekunder

• Process switch / Context switch• Avbrott (Interrupt)

Signal till CPU:n att avsluta pågående processaktivitet

• Avbrottshanterare Program som hanterar vad som händer efter ett avbrott

Kap3

Page 17: Grundläggande datavetenskap, 4p

2004-12-17 ITM 17

Deadlock forts.

Kap3

Page 18: Grundläggande datavetenskap, 4p

2004-12-17 ITM 18

Kap 4 – Nätverk och Internet

• Topologier

• Bryggor och routrar

• Client/Server – Peer-to-peer

• Internetadressering

• WWW

• Internets kommunikationsnivåer– TCP/IP

Page 19: Grundläggande datavetenskap, 4p

2004-12-17 ITM 19

Dator

Ringnät Bussnät

StjärnnätOregelbundet nät

DatorDator

Dator

DatorDator Dator

Dator Dator

Dator

Dator

Dator

Dator

Dator

Dator Dator

DatorDator

Dator

Dator Dator

NätverkstopologierKap4

Page 20: Grundläggande datavetenskap, 4p

2004-12-17 ITM 20

Sammankoppling av nätverk

Kap4

Page 21: Grundläggande datavetenskap, 4p

2004-12-17 ITM 21

Client/Server - Peer-to-peerKap4

Page 22: Grundläggande datavetenskap, 4p

2004-12-17 ITM 22

Internetadressering• IP-adress

– 212.112.162.203 (32 bitar)• Network identifier

– Registrerad och unik domänidentifierare– 212.112.162

• Host address– Adressen som identifierar en dator inom ett domän– 203

• Domännamn: mh.se• Toppdomän: org, com, se, au, nu• DNS – Domain Name Server

– 212.112.162.203 = www.aftonbladet.se

Kap4

Page 23: Grundläggande datavetenskap, 4p

2004-12-17 ITM 23

WWW• World Wide Web• Webb-läsare (browser)• Hypertext

– Klickbara länkar• HTML - Hypertext Markup Language• HTTP – Hypertext Transfer Protocol• URL - Uniform Resource Locator

– http://www.aftonbladet.se/sport/idag/sport.html– Protokoll - host - sökväg - dokumentnamn – ftp://ftp.cs.wisc.edu/connectivity_table/– En url är en fullständig sökväg till ett dokument

Kap4

Page 24: Grundläggande datavetenskap, 4p

2004-12-17 ITM 24

Kap4

Page 25: Grundläggande datavetenskap, 4p

2004-12-17 ITM 25

Kap 5 - Algoritmer

• Definition

• Pseudokod– If-satser, loopar

• Testning

Page 26: Grundläggande datavetenskap, 4p

2004-12-17 ITM 26

Definition av en algoritm

• En algoritm är en ordnad uppsättning entydiga anvisningar som utförs stegvis och definierar en avslutande process.

– Beskrivning av hur ett visst problem ska lösas

Kap5

Page 27: Grundläggande datavetenskap, 4p

2004-12-17 ITM 27

Pseudokod - exempel

if (skottår) // Indentering, indragningthen (dagligt värde årligt värde delat med 366)else (dagligt värde årligt värde delat med 365)

if (inget regn) // Nästlade satserthen (if (hett ute) then (bada) else (spela golf) )else (titta på tv)

Kap5

Page 28: Grundläggande datavetenskap, 4p

2004-12-17 ITM 28

Loop-kontrollwhile (condition) do ( body)

check the condition execute the bodycheck the condition… osv.

while (någon sover i hörsalen) do( höj rösten)

repeat (activity) until (condition)

repeat (ät chips)until (chipspåsen är tom)

Kap5

Page 29: Grundläggande datavetenskap, 4p

2004-12-17 ITM 29

• Svårt att bevisa att programmet löser problemet på bästa sätt– Ex Kedjeproblemet

• Oftast testkör man programmet.– Ej 100%-ig täckning– Man vet endast att programmet fungerar för de

testfall man har kört

Testning av programvaraKap5

Page 30: Grundläggande datavetenskap, 4p

2004-12-17 ITM 30

Kap 6 - Programmeringsspråk

• Maskinkod• Assembler• Högnivåspråk

– C++

• Programmeringsmönster– Imperativt: Traditionellt

• Procedurer

– Objektorienterat: Dagens trend• Klasser, Objekt

Page 31: Grundläggande datavetenskap, 4p

2004-12-17 ITM 31

Imperativt programmeringsmönster

• Sekvens av kommandon• Traditionella programmeringsmönstret• Används av CPU (fetch-decode-execute)• Man löser problem med algoritmer

Data som ska används i programmet deklareras här. Imperativa satser som beskriver vad som ska händai programmet

Kap6

Page 32: Grundläggande datavetenskap, 4p

2004-12-17 ITM 32

Objektorienterat programmeringsmönster

• Aktiva objekt– Objektet består av data

– Objektet kan själva manipulera data

• Moduler• Färdiga komponenter• Objekt kan kommunicera med varandra• Dagens trend

Kap6

Page 33: Grundläggande datavetenskap, 4p

2004-12-17 ITM 33

Klass• Klassdefinition

( C++ )class Konto

{

private:

int kontoNr;

float saldo;

public:

void uttag(float ut);

void insattning(float in);

void visaSaldo(void);

};

Evas kontokontoNr: "112233"saldo: 3200,00uttag()insattning()visaSaldo()

Kap6

Page 34: Grundläggande datavetenskap, 4p

2004-12-17 ITM 34

Kännetecken för OOP• Inkapsling

– Endast objektet kommer åt en skyddad egenskap.– private, public– cout << konto1.saldo är INTE tillåtet.– konto1.visaSaldo() är tillåtet.

• Arv– En klass kan ärva egenskaper från en annan klass.– Klassen Personbil kan ärva från t.ex Fordon.

• Polymorfism– Samma meddelande (metod) ger olika svar från olika

klasser.– Triangel.rita()– Kvadrat.rita()

Kap6

Page 35: Grundläggande datavetenskap, 4p

2004-12-17 ITM 35

C++• Vad skrivs ut i följande program?

int main() { int i=0; while (i != 1) { --i; } cout << i; return 0;}

int main() { int i=1; while (i == 1) { --i; } cout << i; return 0;}

int main() { int i=0; do { i++; } while (i ==1) cout << i; return 0;}

1 0 2

Kap6

Page 36: Grundläggande datavetenskap, 4p

2004-12-17 ITM 36

C++• Vad skrivs ut i följande program?

int main() { int a, b, c; a=1; b=2; c=3; if (a==b) if (a==1) cout << “A”; else cout << “B”; cout << “C”; return 0;}

ABACBCCellerABC ?

Kap6

C

int main() { int a, b, c; a=1; b=2; c=3; if (a==b) if (a==1) cout << “A”; else cout << “B”; cout << “C”; return 0;}

Page 37: Grundläggande datavetenskap, 4p

2004-12-17 ITM 37

Kap 7 - Programvaruutveckling

• Vattenfallsmetoden

• De senaste trenderna

• Modultänkande

Page 38: Grundläggande datavetenskap, 4p

2004-12-17 ITM 38

De senaste trenderna• Vattenfallsmodellen

– Analys ► Design ► Implementering ► Testning

• Steg-för-steg-modellen– Prototypframtagning– Förfining av prototypen

• CASE (computer-aided software engineering)– Projektplanering– Projekthantering– Dokumentation– Göra prototyper– Gränssnittsprogrammering– Kodgenerering

Kap7

Page 39: Grundläggande datavetenskap, 4p

2004-12-17 ITM 39

Moduler

• Modultänkande– Objekt i OOP– Procedurer

• Moduler kan utvecklas separat med ett överenskommet gränssnitt.– NASA tappade en Marssond på grund av

missförstånd av gränssnittet• NASA använde det metriska systemet: meter

• Lockheed Martin använde engelska mått: fot

Kap7

Page 40: Grundläggande datavetenskap, 4p

2004-12-17 ITM 40

Kap 8 - Dataabstraktioner

• Fält

• Listor

• Stack

• Köer

• Träd

Page 41: Grundläggande datavetenskap, 4p

2004-12-17 ITM 41

Tvådimensionellt fält• Läs av temperaturen var tredje timme under

en vecka

float avl[8][7]; // avl[Tid,Dag]avl[2][3] = 13.0; avl[5][6] = -1.7;

Dag/Tid 0 1 2 3 4 5 6 70 11,3 13,6 14,8 5,6 5,4 -2,3 -3,4 2,01 12,4 14,5 14,2 6,6 5,5 -2,2 -3,1 2,52 13,5 15,4 13,6 7,6 5,6 -2,1 -2,8 3,03 14,6 16,3 13,0 8,6 5,7 -2,0 -2,5 3,54 15,7 17,2 12,4 9,6 5,8 -1,9 -2,2 4,05 16,8 18,1 11,8 10,6 5,9 -1,8 -1,9 4,56 17,9 19,0 11,2 11,6 6,0 -1,7 -1,6 5,0

Kap8

Page 42: Grundläggande datavetenskap, 4p

2004-12-17 ITM 42

Länkad lista• Varje element har en pekare till nästa i listan

– Fördelar:• enkelt att lägga till och radera data

• enkelt att sortera data

– Nackdel:• något krångligare teknik

Olle

HuvudEva

Per NIL

Kap8

Page 43: Grundläggande datavetenskap, 4p

2004-12-17 ITM 43

Stack

• Minne reserveras för en kontinuerlig lista (gulmarkerat)

• Stacken kan bli full• StackPointer (SP) innehåller adressen till den

senast inlagda posten• StackPointer flyttas när data ”poppas” och

”pushas”

topEva Olle Per Sven Ida

SP

Kap8

Page 44: Grundläggande datavetenskap, 4p

2004-12-17 ITM 44

• FIFO = First In First Out– Tillägg görs vid svansen (bak)– Radering görs vid huvudet (fram)– HeadPointer (HP) pekar till början av kön– TailPointer (TP) pekar till slutet av kön– Om kön är tom pekar både HP och TP på samma

element

huvud svansEva Olle Per Sven Ida

HP

TP

Kap8

Page 45: Grundläggande datavetenskap, 4p

2004-12-17 ITM 45

Träd i en länkad lista• Ett binärträd implementerad med en länkad lista

A

B C

D E F

Data Left child Right child

Rot A C NIL

B F NIL NIL

D NIL NIL E NIL NIL

Kap8

Page 46: Grundläggande datavetenskap, 4p

2004-12-17 ITM 46

Kap 9 - Databaser

• Relationsdatabas

• SQL

• Objektorienterade databaser

• Databasintegritet

• Traditionella filstrukturer