Процес — одне з найважливіших понять у архітектурі операційних систем та програмуванні. Процес — об'єкт операційної системи, контейнер системних ресурсів, призначених для підтримки виконання програми. Коли в середовищі операційної системи запускається прикладна програма, система створює спеціальний об’єкт – процес, – який призначений для підтримки її виконання. Хоча може здатися, що програма й процес – поняття схожі, вони фундаментально відрізняються. Програма – це статичний набір команд, а процес – контейнер для ресурсів, які використовуються при виконанні екземпляра програми. Системна реалізація та функції процесу в різних операційних системах дещо відмінні.
Структура процесу у Windows
На найвищому рівні абстракції процес у Windows містить:
- закритий віртуальний адресний простір – діапазон адрес віртуальної пам'яті, яким може користуватися процес;
- програму, що виконується – початковий код і спроектовані на віртуальний адресний простір процесу дані;
- список відкритих дескрипторів (handles) різних системних ресурсів –комунікаційних портів, файлів та інших об'єктів, доступних усім потокам даного процесу;
- контекст захисту (security context), який називають маркером доступу (access token), – він ідентифікує користувача та групи безпеки й привілеї, зіставлені з процесом;
- унікальний ідентифікатор процесу;
- мінімум один потік.
Найважливішою складовою частиною процесу є потік. Процес як системний об'єкт призначений для "обслуговування" потоків. Сам по собі процес не виконує ніяких дій, для цього призначений потік. Крім закритого адресного простору й одного або кількох потоків, у кожного процесу є ідентифікатор захисту і список відкритих дескрипторів об'єктів (файли, розділи загальної пам'яті), або синхронізуючих об'єктів – м’ютексів, подій і семафорів. Кожен процес має контекст захисту, який зберігається в об'єкті – маркері доступу. Маркер доступу містить ідентифікацію захисту й визначає повноваження даного процесу. Дескриптори віртуальних адрес (virtual address descriptors, VAD) – це структури даних, які використовуються диспетчером пам'яті для обліку віртуальних адрес, задіяних процесом.
Загальні характеристики
Кожному процесу мають бути виділені певні системні ресурси, зокрема:
Кожен процес має «батька» (батьківський процес). Він також може мати (але не обов'язково) «нащадків» (дочірні процеси). В сукупності вони формують дерево процесів.
Керування процесами здійснює ядро операційної системи.
Пріоритет процесу
Процес має певний пріоритет, який впливає на кількість процесорного часу, який виділятиметься його потокам. У Windows кожен процес має один із таких класів пріоритету:
- IDLE_PRIORITY_CLASS,
- BELOW_NORMAL_PRIORITY_CLASS,
- NORMAL_PRIORITY_CLASS,
- ABOVE_NORMAL_PRIORITY_CLASS,
- HIGH_PRIORITY_CLASS,
- REALTIME_PRIORITY_CLASS.
За замовчуванням клас пріоритету процесу набуває значення NORMAL_PRIORITY_CLASS. При створенні процесу функцією CreateProcess можна задавати клас пріоритету. Для зміни класу пріоритету існуючого процесу використовується функція API SetPriorityClass, для визначення пріоритету існуючого процесу – функція GetPriorityClass. Процеси, якими керує система, можуть використовувати найнижчий IDLE_PRIORITY_CLASS, що запобігатиме конфлікту таких процесів із процесами вищого пріоритету. Якщо виконується потік процесу з класом HIGH_PRIORITY_CLASS, інші потоки в системі не отримуватимуть процесорного часу. Якщо кілька потоків одночасно мають такий пріоритет, вони втрачають свою ефективність. Клас найвищого пріоритету використовується для потоків, які повинні відповідати на найважливіші події. Якщо прикладна програма виконує завдання, яке потребує цього класу пріоритету, слід використовувати функцію SetPriorityClass для тимчасового підвищення класу пріоритету і відразу після виконання завдання відновлювати звичайний пріоритет. Інший спосіб для вирішення подібного завдання – створити процес високого пріоритету, всі потоки якого будуть блокованими більшість часу і тимчасово розблоковуватимуться при виникненні певної події. Клас пріоритету REALTIME_PRIORITY_CLASS припиняє виконання системних потоків, які керують вводом від миші, клавіатури та фоновим записом на диск, що може призвести до втрати даних або нефункціональності всієї системи. Цей клас може використовуватися для програм, які повинні працювати безпосередньо з апаратним забезпеченням або які виконують швидкі, обмежені в часі завдання.
Інформація, що зберігається у структурах даних процесу
Процес містить таку інформацію (список не повний):
- командний рядок запуску виконуваного процесом застосунку;
- інформація про відведений процесу адресний простір, включно зі стеком;
- посилання на поточний робочий каталог і кореневий каталог процесу (останній служить для обмеження доступу процесу до файлової структури);
- таблиця відкритих процесом файлів;
- так зване оточення процесу, тобто перелік заданих для даного процесу змінних з їх поточними значеннями;
- атрибути, що визначають права і привілеї процесу
- таблиця обробників сигналів;
- вказівка на батьківський процес;
- призначена для користувача маска або маска доступу — вказівка на те, які права треба видалити при створенні нового файлу або каталогу із стандартного набору прав, присвоєних файлу (каталогу).
- перелік потоків процесу (якщо операційна система підтримує багатопотоковість)
Робочий цикл процесу
Під час запуску процесу проходять такі стадії:
- користувач з допомогою вказує програму, яку потрібно виконати
- операційна система створює адресний простір для процесу і структури, які описують новий процес
- заповнюються структури, які описують новий процес
- з файлу, який містить виконавчий файл, в адресний простір процесу копіюються код і дані
- встановлюється стан процесу «готовий до виконання»
- новий процес додається до черги процесів, які очікують на процесор
- керування повертається оболонці користувача
Створення процесу у Windows
Базовою функцією API для створення процесу є CreateProcess. Її заголовок за допомогою мови програмування Delphi описується так:
function CreateProcess( lpApplicationName: PChar, // ім'я виконавчого модуля lpCommandLine: PChar, // рядок параметрів lpProcessAttributes: TSecurityAttributes, // структура процесу // SECURITY_ATTRIBUTES lpThreadAttributes: TSecurityAttributes, // структура потоку // SECURITY_ATTRIBUTES bInheritHandles: LongBool, // прапорець спадкування поточного процесу dwCreationFlags: Longword, // прапорці способів створення процесу lpEnvironment: Pointer, // вказівник на блок параметрів оточення lpCurrentDirectory: PChar, // поточний диск і каталог lpStartupInfo:TStartupInfo, // структура STARTUPINFO lpProcessInformation: TProcessInformation //структура PROCESS_INFORMATION ): LongBool;
Основні етапи створення процесу функцією CreateProcess такі:
- Відкривається файл образу (ЕХЕ), що буде виконуватися в процесі.
- Створюється об'єкт "процес" виконавчої системи.
- Створюється первинний потік (стек, контекст і об'єкт "потік" виконавчої системи).
- Підсистема Windows повідомляється про створення нового процесу й потоку.
- Починається виконання первинного потоку (якщо не зазначено прапорець CREATE_SUSPENDED- створити "завислим").
- У контексті нового процесу й потоку ініціалізується адресний простір (наприклад, завантажуються необхідні DLL) і починається виконання програми.
Після створення процесу з ним співставляється унікальний глобальний системний ідентифікатор- ProcessID.
Приклад створення процесу
Мовою Delphi фрагмент коду, призначений для створення процесу, можна подати так:
var SI : TStartupInfo; PI : TProcessInformation; ............................................... FillChar(SI, Sizeof(SI), #0); SI.cb := SizeOf(SI); SI.dwX := 50; SI.dwY := 50; SI.dwFlags := STARTF_USEPOSITION; if not CreateProcess('APINewProcess.exe', nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, SI, PI) then MessageBox(Wnd, 'Не вийшло створити процес.', , MB_OK or MB_ICONERROR); .... Після закінчення роботи з процесом ....... CloseHandle(PI.hThread); CloseHandle(PI.hProcess);
Доступ до процесу
Якщо необхідно працювати із зовнішнім процесом, потрібно спочатку відкрити дескриптор об’єкта процесу за допомогою функції OpenProcess. Ця функція за відомим ідентифікатором процесу повертає його дескриптор, який може використовуватися для маніпуляцій над процесом.
Завершення роботи процесу
- Процес виконує останню інструкцію програми — повертає операційній системі код завершення. Якщо процес завершився нормально повертається значення 0, інакше повертається значення коду помилки.
- операційна система встановлює стан процесу «завершений» і починає звільнення ресурсів, які були виділені процесу під час його виконання
- операційна система по черзі завершує усі дочірні процеси даного
- операційна система звільняє адресний простір процесу
- операційна система усуває процес з черги готових процесів
Відслідковування процесів у Windows
Найвідоміша утиліта для аналізу активності процесів у Windows – системний Task Manager (диспетчер завдань). У ядрі Windows немає такого поняття, як завдання, тому Task Manager насправді є інструментом для керування процесами. Диспетчер завдань Windows відображає список активних процесів. Його можна запустити різними способами:
- Натиснувши комбінацію клавіш Ctrl+Shift+Esc;
- Клацнувши на панелі завдань правою кнопкою миші й вибравши команду Task Manager (диспетчер завдань);
- Натиснувши клавіші Ctrl+Alt+Del. Для перегляду списку процесів після запуску диспетчера завдань слід відкрити вкладку Processes (процеси). У цьому вікні процеси ідентифікуються за іменем образу, екземплярами якого вони є.
Якщо вкладка Processes вікна диспетчера завдань показує список процесів, то вміст вкладки Applications (застосунки) відображає список видимих вікон верхнього рівня всіх об'єктів "робочий стіл" інтерактивного об'єкта WindowStation. (За замовчуванням існують два об'єкти "робочий стіл", але можна створити додаткові робочі столи через Windows-функцію CreateDesktop). Стовпчик Status (стан) дає уявлення про те, чи перебуває потік-власник вікна в стані очікування повідомлення. Стан "Running" ("виконується") означає, що потік очікує вводу, a "Not Responding" ("не відповідає") – що не очікує (тобто зайнятий, або чекає завершення операції вводу-виводу, або звільнення якогось синхронізуючого об'єкта).
Завдання
Windows надає розширення для моделі процесів – завдання (jobs). Вони призначені в основному для того, щоб групами процесів можна було оперувати й керувати як єдиним цілим. Об'єкт-завдання дозволяє встановлювати певні атрибути й накладати обмеження на процес або процеси, зіставлені із завданням. У цьому об'єкті також зберігається інформація про всі процеси, які були зіставлені з завданням, але вже завершені.
Джерела
- Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows/ Дж.Рихтер ; пер. с англ. – 4-е изд. – СПб. : Питер; М.: Издательско-торговый дом "Русская редакция", 2001.
- Руссинович М. Внутреннее устройство Microsoft Windows : Windows Server 2003, Windows XP и Windows 2000. Мастер-класс / М.Руссинович, Д.Соломон ; пер. с англ. – 4-е изд. – М : Издательско-торговый дом "Русская редакция" ; СПб : Питер, 2005.
- Коноваленко І.В., Федорів П.С. Системне програмування у Windows з прикладами на Delphi, Т:ТНТУ.- 2012 [ 8 грудня 2012 у Wayback Machine.].
Див. також
Було запропоновано статтю Процеси в ОС UNIX до цієї статті або розділу, але, можливо, це варто додатково . Пропозиція з квітня 2017. |
Було запропоновано статтю Стани процесу до цієї статті або розділу, але, можливо, це варто додатково . Пропозиція з квітня 2017. |
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Proces Proces odne z najvazhlivishih ponyat u arhitekturi operacijnih sistem ta programuvanni Proces ob yekt operacijnoyi sistemi kontejner sistemnih resursiv priznachenih dlya pidtrimki vikonannya programi Koli v seredovishi operacijnoyi sistemi zapuskayetsya prikladna programa sistema stvoryuye specialnij ob yekt proces yakij priznachenij dlya pidtrimki yiyi vikonannya Hocha mozhe zdatisya sho programa j proces ponyattya shozhi voni fundamentalno vidriznyayutsya Programa ce statichnij nabir komand a proces kontejner dlya resursiv yaki vikoristovuyutsya pri vikonanni ekzemplyara programi Sistemna realizaciya ta funkciyi procesu v riznih operacijnih sistemah desho vidminni Proces ta jogo resursiStruktura procesu u WindowsNa najvishomu rivni abstrakciyi proces u Windows mistit zakritij virtualnij adresnij prostir diapazon adres virtualnoyi pam yati yakim mozhe koristuvatisya proces programu sho vikonuyetsya pochatkovij kod i sproektovani na virtualnij adresnij prostir procesu dani spisok vidkritih deskriptoriv handles riznih sistemnih resursiv komunikacijnih portiv fajliv ta inshih ob yektiv dostupnih usim potokam danogo procesu kontekst zahistu security context yakij nazivayut markerom dostupu access token vin identifikuye koristuvacha ta grupi bezpeki j privileyi zistavleni z procesom unikalnij identifikator procesu minimum odin potik Najvazhlivishoyu skladovoyu chastinoyu procesu ye potik Proces yak sistemnij ob yekt priznachenij dlya obslugovuvannya potokiv Sam po sobi proces ne vikonuye niyakih dij dlya cogo priznachenij potik Krim zakritogo adresnogo prostoru j odnogo abo kilkoh potokiv u kozhnogo procesu ye identifikator zahistu i spisok vidkritih deskriptoriv ob yektiv fajli rozdili zagalnoyi pam yati abo sinhronizuyuchih ob yektiv m yuteksiv podij i semaforiv Kozhen proces maye kontekst zahistu yakij zberigayetsya v ob yekti markeri dostupu Marker dostupu mistit identifikaciyu zahistu j viznachaye povnovazhennya danogo procesu Deskriptori virtualnih adres virtual address descriptors VAD ce strukturi danih yaki vikoristovuyutsya dispetcherom pam yati dlya obliku virtualnih adres zadiyanih procesom Zagalni harakteristikiKozhnomu procesu mayut buti vidileni pevni sistemni resursi zokrema procesor pam yat dostup do pristroyiv vvodu vivodu Kozhen proces maye batka batkivskij proces Vin takozh mozhe mati ale ne obov yazkovo nashadkiv dochirni procesi V sukupnosti voni formuyut derevo procesiv Keruvannya procesami zdijsnyuye yadro operacijnoyi sistemi Prioritet procesu Proces maye pevnij prioritet yakij vplivaye na kilkist procesornogo chasu yakij vidilyatimetsya jogo potokam U Windows kozhen proces maye odin iz takih klasiv prioritetu IDLE PRIORITY CLASS BELOW NORMAL PRIORITY CLASS NORMAL PRIORITY CLASS ABOVE NORMAL PRIORITY CLASS HIGH PRIORITY CLASS REALTIME PRIORITY CLASS Za zamovchuvannyam klas prioritetu procesu nabuvaye znachennya NORMAL PRIORITY CLASS Pri stvorenni procesu funkciyeyu CreateProcess mozhna zadavati klas prioritetu Dlya zmini klasu prioritetu isnuyuchogo procesu vikoristovuyetsya funkciya API SetPriorityClass dlya viznachennya prioritetu isnuyuchogo procesu funkciya GetPriorityClass Procesi yakimi keruye sistema mozhut vikoristovuvati najnizhchij IDLE PRIORITY CLASS sho zapobigatime konfliktu takih procesiv iz procesami vishogo prioritetu Yaksho vikonuyetsya potik procesu z klasom HIGH PRIORITY CLASS inshi potoki v sistemi ne otrimuvatimut procesornogo chasu Yaksho kilka potokiv odnochasno mayut takij prioritet voni vtrachayut svoyu efektivnist Klas najvishogo prioritetu vikoristovuyetsya dlya potokiv yaki povinni vidpovidati na najvazhlivishi podiyi Yaksho prikladna programa vikonuye zavdannya yake potrebuye cogo klasu prioritetu slid vikoristovuvati funkciyu SetPriorityClass dlya timchasovogo pidvishennya klasu prioritetu i vidrazu pislya vikonannya zavdannya vidnovlyuvati zvichajnij prioritet Inshij sposib dlya virishennya podibnogo zavdannya stvoriti proces visokogo prioritetu vsi potoki yakogo budut blokovanimi bilshist chasu i timchasovo rozblokovuvatimutsya pri viniknenni pevnoyi podiyi Klas prioritetu REALTIME PRIORITY CLASS pripinyaye vikonannya sistemnih potokiv yaki keruyut vvodom vid mishi klaviaturi ta fonovim zapisom na disk sho mozhe prizvesti do vtrati danih abo nefunkcionalnosti vsiyeyi sistemi Cej klas mozhe vikoristovuvatisya dlya program yaki povinni pracyuvati bezposeredno z aparatnim zabezpechennyam abo yaki vikonuyut shvidki obmezheni v chasi zavdannya Informaciya sho zberigayetsya u strukturah danih procesu Proces mistit taku informaciyu spisok ne povnij komandnij ryadok zapusku vikonuvanogo procesom zastosunku informaciya pro vidvedenij procesu adresnij prostir vklyuchno zi stekom posilannya na potochnij robochij katalog i korenevij katalog procesu ostannij sluzhit dlya obmezhennya dostupu procesu do fajlovoyi strukturi tablicya vidkritih procesom fajliv tak zvane otochennya procesu tobto perelik zadanih dlya danogo procesu zminnih z yih potochnimi znachennyami atributi sho viznachayut prava i privileyi procesu tablicya obrobnikiv signaliv vkazivka na batkivskij proces priznachena dlya koristuvacha maska abo maska dostupu vkazivka na te yaki prava treba vidaliti pri stvorenni novogo fajlu abo katalogu iz standartnogo naboru prav prisvoyenih fajlu katalogu perelik potokiv procesu yaksho operacijna sistema pidtrimuye bagatopotokovist Robochij cikl procesuPid chas zapusku procesu prohodyat taki stadiyi koristuvach z dopomogoyu vkazuye programu yaku potribno vikonati operacijna sistema stvoryuye adresnij prostir dlya procesu i strukturi yaki opisuyut novij proces zapovnyuyutsya strukturi yaki opisuyut novij proces z fajlu yakij mistit vikonavchij fajl v adresnij prostir procesu kopiyuyutsya kod i dani vstanovlyuyetsya stan procesu gotovij do vikonannya novij proces dodayetsya do chergi procesiv yaki ochikuyut na procesor keruvannya povertayetsya obolonci koristuvacha Stvorennya procesu u Windows Bazovoyu funkciyeyu API dlya stvorennya procesu ye CreateProcess Yiyi zagolovok za dopomogoyu movi programuvannya Delphi opisuyetsya tak function CreateProcess lpApplicationName PChar im ya vikonavchogo modulya lpCommandLine PChar ryadok parametriv lpProcessAttributes TSecurityAttributes struktura procesu SECURITY ATTRIBUTES lpThreadAttributes TSecurityAttributes struktura potoku SECURITY ATTRIBUTES bInheritHandles LongBool praporec spadkuvannya potochnogo procesu dwCreationFlags Longword praporci sposobiv stvorennya procesu lpEnvironment Pointer vkazivnik na blok parametriv otochennya lpCurrentDirectory PChar potochnij disk i katalog lpStartupInfo TStartupInfo struktura STARTUPINFO lpProcessInformation TProcessInformation struktura PROCESS INFORMATION LongBool Golovni etapi stvorennya procesu Osnovni etapi stvorennya procesu funkciyeyu CreateProcess taki Vidkrivayetsya fajl obrazu EHE sho bude vikonuvatisya v procesi Stvoryuyetsya ob yekt proces vikonavchoyi sistemi Stvoryuyetsya pervinnij potik stek kontekst i ob yekt potik vikonavchoyi sistemi Pidsistema Windows povidomlyayetsya pro stvorennya novogo procesu j potoku Pochinayetsya vikonannya pervinnogo potoku yaksho ne zaznacheno praporec CREATE SUSPENDED stvoriti zavislim U konteksti novogo procesu j potoku inicializuyetsya adresnij prostir napriklad zavantazhuyutsya neobhidni DLL i pochinayetsya vikonannya programi Pislya stvorennya procesu z nim spivstavlyayetsya unikalnij globalnij sistemnij identifikator ProcessID Priklad stvorennya procesu Movoyu Delphi fragment kodu priznachenij dlya stvorennya procesu mozhna podati tak var SI TStartupInfo PI TProcessInformation FillChar SI Sizeof SI 0 SI cb SizeOf SI SI dwX 50 SI dwY 50 SI dwFlags STARTF USEPOSITION if not CreateProcess APINewProcess exe nil nil nil false NORMAL PRIORITY CLASS nil nil SI PI then MessageBox Wnd Ne vijshlo stvoriti proces MB OK or MB ICONERROR Pislya zakinchennya roboti z procesom CloseHandle PI hThread CloseHandle PI hProcess Dostup do procesu Yaksho neobhidno pracyuvati iz zovnishnim procesom potribno spochatku vidkriti deskriptor ob yekta procesu za dopomogoyu funkciyi OpenProcess Cya funkciya za vidomim identifikatorom procesu povertaye jogo deskriptor yakij mozhe vikoristovuvatisya dlya manipulyacij nad procesom Zavershennya roboti procesu Proces vikonuye ostannyu instrukciyu programi povertaye operacijnij sistemi kod zavershennya Yaksho proces zavershivsya normalno povertayetsya znachennya 0 inakshe povertayetsya znachennya kodu pomilki operacijna sistema vstanovlyuye stan procesu zavershenij i pochinaye zvilnennya resursiv yaki buli vidileni procesu pid chas jogo vikonannya operacijna sistema po cherzi zavershuye usi dochirni procesi danogo operacijna sistema zvilnyaye adresnij prostir procesu operacijna sistema usuvaye proces z chergi gotovih procesivVidslidkovuvannya procesiv u WindowsNajvidomisha utilita dlya analizu aktivnosti procesiv u Windows sistemnij Task Manager dispetcher zavdan U yadri Windows nemaye takogo ponyattya yak zavdannya tomu Task Manager naspravdi ye instrumentom dlya keruvannya procesami Dispetcher zavdan Windows vidobrazhaye spisok aktivnih procesiv Jogo mozhna zapustiti riznimi sposobami Natisnuvshi kombinaciyu klavish Ctrl Shift Esc Klacnuvshi na paneli zavdan pravoyu knopkoyu mishi j vibravshi komandu Task Manager dispetcher zavdan Natisnuvshi klavishi Ctrl Alt Del Dlya pereglyadu spisku procesiv pislya zapusku dispetchera zavdan slid vidkriti vkladku Processes procesi U comu vikni procesi identifikuyutsya za imenem obrazu ekzemplyarami yakogo voni ye Yaksho vkladka Processes vikna dispetchera zavdan pokazuye spisok procesiv to vmist vkladki Applications zastosunki vidobrazhaye spisok vidimih vikon verhnogo rivnya vsih ob yektiv robochij stil interaktivnogo ob yekta WindowStation Za zamovchuvannyam isnuyut dva ob yekti robochij stil ale mozhna stvoriti dodatkovi robochi stoli cherez Windows funkciyu CreateDesktop Stovpchik Status stan daye uyavlennya pro te chi perebuvaye potik vlasnik vikna v stani ochikuvannya povidomlennya Stan Running vikonuyetsya oznachaye sho potik ochikuye vvodu a Not Responding ne vidpovidaye sho ne ochikuye tobto zajnyatij abo chekaye zavershennya operaciyi vvodu vivodu abo zvilnennya yakogos sinhronizuyuchogo ob yekta ZavdannyaWindows nadaye rozshirennya dlya modeli procesiv zavdannya jobs Voni priznacheni v osnovnomu dlya togo shob grupami procesiv mozhna bulo operuvati j keruvati yak yedinim cilim Ob yekt zavdannya dozvolyaye vstanovlyuvati pevni atributi j nakladati obmezhennya na proces abo procesi zistavleni iz zavdannyam U comu ob yekti takozh zberigayetsya informaciya pro vsi procesi yaki buli zistavleni z zavdannyam ale vzhe zaversheni DzherelaRihter Dzh Windows dlya professionalov sozdanie effektivnyh Win32 prilozhenij s uchetom specifiki 64 razryadnoj versii Windows Dzh Rihter per s angl 4 e izd SPb Piter M Izdatelsko torgovyj dom Russkaya redakciya 2001 Russinovich M Vnutrennee ustrojstvo Microsoft Windows Windows Server 2003 Windows XP i Windows 2000 Master klass M Russinovich D Solomon per s angl 4 e izd M Izdatelsko torgovyj dom Russkaya redakciya SPb Piter 2005 Konovalenko I V Fedoriv P S Sistemne programuvannya u Windows z prikladami na Delphi T TNTU 2012 8 grudnya 2012 u Wayback Machine Div takozhBagatozadachnist Potik Bulo zaproponovano priyednati stattyu Procesi v OS UNIX do ciyeyi statti abo rozdilu ale mozhlivo ce varto dodatkovo obgovoriti Propoziciya z kvitnya 2017 Bulo zaproponovano priyednati stattyu Stani procesu do ciyeyi statti abo rozdilu ale mozhlivo ce varto dodatkovo obgovoriti Propoziciya z kvitnya 2017 Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi