Grundläggande datavetenskap, 4p (rev. Jan-Erik Jonsson) 2003-08-29 Grundläggande datavetenskap, 4p Kapitel 1-9 Sammanfattning Utgående från boken Computer Science av: J. Glenn Brookshear 2004-12-17 ITM
Innehåll Datalagring Datamanipulation Operativsystem 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
Kap. 1 - Datarepresentation Talsystem Decimala, Binära, Hexadecimala Binär addition Två-komplement Grindar 2004-12-17 ITM
Hexadecimalt Hexa = 6, deci = 10 Multipel av fyra bitar 1 2 3 4 5 6 7 8 9 A 10 B 11 C 12 13 E 14 F 15 b3 b2 b1 b0 H D 1 2 3 4 5 6 7 8 9 A 10 B 11 C 12 13 E 14 F 15 Kap1 Hexadecimalt Hexa = 6, deci = 10 Multipel av fyra bitar 00002 = 016=010 11112 = F16=1510 1010010011001000 = A4C8 2004-12-17 ITM
Två-komplement Ex: Skriv -5910 med 8 bitar. 5910 = 001110112 Kap1 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 talet Ett-komplementet Addera 1 Negativa svaret 2004-12-17 ITM
Två-komplement forts. Addition med två-komplement Kap1 Två-komplement forts. Addition med två-komplement Antalet bitar hålls konstant Overflow kan ske 7 + (-5) 7 + (-7) 5 + 4 = 2 = 0 = -7 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 0 1 0 1 + 0 1 0 0 1 0 0 1 Overflow !!! 2004-12-17 ITM
Grindar ELLER, OCH, Exklusivt ELLER Kap1 A > A =1 1 C C B B A & C A B C 1 B A B C 1 A B C 1 2004-12-17 ITM
Kap. 2 - Datalagring Maskininstruktioner Logiska operationer Op-kod, operand Logiska operationer AND, OR, XOR, SHIFT, ROTATE Datakommunikation Datahastigheter 2004-12-17 ITM
Maskininstruktioner En maskininstruktion består av Kap2 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) 2004-12-17 ITM
Maskininstruktioner forts. Kap2 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 2004-12-17 ITM
Övning logiska operationer Kap2 Ö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 XOR OR AND 11101010 11111010 10100010 2004-12-17 ITM
Kap2 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 2004-12-17 ITM
Kap. 3 - Operativsystem Tidsdelning – Multitasking Processadministration Deadlock 2004-12-17 ITM
Utveckling av operativsystem Kap3 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 2004-12-17 ITM
Kap3 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 2004-12-17 ITM
Processadministration Kap3 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 2004-12-17 ITM
Kap3 Deadlock forts. 2004-12-17 ITM
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
Nätverkstopologier Kap4 Bussnät Ringnät Oregelbundet nät Stjärnnät Dator Dator Dator Dator Dator Dator Dator Dator Dator Dator Bussnät Ringnät Dator Dator Dator Dator Dator Dator Dator Dator Dator Oregelbundet nät Dator Dator Stjärnnät 2004-12-17 ITM
Sammankoppling av nätverk Kap4 Sammankoppling av nätverk 2004-12-17 ITM
Client/Server - Peer-to-peer Kap4 Client/Server - Peer-to-peer 2004-12-17 ITM
Internetadressering IP-adress Network identifier Host address Kap4 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 2004-12-17 ITM
WWW World Wide Web Webb-läsare (browser) Hypertext Kap4 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 2004-12-17 ITM
Kap4 2004-12-17 ITM
Kap 5 - Algoritmer Definition Pseudokod Testning If-satser, loopar 2004-12-17 ITM
Definition av en algoritm Kap5 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 2004-12-17 ITM
Pseudokod - exempel Kap5 if (skottår) // Indentering, indragning then (dagligt värde årligt värde delat med 366) else (dagligt värde årligt värde delat med 365) if (inget regn) // Nästlade satser then (if (hett ute) then (bada) else (spela golf) ) else (titta på tv) 2004-12-17 ITM
Loop-kontroll Kap5 while (condition) do ( body) check the condition execute the body check 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) 2004-12-17 ITM
Testning av programvara Kap5 Testning av programvara 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 2004-12-17 ITM
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
Imperativt programmeringsmönster Kap6 Imperativt programmeringsmönster Sekvens av kommandon Traditionella programmeringsmönstret Används av CPU (fetch-decode-execute) Man löser problem med algoritmer 2004-12-17 ITM
Objektorienterat programmeringsmönster Kap6 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 2004-12-17 ITM
Klass Klassdefinition ( C++ ) Kap6 class Konto { private: int kontoNr; float saldo; public: void uttag(float ut); void insattning(float in); void visaSaldo(void); }; Klassdefinition ( C++ ) 2004-12-17 ITM
Kännetecken för OOP Inkapsling Arv Polymorfism Kap6 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() 2004-12-17 ITM
C++ 1 2 Vad skrivs ut i följande program? Kap6 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 2 2004-12-17 ITM
C++ AB AC BC C eller ABC ? C Vad skrivs ut i följande program? Kap6 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; } 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; } AB AC BC C eller ABC ? C 2004-12-17 ITM
Kap 7 - Programvaruutveckling Vattenfallsmetoden De senaste trenderna Modultänkande 2004-12-17 ITM
De senaste trenderna Vattenfallsmodellen Steg-för-steg-modellen Kap7 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 2004-12-17 ITM
Moduler Modultänkande Kap7 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 2004-12-17 ITM
Kap 8 - Dataabstraktioner Fält Listor Stack Köer Träd 2004-12-17 ITM
Tvådimensionellt fält Kap8 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; 2004-12-17 ITM
Länkad lista Varje element har en pekare till nästa i listan Fördelar: Kap8 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 2004-12-17 ITM
Stack Minne reserveras för en kontinuerlig lista (gulmarkerat) Kap8 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” 2004-12-17 ITM
Kö FIFO = First In First Out Kap8 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 2004-12-17 ITM
Träd i en länkad lista Ett binärträd implementerad med en länkad lista Kap8 Träd i en länkad lista Ett binärträd implementerad med en länkad lista 2004-12-17 ITM
Kap 9 - Databaser Relationsdatabas SQL Objektorienterade databaser Databasintegritet Traditionella filstrukturer 2004-12-17 ITM