MKZ III. Windows CE architektura. Procesy, vlákna, plánování Správa paměti GWES Souborový systém



Podobné dokumenty
Vývoj OS Windows Mobile. Ing. Jiří Šilhán

Windows a real-time. Windows Embedded

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Management procesu I Mgr. Josef Horálek

Procesy a vlákna (Processes and Threads)

Stavba operačního systému

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

vjj 1. Priority. Dispatcher

IT ESS II. 1. Operating Systém Fundamentals

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

Činnost počítače po zapnutí

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

09. Memory management. ZOS 2006, L.Pešička

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Memory Management vjj 1

a co je operační systém?

Memory Management vjj 1

ÚVOD DO OPERAČNÍCH SYSTÉMŮ

verze GORDIC spol. s r. o.

Von Neumannovo schéma

operační systém vjj 1

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. MS Windows

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

IUJCE 07/08 Přednáška č. 6

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Operační systémy. Přednáška 2: Procesy a vlákna

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Windows 2008 R2 - úvod. Lumír Návrat

Metody připojování periferií BI-MPP Přednáška 2

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Logická organizace paměti Josef Horálek

Pokročilé architektury počítačů

Přidělování paměti II Mgr. Josef Horálek

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

ČÁST 1. Základy 32bitového programování ve Windows

Vláknové programování část I

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Když se Linux nevejde. Jiné operační systémy Lenka Kosková Třísková, LinuxDays2018

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Co mi to tu vlastně běží?

Operační systémy. Přednáška 7: Správa paměti I

OS řady Microsoft Windows

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Mid Android M001, M002, M003

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Metody připojování periferií

Ukazky Zdroje:... 17

11 Návrh programového vybavení

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

PV239/WP. Vývoj univerzálních Windows Store aplikací. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Windows Server Novinky. Petr Špetlík Cloud & Server PTA

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

VirtualBox desktopová virtualizace. Zdeněk Merta

Principy operačních systémů. Lekce 1: Úvod

CAL (CAN Application Layer) a CANopen

Virtualizace desktopu virtuální realita, nebo skutečnost?

Operační systémy. Tomáš Hudec.

Proč počítačovou sí? 9 Výhody sítí 9 Druhy sítí 9. Základní prvky sítě 10 Vybavení počítače 10 Prvky sítě mimo PC 10 Klasické dělení součástí sítí 10

Programování ve Windows Dynamické knihovny. Andrea Číková Martin Osovský

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

TEMPO průmyslový panelový počítač

Efektivní ochrana dat ve virtualizovaném prostředí. Marek Bradáč

Ostrava. 16. dubna 2014

Systém adresace paměti

MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS. Richard Janča

O b s a h ÚVOD. Kapitola 1 HARDWAROVÉ PRVKY SÍTÍ

Operační systémy (OS)

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1

IW3 MS SQL SERVER 2014

Přidělování CPU Mgr. Josef Horálek

Stručný obsah. Rejstřík 463

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Reporting a Monitoring

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Instalace, zálohování a obnova systému založeného na Windows XP embedded

PB002 Základy informačních technologií

Instalace OS, nastavení systému

Administrace OS Windows

Transkript:

MKZ III. Windows CE architektura Procesy, vlákna, plánování Správa paměti GWES Souborový systém

Platformy CE AutoPC Car computer, navigační systém HandheldPC PocketPC Pocket PC 2002 Pocket PC 2003 SE Smartphone 2002 Smartphone 2003 Windows Mobile 5.0 Windows Mobile 6.0

Windows CE není modifikací Windows pro desktopy from scratch od mid. 1990 s real-time OS pro embedded zařízení základní technologie pro Windows Mobile devices (Smartphone, PocketPC) změny ve verzi CE 6.0 oproti předchozím množství paměti pro proces počet procesů

Windows CE architektura Applications Embedded Shell Windows CE Shell Services Remote Connectivity WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Kernel Library GWES Device Manager File Manager IrDA TCP/IP OAL Bootloader Drivers Device drivers File drivers OEM Hardware

Windows CE zjednodušená arch. Applications Development Tools Shell Kernel Persistent Storage GWES Communications Built-in in Drivers Installable Drivers OEM Hardware

