操作系统—进程管理

操作系统OS作为用户与硬件的接口,负责资源分配。进程是动态执行的程序实例,OS通过进程管理进行CPU调度。这涉及进程控制块PCB、进程状态管理、调度策略如FCFS和优先级调度,以及上下文切换。当进程状态变化或时间片耗尽时,OS会介入调度,确保系统高效公平地运行。
摘要由CSDN通过智能技术生成

操作系统OS(Operating System)

  1. 用户与计算机硬件之间的接口
  2. 控制和管理计算机资源的软件

OS是一个分配者,分配的主体就是任务,就是一切硬件资源都需要找OS申请之后才能被授权使用。

在这里插入图片描述

程序 & 进程

程序

程序 = 指令 + 数据
程序是静态的,一般表现为一个或者一组文件

进程

什么是进程?
进程是动态的。

1.用户角度

进程是程序的一次执行过程,是程序在“运行阶段”的视角主体
一个程序,可以进行多次执行(表现为多个进程), 也可以“同时”执行(多个进程同时存在)

2.操作系统角度

进程是OS进行资源分配的基本单位

  1. OS的职责:分配任务
  2. 资源:被OS管理的硬件资源、软件资源
  3. 分配的单位:分配的时候,最多考虑到这一层级
  4. 基本:允许有更高层次的单位,但最小到这里

换言之,同一个进程中的资源是共享的,不同进程间的资源的隔离的。

总结
进程是动态过程
绑定着一个程序
允许同时存在
OS内部资源分配的最小实体

操作系统的职责

  1. 进程管理模块:主要负责进程的调度工作,主持不同进程在CPU运行的时间划分。
  2. 内存管理模块:主持内存空间的分配工作——进程通信问题。
  3. 文件管理模块:把硬盘上的数据抽象成文件。
    硬盘是最为主要的二级存储,重要的IO设备,OS进行硬盘上的数据协调
    OS一般不会直接去管理硬盘的数据,一般委托文件系统进行抽象管理
  4. 网络管理模块
  5. 其他硬件——以文件驱动的形式进行管理——驱动管理

进程管理

进程管理 / 进程调度, 负责CPU的分配。
以时间线作为主轴去理解
以指令去执行

要做好进程调度我们面临的问题

1.进程控制块抽象(PCB)

Process Control Block

计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。
在Java中,我们可以通过类 / 对象来描述这一特征。

class PCB {
	1.进程的唯一标识,pid
	2.进程关联的程序信息
		a.哪个用户启动的
		b.进程工作目录
		c.什么时候开始的,什么时候结束的
	3.分配给该资源使用的各个资源
	4.调度是用到的信息
}

这样,每一个PCB对象都代表着一个实实在在运行着的程序,即进程。
操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删改查的操作。

2.细化进程

通过对进程做状态划分,来区分处于不同情况下的进程状态

  • 新建,进程处于正在创建中
  • 就绪,进程已经获得了除CPU以外的所有所需资源,等待分配CPU资源
  • 运行,进程的指令在CPU中运行着
  • 阻塞,进程由于等待外部条件无法继续
  • 结束,进程的所有指令执行结束,但PCB暂时保留,OS还需要做一些其他工作

在这里插入图片描述

3.如何选择进程上CPU

在就绪队列中,应该选择哪个进程上CPU?
需要保证公平性、要有消息、要让更紧急的任务先被处理、低成本

  1. 先来先服务
  2. 优先级划分(进程PCB中需要管理一个优先级属性)
  3. 短作业优先级

4.OS什么时候会介入进程调度

——选择一个新的进程,进行CPU分配

  1. 一个新的进程刚处于就绪状态时,当该进程优先级较高时——抢占式(实时)
  2. 运行状态的进程 -> 结束,一个进程结束了
  3. OS每隔一段时间,会调度一次:进程的时间片耗尽
  4. 进程主动放弃CPU:
    运行 -> 阻塞
    运行 -> 就绪

5.OS具体进程切换

通过上下文切换 —— 保护上一个进程的上下文 + 恢复下一个进程的上下文(Context)
上下文指的是:以PC寄存器所代表的一组寄存器中的值
保护上下文:把寄存器中的值保存在内存中的某个位置
恢复上下文:把内存中之前保存的值写入寄存器中

在这里插入图片描述

谢谢浏览

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值