THE ONE DECK TO RULE THEM ALL Flashcards

1
Q

Varför har vi använt nand-grindar för att realisera alla andra grindar?

A

Om samma insignal läggs på både a och b i nand-grinden fås en notgrind, vilket i sin tur kan användas tillsammans med en nand för att realisera en and-grind, med vilka vi sedan kan realisera samtliga booleska funktioner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vilken annan grind än nand skulle vi kunna använda som grund?

A

Nor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hur skiljer sig sekventiella kretsar från kombinatoriska?

A

Sekventiella har en tidsdimention, vilket innebär att den kan använda resultaten från tidigare körningar i nya körningar, dvs den kan minnas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är skillnaden på RAM och ROM?

A

RAM (Random Access Memory) är minnen som kan både läsas och skrivas men inte är stabila när strömmen till minneskretsen försvinner.
ROM (Read-Only Memory) är stabila minnen som kan läsas, men inte skrivas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vilka uppgifter utför en ALU?

A

Utföra enkla beräkningar och avgöra logiska utsagor i CPUn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vilka uppgifter utför registerna?

A

CPU:ns register fungerar som små men väldigt snabba minnesplatser där processorn kan spara värden som ALU och programräknaren enkelt kan komma åt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad gör programräknaren?

A

Den håller koll på vilken instruktion som ska köras i nästa klockcykel. I normalfallet iinkrementeras räknaren efter varje klockcykel, men kan även ges en specifik adress för att hantera hopp i programmet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Varför går maskinkod som körs på moderna datorer inte att göra på en gammal Commodore 64?

A
  1. De två datortyperna har olika långa ord.
  2. De två datortypernas minnesmodeller är olika.
  3. De två datortyperna har olika instruktionsset.
  4. De två datortyperna har olika många register.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad kallas den typ av kod som Java kompileras till?

A

Bytekod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

(Java) Vad händer med bytekoden när den körs i JVM:en?

A

JVM:en komplierar ner bytekoden till maskinkod som kan köras på den aktuella maskinen. Därför måste JVM ha en backend för varje operativsystem och datortyp som den ska stödja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Varför vill vi som regel inte kompilera direkt från källkod till maskinkod?

A

För att en direktkompilator för ett språk måste då skrivas för varje enskild datorarkitektur och operativsystem som vi vill stödja med vårt språk. Om vi istället kompilerar ner till ett mellannivåspråk kan flera programmeringsspråk dela på en assembler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vad är en d-vippa och vad används den till?

A

En d-vippa är en digital krets som kan spara en bit. Den används som grundsten i mer avancerade minneskretsar, exempelvis i enkla register.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hur kan en ALU utföra parallella beräkningar?

A

Den byggs upp av flera delkretsar som var för sig utför en specifik operation. De matas alla med samma indata och utför därefter sina operationer/beräkningar oberoende av varandra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vilken typ av logisk grind används för att välja ut rätt värde av de parallella beräkningarna i en ALU?

A

En flerbitars-multiplexor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

En dator som exempelvis Commodore 64 har en databussbredd på 8 bitar och en adressbussbredd på 16 bitar. Vad betyder detta?

A

Det betyder att Commodore 64 hanterar tal som är 8 bitar stora och att den kan hantera en adressrymd på 2^16 (65536) minnesplatser. Detta ger att datorn klarar av att hantera 64kb minne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad är den stora skillnaden mellan en krets och en dator?

A

En dator är programmerbar, medan en krets bara kan utföra den uppgift den blivit konstruerad för att lösa.

17
Q

Vad används källkod för?

A

Den används för att uttrycka det arbete som datorn förväntas göra, görs vanligtvis m.h.a. ett högnivåspråk

18
Q

Vad gör kompilatorn?

A

Den analyserar källkoden och genererar ett program i assemblykod.

19
Q

Vad är assemblikod?

A

En läsbar representation av maskinkoden.

20
Q

Vad gör assemblern?

A

Den översätter assemblykod till maskinkod.

21
Q

Vad är maskinkod?

A

Det format som det färdiga programmet sparas. Är helt binärt och består av en serie instruktioner.

22
Q

Vad är fyra fördelar med operativsystem och vad tillför de?

A
  1. Det kan låta flera program köra samtidigt och dela på datorns resurser.
  2. Ett operativsystem abstraherar bort hårdvaran så att en applikationsutvecklare kan fokusera på att lösa problem snarare än att hantera hårdvaran.
  3. Ett operativsystem erbjuder framtidssäkring, då ev. fel kan hanteras på OS-nivå
  4. Ett operativsystem kan erbjuda ett gränssitt mot användaren.
23
Q

Vilken roll har schemaläggaren i ett operativsystems kärna?

A

Den fördelar processortid mellan de olika processer och trådar som körs på datorn.

24
Q

Vad har drivrutiner för roll i ett operativsystem?

A

Drivrutiner fungerar som ett gränssnitt eller abstraktionslagret mellan operativsystemet och hårdvaran.

25
Q

Ett RAM-minne har 15-bitars adressrymd. Hur många bytes kan lagras i det och adresseras? (Utgå ifrån att varje minnescell är en byte stor)

A

2^15 = 32 728 bytes ~32 bytes

26
Q

Vad är skillnaden på en tråd och en process?

A

En tråd är en exekvering som körs på en processor. Den har inget eller väldigt lite eget minne.
En process är en isolerad programkörning som tilldelas minnesresurser. Exekveringen av koden som tillhör processen sköts av en eller flera trådar.

27
Q

Hur hanteras oanvänt minne i en programmeringsmiljö som saknar skräpinsamling?

A

Utvecklare anger i programkoden när minne ska återlämnas.

28
Q

Vilka fördelar finns det med skräpsamling i förhållande till alternativet?

A

Enklare kod. Ingen (nästan) risk för kvarglömt minne (“minnes-läckor”), ingen risk för dubbelanvändning.

29
Q

Vilka nackdelar finns det med skräpsamling?

A

Något mer minne per objekt. Potentiellt sämre prestanda. Oförutsägbart när garbage collector kommer in och tar tid.

30
Q

Vad är anledningen för en skräpsamlare att använda generationer?

A

Det mesta minnet används antingen mycket kort tid eller mycket länge. Generationer underlättar att man återlämnar det som hålls kort tid, utan att fullständig GC behöver göras.

31
Q

Vad har DMA (direct memory access) för funktion i samband med kommunikation med I/O-enheter, och hur kan det bidra till högre prestanda?

A

DMA innebär att en extern enhet tillåts lägga beslag på adress- och databuss för att läsa/skriva direkt i minnet. Prestanda kan höjas genom att CPU:n inte behöver flytta data till/från specielle adresser eller in/utgångar för enheten, utan den externa enheten kan komma åt data direkt där programmet som utnyttjar enheten kan hitta/placera dem.