zoukankan      html  css  js  c++  java
  • 浅谈计算机系统——引子

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

    针对计算机来说,中间一块就是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。

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

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

       线程

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

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

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/daiaiai/p/10546516.html
Copyright © 2011-2022 走看看