apue
文章平均质量分 96
乔木冠华
这个作者很懒,什么都没留下…
展开
-
线程控制完成
施工未完成;9月1号继续施工原创 2021-08-31 22:30:09 · 165 阅读 · 0 评论 -
<<apue>> 可重入和线程安全
回顾什么是可重入?线程安全函数如果一个函数,对于多个线程来说是可重入的,那么这个函数就是线程安全的异步信号安全如果函数对于异步信号处理成序的重入是安全的,那么该函数就是异步信号安全的包含关系可重入与线程安全两个概念都关系到函数处理资源的方式。但是,他们有重大区别:可重入函数要解决的问题是,不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。线程安全函数要解决的问题是,多个线程调用函数时访问资源冲突。① : 函数如果使用静态变量,通过加锁后可以转成线程安原创 2020-12-03 14:14:07 · 621 阅读 · 0 评论 -
<<APUE>> 可重入函数 和不可重入
要熄灯断电了,明天考试,明天再修改可重入函数可重入函数(reentrant):在任意时刻可以被中断,稍后再继续运行,不会丢失数据,即不用担心数据被其他线程篡改。可重入函数必须满足以下三个条件:可以在执行的过程中可以被打断;被打断之后,在该函数一次调用执行完之前,可以再次被调用(或进入,reentered)。再次调用执行完之后,被打断的上次调用可以继续恢复执行,并正确执行。不可重入函数多任务调用某一不可重入函数时,可能修改其他任务调用该函数的数据,从而导致不可预料的后果。即不可重入函数原创 2020-12-02 22:32:13 · 808 阅读 · 1 评论 -
<<APUE>> 第十章信号(1)
#第十章 信号1.不存在编号为0的信号 , kill函数对编号为0的信号有特殊用途2.0号信号是空信号3.errno到底是什么?4.为什么longtmp 和siglongtmp是不可重入的信号?这个还需要再度的探究5.在会话哪里 是将信号发送给前台进程整个进程组的 kill(pid < 0,signo) 而kill函数也可以发信号给某个具体的进程 ------>所以 信号的接受者的基本单位是进程 而不是进程组####信号处理的相关动作忽略信号2个信号不可以忽略1.sigk原创 2020-11-30 20:55:17 · 636 阅读 · 0 评论 -
进程组和会话
进程组:进程组是一个或是多个进程的集合:同一个进程组的各个进程 接受来自于同一个终端的信号每一个进程组,有一个唯一的 pgid (进程组id)pid_t getpgid(pid_t pid);//获取某个进程所在进程组的pgid进程组组长相关:每个进程组,都有一个组长. 组长のpid=pgid;进程组组长 可以 创建一个新的进程组,创建改组中的进程,终止改组中的进程进程组的生命周期生命周期:只要该进程组中还有进程存在,这个进程组就还存在:---->进程组的生死原创 2020-11-28 12:55:24 · 838 阅读 · 0 评论 -
进程调度相关,浅析cfs
写在前面前两天写了一篇关于进程调度的博客.准确来说是读书笔记.参考的是<<深入理解linux内核>>本来还是蛮顺畅的.当我去尝试了解CFS的时候 ,发现事情有点不对劲. 后来在网上查啊查,找啊找,最后还是想不通. 最后迫于无奈,又去看了各种各样的书. 昨天我买的<<linux内核深度解析>>邮过来了.画了一天时间,对进程调度又做了一点了解.本篇博客也是一篇读书笔记., << linux内核深度解析>>第二章相对于上一篇博客:原创 2020-11-25 22:50:52 · 1135 阅读 · 0 评论 -
僵尸进程 孤儿进程 进程时间
退出状态和终止状态:退出状态:exit _eixt函数会产生退出状态终止状态:wait和waitpid函数将取得终止状态父进程在子进程之前终止:会产生孤儿进程孤儿进程:父亲死了,我还活着,我成孤儿了对于父进程已经终止的所有进程,他们的父进程都会改变成init进程.称之为收养收养的大致过程: 书上原话: 当一个进程终止之后,内核逐个检查所有的活动进程,以判断他 是否是要终止的进程的子进程,如果是,则该进程的父进程的id就更该为1 ---->这种处理方法保证了每一个进程都会原创 2020-11-25 13:37:52 · 1167 阅读 · 0 评论 -
system和popen函数
SYSTEM函数对操作系统的依赖性极强int system(const char * cmdstring);system在实现中 调用了 fork exec 和waitpid1.fork失败或者 waitpid返回出eintr之外的出错 system 返回-12.如果exec失败(表示shell命令不能执行), 择期返回值如同shell执行了exit3.斗则 这三个函数都成功的话, 返回值是这个shell命令的终止状态使用system而不直接使用fork和exec的优点是: 人家都给你原创 2020-11-22 22:11:06 · 3119 阅读 · 0 评论 -
<<深入理解linux内核>> --进程调度读书笔记
1. 常见调度算法优秀博客: https://www.cnblogs.com/alantu2018/p/8460451.html先来先服务短作业优先最高响应比时间片轮转多级反馈队列2. 进程分类2.1 第一种cpu密集型进程如果进程的绝大多数都在使用 CPU 做运算的话,那么这种进程称之为 CPU 消耗型,比如开启 Matlab 做一个大型的运算。没有太多的 I/O 需求,从系统响应的角度上来讲,调度器不应该经常让他们运行。对于处理器消耗型的进程,调度策略往往是降低他们的执行频原创 2020-11-21 17:26:31 · 1453 阅读 · 0 评论 -
函数簇 execve wait exit
第八章进程功能0号金城:调度进程,也叫做交换进程, idle进程:1号进程:进程树的根,init进程2号进程:kthreadd进程:== =======================进程诞生特殊之处备注0号由系统自动创建,运行在内核态他的前身是整个系统创建的第一进程,也是唯一一个没使用fork或kernel_thread创建的进程系统加载完成之后,0号进程进行演变 演变成进程调度,交换1号由0号进程创建(通过kernel原创 2020-11-20 15:02:57 · 1449 阅读 · 0 评论 -
<<APUE>>第八章--fork vfoek pthread_creat 和clone()
文章目录fork()返回值写时复制的具体过程:关于fork和vforkfork之后文件共享:fork之后处理文件描述符有两种常见的情况:fork之后 父子共享的东西fork之后父子之间不一样的东西fork会失败吗?为什么?关于VFORKvfork不想fork那样放将父进程的底层虚拟地址完全复制 --->vfork之后会立即调用exec关于vfork调用栈混乱的根本原因:八字真言:读时共享,写时分离fork()include <unistd.h>pid_t fork(void)原创 2020-11-19 13:19:31 · 2192 阅读 · 0 评论 -
<<深入linux内核>>第三章 进程
进程 线程 轻量级进程linux内核上准确来说并没有 线程这一概念linux的线程其实是一种"轻量级进程"进程:操作系统分配系统资源的基本单位线程(轻量级进程):系统执行任务的基本单位多线程进程=多个轻量级进程组合成一个进程=一个线程(轻量级进程)组Linux使用轻量级进程对多线程应用程序提供更好的支持具体:实现多线程程序的一个简单方式就是把轻量级进程与每个线程关联起来.这样线程虹之间就可以通过简单地共享同一个内存地址空间,统一打开文件集来进行访问相同的应用程序数据结构集.同时每个线程原创 2020-11-18 13:22:26 · 1224 阅读 · 0 评论 -
apue第八章额外补充 ----电脑开机与0号1号 2号进程
转载优秀博客(务必要看) https://www.cnblogs.com/alantu2018/p/8526970.html第八章一气(电脑通电)三清(三个进程)三个进程进程功能0号进程: idle进程调度进程,也叫做交换进程, idle进程:1号进程:init进程进程树的根,init进程2号进程:管理内核线程:进程诞生特殊之处备注0号由系统自动创建,运行在内核态他的前身是整个系统创建的第一进程,也是唯一一个没使用fork或k原创 2020-11-16 17:44:16 · 1294 阅读 · 0 评论