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

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

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

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

Звіт до лабораторної роботи № 3 з дисципліни «Операційні системи» на тему: «Багатопоточність»

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

Багатопоточність

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

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

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

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

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

У звіті досліджено реалізацію багатозадачності за допомогою потоків у середовищі Windows NT та платформі .NET Framework. Виконано практичне завдання на C++ із паралельним виведенням символів за допомогою кількох потоків.

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

  • Багатопоточність
  • Операційні системи
  • Багатозадачність
  • Потоки виконання
  • Програмування на C++
  • .NET Framework

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

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

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

багатопоточністьпотікпроцесбагатозадачністьопераційна системаWindows NTC++.NET Frameworkквант часупаралельне виконання

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут КНІТ Кафедра ПЗ ЗВІТ До лабораторної роботи № 3 На тему: “ Багатопоточність ” З дисципліни : " Операційн системи" Лектор: Доц. каф. ПЗ Яковина В.С. Львів – 2008 Мета роботи: Ознайомитися із реалізацією багатозадачності за допомогою потоків у сімействі операційних систем Microsoft на прикладі Windows NT5 (ядро 5.X). Освоїти роботу із потоками. Теоретичні відомості Багатопоточність (англ. multi-threading) — властивість операційної системи полягає в тому що процес, породжений в операційній системі, може складатися з кількох потоків, що виконуються паралельно, або навіть одночасно на багатопроцесорних системах. При виконанні деяких завдань таке розділення може досягти ефективнішого використання ресурсів ПК. Основою багато поточності є квазі-багатозадачність на рівні одного виконуваного процесу, тобто усі потоки виконуються в адресному просторі одного батька процесу. Окрім цього, усі потоки процесу мають не тільки спільний адресний простір, але і спільні дескриптори файлів. Процес, що виконується, має як мінімум один первиний потік. Тобто програмний код не виконується у процесі він виконується у потоці, а процес в даному випадку краще розглядати як контейнер потоків. Багатопоточність (як метод програмування) не слід плутати ні з багатозадачністю, ані з багато-процесорністю, не зважаючи на те, що операційні системи, що реалізовують багатозадачність, як правило реалізують і багато поточність. Переваги в багато поточності такі: Спрощення програми в деяких випадках, за рахунок використання загального адресного простору Менші відносно процесу часові витрати на створення потоку і взаємодію між ними Підвищення продуктивності процесу за рахунок розпаралелювання процесорних обчислень і операцій вводу/виводу С++   using namespace System; using namespace System::Threading; ref class Work { public: static void DoWork() { Console::WriteLine( "Static thread procedure." ); } int Data; void DoMoreWork() { Console::WriteLine( "Instance thread procedure. Data={0}", Data ); } }; int main() { Work^ w = gcnew Work; w->Data = 42; ThreadStart^ threadDelegate = gcnew ThreadStart( w, &Work::DoMoreWork ); Thread^ newThread = gcnew Thread( threadDelegate ); newThread->Start(); threadDelegate = gcnew ThreadStart( &Work::DoWork ); newThread = gcnew Thread( threadDelegate ); newThread->Start(); }   Індивідуальне завдання Написати програму із двома потоками які одночасно здійснюють вивід тексту на екран (бажано щоб перший потік виводив одиночний символ «Х», другий потік виводив символ крапка «.»). Код програми Назва файлу: Lab03.cpp // Lab03.cpp : main project file. #include "stdafx.h" using namespace System; using namespace System::Threading; void ShowPoint(); int main(array<System::String ^> ^args) { Thread^ t = gcnew Thread(gcnew ThreadStart(ShowPoint)); t->Start(); while(true) Console::Write(L"X"); return 0; } void ShowPoint() { while(true) Console::Write(L"."); } Результат виконання Результатом виконання є паралельне виконання двох потоків у одному процесі. Як бачимо кожному з них виділяється певний квант часу процесора і тоді процесор виконує інструкцію виводу у консоль відповідного символу. На рис. 2. представлено результати виконання програми. Також деревовидну структуру запуску процесу.  Рис. 2. Результат виконання програми Висновок На лабораторній роботі було розглянуто та досліджено: виконання, створення, і породження потоків, ознайомились із підходами програмування на рівні Microsoft framework .NET. Також було виконано індивідуальне завдання, і більш детально на практиці розглянуто роботу багато поточності.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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