深入理解计算机系统之旅(一)计算机系统漫游

1、计算机系统是什么?

我们直观的可以看到的计算机系统就是一台电脑,包括主机、显示器、键盘鼠标,然后显示器上会显示不同界面,用鼠标点击,键盘输入界面就会相应操作。

2、深入一点,他们是如何工作的?

计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序。

3、再深入一点,硬件是什么?系统软件是什么?应用程序是什么?

硬件是组成计算机系统的基础,大家耳熟能详的就是CPU、内存、硬盘、主板等。

系统软件是运行在硬件之上的一层控制软件,就是我们经常听到的Windows XP、WIN7、Linux,它们的目的就是管理好各个硬件,屏蔽硬件的差异性,提供一个统一的应用软件工作的平台。

应用程序是运行在系统软件之上的一层软件,他们受到系统软件的管理,同时也享受系统软件提供的各种资源和功能接口,就是我们经常用的QQ、迅雷等等。

4、进入正题,计算机工作时的原理,它一直在做着什么样的处理工作?

计算机工作时一直在处理的是数据,计算机内部能处理的数据只有两种形式,0和1,这是组成计算机硬件的半导体的电气特性。如何让0和1能过表示现实世界的各种信息?那么就需要对他们进行组合和编码。

CPU的指令是由一组组的0和1编码构成。

我们在显示器上看到的各种字符和文字也是由0和1的组合编码而成,最终通过一定的方式在显示器上模拟出字符和文字的形状显示出来。

同样的0和1组成的位数据在不同的地方表示的意义不同,如何区别这样的数据?

计算机系统中所有的信息、数据——包括磁盘文件、内存中的程序、用户的数据以及网络上传送的数据,都是由一串比特表示,也就是0和1的位。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中,同样的字节序列可能表示一个整数、字符串或者机器指令。

5、程序在不同阶段的表示——由人类易懂的高级语言到机器易懂的低级指令

高级语言(比如C语言)编写的程序源码能够被人读懂,但是计算机却不懂,为了能让计算机能够知道如何运行程序,就需要把每条C语言程序语句都转化为一系列的低级机器语言指令,然后这些指令按照一种可执行目标程序的格式打包并以文件的形式存储在硬盘上。

6、执行程序——存放在存储器中的机器能够懂的低级指令被读取、解释、执行

硬盘上的程序被执行时会首先由操作系统按照一定规则和格式读取并加载到内存中,然后调度并交由CPU执行,运行一个程序的过程非常复杂,它需要系统中不同功能的硬件、软件一起协调工作。

无论如何整个过程中的数据信息流遵循输入——》输入出的原则,被各个器件处理然后流转。

7、漫游结束

计算机系统是由硬件和系统软件组成,它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的0和1二进制位,它们依据不同的上下文有不同的解释方式。程序被其他程序编译成不同的形式,开始时是源代码文本,然后被编译器和连接器翻译成二进制可执行文件。

处理器读取并解释存放在主存里的二进制指令。因为计算机花费了大量的时间在存储器、I/O设备和CPU寄存器之间拷贝数据,所以系统中的存储设备就被按层次排列,CPU寄存器在顶部,接着是多层的硬件高速缓存存储器,DRAM主存储器,DRAM主存储器和磁盘存储器。在层次模型中位于更高层的存储设备比低层的存储设备要快,但是单位存储价格也更高。

操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象概念,文件是对I/O设备的抽象概念,虚拟存储器是对主存和硬盘的抽象概念,进程是处理器、主存和I/O设备的抽象概念。

最后网络提供计算机系统之间通信的手段,从某个系统的角度来看,网络就是一种I/O设备。

深入理解计算机系统之旅(一)计算机系统漫游

时间: 2024-11-05 15:47:20

深入理解计算机系统之旅(一)计算机系统漫游的相关文章

深入理解计算机系统,第一章:漫游

计算机系统漫游 1.1 信息就是位+上下文 先看一个简单的Hello World C程序. 1 #include <stdio.h> 2 3 void main() 4 { 5 printf("Hello World!\n"); 6 } 这个程序的源文件是文本格式,以字节序列的方式存储在文件中,由一种叫ASCII码的方式编码.除了文本文件之外的其它文件都是二进制文件. 由HelloWorld程序的存储方式可以猜测,信息,包括磁盘文件.内存中运行的程序.内存中储存的用户数据以

《深入理解计算机系统》第一章计算机系统漫游

