一、计算机体系结构
1、冯·诺依曼体系结构(储存程序型电脑)
(1)采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中。
不可编程的计算机器(计算器,学习机,非智能手机),不提供API,仅内含固定用途的程序,只能读数据
(2)存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
(3)指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。
(4)通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
(5)以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。
(6)数据以二进制表示。
(2)顺序执行程序.
2、哈佛结构: 将程序资料与普通数据分开储存,两个硬盘,两个内存...
3、CPU(Central Processing Unit)
ALU(Arithmetic and Logic Unit):
算术逻辑单元(ALU)、
累加器
状态寄存器
通用寄存器组
CU(Control Unit):
IR(Instruction Register):存放指令
PC(Program Counter):存放下一条指令所在单元的地址
ID(Instruction Decoder)指令译码器
OC(Operation Controller)
寄存器,高速缓存,数据状态控制总线
二、操作系统
1、操作系统内核,提供三个抽象:
文件对I/O设备的抽象,虚拟存储器对主存和硬盘的抽象,进程对处理器主存I/O设备的抽象
文件:字节序列。文件是个抽象,使得程序统一对待各种I/O设备,包括网络
2、操作系统在CPU寄存器,主存,I/O设备间拷贝数据,形成了存储层次结构:
CPU寄存器,芯片的高速缓存SRAM-->芯片外的高速缓存SRAM-->主存DRAM-->本地硬盘/网络分布式文件系统。
拷贝次数越少,越好,netty,零拷贝
三、信息的表示与处理(信息=bit+上下文)
1、大多数用byte作为最小的可寻址存储器单位,比如最小的类型为byte类型。
2、virtual memory: 程序把存储器视为一个非常大的字节数组,每个字节都有一个唯一的数字来标识,成为地址(address)
所有可能地址的集合称为virtual address sapce
3、字长(word size): 指明整数和指针数据的标称大小(nominal size),虚拟地址以这样的字来编码
4、DMA直接存储
DMA:Direct Memory Access(存取)
使得外围设备可以通过DMA控制器直接访问内存,而不需要依于 CPU 的大量中断负载。
DMA控制器
DMA传输前,CPU要把总线控制权交给DMA控制器,结束后再交回给CPU。
DMA控制器与CPU分时使用内存的三种方式:
(1)停止CPU访内存: DMA传输时,CPU闲置,外围I/O存取慢,内存快,得不到充分利用
(2)周期挪用;
(3)DMA与CPU交替访内存。
根本原因:四者权衡:I/O设备读写周期,CPU工作周期,内存存取周期,DMA控制权转移。
进程:操作系统对运行程序的一种抽象,一个系统上,多个进程都好像独占硬件,称之为并发执行
context switching: 一个进程的指令和另一个进程的指令交替进行。
需要保存进程运行的所有状态信息:PC,寄存器,主存内容
虚拟存储器(虚拟存储空间)
为每个进程抽象出一个存储器,好像每个进程都独占存储器,
相关推荐
"深入理解计算机系统笔记" 计算机系统是一个复杂的系统,它涉及到硬件、软件和相关的理论知识。本笔记涵盖了计算机系统的多个方面,包括整数运算、浮点数运算、寄存器、栈和堆、汇编语言、编译系统、指令集架构等。...
这本书有多经典就不再赘述了。由于是图片书,所以有点大。不过效果还可以,上面有一些我个人的笔记,相信对阅读有些帮助。建议阅读3遍以上,多多益善。可以作为程序员终身发展的陪伴读物,良友啊。
通过对这两个主题的深入理解,开发者能够构建出更加高效、稳定、易于维护的Web应用和数据仓库系统。这份读书笔记为读者提供了丰富的信息和实用的知识,希望能够助力读者在学习和工作中取得更好的成果。
本读书笔记整理了《深入理解Linux内核》的部分内容,旨在帮助新手理解Linux内核是如何通过硬件支持实现内存寻址和分页的。 首先,Linux的内存寻址使用逻辑地址,由两部分组成:段标识符(Segment Selector)和偏移...
这篇读书笔记详细记录了对这本经典书籍的理解和解析,旨在帮助读者深入理解ARM技术。 1. **ARM处理器架构**:ARM(Advanced RISC Machines)是一种精简指令集计算机(RISC)架构,以其高效能和低功耗闻名。ARM...
参考深入理解计算系统 第12版 读书笔记
通过对这些问题的认识和理解,设计者能够避免这些陷阱,从而设计出更加高效、可靠的计算机系统。 通过阅读本章节,读者可以对计算机体系结构有一个全面的了解,从设计原则到性能分析,从硬件实现到软件优化,为深入...
《TCP/IP卷1、2读书笔记》是对网络通信领域经典之作——"TCP/IP详解"的深入学习和理解的结晶。TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网的基础,是计算机网络之间进行通信的标准协议集。...
哈工大的操作系统课程由资深教授刘国军指导,旨在深入理解操作系统的原理与实践。这篇读书笔记是根据第一周的学习内容编写的,涵盖了操作系统的基础概念和核心功能。 在第一周的学习中,我们首先会接触到操作系统的...
同时,理解计算机底层原理,如冯诺依曼体系结构、CPU、内存等概念,有助于深入理解JS如何与计算机交互,从而写出更高效的代码。熟悉开发工具,如IDE(集成开发环境)和命令行工具,可以提高开发效率。例如,掌握编译...
这篇读书笔记主要围绕书中的核心概念和技术进行阐述,结合博主 Zhou Jianquan 在ITEYE上的博客文章,我们可以探讨以下几个关键知识点: 1. **操作系统的基本概念**: 操作系统是计算机系统的核心,它负责管理硬件...
总的来说,线性代数笔记涵盖的内容广泛,从基本概念到高级应用,如矩阵的几何解释、线性变换、最小二乘法、奇异值分解、主成分分析等,都是深入理解和应用线性代数所必须掌握的知识点。这些笔记为学习者提供了一条...
《ARM体系结构与编程》读书笔记不仅记录了作者对ARM技术的深入理解与探索,还体现了对技术积累与分享的重视。正如作者所言,“不积跬步,无以至千里;不积小流,无以成江海”。每一次的学习和实践都是向更高目标迈进...
第一章,作者首先引入了嵌入式系统的概念,包括嵌入式系统的特点、应用领域以及与通用计算机的区别。这一部分旨在帮助读者理解嵌入式系统的基本工作原理和设计目标。 第二章重点讲述了嵌入式Linux C语言开发工具的...
理解中断的分类、处理流程和中断向量的概念,对于深入理解计算机系统的工作机制至关重要。 在实际操作中,学习微机原理与接口技术通常会涉及汇编语言编程,通过编写简单的汇编程序,可以直观地了解计算机指令的执行...
在深入探讨读书笔记之前,首先应当明确《Pattern Recognition and Machine Learning》(PRML)一书的内容与重要性。该书是由Christopher M. Bishop所著,是机器学习领域的经典教材之一,广泛应用于相关专业的教学与...
这套资源将帮助学习者从基础概念学习,到深入理解,再到实际编程能力的提高,形成了一条清晰的学习路径。在学习过程中,学习者应将理论知识与编程实践相结合,通过动手编程来不断巩固所学知识。通过这一系列的资源和...
读书笔记PDF包含了作者对书中的关键观点、论证过程以及逻辑结构的提炼和解读,旨在深化读者对逻辑学的理解。这篇笔记以教育为主题,将抽象的逻辑原理与实际应用相结合,使得学习更为生动且实用。 首先,逻辑学是...
《逻辑与计算机设计基础》是计算机科学领域的一本经典教材,尤其对于学习数字逻辑与部件设计的大学生来说,它是深入理解计算机硬件基础的重要资源。第五版的书籍通常会包含最新的理论和技术更新,使得内容更加贴近...
《多核应用编程》读书笔记 在当今计算机技术飞速发展的时代,多核处理器已经成为主流,为提升系统性能和处理复杂任务提供了强大的硬件基础。《多核应用编程》这本书深入探讨了如何有效地利用多核处理器的计算能力,...