itgk-kurs-2021/main.md

18 KiB

ITGK Teori-kurs

Note: Introduksjon


OBS: Opptak

Note: PVV sin youtube-kanal

selv-introduksjon

Angående forelesningen

Planen min er å gå over de fleste temaene nevnt i pensum.

Skape "Aha!"-momenter

Kommer til å nevne en del biter som ikke nødvendigvis er viktig for pensum, men som er viktig for å forstå innholdet.


Generelt

Hva er IT

Kort Historie


Folk som er viktige

  • Von Neumann

Et par begreper:

  • PC
  • Operativsystem
  • Abstraksjon
  • Transistorer
  • IC
  • Hardware
  • Software
  • Kernel
  • Protokoll
  • WWW/Internet
  • High level/Low level
  • bit

Note: Operativsystem -> Ressursallokering -> Kernel -> Grafisk brukergrensesnitt

Forklar hvordan en transistor funker


  • PC



Enhet Størrelse
byte 8 bits
kilobyte \(10^3=1000\) bytes
megabyte \(10^6\) bytes
gigabyte \(10^9\) bytes
terabyte \(10^{12}\)
petabyte \(10^{15}\)
exabyte \(10^{18}\)
Enhet Størrelse
byte 8 bits
kibibyte \(2^{10} = 1024\) bytes
mebibyte \(2^{20}\) bytes
gibibyte \(2^{30}\) bytes
tebibyte \(2^{40}\)
pebibyte \(2^{50}\)
exbibyte \(2^{60}\)

Datatyper

  • Integer
  • Character
  • Float
  • Array
  • String

Note:

char -> ASCII 7b, Extended ASCII 8b, UTF-8

Finnes flere, men disse

Objekter


ASCII, UNICODE, UTF-8


Tallsystemer

10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 19, 20, 21, ..., 99, 100, 101, ...
2: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, ...
16: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, ..., 1E, 1F, 20, ..., FE, FF, 100, ...
8: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, ..., 76, 77, 100, ...

Note:

Forventet å kunne octal, binær, heksadesimal

går tom for siffer

delbarhet

hexadesimal i 4 binær chunks om gangen octal i 3 binær chunks om gangen revers

lurt å trene på

brukt ca. 20 min


Eksempel: 1110010111011011


Negative tall

  • Signed magnitude
  • Two's compliment

Note: Signed magnitude

bruker første biten

0000 = 1000 kaster bort en plass

Løsning: Twos complement:

0001 = 1 0000 = 0 1111 = -1

1000 = MIN_INT

Algoritme:

  • finn ut hva minste negative tall er
  • ta resten av bitsene, og konverter til desimal
  • regn ut offsett

Flyttall - IEEE 754

>>> 0.1 + 0.2
0.30000000000000004

\[ (+,\ \ 4,\ \ 1949284) = +1.949284 \cdot 10^4 = 19492.84 \]

Note:

Matematisk tilnærming

Signed bit, exponent - 2^?, signifikant?

består av 3 biter, kan gi rare utregninger iblant

Opphøyd i 10, men i virkeligheten opphøyd i 2

Ikke veldig viktig, men kan være oppklarende.


Hardware

  • Hovedkort
  • CPU
  • Minne

Datamaskin

Note:

Består av mange forskjellige biter. datamaskin er bare et begrep vi bruker. Kan gå galt på veldig mange lag i prosessen. Moores law, antall transistorer i en IC dobles hver 2. år.


Hovedkort (Motherboard)

Note:

Limet som fester alle de andre bitene sammen. Inneholder litt logikk for konfigurasjon av alle bitene, men lite ellers.


CPU

Note:

Viktigste biten. Gjør alle beregningene. Består av 3 biter, kontrollenhet, minneenhet, ALU Kjører raskt, gHz Har et visst sett med ting den kan gjøre, kalt et instruksjonssett. Setter du disse på rad, så har du et program.


Fetch-Decode-Execute Cycle

FETCH
  • Henter neste instruksjon
DECODE
  • Dekoder instruksjonen
EXECUTE
  • Henter verdier fra minnet
  • Utfører instruksjonen
  • Skriver svaret tilbake i minnet
>>> x += y

Pipelining

FE DE EX FE DE EX FE DE EX FE DE EX FE DE EX FE DE EX

Note: 5 steg hver gang den skal kjøre en instruksjon

PC - program counter Branching - hopp til andre steder/loop Kjører en instruksjon for hver klokkesykel, men gjør flere steg samtidig. Verdt å merke seg.


Minne

Primary

  • Volatile
  • Random Access

Secondary

  • Nonvolatile
  • Sequential Access?

Note:

Primær - RAM tilfeldig access - kan nå hvor som helst øyeblikkelig volatilt - uten strøm så forsvinner dataen.

Sekundær - Harddisk Tregt - cd som spinner Sekvensiell aksess - Må lete for å lese på riktig sted. ikke volatilt - holder på data uten strøm SSD - Nesten random access, ligner på ram, men er ikke volatil CD, DVD, Ekstern harddisk, USB, osv.


