操作系统学习笔记
目录
1. 操作系统接口
系统调用
POSIX:IEEE 制定的针对 UNIX 的一个操作系统接口调用标准族
内核态可以访问任意数据,用户态不能访问内核数据
2. 多进程图像
进程:进行(执行)中的程序,进程和静态程序不一样!
进程 = 资源 + 指令执行序列
多进程:操作系统将启动的进程记录好,按照合理的次序推进(分配资源,进行调度)。
PCB(Process Control Block) :用来记录进程信息的数据结构(执行入口 PC,ax,bx 等),为了在切换进程返回以后能够继续向下执行。
如何形成多进程图像:
- 读写 PCB,OS 中最重要的结构
- 要读写寄存器完成切换
- 要写调度程序
- 要有进程同步与合作
- 要有地址映射
3. 线程
线程保留了并发的优点,避免了进程切换代价。实质就是映射表不变而 PC 指针变。
TCB(Thread Control Block) :记录线程函数调用栈的数据结构
每个线程拥有自己的函数调用栈
3.1. 用户级线程
TCB 在用户态,用户自己封装的线程,thread_create 与 yield 都是用户程序,由用户自己定义什么时候进行线程转让(yield)。
3.2. 内核级线程
TCB 在内核中,ThreadCreate 是系统调用,会进入内核,Yield()用户不可见,调度点由系统决定,在系统中称为 Schedule。
4. 进程同步与信号量
临界区:进程中同一时间只允许一个进程执行的一段代码
5. 段页结合的内存管理
支付宝
微信