Внутрішній устрій windows.

Відео: Архітектура Windows. Програмування в ядрі Windows

Утиліта Process Explorer показує інформацію про процеси і потоки,запущені на Вашому компьютере.Ета утиліта показує набагато більше, ніж будь-який інший доступний інструмент такого роду, ось чому вона використовується в багатьох експериментах.

Нижче перераховані деякі унікальні відомості, що виводяться утилітою Process Explorer, і її можливості:

* Повне ім`я (разом з шляхом) виконуваного образу-
* Маркер захисту процесу (список груп і привілеїв) -
* Виділення змін до списку процесів і потоков-
* Список сервісів всередині процесів - хостів сервісів з висновком Імен (display name) і опісанія-
* Процеси, які є частиною завдання, і детальні відомості про заданіях-



* Процеси, виполняющіе.NET / WinFX-додатки, і відомості, специфічні для .NET (наприклад, список доменів додатків і лічильники продуктивності, пов`язані з CLR) -
* Час запуску процесів і потоков-
* Повний список файлів, проецируемих в пам`ять (не тільки DLL-модулів) -
* Можливість призупинення процесу-* можливість завершити індивідуальних потоков-
* Простота виявлення процесів, що використовують найбільшу частку процесорного часу за певний період. (Оснащення Performance дозволяє переглядати відсоток використання процесора для заданого набору процесів, але не показує автоматично процеси, створені після початку сеансу моніторингу.)

Process Explorer також спрощує доступ до інформації, яка надається іншими утилітами, створюючи єдину точку перегляду:
* Дерево процесів з можливістю згортання окремих частин цього дерева-
* Відкриті описатели в процесі без попередньої настройки (утиліти Microsoft для виведення відкритих описателей вимагають попередньої установки загальносистемного прапора і перезавантаження) -
* Список DLL (і файлів, що проектуються в пам`ять) в будь-якому процессе-
* Активність потоків в будь-якому процессе-
* Стеки потоків користувальницького режиму (з зіставленням адрес іменам, використовуючи механізм підтримки символів для инстументов налагодження) -
* Стеки системних потоків режиму ядра (з зіставленням адрес іменам, використовуючи механізм підтримки символів для инстументов налагодження) -
* Різниця в перемиканні контекстів (context switch delta) -
* Ліміти пам`яті режиму ядра (пулів пулів підкачує і неподкачіваемой пам`яті) (інші утиліти показують тільки поточні розміри).

Відео: Невдала спроба встановити Windows 8

Скачайте Process Explorer за наступним посиланням Process Explorer і запустіть его.Прі першому запуску ви побачите повідомлення про те, що на даний момент символом не сконфігуровані, Process Explorer може звертатися до символьної інформації для відображення символьного імені стартовою функції потоку і функцій в його стеку викликів (для цього потрібно клацнути процес і вибрати вкладку Threads) .Ця інформація корисна для ідентифікації того, що саме роблять потоки всередині процесса.Для використовувати символи ви повинні встановити Debugging Tools.Потом клацнути Options, вибрати Configure Symbols і набрати відповідний шлях Symbols.
При запуску Process Explorer за замовчуванням виводить список процесів у верхній половині вікна, а список відкритих описателей для обраного на даний момент процесу - в нижній половіне.Еслі ви затримаєте курсор миші над іменем процесу, Process Explorer також показує опис способу, назва компанії і повний шлях.
Ось як використовувати деякі базові можливості Process Explorer:
1.Отключіть нижню секцію, скинувши View, Show Lower Pane. (Нижня секція може відображати відкриті описатели або проектуються DLL і файли.)
2.Обратіте увагу на те, що процеси, які є хостами сервісів, за замовчуванням виділяються рожевим цветом.Ваші власні процеси виділяються синім.
3.Задержіте курсор миші над іменем образу і зверніть увагу на те, що в підказці відображається повний шлях.
4.Щелкніте View, Select Columns і додайте шлях образу.
5.Отсортіруйте по колонці процесів і ви побачите, що подання до вигляді дерева зникло.
6.Сбросьте View, Show Process From All Users для відображення тільки ваших процесів.
7.Перейдіте в Options, Difference Highlight Duration і змініть значення на 5 секунд.Потом запустіть новий процес (який завгодно) і зверніть увагу на те, що цей процес виділяється зеленим протягом 5 секунд.Закройте новий процес і зауважте, що цей процес виділяється червоним протягом 5 секунд, перш ніж зникнути з деревоподібного спіска.Ета функція може стати в нагоді для виявлення створюваних і завершує процесів в системі.
8.Наконец, двічі клацніть який-небудь процес і вивчіть вкладки, доступні у вікні властивостей процесу. (Ці вкладки знадобляться нам в подальших експериментах.)
Потік (Thread) - деяка сутність всередині процесу, яка отримує процесорний час для виполненія.Без потоку програма процесу не може виполнятся.Поток включає наступні найбільш важливі елементи:
* Вміст набору регістрів процесора, що відображають стан процесора-
* Два стека, один з яких використовується потоком при виконанні в режимі ядра, а інший - в призначеному для користувача режіме-
* Закриту область пам`яті, звану локальною пам`яттю потоку (thread-local storage, TLS) і використовувану підсистемами, бібліотеками виконуючих систем (run-time libraries) і DLL-

