470 likes | 765 Views
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
E N D
Grundläggande datavetenskap, 4p Kapitel 1-9 Sammanfattning Utgående från boken Computer Science av: J. Glenn Brookshear ITM
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 Innehåll ITM
Kap. 1 - Datarepresentation • Talsystem • Decimala, Binära, Hexadecimala • Binär addition • Två-komplement • Grindar ITM
Kap1 Hexadecimalt • Hexa = 6, deci = 10 • Multipel av fyra bitar • 00002 = 016=010 • 11112 = F16=1510 • 1010010011001000 = A4C8 ITM
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 Kap1 Två-komplement • Ex: Skriv -5910 med 8 bitar. 5910 = 001110112 ITM
0 1 1 1 + 1 0 1 1 1 0 0 1 0 0 1 1 1 + 1 0 0 1 1 0 0 0 0 0 1 0 1 + 0 1 0 0 1 0 0 1 Ignorera Overflow !!! Ignorera 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 ITM
Kap1 GrindarELLER, OCH, Exklusivt ELLER A > A =1 1 C C B B A & C B ITM
Kap. 2 - Datalagring • Maskininstruktioner • Op-kod, operand • Logiska operationer • AND, OR, XOR, SHIFT, ROTATE • Datakommunikation • Datahastigheter ITM
Kap2 Maskininstruktioner • En maskininstruktion består av • Op-kod – generell del • Operand – specifik del • Ex: 0010 0111 0100 1111 27 4 F (Hex) Op-kodOperand (SimpSim) ITM
Kap2 Maskininstruktioner forts. • Exempel på instruktioner Översättning ITM
Kap2 Övning logiska operationer • Utför följande logiska operationer: • Vilken logisk operation har använts? 10101010 OR 11011000 10101010 XOR 10101010 10101010 AND 11011000 10001000 11111010 00000000 01111010 ? 10010000 11100110 ? 10101010 01111010 ? 10010000 XOR OR AND 11101010 11111010 10100010 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 ITM
Kap. 3 - Operativsystem • Tidsdelning – Multitasking • Processadministration • Deadlock ITM
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 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 ITM
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 ITM
Kap3 Deadlock forts. ITM
Kap 4 – Nätverk och Internet • Topologier • Bryggor och routrar • Client/Server – Peer-to-peer • Internetadressering • WWW • Internets kommunikationsnivåer • TCP/IP ITM
Kap4 Nätverkstopologier 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 ITM
Kap4 Sammankoppling av nätverk ITM
Kap4 Client/Server - Peer-to-peer ITM
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 ITM
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 ITM
Kap4 ITM
Kap 5 - Algoritmer • Definition • Pseudokod • If-satser, loopar • Testning ITM
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 ITM
Kap5 Pseudokod - exempel 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) ITM
Kap5 Loop-kontroll 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) ITM
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 ITM
Kap 6 - Programmeringsspråk • Maskinkod • Assembler • Högnivåspråk • C++ • Programmeringsmönster • Imperativt: Traditionellt • Procedurer • Objektorienterat: Dagens trend • Klasser, Objekt ITM
Kap6 Imperativt programmeringsmönster • Sekvens av kommandon • Traditionella programmeringsmönstret • Används av CPU (fetch-decode-execute) • Man löser problem med algoritmer ITM
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 ITM
Kap6 Klass class Konto { private: int kontoNr; float saldo; public: void uttag(float ut); void insattning(float in); void visaSaldo(void); }; • Klassdefinition( C++ ) ITM
Kap6 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() ITM
Kap6 C++ • Vad skrivs ut i följande program? 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; } int main() { int i=0; while (i != 1) { --i; } cout << i; return 0; } 1 0 2 ITM
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; } 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; } • Vad skrivs ut i följande program? AB AC BC C eller ABC ? C ITM
Kap 7 - Programvaruutveckling • Vattenfallsmetoden • De senaste trenderna • Modultänkande ITM
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 ITM
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 ITM
Kap 8 - Dataabstraktioner • Fält • Listor • Stack • Köer • Träd ITM
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; ITM
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 ITM
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” ITM
Kap8 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 ITM
Kap8 Träd i en länkad lista • Ett binärträd implementerad med en länkad lista ITM
Kap 9 - Databaser • Relationsdatabas • SQL • Objektorienterade databaser • Databasintegritet • Traditionella filstrukturer ITM