Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Багатозадачнiть та багатопоточнiсть

Автор:   •  Июль 18, 2022  •  Лабораторная работа  •  1,441 Слов (6 Страниц)  •  133 Просмотры

Страница 1 из 6

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

Кафедра ЕОМ

Звіт

З лабораторної роботи №5

На тему: «БАГАТОЗАДАЧНІТЬ ТА БАГАТОПОТОЧНІСТЬ»

З курсу: «Системне програмування»

Варіант 3

Виконали:                                                                        Перевірив:

ст. групи КІУКІ-20-8                                                        Ярошевич Р. О.

Шакіров Є.В.

Гунченко А.С.

Слабунов К.А.

Харків

2022

Тема: БАГАТОЗАДАЧНІТЬ ТА БАГАТОПОТОЧНІСТЬ

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

Варіант 3

У програмі створити два потоки. Призначення одного з них – періодичне читання системного часу і заповнення глобальної структури (години, хвилини, секунди), другого – вивід даної структури на екран. За допомогою критичної секції організувати роздільний доступ потоків до структури даних.

Хід роботи

#define _CRT_SECURE_NO_WARNINGS

#include "framework.h"

#include "WindowsProject11.h"

#include <ctime>

#include <string>

#include <process.h>

#define MAX_LOADSTRING 100

// Глобальные переменные:

HINSTANCE hInst;                                // текущий экземпляр

WCHAR szTitle[MAX_LOADSTRING];                  // Текст строки заголовка

WCHAR szWindowClass[MAX_LOADSTRING];            // имя класса главного окна

// Отправить объявления функций, включенных в этот модуль кода:

ATOM                MyRegisterClass(HINSTANCE hInstance);

BOOL                InitInstance(HINSTANCE, int);

LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);

INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,

                     _In_opt_ HINSTANCE hPrevInstance,

                     _In_ LPWSTR    lpCmdLine,

                     _In_ int       nCmdShow)

{

    UNREFERENCED_PARAMETER(hPrevInstance);

    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: Разместите код здесь.

    // Инициализация глобальных строк

    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

    LoadStringW(hInstance, IDC_WINDOWSPROJECT11, szWindowClass, MAX_LOADSTRING);

    MyRegisterClass(hInstance);

    // Выполнить инициализацию приложения:

    if (!InitInstance (hInstance, nCmdShow))

    {

        return FALSE;

    }

    HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT11));

    MSG msg;

    // Цикл основного сообщения:

    while (GetMessage(&msg, nullptr, 0, 0))

    {

        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

        {

            TranslateMessage(&msg);

            DispatchMessage(&msg);

        }

    }

    return (int) msg.wParam;

}

ATOM MyRegisterClass(HINSTANCE hInstance)

{

    WNDCLASSEXW wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style          = CS_HREDRAW | CS_VREDRAW;

    wcex.lpfnWndProc    = WndProc;

    wcex.cbClsExtra     = 0;

    wcex.cbWndExtra     = 0;

    wcex.hInstance      = hInstance;

    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT11));

    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);

    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);

    wcex.lpszMenuName   = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT11);

    wcex.lpszClassName  = szWindowClass;

...

Скачать:   txt (8.4 Kb)   pdf (116.4 Kb)   docx (19.5 Kb)  
Продолжить читать еще 5 страниц(ы) »
Доступно только на Essays.club