DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 2 на тему: Робота із процесами в ОС Windows

Оригінальна назва роботи

Робота із процесами в ОС Windows.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Програмного забезпечення (ПЗ)

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи
Група:
ПІ-2
Коротко про документ

Про що ця робота

У звіті досліджено принципи багатозадачності та створення процесів в операційній системі Windows NT. Виконано практичне завдання зі створення дочірнього процесу за допомогою функції CreateProcess.

У роботі розглядаються

  • Операційні системи
  • Процеси та потоки
  • Багатозадачність
  • Квантування часу
  • Ядро Windows
  • Системні виклики Win32 API

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Індивідуальне завдання
  4. Код програми
  5. Результат виконання
  6. Висновок
Для кого:Студенти технічних спеціальностей та вивчаючі програмування під ОС Windows
Викладачі:Викладач кафедри програмного забезпечення

Ключові поняття

ПроцесПотікОб’єкт ядраКвант часуCreateProcessStartupInfoProcessInformationWindows NTБагатозадачність

Частина тексту файла (без зображень, графіків і формул):

Міністерство Освіти І НАУКИ України Національний університет "Львівська політехніка" Інститут КНІТ Кафедра ПЗ ЗВІТ До лабораторної роботи № 2 На тему: “ Робота із процесами в ОС Windows ” З дисципліни : " Операційн системи" Львів – 2008 Мета роботи: Ознайомитися із реалізацією багатозадачності у сіместві операційних систем MicroSoft на прикладі Windows NT5 (ядро 5.X). Освоїти роботу із процесами і методами створення їх. Теоретичні відомості Процес зазвичай визначають як екземпляр виконуваної програми. Але це неправельне визначення. Оскільки програма це є набір процесорних команд, тоді як процесом називається саме виконання цього програмного коду. Екземпляр виконуваної програми складається із двох компонентів: об'єкту ядра, через який операційна система керує процесом. Там же зберігається статистична інформація про процес; адресний простір, в якому міститься код і дані усіх EXE і DLL модулів. Саме в ньому знаходяться область пам'яті, що динамічно розподіляється для стеків потоків та інших потреб. Для цього кожен потік повинен мати в своєму розпорядженні власний набір регістрів процесора і власний стек. У кожному процесі є мінімум один потік. Якби у процесу не було жодного потоку, система автоматично знищила б його разом з виділеним йому адресним простором. Щоб усі ці потоки працювали, операційна система відводить кожному з них певний процесорний час. Виділяючи потокам відрізки часу (звані квантами) за принципом каруселі, вона створює тим самим ілюзію одночасного виконання потоків. Рис 2.1. ілюструє розподіл процесорного часу між потоками на машині з одним процесором. Якщо в машині встановлено більш за один процесор, алгоритм роботи операційної системи значно ускладнюється (в цьому випадку система прагне збалансувати навантаження між процесорами).  Рис.2.1. Операційна система виділяє потокам кванти часу за принципом каруселі При створенні процесу перший (точніше, первинний) потік створюється системою автоматично. Далі цей потік може породити інші потоки, ті у свою чергу — нові і так далі. Індивідуальне завдання Написати програму створення додаткового потоку для програми calc.exe. показати в результатах виконання деревовидну структуру залежності новоствореного процеса від батьківського процесу. Код програми Назва файлу: Lab02.cpp // Lab02.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "iostream" bool LaunchExe(LPCTSTR szExe); int _tmain(int argc, _TCHAR* argv[]) { LaunchExe(_T("c:\\windows\\system32\\calc.exe")); return 0; } bool LaunchExe(LPCTSTR szExe) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); if( !CreateProcess(szExe, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ) ) { MessageBox(NULL,_T( "CreateProcess failed." ),_T("Result"),MB_OK); return FALSE; } WaitForSingleObject( pi.hProcess, INFINITE ); CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); return TRUE; } Результат виконання Результатом виконання програми є створення нового процесу для програми: %windir%\system32\calc.exe На рис. 2. представлено результати виконання програми. Також деревовидну структуру запуску процесу.  Рис. 2. Результат виконання програми Висновок На лабораторній роботі було розглянуто та досліджено: виконання, створення, і породження процесів, ознайомились із підходами програмування на рівні ядра створення процесу і порівняли із стандартним підходом виклику інших програм. Порівняли переваги і недоліки використання двох методів. Також було виконано індивідуальне завдання, і за допомогою додатково ПЗ досліджено новостворений процес в ОС, його параметри та права, хто його запустив із якими параметрами.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!