Styresystemer og tjenester

Relaterede dokumenter
Systemkald i Unix/Linux

Principper for Samtidighed og Styresystemer

Operativsystemer - dopsys

Principper for Samtidighed og Styresystemer

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

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

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

Processer og tråde. dopsys 1

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

Algorithms & Architectures II

Citrix CSP og Certificate Store Provider

Computerens Anatomi. Af Martin Arnetoft

1 Operativsystemer oversigt

\ \ Computerens Anatomi / /

Hvad skal du vide for at bygge din egen computer?

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

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

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

Installation af en virtuel maskine

Typisk PC arkitektur. Synkronisering ved aktiv venten

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

Schedulering. dopsys 1

Datatekniker med programmering som speciale H5

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

Hurtig Start Guide 1

Computerens anatomi. - En gennemgang af delene i en computer. Opgave skrevet af Maila, Patrick, Bjarke og Simon. Klasse 1.

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

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

Deling i Windows. - via NetBIOS eller Hjemmegruppe! Netteknik 1

Deling i Windows. Netteknik 1

Formfaktor: Mini-DTX 20cm (7,87 inches) x 17cm (6,69 inches)

Wii Software Modificering. Uber Guide

Introduktion Hvad er et OS? Hvordan virker Linux? Filosofi Design Hvem bruger Linux? Wine Gaming Installation End. Linux. Det frie styresystem

SIMATIC WinAC RTX. The SIMATIC Software Controller for PC-based Automation in Real-Time for Windows OS

Softwareudvikling: Miljøer

XVR optager med 8 kanaler (1080N) Varenr

Computerens Anatomi KOM/IT

Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere

Introduktion QEMU system emulator QEMU user space emulator Afslutning QEMU. Christian Laursen. Århus Januar 2008

Kursuskatalog 2012 TwinCAT Basic og Extended

Opsætning af FTP- og webserver 22. januar 2007

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

Jobliste overblik

Opslagsbog om computer. Af Erik Veidorf og Mike T. Krogh.

Kursuskatalog 2017 TwinCAT 2 TwinCAT 3

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

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Hurtig Start Guide. Wireless NVR System Connection Reolink

Ydeevne og kapacitet. Indholdsfortegnelse

Virtualisering, Cloud Computing og OPC UA i automationssammenhæng - hvad er de reelle use cases?

Velkommen på kursus hos Microworld

Lidt orientering om, hvad en computer består af

CPU i7 2.2 GHz 4 kerner i5-4210u 1,7 GHz 2 kerner, 4 logiske kerner GPU integreret Nvidia GeForce 820M Ram 8GB 6 GB Harddisk HDD HDD

3. Computerens opbygning.

Datatekniker med programmering som speciale

Installere Windows Custom PostScript- eller PCL-printerdriverne

Optimering af Pervasive v 9 databasen

Tildel fast IP adresse til BC9xxx med BootP og oprettelse kommunikation fra TwinCat

SwanMobile Brugervejledning K2051-A

VDI AARHUS UNIVERSITET VER 1.5 VDI 30. APRIL

Transkript:

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 systemer 7. Dynamisk schedulering og task afhængighed 8. Filsystemer 9. Sprog og compilere. Intro 10. Leksikalsk analyse 11. Parsning 12. Kodegenerering Per P. Madsen Styresystemer og tjenester 1

Introduktion til styresystemer Figure 2.1 Computer Hardware and Software Infrastructure Per P. Madsen Styresystemer og tjenester 2

Hvad er et Operativsystem? En virtuel maskine som er Easy to use. Gemmer detaljer om hardware. Danner en brugervenlig grænseflade til applikationsprogrammøren. Resurse manager. Styre de enkelte hardware resurser. Håndterer resursetildeling til applikationsprogrammerne. Per P. Madsen Styresystemer og tjenester 3

Lidt historie Første generation 1945-1955 Plug boards Anden generation 1955-1965 Batch systemer Tredje generation 1965 1980 Multiprogramming Fjerde generation 1980 Personlige comp. Grafisk grænseflader Per P. Madsen Styresystemer og tjenester 4

Processoren eksikvere jobbet indtil den når en I/O instruktion; Her efter må den vente på I/O.

Multiprogrammed Batch Systems Processor is often idle even with automatic job sequencing I/O devices are slow compared to processor

Computer Hardware CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Per P. Madsen Styresystemer og tjenester 7

