操作系统--进程

进程

进程的定义: 一个具有独立功能的程序在一个数据集合中的一次动态执行过程

进程与程序的联系:

  1. 程序是产生进程的基础
  2. 程序的每次运行构成不同的进程
  3. 进程是程序功能的体现
  4. 通过多次执行, 一个程序可以有多个进程; 通过多次调用, 一个进程可以包括多个程序(例如: 一个进程同时需要多个程序进行运算)

进程与程序的区别

  1. 进程是动态的, 程序是静态的, 程序是有序代码的集合; 进程是程序的执行, 进程有核心态/用户态(进程需要在操作系统的内核中执行此时为核心态. ps:中断,异常,系统调用这三种情况出现时, 由用户态转为内核态)
  2. 进程是暂时的, 程序是永久的;
  3. 进程和程序的组成不同: 进程包括程序, 数据以及进程状态信息
    进程与程序的关系

进程的特点

  1. 动态性: 可动态创建和结束进程
  2. 并发性(注意!!! 并发 != 并行): 一个单核cpu在一段时间内只能执行一个进程
  3. 独立性: 不同进程之间工作互不影响
  4. 制约性: 因多个进程访问共同资源或者进程间同步而产生制约

进程控制块(PCB)

PCB是进程存在的唯一标志

进程控制块(PCB)

PCB含有的信息

(1) 进程标识信息(进程标识, 父进程标识, 用户标识等)
(2) 处理器(CPU)的信息保存区

处理器(CPU)的信息保存区

(3) 进程控制信息

进程控制信息

(4) PCB组织方式

PCB组织方式





进程管理

1.进程生命周期管理:

(1) 创建:

引起创建线程的三个主要事件:

  1. 系统初始化
  2. 用户请求创建一个新进程
  3. 正在运行的进程执行了创建进程的系统调用
(2) 运行
  1. 内核选择一个就绪进程让它占用cpu执行
(3) 等待
  1. 请求并等待系统服务, 无法马上完成
  2. 启动某种操作, 无法马上完成
  3. 需要的数据没有到达

ps:只有进程自己可以阻塞自己

(4) 唤醒
  1. 阻塞的进程需要的资源可满足
  2. 阻塞的进程等待的事件到达
  3. 将该进程的PCB插入到就绪队列

ps:进程只能被其他的进程或者操作系统唤醒

(5) 结束

结束的四种情形:

  1. 正常退出(自愿)
  2. 错误退出(自愿)
  3. 致命错误(非自愿)
  4. 被其他进程杀死(非自愿)

进程状态变化模型

进程状态变化模型

1. 进程的三种基本状态(ps: 不同系统设置的状态数不同)

  1. 运行状态: 进程正在cpu上运行
  2. 就绪状态: 进程获得了除cpu以外的所有资源
  3. 阻塞状态: 进程正在等待某一事件而暂停运行

2. 进程五状态模型

进程五状态模型

进程挂起

什么是进程挂起? 进程没有占用内存空间称为进程挂起

挂起状态

  • 阻塞挂起状态: 进程在外存等某件事件出现
  • 就绪挂起状态: 进程在外存, 只要进入内存即可运行

挂起相关状态转换

  • 把一个进程从内存转到外存有以下几种情况:
  1. 阻塞到阻塞挂起
    阻塞到阻塞挂起

  2. 就绪到就绪挂起
    就绪到就绪挂起

  3. 运行到就绪挂起
    运行到就绪挂起

  • 在外存时的状态转换:
  1. 阻塞挂起到就绪挂起
    阻塞挂起到就绪挂起
  • 把一个进程从外存转到内存有以下几种情况:
  1. 就绪挂起到就绪
    就绪挂起到就绪

  2. 阻塞挂起到阻塞
     阻塞挂起到阻塞

状态队列

  • 由操作系统来维护一组队列, 用来表示系统当中所有的进程状态
  • 不同状态分别用不同队列表示
  • 每个进程的PCB都根据当前状态进入到相应队列中, 当某个进程状态发生改变时, 它的PCB会从当前状态队列转换到另一个状态队列中
    状态表示方法

线程

上下文切换在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值