理解计算机(一)计算机中的抽象概念

我们可以把操作系统看成是应用程序和硬件之间插入的一层软件,所有应用程序对硬件的操作尝试都必须通过操作系统。
这里写图片描述

操作系统的两个基本功能:
(1)防止硬件被失控的应用程序滥用
(2)向应用程序提供一致的机制来控制复杂而又通常大不相同的低级硬件设备。操作系统通过几个基本的抽象概念(进程,虚拟内存和文件)来实现这个两个功能。
这里写图片描述
文件是对I/O设备的抽象表示
虚拟内存是对主存个磁盘I/O设备的抽象表示,进程则是对处理器,主存和I/O设备的抽象表示。

进程

进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像是单独占使用硬件。并发运行是指一个进程的指令可以和另一个进程的指令交错执行。在大多数系统中,需要运行的进程数是多于可以运行他们的CPU个数的。传统系统在一个时刻只能执行一个程序,而先进的多核处理器同时能够执行多个程序,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。

讨论单个CPU的单处理器系统的情况
这里写图片描述
操作系统保持跟踪进程运行需要的所有状态,这种状态就是上下文,包括许多信息,比如PC和寄存器文件的当前值,以及主存中的内容。在任意时刻,单处理器系统都只能执行一个进程的代码。当操作系统决定把控制权从当前进程转移到某个新进程时,就会执行上下文的切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权传递给新进程,新进程就从他上次停止的地方开始。
从一个进程到另一个进程的切换是由操作系统内核(kernel)管理的。内核是从操作系统代码常驻内存的部分,当应用程序需要操作系统的某些操作时,比如读写文件,他就执行一条特殊的系统调用指令,将控制权传递给内核,然后内核执行被请求的操作并返回应用程序。注意,内核不是一个独立的进程。相反,它是系统管理全部进程所用代码和数据的集合。

线程

尽管通常我们认为一个进程只有单一的控制流,但是在现代系统中,一个进程实际上可以由很多可以称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。由于网络服务器中对并行处理的需求,线程成为越来越重要的编程模型,因为多线程之前比多进程之间更容易共享数据,线程一般而言比进程更高效。

虚拟内存

虚拟内存是一个抽象的概念,它为每一个进程提供了一个假象,即每个进程都在单独的使用主存。每个进程看到的内存是一一致的,称为虚拟地址空间。

并发和并行

并发:指一个同时具有多个活动的系统
并行:指的是用并发来使一个系统运行的更快。

计算机系统中抽象的重要性

抽象是计算机科学中最为重要的概念之一。比如我们为一组函数规定一个简单的应用程序接口(API)就是一个很好的编程习惯,程序员无需了解它内部的工作便可以使用这些代码。不同的编程语言提供不同形式和等级的抽象支持,例如Java类的声明和C语言的函数原型。
如下图,在处理器里,指令集架构提供了对实际处理器硬件的抽象。使用这个抽象,机器代码表现得几号箱运行在一个依稀执行一条指令的处理器上。底层的已经远比抽象描述的要复杂惊喜,它并行的执行多条指令,但又总是与那个简单有序的模型保持一致。只要执行的模型一样,不同的处理器实现也能执行同样的机器代码,而有提供不同的开销和性能。
这里写图片描述
几个抽象概念的额介绍:
文件:对I/O设备的抽象
虚拟内存:对程序存储器的抽象
进程:对一个正在运行的程序的抽象
虚拟机:对整个计算机的抽象,包括操作系统,处理器和程序

计算机系统是由硬件和系统软件组成,它们共同协作以运行应用程序,计算机内部的信息被表示为一组组位,它们依据上文有不同的解释方式,程序被其他程序翻译成不同形式,开始是ASCII文本,然后被编译器和链接器翻译成二进制可执行文件。
处理器读取并解释存放在主存中的二进制指令,因为计算机花费大量时间在内存,I/O设备和CPU寄存器之间复制数据,所以系统中的存储设备划分成层次结构-CPU寄存器在顶部,接着是多层的硬件告诉缓存存储器,DRSM主存和磁盘存储器。在层次模型中,位于更高层的存储设备比低层的存储设备要快,单位比特造价也更高。层次结构中较高层次的存储设备可作为较低层析的存储设备的告诉缓存。理解这种存储设备,可以优化C程序的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值