Presentation laddar. Vänta.

Presentation laddar. Vänta.

William Sandqvist System Management functions S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-2 CPU Management Memory Management.

Liknande presentationer


En presentation över ämnet: "William Sandqvist System Management functions S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-2 CPU Management Memory Management."— Presentationens avskrift:

1 William Sandqvist william@kth.se System Management functions S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-2 CPU Management Memory Management Secondary Storage Management I/O Management User Management Process Management

2 William Sandqvist william@kth.se OS lager (Användaren) Kommando/Applikation Service lagret Kärnan Hårdvaran S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-3

3 William Sandqvist william@kth.se Drivrutiner i kärnan S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-4 Bildskärm Tangentbord Mus Hårddisk Ljudkort...

4 William Sandqvist william@kth.se Flera Processer på en CPU Operativsystemet utnyttjar avbrottsrutinen. Vid regelbundna timeravbrott får operativsystemet möjlighet att byta process. Med mjukvaruavbrott (TRAP-instruktion) kan en process själv meddela operativsystemet om den inte kan utnyttja sin tid.

5 William Sandqvist william@kth.se PCB, Process Control Block Varje process har en egen datarea i minnet. I processens kontrollblock sparas information om CPU:ns registerinnehåll från den tiden processen exekverades. Vid varje Context Switch, byte av process, sparar operativsystemet undan CPU:ns registerinnehåll och laddar in nytt registerinnehåll för den nya processen som ska exekvera.

6 William Sandqvist william@kth.se Processernas kod, data, och stack Operativsystemets har en ”egen” minnesmodell som ligger inuti C:s minnesmodell (om operativsystemet är skrivet i C). C:s minneshanterare är inte användbar – den vet inte om att det finns flera processer. Operativsystemen har egna minneshanterare.

7 William Sandqvist william@kth.se Ex. dataöverföring med Buffer Bufferstorleken påverkar antalet interrupt/context switch. Buffer ger hårdvaru- avbrott när den är full/tom och framtvingar då en context switch i förtid innan processens timeslice nått slutet. Det tidigare exemplet med buffer. När processen behöver ”vänta” på buffern kan den lika gärna låta någon annan process få exekvera.

8 William Sandqvist william@kth.se Process och Trådar En process kan i sin tur vara uppdelad i trådar. En tråd är en del av en process som kan ges en oberoende schemaläggning. Tråden utnyttjar sin egen Process resurser. En process (ett program) som är uppdelat i flera trådar kallas för Flertrådat eller Multitrådat. Programmeraren måste själv markera för kompilatorn vilka delar av programmet som kan exekveras som oberoende trådar.

9 William Sandqvist william@kth.se Threads Timesharing S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-5 S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-6

10 William Sandqvist william@kth.se Schemaläggning Preemtive scheduling innebär att en process kan tvingas att avbryta exekveringen ofrivilligt. Prioritized Scheduling. Processerna tilldelas olika prioritet (Explicit Priority). Prioritized Preempted Scheduling. ( numera vanligast ) - Varje process har en bestämd prioritet - Den ready process som har högst prioritet exekverar - Processen exekverar tills den är klar eller den preemts av en process med högre prioritet

11 William Sandqvist william@kth.se En tråds olika tillstånd Prioritized Preempted Scheduling. Lägger man till processer med lägre prioritet så påverkar dessa bara obetydligt prestanda för de processer som har högre prioritet.

12 William Sandqvist william@kth.se Multitasking minneshantering Minnet är uppdelat i regioner. Varje process tilldelas efter behov ett helt antal regioner. Process 3 utnyttjar här region 13 dåligt. Detta leder till Waste- memory. S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-12, 11-13

13 William Sandqvist william@kth.se Fragmenterat minne S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-14 Processer skapas och avslutas. Minnesområden tilldelas och lämnas åter. Med tiden blir det svårare att hitta stora samman- hängande områden i minnet – minnet har blivit fragmenterat.

14 William Sandqvist william@kth.se Kompaktering av minnet Ett sammanhängande minnesområde för en ny Process 6 finns ej! En kompakteringsrutin får först ”flytta om” data så att det bildas ett till- räckligt stort område av sammanhängande minne. S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-15 Process 6

15 William Sandqvist william@kth.se Använd icke angränsande minne Use of Noncontiguous memory. Om operativsystemet har Virtuellt minne kan Process 6 använda de lediga minnespartitionerna, och uppfatta det som om områdena är sammanhängande – på det sättet undviker man tidsödande kompak- tering av minnet! S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-16

16 William Sandqvist william@kth.se Adressöversättningen address = frame*sizeof(frame)+ offset

17 William Sandqvist william@kth.se Minnes hierarkier I sekundärminnet lagras processerna sammanhängande som ett antal Pages. Primärminnet är uppdelat i Page frames. Görs en minnesreferens till en adress i sekundärminnet så laddas en hel Page in till en Page frame. Görs en minnesreferens utanför aktuell Page frame så laddas en ny Page in till primärminnet. Är primär minnet fullt så ”offras” en Page frame och skrivs tillbaks till sekundärminnet. Därefter kan en ny Page laddas in på den gamla platsen. I sekundärminnet kan finnas en Swap file för mellanlagring av Page frames som tillfälligtvis är oanvända. Utbytesstrategier: Least Recently Used LRU, Least Frequently Used, LFU.

18 William Sandqvist william@kth.se Hantering av virtuellt minne En process får en virtuell motsvarighet till ett sammanhäng- ande minne. Operativsystemet gör en översättning mellan det virtuella minnet och det riktiga minnet. För att översättningen av minnesadresserna inte ska ta för lång tid så måste processorn ha hårdvarustöd för minnes- hanteringen (Memory Management Unit, MMU). Memory Protection. En process får inte på ett oaktoriserat sätt kunna nå en annan process minne (”ändra variabler bakom ryggen”). För att förhindra detta måste operativ- systemet utföra kontroller (extra instruktioner) vid alla skrivoperationer. Även här är det önskvärt med hårdvarustöd.

19 William Sandqvist william@kth.se Intel, Memory Management Från och med Intel 386 finns stöd för Memory Management. Adressen delas upp i Frame och Offset i olika register. Register: CS, DS, ES, FS, GS, och SS är för Segment Descriptors Frame storlek Frame startadress. Frame accesstyp Read Only (RO), Read Write (RW), Execute Only (EO), Execute Read (ER) – felanvändning ger Error-Interrupt!

20 William Sandqvist william@kth.se Med C är det lätt att orsaka segmentfel! Ett bortglömt & -tecken …

21 William Sandqvist william@kth.se Segment Descriptor som C-struct struct segment_descriptor { u16 limit_low; u16 base_low; u8 base_mid; u8 type : 4; u8 system : 1; u8 dpl : 2; u8 present : 1; u8 limit_high : 4; u8 avl : 1; u8 long_mode : 1; u8 default_op : 1; u8 granularity : 1; u8 base_high; }; En C-struktur kan bestå av variabler med olika många bitar (sk. Bitfield). type och limit_high är 4-bitar, system, present, avl, long_mode, default_op, granularity är 1-bitars ”flaggor”. Övriga variabler är 16- bitars eller 8-bitars. OS kan använda en sådan data- struktur för att hantera segment- registren.


Ladda ner ppt "William Sandqvist System Management functions S Burd, Systems Architecture ISBN 0-619-21692-1 Figure 11-2 CPU Management Memory Management."

Liknande presentationer


Google-annonser