0
点赞
收藏
分享

微信扫一扫

常见几种排序算法

juneyale 2023-11-23 阅读 45
java-eejava

一、计算机发展史

推荐大家看《计算机简史》,这里就不过多介绍了

二、冯诺依曼体系

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

 

  • CPU 中央处理器: 进行算术运算和逻辑判断.
  • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
  • 输入设备: 用户给计算机发号施令的设备.
  • 输出设备: 计算机给用户汇报结果的设备。

针对存储空间:硬盘 > 内存 >> CPU

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

三、CPU的四个构成部分 

 从功能方面看,CPU的内部由以下四部分组成:

  • 寄存器:寄存器用来暂存指令、数据等处理对象,可以看作是内存的一种。
  • 控制器:负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
  • 运算器:负责运算从内存读入寄存器的数据。
  • 时钟:负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。时钟信号以Hz(赫兹)为单位,代表每秒的频率,时钟信号的频率越高,CPU的运行速度越快。

四、CPU 基本工作流程 

首先,我们先介绍下我们需要到的指令:

 

接下来,我们演示指令运行的⼀个周期 :

CU:控制单元,ALU:算术逻辑运算单元

 

 

 

 

第⼀条指令的运行,其实没有用到我们之前制作的 ALU 部件,但这只是其中⼀些指令而已,大家可以尝试自己把剩余的 3 条指令运行一次,观察并理解这个过程。

我们可以得到指令周期:取指令-->分析指令--> 执行指令

小结

  1. CPU 中的 PC 寄存器,是决定 CPU 要执行哪条指令的关键;
  2. 指令是由 动作 + 操作对象组成
  3. CPU 眼中只有指令,没有其他的概念

五、编程语言 

1、程序(Program)

2、编程语言发展

 

 注意:⾼级语⾔的⼀条语句(Statement)往往对应很多条指令(Instruction)才能完成。

六、操作系统

操作系统是⼀组做计算机资源管理的软件的统称。⽬前常见的操作系统有:Windows系列、Unix系

列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

1、操作系统的定位

 

操作系统的两个基本功能:

  1. 管理各种硬件设备
  2. 给软件提供稳定的运行环境 

2、什么是进程/任务

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

3、进程控制块抽象

计算机内部要管理任何现实事物,都需要将其抽象成⼀组有关联的、互为⼀体的数据。操作系统一般是用C/C++实现的,因此就可以用类或结构体来描述这一特征。

我们就给 表示进程信息的结构体,起了个名字,PCB(进程控制块)。

这样,每⼀个 PCB 对象,就代表着⼀个实实在在运⾏着的程序,也就是进程。

操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,⽅便管理时进⾏增删查改的操作。

 PCB中的一些核心属性:

  • pid:进程的身份标识,系统会保证,同一个机器上,同一时刻,每个进程的pid都是唯一的。
  • 内存指针(一组):描述了进程使用内存资源的详细情况(进程都能使用哪些内存,进程也需要知道哪里存的是指令,哪里存的是数据)
  • 文件描述符表:描述了这个进程所涉及的硬盘相关的资源。

4、CPU 分配⸺进程调度

对于单核CPU:

 单核CPU也能支持一个“多任务操作系统”的运行。这就是用到了“分时复用(并发)”。

对于多核CPU:

多核CPU的产生,同时执行进程就变得更加复杂。

 对于实现进程调度,就需要PCB提供一些属性,来支持系统完成对这些进程的调度。以下属性:

  • 状态:描述一个进程是否能去CPU上执行,如一个进程处于阻塞状态,就不方便到CPU上执行。对于就绪状态,就是随时准备好到CPU上去执行。
  • 优先级:多个进程等待系统的调度时,根据其优先级来确定其调度次序。
  • 记账信息:针对每个进程,占据了多少CPU时间,进行了一个统计,会根据这个统计结果进一步调整调度的策略,因此就需要在下一轮次进行调整,至少保证不会出现进程完全捞不着CPU的情况。
  • 上下文:支撑进程调度的重要属性,相当于游戏中的存档和读档。

5、内存分配⸺内存管理 

6、进程间通信 

进程是操作系统进⾏资源分配的最⼩单位,这意味着各个进程互相之间是⽆法感受到对方存在的,这就是操作系统抽象出进程这⼀概念的初衷,这样便带来了进程之间互相具备“隔离性”。

但现代的应⽤,要完成⼀个复杂的业务需求,往往⽆法通过⼀个进程独⽴完成,总是需要进程和进程进⾏配合地达到应⽤的⽬的,如此,进程之间就需要有进⾏“信息交换”的需求。进程间通信的需求就应运⽽⽣。

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

  1. 管道
  2. 共享内存
  3. ⽂件
  4. ⽹络
  5. 信号量
  6. 信号

其中,网络是⼀种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同⼀主机上的进程间进行通信。

 

举报

相关推荐

0 条评论