进程的退出概念

news2024/11/29 20:35:31

进程退出

    • 缺页中断(补充)
    • 页表中的权限位
    • 进程退出
    • 异常
      • exit

缺页中断(补充)

之前我们了解了页表相关的知识,现在问大家一个问题,用newmalloc开辟内存的时候是虚拟内存还是物理内存呢?

答案是虚拟内存,这样有几个好处:

1、如果开辟了物理内存一直不使用,久而久之物理内存就满了,即“内存空转”,计算机内存资源被占用却没有被实际得到利用。
2、提高了new,malloc的效率,它只是在虚拟内存中开辟空间,等到实际访问的时候再去物理内存中开辟,然后通过页表关联起来,总时间效率是差不多的,但是new/malloc的效率得以提升。

那开辟虚拟内存等到要访问的时候是什么样的过程呢?下面就来解释所谓的缺页中断

当我们要访问开辟的空间时,通过页表并没有找到映射的物理内存,这时候就会“上报”给操作系统,等操作系统给我们在物理上开辟空间,然后再通过页表连接起来,这个过程就叫做缺页中断

页表中的权限位

下面我们继续来谈下页表,其实页表还有很多其他的属性,并不是我们想象的两列,一列虚拟内存,一列物理内存连接起来就行了,我们这里增加一个权限位的概念,页表中大部分的数据都是被设置成只读的权限,所以当子进程要对数据进行修改的时候,访问页表发现数据是只读的,这时候触发缺页中断,操作系统介入其中,发生写时拷贝,重新开辟物理内存,通过页表连接,紧接着把权限位改为可读可写

char* str = "Hello Linux!";
*str = "Hello";

比如这段代码,我们知道字符串是有常量性是不可修改的,那常性是怎么来的呢,从底层上就是页表中权限被设置位只读,我们要修改写入的时候就会访问页表,发现并没有权限,所以不能修改!

而const只是用来编译器用来检查编译时保证编译时的报错信息,和操作系统无关!

进程退出

下面我们来讲讲进程退出的问题,在这之前我们知道一般我们会在main函数最后加上return 0这一句代码,这是什么意思呢?

这个0我们称之为退出码,它能反应这个程序的退出信息

如果退出码为0,表示程序正常退出
如果退出码非0,表示程序异常退出

在这里插入图片描述
我们可以通过strerror开查看
在这里插入图片描述
在这里插入图片描述

也可以查看其他退出信息:
在这里插入图片描述
并且也可以自定义,这个大家可以自己尝试

另外我们可以通过echo $?来查看上一次程序的退出信息
在这里插入图片描述
那进程通过main函数的退出码来获取信息,那普通函数呢?
函数退出仅仅表示函数调用完毕,调用函数一般我们通常想看到两种结果,第一函数执行成功或者失败。而函数存储了上一次函数调用的错误码。

例如我们经常malloc开辟空间的时候:
在这里插入图片描述
在这里插入图片描述

异常

而进程退出就有着三种情况:
1、程序执行完,正常退出。
2、程序执行完,异常退出。
3、没有执行完,发生异常了。

而只有当程序执行完的时候,结果才有意义。

进程出现退出是进程收到了异常的信号,每个信号都有不同的编号,每个编号都有自己的异常原因。
我们可以通过kill -l 查看有哪些信号:
在这里插入图片描述

在这里插入图片描述

exit

在这里插入图片描述
exit是终止进程 ,其中status:是进程退出时候的退出码。
在这里插入图片描述
在这里插入图片描述
另外还有一个_exit和exit很像,exit是c语言给我们提供的接口,而_exit是linux系统给我们提供的接口,区别是_exit 没有刷新缓冲去,而exit刷新了缓冲区,大家可以自行验证下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷粒商城实战笔记-231-商城业务-认证服务-单点登录简介

文章目录 一,跨域名共享登录1,父子域名共享登录2,跨域名登录 二,单点登录-SSO单点登录的必要性单点登录的原理 三,XXL-SSO,开源的单点登录解决方案 一,跨域名共享登录 1,父子域名共…

OSPF-基础多区域实验

1.ENSP下载 阿里云盘分享 ⭐/*无需密钥 免费下载 安装不成功,可关注并私信博主*/ 2.OSPF的基础需求和规则 实验规则: 1.接口地址→XY.XY.XY.R /24 X:两者之间最小的 Y:两者之间最大的 R:谁的接口就是谁的编号 以R1和R2之间的连接为例&#xff0…

中国植物性状数据库

中国植物性状的研究主要集中在植物的生理结构和功能,‌以及它们对环境的适应性上。‌中国植物性状的多样性体现在多个方面,‌包括植物的生理结构、‌生长习性、‌以及对环境的适应性等。 中国植物性状数据库,包含了来自140个样点的1529种植物…

Leetcode876. 链表的中间结点(双指针)

题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例: 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中…

游泳耳机哪个品牌好?四大热门爆款游泳耳机实测体验速览!

游泳耳机作为水下运动的伴侣,有着不少喜爱的人群。然而,也有一部分人对其保持距离,原因往往是担心水下耳机进水损坏。但只要我们避开那些缺乏专业技术实力的产品,就能享受水下音乐带来的无限乐趣。作为一名资深音乐爱好者和游泳教…

