Частина тексту файла (без зображень, графіків і формул):
Міністерство Освіти І НАУКИ України
Національний університет "Львівська політехніка"
Інститут КНІТ
Кафедра ПЗ
ЗВІТ
До лабораторної роботи № 3
На тему: “ Багатопоточність ”
З дисципліни : " Операційн системи"
Виконав:
ст. гр. ПІ -2
Львів – 2008
Мета роботи: Ознайомитися із реалізацією багатозадачності за допомогою потоків у сімействі операційних систем Microsoft на прикладі Windows NT5 (ядро 5.X). Освоїти роботу із потоками.
Теоретичні відомості
Багатопоточність (англ. multi-threading) — властивість операційної системи полягає в тому що процес, породжений в операційній системі, може складатися з кількох потоків, що виконуються паралельно, або навіть одночасно на багатопроцесорних системах. При виконанні деяких завдань таке розділення може досягти ефективнішого використання ресурсів ПК.
Основою багато поточності є квазі-багатозадачність на рівні одного виконуваного процесу, тобто усі потоки виконуються в адресному просторі одного батька процесу. Окрім цього, усі потоки процесу мають не тільки спільний адресний простір, але і спільні дескриптори файлів. Процес, що виконується, має як мінімум один первиний потік.
Тобто програмний код не виконується у процесі він виконується у потоці, а процес в даному випадку краще розглядати як контейнер потоків.
Багатопоточність (як метод програмування) не слід плутати ні з багатозадачністю, ані з багато-процесорністю, не зважаючи на те, що операційні системи, що реалізовують багатозадачність, як правило реалізують і багато поточність.
Переваги в багато поточності такі:
Спрощення програми в деяких випадках, за рахунок використання загального адресного простору
Менші відносно процесу часові витрати на створення потоку і взаємодію між ними
Підвищення продуктивності процесу за рахунок розпаралелювання процесорних обчислень і операцій вводу/виводу
Індивідуальне завдання
Написати програму із двома потоками які одночасно здійснюють вивід тексту на екран (бажано щоб перший потік виводив одиночний символ «Х», другий потік виводив символ крапка «.»).
Код програми
Назва файлу: 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.
Також було виконано індивідуальне завдання, і більш детально на практиці розглянуто роботу багато поточності.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!