Window CE 6.0 architektura Applications User Space SHELL SERVICES. EXE Services Services Services Services UDEVICE. EXE User Mode Drivers Services Services Services COREDLL / WINSOCK / COMMCTRL / WININET / COMMDLG Kernel Space KERNEL. DLL OAL. DLL Boot Loader FILESYS GWES NETWORK KCOREDLL DLL DEVICE Drivers.DLL Hardware

Windows CE architektura složeno z modulů moduly rozděleny do komponent komponenty kompaktní, < 200KB ROM 4 základní moduly jádro object store GWES (Graphics, Windowing and Events Subsystem) komunikace

Windows CE architektura optional moduly správa installable device drivers podpora COM viz http://www.microsoft.com/technet/prodtechnol/wce/plan/wceintro.mspx

Jádro (coredll module) základní funkcionalita všude správa paměti, procesů, file management scheduling, multitasking, multithreading exception handling některé optional kernel komponenty pro telefonie, multimedia, GDI

Object Store filesys module object store API File system aplikace a datové soubory System registry konfigurace systému Windows CE database poskytuje strukturované úložiště

GWES rozhraní uživatel aplikace OS převádí keystrokes, stylus movements na zprávy window aplikace potřebují okno, aby mohly přijímat zprávy z OS; i pokud nemají grafický displej controls, menus, dialogové boxy GDI zobrazování textu a grafiky

Komunikace Serial I/O RAS TCP/IP TAPI Wireless Services

Windows CE kernel Základní funkcionalita: Správa procesů a vláken Plánování vláken Správa paměti Správa přerušení

Procesy a vlákna Windows CE podporuje až 32 souběžných procesů Windows CE 6: cca 32 000 procesů Každý proces libovolný počet vláken Jednotkou vykonávání pod Windows CE je vlákno Vlákna jsou nezávislá každé patří nějakému procesu (sdílí stejný paměťový prostor, obvykle 32MB, CE 6: až 2GB) každé vlákno má ID, soukromý 64KB zásobník a set of registers tj. kontext vlákna Každý proces po startu primární thread

CE Kernel 2 GB Kernel Space File system GWES Drivers 2 GB per Process User VM Memory Mapped files User DLLs...... Process Code User VM Up to 32 K Processes

Procesy a vlákna Přeplánování vlákna schedulerem uložení kontextu začne se vykonávat další thread obnovení kontextu při dalším naplánování Ochrana procesů Každý proces vlastní kod a data

Procesy a vlákna - priority procesy nemají prioritu thready mají prioritu (nejprve 8 úrovní, později 256) THREAD_PRIORITY_TIME_CRITICAL.. THREAD_PRIORITY_NORMAL.. THREAD_PRIORITY_IDLE při vytvoření normální priorita ve stejném procesu lze thready s různou prioritou

Běh vláken V režimu jádra plný přístup ke zdrojům OS Operating System Threads a Interrupt Service Routines (ISRs) V uživatelském režimu chráněné prostředí aplikace, ovladače zařízení

Vytváření procesů a vláken Vytvoření procesu CreateProcess vrací handle a ID procesu Vytvoření vlákna CreateThread vrací handle a ID vlákna vstupním bodem vlákna funkce adresa funkce předána do CreateThread ukončení vlákna návrat z funkce Ukončení handle vlákna předán funkci CloseHandle

Plánování Preemptivní plánovač, priority-based vlákna stejné priority round robin kdyžnenížádnédanépriority, dalšínižšíprioritu TIME_CRITICAL.. běží do ukončení bez přerušení plánovačem využíváno pro zpracování ISR (Int.Ser.Routine) Plánování založeno na vláknech 10 vlákne jeden proces, 1 vlákno druhý každý dostane 1/11 času

Plánování vláken, vlákno 1 má nejvyšší prioritu

Běh vlákna je přerušen, když: časové kvantum vyprší je přerušeno vláknem s vyšší prioritou blokováno při soupeření o zdroj critical section, mutex Časové kvantum typicky 1OO milisekund 0 kvantum nikdy nevyprší OEM můžou specifikovat jiné kvantum

