第二章 - 进程
2.1 进程的定义、组成、组织、特征:
2.1.1 进程的定义:
- 程序:一个指令序列
- 定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
- 单道程序:
- 一次只能处理一个程序,当该程序运行时,cpu、内存、I/O设备都要为它一个程序服务
- 程序的代码放在程序段内,程序运行过程处理的数据放在数据段
- 多道程序:
- 一次可以处理多个程序
- 问题?操作系统怎么找到各程序存在内存的位置
- 解决问题:系统为每个程序配置一个数据结构,叫做进程控制块PCB,来扫描进程的各个信息
- 进程实体:
- 程序段、数据段、PCB组成进程实体(进程映像)
- 进程实体,也可以叫做进程
2.1.2 进程的组成:
- 进程的组成说的是:进程内部由哪些部分构成(和进程的组织要区分开)
- PCB:
- PCB是进程存在的唯一标识
- 进程描述、资源分配等
- 记住:PCB进程的管理者,所需的数据全在PCB中
- 如:分配进程优先级、进程标识的PID、UID,I/O设备的分配
- 程序段:
- 存放要执行的代码
- 数据段:
- 存放程序运行过程中处理的各种数据
2.1.3 进程的组织:
- 进程的组织说的是:多个进程之间组织的方式
- 说的目的是:一个操作系统有非常多个PCB,它们是怎么有效的管理起来这么多个PCB
- 链接方式:
- 把当前运行的进程分为不同的运行状态
- 这些运行状态会通过指针指向不同的PCB
- 指向不同的PCB,优先级高的会在前面
- 索引方式:
- 和链接方式一样,它是通过索引表来指向
2.1.4 进程特征:
2.1.5 总结:
- 什么进程是:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
- 进程的组成:PCB、程序段、数据段
- PCB是基础存在的唯一标识、基础的管理者
- 程序段:放程序执行代码
- 数据段:放运行时使用的数据
- 组织方式:链接、索引
2.2 进程的状态与转换:
2.2.1 进程的状态:
- 三种基本状态:
- 运行态、就绪态、阻塞态
- 其它两种状态:
- 创建态、终止态
2.2.2 进程的转换:
2.2.3 总结
- 运行态:有cpu有资源
- 阻塞态:什么都没有,可能是在等某个IO操作
- 就绪态:有处了CPU之外的所有资源
- 创建态:进程的创建
- 终止态:进程的终止
2.3 进程的控制:
- 进程的控制用原语进行控制
- 原语是要么全执行,要么全不执行
- 用关/开中断来实现
- 原语的不同操作共性:
- 跟新PCB中的信息
- 将PCB插入合适的队列
- 分配或回收资源
- 想关原语:
- 创建原语
- 终止原语
- 阻塞原语 -阻塞和唤醒要成对出现
- 唤醒原语 -阻塞和唤醒要成对出现
- 切换原语
- 各原语的功能:
2.9 FCFS、SJF、HRRN调用算法:
2.9.1 先来先服务FCFS:
- FCFS的调度算法,跟排队买奶茶一样,谁先,谁执行
- FCFS概念
2.9.2 短作业优先(不抢占、抢占)JSF:
- JSF的调度算法,就是运行时间短的优先(抢占)
- SRTN短作业抢占调用算法,根据运行的时间来互相抢占
- 短作业的算法概念
2.9.3 高响应优先HRRN:
- 根据响应比来决定优先执行顺序,得出响应比,就可以算周转时间了
- HRRN的概念
2.9.4 三种算法的对比:
2.9.5 总结、细节:
- 记住周转时间、带权周转时间、等待时间、和平均时间的公式
- 记住HEER的响应比的公式
- 细节:带权周转时间,指的是周转时比运行时间大多少倍
- 细节:等待时间公式是:等待时间=周转时间-运行时间-(IO设备操作时间-IO时间的减和不减要根据具体来分析)
- 大细节-考试会考:JSF算法是平均等待时间,平均周转时间最少(宏观上理解这句话)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)