王道操作系统笔记-内存(22)– 内存管理4 动态分区分配算法
王道操作系统笔记-内存(21)– 内存管理3 内存空间的分配与回收 连续分配管理方式 连续分配指的是为用户进程分配的内存空间必须是连续的。 单一连续分配 在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据。用户区用于存放用户进程相关数据。内存中只能有一道用户程序,用户程序独占整个用户区空间。 优点:实现简单。无外部碎片。...
王道操作系统笔记-内存(20)– 内存管理2 内存空间的扩充 覆盖技术 这个非常像笔记c++内存管理12~13中用union联合体来优化next指针的操作 覆盖技术的思想:将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。内存中分为一个“固定区”和若干个“覆盖区”。需要常驻内存的段放在“固定区”中,调入后就不再调出(除非运行结束)。不常用的段放在“覆盖...
王道操作系统笔记-内存(19)– 内存管理1 操作系统如何进行内存管理 操作系统负责内存的分配和回收 操作系统需要提供某种技术从逻辑上对内存空间进行扩充(虚拟内存) 操作系统需要提供地址转换功能。负责程序的逻辑地址与物理地址的转换。 操作系统需要提供内存保护功能。保证各个进程在各自的储存空间内运行,互不干扰。 内存保护 方法一:在CPU中设置一对上、下...
王道操作系统笔记-内存(18)– 内存 逻辑地址和物理地址 物理地址:内存的真实地址。 逻辑地址:相对于进程的起始地址而言的地址。 举例:如果CPU把一个进程的起始地址分配在物理地址的100位。那么该进程如果有一条指令:往地址为79的储存单元中写入10。这条指令中的地址为逻辑地址。所以对应着物理地址的179位。 物理地址和逻辑地址的装换 绝对装入 绝对装入:在编译时,如果...
王道操作系统笔记-进程(17)– 死锁的检测和解除 死锁的检测 死锁的解除 总结
王道操作系统笔记-进程(16)– 避免死锁 银行家算法和安全序列
王道操作系统笔记-进程(15)– 预防死锁 破坏互斥条件 只有对必须互斥使用的资源的争抢才会导致死锁。 如果把只能互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态。比如: SPOOLing技术。操作系统可以采用SPOOLing技术把独占设备在逻辑上改造成共享设备。比如,用SPOOLing技术将打印机改造为共享设备… 缺点:并不是所有的资源都可以被改造成可共享使用的资...
王道操作系统笔记-进程(14)– 死锁 死锁、饥饿、死循环的区别 死锁:各进程互相等待对方手里的资源,导致多个进程都阻塞,无法向前推进的现象。 饥饿:由于长期得不到想要的资源,导致某个进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”。 死循环:某进程执行过程中一直跳不出某个循环的现...
C++内存管理 - 12~13 此笔记需要等待更新和确认。 Per-class allocator - 自己的内存池(1) new char[chunk]是因为char是1个字节。举例,char[100]就是100字节。所以char[chunk]就是分配了对应大小的内存 实现过程 预申请一个内存区chunk,将内存中按照对象大小划分成多个内存块block。 维持一个空...