Linux课程设计进程控制
更新时间:2023-10-27 01:59:01 阅读量: 综合文库 文档下载
课 程 设 计 报 告
课程名称 Linux操作系统课程设计 指导教师 张玲 起止日期 2014-03-01 至 2014-06-13 实验项目 实验二 进程控制
学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 班级/学号
成 绩 指导老师签字
1. 课程设计概述
本次课设意在利用进程控制相关的系统调用编程进行进程控制实验,观察进程从创建、运行到终止的控制过程,加深对进程概念的理解。
1.1 课程设计的目的
本实验的目的是掌握进程的概念,理解进程的创建、执行、等待、终止的过程。熟悉有关进程控制的命令和系统调用,理解Shell的工作原理。
1.2 课程设计的内容
1) 进程控制命令
? 使用进程控制命令ps,kill监视和控制进程的活动 2) 编程部分
? 用fork,wait,exec系统调用编程实现进程控制; ? 编写一个简单的shell。
1.3 设计原理
进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。 构建的文件构架如图:
2012010948 exp1
exp2
exp3
vis
vis2
图1 实验目录树的结构
2. 实验步骤
2.1 操作
2.1.1
进程控制命令(在此终端窗口的操作截图见图1)
1. 执行ps命令,查看bash进程的PID:
PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收。
2. 在后台运行一个yes进程: yes > /dev/null &
3. 用ps -f命令观察yes进程的pid和ppid,用ps u命令观察yes进程的状态。 yes进程的父进程是哪个进程?通过查看yes程序的PPID可知其父进程为bash 4. 根据命令名搜索特定的进程: ps -ef | grep yes:
5. 用kill命令杀掉yes进程: kill 【PID】:
图1 进程控制命令
2.1.2
进程控制系统调用(此部分操作截图见图2、3)
1. 利用fork()和wait()来控制进程的执行:
? 在exp2目录下编写一个程序fork_wait.c。该程序用fork创建了一个子进程,而后子进
程先输出自己的信息,再睡眠10秒后结束。父进程等待子进程,收集到子进程结束信息后输出信息,然后结束。
编译:gcc -o fork_wait fork_wait.c 运行:./fork_wait
? 修改此程序,使父进程先睡眠一段时间,然后再收集(wait)子进程。重新编译并在
后台运行该程序(./fork_wait &),在子进程已终止而父进程尚未收集它时,用ps u观察子进程的僵尸状态。
在父进程分支的开始处调用函数sleep(40)睡眠40秒。用ps u可以看见一个Z 2. 利用exec()置换程序的执行代码文件:
? 在exp2目录下编写一个程序exec_test.c,使子进程执行另一个程序,如echo。 编译:gcc -o exec_test exec_test.c 运行:./exec_test
? 修改程序exec_test.c,使子进程执行一个可持续运行一段时间命令,重新编译并在后台
运行程序(./exec_test &),用ps -f 命令观察子进程执行的命令名CMD。 添加一句sleep 40。即:execl(\
图2 进程控制系统调用-fork_wait
图2 进程控制系统调用-fork_wait
2.1.3
Mini Shell编程(此部分操作截图见图4、5)
1. 在exp2目录编写一个简单的shell程序—Mini Shell,它接收输入的命令并解释执行。
? Linux的命令分为内部命令和外部命令两种。内部命令由Shell程序自己实现,如cd、
pwd等,外部命令是位于磁盘上(多数在/bin和/usr/bin目录下)的可执行程序。Mini Shell只实现两个内部命令:pwd和quit(退出),它可执行所有不带选项和参数的外部命令,如date、who、cal、ls等。
2. (选做1)修改Mini Shell程序,使它可执行只带一个命令选项或参数的命令行,如ls -a、
cat file、echo hello等。
? 用strtok函数将读入的命令行cmd以空格为分隔符拆为两个字符串cmd1和cmd2: cmd1=strtok(cmd,\ cmd2=strtok(NULL,\
此时的cmd1即为命令名,cmd2即为命令的选项或参数。判断cmd2,若为空则执行系统调用execlp(cmd1, cmd1, NULL),否则执行execlp(cmd1, cmd1, cmd2, NULL)
3. (选做2)修改Mini Shell程序,可做任何你认为可以改进的修改,如界面、提示、处理输
入错误、增强功能等。
正在阅读:
Linux课程设计进程控制10-27
pep小学英语 - 说课稿全英文版04-18
【完整版】2022-2025年中国糖果行业提升企业核心竞争力战略研究04-11
节能环保工作总结范本参考03-25
建筑工程施工技术与管理试题库答案11-15
班级管理学习总结03-28
【感恩节】小学感恩活动方案05-04
基于单片机的GPS定位系统设计 - 图文04-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 进程
- 课程
- 控制
- 设计
- Linux