Digital Representasjon


Analog/Digital

  • ADC - inn på computeren

  • DAC - ut fra computeren

Note:

Analog kan du måle bortimot så nøyaktig du vil Digital har et visst sett med 0 og 1


Piksler

Note:

Piksler er en måte å representere bilder En piksel er en liten bit av bildet, med en farge. Ofte tilsvarer 1 piksel 1 LED på skjermen Den fargen er representert som en sammensetning av 3 farger Pleier ofte å være RGB


RGB

Hver verdi er mellom 0 og 255

Kan derfor representeres som et hexadecimal med 6 tegn

Farge Rød Grønn Blå
#283681 28\(_{16}\) 36\(_{16}\) 81\(_{16}\)
#FF0000 FF\(_{16}\) 00\(_{16}\) 00\(_{16}\)
#C0FFEE C0\(_{16}\) FF\(_{16}\) EE\(_{16}\)
#FFFFFF FF\(_{16}\) FF\(_{16}\) FF\(_{16}\)
#000000 00\(_{16}\) 00\(_{16}\) 00\(_{16}\)
Farge Rød Grønn Blå
#283681 \(40_{10}\) \(54_{10}\) \(129_{10}\)
#FF0000 \(255_{10}\) \(0_{10}\) \(0_{10}\)
#C0FFEE \(192_{10}\) \(255_{10}\) \(238_{10}\)
#FFFFFF \(255_{10}\) \(255_{10}\) \(255_{10}\)
#000000 \(0_{10}\) \(0_{10}\) \(0_{10}\)

Note:

Regn ut 1920x1080 x 24 bits


Lyd

  • Bør være dobbelt så ofte som høyeste frekvensen

  • Bitdybde (16 bit er standard)

\[ 16\ bits \cdot 44100\ Hz \cdot (3 \cdot 60)s \cdot 2\ kanaler \]

Note:

tegn en bølge på tavlen, og vis frekvensen


Encoding og Komprimering

  • "Hvordan tolke dataen"
  • Lossless vs lossy

Note:

Alt er 1 og 0, men det kan tolkes på forskjellige måter.

Grunnen til at de ofte diskuteres sammen


Eksempel på komprimering

\[ AAAAAAABBBBAAAAABB \]

\[ A6B4A5B2 \]

Note:

Rart for tekst, men gir mening for bilder -> Runlength encoding


Eksempel på lossy komprimering

Dette er en eksempelsetning.

Dte e en eksmplstnig

Note: ikke vanlig for tekst, men akseptabelt for video/lyd/bilde Gjøres ofte på tjenester som messenger.


Algoritmer

Note: Beskriver stegvis og nøyaktig hvordan man løser et problem Uten tolkning Pseudokode


(Eksempel på pseudokode)


Kompleksitet

\[ \mathcal{O}(1) \]

def f(lst):
  print('Hi!')

\[ \mathcal{O}(n) \]

def f(lst):
  for item in lst:
    print(item)

\[ \mathcal{O}(n^2) \]

def f(lst):
  for item in lst:
    for itemOnceMore in lst:
      print(item, itemOnceMore)

Note: brukes mer om dere skal programmere mye


Sorteringsalgortimer:

  • Bubble sort: \(\mathcal{O}(n^2)\)
  • Merge sort : \(\mathcal{O}(n\ log\ n)\)

Nettverk


Internett

  • Hva er det

Historie

  • ARPAnet

Note: Sponset av Dep. of defense, USA Kjellermaskiner, matte Ble ikke brukt aktivt hele tiden Overføre instruksjoner Maksimal utnyttelse Flere universiteter koblet seg på Ikke veldig planlagt


5 lags modellen

Note: pakker pakket inn i hverandre Skal se litt på hva punktumene faktisk er



Note: Medium for kommunikasjon mellom 2 eller flere endrepunkter



Note: Etablert: Kommunikasjonsmedium

Stabil overføring, og kontakt med andre ender



Note: Etablert: Flere computere er koblet sammen

Kommunikasjon gjennom flere computere.

Oppfører seg litt som postkontorer

Hop count



Note: Etablert: Link over mange computere.

Stabil og sikker kommunikasjon til tross for forsvunnede pakker,

TODO: move hop count from Transport layer to network layer



Note: Etablert: Stabil og sikker kommunikasjon.

Applikasjonsspesifikk data.


MAC-Addresse

B6-4B-8F-B4-05-E5


IP

IPv4

ddd.ddd.ddd.ddd (bbbbbbbb.bbbbbbbb.bbbbbbbb.bbbbbbbb)

IPv6

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

Note:

Navn på pcene


Submaske

255.255.255.128

(11111111.11111111.11111111.10000000)

192.168.0.128/25

Note:

Den siste er ikke veldig nyttig, men om man skal sette opp ruter


NAT


DNS

NTNU: 129.241.160.102


TCP


UDP


VPN


Programvareutvikling


Note:

Løs tidligere eksamener

Crash course