Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk dopsys 1
Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2
Praktiske oplysninger dopsys 3
Forelæsninger Onsdag 14.15-16, Store Auditorium, IT-huset Fredag 12.15-14, Store Auditorium, IT-huset 4 timer pr. uge, evt. lidt mindre dopsys 4
Undervisningsmateriale Lubomir F. Bic og Alan C. Shaw Operating Systems Principles (OSP) 1. udgave, Pearson-Education, 2003 ISBN 0-13-026611-6 + supplerende materiale som kan hentes via www-siderne. dopsys 5
Øvelser Alle øvelser foregår i Stibitz: Hold 1: mandag 10-14, Stibitz-113 Hold DAT1: fredag 8-12, Stibitz-113 Hold DAT2: onsdag 10-14, Stibitz-113 Hold DAT3: mandag 16-20, Stibitz-123 Holdbytte under hensyntagen til holdstørrelser. Styres af instruktorerne. dopsys 6
Ugesedler og opgaver Ugeseddel for uge x offentliggøres på hjemmesiden ca. midt i uge x-1. Tavle- og diskussionsopgaver Ugeopgave Ugeopgaver er obligatoriske og skal laves i grupper. 2-3 personers grupper dannes ved de første øvelser. dopsys 7
Eksamen Kræver at samtlige ugeopgaver er godkendt. Eksamen er mundtlig, uden forberedelsestid og varer 20 minutter/studerende (15 minutters til eksamination og 5 minutter til votering). Eksamenspensum inkluderer ugeopgaverne. Medbring en kopi af besvarelser af ugeopgaverne med instruktorens kommentarer og underskrift. Vær opmærksom på tilmelding! dopsys 8
spørgsmål om praktiske ting? dopsys 9
Q/A Hvilke operativsystemer har du brugt? dopsys 10
Operativsystemer Målbeskrivelse Målet med kurset er at give den studerende kendskab til opbygning og virkemåde af operativsystemer. Herunder hvorledes operativsystemer dels kan opfattes som en abstrakt maskine, der stiller en række primitiver og abstraktioner til rådighed via systemkald, dels som en administrator af maskinresurser, såsom CPU, lager og ydre enheder. dopsys 11
Organisation af en Computer.. kan opfattes som niveauer af virtuelle maskiner*: software hardware *A.S. Tanenbaum: Structured Computer Organisation. 5th edition, Prentice-Hall, 2005. dopsys 12
ISA-niveauet.. baseret på von Neumann maskinarkitektur: Program og data Centrale begreber: Registre (eks: PC, SP, PSW, ) Lagermodel (eks: 4 Gb byte-adresserbart lager) Instruktionssæt, instruktionsformat Datatyper og adresseringformer registre ydre enheder (I/O devices).. instruktioner udføres via fetch-decode-execute cycle implementeret i hardware dopsys 13
Arkitektur-varianter Shared-memory multiprocessor: Multicomputer: Distributed-memory multiprocessor: dopsys 14
Hardware vs. Applikations niveau Hardware/ISA niveau Maskininstruktioner: Læse/skrive registre og lagerceller Aritmetiske/logiske operationer Forgreninger og hop Lageret: Lineær sekvens af celler Eksternt lager (eks harddisk): Spor og blokke Læse og skrivehoveder Ydre enheder: Tilgang via ydreenhedsregistre Applikationsniveau Klasser oa. komplekse typer Kontrolstrukturer Moduler Procedurer/metoder Programmer/processer Filer og kataloger Uniformt højniveauinterface Compiler Assembler Linker OS software dopsys 15
Eksempel: udskrivning af fil #include <stdio.h> int main(int argc, char *argv[]) { int c; FILE *fp; fp = fopen(argv[1],"r"); c = getc(fp); while (c!= EOF) { putchar(c); c = getc(fp); } } exit(0); dopsys 16
Symbolsk maskinsprog.globl main.type main, @function main: pushl %ebp movl %esp, %ebp subl $24, %esp movl (%eax), %eax movl %eax, (%esp) call fopen movl %eax, -8(%ebp) movl -8(%ebp), %eax movl %eax, (%esp) call _IO_getc movl %eax, -4(%ebp).L2:.L4:.L3: cmpl $-1, -4(%ebp) jne.l4 jmp.l3 movl -4(%ebp), %eax movl %eax, (%esp) call putchar movl -8(%ebp), %eax movl %eax, (%esp) call _IO_getc movl %eax, -4(%ebp) jmp.l2 movl $0, (%esp) call exit dopsys 17
%>cat eks.txt dopsys %>strace -o syscalls.log example eks.txt execve("./example", ["example", "eks.txt"]= 0 uname({sys="linux", node="zebra03",...}) = 0 brk(0) = 0x804a000 fstat64(3,...) = 0 munmap(0xb7fdf000, 134002) = 0 brk(0) = 0x804a000 brk(0x806b000) = 0x806b000 open("eks.txt", O_RDONLY) = 3 fstat64(3,... = 0 mmap2(null, 8192,...) = 0xb7ffe000 read(3, "dopsys\n", 8192) = 7 fstat64(1,...) = 0 mmap2(null,...) = 0xb7ffd000 write(1, "dopsys\n", 7) = 7 read(3, "", 8192) = 0 munmap(0xb7ffd000, 4096) = 0 exit_group(0) =? dopsys 18
Q/A C-programmering er vigtigt i dette kursus, men forudsættes kendt eller læres ved selvstudium Hvilke forudsætninger har du i C? dopsys 19
OS som udvidet maskine..implementerer en samling primitiver kaldet systemkald:.. maskinnære detaljer er abstraheret væk. dopsys 20
OS som virtuel maskine.. hardware-resurser deles mellem programmer under afvikling: Virtuel maskine til rådighed for hvert program under afvikling. Understøtter deling af de fysiske maskin-resurser. dopsys 21
OS som resurse-administrator.. hardware-resurser skal udnyttes bedst muligt : Aspekter: Adgang til resurser. Parallelisme og udnyttelse. Fairness og fremdrift. Responstid og deadlines. dopsys 22
Hardware Interface Systemkald Virtualisering Resurse-administration Traps Interrupts CPU tilstande dopsys 23
.. intern hændelse i CPU en: Traps Eksplicit: supervisor call (SVC) Implicit: division med 0, lagertilgang, dopsys 24
Interrupts.. hardware signal fra ydre enheder: Process management: timeout interrupt og schedulering. Håndtering af ydre enheder: ved afslutning af I/O operationer. dopsys 25
CPU tilstande Behov for at kontrollere udførelsen af visse instruktioner: Tilgang til ydre enheder Tilgang til system-registre og -flag Systemtabeller CPU tilstande: Privileged / kernel / supervisory mode: Kan bruge det fulde instruktionssæt Non-privileged / user mode: Kan kun bruge et begrænset instruktionssæt Tilstandsskift sker i forbindelse med: Interrupts og traps Systemkald dopsys 26
Q/A Forklar hvad der kan gå galt hvis CPUtilstande afskaffes dopsys 27
Systemkald.. udføres i privilegeret CPU-tilstand: Typiske kategorier af systemkald: Styring af processer Brug af memory Tilgang til filer Input/output dopsys 28
Udvalgte POSIX systemkald dopsys 29
Vigtige emner i kurset Processer og koordinering: Begreber omkring processer og tråde. Kommunikation og synkronisering. Schedulering og deadlocks. Lageradministration (memory management): Virtuel hukommelse. Paging og segmentering. Filsystemer og input/ouput Filer og kataloger. Device-drivere og buffering. dopsys 30
Kursets organisering Forelæsningerne: Grundlæggende principper og begreber bag operativsystemer. Unix/Linux OS vil oftest blive brugt som eksempel. Øvelserne: Opgaver/diskussion i forlængelse af forelæsninger. C Programmering under Linux OS. Eksperimenter med Linux OS kernen via VMware. dopsys 31
Opsummering Perspektiv på operativsystemet: Udvidet maskine (systemkald). Virtual maskine for programmer. Resurse-administrator. Hardware interface: Traps og interrupts CPU tilstande: privilegeret/uprivilegeret tilstand User-mode vs. kernel-mode dopsys 32