IKT218 prøveeksamen handler i stor grad om hvordan operativsystemer fungerer, hvordan x86-arkitekturen er bygget opp, hvordan minne styres, hvordan interrupts fungerer, og hvordan sentrale systemkomponenter som GDT, IDT, PIC og PIT brukes. For å forstå eksamen godt må man først forstå de grunnleggende byggesteinene. Et operativsystem er hovedprogrammet som styrer hele datamaskinen. Det fungerer som mellomledd mellom brukerprogrammer og maskinvaren. Programmer som Chrome, Spotify eller et tekstredigeringsprogram kommuniserer vanligvis ikke direkte med CPU, RAM eller harddisk. I stedet bruker de operativsystemet, som organiserer ressurser, fordeler prosessortid, styrer minne, håndterer filer og kommuniserer med hardware via drivere. Operativsystemets viktigste rolle er altså å styre systemets ressurser på en sikker og organisert måte. Når et program kjører, kalles det en prosess. En prosess er altså et aktivt program i kjørende tilstand. Hvis et program bare ligger lagret på harddisken, er det bare en fil, men når det åpnes og bruker systemressurser, blir det en prosess. Hver prosess får sitt eget minneområde og sine egne ressurser, slik at prosesser holdes adskilt fra hverandre. Dette gjør systemet mer stabilt, fordi ett program normalt ikke skal kunne ødelegge et annet. Multitasking betyr at operativsystemet kan håndtere flere prosesser samtidig. Hvis man for eksempel har både nettleser, musikkprogram og kodeeditor åpne samtidig, håndterer operativsystemet flere prosesser parallelt ved å bytte raskt mellom dem. Multithreading betyr derimot at én enkelt prosess kan ha flere tråder, altså flere arbeidsoppgaver, som kjører samtidig innenfor samme program. For eksempel kan en nettleser ha én tråd som spiller video, én som håndterer lyd og én som registrerer tastaturinput. System calls er en sentral del av operativsystemet. System calls er grensesnittet mellom brukerprogrammer og operativsystemet. Når et program ønsker å lese en fil, skrive til disk eller bruke hardware, må det be operativsystemet om dette gjennom system calls. Dette gir sikkerhet og kontroll fordi programmer ikke får fri direkte tilgang til hele maskinen. Device drivers, eller enhetsdrivere, er programvare som lar operativsystemet kommunisere med hardware. Uten drivere ville ikke operativsystemet forstå hvordan det skal snakke med tastatur, skjerm, harddisk eller andre enheter. Driveren fungerer som en oversetter mellom operativsystemet og den fysiske enheten. Minnehåndtering er også et hovedtema. Operativsystemet må fordele minne til programmer, beskytte minnet og bruke det effektivt. Dette gjøres blant annet gjennom paging, segmentation og virtual memory. Paging deler minnet inn i sider, segmentation deler det inn i segmenter med regler og grenser, mens virtual memory lar programmer bruke virtuelle adresser som operativsystemet oversetter til faktiske fysiske adresser i RAM. Virtual memory gir bedre sikkerhet, bedre organisering og gjør at systemet kan håndtere minne mer fleksibelt. I x86-arkitektur starter systemet i real mode. Real mode er en enkel 16-bits modus med direkte tilgang til fysisk minne og lite beskyttelse. Dette brukes typisk under oppstart. Protected mode er mer avansert og brukes i moderne systemer. Protected mode gir 32-bits funksjonalitet, minnebeskyttelse, virtual memory og tilgangskontroll. Overgangen fra real mode til protected mode er en viktig del av systemoppstart og OS-utvikling. CPU-en bruker registers, som er små og svært raske lagringsplasser inni prosessoren. General-purpose registers som EAX, EBX, ECX og EDX brukes til generell databehandling. Segment registers som CS, DS og SS brukes til segmentering, mens control registers som CR0 og CR3 brukes til kontroll av CPU-modus og minnestyring. For eksempel brukes CR0 til å aktivere protected mode. GDT, eller Global Descriptor Table, er en systemomfattende tabell som beskriver minnesegmenter. Den inneholder informasjon som base address, limit, access rights og granularity. GDT brukes for å definere hvordan minneområder skal brukes og beskyttes. LDT, eller Local Descriptor Table, fungerer lignende, men er knyttet til én spesifikk oppgave eller prosess. IDT, eller Interrupt Descriptor Table, brukes derimot til interrupts. IDT forteller CPU-en hvilken kode som skal kjøres når et interrupt eller en exception oppstår. Interrupts er signaler som forteller CPU-en at noe krever oppmerksomhet. Hardware interrupts kommer fra hardware, som tastatur eller mus. Software interrupts kommer fra programmer. IRQ, Interrupt Request, er selve forespørselen fra hardware. Når et tastatur registrerer et tastetrykk, sendes for eksempel en IRQ. ISR, Interrupt Service Routine, er koden som faktisk kjøres som respons på interruptet. PIC, Programmable Interrupt Controller, håndterer og prioriterer interrupts fra flere hardware-enheter før de sendes videre til CPU-en. Dette gjør at systemet kan organisere hvilke interrupts som skal behandles først. PIT, Programmable Interval Timer, er systemets timer. PIT genererer periodiske interrupts som brukes til klokke, timing og task scheduling. Dette er avgjørende for at operativsystemet skal kunne holde styr på tid og fordele CPU-tid mellom oppgaver. Når det gjelder minne i programmering, er stack og heap sentrale begreper. Stack brukes hovedsakelig til lokale variabler og funksjonskall, og styres automatisk. Heap brukes til dynamisk minneallokering, som malloc og calloc i C, og må styres mer manuelt. Hvis et program allokerer minne på heapen, men ikke frigjør det, kan det oppstå memory leaks. Compiler og linker er også viktige. Compiler oversetter kildekode til object code eller machine code. Linker kombinerer object files og biblioteker til ett ferdig kjørbart program. Static linking betyr at bibliotekkode bygges inn i programmet ved kompilering, mens dynamic linking betyr at biblioteker kobles til under runtime. C preprocessor er et tidlig steg i C-kompilering og håndterer blant annet #include, #define og conditional compilation før selve kompileringen skjer. I kodegjenkjenning er det spesielt viktig å kjenne igjen GDT-strukturer. Hvis man ser felt som limit_low, base_low, base_middle, access, granularity og base_high, handler det svært sannsynlig om oppsett av en GDT entry. For denne prøveeksamenen er det spesielt viktig å kunne forklare forskjellen mellom multitasking og multithreading, real mode og protected mode, GDT og IDT, hardware og software interrupts, stack og heap, samt static og dynamic linking. Kort oppsummert tester denne eksamenen forståelse av hvordan et operativsystem organiserer programmer, minne, hardware og CPU gjennom strukturerte mekanismer. Kjernen er operativsystemets rolle, x86-moduser, minnehåndtering, descriptor tables, interrupts og systemtiming. Hvis man forstår hvordan disse delene henger sammen som et samlet system, blir både multiple choice-spørsmål og kodeoppgaver langt lettere å forstå

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/20

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 8:40 AM on 5/9/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

