OS知识点简介(二)

进程

进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
引用进程的目的是更好地使多道程序并发执行,提高资源利用率和系统吞吐量。
系统利用进程控制块(PCB)来描述进程的基本情况和运行状态等。进程实体包括程序段,相关数据段,PCB。

  • 创建进程,就是创建进程实体中的PCB
  • 撤销进程,就是撤销进程的PCB
  • PCB是进程存在的唯一标志

PCB主要包括:进程描述信息,进程控制和管理信息,资源分配清单,处理机相关信息
进程的状态:运行态,就绪态,阻塞态,创建态,结束态
进程通信
在这里插入图片描述

  • 共享存储:在通信的进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行读写实现进程减信息交换
  • 消息传递:进程通过系统提供的发送消息和接收消息两个原语进行数据交换
  • 管道通信:管道是指用于连接一个读进程和一个写进程以实现它们之间的通信的一个共享文件(pipe文件)
    在这里插入图片描述

线程

引入线程的目的则是减小程序在并发执行时所付出的时空开销,提高OS的并发性能。是基本的CPU执行单元,也是程序执行流的最小单元。
在这里插入图片描述

  • 由线程ID,程序计数器,寄存器集合和堆栈组成
  • 自己不拥有系统资源,与其他线程共享进程的全部资源。同一进程中的线程完全共享进程的地址空间和全局变量。
  • 线程拥有自己的上下文(寄存器),栈
    线程的状态:执行,就绪,阻塞状态

每个线程有一个线程控制块TCB,包括:线程标识符,寄存器,线程运行状态,优先级,线程专有存储区,堆栈指针

用户级线程:有关线程管理的所有工作都由应用程序在用户空间中完成,内核意识不到线程的存在。但调度仍以进程为单位进行。
内核级线程:线程管理的所有工作是在内核空间内实现的。

调度算法

  • 先来先服务调度算法(FCFS):属于不可剥夺算法,简单但是效率低。对长作业有利,对短作业不利,有利于CPU繁忙型作业,不利于I/O繁忙型作业
  • 短作业优先调度算法(SJF):对长作业不利,可能导致长作业一直得不到调度(饿死)。平均等待时间,平均周转时间最少
  • 优先级调度算法:
    • 抢占式/非抢占式
    • 静态优先级/动态优先级
  • 高响应比优先调度:常用于作业调度,同时考虑了作业的等待时间和估计的运行时间,可以克服饥饿现象
    在这里插入图片描述
  • 时间片轮转调度算法
  • 多级队列调度算法:将不同类型的进程固定分配到不同的就绪队列
  • 多级反馈队列调度算法:动态调整优先级和时间片大小
    在这里插入图片描述

进程切换

进程切换是在内核的支持下实现的。

  • 上下文切换:保存当前进程状态并恢复另一个进程的状态。上下文是指某时刻CPU寄存器和程序计数器的内容
    在这里插入图片描述
    用户态和内核态之间的切换称为模式切换,而不是上下文切换,因为没有改变当前的进程。上下文切换只能发生在内核态。

同步与互斥

同步:为完成某种任务,不同进程之间因为协调工作次序而等待,传递信息所产生的制约关系。
互斥:当一个进程进入临界区使用临界资源时,另一个进程必须等待。

死锁

死锁产生的原因

  • 系统资源的竞争
  • 进程推进顺序非法
  • 死锁产生的必要条件:互斥,不剥夺(非抢占),请求并保持等待,循环等待
    在这里插入图片描述

死锁的处理策略:破坏死锁发生的4个必要条件之一,或允许死锁产生,但能检测出死锁并恢复

  • 死锁预防:设置某些限制条件(破坏4个必要条件)
  • 死锁避免:在资源的动态分配过程中,防止系统进步不安全状态,以避免发生死锁。
  • 死锁检测及接触
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长命百岁️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值