• JAVAEE---计算机是如何组成的


    计算机=软件+硬件

    硬件是冯诺依曼体系结构,这个结构的精髓在于将存储和执行分开。

    这里存储器=内存+外存(硬盘,u盘,光碟等)

    cpu是计算机的大脑,是计算机最核心的地方。

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

    存储空间

    硬盘>内存>>cpu

    访问速度与之相反。

    cpu的基本架构

    x86架构 inter amd

    arm架构 苹果 高通(性能比较低,但待机时间长)

    不同架构的cpu的指令集是不同的(指令集写死在cpu中)

    cpu是通过门电路构成的。

    多核cpu

    cpu的核心:一个核心相当于一个完整的cpu,将这些核心放到一起组成一个大的cpu。

    这里多个核心都要使用需要软件的配合,将一个大任务分成多个小任务来执行。

    一个cpu当两个用(超线程技术)

    比如我这个电脑内核就是物理核心,是真实存在的。

    逻辑处理器就叫做逻辑核心,我们使用可以认为有16个核心。

    你可能会发现自己的电脑,物理核心和逻辑核心不是二倍的关系,这是因为大小核技术,大核代表两个逻辑核心,小核就是一个。

    频率:描述cpu性能除了核心数还有频率

    我们关注这里的速度和基准速度就行

    基准速度就是基础频率,速度就是当前的频率也叫睿频

    3.20GHz代表一秒钟可以执行32亿次的指令

    基准速度是单核每秒最少执行次数,是下限

    睿频是动态变化的,它取决于当前任务的多少。是上限

    指令

    首先指令是在内存中的,cpu从内存中不断获取指令,解析,执行。

    获取指令相比其他两个来说比较耗时,所以就使用缓存,流水线这样的操作来进行处理

    解析就要用到我们上面说的指令集。

    操作系统

    上面说cpu是硬件的核心,那操作系统就是软件的核心

    对下将硬件进行管理

    对上给软件提供一个稳定的运行环境

    这两条都是通过抽象,封装进行完成的,比如我们现在的一个个的问价就是对硬盘进行的抽象封装。

    常见的操作系统有Windows,Linux(程序猿必备),Mac,iOS,Android。

    进程

    进程是系统分配资源的基本单位

    操作系统对进程描述(pcb),管理(链式结构,不是一条,一组,比较复杂)

    pcb中的一些属性

    pid:身份标识

    内存指针(一组):用来描述申请到的是哪些空间,来进行使用。

    文件描述符表:当我们打开文件的时候要进行一个描述,记录

    cpu:进程使用占cpu时间的比例

            并发:其中包含并发和并行,并发是分时复用,描述一个核心上的变化,并行是多个核心同时执行,不过我们一般统称并发。

    状态:就绪状态,阻塞状态

    就绪状态就是随时可以调用,阻塞状态不应该被调用,例如,等待用户输入

    优先级:进程调用的时间顺序都不是均匀的。

    记账信息:用来对下一下调度的一个更改。

    上下文:如果进程执行中被切换,应该将寄存器中一些值保存起来,下次调用的时候,在还给寄存器。

    这里的保存就是存档,还给寄存器就是读档

    当进程未执行的时候其实并不是都在内存中,而是在硬盘的swap区域,再次调用时直接从硬盘加载到内存中。防止内存不够。 

    进程之间独立运行,互补干扰,但有时我们需要它们的数据进行交互,这就谈到了进程间通信,例如:文件,网络

    多线程---解决进程频繁创建销毁带来的开销

    系统调度执行的基本单位

    进程包含线程,每个线程是一条独立的执行流,可以单独对cpu进行调度所以状态,上下文,等都是每个线程由自己的一份。而它们的内存和文件描述符表,共用一份,就是进程的一份。多个进程之间互不影响,但一个进程中的多个线程会相互影响。一个线程挂掉,或者将数据弄坏了,会影响其他线程的进行。线程不易过多,过多让然会使调度开销过大。

    多线程编程

    好像和之间输入结果没有什么区别但其实区别很大,我们后面再来讨论。

  • 相关阅读:
    从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式
    ES8 | async和await
    学习笔记11--其他相关安全标准与技术
    从零开始C语言精讲篇6:结构体
    降C大法——第四式
    无病呻吟之高三回忆随笔@_@
    不懂就问,快速成为容器服务进阶玩家!
    Carbon教程之 基本语法入门大全 (教程)
    图论---图的存储
    git 多个commit 如何合并
  • 原文地址:https://blog.csdn.net/m0_75040012/article/details/134489246