操作系统-第二章(上)

本文介绍了操作系统中进程的概念,包括程序顺序执行和并发执行的特征。进程是具有独立功能的程序在数据集合上的一次运行活动,具有动态性、并发性、调度性、异步性和结构性。详细阐述了进程的状态(运行、就绪、阻塞)及其转换,并讨论了进程的组成,特别是进程控制块(PCB)的作用和内容。此外,还提及了进程的组织方式、创建、终止、阻塞和唤醒的过程,以及Linux进程管理中的状态和模式。最后,文章涵盖了线程的概念、状态以及用户级线程和核心级线程的实现方式,以及进程间同步与互斥的概念和临界区问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1. 进程的概念

2.1.1. 程序顺序执行的特征

  • 顺序程序设计:一个作业完成了,后一作业才能进入内存,并得以执行。各个作业的程序都是一个语句一个语句的按顺序构成。
  • 特点(3个):
  • ①顺序性:上一个动作结束之后才开始
  • ②封闭性:只有程序本身可以的动作才能改变程序的运行环境
  • ③可在现性:程序的执行结果与程序运行结果的速度无关。

2.1.2. 程序并发执行的特征

  • 多道程序设计:并发执行,提高系统资源利用率和增加作业吞吐量(作业吞吐量:指在给定时间间隔内所完成作业的数量 )
  • 特点(3个)
  • ①失去封闭性:资源的使用状态受到并发程序的共同影响;
  • ②程序与计算不再一一对应;
  • ③并发程序在执行期间相互制约;

2.1.3. 进程的概念

  • 进程: 具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位(进程定义为:程序在并发环境中的执行过程);
  • 进程特征(5个)
    1. 动态性:进程是程序的执行过程,可以处于多种不同状态
    1. 并发性;
    1. 调度性:进程是申请资源的单位,也是被调度的单位;
    1. 异步性;
    1. 结构性:进程由程序段、数据段和控制结构等组成;

2.2. 进程状态描述及组织方式

2.2.1. 进程的状态(3个)

  1. 运行态:指当前进程已分配到CPU,他的程序正在处理机执行时的状态(不能大于CPU的个数);
  2. 就绪态:指进程已具备运行条件,但因为其他进程占用了CPU,所以它暂时不能运行而等待分配CPU的状态;
  3. 阻塞态:指进程因等待某种事件发生而暂时不能运行的状态;

进程状态的转换:

  1. 就绪-》运行
  • 分配到了CPU,因此改变状态;
  1. 运行-》阻塞
  • 正在运行的进程因某种条件不满足而放弃对CPU的占用;
  1. 阻塞-就绪
  • 处于阻塞状态的进程所等待的事件发生了,如读数据的操作完成;
  1. 运行-》就绪
  • 正在运行的进程用完了本次分配给它的CPU时间片;

    进程状态转换图
    在这里插入图片描述

2.2.2 进程的组成

1.进程映像:由程序、数据集合、栈和PCB(进程控制块) 四部分组成;
  • PCB进程控制块:描述进程的当前状态、本身特性,对资源的占用及调度信息等;
2.进程控制块的组成
  • 进程名:它是唯一的标志对应进程的一个标识符或数字;
  • 特征信息:
  • 进程状态信息;
  • 调度优先权:进程获取CPU的优先级别;
  • 通信信息;
  • 现场保护区;
  • 资源需求、分配和控制方面的信息;
  • 进程实体信息:
  • 族系关系:反映父子进程的隶属关系;
  • 其他信息:如文件信息,工作单元等。
3. 进程控制块的作用: 进程控制块时进程映像中最关键的部分,每个进程都有唯一的程序控制块;
  • 注意:PCB是进程存在的唯一标志;

2.2.3进程组织方式(三种)

  1. 线性方式:
  • 操作系统预先确定整个系统中同时存在的进程的最大数目,然后静态分布空间,把所有进程的PCB都放进整个表中;
    • 缺点:限定同时存在进程的最大数目,无法 创建新的进程,要对整个表扫描,降低了调度效率;
      在这里插入图片描述
  1. 链接方式:
  • 按照进程的不同状态分别放在不同的队列中(单CPU状态下);
    • 运行状态只能一个,指针指向它的PCB;
    • 处于就绪态排成一个队列,就绪队列指针指向该队列的第一个PCB,最后一个PCB的拉链指针置为0,表示结尾(先进先出策略);
    • 阻塞队列可以有多个,当满足某个等待条件时,把对应阻塞队列上的PCB送到就绪队列中。
      -在这里插入图片描述
  1. 索引方式:
  • 利用索引表记载相应状态进程的PCB地址,状态相同的进程的PCB组织在同一个索引表中,每个索引表的表目中存放该PCB的地址。
  • 各索引表在内存的起始地址放在专用的指针单元中。
  • 在这里插入图片描述

2.3进程管理和有关命令

2.3.1 进程图和进程管理

1.进程图:
  • 众多进程的族系关系:由父进程创建子进程,子进程在创建子进程,如此下去,从而构成一棵树形的进程族系图。
    在这里插入图片描述
2.进程创建
  • 一个进程可以动态创建新进程,前者为父进程,后者为子进程;