减震组装对于哪些无人机是必不可少的!你知道吗?

高精度无人机 对于需要搭载高精度传感器或进行高精度测量的无人机,如测绘无人机、环境监测无人机等,减震组装是必不可少的。这些无人机需要确保在飞行过程中传感器数据的准确性和稳定性,因此必须采用有效的减震措施。 载重无人机 载重无人…

个人收藏个性化、实用性、可玩性在线网站持续更新,与君共享

1.https://handraw.top/ 支持中文手绘效果的白板工具,比较怀旧复古风格 界面简单风 2.https://app.diagrams.net 流程图、UML图、网络图、组织结构图、思维导图等,比较专业 可导出图片 PDF HTLM等各种格式 3.https://www.processon.com 主要用于生成…

杜占朋人物风采

杜占朋,衡水名校校长,一位荣获全国杰出青年称号的杰出教育家,同时也是全国范围内备受尊崇的红色基因传承者。他以其卓越的学术成就、丰富的实践经验以及不懈的教育创新精神,成为了当代教育领域的璀璨明星。他身兼数职,…

一文速通 Vue 基础

1、Vue 概述 官方文档中文:https://staging-cn.vuejs.org/ 英文:Vue.js - The Progressive JavaScript Framework | Vue.js 1.1、什么是 MVVM MVVM(Model-View-ViewModel)是一种软件设计模式,由微软WPF&#xff08…

C语言中的联合体和枚举类型

文章目录 🍊联合体🍊枚举类型 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊联合体 1、概述   联合体该结构体的定义形式类似,但是它是所有的成…

信息安全保证人员CISAW:安全集成

信息安全保障人员认证(CISAW)在安全集成领域的认证,主要针对申请者在信息系统安全集成的知识和理论以及项目实施中的综合应用能力进行全面评估。 这一认证特别强调对申请者在安全集成方面的知识深度和利用这些知识分析、解决实际问题的能力的评价。 此外&#xff…

python初级爬虫实战:我是怎么用python下载音乐的

今天分享的内容是如何使用python下载歌曲和歌词信息,文章涉及内容主要为了帮助大家学习python技能,请大家合规合理使用。 如果你正在学习Python爬虫,但是找不到方向的话可以试试我这一份学习方法和籽料呀!点击 领取(不…

北斗对我们普通人的生活有什么影响?

自北斗卫星导航系统(BDS)全面覆盖全球以来,北斗导航在我们日常生活中的重要性与日俱增。本文将详细探讨北斗导航系统如何从方方面面改变我们普通人的生活。 1. 精准定位:现代生活的基石北斗系统最显而易见的影响体现在精准定位和导…

Linux:进程的概念,进程相关函数

一、进程的概念 1.进程 进程是系统进行资源分配和调度的一个独立单元,它是操作系统结构的基础。进程是程序的一次执行过程,包含了程序代码、当前活动、系统资源(如CPU、内存、文件等)的使用情况等信息。每个进程都有自己独立的内…

2024最强CSS基础知识大全(含代码)

CSS 什么是 CSS CSS(Cascading Style Sheets) 指层叠样式表,样式定义如何显示 HTML 的样式,样式通常存储在样式表中,把样式添加到 HTML5 中,是为了解决内容与表现分离的问题,外部样式表可以极大提高工作效率&#xf…

三勾点餐系统|支持多端发布,方便二次开发

版本号1.7更新日志 新增:腾讯地图key设置(更新后请设置key) 新增:支付宝小程序登录和支付 新增:前端点餐时选择门店 新增:前端点餐页面优惠活动显示 新增:H5修改手机号 新增:H…

conda不是内部或外部命令

conda不是内部或外部命令 是anaconda环境变量没有添加到系统环境变量 解决办法 找到anaconda安装目录,添加以下系统环境变量 注意事项 pycharm在选择anaconda创建虚拟环境时,使用的是_conda.exe

2000-2023年逐年最大NDVI数据集(500m)

植被指数(NDVI, Normalized Difference Vegetation Index)可以准确反映地表植被覆盖状况。目前,NDVI时序数据已经在各尺度区域的植被动态变化监测、土地利用/覆被变化检测、宏观植被覆盖分类和净初级生产力估算等研究中得到了广泛的应用。 中…

YOLO入门教程(二)——OpenVINO™部署YOLO模型与异步推理实现150FPS+实时检测【含教程源码 + 环境配置】

目录 引言前期准备Step1 pt格式转onnx格式Step2 创建工程文件并安装NuGet PackageStep3 预处理API部署YOLO模型Step4 前处理推理后处理Step5 异步推理参考博客 引言 YOLO(You Only Look Once)作为一个目标检测算法,其调用的接口为Python语言…

架空防静电地板的贴面面层有哪些

很多机房装修都会用到架空防静电地板,架空防静电地板由贴面、基材、支架横梁系统组成,那么架空防静电地板的贴面都有哪些呢?一起来看看~ 防静电地板常用贴面面层有3种: 1、PVC防静电贴面面层;2、HPL防静电贴面面层;3、瓷砖防静电贴面面层 1、…