【进程调度】—— JavaEE

进程是程序的实体,操作系统通过PCB(进程控制块)管理和调度进程。PCB包含进程ID、内存指针等信息。进程调度处理并发和并行执行,考虑进程优先级、状态和记账信息。虚拟地址空间确保进程间的隔离,防止因空间重叠导致的崩溃。进程间通信允许不同进程共享资源以协同工作。
摘要由CSDN通过智能技术生成

👽 博客主页: ➡➡ <芝士盘盘>⬅⬅
❤️‍🔥💗💓一键三连:👍 点赞 ✌️ 收藏 👌 关注
👻小小勉励:继续hustle everyday,尽管好日子又delay

进程

1.了解什么是进程

进程实际上就是程序的实体,操作系统里对程序的抽象

例如:
当我们点开一个程序在这里插入图片描述
我们知道,程序文件都是存储在硬盘上的,当我们点击运行程序时,操作系统会将程序中的核心数据加载到内存上,这时我们就可以在任务管理器上找到这个进程,如下图:
在这里插入图片描述
我们在任务管理器上看到的都是进程,无论是应用还是后台进程。


2.操作系统如何管理进程

PCB、描述和组织

操作系统通过PCB来描述和组织进程
PCB:
PCB即进程控制块,PCB实际上是一个结构体,包含了很多信息,其中的关键信息包含:

1.pid 进程的身份标识(同一时刻一台主机上的进程的pid是唯一的)
2.内存指针(创建进程需要空间,内存指针即标识了用了哪些空间)
3.文件描述符(每个进程,都可以打开一些文件。文件描述符表里面就记录了当前进程都打开了哪些文件)

描述:
我们知道了PCB包含了很多信息,在操作系统中,就是用PCB来描述一个进程的。
组织:
操作系统中会用数据结构来组织多个PCB,来达到增删查改的目的。这个数据结构通常会用双向链表来实现。


3.进程调度

我们知道一般来说CPU的核心不会很多,比如六核、八核。一个核心只能跑一个或者两个进程,我们之前也看到了,任务管理器中显示的进程非常之多,那我们该如何让CPU执行如此多的进程呢,这就涉及到了进程调度,在此之前,我们需要先搞清楚什么是并行和并发。

并行和并发

并行简单,就是假设有六个进程分别有六个CPU核心来执行,此时六个进程是同时进行处理的,这就是并行。
而并发就是在进程数大于核心数时,我们无法使全部进程都并行进行,我们需要让CPU处理以下这个进程,然后再处理一下那个进程,由于CPU的切换速度足够快,我们人类无法感知到CPU在多个进程中进行了切换,这就达到了我们看上去的同时进行,这个就叫做并发。
所谓的进程调度就是通过并行和并发的方式来执行多个进程。
注意两点:
并行和并发一般会统一都说并发,我们常常聊起的并发实际上包括了并行和并发
并行和并发使同时存在的,并不是CPU并发处理了就没有并行了。


进程调度的相关属性

这些属性都是为了进程调度而存在的,包括以下四个:
1.进程的优先级
这个属性就是建议操作系统先执行哪个进程,后执行哪个进程,注意,这里说的是建议,不是命令,真正先操作哪个进程还是由操作系统本身决定的。
2.进程的状态
进程的状态有很多,最典型的就是就绪态和阻塞态,就绪态就是时刻准备着,随时都可以上CPU进行处理,阻塞态就是进程需要等待某个进程完成后才能进行处理,否则不行。
3.进程的记账信息
进程的记账信息简单来说就是CPU处理这个进程的时间总和,当一个进程处理时间过少时,就会提醒操作系统,当然了最后执行与否还是由操作系统自己决定的,也有可能他就是不执行,像我们经常会遇到的问题,程序卡了,让你选择等待响应还是退出程序。
4.进程的上下文
CPU在这么不同的进程上反复横跳,进程的上下文就是记录此次CPU处理这个进程处理到哪里了,以便下次返回来继续执行的时候不会搞错。具体实现就是在CPU切出进程时,上下文会记录此时CPU中处理结果寄存器的值,在CPU切回的时候上下文会将存储的值加载到CPU的寄存器中。


4.虚拟地址空间

我们知道,是进程就会消耗空间,当很多个进程同时进行的时候,难免可能会重叠使用空间,这时一个进程崩溃就可能会导致多个进程的崩溃,所以我们应该保证进程的隔离性和独立性,在操作系统中就是使用的虚拟地址空间来实现这一目的的。
在这里插入图片描述

进程操作指针指向内存的时候需要经过MMU映射,当p成了野指针的时候,MMU就会知道挡墙访问的是一个有问题的地址,就会向操作系统报错,操作系统就会让进程终止运行。

进程引进了隔离性,让系统更稳定,但是为了多个进程之间进行配合,操作系统又引入了“进程间通信”,在进程和进程之间搞一个公共资源,多个进程之间通过公共资源来进行通信。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值