Introduktion til Operativsystemer
|
|
- Ingrid Lauritsen
- 7 år siden
- Visninger:
Transkript
1 Introduktion til Operativsystemer 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
2 Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 2
3 Formål Introduktion af de basale egenskaber ved moderne operativsystemer, såsom - Processer, tråde og deres planmæssige udførsel - Hukommelseshåndtering og virtuel hukommelse 3
4 Udfordring Datalogerne havde dcomark sidste år IT erne får dcomark i næste kvarter Så hvordan fungerer computere? 4
5 Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 5
6 Hvad er en computer? En maskine, der udfører beregninger angivet som instruktioner i et program 6
7 Hvad er en computer? Maskine - opbygget af alt fra mekanik, relæer, radiorør, og (i nutiden) transistorer. Fremtidens maskiner kan være optiske, carbonnanofibre, DNA eller superpositioner af afkølede atomer i kvantecomputere Instruktioner - simple operationer: Læg to tal sammen, sammenlign to værdier, flyt en værdi fra ét sted til et andet, Program - en sekvens af instruktioner. Skabt direkte af et menneske, eller (typisk) indirekte v.hj.a. en oversætter eller fortolker 7
8 Computergenerationer 0. generation: - Mekaniske computere ( ) 1. generation: - Radiorør ( ) 2. generation: - Transistorer ( ) 3. generation: - Integrerede kredsløb (IC) ( ) 4. generation: - Højt integrerede kredsløb (VLSI) (1980- ) 5. generation: - Lav energi, pervasive computing, IT i alting (nu og altid) 8
9 Moore s lov (bedre: kurve) CPUer og hukommelse opbygges af transistorer - Grundet bedre produktionsformer fordobles transistortætheden ca. hver 18. måned Det giver dobbel kapacitet, og ~40% højere hastighed - da transistorerne kommer tættere på hinanden 9
10 Multilevel maskiner Vi ønsker at programmere computere, men ikke på computerens præmisser - dvs. den rå hardware bestående af gates og transistorer addresseret med nuller og ettaller (eller kabler og kontakter) Løsning: Skab en virtuel maskine, der er enklere, og som kan køre på maskinen - den skal skrives én gang per maskine - En virtuel maskine definerer instruktioner og datatyper, og er blot endnu en computer, som vi kan skrive virtuelle maskiner til, som var dén en fysisk computer - som bliver mere og mere lettilgængelig - samt langsommere og langsommere, som vi putter lag på lag af abstraktioner 10
11 Virtuelle/Abstrakte maskiner Level n Virtual machine Mn, with machine language Ln Programs in Ln are either interpreted by an interpreter running on a lower machine, or are translated to the machine language of a lower machine Level 3 Level 2 Level 1 Level 0 Virtual machine M3, with machine language L3 Virtual machine M2, with machine language L2 Virtual machine M1, with machine language L1 Actual machine M0, with machine language L0 Programs in L2 are either interpreted by interpreters running on M1 or M0, or are translated to L0. Programs in L1 are either interpreted by interpreters running on M0, or are translated to L0. Programs in L0 can be executed directly by the electronic circuits 11
12 Multilevel maskiner Hardware og software er logisk ækvivalente 12
13 Moore s lov og multilevel maskiner Med den øgede hastighed og kapacitet har man igennem computerens historie gradvist kunnet skabe højere og højere lag af abstraktioner I udvikling - brug af højniveau programmeringssprog I anvendelse - rige grafiske grænseflade med mange forskellige modaliteter og interaktionsformer Man har også flyttet funktionalitet fra ét niveau til et andet - ofte fra hardware til software og tilbage igen 13
14 Det digitale niveau Begreber - transistorer, porte (gates), kombinatoriske kredsløb, lagerkredse, høj og lav strøm, bit, digitale værdier, Fordele - hurtigt Ulemper - meget tidskrævende at udvikle Level 5 Level 4 Level 3 Level 2 Level 1 Level 0 Problem-oriented language level Translation (compiler) Assembly language level Translation (assembler) Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 14
15 Typisk opbygning af en computer Memory von Neumann maskinarkitektur (1946) Central Processing Unit (CPU) Control Unit Arithmetic Logic Unit Accumulator Input Output Control Unit Afvikler programmer gemt i lageret Arithmetic Logic Unit (ALU) Registers Main Memory Input/Output devices Disk Printer Bus 15
16 von Neumann maskinen Begreber - ALU, registre, Program Counter, instruktion sæt, program (i form af maskinkode) og data gemt i hukommelse, ydre enheder tilgået over bus - Programmer er data, der hentes fra lageret og fortolkes af CPUen - Der er, basalt set, ikke sket noget med computeres arkitektur siden - udover at de er blevet lidt hurtigere, en anelse billigere og har opnået en vis popularitet/udbredelse A A + B A B ALU A + B B Registers ALU Input registers ALU input bus ALU output register 16
17 Instruktionssætniveauet Begreber - lager, lagerceller, registre, ordrer, ordreformat, Programmer i symbolsk maskinsprog oversættes til absolut maskinkode - Program lagres som en sekvens af bitmønstre (absolut maskinkode) - Den absolutte maskinkode fortolkes enten af et mikroprogram eller udføres direkte på processorens hardware 17 Level 5 Level 4 Level 3 Level 2 Level 1 Level 0 Problem-oriented language level Translation (compiler) Assembly language level Translation (assembler) Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level
18 Symbolsk maskinsprog Begreber - lager, lagerceller, registre, - ordrer, systemkald, Fordele - lettere end absolut maskinkode - tilbyder (i princippet) den højeste ydelse for udvikleren Ulemper - meget lavt niveau i forhold til alm. programmeringssprog - bundet til den enkelte CPU familie Level 5 Level 4 Level 3 Level 2 Level 1 Level 0 Problem-oriented language level Translation (compiler) Assembly language level Translation (assembler) Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 18
19 Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 19
20 Operativsystemets rolle En computer består af en stor mængde forskellige komponenter og ressourcer Et operativsystems opgave er at styre adgangen til disse resourcer, således - flere programmer kan tilgå og dele ressourcer (tilsyneladende) simultant på kontrolleret vis - programmer kan samarbejde lokalt og over netværk 20
21 Operativsystemets rolle Application Application networking Application Application Operating System Operating System File (a) (b) Operativsystemer er ikke nødvendige - f.eks. kan simple indlejrede systemer klare sig uden Men de gør computere langt mere brugbare for både udviklere og brugere 21
22 Typiske OS begreber Tråde Processer Hukommelse Filer Input/output (skærme, mus, netværk, ) Alt styret med rettigheder, så programmer kan sameksistere og samarbejde sikkert 22
23 Operativsystemer igennem tiden Store systemer (mainframes og minier ) - OS/360 z/os (IBM), VMS (DEC VAX), Workstations og servere - Unix (AT&T), BSD (Berkeley), GNU/ Linux (Linus Torvalds, Richard Stallman, mv), OS X (NeXT/Apple) Personlige computere - CP/M (Digital Research), MS-DOS, Windows (Microsoft), Mac OS (Apple) 23 Håndholdte computere - Symbian (Nokia) - PalmOS (Palm) - Android (Google) - ios (Apple) - Windows Mobile (Microsoft) - Diverse Linux varianter Indlejrede systemer - TinyOS - RTLinux - Windows CE
24 Operativsystemet Et softwarelag ( kernel ), der - forsyner udvikleren med et abstraktionslag ovenpå hardware - tillader kontrolleret interaktion mellem programmer lokalt eller over netværk Brugergrænseflade operativsystem - blot én komponent ovenpå operativsystemet, der gør operativsystemets services tilgængelige til brugeren 24
25 Middleware Et softwarelag, der - forsyner udvikleren med services, der tillader kontrolleret interaktion mellem programmer lokalt eller over netværk Disse services bygger på operativsystemet - ikke direkte på hardwaren Eksempler: DNS, SAMBA, SQL database 25
26 Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 26
27 Illusionen af samtidighed Den primære rolle for et operativsystem er at stille computerens ressourcer til rådighed på en måde, så mange ting tilsyneladende kan ske samtidigt Moderne computere har typisk 2-4 CPUer, så hvordan kan mere end fire ting ske simultant? 27
28 Programmer, tråde og processer Et program består af udførbar kode ( instruktioner ) En tråd er en række af instruktioner fra et program, der udføres på en CPU En proces er den omgivelse, hvori tråden udføres - mindst én tråd per proces, men ofte flere 28
29 Hvorfor multitrådet udførsel? På serveren - muliggør at serveren kan besvare mange simultane henvendelser fra f.eks. webbrowsere På klienten - muliggør en responsiv grænseflade, samtidigt med at maskinen arbejder dels med brugerprogrammer, dels med systemopgaver 29
30 Fordele ved multitrådet udførsel Bedre udnyttelse af maskinens ressourcer - flere CPUer kan anvendes parallelt - programmer kan have forskellige behov, og kan uden (særlig) konflikt køre samtidigt Bedre svartider og brugeroplevelser - en langsommelig opgave holder ikke serveren tilbage - grænsefladen og andre programmer fortsætter med at virke, selvom et program arbejder 30
31 Enkeltrådede programmer Thread Thread A Thread B Programmernes instruktioner udføres sekventielt i én tråd Hver kørsel af programmet er en separat tråd 31
32 Enkeltrådet program (i C) #include <unistd.h> #include <stdio.h> int main(int argc, char *argv[]){ sleep(3); printf("has been sleeping for 3 seconds.\n"); sleep(5); printf("has been sleeping for 5 seconds.\n"); return 0; } vent apple time./simple2tasks Has been sleeping for 3 seconds. Has been sleeping for 5 seconds. apple cc simple2tasks.c -o simple2tasks apple./simple2tasks Has been sleeping for 3 seconds. Has been sleeping for 5 seconds. apple 32 real user sys apple 0m8.011s 0m0.001s 0m0.002s
33 Flertrådede programmer Spawn Thread A Thread A Thread B Thread B En tråd kan starte andre tråde, og derved gøre flere ting samtidig, eller måske vente i én tråd, og arbejde videre i andre tråde Enkeltrådede programmer kan startes og køre parallelt uden konflikt 33
34 Flertrådet program (i C) #include <pthread.h> #include <unistd.h> #include <stdio.h> static void *child(void *ignored){ sleep(3); printf("child is done sleeping 3 seconds.\n"); return NULL; } int main(int argc, char *argv[]){ pthread_t child_thread; int code; } vent code = pthread_create(&child_thread, NULL, child, NULL); if(code){ fprintf(stderr, "pthread_create failed with code %d\n", code); } sleep(5); printf("parent is done sleeping 5 seconds.\n"); return 0; skab & start tråd apple time./simple2threads Child is done sleeping 3 seconds. Parent is done sleeping 5 seconds. apple cc simple2threads.c -o simple2threads apple./simple2threads Child is done sleeping 3 seconds. Parent is done sleeping 5 seconds. apple 34 real user sys apple 0m5.004s 0m0.001s 0m0.002s
35 Flertrådet program (i Java) public class Simple2Threads { public static void main(string args[]){ Thread childthread = new Thread(new Runnable(){ public void run(){ sleep(3000); System.out.println("Child is done sleeping 3 seconds."); } }); childthread.start(); sleep(5000); System.out.println("Parent is done sleeping 5 seconds."); } vent skab tråd } private static void sleep(int milliseconds){ try{ Thread.sleep(milliseconds); } catch(interruptedexception e){ // ignore this exception; it won't happen anyhow } } start tråd apple time java Simple2Threads Child is done sleeping 3 seconds. Parent is done sleeping 5 seconds. apple javac Simple2Threads.java apple java Simple2Threads Child is done sleeping 3 seconds. Parent is done sleeping 5 seconds. apple 35 real user sys apple 0m5.114s 0m0.088s 0m0.031s
36 Udfordringer for flere tråde Hvis vi har n tråde og n CPUer, burde ting være simple (i princippet!) Men hvis vi har flere tråde end CPUer - hver tråd har sin egen kontekst (registre, stak, ) - hver tråd skal tildeles en vis, fair, tid på CPUen - der er behov for en mekanisme for trådskifte 36
37 Kooperativt trådskift Antag, at vi har to tråde A og B, der skiftes til at køre De kan skifte med switchfromto() Udvikleren har selv indsat disse skift i koden A og B kan således dele CPUen 37 Tråd A A1 A2 A3 switchfromto(a,b) A4 A5 switchfromto(a,b) Tråd B B1 B2 B3 switchfromto(b,a) B4 B5
38 switchfromto(a,b) Hvad skal gemmes mellem trådskift? - hvad er indholdet af CPUens (relevante) registre? - de anvendte områder i hukommelsen (stakken) skal beskyttes (SP) - hvad er (adressen på) den næste instruktion? (IP) - Når trådskiftet foretages, gemmes disse ting for A på A s stak, og de tilsvarende værdier for B findes på B s stak - IP og SP gemmes i Thread Control Block (TCB) 38
39 switchfromto(outgoing,next) push each register on the (outgoing thread s) stack store the stack pointer into outgoing->sp load the stack pointer from next->sp store label L s address into outgoing->ip load in next->ip and jump to that address L: pop each register from the (resumed outgoing thread s) stack IP and SP registers Other registers A s TCB A s resumption IP and SP A s IP and SP A s data A s stack A s saved registers B s TCB B s IP and SP B s data B s stack B s resumption IP and SP A s IP and SP A s data B s saved registers 39
40 Linux kernel! (x86 assembler) pushfl # pushes the flags on outgoing s stack pushl %ebp # pushes %ebp on outgoing s stack movl %esp,816(%ebx) # stores outgoing s stack pointer movl 816(%esi),%esp # loads next s stack pointer movl $1f,812(%ebx) # stores label 1 s address, # where outgoing will resume pushl 812(%esi) # pushes the instruction address # where next resumes ret # pops and jumps to that address 1: popl %ebp # upon later resuming outgoing, # restores %ebp popfl # and restores the flags %ebp skal gemmes, %esp er stakpointer %ebx indeholder outgoing, %esi next 816 og 812 udpeger stak og IP i TCBs 40
41 yield() yield() { outgoing = current; next = choosenextthread(); current = next; // so the global variable will be right switchfromto(outgoing, next); } Hvis vi har en central datastruktur, der gemmer samtlige trådes TCB, og vi kender den aktuelle (current) tråd, kan vi skifte fra en tråd til den næste med yield() choosenextthread()? Næste gang! 41
42 Ulemper ved kooperativ trådskift Det virker, men - udvikleren skal selv bestemme tidspunkt for trådskift - hvis der er fejl i programmet, såsom uendelige løkker, skiftes der aldrig, og så er computeren låst - tunge programmer kan komme til at sulte andre programmer for adgang til CPUen Tidlige operativsystemer brugte kooperativ multitasking, men så fandt man på noget bedre 42
43 Præemptiv multitasking I stedet for at overlade det til de enkelte tråde at afgive (yield) kontrol, lad operativsystemet bestemme, hvornår der skal skiftes tråd - f.eks. når der er input klar til en bestemt tråd - eller når en tråd har kørt længe nok Dette kræver en mekanisme for at kunne give operativsystemet kontrollen tilbage 43
44 Afbrydelser Der vil ofte være tidspunkter, hvor en CPU har behov for at afbryde den nuværende aktivitet for at tage sig af en anden opgave - input ankommer fra en ydre enhed - en timer er blevet færdig - der er sket en fejl Dette kan opnås med interrupts 44
45 Hardware interrupts Tråd Operativsystem Timer Interrupt signal Overfører kontrol Ydre enhed Returnerer Interrupts understøttes direkte af CPUen Når de bliver kaldt, overdrages kontrollen til en interrupt handler, der gemmer den nuværende tilstand, gør det nødvendige og siden returnerer kontrollen til den samme eller en anden tråd 45
46 Hardware interrupt & multitasking CPUer understøtter timers, der kan udløse et interrupt Med en sådan funktionalitet kan man lave simpel multitasking, idet man deler CPUen mellem de tilgængelige tråde, så hver tråd får lige meget tid Dette kaldes round robin og er den simpleste form for scheduling 46
47 Sammenfatning Et operativsystems opgave er at styre adgangen til computerens hardware, således at - flere programmer kan tilgå og dele ressourcer (tilsyneladende) simultant på kontrolleret vis - programmer kan samarbejde lokalt og over netværk Centralt er understøttelsen af multitasking gennem multiple tråde og processer 47
Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Introduktion til Computerarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Formål med dagens forelæsning Kurset læringsmål og emner folk og form eksamen Området maskinarkitektur 2
Læs mereProcesser og tråde. dopsys 1
Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys
Læs mereMaskinarkitektur. Lars Kristensen kris@daimi.au.dk. Christian Storm cstorm@daimi.au.dk. dmasark 1
Maskinarkitektur Lars Kristensen kris@daimi.au.dk Christian Storm cstorm@daimi.au.dk dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Læs mereComputere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen (jkm@iha.dk) Jens Bennedsen (jbb@iha.dk) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Læs mereScheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet
Scheduling 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Tråde og deres indbyrdes forhold Sidste gang så vi på, hvorledes tråde kan skabes, og hvordan man kan skifte imellem dem I dag ser
Læs mereOperativsystemer - dopsys
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
Læs mereMikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Mikroarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Level 1: Mikrokode niveauet Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation
Læs mereComputerarkitektur. - en introduktion til computerarkitektur med LINDA
Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig
Læs mereuprocessorens hardware
uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller
Læs merePrincipper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1
Læs mereComputerens Anatomi. Af Martin Arnetoft
Computerens Anatomi Af Martin Arnetoft Moores lov Moores lov siger, at antallet af transistorer på et stykke hardware over 18 eller 24 måneder fordobles. Denne lov bruges til at beskrive udviklingen indenfor
Læs mereNiveauer af abstrakte maskiner
Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet
Læs mereEksamen dcomnet Q2/2010. Navn
2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx
Læs mere\ \ Computerens Anatomi / /
HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens
Læs mereSpeciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)
Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads
Læs merePARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION
Læs mere3. Computerens opbygning.
3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere
Læs mereCPUer og maskinkode DM534. Rolf Fagerberg
CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal
Læs mereDet Digitale Niveau. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Det Digitale Niveau Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Level : Det digitale niveau Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level
Læs mereSider og segmenter. dopsys 1
Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den
Læs mereProcesser og koordinering
Processer og koordinering.. fortsat dopsys 1 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til
Læs mereKursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing
Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereInterconnect. Front end interface
Direct Remote Access to Devices (DREAD) Introduktion These Metode Baggrund Prototypen Resultater Konklusioner Kritik og fremtidigt arbejde 5. december 2000 Direct Remote Access to Devices slide 1 Klynger
Læs mereInput/Output: Brugergrænseflader. dopsys
Input/Output: Brugergrænseflader dopsys Interaktion med bruger Visse devices lægger et fundamentalt sæt af spilleregler for vores brug af computere Generisk tilbagemelding, hvad laver den : Billedskærm
Læs mereECE 551: Digital System * Design & Synthesis Lecture Set 5
ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE
Læs mereIndhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...
Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens
Læs mereCOMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE
COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel
Læs mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet Er din baggrund anderledes? dopsys 2 Praktiske oplysninger http://cs.au.dk/dopsys
Læs mereProject Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1
Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereSider og segmenter. dopsys 1
Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den
Læs mereDatatekniker med programmering som speciale
Datatekniker med programmering som speciale H3 H1 varer ti uger bestående af syv uddannelsesspecifikke fag, samt 2 Valgfri Udannelsesspecifikke Fag og 1 Valgfrit Speciale Fag Indhold På H2 er der fokus
Læs mereProcesser. DS kursusgang nr. 2: Procestræer. ps: Vis processer
DS kursusgang nr. 2: Processer 1. Definition af processer/tråde? eksemplificeret med fork() og exec() (procesdannelse i C under unix) 2. C vs. Java (overordnet + funktioner) 3. Processer vs. tråde: Server:
Læs mereNetværksalgoritmer 1
Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker
Læs mereVirtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Virtuel Hukommelse 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Formålet med virtuel hukommelse Organisering af virtuel hukommelse Håndtering af virtuel hukommelse 2 Minimal computerarkitektur
Læs mereDET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index
DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE
Læs mereGrundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]
Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereLageradministration. dopsys
Lageradministration 1 Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder 2 Abstraktion over typerne: et hierarki En maskine har flere forskellige lagre Operativsystemet
Læs mereStyresystemer og tjenester
Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer 2. Processer og tråde 3. Synkroniseringsmetoder og IPC 4. Memory management 5. IO og devicedrivere 6. Analyse og design af embedded
Læs mereAlgoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereMikroprogrammering. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Mikroprogrammering Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Mikroprogrammering: IJVM implementeret på Mic-1 Forbedringer af Mic-1 Metode til udvikling af symbolske maskinsprogsprogrammer
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Læs mereDesign Systemkald. User-mode Linux, The Linux kernel/325-2004
Tracing tråden afbryder systemkaldet via ptrace Systemkaldet til værten ændres til getpid Processens stak manipuleres til at kalde kernen Kernen returnerer til processen Design Systemkald Design Startup/shutdown
Læs mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Design af Algoritmer Korrekt algoritme 1) algoritmen standser på alle input 2) Output er det rigtige på alle input Effektivitet 1) Optimer algoritmerne
Læs mereParallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereProcesser og koordinering. dopsys 1
Processer og koordinering dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne): Multiprogrammering og time-sharing (60 erne): dopsys 2 Motivation.. parallelle
Læs mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs merePentium IA-32 Maskinarkitekturen
Pentium IA-32 Maskinarkitekturen 1 Historie (1) Starter i 1970 med udviklingen af Intel 4004: 2 Historie (2) Baglæns kompatibilitet tilbage til 8086. 3 Intel 4004 and Pentium 4 http://www.intel.com/museum/archives/index.htm
Læs mereSystemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111
DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald
Læs mereArduino Programmering
Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået
Læs mereVMware og dopsys-linux
VMware og dopsys-linux 1 Virtuel maskine: OS Hardware Virtualisering: Resurser deles mellem processer: En virtuel maskine er til rådighed for hver proces. Virtualisering nu dybere: hver proces hvert OS.
Læs mereIntroduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 voel@math.ku.dk Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereSortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute
Sortering fra A-Z Henrik Dorf Chefkonsulent SAS Institute Hvorfor ikke sortering fra A-Å? Det er for svært Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å?
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mere02101 Indledende Programmering Introduktion til Eclipse
02101 Indledende Programmering Introduktion til Eclipse Version 2018 1 Introduktion I dette kursus lægger vi op til at man bruger det integrerede udviklingsmiljø Eclipse. Basalt set er et integreret udviklingsmiljø
Læs mereComputer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.
Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1
Læs mereQGIS Brugermde 9. marts Diaspora*: twitter.com/soerenbc soerenbredlundcaspersen.
QGIS Brugermde 9. marts 2017 e-mail: soeren-b-c@ubuntu.com Diaspora*: sbc@diasp.de twitter.com/soerenbc soerenbredlundcaspersen.dk s historie Hvorfor / Prøv / Hvem er jeg? Gymnasielærer (matematik & fysik)
Læs mereHyper-V på Windows 8 64 Bit. Indhold. Vejledning i brug af Hyper-V på en Windows 8 maskine
Hyper-V på Windows 8 64 Bit Vejledning i brug af Hyper-V på en Windows 8 maskine Indhold Hyper-V på Windows 8 64 Bit... 1 Installation... 2 Vejledning trin for trin... 2 Etablering af Netværk... 5 Opret
Læs mereBits DM534. Rolf Fagerberg, 2012
Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et
Læs mereLærebog. Datalogi 1F Forår 2003. Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem
Lærebog Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen Silberschatz, Galvin, Gagne: Operating System Concepts, 6. udgave (med Windows XP opdatering) Har I 6. udgave
Læs mereINGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester
INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir
Læs mereOpsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.
Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke
Læs mereAlgorithms & Architectures II
Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer
Læs mereOpsætning af Backup. Dette er en guide til opsætning af backup med Octopus File Synchronizer.
Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er at programmet skal registreres, dette gøres ved at vælge menuen Help og derefter
Læs mereProgrammering i C Intro og grundlæggende C 5. marts 2007
Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner
Læs mereDATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Læs mereMorten Juul Nielsen Produktchef Microsoft Danmark
Morten Juul Nielsen Produktchef Microsoft Danmark Er du, din organisation og dit datacenter klar til Skyen? Dynamisk Datacenter & Cloud Computing System Center Suiten med fokus på Service Manager Next
Læs mereKoordinering. dopsys
Koordinering At indføre flertrådethed (1) når tråde tages i brug opstår typisk konflikter (et velkendt eksempel er errno ) 2 At indføre flertrådethed (2) en del konflikter kan afhjælpes med thread-local
Læs mereEksamen dcomnet 2012Q4. Årskortsnummer Navn
Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per
Læs mereSystemkald i Unix/Linux
Systemkald i Unix/Linux 1 Operativsystemet Fra proces: OS som værktøjskasse: tilgængelig via systemkald... OS som resurseadministrator, abstrakt/virtuel maskine: CPU: processer, tråde, schedulering I/O:
Læs mere1 Operativsystemer oversigt
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
Læs mereVPN VEJLEDNING TIL MAC
VPN VEJLEDNING TIL MAC MAC OS X 1 VPN VEJLEDNING TIL MAC Formålet med en VPN forbindelse er, at du kan tilgå nogle af Aarhus Universitets services hjemmefra, som ellers kun er tilgængelige, når du er på
Læs mereProgramming Language Design and Analysis motivated by Hardware Evolution
Programming Language Design and Analysis motivated by Hardware Evolution Alan Mycroft Presenter: Thomas Bøgholm September 24, 2007 Alan Mycroft Professor på Cambridge Universitet Cambridge Programming
Læs mereEngineering of Chemical Register Machines
Prague International Workshop on Membrane Computing 2008 R. Fassler, T. Hinze, T. Lenser and P. Dittrich {raf,hinze,thlenser,dittrich}@minet.uni-jena.de 2. June 2008 Outline 1 Motivation Goal Realization
Læs mereDM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Læs mereSikker kode? Gennemgang af mest almindelige hacker angreb
Sikker kode? Gennemgang af mest almindelige hacker angreb Developer & Platform Strategy Microsoft http://blogs.msdn.com/henrikwh henrikwh@microsoft.com Agenda Sikkerhed i medierne Trusselssenarier Mest
Læs mereMicrocontroller, Arduino
Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen
Læs mereKomparativ analyse af IoT-boards
Analyse udfærdiget den 5. oktober 2018 af kaastrup andersen Komparativ analyse af IoT-boards Grundlaget for analysen bygger på research lavet af kaastrup andersens IoT-organisation, som altid står klar
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereUniprocessor Scheduling
Uniprocessor Scheduling Chapter 9 E&CE 354: Processes 0 Processor Scheduling Main OS concern: allocation of resources to processes CPU is a key resource; processor scheduling is concerned with its allocation
Læs mereWINDCHILL THE NEXT STEPS
WINDCHILL THE NEXT STEPS PTC/user, 4. marts 2015 Jens Christian Jensen, Econocap Agenda Windchill the next steps Bliv opdateret og inspireret til at se hvor Windchill kan hjælpe dig med andet end blot
Læs merecomputerens_udvikling
Computeren består af. ---------------------- En computer består af mange ting. Der er det samme i næsten alle computere, men der er en forskel - størrelsen på tingene. Dette er ikke fysisk, men f. eks.
Læs mereXProtect-klienter Tilgå din overvågning
XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect
Læs mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet En del har IT-erhvervserfaring Hvad med dig? dopsys 2 Praktiske
Læs mereSoftwareudvikling: Miljøer
Softwareudvikling: Miljøer Præsentation af mig Praktiske oplysninger Overblik Host-target setup UNIX, historisk UNIX egenskaber UNIX ulemper UNIX, netværk, X11, brugerflader Windows fordele/ulemper Øvelse
Læs mereStudiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang
Læs mereLidt orientering om, hvad en computer består af
Lidt orientering om, hvad en computer består af Lidt orientering om, hvad en computer består af...1 Introduktion...2 Skærm...2 Printer...2 Tastatur...2 Mus...3 CPU...3 Bundkort...4 Strømforsyning...4 RAM/
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereVelkommen på kursus hos Microworld
Velkommen på kursus hos Microworld Du ønskes velkommen på kurset Windows 8 Workshop. Dette kursusmateriale er udarbejdet for at kunne fungere som arbejdsmateriale under selve kurset, men det er også meningen,
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs merePlanen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?
Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen Planen for idag Processer: Procesbegrebet Processkift Processers familieliv Kommunikerende processer Tråde En lettere
Læs mereMobilitet og anvendelse af smartphones
Mobilitet og anvendelse af smartphones evikali a/s Etableret af Anders Rolann og Sten Nornes i år 2000. Begge ingeniører. Specialiseret i udvikling og implementering af løsninger og IT-assistance til forretnings-
Læs mereInternt interrupt - Arduino
Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt
Læs mereNetværk & elektronik
Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars
Læs mereLageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder
Lageradministration Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder Abstraktion over typerne: et hierarki En maskine har fl ere forskellige lagre Operativsystemet
Læs mereLærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen
Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse
Læs mereLageradministration Intel Pentium og Unix/Linux
Lageradministration Intel Pentium og Unix/Linux 1 Lageradministration Multiprogrammering Håndtering af flere procesbilleder i lageret Virtuelt lager og swapping Gennemsigtig udnyttelse af disk som udvidelse
Læs mere