操作系统9-CPU调度
操作系统8-线程
线程管理
线程控制块 TCB
类似PCB
线程优点
一个进程可以同时存在多个线程,各个线程之间可以并发执行,各个线程之间可以恭喜那个地址空间和文件资源。
线程缺点
一个线程崩溃会导致所属进程的所有线程崩溃。
进程与线程
进程是资源分配单位,线程是CPU调度单位
进程拥有完整的资源平台,线程只独享其中的寄存器和栈
线程也有就绪阻塞执行三种状态和状态转化关系
线程能减少并发执行的时间和空间开销,线程创建终止块,切换快,共享资源可直接进行不依赖内核通信。
用户线程和内核线程
用户线程操作系统看不到,内核线程操作系统看得到
用户线程
线程的创建终止同步和调度都是线程库实现的。TCB在进程内部
用户线程的缺点
当一个线程阻塞以后,整个进程都阻塞了,因为操作系统看不到用户心线程,只能看到进程。
操作系统7-进程
进程管理
进程的组成
代码+数据+程序计数器中的值,堆和栈,一组资源(打开的文件)
进程的特点
动态创建,并发或者并行,独立(执行的正确性不受其他进程影响)
进程控制块(PCB)
操作系统为每个进程维护了一个进程控制块,用来保存与该进程有关的各种状态信息。是进程存在的唯一标示。
包含了进程标识信息(父进程,用户标识), 处理器状态信息保存区(用户可见寄存器,PC寄存器,程序状态字,栈指针), 进程控制信息(调度和状态信息、进程键通讯信息,储存管理信息,进程所用资源信息,数据结构连接信息)
PCB的组织方式: 链表或者索引表
进程的创建的时机
系统初始化, 用户的请求,进程的请求
操作系统5-虚拟内存
虚拟内存
覆盖技术
把一些不会相互调用的函数分配到相同的地址空间,当需要调用的时候覆盖内存就可以了。
需要程序员来设计,费时费力,模块的覆盖是时间换空间
交换技术
让暂时不运行的程序交换到磁盘中,当使用的时候换回内存。
只在内存不够的时候交换,磁盘的交换区的空间必须足够大,换出然后换入的时候物理内存不一定一样了,但是我们可以用虚地址解决这个问题。
虚存技术
像覆盖技术一样不把程序所有的内容都放入内存,想交换技术那样,只对进程的部分内容进行交换,
操作系统4-非连续内存分配
非连续内存分配
优点: 一个程序的物理空间是非连续的,更好的内存利用,允许共享代码与数据(共享库等),支持动态加载和动态链接
分段机制
程序等栈段、堆段、数据段、等等分散到多个物理空间,
硬件堆分段寻址方案
段号+偏移量,高位为段号,低位为偏移量,用段表来映射,段表中存了起始地址和长度信息,CPU可以在访问前做安全检测,
分页机制
让段的长度固定,就成了分页机制。
页帧
物理内存被分割为大小相等的帧
页表
dirtybit+residentbit+clockbit+页帧号
分页机制的性能
访问一个内存单元需要两次访问: 页表+数据
页表太大怎么办,多个程序多个页表,更大了,这个不能放到cpu,放到内存又会很慢