操作系统 第二部分 进程、线程

本文深入探讨操作系统中的进程和线程概念,涵盖进程的定义、状态转换、PCB、进程通信(共享存储、管道、消息传递)以及线程的特性、分类和同步互斥问题。重点解析了各种互斥软件和硬件实现方法,如信号量机制,为理解操作系统核心机制提供了详细笔记。
摘要由CSDN通过智能技术生成

系列文章:

  • 第一部分 背景知识
  • 第二部分 进程、线程


  • 加油呀各位!
    这篇文章是我学操作系统做的笔记,适合要复习的同学看
    在这里插入图片描述
    在这里插入图片描述

    进程

    进程的定义

    进程实体:也叫进程映像,简称进程。程序段(放代码)、数据段(放程序运行时的数据)、PCB(进程控制块,放描述进程的各种信息(操作系统通过这个来管理进程),是进程存在的唯一标志)组成了进程。

    进程是进程实体的运行过程,是系统进行资源分配和调度的基本单位。

    PCB里有:进程标识符(系统分配的唯一ID)、处理机状态(各种寄存器值)、进程调度信息、进程控制信息(进程当前状态,进程优先级)

    进程的组织

    分为链接方式和索引方式。
    按进程状态将PCB分为队列或索引表。
    在这里插入图片描述

    进程的特征

    动态性(是程序的一次执行过程)、并发性(可并发执行)、独立性(是独立运行获得资源接收调度的基本单位)、异步性(各进程各自独立运行)、结构性(每个进程配置PCB)

    进程的状态

    三种基本状态:
    运行态(占有CPU)、就绪态(有运行条件,没有空闲CPU)、阻塞态(等待某事件而暂时不能运行)

    另外两种状态:
    创建态:新建进程时操作系统为进程分配资源、初始化PCB
    终止态:从系统撤销,回收资源、撤销PCB

    进程状态的转换

    在这里插入图片描述

    进程控制

    进程控制的定义:实现进程状态的转换

    用原语实现进程控制,特点是不允许中断(通过关中断、开中断指令来实现)

    相关原语:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    进程通信

    进程通信:进程之间的信息交换
    为了安全,一个进程不能直接访问另外一个进程的地址空间。
    操作系统提供三个方法:共享存储、管道通信、消息传递

    共享存储

    共享空间是互斥的,只能一个进程访问:基于数据结构(慢、限制多)、基于存储区的共享(数据形式位置都由进程控制,速度快,高级通信方式)

    管道通信

    管道其实就是一个缓冲区。一个管道只能半双工通信,写满时不能再写,读空时不能再读,没写满不能读,没读空不能写。
    在这里插入图片描述

    消息传递

    直接通信方式、间接通信方式(信箱)
    在这里插入图片描述

    线程

    线程的概念

    传统的进程只能串行执行一系列程序,引入线程后能增加并发度。

    线程是基本的CPU执行单元,程序执行流的最小单位。引入线程后,进程只作为资源分配的基本单位,线程是调度基本单位。

    引入线程后,线程也能并发,提升并发度。
    引入线程后,并发带来的系统开销减小(切换进程系统开销很大)。

    线程的属性

    在这里插入图片描述

    线程分类

    用户级线程:对用户不透明,对操作系统透明。所有的线程管理工作都由应用程序负责,无需操作系统干预。

    内核级线程:线程管理工作有操作系统内核完成,包括线程调度、切换都要操作系统来完成。(内核级线程才是处理机分配的单位!)

    多线程模型

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    进程同步和互斥

    概念

    进程同步:进程具有异步性(各进程独立运行,不可预知),同步也叫直接制约关系,协调多个进程的工作次序

    进程互斥:对临界资源的访问是互斥的,互斥也叫间接制约关系。

    进程互斥四个部分:进入区、临界区、退出区、剩余区

    进程互斥的原则:空闲让进、忙则等待、有限等待、让权等待。

    互斥的软件实现

    软件实现方法:单标志法、双标志先检查、双标志后检查、Peterson算法

    单标志法

    每个进程进入临界区的权限只能被另一个进程赋予。实现同一时刻最多只有一个进程进入临界区。

    缺点:违背空闲让进原则,如果当前进程一直不进入临界区,就不能把权限交给另外一个进程。
    在这里插入图片描述

    双标志先检查法

    设一个布尔型数组flag[]用来放每个进程想要进入临界区的意愿,每个进程想进入临界区之前先循环等到没有别的进程想进入临界区。

    缺点:违背忙则等待原则,先检查后上锁,可能出现两边同时检查后两边同时访问临界区的问题。
    在这里插入图片描述

    双标志后检查法

    先上锁后检查。
    缺点:违背了空闲让进和有限等待的原则,可能出现两个进程长期无法访问临界资源。

    Peterson算法

    如果两个进程都想进入临界区,尝试“孔融让梨”,让对方先使用临界区。
    在这里插入图片描述
    缺点:不遵循让权等待原则,发生忙等。

    互斥的硬件实现

    中断屏蔽方法

    利用开中断、关中断指令,不发生进程切换。

    缺点:不适用多处理机、只适用操作系统内核进程,不适用用户进程。
    在这里插入图片描述

    TestAndSetLock指令

    简称TS指令或TSL指令,不允许被中断,只能一气呵成。
    用lock表示当前临界区是否上锁。

    缺点:不满足让权等待原则,暂时无法进入临界区的进程会一直占用CPU,导致忙等。
    在这里插入图片描述

    swap指令

    也叫exchange指令或XCHG指令。
    逻辑和TSL一样。

    在这里插入图片描述

    信号量

    信号量机制:信号量是用来表示系统某种资源的数量,可以用系统提供的一对原语wait和signal来操作信号量,从而实现进程互斥和同步。

    信号量:整型信号量

    整型信号量

    记录型信号量

    在这里插入图片描述

    信号量机制实现进程互斥

    信号量机制实现进程同步

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值