信号

                                                                     进程信号

1 信号是什么

信号是一个软件中断,是传递给进程的一个通知,通知进程发生了某件事情,让它把手头的事情先放下,赶紧去处理刚刚通知的这件事情.

2 信号的种类

信号总共有62种—这62种信号又分为两大类型.

一种叫做不可靠信号(信号编号为1—31).
一种叫做可靠信号(信号编号为34—64).
查看信号的命令 kill -l
在这里插入图片描述
3 信号的生命周期

1信号的产生–>2在进程中的注册–>3注销信号–>4处理信号

1信号的产生:

信号的产生方式分为两种,一种叫做硬件产生,另一种叫做软件产生
硬件产生: 我们通过键盘输入的方式从终端发出信号:例如: ctrl +c(产生 SIGINT信号) ctrl +| ctrl +z( Ctrl-Z产生SIGTSTP信号(可使前台进程停止))
软件产生:用户通过自定义函数或者调用系统函数来缠上 例如: kill -signum -p pid kill(pid,signum) raise(signum) abort()
alarm(nsec)
2 信号在进程中的注册
注册: 信号产生以后,会传递给进程,在进程pcb中做标记,标记进程收到了那些信号

pcb中有一个用来注册信号的的结构体叫未决(pending),它用数字0 和 1来标记信号的注册情况
1 :表示已经注册 0 : 表示未注册
pcb中有一个用来存储待处理信号的链表叫做sigqueue ,每注册成功一个信号,sigqueue链表就会多一个节点.

未决(pending): 是一种状态—信号从产生到处理之前所处的状态
根据信号类型的不同,信号的注册又分为可靠信号的注册和不可靠信号的注册
2.1 不可靠信号的注册

首先当一个不可靠信号传递到进程需要进行做注册时,先会判断pcb中的pending位图相应的信号是否已经注册过(位图是否已经置为1),
若已经注册(位图标记显示为1),则,不做任何操作(后续的信号丢失,事件丢失,耽误事,不靠谱).若未注册,就将位图中的标记数改为1, 并向
sigqueue链表中添加一个信号节点.

2.2 可靠信号的注册

当一个可靠信号传递到进程需要进行注册时,不管信号是否已经注册,都会向sigqueue链表添加一个新的信号节点(事件不会丢失)

3 信号在进程中的注销

非可靠信号: 节点只有一个,注销就是删除节点,删除节点后将位图置为0状态
可靠信号: 节点可能有多个,注销就是删除一个节点,判断sigqueue链表中是否有相同信号的节点.
如果有,位图显示不变,依然需要标记这个信号待处理,如果没有,就将位图显示置为0.

4 信号的处理
进程收到信号以后,并不是立马去处理,而是选择一个合适的时间去处理信号.
当进程从内核态返回到用户态的时候,才会处理

进程如何从用户态切换到内核态: 中断/发起系统调用/程序异常/
进程运行的代码如果是用户自己写的代码或者是库函数就说明进程运行在用户态空间中
信号的处理方式:
1 默认处理方式-----按照既定的方式处理(按既定方案办);
2 忽略处理方式-----处理动作是什么都不干;
3自定义处理方式—用户自己确定信号如何处理—自定义信号的处理函数替换原有的处理函数
在这里插入图片描述
4如何修改信号的处理方式?

sighandler_t signal(int signum,sighandler_t handler);
  // signum:  信号编号---替换signum这个信号的处理函数
  // handler: 函数指针  用户传入的处理函数
          SIG_DFL:信号的默认处理动作
          SIG_IGN:信号的忽略处理动作
 typedef void(*sighandler_t)(int);

5 自定义处理方式信号的捕捉流程

如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号

6 信号的阻塞
信号的阻塞发生在信号注册以后,信号的阻塞指的是信号可以注册,但是暂时对其不做任何处理,简单来说一个信号若是被阻塞,它就不会递达信号的处理阶段.
靓词: 递达 —对信号的处理

特别注意:信号阻塞和信号忽略处理方式不同,信号阻塞是指信号还没有进入到处理阶段,而信号的忽略处理方式是指信号已经进入到信号处理阶段,并且对它做了"忽略处理".
在PCB中有一个信号集叫做block-----阻塞信号的集合----标记那些暂时不用处理的信号.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递种类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值