Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ütemezés a Windowsban dr. Micskei Zoltán

Hasonló előadás


Az előadások a következő témára: "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ütemezés a Windowsban dr. Micskei Zoltán"— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ütemezés a Windowsban dr. Micskei Zoltán http://mit.bme.hu/~micskeiz Operációs rendszerek (vimia219)

2 Copyright Notice  These materials are part of the Windows Operating System Internals Curriculum Development Kit, developed by David A. Solomon and Mark E. Russinovich with Andreas Polze  Microsoft has licensed these materials from David Solomon Expert Seminars, Inc. for distribution to academic organizations solely for use in academic environments (and not for commercial use)  http://www.academicresourcecenter.net/curriculum/pfv.aspx?ID=6191 http://www.academicresourcecenter.net/curriculum/pfv.aspx?ID=6191  © 2000-2005 David A. Solomon and Mark Russinovich 2

3 Az alapfogalmak Windowson Szál Címtér Erőforrások Biztonsági token Memória Folyamat Program futó példánya Végrehajtási környezet CPU Ütemezés egysége 1 1..n 3

4 DEMO Kernel debuggerben:  !peb  dt nt!_EPROCESS (dt: display type)  dt nt!_KPROCESS  !teb  dt nt!_ETHREAD  dt nt!_KTHREAD Folyamat és szál struktúrák 4

5 Ütemezési alapelvek  Preemptív ütemező (kernel és user módban is!)  32 prioritási szint o Legmagasabb prioritású szál fut mindig o Azonos prioritásúak között Round Robin  A szálak adott ideig futnak (quantum)  Nincs mindig futó központi ütemező, ütemezést események indítják  Szálak prioritása változhat a futás során 5

6 Ütemezés életbe lépése Preemption: magasabb prioritású futásra kész lesz Preemption: magasabb prioritású szál futásra kész lesz Futó szál befejezi a futást Futó szál quantumja véget ér 6 Várakozni kezd a futó szál erőforrásra vagy eseményre

7 Prioritási szintek (kernel) 16 “real-time” szint 15 dinamikus szint Idle szál(ak) 31 16 0 i 15 1 Nem igazi valós idejű, csak nincs prioritási szint változtatás OS változtathatja a prioritást futás közben Ha nincs futásra kész, üres idő számlálására 7

8 Prioritási szintek (Windows API, GUI) Realtime High Above Normal Normal Below Normal Idle 31 16 15 1 Prioritási szintek neve Prioritás értéke 8

9 Windows API vs. kernel prioritások  Szálak: 7 féle relatív prioritás  Leképezés: 9

10 I/O prioritás  Vista kernel módosítás  5 féle prioritás az I/O kéréseknek, pl. o Critical: Dirty page writer o Low: Desktop search indexer  I/O sávszélesség foglalás 10

11 DEMO  „Heat map”  Újratervezés telemetria alapján, pl. o 32%: kill process  Csoportosítás  „Friendly name” Windows 8 feladatkezelő 11

12 DEMO  Feladatkezelő o Prioritás beállítása Prioritás állítása 12

13 Várakozási sorok – kész szálak 13

14 Quantum  Quantum: RR ütemezésnél az időszelet  Óra megszakításban mérik (clock interval, clock tick) o 1 clock tick = ~ 10-15 ms (Windows 8 előtt) o 1 clokc tick = 0.5–15.6 ms között dinamikusan változhat  Quantum tárolása: “3 * clock tick száma” o Hogy lehessen törtrészt is könnyen levonni  Futó szál quantumja 3-mal csökken minden óraütéskor (~ Vista előtt) 14

15 Quantum hossza ShortLong Variable61218122436 Fixed18 36 Adjust for programs Background services  Kliens (XP, Vista, Win7):  2-6 clock tick  előtérben lévő programnak hosszabb  Szerver  Hosszabb quamtumok  Mindenkinek 12 clock tick 15

16 DEMO  Clockres.exe o Clock tick hossza  Változó hosszú quantumok vizsgálata  Perfmon: o Végrehajtási szálak / Szálállapot o Perfmon saját szálai  Windows Performance Analyzer o Timeline by Process, Thread nézet Quantum hossza 16

