首页 > 其他分享 >学习笔记9

学习笔记9

时间:2023-11-11 10:55:54浏览次数:36  
标签:间通信 IPC 信号处理 笔记 学习 信号 Linux 进程

教材知识点总结

  1. 信号和中断

    • 信号是一种异步事件通知机制,类似于软件中断,用于通知进程发生了某种事件。
    • 与硬件中断不同,信号是由内核向进程发送的,而不是由硬件设备触发的。
  2. Unix/Linux中的信号处理

    • 信号类型:Unix/Linux系统支持多种类型的信号,例如SIGINT(终端中断)、SIGSEGV(段错误)、SIGALRM(定时器超时)等。
    • 信号的来源:信号可以由内核、其他进程或进程自身发送。
    • 进程PROC结构体中的信号:进程的信号相关信息保存在其对应的PROC结构体中,包括信号处理函数、信号屏蔽字等。
    • 信号处理函数:可以是系统默认的处理函数,也可以是用户自定义的处理函数。
    • 安装信号捕捉函数:将自定义的信号处理函数与特定的信号关联起来,以便在接收到该信号时执行相应的处理函数。
  3. 信号处理步骤

    • 接收信号:当发生了某种事件时,内核会向进程发送相应的信号。
    • 信号排队:同一种信号在短时间内多次发生时,会被排队,直到处理完前一个同种信号后才会处理下一个。
    • 信号处理:进程根据信号的类型和当前状态执行相应的处理动作。
  4. 信号与异常

    • 信号可以被看作是一种异常情况的通知,例如进程的非法访问、除零操作等都会导致信号的发送。
    • 信号处理函数可以用来处理这些异常情况,使得进程能够在异常发生时进行适当的处理而不会导致程序崩溃。
  5. 信号用作IPC

    • 信号也可以用作进程间通信的一种方式,通过发送特定的信号来通知其他进程发生了某种事件。
    • 但是信号的使用受到一定的限制,因为信号的发送和接收是不可靠的,无法保证信号一定会被接收到。
  6. Linux中的IPC

    • 管道和FIFO:用于实现单向或双向的进程间通信。
    • 信号:可以用于进程间通信,但是受到一定的限制。
    • System V IPC:包括消息队列、共享内存和信号量,提供了一种可靠的进程间通信机制。
    • POSIX消息队列:提供了一种可靠的消息传递机制,克服了信号的不可靠性。
    • 线程同步机制:包括互斥锁、条件变量等,用于实现线程间的同步和通信。
    • 套接字:用于实现不同主机或同一主机上不同进程间的通信。

拓展知识点:

  1. 信号量和共享内存:与System V IPC相关的进程间通信机制,可以用于实现进程间的同步和互斥。

  2. 进程间通信的性能比较:不同的进程间通信方式在性能上有所差异,可以根据实际需求选择合适的通信方式。

  3. 信号处理的最佳实践:在实际编程中,需要注意信号处理的最佳实践,包括信号的安全处理、信号的屏蔽和解除屏蔽等。

  4. Linux中的异步IO:与信号处理相关的另一个重要知识点,可以实现非阻塞的IO操作。

  5. Linux中的事件驱动编程:利用信号和信号处理实现事件驱动的编程模型,是一种高效的编程方式。

苏格拉底挑战

image
image
image
image
image
image

实践

image
image

标签:间通信,IPC,信号处理,笔记,学习,信号,Linux,进程
From: https://www.cnblogs.com/wang-chen-kai/p/17825636.html

相关文章

  • CompletableFuture 学习
    创建异步任务CompletableFuture创建异步任务,一般有supplyAsync和runAsync两个方法supplyAsync执行CompletableFuture任务,没有返回值//使用默认内置线程池ForkJoinPool.commonPool(),根据supplier构建执行任务publicstatic<U>CompletableFuture<U>supplyAsync(Suppli......
  • 读程序员的制胜技笔记09_死磕优化(下)
    1. 造成延迟的3个方面1.1. CPU1.2. I/O1.3. 人2. 不要打包数据2.1. 一个打包的数据结构2.1.1. C#structUserPreferences{publicbyteItemsPerPage;publicbyteNumberOfItemsOnTheHomepage;publicbyteNumberOfAdClicksICanStomach;publicbyteM......
  • 《软件工程:一种实践方法》读书笔记一
    它把作为一本书按惯例该讲的历史部分形式一下就一段话带过,但是其中一个来自《人月传说》的形象的比喻深深吸引了我的眼球:“……正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。……程序设计工作正像这样一个泥潭,……一批批程序员被迫在泥潭中......
  • Altium Designer自学笔记
    本次使用AD20为基础进行练习。1.1新建工程包括:原理图、PCB、原理图库、PCB库。 1.2新建元器件 点击右下角的“Panels"面板,调出新建元器件界面1.3视图---->栅格------->切换捕捉栅格右边DesignerltemID可修改器件名称,绘制状态下Tap键可暂停修改。 11.4复制元器件按......
  • FOC学习笔记-基于灯哥FOC
    1、foc控制技术现在无刷电机越来越多的进入人们的视野,因为他的控制精度更高,相对直流电机而言可以更稳定的工作等特点,被越来越多的应用于机器人行业,而无刷电机的控制离不开FOC控制。FOC(field-orientedcontrol)为磁场导向控制,又称为矢量控制(vectorcontrol),是一种利用变频器(VFD)控制......
  • 学习笔记九
    学习笔记九一、任务详情自学教材第6章,提交学习笔记(10分),评分标准如下知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核......
  • 《Modbus学习套件测试程序》开发过程讲解
    1.项目创建  vs2022  .NETFramework4.5/4.6/4.7/4.72/4.8  .NETCore3.x  .NET5/6/7  <Windowx:Class="ModbusTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="ht......
  • 学习随笔(设计模式:策略模式)
     内容:今天学习了设计模式中的策略模式。1.策略模式是一种定义一系列算法的方法,这些算法都是相同的工作,只是实现不同,通过以相同的方式调用不同的算法,减少算法之间的耦合度。    2.这种设计模式可以用来封装任何类型的规则,需求中在不同时间应用不同的业务规则,就可以......
  • pyside6基础学习(一)
    pyside6基础学习(一)参考连接https://doc.qt.io/qtforpython-6/search.htmlhttps://www.pythonguis.com/tutorials/pyside6-creating-your-first-window/个人学习记录,参考很多前辈的文章。如果有错误,请指出,我将不胜感激。运行一个AplicationfromPySide6.QtWidgetsimportQ......
  • 2023-2024-1 20231402《计算机基础与程序设计》第7周学习总结
    2023-2024-120231402《计算机基础与程序设计》第7周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第7周作业这个作业的目标自学计算机科学概论第8章,《C语言程序设计》第6章作业正......