《操作系统上机实验报告》
该实验报告是张帅豪同学在2020年5月31日完成的操作系统上机实验报告。实验地点为线上实验,实验时间为4月25日至5月31日。
实验一的实验目的是通过基本的Windows进程控制函数,由父进程创建子进程,并实现父子进程协同工作。实验的软硬件环境为Dev-C。实验内容包括创建两个进程,让子进程读取一个文件,父进程等待子进程读取完文件后继续执行,实现进程协同工作。实验程序的源代码如下:
//父进程
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// Start the child process.
if (!CreateProcess(TEXT("child.exe"), // Module name
NULL, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi) // Pointer to PROCESS_INFORMATION structure
)
{
printf("CreateProcess failed (%d).\n", GetLastError());
return -1;
}
// Wait until child process exits.
WaitForSingleObject(pi.hProcess, INFINITE);
// Close process and thread handles.
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
//子进程
#include <stdio.h>
#include <windows.h>
int main()
{
printf("This is the child process.\n");
// Simulate reading a file
Sleep(3000);
return 0;
}
在该实验程序中,首先定义了父进程和子进程,并使用CreateProcess函数创建了一个子进程,在父进程中通过WaitForSingleObject函数等待子进程退出。在子进程中,打印了一条信息并通过Sleep函数模拟了读取文件的操作。通过这样的操作,实现了子进程读取文件后父进程继续执行的实验目的。通过实验,张帅豪同学成功通过基本的Windows进程控制函数,由父进程创建子进程,并实现了父子进程协同工作。
以上是张帅豪同学在操作系统上机实验中的实验报告。