补充知识点
字数
1343 字
阅读时间
6 分钟
分时系统
- 分时系统都有人机交互功能,这是分时系统的优点
响应时间
- 进程从到达就绪状态到该进程第一次得到CPU(处理机)响应的时间
进程与线程
进程是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础
线程是操作系统进行运算调度的最小单位,是包含在进程之中的,是进程中的实际运行单位
设备分配不会引起进程创建是因为设备分配是在进程创建之前完成的。在操作系统启动的时候,会创建一些系统进程和线程,其中就包括 了设备管理进程和线程。这些进程和线程负责设备的初始化和管理,包括设备驱动程序的加载、设备的注册、设备的分配和释放等操作。 因此,当应用程序需要使用某个设备时,只需要向设备管理进程或线程发送请求即可,设备管理进程或线程会根据请求将设备分配给应用 程序使用,而不会引起进程的创建。
在单处理机系统中,进程是并发执行的,是不能并行的,其它CPU与设备,设备与设备,CPU与通道都是可以并行的。
- 通道有自己的处理机 一般来说,线程的切换是在核心态下完成的,所以用户态中发起线程的切换会中断,进入核心态,所以需要内核的支持
但是其实用户级的线程切换时,不需要内核的支持
- 通道有自己的处理机 一般来说,线程的切换是在核心态下完成的,所以用户态中发起线程的切换会中断,进入核心态,所以需要内核的支持
用户级的线程切换不需要进入核心态
记住一句话:
只有内核级线程(系统支持的线程)才是处理机分配的单位
临界区、临界资源
- 临界资源:一次仅允许一个进程使用的资源
- 临界区:在每个进程中访问临界资源的那一段代码程序
- 临界区的作用:
PV操作
执行P操作后,如果S<0,则说明系统资源已经分配完毕,因此该进程会调用block原语来进行自我阻塞,即进入阻塞队列
如果执行V操作后,S>0,则说明等待队列(阻塞队列)中没有进程,则不使用wakeup原语;若S<=0,则说明等待队列中仍有进程在等待/阻塞,则将执行wakeup原语,将阻塞队首的进程释放,并将系统资源分配给该进程
实现进程互斥:
- 如果有多个临界资源,则要设计多个互斥信号量
PV操作代码设计:
- 实现进程同步:前P后V,
- 如图:“前操作”是指必须执行在前的操作,所以在前操作之后需要进行V操作,产生可用资源,或释放阻塞进程;“后操作”同理
- 实现进程的前驱关系:
- 实现进程同步:前P后V,
生产者-消费者问题
- mutex是互斥信号量,就相当于互斥锁,可以将mutex的初始值理解为进入临界区的名额
- P操作就是wait操作
- V操作就是signal操作
死锁
- 申请资源而不会发生死锁:
- 不可以整除情况下:最多申请资源数 = (资源总数/进程数)+1
- 可以整除情况下:最多申请资源数 = 资源总数/进程数
分页存储管理
- 页号 = 逻辑地址 / 页面长度(只看整数位)
- 页内偏移地址 = 逻辑地址 % 页面长度
- 起始地址(物理地址) = 逻辑地址所在的页面所对应的内存页框的起始地址
- 物理地址 = 块号 * 块大小 + 块内地址(页内偏移地址)
- 逻辑地址转为物理地址:
- 如果存在页表,则将计算得到的页号替换成物理块号即可将逻辑地址转换为物理地址
银行家算法
- Need = Max - Allocation
- 如果进程向系统请求资源,那么先判断是否满足
,如果满足条件,则说明请求的资源未超过最大声明资源数 - 再判断是否满足
,如果满足,则说明系统仍有足够的资源可以满足该请求,则分配给该进程后,再判断系统此时是否安全,如果不安全,则回溯 - 请求成功后:
- Need = Need - Request
- Available = Available - Request
- Allocation = Allocation + Request
- 再判断是否满足
贡献者
freeway348