对冯.诺伊曼体系的一点理解

本文通过对冯.诺伊曼体系中CPU,RAM硬盘的处理能力差别来解释Linux和ORACLE中的一些处理机制的原因

冯.诺伊曼体系结构是现代计算机发展的基础,特点如下:

1:必须有一个存储器

2:必须有一个控制器;

3:必须有一个运算器,用于完成算术运算逻辑运算

4:必须有输入设备和输出设备,用于进行人机通信。

冯诺依曼

在这个体系中,程序和数据必须经过内存储器(RAM)后,才能有运算器完成数据加工和处理,而内存储器在断电之后就会丢失所有的程序和数据,因此主存储器RAM必须把程序和数据同步到外存储器(硬盘)保证在计算机在断电之后程序和数据不丢失。

同时,内存储器RAM,CPU(运算器+控制器),外存储器硬盘的处理能力不同,并且差别很大,如下以普通家用电脑为例来说明(服务器的相关性能会提高,但是三者之间差别和普通家用电脑类似)。

CPU:处理能力最高,以Intel i9为例,25.5GB/s

RAM:以DDR3为例子,大概是10GB/s

硬盘:最低,固态硬盘大概500MB/s

因此,程序在设计时要充分考虑到这种差别,采用一定的策略来取长补短,达到系统的最优使用率。以下举例从不同的角度来阐述。

 

例子1:Linux内部命令和外部命令

Linux在系统启动的过程中,会把某些常用的或者系统认为优先级别高的命令即内部命令常驻内存,这样,在执行内部命令时,速度会更快。

对于外部命令,在第一次执行时,会有从硬盘读取这个命令到内存的过程,相对于内部命令执行速度会较慢,之后,这个外部命令也会驻留在内存中一段时间,在此期间内,再次执行此命令的速度和内部命令同等,因为省去了从硬盘读取到内存的过程。外部命令在内存中的查询和管理可以通过hash指令。

 

例子2:读文件的时间atime更新机制

文件的atime在每次访问文件时,理论上都应该更新,但是实际上atime的更新是系统自动来控制的,一般来说,atime相比mtime,ctime的重要性没那么高,所以系统决定在自已认为合适的时间去更新atime,比如在硬盘写操作很少时更新或关机之前把atime更新到硬盘上等,这样省去了每次访问文件时,因更新atime导致的资源竞争,比如,在某一时刻,硬盘在做大量重要的文件写操作,硬盘的访问速度是这个体系中最慢的,如果在此时系统强制更新atime,意味重要文件写操作就会停止或变慢。

 

例子3:ORACLE数据库更新表数据机制

ORACLE在数据库表更新时,当提交完commit命令后,内存的数据会立即变化,但是并不会马上同步更新到硬盘,因为批量更新的效率是要高于单个数据更新,如每次更新1K,一共更新10次数据从内存到硬盘,效率要远远低于一次性更新10K。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94606

(3)
Evan LiangEvan Liang
上一篇 2018-04-01 22:28
下一篇 2018-04-01 22:55

相关推荐

  • Linux发行版的基础目录名称命名法则及功用规定

    FHS filesystem hierarchy standard /bin: 所有用户可用的基本命令程序文件 /sbin: 供系统管理使用的工具程序 /boot: 引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等; /dev: 存储特殊文件或设备文件 /etc:系统程序的配置文件,只能为静态 /home:普通的用…

    Linux笔记 2018-05-11
  • Blog Day 0:Linux运维学习方法论漫谈

    By:Alvin Lin
    No:M30-43
    Date:2018-03-26

    Linux笔记 2018-03-26
  • LVS负载调度器,

    集群概念 LVS介绍 LVS实现 ldirectord

    Linux笔记 2018-07-01
  • linux命令之chown

    chown(选项)(参数)

    Linux笔记 2018-08-05
  • 第三周作业

    1 列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户名登陆多次,则只显示一次。
    2 取出最后登陆到当前系统的用户的相关信息。
    3 取出当前系统上被用户当作其默认shell的最多的那个shell.
    4 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字装换为大写后保存至/tmp/etc.conf文件中。
    7 显示/var目录下一级子目录或文件的总个数。
    8 取出/etc/group文件中第三个字符段数值最小的10个组的名字。
    9 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10. 请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)创建组distro, 其GID为2016
    (2)创建用户mandriva, 其ID号为1005,基本组为distro
    (3)创建用户mageia, 其ID号为1100,家目录为/home/linux
    (4)给用户mageia添加密码,密码为mageedu
    (5)删除mandriva, 但保留其家目录
    (6)创建用户slackware, 其ID号为2002, 基本组为distro, 附加组为peguin
    (7)修改slackware的默认shell为/bin/tcsh
    (8)为用户slackware的新增附加组admins

    2018-06-05
  • 初识——Linux文件管理

    一:文件系统结构 文件目录 Linux文件目录结构是一个倒树状结构,从根(/)开始依次往下,根文件系统为rootfs:root filesystem; 文件名称区分大小写是由文件系统决定的,CentOS6.x默认文件系统为ext4,CentOS7.x上默认文件系统是xfs; 以点(.)开头的文件为隐藏文件,文件路径以(/)分割; 文件有俩类数据:元数据和数据…

    2018-03-31