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
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
|
|
DECODE
|
|
EXECUTE
|
|
>>> x += y
Pipelining
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) \] |
|
\[ \mathcal{O}(n) \] |
|
\[ \mathcal{O}(n^2) \] |
|
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