1 Operativsystemer oversigt



Relaterede dokumenter
Lageradministration. dopsys

Sider og segmenter. dopsys 1

Styresystemer og tjenester

Sider og segmenter. dopsys 1

Lageradministration Paging og segmentering

Operativsystemer. Tobias Brixen Q2-2012

Koordinering. dopsys

Principper for Samtidighed og Styresystemer

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

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

Input/Output: Disk & Clock. dopsys

Processer og tråde. dopsys 1

Planen for idag. Datalogi 1F Forår Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Filsystemer. dopsys. fredag den 26. november 2010

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Lageradministration Intel Pentium og Unix/Linux

Schedulering. dopsys 1

Deadlocks dopsys 1 onsdag den 8. december 2010

Schedulering. dopsys 1

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Algorithms & Architectures II

Interconnect. Front end interface

Lageret er hierarkisk fokus nu: disk

Implementation af Koordinering. dopsys 1

Processer og koordinering. dopsys 1

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

Filsystemer: Anvendelse. dopsys

Schedulering. dopsys

Filsystemer: Implementation. dopsys

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet

Operativsystemer - dopsys

Uniprocessor Scheduling

Principper for Samtidighed og Styresystemer

Styresystemer og tjenester

Real-time programming safety in Java and Ada

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

Routing tables Processer Tråde Hukommelse. Operativsystemer og netværk Lektion 5. I/O Linux Debian Webserver

1. Forklar sammenhængen mellem sektor, spor (track) og cylinder.

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

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager

Multiprogrammering og operativsystemer i Danmark

Operativsystemer - dopsys. Erik Ernst

Styresystemer og tjenester

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances.

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

Typisk PC arkitektur. Synkronisering ved aktiv venten

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute

Arduino Programmering

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni % 2 10 % 3 25 % 4 10 % 5 30 %

Principper for Samtidighed og Styresystemer

Computerens Anatomi. Af Martin Arnetoft

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Processer og koordinering

Planen for i dag. Logiske og fysiske adresser. Systemarkitektur. Binding af programkode til lager. Hardware understøttelse af lageradministration

NC_71 Quick Guide v1.0. CJ1W-NC_71 Mechatrolink-II Position Control Unit. Quick Guide

Microcontroller, Arduino

SW6 SAI. Services 1: (Fil) service admin torsdag 7/4 05

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

DATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004

Vigilante: End-to-End Containment of Internet Worms. OS Seminar, DIKU efterår Præsentation af Troels Larsen.

Database Implementering

Hvad skal du vide for at bygge din egen computer?

3. Computerens opbygning.

EasyRun En løbers bedste ven

uprocessorens hardware

Bits DM534. Rolf Fagerberg, 2012

System Arkitektur og Integration

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol

Datamaters arkitektur og programmering

Best Practices: I/O-konfiguration. Thomas Damgaard, Chefkonsulent, SAS Institute

Processer. DS kursusgang nr. 2: Procestræer. ps: Vis processer

NT PDC Udarbejdet af Kenneth Dalbjerg

Operativsystemer - dopsys. Erik Ernst

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Citrix CSP og Certificate Store Provider

NC_8_ Quick Guide v1.0. CJ1W-NC_8_ Position Control via EtherCAT. Quick Guide

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

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

Søren Guldbrand Pedersen Diverse noter til PC & Net Side 2 af 8. TYPE - viser fil eller program på skærmen.

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Planen for idag. Opdatering af delt lager

Agenda. Muligheder for anvendelse. Komponenter. Features. Restore muligheder. DR og TSM integration. Repository. Demo. Spørgsmål

DATALOGI 1F. Vejledende løsninger til Skriftlig eksamen torsdag den 30. maj 2002

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol

STUXNET. Ondsindet angreb på SCADA server Hvad er nyt og hvordan sker dette? Johan Peder Møller

WINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9

Systemkald i Unix/Linux

Input/Output: Brugergrænseflader. dopsys

Hurtig Start Guide 1

Niveauer af abstrakte maskiner

Salg af servere. Torben Vig Nelausen Produktchef Windows Server Familien

DM507 Algoritmer og datastrukturer

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

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

Jobliste overblik

Chapter 10: File System Interface

Transkript:

1 Operativsystemer oversigt Hvorfor OS virtualisering Abstraktion (processer, virtual hukommelse, filer) Kernel mode og user mode Systemkald (slide 31) Interrupts At levere en simplere model af computeren til programmer, og håndtere ekstern hardware Abstraktion Processer, virtuel hukommelse og filsystemer Virtualisering af resourcer (enhver process har egne resourcer) Kernel mode og user mode (sikkerhed) Systemkald tilgang til hardware går gennem OS (sikkehed, abstraktion, simplicitet) Process vil læse fil OS gør dette, da OS styrer filsystem Trap til kernen Skift til kernelmode, OS arbjeder, returner til userspace (slide 31) Fork() opretter ny process og returnerer pid Filsystem kald hvis processer kan tilgå direkte, har OS ikke styr på filsystemet Kernel mode complete access to hardware and any instruction the computer can execute User mode can only access a subset of machine instructions, i.e. I/O is forbidden Interrupts signal til CPU om noget er sket (fx keyboard input) Undgå busy wait Kan afbryde nuværende beregning (interrupts kan deaktiveres)

