Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.

Slides:



Advertisements
Lignende præsentationer
Throw a die Read the current value of index Add 1 Return the new value to index IndexIndex Create an empty array to count the number of dice throws Initialize.
Advertisements

Niveauer af abstrakte maskiner
Grundlæggende IT Lektion 4 Sådan virker pc’en
C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Drupal[.org] Open Source CMS 6/
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
Programmeringsparadigmer.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Efteruddannelse Embedded C Modul 4 (Torsdag den 14/1-2010)
FNI marts Dupline introduction. FNI marts Sensors, Switches, Relays, Valves, Motors Counters, Timers, Drives Dupline PLC's PC's, SCADA Prod.
Claus Tøndering Arkitektur MCU CIOC DIOC SIOC Memory MCU: Main Computing Unit med Motorola (senere og 68030) DIOC: Disk.
Styresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation. 4.Memory.
Processer/tråde Per P. Madsen1 Et stykke software der håndtere skiftet af CPU’en.  Dispatcher. Et antal selvstændige programmer.  Processer. Plus det.
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
Pc-kørekort Sådan virker pc’en Keld Hinsch.
1 Pentium IA-32 Maskinarkitekturen. 2 Historie (1) Starter i 1970 med udviklingen af Intel 4004:
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer.
Symbolsk maskinsprog.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
Per P Madsen AAU1 Del 3 : Transportlaget - Protokoller. UDP. TCP - Pålidelig kommunikation og PAR-princippet - Wireless TCP - Socket-API’en.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 KlientKlient.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Tråde og synkronisering. Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
Datalogi 1F Forår 2003 Multiprogrammering[3] Eksempler på multiprogrammeringskerner Jørgen Sværke Hansen
Microcontroller ► Fordele ved anvendelse af microcontroller ► Teori ► Informationsflow i microcontrolleren ► Anvendelses muligheder ► Implementering.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Per P. Madsen- Proces1 Algoritmer og datastrukturer Grundprincipper og analyse af algoritmer. MM1 Lister, stakke og køer. MM2 Træer, og Hash-tabeller.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder. 4.InterProcesCommunikation.
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
Procestræ under afvikling af cp init login shell cp cp src dest.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
DComNet1 ISA-niveauet (1) Machine Language: You try to shoot yourself in the foot only to discover you must first reinvent the gun, gunpowder, the bullet,
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
JavaCC Top-down (Recursive descent). Mest populære mht Java. Regulær grammatik og Context-free grammatik i en fil. Tillader EBNF: (..)*, (..)+ og (..)?
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Per Printz Madsen Linux proces og tråd programmering Per Printz Madsen Aalborg Universitet Institut for.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Per P. MadsenStyresystemer og tjenester1 Threads.
DComNet1 ISA-niveauet (2). dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Datalogi 1F: Multiprogrammering[3] 1 Planen for idag Kerner uden afbrydelser (KB4 kap. 6): –akernen: kerne med decentralt processkift –bkernen: kerne med.
1 Processer. 2 fork int fork(); Danner en ny proces med samme indhold som forældre processen. I begge processer er programtælleren placeret lige efter.
Seriel kommunikation Jan R. Indhold Krav Modularisering ACIA Registre Baudrate Konklusion.
M3 Jan R. Indhold Krav Indhold af modul M3 ACIA Registre Kontrol register Status register Baud rate Konklusion.
AV/C Audio/Video Control. AV/C Digital Interface Command Set Kommandsæt til styring af AV udstyr på 1394 seriel bussen ved brug af IEC FCP mekanismen.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
UProcessorens hardware Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed.
Port access  Indtil nu har vi anvendt færdige metoder til at tænde og slukke for LEDs, men den metode virker kun så længe vi arbejde med Keil boardet.
Port access I det efterfølgende vil vi anvende databladsoplysninger frem for anvende de færdige metoder.
Nu har du installeret uVision og set at både programmet og boardet virker. Man kan ikke lære at cykle ved at se på andre, så i det efterfølgende skal du.
1587 Server - Blandet miljø Embedded I
Embedded SW – C & picoBlaze
I det efterfølgende vil vi prøve at opnå forbindelse til de knapper som er på boardet. Opgaven er at vi ved at trykke på knapperne kan få lyset til at.
Lav et nyt projekt og tilføj denne gang pakken Graphic LCD.
IOT – Elkedel på internettet
Intelligent afstandsmåler
1.00 Examine the role of hardware and software.
LionSpaceFIS Reports Space Manager Running Reports in Space Manager
Databehandling i PC Katrine.
CS 3800 Switch/Router Lab Project Introduction
Præsentationens transcript:

Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation. 4.Memory management. 5.I/O og devicedrivere. 6.Filsystemer. 7.Distribuerede systemer. 8.Sikkerhed. 9.