信息就是位+上下文 系统中所有信息都是由一串位表示的.区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文. 程序被其他程序翻译成不同的格式     范例代码 1 #include <stdio.h> 2 3 4 5 int main() 6 7 { 8 9 printf("hello world\n"); 10 11 } 每条C语言都必须被其他程序转化为机器指令,以可执行目标程序的格式打包好,以二进制文件形式存放 转化过程分为: 预处理阶段:读取系统头文件stdio

深入理解计算机系统之旅(四)处理器(CPU)的体系结构

1.前言 处理器是很复杂的系统,它不是一蹴而就的,它是经过不断的升级.更新.设计之后的产物,而且如今还在保持着不断的更新. 处理器仅仅能运行一系列的指令,每条指令都仅仅是运行某个简单的操作,比方数字相加.指令相同也须要被编码,这些编码是由一定规则的0和1的二进制位组成,这些指令编码的统称就是处理器的指令集. 未完待续

CSAPP:第一章计算机系统漫游

CSAPP:计算机系统漫游 关键点:上下文.程序运行.计算机系统抽象. 信息就是位+上下文一个程序的运行过程系统的硬件组成编译系统是如何工作的?一个程序的运行过程(c语言举例)计算机系统中的抽象 信息就是位+上下文 ??所谓信息(包括磁盘文件.内存中的程序.内存中存放的用户数据.以及网络上传输的数据),都是由一串比特(bit)表示的,区分不通数据对象的唯一方法是我们读到数据对象时的上下文.??这里的上下文,可以理解为一个"标志",用于区分不通的数据对象,或者进入不同的状态,在不同的上下

计算机系统漫游

计算机系统由硬件系统和软件系统组成,它们共同协作来完成执行程序的任务.作为20世纪(世界上第一台计算机ENIAC与1946年诞生于美国的宾夕法尼亚大学)最伟大的发明之一,计算机系统可以说是人类迄今为止创造的最复杂最精密的工具.今天,借助计算机界的圣经教材<深入理解计算机系统>,我来带领大家探索一下计算机系统的秘密. 1 信息就是位 + 上下文 计算机是信息学科的产物,其主要左右就是帮助人们处理各种各样的信息.而信息本身是一个比较抽象的概念,从百度百科给出的定义中我们可以知道,信息是用来传输和处

计算机系统的概念(1)

一从hello world说起 The only way to learn a new programming language is by writing programs in it.The first program to write is the same for all languages: Print the words Hello, world ——<TCPL> 这是TCPL开篇的一句话,那么作为博客的开篇,就从这个对于学习所有计算机语言的统一入口——hello world程序说

【操作系统】操作系统的理解

[操作系统]今日习题 说下雨就下雨~ 在实验室听了今年的第一场暴雨,甚是畅快.雨过天晴,空气也是无比的清新. 刚刚拍的雨过天晴~喜欢就点赞哦 今天发的比较早,因为想着明天开始就督促自己早点起床,换在早上发文. 回想一下大学几年记忆最深的事情,估计就是一年半坚持早起读书的日子了,每当想起那段时光,都会感谢自己的坚持.后来渐渐明白,坚持一件事情,专注的做一段时间,你所收获的会远远超过你的想象. 1[理解]操作系统在整个计算机系统中处于什么样的位置?[解答]现代操作系统是一个复杂的软件系统, 它与计算

那些让你对计算机有更深理解的基础知识

本文着重介绍计算机基础知识,知道这些知识后,会让你对计算机有更深的理解. 信息的表示和处理 计算机如何表示整数:有符号数和无符号数,尤其是如何用补码表示负数,数字的取值范围. 计算机如何表示浮点数,为什么小数的二进制表示法只能近似表示十进制小数. 数值的转换.移位 这几点非常重要,因为几乎所有的编程语言都有数据类型,而最基本数据类型必然包括整数和浮点数. 搞不清这些表示和运算,在编程中就会遇到一些稀奇古怪的问题. 从汇编层面理解程序的执行 顺序.分支.循环.函数调用.数组.结构体等在汇编层面是怎

在嵌入式开发中应该这样理解嵌入式C编程

一.新手常常问的一个问题:C语言和嵌入式C编程有什么区别?而嵌入式工程师一般都会告诉你,其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的,生成的可执行程序也是不一样的.不同于一般形式的软件编程,基于特定的硬件平台嵌入式系统编程的,势必要求其编程语言具备较强的硬件直接操作能力.毫无疑问,汇编语言是具备这种特点的.然而,由于该语言编写开发过程的复杂性,通常不选择它用于嵌入式系统开发,而C语言是一种"低层次"的语言,已经成为嵌入式系统开发的最佳选择