码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux进程通信之进程信号


    一、信号的概念:

    信号机制是Linux最基本的通讯机制,它可以用来向一个或者多个进程发送异步事件信息,传送少量信息。信号是一个软件中断,并且是一个“软中断”(只是告诉有这样一个信号,但这个信号具体如何进行处理、什么时候处理,都是由进程决定的,所以是软中断)

    二、信号的产生:

    硬件产生:

            “ctrl+c ”:2号信号;“ctrl+z”:20号信号;“ctrl+|”:3号信号

    软件产生:

            kill函数:

    int kill(pid_t pid,int sig)

    参数:

    pid:要操作的进程号;sig:具体信号

    给pid进程发送sig信号

    eg:kill(getipd(),2)

            raise函数

    int raise(int sig)

     参数:sig:具体信号类型

    谁调用给谁发信号

    三、信号的种类:

    Linux系统中定义了一些列的信号类型,这些信号可以由内核或者系统中的其他具有设当权限的进程产生,对于收到信号的进程,其task_struct结构体中的signal属性的某一位置位,使用kill-l命令可以列出所有已经定义的信号:

    非可靠信号:(非实时信号)

    1~31 :可能会丢失信号

    可靠信号:(实时信号)

    34~64:一定不会丢失的信号

    总共有62个信号。


    四、信号的处理方式:

    操作系统对信号的处理方式(man 7 signal中查看)

    term、core、cont、ign、stop

    默认的处理方式:SIG_DFL,操作系统当中已经定义好了信号的处理方式了

    忽略处理方式为:SIG_IGN ,该信号为忽略处理(子进程退出时给父进程发送的信号SIGCHID,其处理方式为忽略处理,所以父进程忽略处理,没有回收其退出状态信息,导致子进程成为僵尸进程)

    自定义的处理方式:程序员可以更改信号的处理方式,定义一个函数,当进程收到该信号时,调用自定义的函数

    五、信号的注册:

    概念:一个进程收到了一个信号,这个过程称之为注册,信号的注册和注销是两个独立的过程

    内核中信号注册位图以及sigqueue队列的了解:
    注册位图、sigqueue都是进程当中的内容,每一个进程都有自己独有的注册位图和sigque

    非实时信号与实时信号在注册时的区别:

    1. 非实时信号的注册
    2. 实时信号的注册
  • 相关阅读:
    易点易动固定资产管理系统:提升企业固定资产领用效率的智慧选择
    3D点云处理:Opencv Pcl实现深度图转点云(附源码)
    【HTML源码--一】:登录+蛋糕+照片+烟花;生日快乐、新年快乐、表白等
    Prompt Engineering优化原则 - 以Webshell代码解释为例
    python批量doc转为docx报错::AttributeError: Open.SaveAs
    curl命令的常用操作
    MySQL 用户账号管理(Accounts Management)
    从结构上浅谈FPGA实现逻辑的原理
    洛谷题解 | P1051 谁拿了最多奖学金
    【力扣算法简单五十题】08.删除排序链表中的重复元素
  • 原文地址:https://blog.csdn.net/m0_60010936/article/details/128208981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号