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

学习笔记9

时间:2023-11-12 14:22:05浏览次数:30  
标签:知识点 中断 笔记 学习 信号 act 进程 define

第六章 信号和信号处理

信号和中断

“中断”是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移 到中断处理。与发送给CPU的中断请求一样,“信号”是发送给进程的请求,将进程从正常执行转移到中断处理。

进程:一个“进程”就是一系列活动

  • 广义的 “进程”包括:从事日常事务的人。在用户模式或内核模式下运行的Unix/Linux进程。执行机器指令的CPU。
  • “中断”是发送给“进程”的事件,它将“进程”从正常活动转移到其他活动,称为“中断处理”。“进程”可在完成“中断”处理后恢复正常活动。

根据来源,中断可分为三类:

  • 来自硬件的中断
  • 来自其他人的中断
  • 自己造成的中断

按照紧急程度,中断可分为以下几类:

  • 不可屏蔽(NMI)
  • 可屏蔽
  • 进程硬件中断
  • 来自硬件的中断
  • 来自其他处理器的中断
  • 自己造成的中断

Unix/Linux信号示例

信号类型

#define	SIGHUP	1
#define	SIGINT	2
#define	SIGQUIT	3
#define	SIGILL	4
#define	SIGTRAP	5
#define	SIGABRT	6
#define	SIGIOT	6
#define	SIGBUS	7
#define	SIGFPE	8
#define	SIGKILL	9
#define	SIGUSR1	10
#define	SIGSEGV	11
#define	SIGUSR2	12
#define	SIGPIPE	13
#define	SIGALRM	14
#define	SIGTERM	15
#define	SIGSTKFLT 16
#define	SIGCHLD	17

#define	SIGCONT	18
#define	SIGSTOP	19
#define	SIGTSTP	20
#dpfine	STGTTTN	21
#define	SIGTTOU	22
#define	SIGURG	23
#define	SIGXCPU	24
#define	SIGXFSZ	25
#define	SIGVTALRM 26
#define	SIGPROF	27
#define	SIGWINCH 28
#define	SIGPOLL	29
#define	SIGPWR	30
#define	SIGSYS	31

信号的来源

  • 来自硬件中断的信号:在执行过程中,一些硬件中断被转换为信号发送给进程硬件信号示例。
  • 中断键(Ctrl+C),它产生一个SIGINT(2)信号。
  • 间隔定时器,当他的时间到期时,会生成一个SIGALRM(14)、SIGTALRM(26)或SIGPROF(27)信号。
  • 其他硬件错误,如总线错误、IO陷进。
  • 来自异常的信号:常见的陷阱信号有SIGFPE(8),表示浮点异常(除以0),最常见也是最可怕的时SIGSEGV(11),表示段错误。
  • 来自其他进程的信号:进程可以使用kill(pid,sig)系统调用向pid标识的目标进程发送信号。

信号处理函数

每个进程PROC 都有一个信号处理数组 int sig[32]。Sig[32]数组的每个条目都指定了如何处理相应的信号,其中0表示 DEFault(默认),1表示 IGNore(忽略).其他非零值表示用户模式下预先安装的信号捕捉(处理)函数。下图给出了信号位向量、屏蔽位向量和信号处理函数。

sigaction()的使用示例

代码如下:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
//#include <siginfo.h>

void handler(int sig, siginfo_t *siginfo, void *context)
{
    printf("handler: sig=%d from PID=%d UID=%d\n",sig, siginfo->si_pid, siginfo->si_uid);
}
int main(int argc, char *argv[])
{
    struct sigaction act;
    memset(&act, 0, sizeof(act));
    act.sa_sigaction = &handler;
    act.sa_flags = SA_SIGINFO; 
    sigaction(SIGTERM, &act, NULL);
    printf("proc PID=%d looping\n", getpid()); 
    printf ("enter kill PID to send SIGTERM signal to it\n"); 
    while(1)
    {
        sleep (10);
    }
}

