Operativsystemer - dopsys

Relaterede dokumenter
Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Computere og Netværk (dcomnet)

Principper for Samtidighed og Styresystemer

Processer og tråde. dopsys 1

Systemkald i Unix/Linux

Styresystemer og tjenester

Algorithms & Architectures II

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Pentium IA-32 Maskinarkitekturen

Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

1 Operativsystemer oversigt

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Eksamen dcomnet Q2/2010. Navn

Principper for Samtidighed og Styresystemer

Design Systemkald. User-mode Linux, The Linux kernel/

Schedulering. dopsys 1

VMware og dopsys-linux

Introduktion til Operativsystemer

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

Introduktion til C programmering

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Vidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54

Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]

Algoritmer og Datastrukturer 1

DM14-1. Obligatorisk opgave F.06. System Call. Jacob Aae Mikkelsen Ingen andre gruppe medlemmer. 6. marts 2005

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

Niveauer af abstrakte maskiner

Datatekniker med programmering som speciale H5

Introduktion til DM507

Typisk PC arkitektur. Synkronisering ved aktiv venten

DM507 Algoritmer og datastrukturer

Om at gå til mundtlig eksamen en manual for studerende

Valgfag for PBA11 - efterår 2015

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Installation af en virtuel maskine

Semesterbeskrivelse Innovation og Digitalisering, 1. semester.

Datatekniker med programmering som speciale

Programmering 2. dprog2 E

3. Computerens opbygning.

ESP30076 임베디드시스템프로그래밍 (Embedded System Programming)

Programmering i C. Lektion december 2008

STUDIEORDNING for det halvårlige Adgangskursus til maskinmesteruddannelsen på Aalborg Universitet i Aalborg og Frederikshavn

Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Programmering 2. dprog2 E

Arduino Programmering

Virksomhedens IT værktøjer

Lidt orientering om, hvad en computer består af

Transkript:

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