基础概念 进程创建过程 当一个进程创建一个新的进程,创建进程的进程(父进程)使用名为fork()的系统调用。当fork()被调用的时候,它会为新创建的进程(子进程)获得一个进程描述符,并且设置新的进程ID。复制父进程的进程描述符给子进程。这时候,不会复制父进程的地址空间,而是父子进程使用同样的地址空 ...
分类:
系统相关 时间:
2020-01-04 22:45:58
阅读次数:
117
RDB 将redis内存中的数据一次完整地写入一个二进制文件中,复杂度是O(n),生成的新文件会将老的rdb文件替换,相关指令: save:阻塞直至快照是生成完成 bgsave:创建后台进程来生成快照,fork生成子进程的过程是阻塞的,但一般来说这个过程比较快,创建的子进程名字是redis-rdb- ...
分类:
其他好文 时间:
2020-01-03 10:32:35
阅读次数:
55
HMaster和HRegionServer是Hbase的两个子进程,但是使用jps发现没有启动起来,所以去我们配置的logs查看错误信息。提示:Could not start ZK at requested port of 2181. ZK was started at port: 2182. Ab ...
分类:
其他好文 时间:
2019-12-28 20:45:17
阅读次数:
99
1.一些缩写 PID = 进程ID (由内核根据延迟重用算法生成)PPID = 父进程ID(只能由内核修改)PGID = 进程组ID(子进程、父进程都能修改)SID = 会话ID(进程自身可以修改,但有限制,详见下文)TPGID= 控制终端进程组ID(由控制终端修改,用于指示当前前台进程组) 2.关 ...
分类:
系统相关 时间:
2019-12-28 09:50:58
阅读次数:
109
Docker日志 当一个容器启动的时候,它其实是docker deamon的一个子进程,docker daemon可以拿到容器里面进程的标准输出,然后通过自身的LogDriver模块来处理,LogDriver支持的方式很多,默认写到本地文件,也可以发送到syslog等。 Docker会默认收集应用程 ...
分类:
其他好文 时间:
2019-12-24 20:44:36
阅读次数:
103
静态链接库和动态链接库的区别 一个进程可以通过调用waitpid函数来等待它的子进程终止或者停止 Debug和Release的区别 临界区互斥量信号量事件进程互斥与同步 进程有哪几种状态,状态转换图,及导致转换的事件 进程由运行态进入就绪态和阻塞态的原因 进程切换 进程调度算法 死锁 哲学家就餐问题 ...
分类:
编程语言 时间:
2019-12-24 09:46:17
阅读次数:
111
课程回顾: 线程池 队列:同一进程内的队列 先进先出 后进先出 优先级队列 线程池中的回调函数是谁在调用? 线程池中的回调函数是子线程调用的,和父线程没有关系 进程池中的会点函数是父进程调用的,和子进程没有关系 今日内容: 为什么要有协程? 因为想要在单线程内实现并发的效果 因为CPthon有GIL ...
分类:
其他好文 时间:
2019-12-21 13:48:17
阅读次数:
67
11 shell中内置关键字[[]]:检查条件是否成立 1、小括号、圆括号() 1.1 单小括号() 用途 命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。 括号中多个命令之间用分号隔开,最后一个命令可以没有分号, 各命令和括号之间不必有空格。 22 ...
分类:
系统相关 时间:
2019-12-19 20:56:45
阅读次数:
148
僵尸进程: 每个进程结束以后会释放所占用的资源,但是还是会保留少许的状态资源以供其父进程查看子进程曾经运行时候状态。 一旦父进程通过wait()或者waitpid()检查了子进程曾经运行的状态,内核就会释放子进程占用的资源。 如果子进程已经结束运行,但是父进程还在运行。则这个时候子进程就会变为僵尸进 ...
分类:
系统相关 时间:
2019-12-19 14:39:41
阅读次数:
109
主要介绍Linux下的socket系统调用。解析bind和listen函数的源码 ...
分类:
其他好文 时间:
2019-12-19 12:40:44
阅读次数:
66