Plánování Vlákna dostanou časové kvantum mohou se vzdát CPU Sleep(0) naplánováno další vlákno mohou čekat na dostupnost zdroje WaitForSingleObject (handle, timeout) WaitForMultipleObjects (pocet, ppole, timeout) kritické sekce nelze sdílet s jinýmy procesy více threadů souběžný přístup Inverze priorit nízkoprioritní vlákno drží zdroj vyžadovaný vláknem s vysokou prioritou

Kritická sekce void InitializeCriticalSection (LPCRITICAL_SECTION lpcriticalsection); void EnterCriticalSection (LPCRITICAL_SECTION lpcriticalsection); void LeaveCriticalSection (LPCRITICAL_SECTION lpcriticalsection); void DeleteCriticalSection (LPCRITICAL_SECTION lpcriticalsection);

Inverze priorit Řešení dočasně zvýží prioritu low-priority vlákna než uvolní zdroj TIME_CRITICAL NORMAL T L locks resource T H starts, requests resource T L boosted until resource freed T H continues to completion TL runs as scheduled Time

Inverze priorit vlákna spuštěna 3,2,1

Architektura paměti adresní prostor jeden, plochý, sdílený všemi procesy procesy mohou adresovat až 4GB paměti pouze spodní 2GB dostupné pro procesy proces alokuje pamět vrací ze spodních 2GB horní 2GB pro použití systémem stránkovaná virtuální paměť mapování virt. adres do fyzické paměti žádný swap (disk..) paměť plná, aplikace spadne

Low 2GB paměti dostupná programům 1GB rozdělen na 33 slotů, každý po 32MB každý slot 512 bloků po 64KB každý blok rozdělen na stránky Každý proces omezen na vlastní 32MB adresní prostor x CE 6.0 každý 64KB blok má lock, každý thread má klíč Horní 1GB pro large memory allocation paměťově mapované soubory

Pokračování Zavedení procesu přiřadí další dostupný slot Jádro chrání každý proces tím, že mu přiřadí unikátní slot Jeden slot je rezervován pro aktuálně běžící proces

Zavedení procesu Zavedení procesu Přiřazen další dostupný slot DLL nahrána od nejnižší adresy ve slotu následuje stack a default process heap executable Naplánování procesu kopie ze svého slotu do slotu 0

Zavedení procesu Když proces alokuje pamět vrácena adresa odpovídající slotu 0 mapována zpátky do původního slotu přiřazenému procesu, když je proces neaktivní Jádro, file system, windowing system všechny mají svoje vlastní sloty

Rozdělení paměti 4 GB Reserved for System 2 GB 32... 4 3 2 1 Slot 0 Shared Memory Shell GWE Filesys Kernel (Current) 1 GB 32 MB 0 MB

User Space Virtual Memory Mappig 0x80000000 Shared System Heap 255 MB RAM Backed Mapfiles 256 MB R/W for OS components Read only for user process RAM Backed Map files Mapped at fixed location for better backwards compatibility User Space 2 Gigabytes Each process has its own mapping Shared User DLLs 512 MB All DLLs code and data Same mapping across all processes Data pages are unique physical pages Code pages are shared 0x40000000 Process space 1 GB per process 0x00000000

Manipulace s pamětí Paměť alokovaná procesem Rezervovaná Rezervuje adresní prostor pro aplikaci Nemapuje virtuální stránky na fyzické Potvrzená (Committed) Virtuální str. mapované na fyzické stránky v RAM Označeno, že se používají Proces může rezervovat paměť a potvrdit jí až ji bude potřebovat Alokace rezervované paměti je rychlejší než alokace potvrzené paměti

Heap Lokální heap Oblast paměti Izoluje procesy od velikosti stránky procesoru Všechny procesy mají alokován defaultní heap od jádra 192KB alokováno automaticky HeapAlloc, HeapFree

Zásobník Procesy alokují 60KB stack per vlákno 2KB použity jako ochrana proti overflow 58KB pro použití Proměnné uvnitř funkcí na zásobníku Žádost o zásobník může skončit odložením vlákna když je málo paměti Uvolnění paměti po ukončení vlákna

Využití fyzické paměti Windows CE obvykle nemá žádný disk RAM a ROM odlišná role od desktopů Long-term storage ROM permanent storage Obsah daný OEM OS a vestavěné aplikace (Excel,..)

