- 博客(5)
- 资源 (4)
- 收藏
- 关注
原创 PCB的信号集
每一个进程都有一个PCB(进程控制块),在PCB中有两个信号集,分别是未决信号集和阻塞信号集。 其中未决信号集是记录有没有信号来临,一旦有信号来临则该信号位置1,如下图中有2号信号来临,则将2号未决信号集置1,然后未决信号集再将该信号像阻塞信号集传递,如果对应2号信号集的位是1,则表示阻塞,该信号被阻塞在了阻塞信号集上无法到达句柄,该信号处于未决态。若阻塞信号集的2号信...
2018-08-24 14:44:30 636
原创 pipe管道通信原理
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信管道是一种最基本的IPC机制,由pipe函数创建:#include <unistd.h>int pipe(int filedes...
2018-08-03 22:50:26 23862 3
原创 僵尸进程和孤儿进程
每个进程都是由用户空间和系统空间组成,pcb在系统空间。一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。我们知道一个进程的退出状态可以在Shell中用特殊...
2018-08-03 20:55:35 483
原创 cpu如何运行进程
cpu主要是由运算器、寄存器、控制器和译码器组成,当我们运行一段代码的时候,代码被加载进寄存器中,(单cpu单核的情况)当有另一个进程需要运行的时候,第一个进程就会被存入pcb的栈中,等到一定的时间在重新加载到寄存器中运行。 一般情况下,cpu处理数据能力有1Ghz=1ns,多进程的时候cpu采取分时复用的方式进行,每个进程10ms或者其他时间的进行交换,由于运行速度很快所...
2018-08-02 16:19:10 1998
原创 虚拟内存
每一个进程在打开时,都各自有自己的pcb(进程控制块),pcb相当于一个指针,指向文件描述符表,假如一个进程要打开一个文件就会产生一个句柄(文件描述符),该句柄通过pcb指向文件描述符表,通过文件描述符表的内容在磁盘中找到你想打开的文件。pcb在内核中,每一个进程打开时都会有内核层和用户层,其中内核层是不对用户开放的,其中包含命令行参数和环境变量。用户层就是我们常见的堆栈常量...
2018-08-02 15:08:13 3704
mt-metis-0.6.0tar.gz
2018-05-14
petsc-3.8.4.tar.gz
2018-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人