Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

os_1

.docx
Скачиваний:
0
Добавлен:
07.04.2025
Размер:
262.38 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

Уфимский государственный авиационный технический университет

Факультет информатики и робототехники

Кафедра вычислительной математики и кибернетики

Отчет к лабораторной работе №1

По дисциплине «Операционные системы»

По теме «Процессы»

Выполнил: студент группы ПРО-232Б

Ихсанова Э. А.

Проверил: доцент каф. ВМиК

Веденяпин И. Э.

Уфа 2022

Задание

Вариант 6. Разработать две программы. Первая принимает от пользователя две прямоугольных матрицы, а затем выводит на экран их сумму и произведение. Вторая программа запускает первую в качестве вновь созданного процесса.

Код

MainProc:

#include<iostream> #include<Windows.h> #include <ctype.h> using namespace std; const int N=3; void MatrixMul(double A[N][N], double B[N][N], double C[N][N]) { for(int i=0; i < N; i++) for(int j=0; j < N; j++) { C[i][j]=0; for(int k=0; k < N; k++) C[i][j]+=A[i][k]*B[k][j]; } } void MatrixSum(double A[N][N], double B[N][N], double C[N][N]) { for(int j=0; j < N; j++) { for(int k=0; k < N; k++) C[j][k] =A [j][k] + B[j][k]; } } int main() { system("chcp 65001"); cout << "Запуск дочернего процесса" << endl; double a[N][N]; double b[N][N]; double mulres[N][N]; double sumres[N][N]; cout << "Введите элементы первой матрицы(9 чисел): "; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { cin >> a[i][j]; } } cout << "Введите элементы второй матрицы(9 чисел): "; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { cin >> b[i][j]; } } MatrixMul(a, b, mulres); MatrixSum(a, b, sumres); cout << "Результат умножения:" << endl; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { cout<< mulres[i][j] << " "; } cout << endl; } cout << "Результат сложения:" << endl; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { cout<< sumres[i][j] << " "; } cout << endl; } cout << "Завершение дочернего процесса" << endl; }

Daughter:

#include<iostream> #include<Windows.h> using namespace std; int main() { setlocale(LC_ALL, "rus"); STARTUPINFO StartupInfo; ZeroMemory(&StartupInfo, sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); PROCESS_INFORMATION ProcInfo; ZeroMemory(&ProcInfo, sizeof(ProcInfo)); cout << "Запуск родительского процесса" << endl; if (!CreateProcess(NULL, AppName, NULL, NULL, FALSE, 0, NULL, NULL, &StartupInfo, &ProcInfo)) return 0; WaitForSingleObject(ProcInfo.hProcess, INFINITE); cout << "Завершение родительского процесса" << endl; CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); Sleep(3000); }

Р езультат работы

Соседние файлы в предмете Операционные системы