Professional Documents
Culture Documents
лб7
лб7
Лабораторна робота №7
з дисципліни:
«Операційні системи»
Виконав:
Маркевич Адам
Тернопіль – 2022
ЛАБОРАТОРНА №7
ЗАВДАННЯ
1.Скласти на мові С++ для ОС Windows програму в результаті якої виводиться на
екран вікно MB_YESNO..
2.Програма повинна створити та запустити процес, котрий повинен запустити
програму NOTEPAD.
3. Написати програму, яка створює новий процес, котрий сортує масив методом
бульбашки.
1.
#include <Windows.h>
int main()
{
int msgboxID = MessageBox(
NULL,
L"Маркевич Адам Володимирович",
L"ІПЗсм-24",
MB_YESNO
);
if (msgboxID == IDYES)
{
MessageBox(
NULL,
L"Ви згодні зі змістом "Маркевич Адам Володимирович"",
L"ІПЗсм-24",
MB_OK | MB_ICONINFORMATION
);
}
else if (msgboxID == IDNO)
{
MessageBox(
NULL,
L"Ви не згодні зі змістом "Маркевич Адам Володимирович"",
L"ІПЗсм-24",
MB_OK | MB_ICONWARNING
);
}
return 0;
}
2. #include <Windows.h>
#include <iostream>
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// Створення процесу
if (!CreateProcess(
NULL,
(LPSTR)"notepad.exe",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi
))
{
std::cerr << "Не вдалося створити процес: " << GetLastError() << std::endl;
return 1;
}
WaitForSingleObject(pi.hProcess, INFINITE);
std::cout << "Процес завершено." << std::endl;
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
3. #include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
int n = sizeof(arr)/sizeof(arr[0]);
if(pid == 0) {
// Child process
bubble_sort(arr, n);
cout << "Sorted array: ";
for(int i=0; i<n; i++) {
cout << arr[i] << " ";
}
cout << endl;
} else if(pid > 0) {
// Parent process
wait(NULL);
cout << "Child process completed." << endl;
} else {
// Error occurred
cout << "Fork failed." << endl;
return 1;
}
return 0;
}
Висновок: У процесі виконання лабораторної роботи навчився породжувати процеси
та потоки у ОС Windows за допомогою програм на мові C++, використовуючи
середовище Visual Studio/Visual Studio Code та функції API.