CPT101计算机系统概念

@[TOC](CPT101 计算机系统概念(持续更新)) 作者:20 ics 七海

计算机系统概念

本文章是根据学校教材整理的学习笔记,仅供参考,如有错误欢迎指出。

计算机类型 (Types of Computers)

  1. 大型计算机 Mainframe computers(1960s)
  2. 超级计算机 Supercomputers (1970s)
  3. 工作站 Workstations (1980s)
  4. 微型计算机 Microcomputers (1980s)
  5. 个人电脑 Personal computers (1980s)(属于微型计算机)
  6. 微控制器 Microcontrollers (1980s) (嵌入式或专用计算机)
  7. 服务器 Servers (1980s) (通过网络network可用)
  8. 单片机 Chip computer

计算机的四个时代 (Computer Generations)

第一代:(1944 ~1958)电子管vacuum tube
第二代:(1959 ~1963)晶体管transistor
第三代:(1964 ~ 1970)集成电路IC(integrated circuit)
第四代:(1971 ~ now) 超大规模集成电路VLSI(Very Large Scale Integration)

计算机系统:软硬件(Computer Systems: hardware & software)

硬件类型

  1. 输入 input
  2. 处理 processing
  3. 输出 output
  4. 存储 storage
  5. 通信 communications

软件类型

系统软件(System software)
  1. 与硬件交互 communication with hardware
  2. 资源管理 resource management
  3. 支持应用程序之间通信facilitates communication among application program
应用软件(Application software)

作用:benefits or assists the user

向后兼容 Backward (Downward) Compatibility for new hardware

新硬件可以运行在旧硬件上编写的程序
Most software written for computers with old hardware can be run on computers with newer hardware

VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)

用于电路设计的高级语言
(非常高速的集成电路硬件描述语言)
(用来规定硬件电路的结构和功能的一种程序设计语言)

支持计算机模拟以及提供输入到自动布局包,安排最后的电路
Supports computer simulations as well as providing input to automatic layout packages which arranges the final circuits

系统的分层结构 (hierarchy of systems)

系统的分层结构
好处:in order to fully understand operations of simple component parts.

操作系统 (Operating system)

  1. 用户可以通过调用操作系统提供的函数来使用硬件的功能
    Functionalities of hardware systems can be brought out by operating systems and thus offered to the user
  2. 用户的程序通过操作系统提供的功能与硬件系统交互
    The user’s programs interact with hardware systems through the functionalities provided by operating systems

优点(Advantages):

  1. 方便编程Ease of programming
  2. 提供对系统和其他用户的保护Protection for the system and for other users.
  3. 公平高效地分配系统资源Fairness and efficiency of using system resources

摩尔定律 (Moore’s Law)

可以放置在给定芯片区域上的电路数量(晶体管数量)大约每两年翻一番
The amount of circuitry (number of transistors) which can be placed on a given chip area approximately doubles every two years.

软硬件交互发展 (Interacting development of hardware & software)

Examples:

1.WIMPs(Windowing interfaces)

视窗(Window)、图标(Icon)、菜单(Menu)以及 指标(Pointing device)
微处理器革命的产品A by-product of the microprocessor revolution

2.浏览器 launch (Network)

计算趋势 (Trend of computing)

Scientific computing – computation
Business computing – data
Personal computing – interaction(交互)
Pervasive computing – ubiquity(普遍存在)
Mobile computing - mobility

输入-处理-输出模型 (Input-Process-Output Model)

输入-过程-输出模型是当代数字计算机的基本结构
The Input-Process-Output Model is the fundamental structure of the current generation of digital computers.
这个过程是由一个特殊的、定制的程序控制的。
The process is to be controlled by a special, custom-made program.
是冯·诺伊曼模型的基本原理
This was an essential scheme of the von Neumann model.

计算机组成原理 (Components of the Computer System)

输入-过程-输出和冯·诺伊曼模型的实现需要三个部分:

  1. 硬件(Hardware)
  2. 软件(Software)
  3. 数据(Data that is being manipulated)

硬件

主要硬件

1. CPU (central processing unit)
2. 内存 (memory)
3. 硬盘 (hard disk)
4. 键盘 (keyboard)
5. 显示器 (display screen)
… …

硬件分类