Per P. MadsenStyresystemer og tjenester2 I/O device og hastigheder.

Per P. MadsenStyresystemer og tjenester3 I/O Struktur Tilsluttet udstyr Elektronik Software Disk, Mus, Keyboard, Monitor, Netværk,.... Controler: DiskControler, Grafikcontroler, UART,... DeviceDriver: Disk-driver, keyboard-driver,... Operativsystem Hardware

Per P. MadsenStyresystemer og tjenester4 I/O Opgavefordeling Tilsluttet udstyr Controler Devicedriver Opgave: Lagre, præsentere, generere, transportere data. Opgave: Overfører mem.baseret byte til og fra udstyr. Opgave: Uniform easy to use interface til brugeren. Buffering, Interrupt håndtering. Error håndtering.

Per P. MadsenStyresystemer og tjenester5 I/O grænseflader. Tilsluttet udstyr Controler Devicedriver Fysiske signaler vha en passende bus. DMA, Memory-mapped eller I/O-porte. Kontrol via byte/word-registre. Operativsystem Applikation Uniform easy to use systemkalds baseret interface.

Per P. MadsenStyresystemer og tjenester6 I/O porte på en PC f : dma f : pic f : timer f : keyboard f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu : ide1 01f0-01f7 : ide0 02f8-02ff : serial(set) f : NE : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(set) f : Intel Corporation 82371AB PIIX4 ACPI : acpi : acpi b : acpi 100c-100f : acpi f : Intel Corporation 82371AB PIIX4 IDE f : pcnet_cs f : Intel Corporation 82371AB PIIX4 ACPI ff : PCI CardBus #02 1c00-1cff : PCI CardBus # f : Intel Corporation 82371AB PIIX4 USB d000-dfff : PCI Bus #01 d000-d0ff : ATI Technologies Inc 3D Rage LT Pro AGP-133 /proc/ioports