2 Processer og tråde Hvad er en process? Hvad er tråde? (slide 34) Process table Schedulering fairness balance Proces program under afvikling (centralt begreb for virtualisering) Har eget adresserum i memory Kan kommunikere via. semaforer, monitors og message passing (mutual exclusion) States running (aktiv), runnable (klar), blocked (venter påydre enhed fx keyboard input) Multiprogrammering afvikling af flere processer samtidigt Thread Har egen stak men fælles adresserum (slide 34) Userspace threads hurtigere, men problem ved blocking syscalls Tillader parallel udførsel Processen kan arbejde videre selvom der ventes på input Process table (Process control blocks) Alt information om processerne er gemt her (slide 14) Skift af process opdatering af process table Opdeles i generel information og trådspecifik information (fx trådens stak) Scheduling skift mellem threads eller processer IO bound vs CPU bound blanding for maksimal CPU brug Fairness (alle får CPU tid, undgå starvation), balance (flest muligt aktive enheder)

3 Proceskoordinering Kritiske regioner Race condition Mutual exclusion semaforer, monitors Test and set lock Spin lock Preemptive og nonpreemptive scheduling Kritiske regioner regioner der kan lede til race conditions (spooler eksempel overskrive værdier) Mutual exclusion undgå race condition, tillad kun en process af gangen Petersons algoritme (slide 21) Starvation, deadlocks, livelocks Semaforer ikke negativt heltal. Kan implementeres ved Test and set lock Monitors styrer tilgang til delt resource. Indbygget mutual exclusion (nested monitors deadlocks) Wait, notify kald (ikke implementeret i C) Test and set lock atomar instruktion der tester og opdaterer en lagercelle Spin locks locks der benytter busy waiting. Brug kun når det vides at ventetiden er kort! Nonpreemptive schedulering der skal scheduleres ved terminering, blokering og ny process Preemptive schedulering process start, process bliver runnable og efter tidskvantum

4 Schedulering Preemptive og nonpreemptive Schedulering prioriteter, fairness, balance system typer batch, interaktiv, realtid first come first served round robin fair share user threads og kernel thread (slide 17) Preemptive vs. nonpreemptive må CPU tages fra processen eller ej Scheduling skift mellem threads eller processer Prioriteter process med højest prioritet køres (kan lede til starvation) IO bound vs CPU bound blanding for maksimal CPU brug Fairness (alle får CPU tid, undgå starvation), balance (flest muligt aktive enheder) Slide 8 forskellige systemer Batch systemer ingen bruger venter på svar (fx beregning af renter i banker) maximer udført arbejde, maximer CPU brug Interaktive systemer normalt system, preemption, Hurtigt svar, opfyld brugerens forventninger Realtidssystemer afhængig af timing (multimedia, fylde flasker) (applikationer ofte kendt) Overholde deadlines Algoritmer First come first served nonpreemptive batchsystemer Round Robin Vælg den næste i en normal kø (fairness problem ved flere brugere) Fair share giver lige meget CPU tid til alle brugere User threads vs kernel threads (slide 17)

5 Lageradministration Basale elementer Lager uden abstraktion (slide 6) Swapping statisk og dynamisk reallokering (slide 7) håndtering af frie blokke Register, cache, RAM, disk (administreres af OS) (forskellig tid at tilgå) Lager uden abstraktion absolutte adresser bruges (brugt i gamle dage (slide 6)) Multiprogrammering Swapping Flyt alt ud på disk og hent ny process ind i ram (tager lang tid) Statisk reallokering når et program loades adderes første memoryadresse til alle adressereferencer Dynamisk reallokering logiske adresser konverteres til fysiske ved brug af base register Base starten på processens adresserum (bruges ved logisk fysisk konvertering) Limit længden af processens adresserum (sørger for processer ikke tilgår andres data) Swapping bruges hvis der ikke er plads til alle processer (memory compaction tager lang tid) Frie blokke kan håndteres af liste eller bitmap (slide 14) Bloksammensmeltning nabohuller skal sammensmeltes ved deallokering (evt slide 17)

