DSP Flashcards
Vad är PCB?
Process Control Block (PCB) är en datastruktur som operativsystemet använder för att hålla reda på en process och alla dess egenskaper.
Vad innehåller PCB
- CPU-register & programräknare (PC) → så att processen kan återupptas korrekt efter en kontextväxling
- Process-ID (PID)
- Tillstånd (Ready, Running, Waiting etc)
- Planeringsinformation (prioritet, schemaläggningsdata)
- Pekare till minnesområden (stack, heap, kod)
- Öppna filbeskrivare (file descriptors)
Vad menas med kontextväxling?
Kontextväxling: När CPU:n byter från en process till en annan, sparas den gamla processens tillstånd i dess PCB, så att den kan återupptas exakt där den var.
Vad menas med paging?
Paging (sidindelning) är en teknik i virtuellt minne som låter både processer och fysisk minneshantering brytas upp i små, lika stora block:
- Virtuella sidor (pages)
- Fysiska ramar (frames)
Paging påverkar inte cache, utan hanterar RAM.
Vad är fördelen med paging?
Genom att processen inte behöver ett sammanhängande (contiguous) minnesutrymme i det fysiska minnet, kan minnet utnyttjas effektivare och problemet med extern fragmentering försvinner.
Vad står TCP för?
Transmission Control Protocol
Exempel på protokoll som följer end to end principen
TCP
Vad innebär end-to-end principen?
End-to-end-principen innebär att viktiga funktioner (t.ex. felhantering, pålitlig överföring, dataintegritet) ska hanteras i kommunikationsändarna (applikationerna hos sändare och mottagare) — inte av mellannoder som routrar.
Vad säkerställer TCP och hur gör det det?
✅ Säkerställer pålitlig leverans av data
✅ Sköter flödeskontroll och kongestionskontroll
✅Använder acknowledgements, retransmission, checksummor
Vad är kongestionskontroll?
Kongestionskontroll (congestion control) = Tekniker som TCP använder för att undvika att överbelasta nätverket.
➡ Exempel:
TCP minskar sändhastigheten om nätverket verkar trångt (t.ex. vid paketförlust).
Algoritmer: Slow Start, Congestion Avoidance, Fast Retransmit, Fast Recovery.
Vad är flödeskontroll?
Flödeskontroll = Ser till att avsändaren inte skickar data snabbare än mottagaren kan ta emot.
➡ TCP använder fönsterstorlek (window size) för att anpassa mängden data som kan skickas innan ack måste tas emot.
Vad är syftet med binära semaforer (mutex)
En binär semafor, även kallad mutex (mutual exclusion), används för att styra åtkomst till en delad resurs så att endast en tråd åt gången får använda den.
Det är en klassisk lösning på race conditions i parallellprogrammering.
Vad är ARP och vad används det för?
ARP (Address Resolution Protocol) = Används för att översätta en IP-adress → MAC-adress inom ett lokalt nätverk (LAN).
💡 Exempel: Om du vill skicka data till 192.168.0.5, måste din dator veta vilken fysisk nätverksadress (MAC) som motsvarar den IP:n.
Vad står ARP för?
Adress Resolution Protocol
Vad är ICMP och vad används det för?
ICMP (Internet Control Message Protocol) = Ett protokoll för felsökning och meddelanden i nätverk.
➡ Exempel:
Ping (echo request/reply)
Traceroute (Time Exceeded-meddelanden)
Används inte för att transportera data, utan för att informera om fel (t.ex. destination unreachable).
Vad står ICMP för?
Internet Control Message Protocol
Vad är DHCP och vad används det för?
DHCP (Dynamic Host Configuration Protocol) = Automatisk tilldelning av nätverksinställningar till klienter.
➡ DHCP-server skickar:
IP-adress, Default gateway, DNS-server, Subnet mask.
💡 Exempel: När du ansluter till ett nytt WiFi får du en IP via DHCP.
Hur skiljer sig TCP och UDP orientmässigt?
✅ TCP är segmentorienterat
TCP bryter ned data i segment, varje segment är en del av en logiskt sammanhängande ström.
Det är kopplingsorienterat, och mottagaren sammanfogar segmenten i rätt ordning.
✅ UDP är datagramorienterat
UDP behandlar varje enskilt paket (datagram) som fristående – utan garanti att det kommer fram, i rätt ordning eller alls.
Därför är det snabbare men opålitligt.
Vad står UDP för?
User Datagram Protocol
Använder UDP sig av checksummor?
UDP har också checksummor, även om de är valfria i IPv4, men obligatoriska i IPv6.
Vilken schemaläggningsalgoritm ger i regel den kortaste genomsnittliga väntetiden?
Shortest Job First (SJF) ger den lägsta genomsnittliga väntetiden jämfört med andra algoritmer – förutsatt att vi vet hur långa CPU-burstarna är i förväg.
Exempel: Om vi har tre processer med burst-tider:
P1: 2ms, P2: 4ms, P3: 8ms
→ Om vi kör dem i ordningen SJF (P1 → P2 → P3) får vi kort total väntetid.
💡 SJF prioriterar alltså kortare uppgifter först, vilket minskar köbildning.
Vad innebär att något är preemptivt?
Preemptiv schemaläggning betyder att operativsystemet kan avbryta (preempt) en process eller tråd även om den inte är klar med sin CPU-tid, för att ge plats åt en annan.
🔸 Motsats: Icke-preemptiv (non-preemptive) → En process får köra klart tills den frivilligt lämnar CPU:n (t.ex. väntar på I/O).
Vad händer vid en page fault i ett system med virtuellt minne?
En page fault uppstår när en process försöker använda en virtuell adress som inte finns i RAM. Då:
CPU:n skickar en signal till operativsystemet (OS)
OS hittar motsvarande sida i sekundär lagring (t.ex. hårddisk eller SSD)
Den sidan laddas in i RAM
Processen återupptas där den slutade
📌 Detta är grunden för demand paging – endast det som verkligen behövs laddas in.
Vilka är de 4 deadlockvilkoren?
1️⃣ Mutual Exclusion – En resurs kan bara användas av en process åt gången.
2️⃣ Hold and Wait – Processer håller resurser samtidigt som de väntar på fler.
3️⃣ No Preemption – Resurser kan inte tas ifrån en process med tvång.
4️⃣ Circular Wait – En cirkel av processer finns där varje process väntar på en resurs som nästa håller.
Vad innebär starvation?
En process väntar för länge på resurser, ofta pga. låg prioritet, men det kan ske utan att systemet är i deadlock.
Vilken metod för diskblockallokering ger snabbast slumpmässig åtkomst till data?
Indexed Allocation ger snabbast slumpmässig åtkomst till data, eftersom:
Alla blockadresser för en fil finns i ett indexblock (en slags innehållsförteckning).
Därmed kan operativsystemet direkt hoppa till vilket block som helst, utan att behöva läsa igenom andra först.
📌 Det är alltså idealisk för random access, vilket exempelvis mediafiler och databaser ofta kräver.
Vad innebär linked allocation?
Varje block innehåller en pekare till nästa block → måste läsas sekventiellt → långsam random access.
Vad innebär contiguous allocation?
Alla block ligger i följd i minnet → snabb random access, men extern fragmentering uppstår lätt.
Vad innebär FIFO allocation?
Det är inte en diskallokeringsmetod, utan ett köhanteringssystem – därför är det ett felaktigt alternativ här.
Vad används en routing-tabell till i ett nätverk?
En routing-tabell används av routrar (och ibland vanliga datorer) för att avgöra bästa vägen för att skicka ett IP-paket vidare till dess destination.
Vad innehåller ett routing table?
- Destination (nätverk/subnät)
- Next hop (vilken router eller gateway som ska användas)
- Interface (t.ex. eth0, wlan0)
- Metrik (kostnad/prioritet för vägen)
➡ När ett paket kommer in, matchas dess IP-måladress mot routingtabellen → den mest specifika matchningen väljs.
Vart lagras öppna TCP-sessioner?
Öppna TCP-sessioner lagras i operativsystemets socket-tabeller, inte routingtabellen.
Vad hanterar MAC-adresser?
MAC-adresser hanteras av ARP-tabellen, inte routingtabellen.
Vad hanterar översättning mellan IP och domännamn?
Översättning mellan IP och domännamn görs via DNS, inte routingtabellen.
Vad händer när en process gör ett systemanrop?
När en process gör ett systemanrop (system call) växlar den från user mode → kernel mode.
Detta krävs eftersom vissa operationer (t.ex. filåtkomst, minneshantering, nätverkskommunikation) bara får utföras av operativsystemet.
I user mode har programmet begränsade privilegier för att skydda systemet.
Kernel mode har full tillgång till systemresurser och hårdvara.
Exempel på systemanrop?
read(), write(), fork(), exec(), open()
Vilken resurs delas mellan alla trådar i en process?
Heap-segmentet delas av alla trådar i en process
Här lagras dynamiskt allokerade objekt (t.ex. via malloc() i C eller new i Java).
Alla trådar kan läsa och skriva till heapen, vilket är kraftfullt men riskabelt – därför behövs ofta synkronisering (mutexar/semaforer).
Vilka resurser får trådar en egen del av när de skapas?
- Varje tråd har egen stack för sina lokala variabler och funktionsanrop.
- Varje tråd har egna register, inklusive programräknaren.
- Varje tråd exekverar egen kod → har egen PC.
Vad är huvudsyftet med portnummer i TCP/IP-modellen?
Processmultiplexering – portnummer används för att:
Identifiera specifika applikationer på en enskild värd (t.ex. webbläsare, e-postklient, SSH-klient).
Möjliggöra flera samtidiga kommunikationsflöden på samma IP-adress.
📌 Exempel:
IP: 192.168.0.2 → kan ha flera aktiva portanslutningar:
Port 80 (HTTP)
Port 443 (HTTPS)
Port 22 (SSH)
Vad används ICMP till i ett IP-baserat nätverk?
ICMP används för att hantera felmeddelanden och nätverksdiagnostik. Det är ett stödsystem till IP-protokollet, inte ett transportprotokoll som TCP eller UDP.
📌 Vanliga ICMP-meddelanden:
Echo request/reply → används av ping
Destination unreachable → t.ex. om det inte finns någon väg till destinationen
Time exceeded → används av traceroute för att visa hopp i nätverket
ICMP hjälper till att kommunicera problem i nätverket, t.ex. “det här paketet kunde inte levereras” – så att källan vet vad som gått fel.
Vad är syftet med DHCP i ett IP-nätverk?
DHCP används för att dynamiskt tilldela nätverksinställningar till klienter när de ansluter till ett nätverk.
📌 Inställningar som klienten får via DHCP:
IP-adress
Nätmask (subnet mask)
Standard-gateway
DNS-server
💡 Det gör att användaren slipper konfigurera detta manuellt varje gång.
📍 Exempel: När du ansluter till ett nytt Wi-Fi-nätverk hemma eller på campus, är det DHCP-servern i routern som automatiskt ger din dator dessa inställningar.
Vilken är den största nackdelen med Contiguous Allocation som metod för lagring av filer på disk?
Contiguous allocation innebär att en fil lagras i ett sammanhängande block på disken (precis som RAM i ett system utan paging).
📌 Fördelar:
Mycket snabb sekventiell och slumpmässig åtkomst, eftersom alla block ligger bredvid varandra.
❌ Nackdel:
Extern fragmentering: Efter många filoperationer kan disken bli uppdelad i små lediga bitar → svårt att hitta tillräckligt stort sammanhängande block för nya filer.
Detta leder till ineffektiv utnyttjande av lagringsutrymme.
🔍 Intern fragmentering uppstår främst i fixed-size blocks, inte contiguous allocation.
Vad är huvudsyftet med cacheminne i ett datorsystem?
Cacheminnets huvudsyfte är att minska åtkomsttiden till ofta använd data (temporal och spatial lokalitet).
📌 Cacheminne är:
Mycket snabbare än RAM, men också dyrare → används för att lagra de mest använda instruktionerna och data nära CPU:n.
Ligger ofta i nivåer: L1 (snabbast), L2, L3 – där L1 är närmast CPU:n.
💡 Temporal lokalitet = om du använde något nyss, kommer du troligen behöva det snart igen.
💡 Spatial lokalitet = om du använder en minnesadress, kommer du troligen använda närliggande adresser snart.
Är RR (Round Robin) preemptiv eller icke preemptiv?
Round Robin (RR) är en preemptiv algoritm, där varje process får köra i en tidskvantum (t.ex. 5 ms) innan den avbryts och CPU:n ges till nästa process i kön – oavsett om processen är färdig eller inte.
📌 Detta gör RR mycket bra för interaktiva system där många användare/processer behöver responsivitet och rättvisa tillgångar till CPU:n.
Vad innebär waiting time och hur räknar man på det?
Tid en process väntar i kön innan den får CPU
Starttid – Ankomsttid – Ev. tidigare CPU
Vadd innebär turnaround time och hur räknar man på det?
Total tid från ankomst till slutförande
Sluttid – Ankomsttid
Vad innebär responstid och hur räknar man på det?
Tid från ankomst till första gång CPU börjar exekvera processen Starttid – Ankomsttid
VAD ÄR CPU Utilization och hur räknar man på det?
Mäter hur stor andel av tiden CPU:n faktiskt är aktiv (dvs. inte idle/vilar).
📌 Formel:
CPUUtilization
= TidCPUvaraktiv/Totaltid ×100%
💡 Hög CPU-utilization = bra resursutnyttjande.
Låg utilization = mycket idle time → ineffektivt system.
Vad är Throughput och hur räknar man på det?
Mäter hur många processer som slutförs per tidsenhet.
📌 Formel:
Throughput
= antal färdiga processer/total tid
💡 Hög throughput = fler processer blir klara → systemet är effektivt.
Vad är en process?
En process är ett program i exekvering, dvs. ett aktivt körande tillstånd av en applikation. Operativsystemet hanterar processer genom att hålla reda på dess tillstånd, resurser och instruktioner.
Vilka tillstånd kan en process befinna sig i?
New- Processen har skapats men ännu inte schemalagts av operativsystemet.
Ready- Processen är redo att exekveras och väntar på CPU-tid.
Running - processen körs aktivt på CPU:n.
Waiting (Blocked) - Processen väntar på en händelse, t.ex. I/O eller signal.
Terminated (Exit) - Processen har avslutat sin exekvering.
Vilka processtillstånd är ogiltiga?
- New → Running: En nyskapad process går inte direkt till Running – den måste alltid först in i Ready-tillståndet där schemaläggaren tilldelar CPU.
- Ready → Waiting: En process i Ready har inte tillgång till CPU och kan därmed inte blockeras på I/O eller andra väntesituationer – den måste först köra (Running).
- Waiting → Running: Normalt går en process från Waiting → Ready, inte direkt till CPU. CPU-tilldelning sker alltid från Ready-kön efter väntan.
Vad är user space och kernel space?
- User space: Vanliga applikationer/processer exekverar där. Programkod, användardata, biblioteksanrop (t.ex. printf, malloc) finns där
- Kernel space; Operativsystemets kärna (kernel) exekverar där. Processhantering, minneshantering, filsystem, drivrutiner, systemanrop, hårdvarukontroll finns där
Varför har vi user space och kernel space?
Skydd – En användarprocess kan inte av misstag krascha hela systemet.
Stabilitet och säkerhet – OS kontrollerar all direkt tillgång till resurser.
Multitasking – OS hanterar flera processer och skyddar dem från varandra.
Vad är ett systemanrop (system call)?
Ett systemanrop är ett kontrollerat sätt för program i user space att begära tjänster från kernel space.
Vad händer vid ett systemanrop?
- Processen gör ett anrop till OS API (t.ex. via C-bibliotek)
- OS växlar från user mode → kernel mode
- Kernel exekverar det önskade systemanropet
- Resultatet returneras till user mode
💡 Detta är en typisk privilegieväxling som gör OS kraftfullt men säkert.
Vad är skillnaden mellan user space och kernel space, och varför krävs ett systemanrop för att få tillgång till vissa resurser?
Kernel space skyddar systemresurser. Ett systemanrop är en kontrollerad övergång från användarläge till kärnläge för att få åtkomst till dessa resurser, som t.ex. filer, minne eller processhantering.
Vad är virtuellt minne?
Virtuellt minne är en teknik som gör att varje process tror att den har ett eget stort minnesutrymme, trots att det faktiska fysiska minnet (RAM) är begränsat.
→ Operativsystemet översätter mellan virtuell adress (VA) och fysisk adress (PA).
Vad är ett page table?
Tabell per process som mappar virtuella sidor → fysiska ramar (frames)
Vad är TLB? (Translation Lookaside Buffer)
Cache för adressöversättning – håller de senaste sidöversättningarna för att snabba upp processen
Vad står TLB för?
Translation Lookaside Buffer
Vad är en page?
Enhet av virtuellt minne (t.ex. 4 KB per sida)
Vad är en frame?
Enhet av fysiskt minne – samma storlek som page
Vad händer när en adress slås upp (page table)?
TLB kontrolleras först – om översättning finns → snabb access (TLB hit)
Om inte → Page Table används (TLB miss)
Om sidan inte finns i RAM → Page Fault inträffar
Vad innebär page fault?
Innebär att den efterfrågade sidan inte finns i RAM, utan måste hämtas från sekundär lagring (disk/SSD).
➡ Detta är dyrt i tid, så man vill minimera page faults.
Vad menas med Demand Paging?
- Virtuella sidor laddas endast vid behov (on demand).
– Det är effektivt, men kräver bra sidhantering och TLB/cache för att undvika överbelastning.
Förklara skillnaden mellan TLB och Page Table, och beskriv vad som händer vid en page fault.
Page Table mappar VA → PA
TLB är en cache som snabbar upp översättningen
Vid page fault måste sidan hämtas från disk → hög kostnad
OS uppdaterar tabellerna och återupptar processen
Vad är huvudsyftet med Translation Lookaside Buffer (TLB)?
Att cache:a sidtabellsuppslag för snabbare adressöversättning.
TLB är en snabb cache i processorn som lagrar översättningar från virtuella adresser (VA) till fysiska adresser (PA).
När inträffar en page fault
En page fault inträffar när en process försöker komma åt en sida i sitt virtuella minnesutrymme som inte finns i RAM.
Vad är race condition?
En race condition uppstår när två eller fler trådar/processer får åtkomst till delade resurser samtidigt och resultatet beror på exekveringsordningen.
Vad är en critical section?
En kodsektion där delade resurser används.
Måste skyddas av synkroniseringsmekanismer.
Exempel: läsning/skrivning av global variabel, filaccess, mm.
Vad finns det för typer av semaforer?
Binära och räknande semaforer
Vad finns det för operationer för semaforer?
Initialize, wait (vänta på tillgänlig semaphor), signal (signalera att ledig finns) och destroy
Förklara vad en race condition är och hur man kan undvika det. Beskriv skillnaden mellan en mutex och en semafor.
Race condition uppstår vid samtidig åtkomst till delad resurs.
Undviks med mutex/semafor.
Mutex = binär semafor för mutual exclusion.
Semafor = räknare, används även för resursbegränsning.
Vad krävs för att ett race condition ska kunna uppstå?
Flera trådar använder en global variabel utan synkronisering
Vad är den huvudsakliga skillnaden mellan en binär semafor och en räknande semafor?
Räknande semaforer har ett värde > 1 och kontrollerar flera resurser
Vad används en mutex till?
En mutex används för att skydda en kritisk sektion från samtidiga åtkomster
Vad står IPC för?
Inter-Process Communication (IPC)
Vad innebär IPC? (inter process comunnication)
Inter-process communication (IPC) handlar om hur processer kommunicerar och samarbetar med varandra, trots att de kör isolerat i egna minnesutrymmen.
➡ Eftersom processer inte delar minne direkt, krävs särskilda tekniker för att utbyta data och koordinera beteenden.
Vad menas med Message Passing (Meddelandeöverföring)?
Processer skickar och tar emot meddelanden via OS-mekanismer (t.ex. sockets, pipes, queues)
Vad menas med Shared Memory (Delat minne)?
Två eller fler processer får gemensam åtkomst till ett särskilt minnessegment. Kräver synkronisering (t.ex. mutexar, semaforer) för att undvika race conditions.
Vad menas med Time-sharing systems (Tidsdelningssystem)
Bygger på multitasking och preemptiv schemaläggning.
Flera användare/processer delar på CPU:n i små tidskvanta (t.ex. 5 ms).
Operativsystemet byter snabbt mellan processer → ger illusionen av parallellitet.
📌 Exempel:
Moderna skrivbordsoperativsystem (Windows, macOS, Linux)
Studenter som kör flera program samtidigt (t.ex. webbläsare, kodeditor, Spotify)
🔑 Mål: Responsivitet & interaktivitet
→ Viktigt att användaren märker minimal fördröjning
Vad menas med Batch systems (Satsvisa system)
Processer körs i sekvens (en efter en) utan interaktion från användaren.
Vanligt i tidiga OS eller servermiljöer med stora jobbköer.
📌 Exempel:
Tidiga stordatorer
Moderna jobbschemaläggare (batch processing i t.ex. datacenter, databearbetning)
🔑 Mål: Genomströmning (throughput) och resurseffektivitet, inte snabb interaktiv respons.
Vad menas med Real-Time Systems (Realtidssystem)
Operativsystemet måste svara inom en strikt deadline – varje uppgift har ett fast tidskrav.
Används där fördröjning är oacceptabel, ofta inom säkerhetskritiska system.
📌 Exempel:
Flygplanskontrollsystem
Pacemakers
Industriella robotsystem
ABS-bromssystem i bilar
🔑 Mål: Predikterbarhet och timinggaranti, inte nödvändigtvis hög prestanda.
Vad är Katalogstruktur (Directory Structure)?
Kataloger (directories/folders) används för att organisera filer hierarkiskt.
Ett typiskt filsystem har en rotkatalog / (root) och därefter underkataloger och filer.
Kataloger är specialfiler som innehåller namn och pekare till filer och andra kataloger.
Vad är en inode?
Ett inode är en datastruktur i filsystemet som innehåller information om en fil (men inte själva filnamnet!).
Vad lagras i en inode?
Filens storlek
Tidsstämplar (skapad, modifierad, åtkomst)
Åtkomsträttigheter
Ägare
Pekare till block där filens data finns på disken
📌 Filnamnet lagras inte i inoden, utan i katalogfilen, som kopplar ett namn till ett inode-nummer.
Vad menas med blockallokering?
Eftersom filerna är för stora för att alltid lagras på en sammanhängande plats, delas de upp i block (t.ex. 4 KB/block). Filsystemet måste hantera vilka block som tillhör vilken fil.
Vanliga metoder för blockallokering:
- Contiguous Allocation: Filens block ligger direkt efter varandra på disken. ➕ snabb access, ❌ extern fragmentering.
- Linked Allocation: Filens block är spridda, varje block pekar på nästa. ➕ ingen fragmentering, ❌ långsam åtkomst.
- Indexed Allocation (FAT): Ett indexblock innehåller alla blockpekare. ➕ snabb slumpmässig access, ❌ extra
Beskriv vad som lagras i en inode. Förklara skillnaden mellan filnamn och inode.
- Filens storlek
- Tidsstämplar (skapad, modifierad, åtkomst)
- Åtkomsträttigheter
- Ägare
- ## Pekare till block där filens data finns på diskenKataloger kopplar namn till inode
Vilka olika Cache Mapping Techniques finns?
- Direct Mapping: Varje minnesblock kan endast ligga på en plats i cachen ➕ Enkelt, ❌ Lätt för konflikter
- Associative Mapping: Ett minnesblock kan lagras var som helst i cachen ➕ Flexibelt, ❌ Dyrt att söka
- Set-Associative Mapping: Kombination: block placeras i en av flera platser i ett visst “set” ➕ Bra balans mellan enkelhet och flexibilitet
Vad är ARQ (Automatic Repeat reQuest)
Ett felhanteringsprotokoll i kommunikationssystem som begär om-sändning av paket om de är felaktiga eller saknas (ex: Stop-and-Wait ARQ, Go-Back-N, Selective Repeat).
Vad är internet?
Ett globalt nätverk av sammankopplade system som använder TCP/IP-protokollstacken för kommunikation.
Vad står ARQ för?
Automatic Repeat reQuest
Vad är Mutual Exclusion?
En synkroniseringsteknik som ser till att endast en process/tråd åt gången får åtkomst till en delad resurs eller kritisk sektion.
Vad är user mode?
Icke-privilegierat körläge i en processor där vanliga program körs utan tillgång till systemkritiska instruktioner eller resurser (jämför: kernel mode).
Vad är en socket?
En gränssnittskomponent mellan applikationer och nätverket – används vid programmering av nätverkskommunikation (t.ex. via TCP eller UDP).
A mechanism that allows multiple processes to communicate over a network or between systems by sending and receiving messages.
Vad är system calls?
Gränssnittet mellan user mode och kernel mode, som tillåter användarprogram att begära tjänster från operativsystemet (ex: read(), write(), fork()).
Vad är Deadlock avoidance?
En strategi för att förhindra att deadlocks uppstår, t.ex. genom resursallokeringsalgoritmer som Banker’s algorithm, där systemet gör en säkerhetsanalys innan resurser tilldelas.
Vad är ett routing table?
En tabell i en router eller dator som visar vilken väg (next hop) ett paket ska ta för att nå en destination via nätverket.
Vad är “data segment”?
En del av en process minneslayout där globala och statiska variabler lagras under körning
Vad är PCB?
En datastruktur i operativsystemet som lagrar all information om en process: tillstånd, programräknare, CPU-register, minnespekare, PID etc.
Vanliga ARQ-protokoll?
Stop-and-Wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
Vad innehåller data segment?
The data segment är en del av processens minneslayout där:
Globala variabler (definierade utanför funktioner)
Statiska variabler (som behåller sitt värde mellan funktionsanrop)
lagras under programmets exekvering.
Vad innehåller text segment?
Text segment → Själva instruktionerna (programkoden)
Vad innehåller heapen?
Heap → Dynamiskt allokerat minne (malloc, new)
Vad innehåller stacken?
Stack → Lokala variabler, funktionsanrop
Skillnad mellan deadlock prevention och deadlock avoidance?
Deadlock prevention: Undviker att deadlockvillkor uppstår överhuvudtaget
Deadlock avoidance: Analyserar varje begäran och tillåter endast säkra tillstånd
Vad är convoy effekt?
Convoy effect uppstår främst i First-Come, First-Served (FCFS) schemaläggning, där:
En långsam/stor process ligger först i kön, och alla snabbare/små processer måste vänta bakom den, även om de skulle ha kunnat bli klara mycket snabbare.
📌 Resultat:
CPU och resurser utnyttjas ineffektivt
Hela systemets throughput minskar
Responsiviteten försämras kraftigt för små jobb
💡 Ett slags “resursskugga” skapas: alla andra får sitta fast i kön och vänta på att långsammaste jobben ska bli färdiga.
Vilken ordning kommer internet protocol stack?
Application - Message
Transport - Segment
Network - Packet
Link - Frame
Vad betyder /30?
När vi skriver en nätmask som /30, betyder det:
30 bitar används till nätverksdelen
De sista 2 bitarna (av totalt 32) är reserverade för hostadresser
Nätmask:
/30 = 255.255.255.252
→ binärt: 11111111.11111111.11111111.11111100
Antal adresser på /30?
Prefix: /30
Antal adresser: 4
Användbara hostar : 2
Antal adresser på /29?
Prefix: /29
Antal adresser: 8
Användbara hostar : 6
Antal adresser på /28?
Prefix: /28
Antal adresser: 16
Användbara hostar : 14
Antal adresser på /24?
Prefix: /24
Antal adresser: 256
Användbara hostar : 254
Vad innebär CIDR och vad står det för?
CIDR står för Classless Inter-Domain Routing
→ Det innebär att vi inte längre utgår från gamla klass A, B, C-nät, utan istället använder en flexibel prefixlängd (/x) för att ange hur många bitar som tillhör nätverksdelen.
Exempel:
/16 = 255.255.0.0 → 16 bitar nät-ID
/24 = 255.255.255.0 → 24 bitar nät-ID
CIDR används alltså för att:
Specificera nätstorlek exakt
Optimera IP-adressutrymme
Göra routing mer effektiv
Vad är ACID och vad står det för?
ACID är en akronym som beskriver de fyra viktigaste egenskaperna hos en korrekt och pålitlig databastransaktion.
När du kör en transaktion i en databas (t.ex. överför pengar mellan konton), så vill du att den ska uppfylla ACID-egenskaperna för att systemet ska vara pålitligt och konsekvent, även om något går fel (t.ex. strömavbrott, krasch etc).
Helheten i processen: Vad händer när en dator startar och ska nå en webbsida?
Vad innebär DNS och vad står den för?
DNS (Domain Name System) fungerar som internets “telefonkatalog”: det översätter domännamn till IP-adresser.
Process?
En process är en aktiv instans av ett program i exekvering. Det är inte bara själva programkoden, utan också:
Minnesutrymme (code, data, stack, heap)
Registerstatus
Processens tillstånd (Ready, Running, Waiting)
Tillhörande resurser (fildeskriptorer, etc.)
Dual mode?
Dual mode innebär att ett operativsystem delar upp exekvering i två lägen:
User Mode – begränsat läge där användarprocesser körs
Kernel Mode – privilegierat läge där operativsystemet har full åtkomst till resurser (I/O, minne, etc.)
💡 Varför viktigt?
Det skyddar systemresurser och hindrar användarprogram från att direkt manipulera hårdvara eller OS-funktioner.
Interrupts/Exceptions
Interrupts: Signaler från hårdvaran till CPU:n som avbryter aktuell exekvering för att något yttre har inträffat. Exempel: tangenttryckning, nätverkspaket, timer.
Exceptions (Traps): Signaler om ett fel eller händelse internt i processen, t.ex. division med noll eller ogiltig minnesåtkomst.
System call
Ett systemanrop (system call) är ett kontrollerat sätt för en användarprocess att be operativsystemet att utföra en tjänst åt den. Det är den enda vägen för en process i user mode att få tillgång till skyddade resurser via kernel mode.
Multiprogrammering
Multiprogrammering innebär att flera processer hålls i minnet samtidigt så att CPU:n kan växla mellan dem när någon väntar på I/O.
Det handlar alltså inte om att processerna körs parallellt (det är multitasking eller multiprocessing), utan om att CPU:n alltid hålls upptagen.
ARQ
ARQ (Automatic Repeat reQuest) är en teknik inom nätverkskommunikation som ser till att data levereras korrekt genom:
ACK (Acknowledgement) – mottagaren bekräftar att paketet tagits emot.
Timeouts – om ACK inte tas emot i tid, antar avsändaren att paketet förlorats.
Retransmission – paketet skickas om.
Sliding Windows at Sender and Receiver
Sliding window-protokollet är en teknik som används för effektiv och kontrollerad dataöverföring.
Både avsändare och mottagare håller ett “fönster” över vilka paket som får skickas / tas emot utan väntan på ACK.
💡 Fördelar:
Pipelining – flera paket kan skickas innan man behöver vänta på ACK
Kontrollerar både flöde och kongestion
Effektivare än stop-and-wait
🧠 Begrepp:
Window size = antal paket som får skickas innan ACK behövs
Cumulative ACK = mottagaren bekräftar det högsta mottagna sekventiella paketet
Selective Repeat vs Go-Back-N
Internet protocol stack (4-layer model), Protocols
Rita tabellen (Lager, Funktion, protokoll)