操作系统复习第二弹进程管理

这篇博客详细探讨了操作系统中的进程与线程管理,包括进程与线程的基本概念、状态转换、线程实现、进程间通信以及CPU调度与上下文切换。深入讲解了同步与互斥、死锁的基本概念及防止策略,提供了丰富的概念解析和实现方法。
摘要由CSDN通过智能技术生成

目录

进程与线程:

进程与线程的基本概念:

进程与线程的状态与转换:

线程的实现,内核支持的线程,线程库支持的线程:

进程和线程的组织与控制:

进程间通信,共享内存,消息传递,管道:

CPU调度与上下文切换:

调度的基本概念:

调度的目标:

调度的实现:

调度的时机与调度方式(抢占式和非抢占式):

闲逛进程:

内核级线程与用户级线程调度:

典型调度算法(内容较简单可删除):

上下文及其切换机制:

同步与互斥:

同步与互斥的基本概念:

基本的实现方法:

软件方法:

硬件方法:

锁:

死锁:

死锁的基本概念:

死锁的预防:

死锁的避免:

死锁检测和解除:


进程与线程:

进程与线程的基本概念:

进程是进程实体的运行过程,是系统资源分配和调度的一个独立单位。

线程是一个基本的CPU执行单元,也是程序执行流的最小单位。可以理解为轻量级进程。

引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度。

引入线程之后,进程是资源分配的基本单位,线程是调度的基本单位。

进程与线程的状态与转换:

进程的状态:

  • 运行状态:拥有CPU和其他所需的资源。
  • 就绪状态:不拥有CPU,但是拥有其他所需的资源。
  • 阻塞状态:不拥有CPU和其他所需的资源。
  • 创建状态:操作系统为新进程分配资源创建PCB。
  • 终止状态:操作系统回收进程的资源,撤销PCB。

 进程状态的转化:

  • 就绪态--运行态:进程被调度。
  • 运行态--就绪态:时间片到,或CPU被其他高优先级的进程抢占。
  • 运行态--阻塞态:等待系统分配,或等待某事发生。(主动行为)
  • 阻塞态--就绪态:资源分配到位,等待的事情发生。(被动行为)
  • 创建态--就绪态:系统完成创建进程的任务。
  • 运行态--终止态:进程运行结束,或运行过程中遇到不可修复的错误。

进程的大部分时间都是处于:运行态,就绪态,阻塞态。

单核CPU的情况下,同一时刻只会有一个进程处于运行态,多核CPU的情况下,可能会有多个进程处于运行状态。 

需要注意的是,不可能直接从阻塞态转化为运行态,也不可能直接由就绪态转化为阻塞态。显然,进入阻塞态是系统主动请求的,只能通过在运行态的时候实现。

线程的状态与转化与进程类似,但是只考虑就绪,运行,阻塞这三种情况。

线程的实现,内核支持的线程,线程库支持的线程:

线程的实现方式包括:

  • 用户级线程:从用户视角能看到的线程,由线程库实现。
  • 内核级线程:从操作系统视角看到的线程,由操作系统实现(内核级线程才是处理机分配的单位)。
  • 组合方式:上述两种方式的综合。

用户级线程,也就是线程库支持的线程,由应用程序通过线程库实现,所有线程的管理工作都有应用程序负责,包括线程的切换。线程切换可以在用户态下完成,不需要操作系统的干涉。 

内核级线程又称为内核支持的线程,内核级线程的管理工作由操作系统内核完成。内核级线程的切换必须在核心态下进行。 

进程和线程的组织与控制:

进程的组织方式:

链接模式:按照进程状态将PCB分为多个队列,操作系统持有指向各个队列的指针。
索引方式:根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引表的指针。

进程控制就是要实现进程状态的转化:

进程控制用原语来实现,原语用开/关中断来实现,是一种特殊的程序,执行是一气呵成不可中断。

相关原语包括:

  • 进程的创建。
  • 进程的终止。
  • 进程的阻塞。
  • 进程的唤醒。
  • 进程的切换。 

进程间通信,共享内存,消息传递,管道:

进程是分配资源的基本单位,因此各进程拥有的内存地址空间相互独立。

共享存储包括:基于数据结构的共享和基于存储区的共享。基于数据结构的共享是比较低级的通信方式,基于存储区的共享是比较高级的通信方式。

消息传递:进程间的数据交换以格式化的消息为单位,进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换。

消息传递有两种方式,分别是:直接通信方式,和间接通信方式,间接通信方式以“信箱”作为中间实体进行消息传递。

管道通信:管道是一个特殊的共享文件,又名pipe文件,其实就是在内存中开辟出来一个大小固定的内存缓冲区。

  • 管道只能采用半双工通信,某一段时间内,只能实现单向传输,如果要实现双向传输,需要设置两个通道。
  • 各个进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丘小羽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值