苏格拉底挑战

  1. 知识点1:信号与异常

    我在学习信号与异常知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

 - 针对我信号与异常知识点,我理解了吗?

 - 我的回答结束了,请对我的回答进行评价总结。

  1. 知识点2:信号和中断

    • 我在学习使用信号和中断知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

    • 针对我信号和中断知识点,我理解了吗?

    • 我的回答结束了,请对我的回答进行评价总结。

问题与解决思路

在学习过程中,我遇到了以下问题,并使用chatgpt等AI工具解决:

  1. 问题1:当进程遇到异常时该怎么办

标签:知识点,中断,笔记,学习,信号,act,进程,define
From: https://www.cnblogs.com/zqr031029/p/17827135.html

相关文章

  • 机器学习——循环神经网络的实现
    独热编码回想一下,在train_iter中,每个词元都表示为一个数字索引,将这些索引直接输入神经网络可能会使学习变得困难。我们通常将每个词元表示为更具表现力的特征向量。最简单的表示称为独热编码(one-hotencoding),它在 3.4.1节中介绍过。简言之,将每个索引映射为相互不同的单位向......
  • 第六章学习笔记
    第六章信号和信号处理知识点总结信号是指随时间或空间变化的信息载体,可以是各种形式的数据,比如声音、图像、视频、电压等。信号处理涉及对这些信号进行获取、处理、分析和解释的一系列技术和方法。1.信号类型:-连续信号:在连续时间内定义的信号,如声音波形。-离散信号:只在离散......
  • 信息安全系统设计与实现学习笔记9
    学习笔记9一、知识点归纳以及自己最有收获的内容1.信号和信号处理进程的概念一个“进程”是一系列活动,包括从事日常事物的人、在用户模式或内核模式下运行的Unix/Linux进程以及执行机器指令的CPU。中断中断可分为三类:来自硬件的中断、来自其他人的中断、自己造成的中断......
  • 2023-2024-1 20211319《计算机基础与程序设计》第七周学习总结
    2023-2024-120211319《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标<写上具体方面>作业正文......
  • 2023-2024-1 20231417 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231417《计算机基础与程序设计》第七周学习总结 作业信息这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07)......
  • 数学微积分,学习笔记,等价无穷小的证明:(1+x)^a-1 ~ ax
    \(\lim_{x\to0}\frac{\sqrt[n]{1+x}-1}{\frac{x}{n}}=1\)的证明\[\lim_{x\to0}\frac{\sqrt[n]{1+x}-1}{\frac{x}{n}}=\lim_{x\to0}\frac{\left(1+x\right)^{\frac{1}{n}}-1}{\frac{x}{n}}=\lim_{x\to0}\frac{e^{x\frac{1}......
  • linux的学习2
    用户管理:id:显示用户以及所属群组的实际与有效ID1.useradd-m用户名(描述:-m自动创建这个用户的主目录/home/用户名)2.useradd-g组名用户名(描述:添加新用户到某个组)3.userdel-r用户名(描述:-r删除用户的时候将他的目录也一并删掉)4.usermod-g用户组用户名(描述:修改用......
  • 学习笔记9 第六章的自学归纳
    第六章信号和信号处理信号和中断信号:发送给进程的请求,将进程从正常执行转移到中断处理中断:从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理Unix/Linux信号示例Ctrl+C:当前运行的进程终止。生成一个键盘硬件中断。键盘中断处理程序将"Ctrl+C......
  • 机器学习——循环神经网络
    隐状态 无隐状态的神经网络 有隐状态的循环神经网络循环神经网络(recurrentneuralnetworks,RNNs)是具有隐状态的神经网络。   基于循环神经网络的字符级语言模型 回想一下 8.3节中的语言模型,我们的目标是根据过去的和当前的词元预测下一个词元,因此我们将原始......
  • 2023-2024-1学期20232423《网络空间安全导论》第一周学习总结
    教材学习内容1.1信息时代与信息安全放眼全球,随着时代的发展,各国的信息技术都在不断地提高,而我国已然成为信息技术与产业大国。随着技术进步一起到来的还有信息安全的隐患:他国对我们虎视眈眈,计算机病毒在一轮又一轮的清除中不断病变,有害内容的泛滥以及信息站和网络战的开始。因......