操作系统实验2——进程控制.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精选范本 精选范本 实验 2 进程控制 一、实验目的 加深对进程概念的理解, 明确进程和程序和区别; 进一步认识并发执行的实质; 分析进程争用资源的现象。 二、实验内容 熟悉 Linux 进程控制常用命令。 输入进程创建、控制的程序并调试程序。 三、实验预备知识 进程控制常用命令 ( 1) ps 命令 功能: 查看目前的系统中有哪些进程,以及它们的执行情况。 常用命令格式及功能如下: ps 查看系统中属于自己的进程 ps au 查看系统中所有用户的进程 ps aux 查看系统中包含系统内部的及所有用户的进程 主要输出列说明: USER:进程所有者的用户名 PID :进程号 TTY :进程从哪个终端启动 TIME :此进程所消耗的 CPU 时间 COMMAND :正在执行的命令或进程名称 ( 2) top 命令 功能: 动态显示进程,实时监测进程状态。与 ps 命令相似,只是 top 命令在 执行后会以指定的时间间隔来刷新显示信息, 以使 top 所显示的进程状态总是 当前时刻的。 ( 3) kill 命令 功能: 结束或终止进程。 常用命令格式及功能如下: kill 5302 杀死 PID 为 5302 的进程 kill -9 5302 强行杀死 PID 为 5302 的进程 ( 4) echo $变量名 功能 :查看外壳变量的设定值。 例: echo $$ 显示当前进程 PID 2. 常用系统调用函数 常用系统调用函数、程序的说明、参数及定义如下: ( 1) fork() 函数 功能:创建一个新进程 函数格式: int fork() 其中返回 int 取值意义如下: 小于 0: 创建失败 0: 创建成功,在子进程中返回 0 值 大于 0: 创建成功,在父进程中返回子进程 id 值 -1:创建失败 ( 2) wait() 函数 功能:父进程等待子进程终止,以便对子进程进行善后处理。 函数格式: int wait(int *statloc) 参数定义: statloc 指出子进程终止状态码的位置。若不关心子进程的终止状态,可传递一 个空指针。 返回值:正常返回时,为终止子进程的 PID ;错误返回时为 -1;其他为 0。 gcc 简介 gcc 是 C 编译器,用来把某程序的源代码编译成汇编代码。 假设我们有下面一个非常简单的源程序 (hello.c): int main(int argc,char **argv) { printf(Hello Linux\n); } 要编译这个程序 ,我们只要在命令行下执行 : gcc -o hello hello.c -o 选项 表示要求输出的可执行文件名。 -c 选项 表示我们只要求编译器输出目标代码 ,而不必要输出可执行文件 -g 选项 表示我们要求编译器在编译的时候提供我们以后对程序进行调试 的信息。 如果需要更详尽的内容,可查阅 gcc 的帮助。 4. 运行程序 ./ 代表当前目录 要运行当前目录下的 hello 程序 ,我们只要在命令行下输入 : ./hello 四、实验的环境与要求 1. 装有 Linux 操作系统且安装有 gcc 模块的服务器一台。 在每台学生用计算机的硬盘中存有文件 putty.exe 。 五、实验步骤 1. 用 putty.exe 命令登录 Linux 操作系统。 2. 进程控制命令练习。 显示当前进程 ID 。 列出所有进程。 动态监视进程状态。 运行进程创建的程序。 用 vi 编辑器分别输入以下两个参考程序: /* 程序 1:*/ #include stdio.h int main() { int p1,p2; while ((p1=fork())==-1); if (p1==0) putchar( ‘ b ); else { while ((p2=fork())==-1); if (p2==0) putchar( ‘c ); else putchar( ‘ a ); } return 0; } /* 程序 2*/ #include stdio.h int main() { int p1,p2,I; while ((p1=fork())==-1); if (p1==0) for (I=0;I50;I++) printf( “ child n%”d ,I); else { while ((p2=fork())==-1); if (p2==0) for (I=0;I50;I++) printf( “ sonn%”d ,I); else for (I=0;I50;I++) printf( “ daughter n%”d ,I); return 0; (2) 调试运行程序。 (3) 记录实验结果并对结果进行思考。 写程序完成如下功能: (1)从命令行接收整数 n;

文档评论(0)

cooldemon0601 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档