随笔分类 - 操作系统
摘要:1. Linux中进程空间的分配情况如下: 从上图可以看出,进程的空间分配:与进程相关的数据结构(页表、内核栈、task) > 物理内存 > 内核代码和数据 > 用户栈 > 共享库的内存映射区 > 运行时堆 >未初始化数据段.bss > 已初始化数据段.data > 代码段.text 2. 进程的堆
阅读全文
摘要:1. union的总大小等于它的最大字段的大小: union u1 { char c; int i[2]; double d; } u1 的大小等于double的大小,即:8。 2. union的应用场景: 当提前知道一个数据结构中两个不同字段的使用是互斥的,那么将两个字段声明为union的一部分,
阅读全文
posted @ 2018-02-10 19:14
IvanB.G.Liu
摘要:1. 死锁: 一个进程集合中,每一个进程都在等待其他进程释放资源,那么所有进程都将被阻塞,即进程集合中所有进程死锁。 2. 死锁产生的条件: (1)互斥条件:资源一旦分配给一个进程,其他进程无法使用,只能阻塞以等待该进程释放资源。 (2)占有和等待条件:一个进程可以同时占有多个资源。 (3)不可抢占
阅读全文
摘要:1. 竞争: 当多个进程同时读写共享数据时,会出现进程竞争。 2. 临界区: 对共享内存进行访问的程序片段成为临界区。 3. 睡眠与唤醒: sleep() :将进程睡眠,即阻塞 wakeup(a):将a进程唤醒,即从阻塞态转为就绪或者运行态 4. 信号量: 使用整型变量来累计唤醒次数,信号量的取值为
阅读全文
摘要:1. 进程: (1)进程模型:一个进程就是一个程序的执行实例,程序是静态的,进程是动态的。一个进程有一个地址空间和一个控制线程,其中地址空间包含有:程序计数器、寄存器、变量的当前值。当一个进程被挂起时,进程的物理程序计数器值被保存在该进程的程序计数器中。下次进程运行时,再从程序计数器中取出计数值装入
阅读全文

浙公网安备 33010602011771号