Shell

要先讲信号的话,先要了解一下shell程序的内容,正如上次所提到的一样,我们只有一种方法在Linux下创建进程,那就是使用fork调用

Linux Process Hierarchy

Shell Programs

shell是以用户身份执行程序的程序

Problem with Simple Shell Example

简单shell存在一个问题,shell会等待收割前台的工作。那么后台的工作呢?

  • 停止时变成“僵尸”
  • 由于shell不停止永远不会被替换
  • 创造引发内存耗尽的内存泄漏

ECF to the Rescue!

解决办法:Exceptional control flow

当后台进程完成时,内核会干扰打断常规的进程发送警告,在unix下,警告机制叫做sinal【信号】。

Signals

信号和上节课学习的异常机制很像,除了它是完全由软件实现的。

当我们在命令行按下ctrl+c的时候会触发sigint信号,内核像每个进程发送信号,收到sigint时的默认操作是终止任务

SIGKILL和SIGINT效果是一样的,都是kill了进程。

SIGCHLD这个信号是每当子进程被终止或者结束的时候kernel就会通知它们的父进程,我们会看到这就是shell回收进程的做法。

Signal Concepts: Sending a Signal

Signal Concepts: Receiving a Signal

收到信号是目标进程最终发生的事情,内核强制它以某种方式作出响应。

Signal Concepts: Pending and Blocked Signals

Sending Signals: Process Groups

Sending Signals with /bin/kill Program

Sending Signals from the Keyboard

Receiving Signals

Signals Handlers as Concurrent Flows

信号是并发的一种形式。

Another View of Signal Handlers as Concurrent Flows

Nested Signal Handlers

Guidelines for Writing Safe Handlers

后面就开始听不懂了。。。网上也有小伙伴留言是这样。。。哈哈哈

CMU15213 Intro to Computer Systems学习笔记(14) Exceptional Control Flow: Signals and Nonlocal Jumps相关推荐

  1. CMU15-213学习笔记(六)Exceptional Control Flow

    CMU15-213学习笔记(六)Exceptional Control Flow 程序的正常执行顺序有两种: 按顺序取下一条指令执行 通过CALL/RET/Jcc/JMP等指令跳转到转移目标地址处执行 ...

  2. node.js学习笔记14—微型社交网站

    node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...

  3. Linux学习笔记14

    Linux学习笔记14 Linux学习笔记14 DNS服务搭建 基本介绍 使用bind搭建dns服务 增加一个域名zone 配置DNS转发 配置主从 测试主从同步 后续课程 DNS服务搭建 基本介绍 ...

  4. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14--Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

  5. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction

    台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...

  6. 华为HCIA-datacom 学习笔记14——WLAN概述

    华为HCIA-datacom 学习笔记14--WLAN概述 1.WLAN(无线局域网) 通过无线技术构造的无线局域网络.WLAN广义上是指以无线电波.激光.红外线等无线信号代替有线局域网中的部分或全部 ...

  7. 【白帽子学习笔记14】SQL注入常用语句

    [白帽子学习笔记14]SQL注入常用语句 目前网站中使用的最多的数据库要算是 ACCESS.SQL Server(MSSQL).MySQL 这三个了,所以这里的手工注入,我就以他们三个数据库来分成三 ...

  8. 影像组学视频学习笔记(14)-特征权重做图及美化、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(14)主要介绍: 特征权重做图及美化 import matplotlib.pyplot as plt %matplotlib inlin ...

  9. opencv进阶学习笔记14:分水岭算法 实现图像分割

    基础版学习笔记目录: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 分水岭算法原理 分水岭算法 ...

  10. opencv学习笔记14:图像礼帽,图像黑帽

    python + OpenCV 图像礼帽 图像礼帽 也叫图像顶帽 礼帽图像=原始图像-开运算图像 得到噪声图像 开运算:先腐蚀再膨胀 使用对象:二值图像 使用方法:morphologyEx cv2.M ...

最新文章

  1. ***博客系统文章的数据库存储方式
  2. EXC_BAD_ACCESS错误
  3. 【Linux】一步一步学Linux——apt-get命令(278)
  4. golang刷Leetcode系列 --- 加1
  5. IOS中设置全局变量
  6. Python Pytest调用fixture之@pytest.mark.usefixtures()、叠加usefixtures、@pytest.fixture(autouse=True)用法详解
  7. JS面向对象编程之封装
  8. 小学三年级计算机基础知识课件,小学三年级信息技术基础知识ppt课件.ppt
  9. 大数据标签获取处理步骤_盘点大数据处理引擎
  10. Java国密算法加密
  11. 储量级别122b_储量级别代码是什么
  12. 微信企业号上传永久素材讲解与演示
  13. 菲仕乐高压锅型号全面详解
  14. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 第二章 应用层(docx)
  15. oracle实时异地同步,异地Oracle数据库数据同步
  16. Python3中的多态 ,鸭子类型
  17. P2321 [HNOI2006]潘多拉的宝盒 题解
  18. jQuery Mobel 学习相关资料整理(一)
  19. SQL学习之决胜秋招
  20. 动网论坛php源码无法安装,轻松搞定动网论坛与网站的整合

热门文章

  1. 春季养生男性常搓九部位补肾又健脑
  2. Java中String直接赋字符串和new String的区别,intern的作用
  3. Redis实现Mybatis的二级缓存
  4. 浅谈Mysql底层索引原理
  5. 从零开始学UC(1)之Microsoft Lync Server介绍
  6. Apax Partners收购ThoughtWorks幕后探秘
  7. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2 使用可变大小的数组实现ADT包...
  8. Fedora 25-64位操作系统中安装配置Hyperledger Fabric过程
  9. ORACLE 视图的 with check option
  10. 写读后感,获赠陈能技老师亲笔签名书《性能测试诊断分析与优化》中奖名单公布啦!...