17 Tartalom  Windows ütemezés alapjai  Windows 8: Windows Store alkalmazások  További ütemezési feladatok 17

18 Windows 8: új alkalmazásmodell  Tervezési célok: o Alacsony fogyasztás és erőforrás-használat o Könnyebb telepítés és frissítés o Megbízhatóbb működés, szeparált alkalmazások o…o…  Megoldás: o Új API: WinRT (lásd korábbi előadás) o Alkalmazásbolt: Windows Store o Új életciklus az alkalmazásoknak o…o… 18

19 Windows Store alkalmazás életciklusa 19 Felhasználó átvált másik alkalmazásra. OS automatikusan felfüggeszti. Alkalmazás elmentheti az állapotát. Felhasználó átvált másik alkalmazásra. OS automatikusan felfüggeszti. Alkalmazás elmentheti az állapotát. Nem kap semmi CPU-időt. OS bármikor terminálhatja Nem kap semmi CPU-időt. OS bármikor terminálhatja Ha volt elmentett állapota, azt vissza lehet töltenie. Forrás: http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx Terminating

20 DEMO  Windows Store  Váltás Windows Store alkalmazások között  Process Explorer: Suspended állapot Windows Store alkalmazások 20

21 Tartalom  Windows ütemezés alapjai  Windows 8: Windows Store alkalmazások  További ütemezési feladatok 21

22 Prioritás módosítása Várakozás végén prioritás növelés (de a quantum csökken eggyel) Quantum végén prioritást csökkenti szépen vissza az eredetire Adjunk esélyt annak, akinek most ért véget a várakozása! 22

23 Éhezés elkerülése  Az OS másodpercenként megnézi a futásra kész szálakat  Aki nem futott már 300 óraütés óta, annak o 15-ös prioritást ad, o megnöveli a quantumját, o egy quantumnyi futásig. o (15-nél nagyobb prioritású szálakra nem vonatkozik) 23

24 Symmetric Multiprocessing (SMP)  Minden CPU egyenrangú o Közös memória címtér o Megszakításokat bármelyik CPU kiszolgálhatja  CPU-k maximális száma a registry-ben tárolva  Implementációs limit (bitvektor hossza): o 32 processzor 32-bites rendszereken o 64 processzor 64-bites rendszereken  Windows 7 / Server 2008 R2 o Logikai processzor csoportok o 4 * 64 CPU támogatása o NUMA támogatás Memory I/O CPUs L2 Cache SMP 24

25 Multiprocesszoros ütemezés  Szálak bármelyik CPU-n futhatnak, de o Megpróbálja az OS ugyanazon a CPU-n tartani (“soft affinity”) o Beállítható, hogy melyiken futhat (“hard affinity”)  Elosztott (nincs “master processor”) o Bármelyik CPU bármelyik futását megszakíthatja  Ütemezési adatok tárolása: o Windows Server 2003 előtt: rendszerszintű futásra kész sorok o Windows Server 2003-től: CPU-nkénti sorok 25

26 Hard Affinity 26

27 Windows 7 módosítások  Core Parking (szerver) o Minél kevesebb logikai CPU használata o Nem használt socketek standby üzemmódba  Time coalescing o Azonos periódusú időzítők összevonása  Dynamic Fair Share Scheduling (DFSS) o Remote Desktop szerverekhez o Minden munkamenet „CPU keretet” kap o Ha elhasználja, csak idle CPU-t kaphat  Globális zárak megszüntetése 27

28 Összefoglalás  Folyamat ↔ Szál  Ütemezés: o Prioritási szintek o Prioritáson belül RR: quantum 28

29 Olvasnivaló  Technet Magazine. „Inside the Windows Vista Kernel”, 1. rész CPU„Inside the Windows Vista Kernel o Cycle Counting o Multimedia Class Scheduler o I/O Priority  Mark Russinovich. „Windows 7 and Windows Server 2008 R2 Kernel Changes”, TechEd 2009„Windows 7 and Windows Server 2008 R2 Kernel Changes  Building Windows 8. „Improving power efficiency for applications”, 2012Improving power efficiency for applications 29


Letölteni ppt "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ütemezés a Windowsban dr. Micskei Zoltán"

Hasonló előadás


Google Hirdetések