6 Lageradministration Virtuelt lager Virtual memory Overlays Paging page table og frame table algoritmer (slide 33) segmentation Virtual memory når processer skal bruge mere memory end der fysisk er Overlays opdel programmer i overlays og hav en overlay manager til at swappe disse ind og ud af memory Paging Opdel lageret i page frames af bestemt størrelse og load enkelte pages fra disk MMU oversætter virtuelle adresser til fysiske adresser (page, offset) (slide 21) Page faults når en process skal bruge en side der ikke er i fysisk memory TLB hurtigere opslag end page table Page table indgang for hver virtuel adresse (brug TLB for hurtigere opslag) Frame table indgang for hver fysisk adresse, giver langsommere opslag (omvendt page table) Indekseret efter haskoden på virtuel adresse Page replacement algoritmer (bruges ved page faults) Aging markerer pages der blev refereret i denne clockcycle (Software simul. af LRU) (slide 33) Working Set Clock sammensætning af clock og workingset Segmentation todimentionelt adresserum (fx smart ved compilere) Kode og stak kan gro seperat af hinanden Paging og segmentation bruges sammen (slide 22)

7 Filsystemer Filbegrebet filtyper, filstruktur, filattributter Organisering af filer (slide 47) Directories Filbegrebet abstraktion fra data på disken Filtyper behandles forskelligt af programmer (OS skal kun kende eksekverbare) Filstruktur betragtes som sekvens af bytes. OS kommer ikke i vejen (benyttes af UNIX og Windows) Filattributter attributter som protection, password, creation time Organisering af filer på disk Sammenhængende blokke effektiv og simpel, men giver høj fragmentering Linked list FAT god udnyttelse af diskplads kan gemmes i ram eller pointer i hver blok (slide 47) I nodes indeholer data om filer, ligger et kendt sted på disken så de let kan slåes op (slide 49) Directories Samling af filer, hierarkisk system et directory er en fil der indeholder [i number, filename] par Hardlinks refererer til filens i node Symlinks indeholder stien til den linkede fil (ødelægges når filen slettes)

8 Input/Output Basale elementer Drivere block og character devices memory mapped IO Polling, interrupts, DMA Buffere OS kender ikke devices så drivere leverer et kendt interface til enheden Block devices outputter og accepterer kun datablokke af bestemt størrelse (fx disk, usb) Character devices outputter og accepterer kun character streams (fx keyboard, højtaler) Memory mapped IO CPU kommunikerer med enheder på samme måde som lageret (RAM) Fordele samme interface som memory, nem tilgang fra højniveausprog, nem beskyttelse Ulemper undgå caching, devices skal lytte på memorybus, ligner brug af lager men er anderledes Polling busy wait, CPU tid spildes på ingenting Interrupts mange kontekstskift og stor CPU overhead (interrupt ved hver byte) DMA polling, men DMA venter i stedet for CPU (interrupt ved n bytes), stjæler bussen, langsom CPU Buffere fx disk, hvor bytes kommer med konstant fart. Hvis bussen er optaget mistes de.

9 Input/Output Devices Diske struktur, scheduling (slide 30 + 31) Bad sectors RAID Stable storage ECC Diske stort sekundært lager (slide 7) opdelt i sektorer og cylindere OS ser kun virtuel opdeling, disk controller tager sig af fysisk placering Disk schedulering shortest seek first og elevator algorithm (slide 30 + 31) Bad sectors (slide 32) RAID flere diske der arbejder sammen (højere hastighed og/eller højere stabilitet) RAID 0 Striping split filen op og distribuerer den over diske RAID 1 Mirroring samme som RAID 0 men med backup diske RAID 4 Som RAID 0 med errorcorrection (XOR alle strips) RAID 5 Som RAID 4 men parity er spredt ud over diske (undgå bottleneck) Stable storage to identiske diske med ECC (Error Correction Code) til validering Stable read (læs og valider med ECC), stable write (skriv til begge diske), recovery

10 Deadlocks Deadlock Coffman Resursegrafer (slide 26) Detection, avoidance, prevention (slide 38) Starvation Communication deadlock Deadlock processer er deadlocked hvis de venter på en event der kun kan forårsages af en anden process Mutual exclusion, Incremental acquisition, No preemption, Wait for cycle Resursegrafer cykler er deadlocks (slide 26) Detection tillad deadlocks og fjern dem når de opstår Opdag deadlocks (matrix) (slide 38) Genopretning preemption, rollback og stop processor Aviodance undgå deadlocks før de opstår Skal vide hvilke resurser processerne vil benytte Prevention Opbyg systemet så deadlocks ikke kan opstå (fjern en af Coffmans betingelser) Mutual exclusion spool everything (printer daemon) Incremental acquisition tag resurser når processen startes No preemption Fjern resurser fra processer Wait for cycle giv alle resurser et nummer. Tag resurser i stigende orden Starvation en process bliver aldrig kørt da den blokeres af en anden Communication deadlock fx netværk, send pakke og vent på svar. pakken når aldrig frem