操作系统实验一、二实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验一、二实验报告 实验目的 熟悉Linux系统,掌握Linux系统的登入、退出等操作; 熟悉Linux命令及进程管理; 学会使用Linux下C语言编程的基本知识; 加深对进程概念的理解,明确进程和程序的区别; 进一步认识并发执行的实质; 分析进程争用资源的现象,学习解决进程互斥的方法。 实验内容 1、Linux基本操作 2、文件与目录操作 3、进程查看及在线帮助 4、全屏幕文本编辑器Vi的熟悉 5、Linux下C语言编程基础知识 6、运行以下附录部分中给出的程序,查看自己运行的结果,并进行分析 7、编写程序,要求见附录部分 代码及运行结果分析 实验一:熟悉Linux系统 1、Linux基本操作,Linux系统的登入 初始 2、文件与目录操作 显示文件目录命令 改变当前目录命令 新建目录hhh 并用ls命令查看 删除目录hhh 删除文件123.c 文件改名a.c改为as.c 文件复制:将sy1复制到lin,并用ls语句查看 显示文件的内容more或者less 查找文件find 3、进程查看 who命令 ps命令 top命令,用Ctrl+c命令退出 4、在线帮助 man命令 help命令 whereis命令 全屏幕文本编辑器Vi及Linux下C语言基础编程 5.1 Hello Linux! 文本编辑器vi,创建文件hong.c [localhost $ vi hong.c 按下i,输入文本 按下esc,shift+“:”后输入wq命令保存文件 编译hong.c生成hong可执行文件,并运行可执行文件hong 5.2 getpid 新建文件jia.c,并输入文本 [localhost $ vi jia.c 保存并编译运行文件jia.c 5.3 fork 新建文件678.c,输入程序 [localhost $ vi 678.c 保存并编译运行文件678.c 分析:fork系统调用的作用是复制一个进程。当一个进程调用它,完成后就出现两个几乎一模一样的进程,我们也由此得到了一个子进程。fork调用的奇妙之处是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1.在父进程中,fork返回新创建子进程的进程ID; 2.在子进程中,fork返回0; 3.如果出现错误,fork返回一个负值; Fork出错可能有两种原因: 当前的进程数已经达到了系统规定的上限; 系统内存不足。 pid=fork();当pid0时,说明出现问题;当pid=0时,此时是子进程,返回的是0;否则,此时进行的是父进程,返回的是新创建的子进程的ID值。 5.4 exit 新建文件01.c,输入程序 [localhost $ vi 01.c 保存并编译运行文件01.c 分析:程序运行到exit(0);后会退出,则之后的printf()语句不会执行,因此程序运行之后只输出this process will exit! 5.5 wait 新建文件02.c,并输入程序 [localhost $ vi 02.c 保存文件并编译运行文件 分析:sleep的作用是让进程休眠指定的秒数,在这60秒内,子进程已经退出,而父进程正忙着睡觉,不可能对它进行收集,这样,我们就能保持子进程60秒的僵尸状态。 5.6 sleep 新建文件03.c,并输入程序 [localhost $ vi 03.c 保存文件并编译运行程序 分析:可以明显注意到,在第2行结果打印出来前有10秒钟的等待时间,这就是设定的让子进程睡眠的时间,只有子进程从睡眠中苏醒过来,它才能正常退出,也就才能被父进程捕捉到。 实验二:进程管理 1、运行并分析 程序1: 新建文件201.c,并输入程序 [localhost $ vi 201.c 保存并编译运行文件 程序执行的进程树: 父进程 父进程 进程号:24678 I=24678 I=24678 子进程 子进程 进程号:24678 I=0 I=0 分析:程序1运行后,i初值为0,if语句条件不满足,程序执行else中的语句,k=0,输出两个语句中的内容,i=24678,执行if语句中内容,程序输出父进程的ID等。 程序2: 新建文件202.c,并输入程序 [localhost $ vi 202.c 保存并编译运行文件202.c 程序执行的进程树: 父进程 父进程 进程号:24921 P1=24922,P2=24923 P1=2

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档