Per P. MadsenStyresystemer og tjenester7 I/O memory på en PC fbff : System RAM 0009fc ffff : reserved 000a bffff : Video RAM area 000c c7fff : Video ROM 000f fffff : System ROM feffff : System RAM c557 : Kernel code 0022c f : Kernel data fffffff : Intel Corporation 440BX/ZX BX/ZX Host bridge fff : Texas Instruments PCI fff : Texas Instruments PCI1225 (#2) e e3ffffff : PCI Bus #01 e e7ffffff : PCI Bus #01 e e4ffffff : ATI Technologies Inc 3D Rage LT Pro AGP-133 /proc/iomem

Per P. MadsenStyresystemer og tjenester8 Simpel character devicedriver x x x Controler: UART Status Data Control Systenkald Aplikation Operativsystem Output kald. ISR RTE If NoOfChInBuf = BufSize Wait(OutSem); putbuf(ch); If NoOfChInBuf > 0 Åben for IRQ Data =getbuf(); If NoOfChInBuf < 2/3*BufSize og sender har kaldt Wait() så signal(OutSem); If NoOfChInBuf = 0 Luk for IRQ. x

Per P. MadsenStyresystemer og tjenester9 FIFO kø: Ringbuffer a b c InPtr UdPtr NoOfChInBuf= 3 Int PutBuf(data) Int GetBuf(&data)

Per P. MadsenStyresystemer og tjenester10 FIFO kø: Ringbuffer #define BufSize 128 char ringbuf[BufSize]; int InPtr=0, UdPtr=0, NoOfChInBuf=0; void enable() {asm("STI");} void disable() {asm("CLI");} void PutBuf(char ch) { disable(); ringbuf[InPtr]= ch; if (BufSize <= ++InPtr) InPtr= 0; ++ NoOfChInBuf enable(); } char GetBuf() { char ch; disable(); if (NoOfChInBuf > 0) { ch= ringbuf[UdPtr]; NoOfChInBuf--; if (BufSize <= ++UdPtr) UdPtr= 0; } enable(); return ch; }

Per P. MadsenStyresystemer og tjenester11 I/O software.

Per P. MadsenStyresystemer og tjenester12 Device-Independent. Uniform interface: – Device uafhængig. Fordel for både systemudvikler og applikationsudvikler. UNIX/Linux metoden: Fil I/O metoden. En device refereres vha et symbolsknavn. ttys1, lp0, sound. Device systemkaldene: open, read, write, lseek,.....

Per P. MadsenStyresystemer og tjenester13 Device-Independent. Protections. Major nr: x Minor nr: y /dev/MinDriver Min driver ttys Protections. Major nr: 3 Minor nr: 48 /dev/ttys0 Protections. Major nr: 3 Minor nr: 49 /dev/ttys1 fd= open(”/dev/MinDriver”,..); read(fd,..); write(fd,..); Nr: x Nr: 3 Operativsystem Applikation

Per P. MadsenStyresystemer og tjenester14 Device-Independent. mknod /dev/MinDevice c chmod 666 /dev/MinDevice Oprettelse af device fil: Character devices: 1 mem 2 pty 3 ttyp 4 ttyS 6 lp 7 vcs 10 misc 13 input 14 sound 21 sg 180 usb /proc/devicesMajor nummerene: 60 to 63, 120 to 127, 240 to 253 er reserveret for ekspermintal brug.

Per P. MadsenStyresystemer og tjenester15 I/O software.

Per P. MadsenStyresystemer og tjenester16 Blocking og buffering Synkrone device: Digital I/O port, Realtids Ur,.. Simple divices der kan læses/sættes når man vil. Asynkrone device: RS232, USB, Keyboard, disk,.... Kræver: Interrupt håndtering, buffering og blocking/signalning. Fremgangsmåde fra applikationen: Læsning blokere hvis der ikke er data i buffer. (Synkron app.). Signal til Applikationen når der er data. (Asynkron app.) Skrivning blokere hvis devicen ikke kan følge med dvs.Buffer fuld. (Synkron app.). Signal til Applikationen når den er klar til at modtage data. (Asynkron app.)

Per P. MadsenStyresystemer og tjenester17 Fejlhåndtering Problem: Device er en kilde til fejl. Datanet fejl, disk læse/skrive fejl, printerfejl, Strategi: Prøv at håndterer fejlen der hvor den opstår, ellers rapportere op i systemet. Fx. Disk læse fejl: Devicedriveren kan prøve et antal gange. Hvis det ikke hjælper sends en fejlmeddelese til brugeren.

Per P. MadsenStyresystemer og tjenester18 Device driver typer Char device: Strøm af byte. ttys0, lp, usb, consol,..... Blok device: Data er organiseret i blokke Diske. Network interface: Strøm af byte eller pakkeopdelt. Kan ikke håndteres alene vha. fil-hald(open,read,write).

Per P. MadsenStyresystemer og tjenester19 Eks. på brug af char device driver #include #include #include #include #include main() { int fd, res, stop= 0; struct termios oldtio, newtio; char buf[255]; fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY ); tcgetattr(fd,&oldtio); /* save current port settings */ bzero(&newtio, sizeof(newtio)); newtio.c_cflag = B38400 | CRTSCTS | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; /* set input mode (non-canonical, no echo,...) */ newtio.c_lflag = 0; newtio.c_cc[VTIME] = 0; /* inter-character timer unused */ newtio.c_cc[VMIN] = 5; /* blocking read until 5 chars received */ tcflush(fd, TCIFLUSH); tcsetattr(fd,TCSANOW,&newtio); while (!stop) { res = read(fd,buf,255); /* returns after 5 chars have been input */ } tcsetattr(fd,TCSANOW,&oldtio); close(fd); }

Per P. MadsenStyresystemer og tjenester20 Loadable kernemoduler. #include module_init(device1_init); module_exit(device1_exit); make -C /usr/src/linux M='pwd' modules mod1.ko insmod mod1.ko APP OPS rmmod mod1

Per P. MadsenStyresystemer og tjenester21 Hjemmelavet devicedriver 1.Skriv et kernemodul der implementere deviven. Major= register_chrdev(0, ”MinDriver”, &fops); Plus meget mere. 2.Indsæt modul i kernen. insmod MinDriver.ko 3.Lav en devicefil mknod –m 664 MinDevice c Major 7

Per P. MadsenStyresystemer og tjenester22 Hjemmelavet devicedriver static int device1_init(void) { int res; device1_cdev = cdev_alloc( ); device1_cdev->ops = &device1_fops; if (device1_major) { dev = MKDEV(device1_major, device1_minor); res = register_chrdev_region(dev, 1, "device1"); } else { res = alloc_chrdev_region(&dev, device1_minor, 1, "device1"); device1_major = MAJOR(dev); } if (res < 0) { return res;} else printk(KERN_INFO "device1: major number %d\n",device1_major); cdev_init(device1_cdev, &device1_fops); cdev_add (device1_cdev, dev, 1); printk(KERN_INFO "Inserting device1 module\n"); return 0; } static void device1_exit(void) { unregister_chrdev_region(dev, device1_nr_devs); }

Per P. MadsenStyresystemer og tjenester23 Hjemmelavet devicedriver int device1_open( struct inode *inode, struct file *filp); int device1_release(struct inode *inode, struct file *filp); ssize_t device1_read( struct file *filp, char *buf, size_t count, loff_t *f_pos); ssize_t device1_write(struct file *filp,const char *buf,size_t count,loff_t *f_pos); struct file_operations device1_fops = {.read= device1_read,.write= device1_write,.open= device1_open,.release= device1_release }; ssize_t device1_read( struct file *filp, char *buf, size_t count, loff_t *f_pos) { copy_to_user(buf,buffer,count); return count; } ssize_t device1_write(struct file *filp,const char *buf,size_t count,loff_t *f_pos) { copy_from_user(buffer,buf,count); return 1; }

Per P. MadsenStyresystemer og tjenester24 Hjemmelavet devicedriver static int Device_Open = 0; char *buffer; static int device1_open(struct inode *inode, struct file *file) { int minor_num = iminor(inode); if (Device_Open) return −EBUSY; Device_Open++; // Init driver buffer= kmalloc(Size * sizeof(char), GFP_KERNEL); return 0; } static int device1_release(struct inode *inode, struct file *file) { Device_Open−−; kfree(buffer); return 0; }

Per P. MadsenStyresystemer og tjenester25 Hjemmelavet devicedriver

Per P. MadsenStyresystemer og tjenester26 Hjemmelavet devicedriver #include int check_region(unsigned long start, unsigned long len); struct resource *request_region(unsigned long start, unsigned long len, char *name); void release_region(unsigned long start, unsigned long len); unsigned char inb(unsigned short port); void outb(unsigned char byte, unsigned short port); unsigned short inw(unsigned short port); void outw(unsigned short word, unsigned short port);

Per P. MadsenStyresystemer og tjenester27 DMA devicedriver

Per P. MadsenStyresystemer og tjenester28 DMA A typical direct memory-access controller interface