CPU(中央处理器): 由ALU组成 (arithmetic and logic unit(逻辑计算单元)
主存(Main Memory): RAM Random Access Memory 指内存
辅存(Second Memory): ROM Read-Only Memory 指硬盘, CDs, DVDs等
输入设备: 键盘,鼠标,扫描仪(Scanner)
输出设备: 显示器,扬声器,打印机

软件

计算机硬件只能执行非常简单的操作。为了使其执行有用的任务,这些简单的步骤以程序的形式组合在一起,统称为软件。
These simple steps are combined in the form of programs, which are collectively known as software.

机器指令 (Machine instructions)

CPU执行机器指令, 每个CPU都有自己的指令集(instruction set)
通常为固定的100-200条指令
尽管不同CPU的指令集相似,但没有标准指令集

机器指令类别 (Categories)
  1. 输入输出(Input-output): IN, OUT
  2. 数据传输和操作(Data transfer and manipulations): MOV,ADD, MUL, AND, OR…
  3. 程序控制(Transfer of program control): JMP, JC…
  4. 机器控制(Machine control): 停止处理can halt processing, 重置硬件reset the hardware, INT(interrupt), HLT…
机器指令和高级编程语言(HLL)

HLL: High Level Programming Languages
高级编程语言比机器指令更适合编程
HLL中的程序仍需翻译为机器代码(硬件只能处理机器指令)

冯诺依曼结构 (The von Neumann architecture)

冯诺依曼模型

冯诺依曼瓶颈(bottleneck)

CPU需要等待内存中重要数据和指令的输入输出(I/O)
CPU is continuously forced to wait for vital data (and instructions)to be transferred to or from memory.
(CPU处理速度极快,而内存I/O相对较慢,CPU长时间处于空闲状态)

冯诺依曼结构特点

  1. 数据和指令都存储在内存中不同的区域,将某个内存地址开始的字节全部当做指令,将某个内存地址开始的字节全部当做数据。(使计算机可以区分数据和指令)
  2. CPU从相应的区域分别获取数据和指令
  3. CPU执行程序指令
  4. 数据和指令采用特殊的编码形式(二进制码 Binary code),从而便于CPU理解

哈佛结构 (Harvard architecture)

哈佛结构特点:哈佛结构是一种将程序指令存储和数据存储分开的存储器结构
(程序和数据需要不同的存储器和访问总线)
Requires different memories and access buses for programs and data

与冯诺依曼结构的区别:主要区别在于数据与指令存储空间是否相同,冯诺依曼结构将数据与指令存储在同一空间,不同地址;哈佛结构将数据与指令存储在不同空间,指令和数据的数据宽度可以不同

优势:当取指使用程序空间,执指使用数据空间时,可以同时处理

编译原理(Fundamentals of Compiling)

翻译(Translation)

三种翻译的方式:

  1. 编译 (Compilers): 将高级语言编写的源程序翻译成等价的机器语言(指令序列)。
    Translating HLL instructions into machine code (sequence of instructions) before the code can be run on the machine.
  2. 汇编 (Assemblers): 将汇编语言编写的源程序翻译成与之等价的二进制代码。
    Translating mnemonic form of machine instructions (like MOV, ADD, etc) into their binary codes.
  3. 解释 (Interpreters): 将高级语言编写的源程序翻译一句执行一句,不生成目标文件,直接执行源代码文件。
    Translating HLL instructions into machine code on-the-fly (while the program is running).

编译(Compiling)

编译过程
编译阶段: 源文件(HLL source file) --> 二进制文件(Binary object file) --> 可执行文件(Executable file)
代码运行过程: (编辑->) 编译 -> 链接 -> 加载 -> 运行
//编译时出错: 解决方法只有根据错误信息在源文件中修改
编译成功

链接(Linking)

链接器(Linker): 将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。
可以解析未定义的符号引用(symbolic references),将目标文件中的占位符替换为符号的地址。
————————————————————
大型项目通常分为几个单独的部分或模块。
必须设计、编码和编译每个模块。
一个模块中的代码经常需要引用另一个模块中的数据或子程序。
编译器可以将模块转换为二进制代码,但无法解析对其他模块的引用。
编译后,这些外部引用保持符号化(symbolic),直到链接器开始工作。
链接器将所有二进制部分连接在一起。
如果链接器找不到这些外部引用引用的模块或代码,将报告错误
————————————————————

//项目分块的作用:能使部分功能可重用;实施封装性;便于大型项目的编译(防止电脑内存不够之类的问题);便于维护(一个程序如果有一处改动,就需要整个重新编译)等
//编译器只能编译已定义的符号引用

库文件(Library files)

库文件: 翻译的目标代码。
为程序员提供许多函数,但只有在链接到代码中时才可用。

解释器(Interpreters)

//将高级语言编写的源程序翻译一句执行一句,不生成目标文件,直接执行源代码文件

编译与解释

编译器:
将一个程序作为一个整体翻译成机器代码。
编译和执行过程是分开的。

解释器:
接受一条指令,一次一条,翻译并执行它。
翻译和执行过程是交错的。
解释器与计算机硬件(CPU)有些相似,一次执行一条指令并执行它。(被称为虚拟机)

区别:

  1. 编译代码的执行比解释代码的执行快得多。
  2. 解释器更适合于快速原型设计和经常修改程序的其他情况。
  3. 解释器在错误报告方面更准确。
  4. 解释器可以跨多台不同的计算机提供统一的执行环境。
C与Java

C程序编译、链接和执行:
C语言源代码→编译器(程序)→汇编语言→汇编程序→机器代码

Java:

Java执行过程
Java代码->字节码
字节码可以在JVM上运行。
//相比其他解释型语言,Java先将代码编译成字节码,然后再解释运行,提高了运行效率

代码共享和重用(Code sharing and reuse)

代码共享和重用的三种方法:

  1. Source-level subroutines and macro libraries(源代码级子程序和宏库)
  2. Pre-translated re-locatable binary libraries(预翻译可重新定位的二进制库)
  3. Dynamic libraries and dynamic linking(动态库和动态链接)

共享代码:
共享代码流程图

数据与信息表示(Data, Information)

数据代码(Data Code)

位(bit)

数据存储的最小单位,一位表示一个二进制数(0或1)
A bit is the most basic unit of information
1 byte(字节) = 8 bits

二进制(Binary number system)

二进制
理论上e进制效率最高,越接近e的进制效率越高,三进制的效率比二进制高
但是二进制在实现上比较容易所以计算机使用二进制
Easy to implement on a computer

使用16进制可以方便地简写二进制数。
每个十六进制数字正好代表4个二进制位。

进制转换

十进制转二进制使用短除法(百度)

十进制转p进制

string transform(int n, int p){
//n为待转换10进制数,p为目标进制
	String res = "";
	while(n > 0){
		if(n % p > 9){
			res = (char)('A' + n % p - 10) + res;
		} else {
			res = (char)('0' + n % p) + res;
		}
		n /= p;
	}
	return res;
}

ASCII码

是在非IBM大型机和几乎所有微型计算机上使用最广泛的二进制代码。
计算机中,字符(char, 如’A’~‘Z’, ‘0’ ~‘9’, @#%&等)均使用ASCII码表示。
本质上是一个0-127的整数到各个字符的映射。缺点是最多只能保存256个字符。
一个char占用1字节,也就是8位。

此外还有Unicode(支持多种语言,占16位), EBCDIC等编码方式。

基本数据类型

以Java为例:

char 1 byte
byte 1 byte
short 2 bytes
int 4 bytes
float 4 bytes
long 8 bytes
double 8 bytes

实数表示

IEEE 754 standard
是浮点计算最广泛使用的标准

变量申明(Declaration of variables)

申明时告诉编译器保留正确的内存空间来保存变量
告诉编译器要使用什么编码/解码/表示方案

有符号数的表示方式

原码(true code): 第一位是符号位, 0正1负, 后31位是数字部分的二进制表示, 缺点是符号位不能直接参与运算。
反码(inverse code): 通常是用来由原码求补码或者由补码求原码的过渡码, 正数的反码和其原码相同, 负数反码是除符号位全部按位取反。
补码(complement code): 正数的补码与其原码相同, 负数的补码是其原码除符号位按位取反的结果加1, 由补码求其原码只需再进行一次求补码操作。优点是符号位可以参与计算(利用计量器溢出时最高位自然丢失).

操作系统(Operating Systems)

例子

操作系统

操作系统的作用

Management:
• To control and operate hardware in an efficient way. 管理系统资源

Provide functionalities:
• To allow the user efficient access to the facilities of the machine. 方便用户调用系统资源
• To allow the user fair access to the facilities of the machine. 允许用户公平的使用系统资源
• To allow the user protected access to the facilities of the machine. 保护系统资源
• Interaction with the user. 与人交互

操作系统分层模型(洋葱圈)

操作系统模型
内核(Kernel): 主要功能: 设备驱动,内存分配
CLI(command-line interface): 命令行输入界面

现代操作系统

特点1:Muti-tasking
允许程序同时运行(simultaneous processing)

DOS(Disk Operating System磁盘操作系统):
要运行第二个程序,需要等待上一个程序执行完成
后台假脱机(Background spooling)提供了最低限度的并发性(concurrency)

Windows:
采用时间片轮转调度策略
与其他UNIX系统和Linux系统一样允许程序并发运行

特点2:Muti-users
允许多用户同时操作

系统交互方式

CLI (command line interpreter.) 都支持
– DOS: type a command in a command line.
– Unix/Linux: shell scripts (sequences of instructions).
– Windows/Mac OS X: click with mouse on icons.

操作系统示图

操作系统
下学期有专门的操作系统课,详细内容不多赘述

计算机网络

操作系统一般提供对网络设备的访问(网络api)

客户端服务端模型

客户端(Client):请求的发起人
服务端(Serve):服务的供应商

客户端服务端交互

第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
三次握手

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值