Využití fyzické paměti 2 Většinou RAM je napájena nepřetržitě Persistent storage RAM na dvě oblasti Storage (Object Store) Uložení dat a spustitelného kódu, který není v ROM Program Memory Použita pro běh programů

Object Storage 3 typy úložišť Windows CE file system Aplikace nainstalované uživ., datové soubory Vždy komprimovaný Windows CE databáze Strukturovaná forma úložiště Více databází, sdílené mezi aplikacemi Windows CE system registry Uložení konfiguračních dat Bratříček registrů z klasických windows Přístup standardními funkcemi

GWES Graphics, Windowing and Event Subsystem GUI rozhraní (uživatel, aplikace, OS) Spravuje Vstupy (převod stisků kláves, pohyb stylusu..) Výstupy (správa oken, grafiky, textu) Předávání zpráv (Message Event Passing) Správa napájení WinCE nepodporuje Maximize a Minimize Platformy bez GUI stále potřebují GWES kvůli předávání zpráv

GWES struktura GWES Application Window Message System Window Manager Controls, Menus, Resources Graphics Device Interface Keyboard Driver Touch Driver Display Drivers

GWES GDI (Graphical Device Interface) Řídí zobrazování textu a grafiky Kreslení čar, křivek, textu, obrázků Všechny aplikace potřebují okno, aby mohli přijímat zprávy z OS (i zařízení bez graf. displeje) Vytvoření okna CE vytvoří message queue pro dané okno OS převádí info od uživatele do zpráv, které jdou do message queue aktivního okna Aplikace zpracuje většinu zpráv, zbytek předá OS

GWES posílání zpráv Fronta zpráv asociována s oknem Fronty jsou asociovány s vlákny Každé vlákno v CE má svojí frontu zpráv Fronta je vytvořena, když vlákno volá GetMessage Posílání zpráv PostMessage Dá zprávu do fronty cílového vlákna, vrací se hned SendMessage Čeká, dokud příjemce nezpracuje zprávu SendThreadMessage Pošle zprávu přímo vláknu

GWES správa napájení No power Není energie z AC, baterie, záložní baterie On Idle Zapnuté zařízení, nepoužité nějaký čas PCMCIA, modemy, NIC shut down Suspend Periferie a CPU vypnuto Energie k udržování RAM Critical off Low battery condition Odsud se nedostane, dokud není dostatek energie

Windows CE memory model 32bitový OS Může adresovat až 4GB virtuální paměti Stejně jako 32bit Windows pro desktopy Odlišné členění Každá aplikace má garantováno jen 32MB virtuální paměti Další alokace už není privátní paměť aplikace, společná pro všechny aplikace

Paměť dostupná Windows CE aplikaci

Souborový systém - architektura Spravováno filesys.exe Implementuje objectstore a StorageManager Jeden jmenný prostor pro všechny file systémy začínající \ Žádná písmenka C:, D: Drives připojeny jako adresáře pod \ Např.: \Storage Card

Filesys.exe - komponenty ROM File System read-only soubory umístěné v \Windows Storage Manager Object Store Paměťová halda řízená filesys.exe RAM systém registry Do verze Win CE 4.0 vždy objekt store Win CE.NET může být jako soubor na externě připojeném filesystému (disk) RAM file systém Root filesystému, např. \soubor.txt Prophety database

Storage manager Nový v Win CE.NET Správa úložných zařízení a file systémů Storage drivers Přístup k fyzickému mediu, block driver Partition drivers Správa víc partition na jednom storage zařízení Fyzický disk víc partition různé filesystémy File systém drivers Organizuje data do souborů a adresářů UDFS CD a DVD, FATFS File systém filters Např. komprese, kryptování, statistiky

Windows CE file system

Storage Manager Fliters jsou pod StorageManagerem neaplikují se na ROM filesystem ani RAM file systém v ObjectStore

Jak to funguje OS bootuje.. NK.exe zavede FileSys.exe z ROM filesystemu Filesys.exe inicializuje registry z default registry v ROM filesystemu Filesys.exe dle záznamů v registrech spustí různé aplikace Jedna z prvních device.exe Device Manager načte záznamy o drives

Storage Manager

Materiály Zpracováno s využitím materiálů: Windows CE Architecture Computing Department, Lancaster University, UK MSDN dokumentace, Blogy vývojářů