好文档 - 专业文书写作范文服务资料分享网站

操作系统实验一实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

.

操作系统实验一实验报告

基本信息 1.1 实验题目

进程控制实验 1.2

完成人

王召德

1.3报告日期

2015-4-8

实验内容简要描述 2.1实验目标

加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和 体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过 程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习 Linux 系统中 进程创建与控制有关的系统调用的编程和调试技术。

2.2实验要求

参考以上示例程序中建立并发进程的方法,编写一个多进程并发执行程序。父进 程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制 ps 命令总在 ls 命令之前执行。

2.3实验的软硬件环境

--

.

Ubuntu14.04 intelPC

报告的主要内容

3.1实验的思路

按照上面的实例,先生成一个子进程让其等待,然后生成第二个子进程,父进程等待其执行ps命令后唤醒第一个子进程执行ls即可。

3.2实验模型的描述

3.3主要数据结构的分析说明

3.4主要算法代码的分析说明

3.5项目管理文件的说明

实验过程和结果

4.1实验投入的实际学时数

1学时

4.2调试排错过程的记录

曾尝试让第二个子进程激活第一个子进程,结果发现当运行 ps后,后面的代码将不再执行,所以不可行。

4.3多种方式测试结果的记录

--

.

实验结果:

父进程启动... 12239 ls子进程启动... 12240 ps子进程启动... 12241

PID TTY TIME CMD 12239 pts/27 00:00:00 born 12240 pts/27 00:00:00 born 12241 pts/27 00:00:00 ps ps子进程结束...12241 唤醒ls子进程...12240 键盘中断信号产生... ls子进程被唤醒... 12240

. born born.c~ hello.c pctl

pctl.c~ pctl.o

.. born.c helelo.h~ hello.c~ pctl.c pctl.h ls子进程结束...12240 父进程结束...12239

4.4实验结果的分析综合

实验的总结

父进程可以通过fork()函数生成子进程,子进程会从fork()函数开始执行原来的代码,当

--

.

子进程打开一个其他进程时,新进程便会代替此子进程,子进程后面的代码不会被执行。 进程的概念就是运行起来的程序,在实验中可以看出,同一段代码也可以变成几个不同的进程,但是归根结底他们也都是这一个程序运行得到的。进程并发其实就是分时的占用cpu得到执行。

子进程执行execve()函数可以执行新程序,新程序的进程号不变,替代原来的子进程运行,原来的子进程execve()函数后的代码便不再执行。

信号的产生就是一个中断,中断使cpu停止当前状态而去处理这个中断。可以通过给特定进程发送信号,使其从挂起状态重新启动,以达到控制目的。

附录 程序源代码

#include #include #include #include #include #include

typedef void (*sighandler_t) (int); void sigcat(){

printf(\键盘中断信号产生...\\n\ }

--

.

int main(int argc, char *argv[]){

signal(SIGINT,(sighandler_t)sigcat); //注册一个本进程处理键盘中断的函数 int status_1,status_2;

char *args_1[] = {\ char *args_2[] = {\ int pid_1=fork() ; //建立子进程 if(pid_1<0) // 建立子进程1失败? {

printf(\ exit(0); }

if(pid_1 == 0) // 子进程1执行代码段 {

printf(\子进程启动... %d\\n\ pause(); //暂停,等待键盘中断信号唤醒 printf(\子进程被唤醒... %d\\n\ status_1 = execve(args_1[0],args_1,NULL); exit(0); }else{

printf(\父进程启动... %d\\n\报告父进程进程号 int pid_2 = fork();

waitpid(pid_2,&status_2,0); //等待ps子进程结束

--

操作系统实验一实验报告

.操作系统实验一实验报告基本信息1.1实验题目进程控制实验1.2完成人王召德1.3报告日期2015-4-8实验内容简要描述2.1实验目标加深对于进程并发执行概念的理解。实践并发进程
推荐度:
点击下载文档文档为doc格式
1tfky6pdq39vfqx3d4pq7px008twlp015gt
领取福利

微信扫码领取福利

微信扫码分享