grundläggande datavetenskap, 4p
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 PresentationTRANSCRIPT
2004-12-17 ITM 1
Grundläggande datavetenskap, 4p
Kapitel 1-9
SammanfattningSammanfattning
Utgående från boken
Computer Scienceav: J. Glenn Brookshear
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
2004-12-17 ITM 3
Kap. 1 - Datarepresentation
• Talsystem– Decimala, Binära, Hexadecimala
• Binär addition
• Två-komplement
• Grindar
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
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
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
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
2004-12-17 ITM 8
Kap. 2 - Datalagring
• Maskininstruktioner– Op-kod, operand
• Logiska operationer– AND, OR, XOR, SHIFT, ROTATE
• Datakommunikation– Datahastigheter
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
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
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
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
2004-12-17 ITM 13
Kap. 3 - Operativsystem
• Tidsdelning – Multitasking
• Processadministration
• Deadlock
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
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
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
2004-12-17 ITM 17
Deadlock forts.
Kap3
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
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
2004-12-17 ITM 20
Sammankoppling av nätverk
Kap4
2004-12-17 ITM 21
Client/Server - Peer-to-peerKap4
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
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
2004-12-17 ITM 24
Kap4
2004-12-17 ITM 25
Kap 5 - Algoritmer
• Definition
• Pseudokod– If-satser, loopar
• Testning
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
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
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
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
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
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
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
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
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
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
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;}
2004-12-17 ITM 37
Kap 7 - Programvaruutveckling
• Vattenfallsmetoden
• De senaste trenderna
• Modultänkande
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
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
2004-12-17 ITM 40
Kap 8 - Dataabstraktioner
• Fält
• Listor
• Stack
• Köer
• Träd
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
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
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
2004-12-17 ITM 44
Kö
• 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
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
2004-12-17 ITM 46
Kap 9 - Databaser
• Relationsdatabas
• SQL
• Objektorienterade databaser
• Databasintegritet
• Traditionella filstrukturer