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

学习笔记9

时间:2023-11-11 21:34:05浏览次数:26  
标签:IPC 中断 信号处理 通信 笔记 学习 信号 进程

第6章 信号和信号处理

1. 信号和中断

1. 信号:

信号是操作系统中用于通知进程有突发事件发生的一种机制。信号可以由硬件或软件生成,用于中断进程的执行。信号的主要目的是让进程能够及时处理这些特殊事件,例如用户输入、硬件故障等。

信号的特点:

  • 异步性:信号可以在进程执行的任何时刻发生,进程无法预测何时会收到信号。

  • 不可屏蔽性:进程接收到信号后,必须立即处理,不能忽略或屏蔽信号。

  • 处理顺序性:多个信号可以同时到达进程,但进程只能按照接收顺序依次处理。

2. 中断:

中断是计算机在执行过程中,由于内部或外部事件而暂停当前程序,转去处理其他任务,处理完毕后再返回原程序继续执行的过程。中断机制使得计算机能够实现多任务处理和实时响应。

中断的特点:

  • 同步性:中断是由硬件或软件产生的,进程可以预测何时会收到中断。

  • 可屏蔽性:进程可以选择是否响应中断,例如操作系统可以选择屏蔽某些不重要的中断。

  • 非抢占性:在某些情况下,进程可以响应中断并处理,但不会导致当前执行的中断任务被抢占。

3. 在 Linux 系统中,信号和中断的关系如下:

  • 信号是一种用于通知进程的特殊事件,中断是处理这些事件的机制。

  • 信号可以由硬件或软件生成,中断是由硬件或软件产生的。

  • 信号处理是通过操作系统的中断处理程序来实现的,中断处理程序负责响应和处理中断请求。

  • 进程可以通过信号处理函数来处理接收到的信号,也可以通过设置信号掩码来决定是否响应特定信号。

2. Unix/Linux中的信号处理

1. 信号类型:

Unix/Linux 系统中的信号分为两类:

  • 硬件信号:由硬件事件引发,如键盘输入、硬件故障等。

  • 软件信号:由软件生成,如进程退出、时间片结束等。

2. 信号处理:

信号处理主要包括信号处理函数和信号掩码。

  • 信号处理函数:当进程接收到信号时,会被迫中断当前执行,转去执行信号处理函数。信号处理函数可以在进程中定义,用于处理接收到的信号。
  • 信号掩码:用于屏蔽特定信号,使进程在收到该信号时不会被中断。可以通过设置信号掩码来实现。

3. 信号处理机制:

在 Unix/Linux 系统中,信号处理机制主要包括以下几个步骤:

  • 信号生成:当某个事件发生时,如用户输入、进程退出等,会生成信号。

  • 信号传递:操作系统将生成的信号传递给进程。

  • 信号处理:进程接收到信号后,执行信号处理函数进行处理。

  • 信号恢复:进程在处理完信号后,恢复之前的执行状态。

4. 常用信号及其处理:

一些常见的信号及其处理方式如下:

  • SIGINT:中断信号,通常由用户按下 Ctrl+C 产生。进程可以选择捕获此信号并执行相应处理。

  • SIGTERM:终止信号,用于请求进程终止。进程接收到此信号后,应立即终止执行。

  • SIGKILL:强制终止信号,用于立即终止进程。进程无法响应此信号,只能等待被终止。

  • SIGSTOP:停止信号,用于暂停进程执行。进程接收到此信号后,应暂停执行,直至接收到 SIGCONT 信号后继续执行。

5. 信号处理注意事项:

  • 信号处理函数应在进程中定义,最好使用全局函数,以便于在不同文件中调用。

  • 信号处理函数应具有与信号处理相关的功能,如记录日志、清理资源等。

  • 避免在信号处理函数中执行长时间操作,以免阻塞其他信号处理。

  • 注意信号处理的顺序性,确保先处理较紧急的信号。

  • 使用信号掩码来屏蔽不重要的信号,以减少进程被中断的次数。

Linux中的IPC

1. IPC 概述:

IPC 是指在多个进程之间建立通信渠道,以便进程能够相互传递数据和信息。IPC 解决了进程之间的同步和通信问题,有助于提高系统的并发性能和性能。

2. IPC 方式:

Linux 系统中,主要有三种 IPC 方式:

  • 管道(Pipe):适用于具有亲缘关系的父子进程之间的通信。

  • 命名管道(Named Pipe,或 FIFO):适用于无亲缘关系的进程之间的通信。

  • 消息队列(Message Queue):适用于进程之间非实时通信,具有较高的传输速度和稳定性。

  • 信号(Signal):用于进程间的异步通信,主要用于通知进程有特殊事件发生。

  • 共享内存(Shared Memory):适用于高速、大容量的进程间通信。

  • 消息链(Message Chain):一种基于消息队列的通信方式,适用于多个进程之间的有序通信。

