当前位置: 首页 > news >正文

JavaEE初阶1.0

打破计算机的神秘感~

(⼤家可以配合 Crash Course Computer Science 视频做更详尽的学习和了解)

目录

一、 计算机是怎么构成的

1.0 CPU基本情况

2.0 汇编语言

3.0 cpu是怎么构成的

4.0 如何判断CPU好坏

5.0  指令(重点)

6.0 冯诺依曼结构

二、操作系统

1.0 介绍

三、 进程(重点)

1.0 概述

2.0 PCB

(1)pid  进程id 

(2)内存指针(一组指针)

(3)文件描述符表

(4)  进程状态

(5)进程优先级

(6)进程的上下文

(7) 进程的记账信息


一、 计算机是怎么构成的

1.0 CPU基本情况

x86架构  intel  amd 家用pc  服务器  

arm架构  苹果 苹果电脑  高通 智能手机

高通(安卓旗舰手机主要芯片供应商)

2.0 汇编语言

是机器语言 不同cpu 架构不同 指令集不同  对应的机器语言/汇编语言也是不同的

cpu的寻址 16位 64位 等等

cpu的位数,就和代码中,内存地址用几个字节表示是密切相关的~

3.0 cpu是怎么构成的

不理解具体过程  但是至少要知道,CPU以及其他的 内存,硬盘等等 重要的设备

都是由 门电路 构成的    门电路由晶体管构成  晶体管足够小(nm级别)

这样就达到了足够多

4.0 如何判断CPU好坏

cpu能不能搞大一点呢?不可以 这样意味着加工的时候 良品率会大幅度降低!!!

解决办法:多核cpu  

