Linux程序设计--进程与信号

进程的结构、类型和调度

可以把进程看做是正在运行的程序

进程结构:进程标识符、文件描述符、栈空间和环境变量(程序计数器)


操作系统通过进程的PID对它们进行管理,PID是进程表的索引。Linux调度器根据进程的优先级来决定调用哪个进程。

用不同的方法启动新进程


system函数作用:运行以字符串参数的形式传递给它的命令并等待命令的完成。它很有用,但是也有局限性,程序必须等待由system函数启动的进程结束之后才能继续,因此我们不能立刻执行其它任务。


exec函数system函数更有效,因为在新的程序启动后,原来的程序就不再运行了。exec启动的新进程继承了原来进程的许多特性,新进程的PIDPPID与原来的一样。

父进程、子进程和僵尸进程

让进程同时执行多个函数,可以通过fork创建一个新进程,新进程与原进程一模一样,执行代码也完全相同,但新进程有自己的数据空间、环境和文件描述符。父进程中的fork调用返回的是新的子进程的PID,而子进程中的fork调用返回的是0


函数通过fork创建的子进程终止时,它与父进程之间的关联还会继续保持,直到父进程也正常终止或父进程调用wait才可结束,因此,进程表中代表子进程的表项不会立刻释放,虽然子进程不再运行,但是它仍存在于系统中,这个时候它就是一个死进程或僵尸进程(zombie,如果父进程异常终止,那么子进程会自动把PID1的进程(init)作为自己的父进程,并一直保存在进程表中,直到被init发现并释放。

什么是信号以及如何使用它们

信号UNIXlinux系统响应某些条件而产生的某一个事件

信号可以被生成捕获响应忽略


sig:准备捕获或忽略的信号

func:接收到指定信号后将要调用的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值