JavaEE——初识进程&进程调度

本文详细阐述了进程的定义,进程控制块(PCB)作为进程管理的关键,包括PID、内存指针和文件描述符等要素。此外,文章探讨了进程调度的必要性、定义以及基本过程,重点讲解了并行执行和并发执行的区别。

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

1、进程(Process)

1.1、什么是进程?

一个程序,运行起来(跑起来),在操作系统中就会出现一个相应的进程。即进程,就是一个跑起来的应用程序.

若想要一个程序运行,就必须得给这个进程分配系统资源。如图显示,若要Microsoft Edge运行,该进程所占用的系统资源。

结论:进程是操作系统对一个正在运行的程序的一种抽象。换言之,可以把进程看做程序的一次运行过程;

同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位(即操作系统是以进程为单位分配资源的)。

2、进程控制块(PCB Process Control Block)

2.1、什么是进程控制块(PCB)?

在操作系统上,包含了很多进程,东西一旦多了,就需要考虑管理,即操作系统要管理这些进程,对于“管理”这件事情,通用做法就是先描述,再组织

先描述:通过一些结构体/类,把一个进程的核心信息抽象提取出来,并进行表示。

再组织:通过一定的数据结构,把多个这样的结构体/类的对象串起来,方便进一步的增删改查。

结论:计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。在 Java 语言中,我们可以通过类/对象来描述这一特征。这样,每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删查改的操作。

2.2、进程控制块(PCB)三大要素

①pid

进程的id或进程的标识符。

同一个机器,同一时刻,进程的id一定是不同的。

②内存指针

进程运行时,需要消耗一定的硬件资源,内存就是这样一个关键的资源。

③文件描述符

一个进程运行的时候,会操作一些文件,就通过一个叫“顺序表”这样的数据结构,记录下当前这个进程,都打开了那些文件。

3、进程调度(Process Scheduling)

3.1、为什么要进程调度

在当前计算机中,CPU内存是有限的,但进程数量是比较多的,经常会出现“进程多、而核心数少”的情况,而操作系统要做的,就是尽可能公平的让每一个进程都有运行的机会,这就需要进程调度。

3.2、什么是进程调度

像现在的计算机是8核16线程,有16个逻辑处理器,当面对100个进程时,就需要进程调度来负责,即采用“分时复用”技术。

操作系统对CPU资源的分配,采用的是时间模式 —— 不同的进程在不同的时间段去使用 CPU 资源。

3.3、进程调度的基本过程

①并行执行

一个核心,同一时刻,只能运行一个进程。

当有16个核心,同一时刻,就可以同时运行16个进程。

这种微观时间上,完全同时执行的操作:并行执行

②并发执行

CPU把总的执行时间,切换成若干个小的片段,每个片段执行一个进程,每个片段被称为“时间片”。

由于时间片比较短,CPU切换进程的速度极快,普通人无法感知到,所以在人看来,这若干个进程在同时进行,

这种宏观时间上,同时执行,微观时间上,串行执行的操作:并发执行。

“并行”和“并发”统称为“并发”,把编写解决并发问题的程序又称为“并发程序”。

操作系统会按照 并行 + 并发 相互搭配的形式,运行所有进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值