操作系统概述

目录

·前言  

一、计算机工作方式

1.冯诺依曼体系结构

2.指令执行过程        

二、操作系统概述

·结尾


·前言  

        本篇文章会介绍计算机的工作方式,以及对操作系统的基本概念进行分享,还会会详细介绍指令的执行过程。

一、计算机工作方式

1.冯诺依曼体系结构

        计算机由软件与硬件构成的,其中计算机的硬件结构基本都遵循冯诺依曼体系结构,如下图所示:

        上述结构中,存储器是由内存和外存组成的,内存与外存区别如下:

  1. 内存存储空间小,外存存储空间更大
  2. 内存访问速度快,外存访问速度更慢
  3. 内存的成本更高,外存更便宜
  4. 内存的数据在断电后会丢失,外存的数据在断电后仍然存在

        上面的输入设备,是让人给计算机发号施令途径,如:键盘,鼠标,麦克风……

        上面的输出设备,是计算机用来给人反馈结果,如:显示器,音响……,其中,有些设备既是输入设备,也是输出设备,比如:触摸屏,网卡…… 

        其中,计算机硬件中最核心的部分就是我们熟知的CPU也称中央处理器就是冯诺依曼体系结构中运算器和控制器的加和。

        CPU有两个重要的属性:核心数和主频(基准频率,睿频),主频可以近似看作1s之内,一个核心能够执行多少条指令,所谓的指令,就是机器语言,我们所编写的代码,最终就会被编译成机器语言,最终由CPU执行,但是在冯诺依曼体系结构中,执行单元(CPU)与存储单元(内存)是分开的,要想执行的指令会先被加载到内存中,CPU再不停的从内存中读取指令、解析指令、执行指令,从内存中读取指令这种方式在如今CPU计算速度飞快的场景下是非常低效的,所以给CPU引入了缓存和流水线,这样就可以提高读取指令的效率了。

        缓存作用就是临时安置指令,有的指令在执行完成后先不用着急送回内存,因为可能过一会儿还要执行这条指令,所以就把这些指令临时放在缓存中,上述的流水线大致逻辑就是在指令A执行的时候,提前去取指令B和指令C,这样在指令A执行结束后,指令B和指令C就正好来了,引入这俩就缓解了CPU读取指令慢的问题了。

2.指令执行过程        

        上面介绍了指令是什么,这里再介绍一下指令的组成和作用,指令是指导CPU进行工作的命令,主要由操作码 + 被操作数构成,其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等,指令本身也是一个数字,用二进制形式保存在内存中某个区域,下面我就来简单模拟一下CPU执行指令的过程,如下图所示是一个简化的指令表,这里主要介绍的是大致执行逻辑:

         关于上述表格,再补充一点相关知识,表格中的RAM是指内存,上述提到的寄存器,它是CPU上的存储数据的单元,CPU上能直接存储的数据比较少,寄存器主要是为了支持CPU完成一些计算,用来保存中间结果的,寄存器的空间有限,但是访问速度极快,要比内存快好几个数量级,下面列出一段指令,然后根据上面指令表来模拟执行一遍。

地址数据
000101110
1

00011111

210000100
301001101
400000000
500000000
600000000
700000000
800000000
900000000
1000000000
1100000000
1200000000
1300000000
1400000011
1500001110

        上述这段指令,其实是内存中的一段数据,我们所写好的代码,想要运行都是由操作系统先把写好编译好的指令加载到内存中,然后CPU才能执行,这里我们假定从0号地址开始执行程序,此时CPU就会先从0号地址这里读取数据,到CPU寄存器中,并且对这个指令进行解析(查询指令表,看这个指令要执行什么操作),上述指令的数据前4位是操作码,后4位是内存地址,下图就是执行的完整流程:

 

        下面4中数据是00000000,也就表示指令都执行完毕了,上述这段指令就是模拟3+14的过程,通过上面的过程可以得到以下几条结论:

  1. CPU要执行的指令是在内存中的;
  2. CPU想要执行指令,就需要先取指令,再解析指令,然后才能执行指令;
  3. 取指令需要从内存中读取指令到CPU的寄存器中(这里没有体现存储指令的寄存器,只体现出寄存器A和B用来计算的寄存器),取指令操作其实十分耗时(读取内存操作相对于CPU执行计算,会慢非常多)所以CPU通过缓存,流水线等技术来优化这里的效率;
  4. CPU解析指令的时候,需要用到“指令表”,不同架构的CPU支持的指令表不同,指令表的细节已经写在CPU中,CPU可以很容易的识别;
  5. 指令在执行过程中,可能会带有一些操作数,不同的指令,操作数的含义都有所不同;
  6. CPU重要的参数:主频,表示的含义可以近似看作一秒内CPU能够执行指令的个数。

二、操作系统概述

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

  1. 防止硬件被时空的应用程序滥用;
  2. 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。

        下图是操作系统在计算机系统中所处的位置:

        操作系统是一个非常重要的软件(由代码构成的程序),它对上管理各种硬件设备,对下给软件提供稳定的运行环境,这也可以叫做(抽象封装),操作系统中有一个核心的概念,那就是进程,当前我们的系统都是“多任务”操作系统,每个启动的程序都称为“进程”。

·结尾

        文章到这,所要介绍的内容也就都介绍完了,关于操作系统中核心的概念“进程”,在Java中有叫做“多线程编程”的方式,那么其中进程和线程有什么关系,他们又有什么区别,他们又都是什么, 我将在下一篇文章中再进行详细的介绍,如果本篇文章对你有帮助,还是希望能三连支持一下啦~~您的支持就是我最大的动力,同样,如果对本篇文章有什么疑问欢迎在评论区进行讨论,那么我们下一篇文章再见吧┏(^0^)┛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值