35.信号

lesson 27

不涉及io数很大。差了一万倍

看代码,啊

function是包装器,定义func_t是个返回值是void参数是()的方法

操作系统一开机就处于死循环,在别人催促之下,发送信号让操作系统执行注册的方法,

一个tast struct结构体包括一些进程的信息count是时间片,未来可以变成链表,在数组中,就是全局的所有进程,创建一个进程时,就进入这个数组,,假设这个数组有很多进程,调度时候遍历进程,找时间片最少的的那个,用它调度,这种思想就是操作系统运行原理,


如何 理解闹钟

外部以固定时间间隔刺激,我只需固定一个计数器 最开始设置一个timestamp为0,每刺激一下,这个数++,某个时刻,这个数是10000,说明执行了一万次,系统到开机到现在就是一万秒了。

还可以给进程定义整数10,调度一个进程count--,如果《=0就切换其他进程。就是时间片耗尽,本质就是个计数器,

用小堆实现,OS只检测堆顶的超时时间,与当前时间对比,比当前时间当,证明没有闹钟触发,,大于就出堆,执行该节点内函数指针的方法,向目标进程发送sigalrm,操作系统就可以一个时间间隔之后向进程发信号的工功能了,

闹钟超时向OS发送信号方式,属于软件条件,闹钟是用软件设计的,超时是软件条件。管道也是,都是操作系统内维护的


信号的保存:

进程当中不止只有位图,还有三张表,pending表最后一个位置不用,对应的是信号未决表,

按位取反然后与就可以获得可以抵达的信号,

第三个表是函数地址。

信号处理时,即便当前没有收到1号,我也知道他的动作,sig_defl叫做默认,收到了1号但是1号被block,暂时没被抵达,但是未来要被抵达,动作叫ignore叫做忽略,当前并没有收到3号信号,虽然三号信号被block了但是我还没收到,解除屏蔽我们要执行sigal header ,sigal信号本质是修改sigal表。

看testsig忽略的代码忽略一次下次停止

看表1号信号没有被bllock pending 处理动作是默认,2号横着看收到了信号因为pending 是1,block是1 所以没办法抵达,横着看3,没收到,依旧保证阻塞,就算收到也不会抵达,,这张表对应31组描述信号的关系。

block和pending没有关系,

三张表两个位图加个数组。内核还比较复杂我们就这么理解


验证:

谁调sigprocmask我们就获取设置更新 谁的block表,sig setmask用set这个信号集初始化block

sig_block是把传进来的信号集里设置为1的信号新增到block里,新增屏蔽。unclock,就是解除屏蔽,谁1谁解除。oldset是输出型参数,带老的block

sigpending 函数 获取pending信号集的,参数是输出型参数,怎么设置我们已经学了。


看整合demo:

如果信号没有被 block(阻塞),当对应的信号处理函数(handler)执行完成后,内核会将该信号的 pending 位清 0。看全部代码,屏蔽二号信号,可以看到二号,而且不会退

core 出错一次dump一次,一般公司挂一次dump一次,磁盘就满了。

打开core 看代码 关闭,core功能,看那个代码

相关推荐
剑神一笑5 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
剑神一笑5 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
日取其半万世不竭10 小时前
iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍
linux·运维·服务器
mounter62510 小时前
Linux 内核资源管理:控制组(cgroup)的演进与“策略组”新提案
linux·运维·服务器·cgroup·kernel
bksczm10 小时前
文件在磁盘中的存储方式
linux·运维·服务器
L16247610 小时前
OpenSSH 半自动升级方案(独立编译 + 手动迁移 + 重建 systemd 服务)
linux·服务器·ssh
半旧夜夏10 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
爱莉希雅&&&11 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
z2005093011 小时前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统
weixin_3077791312 小时前
面向高性能保密计算的定制 Linux 系统构建与自动部署方案
linux·安全·网络安全·性能优化·系统安全