Linux 学习之路 -- 进程篇 -- 背景介绍

目录

1、冯诺依曼体系架构

2.操作系统


1、冯诺依曼体系架构

再开始学习进程之前我们要先了解一下计算机的体系结构,这里我们以最经典的冯诺依曼体系结构为例,简单介绍一下一下计算机的体系结构,方便我们对进程的理解。

这里的中央处理器就是,我们平常所称的cpu,这里的运算器就是做运算的,控制器就是做决策的。这里我们的输出设备就包括话筒、键盘、鼠标等等,输出设备包括声卡、网卡、磁盘、打印机。这里的存储器其实就是我们所说的内存(没有电就会丢失数据)。这里的设备是连接的(马努的是让数据在设备之间流动),我们通过总线把他们连接起来。

这里我们让数据进行流动,其实就是把数据进行拷贝,这里我们的拷贝的速度,其实就决定计算机的运算效率,这里我们存储器的存在就是为了加快计算机的运算速度。那它是如何提高计算机的效率呢?下面我简单介绍一下。

我们先了解一下存储金字塔的概念

这里存储金字塔的规则就是距离cpu越近的存储单元,效率越高,造价也就越贵,单体的容量就越小,离cpu越远的存储单元,效率就越低,造价就便宜,单体容量就大 (其实内存条的价格比硬盘要贵就是这个原理)。

回到原来的问题上,我们可以先假设没有内存的存在,其实我们输入输出设备的读写节奏相对于cpu的处理速度来说是很慢的,如果我们把他们直接相连,cpu会长期处于闲置状态,这就造成了浪费,所以我们在他们中间加一个设备,把输入输出设备的数据先预先加载到内存(其实就是预先加载跟缓存),在cpu 再从内存获取数据,而内存的读取拷贝跟cpu的处理速度差异相对较小,这样的效率就能得到较大的提升,同时也能降低成本。

这里cpu 是直接和 内存直接相连的,而程序是在外设设备上的,如果想运行程序,就必须把程序从外设设备加载到内存里面,cpu 再从内存中获取数据,这也就是为什么我们经常说的先把程序加载到内存的原因。

这里举个例子(两个人聊天)


2.操作系统

下面我们介绍一下操作系统,操作系统其实就是管理软硬件资源的的一个软件。下面我们先引入一张图来帮助我们进行理解。

1.这里我们先介绍硬件驱动,这里的各种硬件以冯诺依曼结构进行排布,这里的硬件驱动,就是硬件开发商的写出的对应驱动底层硬件的程序(包括对硬件的描述,方法),这里我们驱动提供方法给上层的操作系统进行调用,在我们插入鼠标时,过一会才会有反应就是在加载驱动程序。

2.这里的操作系统就相当于学校里的管理者,而底层硬件就  相当于学生,属于被管理者。举个例子,我们学校对学生是对”学生的数据“进行管理,而不是对学生本人进行管理,通常一张表进行学生数据(身高、体重等)的存储,学校的管理者就通过对文档进行管理,就可对整个学校进行进行管理。这里我们就可以把操作系统比作管理者,我们把存储学生数据的表用结构体进行描述,我们再用链表把他们连起来,这样就可以通过对链表(其他数据结构)的增删查改的数据的管理。这个过程就是计算机的建模过程,我们可以用“先描述,再组织”六个字来概括。

3.那我们为什么要有操作系统的管理,根据上图的划分,我们就可以把这一问题归结于对下层管理好软硬件资源,对上层提供一个较好(稳定、高效、安全)的运行环境 -- 这是我们的操作系统的最终目的。

4.如何保证上层稳定的运行环境,这里操作系统就提供了系统调用接口,避免用户直接访问系统,进行操作,当然系统调用需要了解系统调用的接口,不是每一个用户都懂这些接口,所以就有些人把这些接口进行封装,减少用户使用的成本(这里我们可以类比银行的服务,我们只能从柜台进行取钱存钱等服务,如果我们不了解这些业务,就会有专人帮忙操作)。所以任何用户都是无法直接访问操作系统,只能通过系统调用接口访问操作系统,也无法绕过操作系统访问底层硬件。

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值