* Унікальний ідентифікатор потоку (у внутрісистемної термінології також званий ідентифікатором клієнта: ідентифікатори процесів і потоків генеруються з одного простору імен і ніколи не перекриваються) -
* Іноді потоки мають своїм контекстом захисту, який зазвичай використовується багато-серверними додатками, підмінюють контекст захисту обслуговуваних клієнтів.
Змінні регістри, стеки і локальні області пам`яті називаються контекстом потока.Поскольку ця інформація різна на кожній апаратній платформі, на якій може працювати Windows, відповідна структура даних специфічна для конкретної платформи.Windows-функція GetThreadContext надає доступ до цієї апаратно-залежною інформації (званої блоком CONTEXT).
Волокна (fibers) дозволяють додаткам планувати власні потоки виконання, не використовуючи вбудований механізм планування потоків на основі пріорітетов.Волокна часто називають «полегшеними» потокамі.Оні невидимі ядру, так як Kernel32.dll реалізує їх в призначеному для користувача режіме.Для використання волокна потрібно викликати Windows -функцію ConvertThreadToFiber, яка перетворює потік в волокно.Полученое волокно може створювати додаткові волокна через функцію CreateFiber (у кожного волокна може бути свій набір волокон) .Виполненіе волокна (на відміну від піт ка) починається до тих пір, поки воно не буде вручну вибрано викликом SwitchToFiber.Волокно працює до завершення або до перемикання процесора на інше волокно викликом все тієї ж SwitchToFiber.
Хоча у потоків свій контекст виконання, кожен потік всередині одного процесу ділить його ВАП (а також інші ресурси, що належать процесу) .Це означає, що всі потоки в процесі можуть записувати і зчитувати вміст пам`яті будь-якого з потоків даного процесса.Однако потоки не можуть випадково послатися на адресний простір іншого процесса.Ісключеніе можливо в ситуації, коли той надає частину свого адресного простору як розділ загальної пам`яті (shared memory section), в Windows API званий об`єктом прое ція файлу (file mapping object), або коли один з процесів має право на відкриття іншого процесу і використовує функції доступу до пам`яті між процесами, наприклад ReadProcessMemory і WriteProcessMemory.
Крім закритого адресної простору і одного або декількох потоків у кожного процесу є ідентифікація захисту і список відкритих описателей таких об`єктів, як файли і розділи загальної пам`яті, або синхронізуючих об`єктів на кшталт м`ютексів, подій і семафорів.
Кожен процес має контекстом захисту, який зберігається в об`єкті - маркере доступа.Маркер доступу містить ідентифікацію захисту і визначає повноваження даного процесса.По замовчуванням при потоці немає власного маркера доступу, але він може отримати його, і це дозволяє йому підміняти контекст захисту іншого процесу ( в тому числі виконуваного на віддаленій системі Windows).
Дескриптори віртуальних адрес (Virtual address descriptors, VAD) - це структури даних, використовувані диспетчером пам`яті для обліку віртуальних адрес, задіяних процесом.
Windows надає розширення для моделі процесів - завдання (jobs) .Вони призначені в основному для того, щоб групами процесів можна було оперувати і управляти як єдиним целим.Об`ект-завдання дозволяє встановлювати певні атрибути і накладати обмеження на процес або процеси, зіставлені із завданням. В цьому об`єкті також зберігається інформація про всі процеси, які були зіставлені з завданням, але до теперішнього часу вже завершени.В якихось відносинах об`єкт-завдання компенсує Відсутність ієрархічного дерева пр оцессе в Windows, а в якихось - навіть перевершує за своїми можливостями дерево процесів UNIX.

Відео: 3 З чого складається комп`ютер Внутрішній устрій комп`ютера Відео TechMastery Net

P.P.S. Якщо у Вас є питання, бажання прокоментувати або поділитися досвідом, напишіть, будь ласка, в коментарях нижче.

Поділися в соц мережах:
Cхоже

Увага, тільки СЬОГОДНІ!