文章目录
- 进程
- 一、计算机的组成:
- 1.指令(Instruction)
- 二、浅谈操作系统
- 1.日常的操作系统
- 1.操作系统内核
- 内核:
- 进程的隔离性:
- 三、进程(process)
- 1.进程的概念
- 2.进程的管理
- 1.管理的两个角度:
- 1.描述:
- 2.组织:
- 2.PCB(进程控制块):
- 1.PCB的属性:
- 1.pid
- 2.内存指针(一组属性)
- 3.文件描述符表
- 进程持有的CPU资源
- 3.进程的调度
- **分时复用(并发执行)**
- 1.并行:
- 2.并发:
- PCB的属性:
- 1.进程的状态
- 1.就绪状态:
- 2.阻塞状态:
- 2.进程的优先级
进程
一、计算机的组成:
- CPU
中央处理单元
主频、核心数
- 存储器
内存:速度快、空间小、成本高、掉电后数据丢失
外存:速度慢、空间大、成本低、掉电后数据不丢失
- 输入设备
- 输出设备
1.指令(Instruction)
- CPU上能够执行任务的最小单元
- 这些单元都是由二进制来表示(机器语言)
二、浅谈操作系统
1.日常的操作系统
windows10/11
linux
mac os
android
ios
操作系统,本质上是进行管理的软件
对下,要管理所有的硬件设备(通过驱动)
对上要给软件提供稳定的运行环境
- 要防止硬件被失控的应用程序滥用
- 向应用程序提供API来控制硬件设备
1.操作系统内核
一个操作系统=内核+配套的应用程序(例如系统自带的程序:文件资源管理器)
内核:
- 硬件的驱动程序都是在系统内核中执行的。
内核需要给很多的应用程序提供支持(API)
不同系统的API是不同的,在Java中,系统的API会被JVM进行封装
- 内核态
- 用户态
一个程序在运行的过程中,可能是在用户态工作,也可能是在内核态工作。
进程的隔离性:
一个计算机可以同时运行多个程序,这些程序各自独立运行,不会相互干扰。
三、进程(process)
1.进程的概念
1.进程也叫任务:是已经跑起来的一个程序
2.每个进行要想执行,都需要消耗一定的系统资源(硬件资源:cpu/内存/硬盘/网络/gpu)
3.每个进程,都是系统资源分配的基本单位
2.进程的管理
东西多,才会考虑管理
1.管理的两个角度:
1.描述:
使用类/结构体(PCB),把被管理的一个对象的各个属性表示出来
搞清楚被管理的东西,有哪些属性,表示出来
2.组织:
使用一定的数据结构(如双向链表),把这些表示出来的对象,串起来
为了后续的增删改查
2.PCB(进程控制块):
操作系统法内核是C和C++写的
- 使用PCB来描述进程的属性
- 一个进程可以用一个或多个PCB来表示
1.系统会使用类似双向链表的数据结构,来组织多个PCB
1.创建一个进程,就是创建PCB,并且把PCB插入到链表中
2.销毁进程,就是把PCB从链表中删除并释放
3.展示进程列表,相当于遍历链表的每个结点
1.PCB的属性:
- PCB是一个非常庞大的结构体,包含很多属性
.在Linux中,pcb叫做 task_struct
1.pid
- pid:进程的身份标识
每个进程都会有一个pid,不同进程之间的pid是不同的
2.内存指针(一组属性)
- 描述了进程持有的内存资源
1.每个进程在运行的时候,都会分配一定的内存空间
需要一组指针来区分,这个进程内存空间的具体位置、分配的内存空间中有哪些部分、以及每个部分的作用
2.进程的内存空间,需要有专门的区域存储要执行的指令,以及指令依赖的数据。同时还要存储一些运行时产生的临时数据。
3.文件描述符表
-
描述了进程持有的硬盘资源
-
类似于顺序表的数据结构,要很多元素
-
和文件(硬盘)有关
进程涉及到因硬盘的操作时,就需要按照文件的方式来操作
进程关联了哪些文件、能操作哪些文件,就是通过文件描述符表进行表示的
进程持有的CPU资源
3.进程的调度
一个进程要执行,需要CPU来执行一系列指令
早期的电脑是单核cpu,一个cpu(舞台)在同一时刻,只能执行一个进程(演员)的指令(剧本)。
分时复用(并发执行)
剧本(指令)上有很多幕,很多演员(进程)轮流上舞台(cpu)表演,每个演员只演一会。
就腾出了地方,让其他演员共同演戏
只要演员们轮转的速度足够快,看起来就是连续的,相当于在同时表演
- 只要进程在CPU上轮转的速度足够快,在宏观上就相当于一个CPU在同时执行多个进程。
现代CPU是多核心的,有多个舞台
1.并行:
- 如果两个进程同时在两个CPU核心上,在微观上也是同时执行的。
2.并发:
- 一个CPU核心上,通过快速轮转调度的方式,执行多个进程,在宏观上的同时执行,微观上有先后
并发和并行,在应用程序层面感知不到,由系统内部完成调度。
一般会用并发代指并行和并发
PCB的属性:
- PCB中引入了一些属性,来支持操作系统实现进程调度的效果
1.进程的状态
1.就绪状态:
1.进程正在CPU上执行。
2.进程随时准备好,去CPU上执行
2.阻塞状态:
某个进程,某种执行条件不具备,导致这个进程暂时无法参与CPU的调度执行
比如进程等待用户输入
进程还有其他状态等待
2.进程的优先级
- 操作系统在调度多个进程时,并非一视同仁
- 有的进程会具备更高的优先级,优先调度,更好的调配系统资源
点击移步博客主页,欢迎光临~