21 Terms

1
New cards

Operating System (OS)

The main program that governs the operation of a computer, acting as an intermediary between user programs and the hardware.

2
New cards

Process

An active program in execution, utilizing system resources.

3
New cards

Multitasking

The capability of an operating system to manage multiple processes simultaneously.

4
New cards

Multithreading

A single process that can have multiple threads, allowing for concurrent execution of tasks within the same program.

5
New cards

System Calls

The interface between user programs and the operating system, allowing programs to request services from the OS.

6
New cards

Device Drivers

Software that enables the operating system to communicate with hardware devices.

7
New cards

Memory Management

The process by which an operating system allocates memory to programs, protects memory, and uses it effectively.

8
New cards

Real Mode

A basic 16-bit mode in x86 architecture allowing direct access to physical memory with minimal protection.

9
New cards

Protected Mode

An advanced mode in x86 architecture that provides 32-bit functionality, memory protection, and access control.

10
New cards

Global Descriptor Table (GDT)

A system-wide table describing memory segments, including base address, limit, access rights, and granularity.

11
New cards

Interrupt

Signals indicating that the CPU should address an event requiring attention.

12
New cards

Programmable Interrupt Controller (PIC)

Hardware that handles and prioritizes interrupts from multiple devices before delivering them to the CPU.

13
New cards

Programmable Interval Timer (PIT)

The system timer that generates periodic interrupts for timing and scheduling tasks.

14
New cards

Stack

A memory area primarily used for local variables and function calls, managed automatically.

15
New cards

Heap

A memory area used for dynamic allocation, requiring manual management by developers.

16
New cards

Compiler

A tool that translates source code into object code or machine code.

17
New cards

Linker

A program that combines object files and libraries into a final executable program.

18
New cards

Static Linking

Building library code into the program at compile time.

19
New cards

Dynamic Linking

Linking libraries at runtime instead of compile time.

20
New cards

C Preprocessor

An initial step in C compilation that manages directives like #include and #define before compilation.

21
New cards

Interrupt Descriptor Table (IDT)

A table that tells the CPU which code to execute when an interrupt or exception occurs.