引发事件: ①:调度新的作业;②:交互式用户登录;③:操作系统提供服务;④:现有进程派生新进程

创建新进程要执行创建进程的系统调用:

  1. 申请一个空闲的PCB;(从系统的PCB表种找出一个空闲的PCB项,并指定一个唯一的进程标志号PID(进程内部名))。
  2. 分配资源给新进程。
  3. 初始化新进程的PCB;
  4. 将新进程加到就绪队列中;

一个进程派生新进程之后的可能执行方式:

  1. 父进程和子进程同时(并发)执行。
  2. 父进程等待它的某个或者全部子进程终止。

建立子进程的地址空间有两种方式:

  1. 子进程复制父进程的地址空间;
  2. 把程序装入子进程的地址空间。
3.进程终止
  1. 从系统的PCB表中找到指定的进程的PCB。若处于运行状态,则立即终止该进程的运行;
  2. 回收该进程所占用的全部资源。
  3. 若该进程还有子孙进程,则还要终止其所有子孙进程,回收它们所占有的全部资源。
  4. 释放被终止进程的PCB,并从原来队列中摘走。
4.进程阻塞
  1. 立即停止当前进程的执行。
  2. 将现行进程的CPU现场送到该进程的PCB现场保护区中保存起来,以便将来重新运行时回复此时的现场;
  3. 把该进程PCB中的现行状态由运行改为阻塞状态,把它插入具有相同事件的阻塞队列中。
  4. 转到进程调度程序,重新从就绪队列中挑选一个合适的进程投入运行;
5.进程唤醒
  1. 首先把被阻塞进程从相应的阻塞队列中摘走;
  2. 将现行状态改为就绪状态,然后把该进程插入到就绪队列中;
  3. 如果被唤醒进程比运行进程的优先级更高,则设置重新调度标志。
6. 进程映像的更换
  1. 释放子进程原来的程序和数据所占有的内存空间;
  2. 从磁盘上找出子进程所要执行的程序和数据;
  3. 分配内存空间,装入新的程序和数据;
  4. 为子进程建立初始的运行环境—主要对各个寄存器初始化,返回到用户态,运行该进程的程序;

2.3.2 Linux进程管理

1.Linux进程状态:
  1. 运行态;
  2. 可中断等待下状态(浅度睡眠);
  3. 不可中断等待状态(深度睡眠);
  4. 停止态;
  5. 僵死态;
    在这里插入图片描述
2.进程的模式和类型
  • 执行模式分为:用户模式和内核模式
  • 用户模式:运行用户程序,应用程序或内核之外的系统程序;
  • 内核模式:出现系统调用或者发生中断事件,运行系统(核心)程序;
    在这里插入图片描述

2.4线程概念

  • 线程是进程中执行运算的最小单位,也是执行处理机调度的基本单位
  • 一个进程可以包含一个或多个线程;
2.4.1线程的组成和状态
  • 线程的组成: 每个进程都有一个thread结构,及程序控制块,用于保存自己私有的信息;
  1. 一个唯一的线程标识符(PID);
  2. 描述处理器工作情况的一组寄存器的内容;
  3. 每个thread结构有两个栈指针,一个指向核心栈,一个指向用户栈;
  4. 一个私有存储区,存放现场保护信息和其他与线程相关的统计信息;
  • 线程的状态:
  1. 运行状态;
  2. 就绪状态;
  3. 阻塞状态;
  4. 终止状态: 当一个线程完成任务后,它占用的寄存器和栈等私有资源会被系统回收,并重新分配给另外的线程;
2.4.2 线程的实现方式------用户级线程和核心级线程
  1. 用户级线程: 在用户空间实现;

优点:

  • 切换速度快;
  • 调度算法可专用 ;
  • 可运行在任何操作系统上

缺点:

  • 阻塞问题;
  • 多处理器利用问题
  1. 核心级线程: 在核心空间实现;

优点:

  • 真正实现并行操作
  • 克服阻塞问题
  • 本身也可以是多线程的

缺点:

  • 控制转移开销大
  • 调度算法由核心确定,应用进程无法影响线程的切换

2.5 进程间的同步与互斥

2.5.1 进程间的三种关系

1.同步
  • 同步进程通过共享资源来协调活动,在执行时间的次序上有一定约束。如:SPOOLing系统;
2.互斥
  • 进程争用某些资源 ,由于竞争同一个物理资源而相互制约
3.通信
  • 各个进程通过名字彼此之间进行通信;

2.5.2竞争条件和临界区

竞争条件: 两个或多个进程同时访问和操纵相同的数据时,最后的执行结果取决于进程运行的精确时序;

  • 要避免竞争条件:禁止两个或两个以上的进程的同时进入临界区;

临界资源: 共享资源都有一个特征,一次仅允许一个进程使用;

临界区: :每个进程中访问临界资源的那段程序,简称CS区

进入临界区要遵循的准则:

  1. 任何两个进不能同时处于其临界区;
  2. 进程运行的速度具有不确定性;
  3. 应保证进入临界区的进程能不受干扰的运行;
  4. 不得使进程无限期等待进入临界区;
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值