Přednáška 11 Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna. 1
Historie MS Windows I 1980 1981 1983 1990 1995 1998 2000 8-bitový procesor Intel 8080 a Z80 CP/M (příkazová řádka) IBM PC - 16-bitový procesor Intel 8088 MS-DOS 1.0 (jednoúlohový, jednouživatelský, příkazová řádka, systém souborů FAT) MS-DOS 2.0 (vylepšená příkazová řádka, inspirace z Unixu) IBM PC/AT - Intel 386 Windows 3.0, 3.1, 3.11 (grafické rozraní nad MS-DOS, inspirace z Apple Lisa) Windows 95 (grafické rozraní, "32-bitový OS", virtuální paměť, správa procesů, víceúlohový, jednouživatelský, systém souborů FAT) Windows 98 (vylepšení grafického prostředí a podpora Internetu) Windows ME (Windows Millennium Edition) 2
Historie MS Windows II 1993 Windows NT 3.1 (Windows New Technology) skutečně 32-bitový OS, víceúlohový OS, podpora vláken, virtuální paměť přenositelný (80x86, Pentium, Alpha, MIPS, PowerPC,...) systém souborů FAT32 nebo NTFS 1996 1999 grafické rozhraní podobné Windows 95/98 Windows NT 4.0 Windows 2000 (Windows NT 5.0) podpora SMP (symmetric multiprocessing), 2001 2003 2007 podpora až 32 CPU, až 64GB fyzické paměti Windows XP (Windows NT 5.1) 32-bitový/64-bitový OS, podpora až 2CPU a 4GB/16GB Windows Server 2003 (Windows NT 5.2) 32-bitový/64-bitový OS, podpora až 32/64CPU a 64GB/1024GB (Itanium) Windows Vista 3
Architektura Windows XP I 4
Architektura Windows XP II Části běžící v uživatelském módu: System support processes procesy, které nepatří mezi Windows služby např. Winlogon proces, Session manager,... Service processes Windows služby např. Plánovač úloh, Zařazování tisku,.. User applications mohou být následujících typů Windows 32-bit, Windows 64-bit, Windows 3.1 16-bit, MS-DOS 16-bit, POSIX 32-bit, OS/2 32-bit Environment subsystem server processes Windows podsystém a POSIX podsystém DDL = Dynamic-Link Libraries 5
Architektura Windows XP II Části běžící v kernel módu: Windows executive základní služby OS: správa paměti, správa vláken a procesů,... Kernel samotné jádro: plánování vláken, multiprocesorová synchronizace,... Device drivers HAL ovladače HW, ovladače FS,... izoluje jádro a ostatní části od jednotlivých HW detailů Windowing and graphics system GUI (Graphic User Interface) grafické rozhraní CLI (Command Line Interface) rozhraní příkazové řádky 6
Home a Professional Edition Funkce dostupné pouze u Professional Edition: šifrování souborů (u NTFS) detailní nastavení přístupových práv (běžné sdílení složek) připojení ke vzdálené ploše (Remote Desktop Protokol) podpora více procesorů 7
Registr Windows XP I (Centrální) databáze udržující informace o systému: rozpoznaný hardware instalovaný software uživatelské účty a jejich nastavení Uložen v diskových souborech ve složce: %KořenováSložkaSystému%\System32\Config %KořenováSložkaSystému%\Documents and settings\uživatelskéjméno Kdo používá registr rozpoznání hardware (Ntdetect.exe a jádro NToskrnl.exe) PnP Manager ovladače zařízení nástroje pro správu profily uživatelů (lokální) hardwarové profily (může existovat více konfigurací HW) instalační programy 8
Registr Windows XP II Registr upravovat pouze v mimořádném případě!!! Editor registru Start Spustit cmd regedit.exe před modifikací vždy vytvořit bod obnovení, popř. udělat zálohu registru 9
Příklad Změna jména složkytento počítač na%username% na %COMPUTERNAME% 1. spusťte Editor rigistru 2. otevřete klíč HKEY_CLASSES_ROOT\HKEY_CLASSES_ROOT\CLSID\HKEY_CLASSES_ ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} 3. přejmenujte položku LocalizedString na OLDLocalizedString 4. vytvořte novou položku LocalizedString Úpravy Nový Rozšiřitelná řetězová hodnota 5. nastavte hodnotu položky LocalizedString na %USERNAME% na %COMPUTERNAME% 10
Příklad 11
GUI I Motivy GUI Klasické Windows Windows XP Vlastní motiv Změna motivu Zobrazení - vlastnosti Motivy 12
GUI II Hlavní panel Start Panel nástrojů Snadného spuštění Tlačítka Hlavního panelu každá spuštěná aplikace a otevřené okno Oznamovací oblast nástroje a systémové programy, informace o spuštěných aplikacích, datum, čas Nastavení zvuku Start Nastavení Ovládací panely Zvuky a zvuková zařízení Zvuky 13
CLI Spuštění CLI Start Spustit cmd 14
Úlohy, procesy a vlákna Úloha množina procesů, které se spravují jako jednotka pro každou úlohu můžeme stanovit limity např. maximální počet procesů v úloze, celkový čas CPU pro každý proces i celkem pro úlohu,... Proces jednotka, která si alokuje prostředky (např. paměť, otevřené soubory,...) každý proces se spouští s jedním vláknem, ale může dynamicky spouštět další vlákna procesu sdílí prostředky procesu (např. paměťový prostor) Vlákno (Thread) kernel vlákno CPU je přidělováno vláknům (plánování probíhá po vláknech) Fiber uživatelské vlákno (není plánováno jádrem, ale knihovnou na uživatelské úrovni) 15
Stavy vlákna Připraven (Ready) vlákno čeká na CPU Na řadě (Standby) vlákno bylo vybráno, aby v následujícím okamžiku dostalo CPU Spuštěn (Running) vlákno běží na CPU Čekající (Waiting) vlákno čeká na událost Přechodný (Transition) vlákno čeká na CPU, ale není v paměti 16
Plánování vláken Windows XP používá preemptivní prioritní plánování CPU dostane první vhodné ready vlákno s nejvyšší prioritou CPU může využívat po dobu časového kvanta, pokud ho nepřeruší vlákno s vyšší prioritou časové kvantum může být různé pro různé systémy/procesy Plánování vláken je implementováno v jádře. Přepínání kontextu běžící vlákno je přerušeno, důležité informace jsou uloženy, nové informace jsou nahrány a nové vlákno je spuštěno 17
Priorita I Jádro: rozlišuje 32 priorit real-time úrovně (16-31) dynamické úrovně (1-15) systémová úroveň (0) Windows API priority procesů (Realtime, High, Above Normal, Normal, Below Normal, Idle) priority vláken (Time critical, Highest, Above Normal, Normal, Below Normal, Lowest, Idle) 18
Priorita II Proces základní prioritu (base priority) explicitně dědí od rodiče při spuštění procesu (např. funkcícreateprocess() nebo příkazem start /úroveň program) po spuštění (např. funkcísetpriorityclass() nebo aplikacítask Manager) Vlákno základní priorita (base priority) aktuální priorita (dynamic priority) Plánování se děje na základě aktuální priority vlákna. Jádro může dočasně modifikovat aktuální prioritu vlákna (nikoliv u real-time úrovně 16-31). 19
Zobrazení procesů I Správce úloh CTRL+ALT+DEL Správce úloh 20
Zobrazení procesů II Příkaztasklist.exe Start Spustit cmd tasklist.exe Nápověda pomocí tasklist.exe /? 21
Zobrazení procesů III Další nástroje z www.sysinternals.com PsTools ProcExp.exe PsList.exe PsPsExec.exe PsKill.exe PsInfo.exe... 22
Zobrazení procesů IV Process Explorer: ProcExp.exe 23
PsList.exe Zobrazení procesů V 24