1 / 34

Styresystemer og tjenester

Styresystemer og tjenester. Indhold: Introduktion til styresystemer. Processer og tråde. Synkroniseringsmetoder. InterProcesCommunikation. Memory management. I/O og devicedrivere. Filsystemer. Distribuerede systemer. Sikkerhed. Introduktion til styresystemer.

beau-moore
Download Presentation

Styresystemer og tjenester

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Styresystemer og tjenester Indhold: • Introduktion til styresystemer. • Processer og tråde. • Synkroniseringsmetoder. • InterProcesCommunikation. • Memorymanagement. • I/O og devicedrivere. • Filsystemer. • Distribuerede systemer. • Sikkerhed. • . Styresystemer og tjenester

  2. Introduktion til styresystemer Styresystemer og tjenester

  3. 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. Styresystemer og tjenester

  4. 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 Styresystemer og tjenester

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

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

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

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

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

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

  11. Virtual Memory

  12. Virtual Memory Addressing

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

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

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

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

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

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

  19. 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. Styresystemer og tjenester

  20. 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 Styresystemer og tjenester

  21. 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 Styresystemer og tjenester

  22. 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 Styresystemer og tjenester

  23. Modes of Operation • User Mode • Brugerprogrammer • Bestemteområderaf memory erbeskyttet • Visseinstruktionermå man ikkebruge • Kernel Mode • Ops. kode • Privilegeredeinstruktionermåbruges • Adgangtil alt memory. Styresystemer og tjenester

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

  25. Systemkald - Linux _syscall2(int, mitkald, int, arg1, char*, arg2); #define __NR_exit 1 #define __NR_fork 2 ... #define __NR_mitkald243 #include <sys/myservice-user.h> main() { mitkald(1, "hi"); } APP 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) OPS #include <linux/myservice.h> asmlinkage int sys_mitkald (int arg1, char* arg2) { // Kode } Styresystemer og tjenester

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

  27. Nyt systemkald i Linux • Fremgangsmåde: • Tilføj entry isys_tcall_table: /usr/src/linuxXXXX/arch/i386/kernel/entry.S • Define systemkald nr. i: • /usr/src/linuxXXXX/include/asm-i386/unistd.h • Skriv kode til kaldet fx i: mitkald.hogmitkald.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/ .... • Modificer Makefilen i det dir du placere din kode i. • Generer stubben vha macroen: _syscall2(int, myservice, int, arg1, char*, arg2); • Make ny kerne. Læs:/usr/src/linuxXXXX/README • Du kan nu anvende systemkaldet - den nye kerne er lavet. Styresystemer og tjenester

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

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

  30. 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. Styresystemer og tjenester

  31. 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); Styresystemer og tjenester

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

  33. #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;} Styresystemer og tjenester

  34. 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) { 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");} /var/log/syslog Styresystemer og tjenester

More Related