JavaEE初阶--进程调度的基本过程

目录

一.计算机是如何工作的?

二.CPU

一.主要功能

二.CPU是如何执行指令的

三.操作系统

一.组成

二.进程

1.PID

2.内存指针

3.文件描述符表

三.进程调度

1.进程调度的属性

1.状态

2.优先级

3.上下文

4.记账信息

四.总结


一.计算机是如何工作的?

  现代的计算机大体都分为几个大类:

  1.终端设备(台式机,笔记本,手机,平板等)。

  2.服务器(一般是由专业人员使用)。

  3.嵌入式设备(针对一些特定的场景,量身定做的“计算机”)。

  在了解计算机是如何工作的,我们需要知道现代的计算机都遵守冯诺依曼结构。

   冯诺依曼强调了计算机应使用二进制来存储数据。

CPU中央处理器:进行算术运算和逻辑判断。

存储器:分为外存和内存,用于存储数据(使用二进制存储)。

输入设备:用户给计算机发号施令的设备。

输出设备:计算机各个用户汇报结果的设备。

存储空间:硬盘>内存>CPU。

数据访问速度:CPU>内存>硬盘。

二.CPU

一.主要功能

1.进行各种算术运算

2.进行各种逻辑判断

二.CPU是如何执行指令的

所谓的指令,都是要先加载到内存中,然后才能被CPU读取,并执行。

Java程序,写出来的是一个.Java源代码文件,编译得到.class二进制文件(仍然是在硬盘上)运行程序的时候,JVM就会把这个.class加载到内存中,再进一步的翻译成CPU能识别的二进制指令。

这一切不得不又说出冯诺依曼体系结构了,其规定一个程序,指令和依赖的数据,都是要在存储器中保存的CPU如果需要执行,都是要自动地从存储器中读取到对应的指令的。

CPU执行指令的阶段:

1.读指令(把内存中的指令数据,读取到CPU的寄存器中)。

2.解析指令

3.执行指令

指令分为4种,这里小编给演示一种。

先从地址0开始,拿到数据00101110,先把这八位数字分为两组,一组为0010,另外一组是1110,从上表发现0010代表寄存器(LOAD_A),另外一组二进制1110计算出来就是14,这时我们去地址为14的数据拿出来,计算出为3,放入寄存器A中。接着执行地址为1的数据,剩下的数据,小编在这里就不一一演示了,留给大家自行练习。值得一提的是当数据为00000000时,这个代表程序结束了。

三.操作系统

一.组成

操作系统要能够管理好各种硬件资源,让他们能很好的相互配合,也需要管理好各种软件资源,给每个软件都提供稳定的运行环境。

操作系统=内核 + 配套的应用程序。

内核:操作系统最核心的部分。前面提到的“管理”都是在内核里完成的。

配套的应用程序:往往要靠内核提供的一些功能支撑。

操作系统内核会给应用程序提供一系列的API。

举个例子:我们在Java中最简单的System.out,print这个语句,应用程序先执行了print,调用系统提供的API,然后再操作系统内核里,感知到说要执行操作显示器的行为,最后操作系统内核,通过驱动程序,找到对应的硬件设备(显示器),并且执行“显示字符串”操作。

二.进程

进程可以视作操作系统进行资源分配的基本单位。

在操作系统中,通常使用PCB(进程控制块)这样的结构体来描述进程。

在操作系统中,通常会使用链表这样的结构,来把多个PCB串起来。1.我们在任务管理器中查看进程列表就是在遍历链表的每个节点,并且获取显示出对应的信息。2.创建新的进程,就是创建一个对应的新的PCB,并且添加到上述的链表中。3.销毁某个进程:要把链表上对应的PCB节点给删除掉。

接下来我们进一步对PCB结构体进行分析

1.PID

进程的ID/标识符。同一台机器,同一时刻,进程id一定是不同的。

2.内存指针

进程运行时,需要消耗一定的硬件资源,内存就是一个关键的资源。一个程序在运行的时候就会被从硬盘(xxx.exe)加载到内存中。指针会告诉操作系统该进程要运行的指令都在内存的哪些房间里。也告诉系统,该进程的数据,又在哪些房间里。

3.文件描述符表

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

三.进程调度

我们在平时使用电脑时,不可能每时每刻都只执行一个程序,所以我们如今的CPU都是多核心的CPU,这时就需要进程调度来协调CPU的使用情况了。

并行执行:一个核心,同一时刻,只能运行一个进程,有16个核心,同一时刻,同时运行16个进程。(完全是同时执行)

并发执行:一个核心,不同时刻,可以执行不同的进程。CPU把总的执行时间切换成若干个小的片段,由于切换的时间极短,所以站在人的视角上是看不出来的。

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

1.进程调度的属性

1.状态

随时可以使用,在操作系统中,该进程就处于“就绪状态”

处于“阻塞状态”的进程无法在CPU上执行。

2.优先级

CPU对于不同的进程所分配的资源是不同的。

3.上下文

进程在CPU执行过程中,会产生很多的“中间结果”,在进程切换出CPU之前,就需要把这些中间结果(CPU的各种寄存器中的值)保存到PCB上下文里。下次这个进程回到CPU上执行的时候,就需要把之前的存档恢复回来。

4.记账信息

记账信息指在之前CPU对于某个进程分配的资源很少,为了避免某个进程一直吃不到CPU,所以在之后对于这些进程就多分配一点资源。

四.总结

本篇文章给大家介绍了计算机的组成以及CPU是如何执行我们所输入的指令的,并给大家介绍了一下操作系统,以及进程的相关知识。欢迎各位大佬在评论区讨论,感谢大家观看!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值