能不能让一个cpu核心当成俩来用? (超线程技术

咱们现在的CPU都是这种 多核+超线程 技术加持的产物

查看cpu:任务管理器(ctrl+shift+esc) -----> 性能----------->CPU

cpu内核6个  逻辑处理器12个(相当于12个人同时干活)  还有一个指标是 频率

频率:描述单个CPU核心工作的速度~  

除此之外 还有很多指标可以衡量~  有大佬,已经把CPU的水平,排出座次,咱们可以直接参考

例如:网上搜索CPU天梯图(台式机和笔记本是两个不同的天梯图)

通过任务管理器里面对应自己的CPU型号

5.0  指令(重点)

虽然咱们可以不用理解CPU的具体构造,但是需要理解,CPU是怎么执行代码的~~~

下面是一个指令表      地址0  数据00101110  

这个一段指令  其实就是内存中的一段数据~~

咱们写好的代码,最终想要运行,都是需要让操作系统,先把写好并编译好的指令加载到内存中,让后cpu才能执行的~~~

cpu执行指令的时候,要经历从内存读取数据这样的操作的~

6.0 冯诺依曼结构

精髓:cpu和内存分开 (执行单元和存储单元分开) 

这样解耦合 降低了硬件设计的成本,随着硬件技术的发展,cpu越来越快了,但是内存读取这个事情,提升不明显,内存渐渐的跟不上cpu的节奏了

cpu就设计了很多的机制,来解决上述问题:

缓存  (理解为cpu为舞台 内存为演员   演员不能及时赶到舞台,然后缓存是就近的演员  之前的缓存是在’南北桥‘(cpu附近的宾馆)上的,现在直接集成到cpu上

新的计算机结构的尝试:      量子计算机~ 

总结:

cpu要执行的指令(在指令集中 不同架构cpu指令集不同)存在内存里面,取指令的操作,其实是非常耗时的,因此cpu中通过缓存,流水线等技术,来优化这里的效率

二、操作系统

1.0 介绍

操作系统是一个软件(由代码构成程序)       

主要职责:管理各种硬件设备    给其他软件提供稳定的运行环境(抽象 封装)

例: 罗技G鼠标 13个案件  程序需要响应鼠标的操作,但是总不能根据不同的鼠标,写不同的代码吧?    这个时候就需要操作系统站出来,统一管理各种不同的硬件设备,给软件提供统一的api~

这样就可以不必关注硬件的细节差别了,只需要调用操作系统的api即可,再由操作系统来去控制不同的硬件进行工作~

操作系统也提供了一些管理软件资源的api,可以调用api来完成一些特定的工作

这些应用程序,在工作过程中是互不干扰的  及时某个程序有bug也不会影响到其他应用程序的运

常见系统:windows linux(程序员必须要掌握的系统)   mac  ios  android等等

使用windows一般都是图形化页面(降低门槛)     linux是命令行操作(生产力工具)

上述各种系统彼此之间是不兼容的,但是Java的优点就是 跨平台 

三、 进程(重点)

1.0 概述

一个运行起来的程序   叫做一个进程

process   操作系统中的重要概念  

进程多了  操作系统就需要 能够很好的 管理上述进程

站在系统的角度,如何管理进程?

(1)先描述出一个进程是啥样的     

使用结构体(主流的操作系统都是C语言写的),描述出进程的核心属性

进程控制块(PCB)   非常大的结构体,有很多很多属性~

(2)再把多个进程组织起来

比如 linux这样的操作系统,使用链表这样的形式,把多个PCB串到一起

创建一个新进程,就是创建一个PCB   初始化PCB的各个属性  把PCB加到链表上

销毁一个进程  查看进程列表等等等

2.0 PCB

(1)pid  进程id 

进程的身份标识符~~  (任务管理器右键打开)

(2)内存指针(一组指针)

进程需要知道执行的指令在哪里  指令依赖的数据又在哪里

双击exe  运行一个程序,创建一个进程

操作系统的加载过程:

操作系统 会把exe中的指令加载到内存中  后续进程在运行过程中,就会从指令内存区域里一条一条的取指令并执行~

操作系统和cpu: 

操作系统本身也是一个软件,也是由一系列指令构成的  

cpu就会依次执行操作系统的这些指令(操作系统跑起来了)

此时运行某个进程,操作系统就会进行 刚才的加载到内存的过程,让cpu来执行这里的指令

(3)文件描述符表

这个表记录了我要打开哪些文件

进程 运行过程中   很多时候 需要和硬盘进行交换(硬盘上的数据是用文件来存储的)

每次打开一个文件,就会把这个文件的信息,保存到文件描述符表中~

进程的运行  需要依赖硬盘 网卡  cpu

进程是操作系统中,资源分配的基单位

(4)  进程状态

分时复用:一秒钟拆分成很多部分     每个部分对应一个进程    cpu运行速度足够快 

                   切换的过程也快     超出人类的反应时间 从人类的角度看就是可以同时干很多事                               其实是串行  但是效果上看起来像是并行

进程状态:两个典型的

就绪状态(随叫随到)  进程随时可以到cpu上进行

 阻塞状态进程(有事)    当前不适合到cpu上执行

(5)进程优先级

有些进程,就是要优先级高一点,吃到更多的cpu资源

(6)进程的上下文

进程调度  一个进程执行一会  失去cpu  

过了一段时间后,进程还会回到cpu上执行  沿着上次执行到的状态,继续往下执行

翻出小本子回忆一下上次的进展~

进程在cpu中运行的过程中,cpu上的各种寄存器,就表示了当前进程运行的“中间状态” 

寄存器不止是储存中间结果   也会存储当前这个进程执行到第几条指令了 以及当前进程中“函数调用关系”      简单来说 就是游戏中的存档

(7) 进程的记账信息

统计功能     统计每个进程都在cpu上面运行了多久

如果发现某个进程,好久没有吃到cpu资源了 就会给这个进程倾斜一些资源~~

上面是计算如何工作的概述 接下来就是多线程的知识

感谢大家的支持

更多内容还在加载中...........

如有问题欢迎批评指正,祝大家生活愉快、学习顺利!!!

http://www.lryc.cn/news/606066.html

相关文章:

  • 认知绞肉机:个体实践视域下认知暴力与元认知升维的活体实验研究
  • 今日做题练习
  • 记录自己使用gitee和jenkins
  • PHP 核心特性全解析:从实战技巧到高级应用(2)
  • 按键精灵iOS工具元素命令SetText:自动化输入的终极解决方案
  • .NET Core部署服务器
  • Linux网络-------3.应⽤层协议HTTP
  • Java 大视界 -- Java 大数据在智能交通公交客流预测与线路优化中的深度实践(15 城验证,年省 2.1 亿)(373)
  • 快速搭建Node.js服务指南
  • 前端核心技术Node.js(四)——express框架
  • 8,FreeRTOS时间片调度
  • RPA-重塑企业自动化流程的智能引擎
  • 《能碳宝》AI辅助开发系统方案
  • 免费语音识别(ASR)服务深度指南​
  • 深入解析域名并发请求限制与HTTP/2多路复用技术
  • 电脑远程关机的重要性
  • vue3+arcgisAPI4示例:轨迹点模拟移动(附源码下载)
  • 实战教程 ---- Nginx结合Lua实现WAF拦截并可视化配置教程框架
  • 融合数字孪生的智慧能源光伏场站检测系统应用解析
  • 生产管理升级:盘古IMS MES解锁全链路可控可溯,激活制造效率
  • 从 MySQL 迁移到 TiDB:使用 SQL-Replay 工具进行真实线上流量回放测试 SOP
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论数据可视化分析-点赞区间折线图实现
  • 保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
  • 技术速递|GitHub Copilot for Eclipse 迈出重要一步
  • SQL极简函数实战:巧用GREATEST()与LEAST()实现智能数据截断
  • Promise.all Promise.race Promise.any三个对比
  • 【Flask基础②】 | 路由、响应与异常处理
  • 在嵌入式系统或 STM32 平台中常见的外设芯片和接口
  • 《通信原理》学习笔记——第六章
  • 乱删文件,电脑不能开机,怎么办