3. IPC 机制:

在 Linux 系统中,IPC 机制主要包括以下几个方面:

  • 进程标识:通过进程 ID(PID)来标识和区分不同进程。

  • 通信渠道:建立和管理进程之间的通信通道,如管道、消息队列等。

  • 同步机制:确保进程在访问共享资源时的互斥性和有序性,如互斥锁、信号量等。

  • 权限控制:管理进程之间的访问权限,防止未经授权的访问。

4. IPC 应用场景:

IPC 技术在以下场景中具有广泛应用:

  • 服务器程序:服务器程序需要与多个客户端进程通信,IPC 技术有助于实现高效、稳定的服务。

  • 协同工作:多个进程需要协同完成任务时,IPC 技术可以帮助进程之间高效地传递数据和信息。

  • 实时系统:在实时系统中,IPC 技术可以实现进程之间的快速通信,提高系统的响应速度。

5. IPC 编程注意事项:

  • 根据实际需求选择合适的 IPC 方式,综合考虑通信速度、可靠性和资源消耗等因素。

  • 在使用共享内存时,注意内存访问的同步和互斥问题,避免数据竞争和死锁。

  • 合理设置进程间的权限,确保 IPC 通信的安全性。

  • 注意 IPC 通信的性能优化,避免进程间通信成为系统性能瓶颈。

苏格拉底挑战
image

image

image

image

标签:IPC,中断,信号处理,通信,笔记,学习,信号,进程
From: https://www.cnblogs.com/1104dd/p/17826396.html

相关文章

  • Java学习—JAVA正则表达式
    -----生命如同寓言,其价值不在于长短,而在于内容。正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。1、正则表达式语法元字符描述\将下一个字符标记符、或一个向后引用、或一个八进制转义符。......
  • linux学习-4
    存储管理存储方式从连接方式上,存储分为:本地存储、外部存储、网络存储;从工作原理上,硬盘分为:固态硬盘、机械硬盘。 在linux系统中,每个设备都被当成一个文件来对待,几乎所有的硬件设备文件都在/dev这个目录内。从硬盘接口上,硬盘分为以下几种类型:IDE----SATA(串行ATA)硬盘SCSI--......
  • 深度学习模型---卷积神经网络
    深度学习深度学习模型是一种机器学习方法,它模仿人脑神经网络的结构和功能,通过多层次的神经网络进行学习和推断。深度学习模型在计算机视觉、自然语言处理、语音识别等领域取得了显著的成果。深度学习模型的基本单元是神经网络,它由大量的人工神经元组成,每个神经元都与其他神经元......
  • Pollard-Rho 学习笔记
    前言其实很早就看到过了,下定决心去学的,居然是因为翻到之前口胡的题目,然后发现之前做法假了,继续尝试做的时候发现需要这个算法,于是,题目就绿->黑了。Step.1引入求一个数的所有因数,这个问题伴随了我们很久了,现在又要翻出来鞭尸。最开始的时候,我们使用的是最朴素的\(O(n)\)试除......
  • RLHF · PBRL | SURF:使用半监督学习,对 labeled segment pair 进行数据增强
    论文名称:SURF:Semi-supervisedrewardlearningwithdataaugmentationforfeedback-efficientpreference-basedreinforcementlearning,ICLR2022,分数666接收,又是PieterAbbeel组的(恼)。(最近的readinglist里全是他们组的文章,已经读过了PEBBLE和RUNE并撰写阅读......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第十周学习总结
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • SuperGlue: Learning Feature Matching with Graph Neural Networks论文笔记
    SuperGlue:LearningFeatureMatchingwithGraphNeuralNetworks源码:github.com/magicleap/SuperGluePretrainedNetwork背景:主要解决图像中点之间的对应关系。主要方法:上图为该方法的主要框架。模型大致分为两个部分:注意图神经网络和最优匹配层。其中第i个局部特征由di......
  • Java SPI机制学习之开发实例
    原创/朱季谦在该文章正式开始前,先对JavaSPI是什么做一个简单的介绍。SPI,是ServiceProviderInterface的缩写,即服务提供者接口,它允许开发人员定义一组接口,并由供应方或者第三方提供具体实现。这种机制能够让应用程序动态加载及执行各种接口实现。根据名字来理解,比较抽象,举一......
  • 2023-2024-1 20231406 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231406《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程([2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(2023-2024-1计算机基础与程序设计第七周作业这个作业......
  • 第九周学习笔记
    @[TOC](第九周学习笔记)#1.信号的初步认识##1.1信号的特点信号所携带的信息量少,操作简单##1.2信号的状态1.产生①由键盘产生:例如Ctrl+c,Ctrl+②命令:kill③系统函数:kil④软条件:定时器⑤硬件:段错误,除0错误>由键盘和和硬件产生的信号统称为硬件方式,其余的为软件方式2.未......