浅谈计算机是如何工作的

一、冯诺依曼体系结构

        数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

二、CPU的核心和频率

        在现代的大部分CPU一个核心包括两个逻辑处理器,而一个逻辑处理器则可以运行一个程序。对于程序员来说,可以把代码中的任务拆成多个,使用不同的核心分别执行,也可以叫做“并发编辑”。

        CPU的运算速度可以用频率来表示,基准速率可以浅显的理解为一秒内最低的运算次数。

三、CPU指令执行的流程

        在双击.exe运行程序之后,系统把该程序加载到内存中,CPU中的一个特殊寄存器(程序计数器)会保存之后决定从哪个内存位置开始执行指令,一般都会从0位置开始经历三个步骤:读指令、解析指令、执行指令。

        (1)读指令:程序计算器会从0位置开始读取,每次读取之后++。

        (2)解析指令:程序计数器从内存中调取的指令格式为,前四位bite位叫操作码(opcode)负责决定操作,后四个bite位则为操作的地址或者寄存器。

        CPU中的运算比较复杂,但运算频率很好的弥补这个缺点。

四、操作系统的内核

        (1)管理硬件:管理计算机接入的设备。

        (2)提供稳定的运行环境:给每个软件提供稳定的运行环境,不相互干扰。除此之外操作系统会给应用程序提供API来完成不同的功能。在Java代码中如println是Java标准库中提供的函数,JVM中,为了实现println功能就会调用系统提供的API,调用系统API之后程序就会进入内核执行,此时系统就会操作对应的硬件设备。

五、进程的概念

        进程的概念顾名思义就是正在运行的程序,运行时exe就会被加载到内存中,并且cpu执行里面的指令,而可执行文件没有运行的时候则储存在硬盘上。

六、进程的管理(PCB,链表) 

(1)描述:通过 结构体/类 来描述进程属性,在Linux中用进程控制块(PCB)来描述进程属性

(2)组织:通过数据结构把多个结构体串联起来,并进行增删查改。可以简单认为通过链表来组织进程,创建进程的时候相当于创建了一个新的PCB,并且插入到链表中。结束进程的时候把这个PCB从链表上删除掉并且释放。当我们查看进程的时候相当于在遍历这个链表。

(3)PCB包括PID、内存指针、文件描述符表等重要属性。PID可以让系统找到对应进程,在同一时间每个程序的PID都不相同且唯一。内存指针主要描述进程依赖的指令和数据都存储在内存的哪个区域。文件描述符表则能看到打开了文件。

七、进程的调度

(1)进程状态:进程状态分为就绪堵塞状态等。堵塞状态无法调度到CPU上执行,比如在进行IO操作(读写硬盘....)时会出现。

(2)进程优先级:在进程的先后顺序,运行进程的时间长短等中能体现。

(3)进程上下文:一个进程执行一会之后会从CPU上调度走,一段时间调度回CPU继续执行就需要把之前进程的中间结果(每个CPU寄存器上的值)保存起来,下次使用。

(4)进程的记账信息:操作系统统计每个进程在CPU上运行的时间来进一步调整调度的策略。

(5)并发执行:在某个时刻,CPU运行程序1和程序2并不同时,但是由于CPU运算过快人眼观察不到切换的速度,所以这个现象叫做并发执行。

(6)并行执行:CPU中有多个相不干扰的核心,每个核心之间在微观上可以执行不同的进程。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值