JavaEE之计算机如何工作

此文我们开始介绍JAVAEE的相关知识,首先从计算机的基础知识开始我们的探索吧

1. 冯诺依曼体系(VonNeumannArchitecture)

现代的计算机,大多遵守冯诺依曼体系结构

在这里插入图片描述

  • CPU中央处理器:进行算术运算和逻辑判断.(包含运算器和控制器
  • 运算器:执行指令,完成计算工作
  • 控制器:协调指令执行顺序
  • 存储器:分为外存和内存,⽤于存储数据(使用二进制方式存储)
  • 输入设备:⽤户给计算机发号施令的设备.(键盘、鼠标、扫描仪…)
  • 输出设备:计算机给⽤户汇报结果的设备.(显示器、音响、打印机…)

输入设备相当于一个工厂里的采购部门,买原材料
存储器就相当于仓库,采购回来的东西要放到仓库里
CPU相当于加工车间,把原材料从仓库中拿出来加工之后再放回仓库
输出设备相当于销售部门,把仓库中加工好的东西卖出去

以我当前的电脑为例:

在这里插入图片描述

2.寄存器(Register)

属于存储器的一部分,只不过是封装到了CPU里面

为什么会存在寄存器呢??

这是因为CPU当中使用频繁的值,或者运算过程中产生的中间值,都会存在寄存器中。

硬盘内存寄存器( 8byte,一般在CPU里只有几十个
按容量分最大居中最小
按速度分最慢居中最快
按造价分最便宜居中最贵

3. 指令

所谓指令,即指导CPU进行⼯作的命令,主要由操作码+被操作数组成
其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等
指令本身也是⼀个数字,⽤⼆进制形式保存在内存的某个区域中。

计算机的主要任务就是执行指令

电脑里的程序就是一堆编译好的指令

在这里插入图片描述

此时引出一个新的问题??是否一条Java语句对应多条指令还是一条指令呢??

在这里插入图片描述

结论:由此可见并不是一条Java语句就只对应一条指令

4. 控制单元

负责指令的调度,那些指令应该让CPU执行

5. 操作系统(OperatingSystem)

操作系统就是一个搞管理的软件

在这里插入图片描述

操作系统的作用:

  1. 对上(应用程序)为软件提供一个稳定的运行环境
  2. 对下(硬件)管理各种计算机设备(可以看到的任何设备)
  3. 对于图形化界面的操作系统,提供良好的人机交互界面,
    其中Linux作为服务器的操作系统一般不提供图形化界面,因为要节省资源
  4. 文件管理
  5. 其中操作系统中没有的特殊功能,可以通过驱动程序来提供

6. 什么是进程

进程是操作系统对⼀个正在运行的程序的⼀种抽象,换⾔之,可以把进程看做程序的⼀次运行过程;
同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

举例说明:

在这里插入图片描述

每一个运行的程序在操作系统里都对应着一个进程
其中进程可以分为

  1. 用户执行的进程
    程序安装完成后,在系统里都是静态文件
    双击之后,从磁盘加载到内存,系统就会创建一个与程序对应的进程,这时候程序就运行起来了
  2. 前台进程
  3. 系统创建的进程
  4. 后台进程
  5. 其中操作系统也是一个程序,他也创建了很多个进程

那么进程又有哪些属性呢?? 我们又该如何去描述组织进程呢??

此时,引出一个新的概念——>《 进程控制块抽象(PCB——>ProcessControlBlock)》

7. 进程控制块抽象(PCBProcessControlBlock)

类似于Java中的类,C语言中的结构体,进程控制程序块是用于定义进程的核心属性

在这里插入图片描述

7.1 PID

相当于数据表中的主键,也相当于手机号码,身份证,在操作系统中全局唯一

7.2 内存指针

当程序运行时,操作系统从磁盘加载程序文件到内存中
在程序运行之前就要在内存中分配一块有效的空间
内存指针就指向该有效空间
在内存中的数据与指令最终被CPU执行和读取

7.3 文件描述符表

当程序运行起来之后需要访问一些文件资源,这时操作系统就负责分配这些资源
程序需要的每个文件,被称为文件描述符,多个文件描述符合在一起,就组成了文件描述符表,类似于一个集合
默认每个程序运行时都会分配三个文件描述符
标准输入:System.in
标准输出: System.out
标准错误: System.error

7.4 进程调度

以下都归并为进程调度

在这里插入图片描述

1. 进程状态

运行状态:当前在CPU上,正在执行指令
就绪状态:排队中,随叫随到, 随时可以上CPU运行
(运行状态和就绪状态一般理解为一个状态)
阻塞状态:当前不适合到CPU上执行

2. 进程优先级

哪个进程有更多的机会去CPU上运行,优先级越高,机会就越大

3. 进程的上下文

进程调度的过程中,进程一会失去了CPU,一会又回到CPU上继续执行,
回到CPU之后要沿着上次的状态继续,而不是重头开始
当前执行的指令是啥,下一条是啥中间产生的一些变量值是啥保存的过程,存档读档恢复的过程
失去CPU时:进程的中间值(存放)–>寄存器(存放) -->内存中
回到CPU时:内存中(读取)–>寄存器

4. 进程的记账信息

统计功能: 统计每个进程在CPU上运行了多久,哪些进程好长时间没有上CPU运行了

8. 内存分配–内存管理(Memory Manage)

程序运行时会分配内存空间

在这里插入图片描述
但此时由于野指针的存在,导致会有不好的效果
所以使用了虚拟内存来规避这个现象

在这里插入图片描述

对应到进程当中

在这里插入图片描述

⽬前,主流操作系统提供的进程通信机制有如下:

  1. 管道
  2. 共享内存
  3. ⽂件
  4. ⽹络
  5. 信号量
  6. 信号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值