Operativsystemets ansvar er å koordinere programmers bruk av systemet blir delt av flere programmer som også deler prosessoren bruker ofte avbrudd for å melde tilbake om status til operasjoner avbrudd bringer prosessoren inn i en «supervisor» modus som er forbeholdt operativsystemet [supervisor har alle rettigheter!] Håndtering av er komplisert flere ting kan skje samtidig korrekt operasjon kan kreve pinlig nøyaktighet in 147, våren 1997 Input/Output 19
En klient/tjener modell for klient kø tjener Gjennomstrømming: antall oppgaver som blir utført av tjeneren pr. tidsenhet * for å få størst mulig gjennomstrømming hold tjeneren sysselsatt hele tiden køen må aldri få gå tom + «mer maskinvare gir større gjennomstrømming» Responstid: starter når en oppgave blir plassert i køen av klienten slutter når oppgaven er ferdig behandlet av tjeneren * for å få minst mulig responstid la køen være tom la tjeneren være ledig in 147, våren 1997 Input/Output 20
Operativsystemets administrasjon av prosesser waiting for event event occurred task deleted wait for event task deleted delayed delay task for N ticks delay expired dormant task create/delete ready context switch running task deleted interrupt interrupted in 147, våren 1997 Input/Output 21
Kommunikasjon mellom og operativsystem OS trenger å vite når operasjoner er ferdige og om feil har oppstått polling: Interrupts Processor Cache data? Main Memory bus Graphics output Network + enkelt prosessoren har kontrollen prosessoren utfører arbeidet les data aktiv venting sløsing med CPUressurser skriv data ferdig? in 147, våren 1997 Input/Output 22 Main Cache Processor Interrupts Graphics output Memory bus Network
Kommunikasjon mellom og operativsystem OS trenger å vite når operasjoner er ferdige og om feil har oppstått avbrudd Processor Interrupts Cache Main Memory bus Graphics output Network sub store load add store store store sub add load in 147, våren 1997 Input/Output 23 Main Cache Processor Interrupts Graphics output Memory bus Network avbruddsrutine brukerprogram + ingen aktiv venting trenger spesialhw forårsake avbrudd oppdage avbrudd avbrudd save PC må ta vare på registre
Programmert Programmer står selv for flytting av data, ved at CPU en leser og skriver! Processor Interrupts Cache Memory bus Main Graphics output Network benytter programmets egen virtuelle hukommelse utenom/gjennom cache? [write buffer] flytting mellom forskjellige virtuelle adresserom! in 147, våren 1997 Input/Output 24
Direct Memory Access [DMA] Egen maskin ( enhet) leser og skriver Processor Interrupts Cache DMA Memory bus Main Graphics output Network bruker fysiske adresser utenom translasjon [låsing] kan få overlapp med arbeid i CPU en signalisere tilbake til OS kan være kostbar å administrere in 147, våren 1997 Input/Output 25
Kontrollprosessor 0 for en MIPS R3000 Oppgaver: user vs. kernel mode EntryHIGH EntryLOW management håndtering av avbrudd feil (traps) TLB in 147, våren 1997 Input/Output 26 status cause EPC index random context BadVA
Kilder til avbrudd/exceptions MIPS formål reset eksternt reset signal [0xBFC00000] UTLB miss ingen gyldig translasjon TLB miss invalid translasjon eller ingen gyldig TLB modified valid, men ikke dirty ved store bus error ekstern Bus Error, f.eks. timeout eller ugyldig fysisk adresse address error bruk av en unaligned address overflow 2s komplement overflyt ved add/sub system call SYSCALL instruksjon breakpoint BREAK instruksjon reserved instruction co processor unusable interrupt eksternt avbruddssignal eller software interrupt in 147, våren 1997 Input/Output 27
Handlinger ved avbrudd Exception entry interrupt TLB miss address error overflow illegal instruction exception exit ta vare på PC [flere ved pipelining] slå av det avbruddet som blir behandlet hopp til riktig rutine evt. large unna programmerbare registre og annen tilstandsinformasjon in 147, våren 1997 Input/Output 28
Sentrale registre: coprocessor usable status: CU IntMask avbruddsmaske cause: CE IP[5..0] Sw ExcCode BD coprocessor error branch delay utestående avbrudd exception angivelse in 147, våren 1997 Input/Output 29
Name Value Default Event SIGHUP 1 Exit Hangup SIGINT 2 Exit Interrupt SIGQUIT 3 Core Quit SIGILL 4 Core Illegal Instruction SIGTRAP 5 Core Trace/Breakpoint Trap SIGABRT 6 Core Abort SIGEMT 7 Core Emulation Trap SIGFPE 8 Core Arithmetic Exception SIGKILL 9 Exit Killed SIGBUS 10 Core Bus Error SIGSEGV 11 Core Segmentation Fault SIGSYS 12 Core Bad System Call SIGPIPE 13 Exit Broken Pipe SIGALRM 14 Exit Alarm Clock SIGTERM 15 Exit Terminated SIGUSR1 16 Exit User Signal 1 SIGUSR2 17 Exit User Signal 2 SIGCHLD 18 Ignore Child Status Changed SIGPWR 19 Ignore Power Fail/Restart SIGWINCH 20 Ignore Window Size Change SIGURG 21 Ignore Urgent Socket Condition SIGPOLL 22 Ignore Pollable Event SIGSTOP 23 Stop Stopped (signal) SIGTSTP 24 Stop Stopped (user) SIGCONT 25 Ignore Continued SIGTTIN 26 Stop Stopped (tty input) SIGTTOU 27 Stop Stopped (tty output) SIGVTALRM 28 Exit Virtual Timer Expired SIGPROF 29 Exit Profiling Timer Expired SIGXCPU 30 Core CPU time limit exceeded SIGXFSZ 31 Core File size limit exceeded SIGRTMIN 49 Exit Posix.4 SIGRTMIN SIGRTMAX 64 Exit Posix.4 SIGRTMAX in 147, våren 1997 Input/Output 30
Fra exceptions til signaler hendelse (bevegelse i vindu) (segmentation fault) operativsystemet signal handler prosess i prosess j prosess k klokkeavbrudd interrupt eller trap «event occurred» in 147, våren 1997 Input/Output 31 tid
Utforming av systemer Processor Main PCI interface/ Stereo input output Serial ports Apple desktop bus PCI CDROM SCSI bus Graphics output Ethernet Tape Intelligent : http://www.i2osig.org/ Virtual Interface Architecture: http://www.viarch.org/ in 147, våren 1997 Input/Output 32