• 浅谈计算机系统——引子


    说起计算机,先看如下数学模型:

    针对计算机来说,中间一块就是CPU中的运算器,那么我们的计算机模型应该是这样:

    所以才说中央处理器CPU、存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

    然后我们开始演进~~

    First :

    一开始只需要CPU和寄存器就可以搞基,各种high;

    可是后来发现寄存器完全装不下东西,所以我们搞个内存,可以放各种参数之类的。

    second:

    由于寄存器芯片过贵,在考虑成本下我们的内存都采用的比较慢速的设备。那内存完全跑不赢CPU啊,CPU总是等啊等,花儿都谢了。

    所以我们在CPU和内存之间,采用运算速度较强的内存,即高速缓存。现今计算机架构来说,基本使用的是三级缓存。

    Third:

    内存太小了啊,完全装不下这个大千世界了啊。并且严重的是内存一般为电容性器件,关机则消失,比如DRAM。

    所以我们的外存登场,当然现在我们经常看到的就是磁盘了。

    Fouth:

    本来相对于CPU,内存就够慢了,天啊,这磁盘什么的简直慢到睡着了。

    DMA出马,代替CPU完成读取写入等待等工作,和磁盘交互。

    Sixth:

    设备好多,没法最开始那样一对一了,所以就来个总线对接下吧。

    这么多设备和CPU打交道,信号过来我都不知道谁的,所以加个ID标识吧。

    Seventh:

    磁盘慢?其实还有很多更慢的I/O等设备。CPU需要和这么多设备打交道,那如何是好,不可能一直等,所以想到了切换,通过中断技术实现

     Eighth:

    内存和磁盘直接对接,也出现了速度不匹配的问题,所以缓存再次出现,再次以空间换取时间。

     Nigth:

     内存虽然够大了,但是很多时候还是无法放下进程的临时数据啊,对,我们总是觉得电脑或者手机怎么越用越卡,就这出了问题。

    但是磁盘很大啊,所以我们可以考虑先把一半部分数据放入磁盘,window叫虚拟缓存,linux叫交换空间。

    可是磁盘的读取速度很慢啊,CPU直接从内存读取多快,哎,这可难办了啊

    天啊!就这么简单的介绍,管理起来就够麻烦了。我玩计算器,莫非还要我懂这些才能玩?显然不是,那么就得让人管理啊,因此操作系统出现了。

    操作系统作为大管家,管理着时间和空间,带领硬件大小朋友们,和你一起走向了人生巅峰!

    模式切换

    操作系统本质也是一段程序,同样需要在CPU和内存上运行才行。

    所以我们把操作系统在CPU上运行时候,叫内核模式(内核空间);将CPU运行其他程序叫用户模式(用户空间)。

    这里我们将遇到继中断后的第二个切换,我们将CPU轮换的工作在内核模式和用户模式,叫模式切换

    并且规定只有操作系统才能使用特权命令(四级命令中的0级),使用硬件设备。

    如果其他程序需要使用硬件,必须向操作系统申请,即系统调用。

    内存也相应的做了照顾,将低位区除了DMA区,专门独享给内存。

         备注:CPU资源为时间;内存资源为空间;CPU指令集初始为0~3等级,后面还有-1级。

    进程切换

    针对每个程序任务,操作系统给他们统一取了个名叫:进程。

    通过windows任务管理器你会看到若干进程在运行,实际上同一时间CPU上只有一个进程在运行,而其他进程都在等待。

    运行进程在超过一段时间或者自己退出后,轮换到等待的进程,叫进程切换,这是第三种切换。

    就是操作系统会不断切换应用程序来使用CPU。

    目的有两个:减少等待时间,比如磁盘读数据这种;

                          让人感觉所有任务是同一时间运行的,比如你在打字和屏幕上显示字,本来属于两个进程来完成,但操作系统不会等你把所有字打完了再显示出来。

       线程

    线程的特点是继承但不超过父进程的硬件权限,实际就是被阉割了一部分系统调用的权限。但由于共享资源,大大减少了进程(线程)切换的代价,从而提升了速率。

    如此尔尔~~~下文分解!

  • 相关阅读:
    夺命雷公狗TP3.2.3商城11-----后台头部和左侧导航分离
    夺命雷公狗TP3.2.3商城10-----中间层的创建,防止跨目录访问
    3.spring cloud eureka 高可用
    2.spring cloud eureka client配置
    1.spring cloud eureka server配置
    css去掉input记住密码的黄色
    34-THREE.JS 游泳圈
    32-THREE.JS 球体
    31-THREE.JS 正方体
    30-THREE.JS 圆环
  • 原文地址:https://www.cnblogs.com/daiaiai/p/10546516.html
Copyright © 2020-2023  润新知