计算机的组成以及OS的发展历程

    根据冯诺依曼提出的体系架构,计算机基本上可以分为五大部件。这五大部件分别为运算器,控制器,内存,输入设备与输出设备,其中运算器与控制器是CPU的重要组成部分。下面分别介绍这5大部件:

    CPU:运算器、控制器、寄存器、缓存

        运算器与控制器的主要目的就是处理计算二进制数据,里面含有制造商提供的微指令集,包括精简           指令集与复杂指令集。

        寄存器可以暂存CPU的一些数据,例如多个加数相加可以暂时存放,存放下一条指令的指针等。

        缓存的主要目的是为了提高计算机的性能,因为CPU的频率要远远高于内存,这样从某种程度上说是在浪费CPU的资源,因此加缓存会增强对CPU的利用率。

        

    内存:内存也叫RAM,CPU的数据获得就是从内存中获得的。因此从某种程度上说内存的大小与性能对计算机的整体性能有着很大的影响。内存的基本存储单元为cell,大小8bit(1B),内存在计算机中的编址是平面编址的,每一位都会有唯一的地址与之对应。CPU与之是有一定关系的,例如32位的CPU,它一次运算的最大数据量是2^32,即4GB,所以4GB的存储空间即够用。

    输入输出设备:输入设备主要就是鼠标键盘那,输出设备主要就是显示器方面的,他们不是计算机的核心部件,主要是输入命令与看到执行结果的接口。

    以上为计算机的硬件部分,但是光有硬件是不行的,还要有软件,没有软件,那么就是一堆废铁。那么计算机程序又有怎样的发展:

    1、穿孔纸带时代:程序员将一段程序写在纸带上并发给计算机,但是这种方式实在太慢了,而且计算机一次只能执行一个任务,大大浪费了CPU。

    2、批处理系统:程序员将多段程序写在磁带上,用分隔符隔开,例如程序1$$程序2$$……,虽然在某些程度上会有一些改善,但是计算机只能一个程序一个程序的执行,效率还是没有最大发挥。

    3、多任务操作系统:多任务操作系统是为了实现同时处理多个任务,虽然这是不可能的,但是,他们是这样实现的。

    @1:CPU时间分片:例如将CPU的时间分为几片,第一片执行任务1,第二片执行任务2,然后一个循环结束后再执行任务1,以此类推。如果这个时间片分的足够小,那么每个程序的等待时间也会很小,貌似都是在同时进行的。

    @2:内存的分片,将内存分为几片,每一片存放一段程序。

这种多任务操作系统就是现代操作系统的雏形。

原创文章,作者:N24_强仔,如若转载,请注明出处:http://www.178linux.com/55832

(1)
N24_强仔N24_强仔
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • 集中练习1-10个Linux运维脚本

    用户管理、文本处理、文件管理相关

    2017-09-20
  • DNS的基本配置、子域授权与bind编译(第十八九天)

        DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。     DNS利用类似于树形目录的结构,将主机名的管理分配在不同层…

    Linux干货 2016-06-12
  • linux基础命令

    显示当前系统正在使用的shell:echo ${SHELL}  注意$在这里表示输出的内容是变量命令提示符:prompt[root@localhost ~]# 表示管理员用户 $表示普通用户修改提示符格式 PS1=“[\e[31m][\u@\h \w]\$[\e[0m]”\h 主机名简称\H 主机名\w 当前…

    Linux干货 2017-04-05
  • 马哥教育21期网络班—第9周课程+练习—-成长进行时–不退步

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash  declare -i other=0 declare -i nologin=0   &nbs…

    Linux干货 2016-09-05
  • 关于大型网站技术演进的思考(六):存储的瓶颈(6)

    原文出处: 夏天的森林  在讲数据库水平拆分时候,我列出了水平拆分数据库需要解决的两个难题,它们分别是主键的设计问题和单表查询的问题,主键问题前文已经做了比较详细的讲述了,但是第二个问题我没有讲述,今天我将会讲讲如何解决数据表被垂直拆分后的单表查询问题。 要解决数据表被水平拆分后的单表查询问题,我们首先要回到问题的源头,我们为什么需要将数…

    2015-03-11
  • C语言结构体里的成员数组和指针

    单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。 为了方便你把代码copy过去编译和调试,我把代码列在下面: final void&n…

    Linux干货 2016-05-29

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 17:27

    总结的不错,希望你能熟知这些基础的知识,加油!