CS-Notes 笔记的笔记
附上 cs-Note的链接
概念篇
计算机操作系统
进程与线程
- 进程是资源分配的基本单位以及系统调度的单位,线程是独立调度的基本单位
- 进程控制块(PCB) :描述进程的基本信息和运行状态
- 创建或撤销线程的时候,系统都要回收资源,开销很大。但是创建或销毁进程时开销较小。另外,进程切换需要执行进程CPU环境的保存以及新调度进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器的内容
- 线程状态:
- 就绪
- 运行
- 等待/阻塞
进程同步
同步与互斥
- 同步:由于合作产生的直接制约关系,使得进程有一定的先后执行关系
- 互斥:多个进程只有一个进程能进入临界区
信号量与互斥量
- 信号量是限制同时进入临界区的线程数量的整形变量,可以进行PV操作。当信号量的值为 1 时,则成为了 互斥量。
进程通信
- 同步与通信:通过进程通信才可以更好地完成进程的同步
管道
- 匿名管道
- 只限制于父子进程以及兄弟进程中使用
- 只支持半双工通信。(在使用读管道时,就不能写;在使用时,两个文件描述符需要关闭一个)
- 命名管道
- 可以在父子进程外使用
消息队列
- 相对于FIFO(命名管道),有以下优点
- 可以根据消息类型选择性进行接收
- 独立于读写进程,不需要读写进程自己处理同步
信号量
共享内存
- 将 同一个文件加载到内存,将内存地址 映射到各个进程的地址空间,从而实现多进程对一各内存块的访问。注意:需要师兄信号量来控制内存的读写。
套接字(SOCKET)
- 可以跨机器进行通信
内存管理
分页
- 将内存分为固定大小的页面,需要经过 **内存管理单元(MMU)**将逻辑地址映射到物理地址。
- 特点:无外碎片-即页面与页面之间没有空间,但是存在内碎片(即页面之内有空余的空间)
分段
- 分段的产生,可以解决一些问题:
- 安全性和共享内存:相同类型的类型在同一个段,可以限制对其的操作
- 溢出保护:因为段是有范围的,可以识别是否访问段外的地址
- 减少重新编译代价:因为不同类型的数据放在不同的段,因此其中一个段改变,就不需要所有的段都重新编译