小红帽(Red hat linux)的进程控制.doc
文本预览下载声明
实验2 Linux进程控制
一. 实验目的
1.学会查看和杀死进程。
2.学会使用作业控制命令。
3.加深对进程概念的理解,明确进程与程序的区别。
4.熟悉linux下vi的使用。
二. 实验指导
1. Linux中的进程有3种不同类型:交互进程、批处理进程和守护进程。
2. 查看系统中的进程
格式:ps [选项]
例如:ps //显示当前用户在shell下所运行的进程。
ps -u osmond //显示用户osmond的进程。
ps -aux //显示系统中正在运行的所有进程的详细信息。
3. 杀死系统中的进程
格式:kill [signal] PID
PID是进程的识别号;signal是向进程发出的进程信号。
4. 常用作业控制命令
命令或快捷键 功能说明 cmd 命令后的表示将命令放到后台运行 Ctrl+d 终止一个正在前台运行的进程 Ctrl+c 强行终止一个正在前台运行的进程 Ctrl+z 挂起一个正在前台运行的进程 jobs 显示后台作业和被挂起的进程 bg 作业名 在后台恢复运行一个被挂起的进程 fg 作业名 在前台恢复运行一个被挂起的进程 5. vi文本编辑工具
进入Linux的字符界面,输入vi,进入vi编辑程序。
vi提供二种工作模式:输入模式(insert mode)和命令模式(command mode)。使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。
(1)命令模式
在输入模式下,按ESC可切换到命令模式。命令模式下,常用的指令有:
:q! 离开vi,并放弃刚在缓冲区内编辑的内容 :wq 将缓冲区内的资料写入磁盘中,并离开vi :n 光标直接跳到第n :w 将当前编辑的内容存盘 :w file 将当前编辑的内容写入file文件中 :r file 打开另一个文件file :e file 新建另一个文件file :f file 把当前文件改名为file (2)命令模式下光标的移动
H 左移一个字符 J 下移一个字符 K 上移一个字符 L 右移一个字符 (3)输入模式
输入以下命令即可进入vi输入模式:
a(append) 在光标之后加入资料 i(insert) 在光标之前加入资料 o(open) 新增一行于该行之下,供输入资料用 dd 删除当前光标所在行 x 删除当前光标字符 X 删除当前光标之前字符 U 撤消 F 查找 ESC 离开输入模式 6. 有关进程控制系统调用
函数名 调用格式 功能 fork() int fork()
例:
pid=fork(); 创建一个新进程,fork( )返回值意义如下:
0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。
0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。
-1:创建失败。 execl() int execl(新程序名,0) 重新加载进程,用新程序替换原进程。如execl(bin/ls,0); 用bin/ls替换原进程。 wait() int wait(int status)
例:
wait(); 等待子进程运行结束。如果子进程没有完成,父进程一直等待。wait( )将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait( )前已有子进程暂停或终止,则调用进程做适当处理后便返回。 exit() void exit(int status) 终止进程的执行
三.实验内容
1. 请在字符界面下完成下列作业控制操作:
显示当前运行的进程
运行后台睡眠进程(sleep命令,格式:sleep 秒数)
挂起sleep进程
运行cat命令
cat example
输入若干字符如this is a example.挂起cat进程
显示当前运行的进程
显示当前被挂起的进程
将cat进程调度到前台运行
正常结束cat进程
显示当前被挂起的进程
显示当前运行的进程
杀死sleep进程
显示当前运行的进程
2. vi工具的使用
(1) 进入Linux的字符界面,输入vi,进入vi。
例:$vi hello.c
(2) 利用实验指导中的相关内容完成在屏幕上显示“Hello world”的C语言源程序hello.c的创建。保存上述程序,并退出vi。用gcc编译上述C程序,并运行之。
编译:gcc –o hello hello.c
运行:./hello
4 进程控制之一:
(1) 先在vi窗口中编写下列程序:(2) 保存上述程序,并退出vi。
(3) 编译并多次运行上述程序,分析运行结果。
四、实验总结:
按照实验步
显示全部