Linux课程介绍第五实例程序分析.pptVIP

  • 2
  • 0
  • 约 49页
  • 2016-06-10 发布于湖北
  • 举报
进程的终止 进程可使用系统调用exit( )终止自己 其实现算法如下: (1)撤消所有的信号量。 (2)释放其所有的资源,包括存储空间、已打开的文件、工作目录、信号处理表等。 (3)置进程状态为“终止态”(TASK_ZOMBIE)。 (4)向它的父进程发送子进程终止的信号。 (5)执行进程调度。 使用aort函数 Abort用于调试分析程序崩溃。但是仍然比较粗暴,应该作为最后的手段使用,比如碰到类似严重内存不足的错误,无法使用程序的方法处理时再使用。 函数原型: #include stdlib.h void abort (void) 使用kill函数 Kill用于一个进程终止另外一个进程 原型: #include signal.h #include sys/types.h int kill(pid_t pid, int sig) Pid指定要终止的进程,而sig是要发送的信号(本节只关注SIGKILL一种信号) 4.进程映像的更换 改换进程映像的工作很复杂,是由系统调用execve( )实现的,它用一个可执行文件的副本来覆盖该进程的内存空间。 ELF可执行文件格式示意图 execve( )系统调用的基本算法如下: (1)验证文件的可执行性,即用户 有权执行它。 (2)读文件头,检查它是一个可装入模块。 (3)释放

文档评论(0)

1亿VIP精品文档

相关文档