OPS opgave: CPU CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtere eksekvering af processer. Dvs: Oprette og nedlægge processer. Tildeling af CPU tid til processer/tråde. Vedligeholdelse af processtatus. Synkroniser processer. Per P. Madsen Styresystemer og tjenester 8

Process Management Tilstanden af processen/tråden er indeholdt i contexten/staken.

OPS opgave: Memory CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtere af ram/rom lageret. Dvs. Tildeling af mem. til processer. Håndtering af virtuel memory. Paging og swapping. Beskyttelse af processers mem. Per P. Madsen Styresystemer og tjenester 10

Virtual Memory

Virtual Memory Addressing

OPS opgave: Keyboard ctrl. CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtere tastatur/mus. Dvs. Interrupt. Buffering. Echo. Delete/erase. Per P. Madsen Styresystemer og tjenester 13

OPS opgave: Disk ctrl. CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtere disks. Dvs. Filesystem. DMA. Protection. Symbolske navne. Per P. Madsen Styresystemer og tjenester 14

OPS opgave: USB ctrl. CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtere USB kanalen. Dvs. Master/slave. Polling. Hot Plug-able. Handshaking Per P. Madsen Styresystemer og tjenester 15

OPS opgave: Network ctrl. CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtering af netwærk til andre computere. Dvs. Protokol. TCP/IP. IP-adresser. Retransmision. Handshaking. Per P. Madsen Styresystemer og tjenester 16

OPS opgave: Grafikkort. CPU Mem Keyboard Hard disk CD/ DVD USB ctrl. Network Graphics Card. BUS Håndtering af grafikkort. Dvs. Colormap. Bitplaner. Deling af skærm. Vektorgrafik. Per P. Madsen Styresystemer og tjenester 17

OPS typer Mainframe operativsystemer Server operativsystemer Multiprocessor operativsystemer Multicomputer operativsystemer Personal computer operativsystemer Real-time operativsystemer Embedded operativsystemer Smart card operativsystemer Per P. Madsen Styresystemer og tjenester 18

Operativsystemtyper Mainframe operativsystemer Multi task/multi User. Megen I/O. Fx: OS/390, UNIX. Server operativsystemer. Multi task evt multi user. Server orieneret dvs. Concurrent server. Fx: Linux, UNIX og div Windows typer. Per P. Madsen Styresystemer og tjenester 19

Operativsystemtyper Multiprocessor operativsystemer Flere CPU er. Ægte parallelitet Fældes Ramlager. Fx: Solaris, OS/390. Multicomputer operativsystemer / Distribueret operativsystem. Flere løst koblede CPU er. Ægteparallelitet. Netværksbaseret. Fx. Amoeba Per P. Madsen Styresystemer og tjenester 20

Operativsystemtyper PC operativsystemer Multi tasking, single user. Grafik og lyd. Fx: Windows, MacOS og Linux. Real-Time operativsystemer. Multi tasking. Deterministisk og prioiteret schedulering. Hard realtime og soft realtime. Fx. OS9, VxWorks og QNX Per P. Madsen Styresystemer og tjenester 21

Operativsystemtyper Embedded operativsystemer Simple single user. Kallender, Adr.kartotek, grafik, osv. Fx: Android eller Windows mobile. Smart Card operativsystemer. Lille lager relativ langsom CPU.. Simple transaktioner.. Fx. JavaVM Per P. Madsen Styresystemer og tjenester 22

Modes of Operation User Mode Brugerprogrammer Bestemte områder af memory er beskyttet Visse instruktioner må man ikke bruge Kernel Mode Ops. kode Privilegerede instruktioner må bruges Adgang til alt memory. Per P. Madsen Styresystemer og tjenester 23

Aplikationsprogram OPS struktur. APP Kald af OPS. -funktion. Fx fopen() Trap User mode System kald OPS kernel Memory management Filsystem Device driver Protokolstak Supervisor mode HW CPU Memory DISK USB Ethernet Per P. Madsen Styresystemer og tjenester 24

Systemkald - Linux #define NR_exit 1 #define NR_fork 2... #define NR_mitkald 243 APP _syscall2(int, mitkald, int, arg1, char*, arg2); #include <sys/myservice-user.h> main() { mitkald(1, "hi"); } OPS ENTRY(sys_call_table).long SYMBOL_NAME(sys_ni_call).long SYMBOL_NAME(sys_exit).long SYMBOL_NAME(sys_fork)....long SYMBOL_NAME(sys_mitkald) #include <linux/myservice.h> asmlinkage int sys_mitkald (int arg1, char* arg2) { // Kode } Per P. Madsen Styresystemer og tjenester 25

