
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
两篇合起来,信号的全貌就完整了:产生端五种方式殊途同归,落到 pending 位图;保存靠 pending、block、handler 三张表;处理则卡在内核态返回用户态的那个检查点上,先查 pending 再查 block,默认和忽略内核顺手就办了,自定义捕捉要回到用户态执行,一来一回正好四次身份切换。而为了讲清“凭什么进内核”,我们又把硬件中断、中断向量表、时钟源、系统调用号这条线走了一遍——
信号是一种给进程发送的,用来进行事件异步通知的机制。异步的意思是同一时间两件事情同时发生,互不干扰,就好比人正在睡觉,闹钟也正在慢慢走,两者各干各的,直到闹钟响了再通知起床;信号的产生,相对于进程的运行就是异步的。关于信号,先给四条基本结论:1、信号处理,进程在信号没有产生的时候,早就知道信号该如何处理了;2、信号的处理,不是立即处理,而是可以等一会再处理,在合适的时候进行信号的处理;3、进程能识
我们平时写代码,几乎都离不开printfstrlen这些函数,可它们并不在我们自己写的源文件里,那它们是从哪来的呢?它们来自库。库是写好的、现有的、成熟的、可以复用的代码,现实里每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,所以库的存在意义非同寻常。本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行,而库又分两种:静态库和动态库,这两种我们后面分别来看先看静态
这节课带大家学习了有关文件缓冲区的知识,还有理解了一切皆文件到底是怎么实现的,希望大家在看完这篇文章后能从中学到新知识。以后我会继续创作Linux方向的博客,如果觉得有帮助的话希望各位大佬能三联关注支持一下,看到后我会进行回关和回访。
本文梳理了Linux进程控制四大核心:进程创建、进程退出、进程等待与程序替换。进程退出标记生命周期结束,wait/waitpid用于回收子进程,避免僵尸进程;exec系列系统调用实现程序替换,在保留进程资源的前提下加载新程序。理解这套机制,能看清进程从创建到消亡的完整流程,也是操作系统并发编程的重要基础。
虚拟地址空间不只是简单的地址翻译,更是操作系统实现解耦的核心抽象。它让进程无需关心物理内存的分布,只需操作虚拟地址;内核则通过页表独立管理物理内存。二者隔离开来,既实现内存隔离与安全,也让内存调度、换页等机制得以落地,是理解现代内存管理的关键。
class为定义类的关键字,后面加上类的名称,本文将使用日期类(Date)来进行讲解,{}内为类的主体,括号后的分号;不能省略。类体中的变量称为类的属性或成员变量,类中的函数被称为行为或成员函数。定义在类里面的变量,为了与正常的变量区分开,一般会在变量名的前面加上一个下划线(),如下图所示。int _month;int _day;特别的是,在C++里面,struct也可以用于定义类,因为C++本身







