当前位置:网站首页>进程,时间片,并发与并行
进程,时间片,并发与并行
2022-06-09 12:40:00 【little-peter】
3.1 进程的初步认识
- 对于操作系统来说,一个任务就是一个进程(Process)。
- 课本概念:程序的一个执行实例,正在执行的程序等。
- 内核观点:担当分配系统资源(CPU时间,内存)的实体。
- 如何理解进程?
如:张三去银行转账,就要使用银行的资源(接待,转账人员,银行电脑,必要时保安也可以跟着:) )
为张三完成转账,而在银行内部,这一整套过程的执行,我们统称为办理业务。
类比,一个程序刚开始就是一个在硬盘上的程序,加载运行时,是为了完成某些任务(如迅雷完成下载
任务),而要完成任务,就需要操作系统为该任务提供足够做的资源(如内存和CPU资源),而这一整
套任务的执行,我们可以叫做进程
所以:进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的,如张三在办理转账业
务期间,这样任务一直都是存在且状态变更的。
而张三去银行转账也不是立马就能进行,需要先抽号,在大厅等待,因为当时可能会有很多人在大厅等
待,所以就有了进程等待队列。而张三抽到的号,可以称之为进程ID
下面,我们尝试查看系统进程
编写一个java进程
public class Test {
public static void main(String[] args) throws Throwable {
Thread.sleep(99999999);
}
}
在cmd中编译并运行:
javac Test.java
java Test
运行之后会启动java程序(进程),可以在任务管理器中查看到该进程

这里的PID代表这个进程的代号,而我们传说中的java虚拟机,本质上只是一个系统中的进程而已。具体可以在看看之前的样例图
3.2时间片
现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。所谓的多任
务,就是操作系统可以同时运行多个任务。
操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务
执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。
任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停
去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。
这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切
换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发。
如何理解?
假设张三准备办理转账业务,但当他把所有资料给工作人员之后,工作人员告诉他,你现在办理不了,
因为他现在需要填写一张申请表,此时,工作人员将他的资料保存起来,让他去一边填写资料,填写完
毕之后,再回来继续办理,同时,张三去填表了,而工作人员继续给别人提供服务。这个过程叫做进程
切换。
张三表填完了,继续回到柜台,工作人员拿出他之前的资料,继续给张三办理业务,这叫做进程的上下
文保护与恢复(想想,为什么要这麽做?因为进程的运行是在CPU上的,CPU有寄存器,保存的是进程
运行的各种临时数据,为了达到切换和便于恢复的目的,就有了将CPU寄存器保存和恢复的做法,归根
结底是为了接着上次的位置继续运行)
后来,银行出台了规定,每个人在柜台办理任务的时间不能超过10分钟(以防止其他人长时间等待),
所以为了更好的服务各个人员,银行工作人员将上面的切换与恢复的思路应用到各种业务中,所以长期
来看,即便只有一个工作人员,也能同时服务多个客户,这种机制叫做基于时间片的进程轮转管理机
制,而上面的10分钟,就是银行轮转的时间片,只要时间到了,客户酒的下去等待,让其他用户来办理
业务
而上面的所有轮转与管理工作,在操作系统中,统一由一个叫做调度器的内核模块完成
而对每个人来说,在一段时间之内,可能所有人的业务都得以推进(即便没完成),而不至于大家长时
间等待,这种机制就叫做并发
如果银行财大气粗,工作人员比客户都多,那就好办了,一人一个工作人员,所有的任务真正同时处
理,这种机制叫做并行。
下面,我们来看看并发和并行的详细概念
3.3 并发与并行
现在,多核CPU已经非常普及了,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把
很多任务轮流调度到每个核心上执行。对于
- 并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进,称之为并发。
- 并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行。
计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性
(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运
行的)。
并发与并行类似于工厂中的流水线,要扩大产量,1是考虑建造多个工厂,这就是并行,2是考虑每个工
厂中新增流水线,这就类似并发。
3.4 内核态与用户态
一般的操作系统(如Windows、Linux)对执行权限进行分级:用户态和内核态。
如上图所示,操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态,或核心
态。
用户程序的权限最低,称为用户态。
如何理解?
就好比上面的例子,张三去填表,自己写姓名,电话,邮箱等等,做着自己的事情,这叫做用户态
而张三通过窗口的工作人员,把自己的需求给工作人员,自此,张三在等,银行工作人员在忙,对张三
来讲,就叫做陷入内核。那么内核态是什么意思?就是工作人员在帮你办理业务时的状态
3.5 进程中的上下文
上下文简单说来就是一个环境,进程在时间片轮转切换时,由于每个进程运行环境不同,就涉及到转换
前后的上下文环境的切换
- 就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
- 切换时需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行
3.5 进程状态

边栏推荐
- 2022.5.28-----leetcode.1021
- 2021年10月4日Facebook史上最严重宕机复盘分析
- Differences between AVR and arm and common Arduino
- How is the Internet topology constructed? What does it represent?
- Seven misconceptions of digital transformation
- 面试题 05.04. 下一个数
- 2022.6.2-----leetcode.450
- Comment résoudre le problème du réseau d'entreprise en accélérant la fusion du réseau Cloud pour le troisième anniversaire de la licence 5G?
- How can PostgreSQL in k8s export query results and import them to the database on the local windows machine
- Weici technology completed a round of financing of more than 100 million yuan, and the core team graduated from Beijing Airlines
猜你喜欢

炒作剽窃、内鬼欺诈 OpenSea上常见的NFT骗局及安全建议

Idea merges the newly added modifications to the previous version

Teach you how to implement a virtual machine with JS

栈的基本方法及相关问题

互联网拓扑是怎样构成的?又代表了什么?

Arm architecture corresponding to commonly used chips in the market

jstat 详解

How to solve the worry of enterprise network with the acceleration of cloud network integration on the third anniversary of 5g licensing?

云呐|智能运维管理系统平台,可视化运维系统管理

有损传输实例
随机推荐
Yunna intelligent operation and maintenance management system platform, visual operation and maintenance system management
云呐|智能运维管理系统平台,可视化运维系统管理
谁说Redis不能存大key
互联网拓扑是怎样构成的?又代表了什么?
对某快捷酒店一次内网测试
HCIA datacom experiment IPv4 addressing and IPv4 routing basic experiment
Arm architecture corresponding to commonly used chips in the market
curl post请求携带请求头,传递接送参数数据的命令
Event storm method of DDD modeling methodology
未磁科技完成超亿元A轮融资,核心团队毕业于北航
记录下bilibili(b站)小火箭页面上划动画效果的实现
5分钟了解NFV
Explain the three ways to remove duplicate data in MySQL
Common mistakes in data analysis
Seven misconceptions of digital transformation
浅析网络可视化分析技术
Network attacks focus on people's livelihood. How can we effectively defend against DDoS and apt attacks?
【clickhouse专栏】单机版的安装与验证
How to do data visualization analysis
Using kubekey to build kubernetes/kubesphere environment