Systemkald - Linux APP #include <sys/myservice-user.h> main() { mitkald(1, "hi"); } mitkald:... Int $0x80... OPS ISR: 80 System_call... Call *SYMBOL_NAME(sys_call_table)(,%eax,4)..... #include <linux/myservice.h> asmlinkage int sys_mitkald (int arg1, char* arg2) { // Kode } Per P. Madsen Styresystemer og tjenester 26

Nyt systemkald i Linux Fremgangsmåde: 1. Tilføj entry i sys_tcall_table: /usr/src/linuxxxxx/arch/i386/kernel/entry.s 2. Define systemkald nr. i: /usr/src/linuxxxxx/include/asm-i386/unistd.h 3. Skriv kode til kaldet fx i: mitkald.h og mitkald.c. H- filen placeres typisk i: /usr/src/linuxxxxx/include/linux/ eller /usr/src/linuxxxxx/include/asm/ C- filen placeres typisk i: /usr/src/linuxxxxx/ipc/ eller /usr/src/linuxxxxx/fs/... 4. Modificer Makefilen i det dir du placere din kode i. 5. Generer stubben vha macroen: _syscall2(int, myservice, int, arg1, char*, arg2); 6. Make ny kerne. Læs: /usr/src/linuxxxxx/readme 7. Du kan nu anvende systemkaldet - den nye kerne er lavet. Per P. Madsen Styresystemer og tjenester 27

OPS struktur. Monolitisk kerne Linux/ UNIX APP System kald User mode Supervisor mode OPS kernel Memory management Filsystem Device driver Protokolstak HW CPU Memory DISK USB Ethernet Per P. Madsen Styresystemer og tjenester 28

OPS struktur. Micro kerne Fx Mach, Amoeba APP OPS Ext. kernel Ext. Memory management Filsystem Device driver Minimal kerne, mem. management og IPC Protokolstak User mode Supervisor mode HW CPU Memory DISK USB Ethernet Per P. Madsen Styresystemer og tjenester 29

Pro contra Monolitisk kerne. Ofte mere effektiv Micro kerne Memmere at portere. Nemmere at udvide. Velegnet til distribueret system. Mindre supervisor kode > færre fejl. Per P. Madsen Styresystemer og tjenester 30

Loadable kernemoduler. Kerne modul: En samling funktioner og datatyper der kan loades ind i kernen dynamisk. Bliver eksekveret i supervisor mode. Kan kun anvende de af kernen exporteret funktioner og variable. Skal indeholde mindst to funktioner: Module_init(fooinit); Module_exit(fooexit); Per P. Madsen Styresystemer og tjenester 31

Loadable kernemoduler. #include <linux/module.h> static int godav_init(void) {.. } static void godav_exit(void) {.. } module_init(godav_init); module_exit(godav_exit); APP make mod1.ko insmod mod1.ko OPS rmmod mod1 Per P. Madsen Styresystemer og tjenester 32

#include <linux/kernel.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/unistd.h> #include <linux/sched.h> #include <asm/uaccess.h> extern void *sys_call_table[]; asmlinkage int our_sys_open(const char *filename, int flags, int mode){ // Kode. } static int godav_init(void) { original_call = sys_call_table[ NR_open]; sys_call_table[ NR_open] = our_sys_open; return 0; } static void godav_exit(void) { sys_call_table[ NR_open] = original_call; } Per P. Madsen Styresystemer og tjenester 33

int godav_open(struct inode *inode, struct file *filp); int godav_release(struct inode *inode, struct file *filp); ssize_t godav_read(struct file *filp, char *buf, size_t count, loff_t *f_pos); ssize_t godav_write(struct file *filp, char *buf, size_t count, loff_t *f_pos); struct file_operations godav_fops = { read: godav_read, write: godav_write, open: godav_open, release: godav_release }; static int godav_init(void) { /var/log/syslog int res; printk("<1> go'dav verden.\n"); res = register_chrdev(godav_major, "godav", &godav_fops); return 0; } static void godav_exit(void) { unregister_chrdev(godav_major, "godav"); } Per P. Madsen Styresystemer og tjenester 34