实验Linux进程控制.docVIP

  • 23
  • 0
  • 约1.65千字
  • 约 5页
  • 2017-02-05 发布于北京
  • 举报
实验Linux进程控制

实验2 Linux进程控制 一. 实验目的 1.学会查看和杀死进程。 .加深对进程概念的理解,明确进程与程序的区别。 .熟悉linux下vi的使用。 二. 实验指导 . 查看系统中的进程 格式:ps [选项] 例如:ps //显示当前用户在shell下所运行的进程。 ps -u osmond //显示用户osmond的进程。 ps -aux //显示系统中正在运行的所有进程的详细信息。 2. 杀死系统中的进程 格式:kill [signal] PID PID是进程的识别号;signal是向进程发出的进程信号。 3. vi文本编辑工具 进入Linux的字符界面,输入vi,进入vi编辑程序。 vi提供输入模式(insert mode)和命令模式(command mode)。使用者进入vi后,即处在命令模式下,此刻键入转换到输入模式。 在输入模式下,按ESC可切换到命令模式。命令模式下,常用的指令有: :q! 离开vi,并放弃刚在缓冲区内编辑的内容 :wq 将缓冲区内的资料写入磁盘中,并离开vi :n 光标直接跳到第n :w 将当前编辑的内容存盘 ESC 离开输入模式 . 有关进程控制系统调用 函数名 调用格式 功能 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. 请在字符界面下完成下列作业控制操作: 显示当前运行的进程 运行cat命令 cat example输入若干字符如this is a example.显示当前运行的进程 杀死进程 2. vi工具的使用 (1) 进入Linux的字符界面,输入vi,进入vi。 例:$vi hello.c (2) 利用实验指导中的相关内容完成在屏幕上显示“Hello world”的C语言源程序hello.c的创建。保存上述程序,并退出vi。3 用gcc编译上述C程序,并运行之。 编译:gcc –o hello hello.c 运行:./hello4 进程控制之一: (1) 先在vi窗口中编写下列程序: 使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。 (2) 保存上述程序,并退出vi。 (3) 编译并多次运行上述程序,分析运行结果。 参考程序 } 5. 进程控制之二:分析下列程序的运行结果,getpid()函数为取当前进程号。 进程控制之: 创建一个子进程,并给它加载新程序hello,hello即上述显示“Hello world”程序。 提示:创建程序parent.c,在该程序中创建子进程,在子进程分支中用execl加载hello。 四.实验报告 (1)需给出实验课题、目的与主要内容要求。 (2)实际进行的实验详细记录:完整的命令串或程序、执行结果、结果分析。 3

文档评论(0)

1亿VIP精品文档

相关文档