1. 存储管理的基本概念 逻辑地址:用户地址,从零开始编号 一维逻辑地址:(地址) 二维逻辑地址:(段号: 段内地址) 主存储器的复用方式 按分区:主存划分为多个固定/可变分区,一个程序占一个分区 按页架:主存划分为多个固定页架,一个程序占多个页架 存储管理的模式 单连续:一维逻辑地址程序,占一个固定/可变分区 段   式:二维逻辑地址程序,占多个可变分区 页   式:一维逻辑地址程序,占多个页架 段页式:二维逻辑地址程序,占多个页架 地址转换:逻辑地址 --> 物理地址 静态重定位:程序装入内…
1. 计算机软硬件系统 冯诺伊曼结构 以运算单元为核心,控制流由指令流产生 程序和数据存储在主存中 主存是按地址访问,线性编址 指令由操作码和地址码组成 数据以二进制编码 其他:参考<重学计算机-计算机组成原理> 2. 计算机操作系统的发展 概述:任何一台机器都有其操作平台和操作系统 洗衣机:开关表示.按钮控制.亮灯显示 演进过程 手工操作:手动调动地址和数据按钮录入内存,然后点运行 引进装入程序:用卡片和纸带,通过ROM上的装入程序载入内存 汇编语言:对指令提供了助记符号 高级语言:面向问题…
1. IO的控制方式 演进过程:轮询 --> 中断 --> DMA --> IO通道 经典布局:南北桥 PS:详见<计算机组成原理> 2. IO的实现 软件实现层次:硬件 --> 中断处理程序 --> 设备驱动程序 --> 独立于设备的IO软件 --> 用户空间的IO软件 IO缓冲: 解决问题: 设备与CPU速度不匹配 逻辑记录大小和物理记录大小不一致 减少IO操作对CPU的中断次数 实现:缓冲区 内存中开辟一个专门临时存放IO数据的区域 分类:单缓冲…
1. 输入输出系统概述 组成:外设.接口.总线.管理软件 基本功能 完成计算机内外的信息传递 保证CPU正确选择输出设备 利用缓冲等,实现主机与外设的速度匹配 特点:异步性.实时性.设备无关性 输入过程:CPU把地址值放入总线 --> CPU等候设备数据有效 --> CPU从总线读入数据存入寄存器 输出过程:CPU把地址值放入总线 --> CPU把数据值放入总线 --> 设备等数据有效取走数据 IO系统性能:存储IO.通信IO 连接特性:哪些设备可以和IO相连 IO系统容量:IO系…
1. 系统总线的特性及应用 总线概念:将计算机系统中各部件连接起来 总线分类:(外部/内部,系统/非系统,串行/并行,同步/异步...) 按用途分类: 存储总线:cpu与存储器 系统总线:连接存储总线和IO总线的中间总线 IO总线:连接外部设备 按位置分类: 外部总线:USB,火线(IEEE1394) 内部总线:PCI(连网卡),AGB(连显卡) (芯)片内总线:AMBA(ARM处理器) 按组成分类 数据总线:传数据,双向三态 地址总线:传地址,单向三态 控制总线:控制信号和时序信号 电源线和地…
1. 指令系统基本概念 指令集:一台机器所有指令的集合.系列机(同一公司不同时期生产):兼容机(不同公司生产) 指令字长:指令中包含的二进制位数,有等长指令.变长指令. 指令分类 根据层次结构:高级.汇编.机器.微指令 根据地址码字段个数:零.一.二.三地址指令 根据操作数物理位置 存储器-存储器(SS) 寄存器-寄存器(RR) 寄存器-存储器(RS) 根据指令功能:传送.算术运算.位运算.控制转移 指令格式:操作码+数据源+寻址方式 2. 寻址方式 指令寻址方式:顺序寻址,跳跃寻址 操作数寻址…
1. 存储系统层次结构 主存速度缓慢的原因:主存增速与CPU不同步,执行指令期间多次访问主存 主存容量不足的原因: 存在制约主存容量的技术因素:如由CPU.主板等相关技术指标规定了主存容量 应用对主存容量需求不断扩大:window98 -- 8M,windows 8 -- 1G -----> 存储体系结构化层次:  CPU -- Cache1 -- Cache2(解决速度) -- 主存 -- 辅存(解决容量) 存储体系结构化层次理论基础: 时间局部性:程序体现为循环结构 空间局部性:程序体现为顺…
1.基本概念 真值:+0101,-0100:机器数: [x]原=0101 2.几种机器数 原码:x = -0101,[x]原 = 1101 反码:x = -0101,[x]反 = 1010 补码:x = -0101,[x]补 = 1011 移码:x = -0101,[x]移 = 2^n + x = 0011 PS:这里说说对补码与移码自己的理解.补码是为了化减法为加法方便计算机设计运算,移码是为了方便比较大小,用在浮点数的阶码中. 补码——任何一个有模的系统中,减法都可以通过加其补码来表示.最简…
1.冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 2.计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层 3.计算机性能指标 非时间指标 [字长]机器一次能处理的二进制位数 ,常见的有32位或64位 [总线宽度]数据总线一次能并行处理的最大信息位数,一般指运算器与存储器之间的数据总线的位数 [主存容量]主存的大小 [存储带宽]单位时间内与主存交换的二进制位数 B/s 时间指标 [主频f]时…
1. 并发程序的基本概念 程序顺序性 内部顺序性:CPU严格按照顺序执行指令 外部顺序性:程序员设计程序时往往用顺序设计的思想 顺序程序特性 程序执行的顺序性 计算环境的封闭性: 程序执行时犹如独占资源 计算结果的确定性 计算过程的可再现性 并发进程 无关的并发进程:一组并发进程,在不同变量集上运行 交往的并发进程:一组并发进程,共享某些变量,相互影响 并发进程制约关系 进程互斥:争夺某一个资源 进程同步:共同完成某一个任务,协调先后顺序 发生问题: 与时间有关的错误:结果错误.永远等待 临界区…
1. 文件系统 文件系统概述 文件的组织: 逻辑结构:流式.记录式 物理结构:顺序.连接.直接.索引 文件的存取:顺序.直接.索引 文件的控制:逻辑控制.物理控制 文件的使用:打开.关闭.读.写.控制 文件的存储 块:存储介质上连续存储的区域,是主存与辅存信息交换的单位 顺序存取设备:光盘.磁带 直接存取设备:磁盘 2. 文件 文件的逻辑结构 流式文件:只是由一段字节序列构成的 记录式文件:有含义有结构的信息,比如员工工资记录 文件的物理机构 顺序文件:块块之间相连,批处理文件和系统文件一般都这…
1. 指令与处理器模式 指令执行周期:取指.译码.执行 指令分类(根据权限) 特权指令:只能被操作系统内核使用(启动IO,置PC值) 非特权指令:所有程序都能使用 处理器模式: 共有四种:0内核模式,1系统调用,2共享库程序,3用户模式 一般来说:只有0内核模式(能执行全部指令)和3用户模式(只能执行非特权指令) 模式切换: 用户模式 --> 内核模式(系统调用.异常.响应中断) 内核模式 --> 用户模式(中断返回指令) 2. 中断 概念: 操作系统是中断驱动的.即中断是激活操作系统的唯一方…
1. CPU的组成与功能 2. 数据通路 概念:执行部件间传送信息的路径,分共享通路(总线)和专用通路 抽象模型:时钟驱动下,A --> 组合逻辑 --> B D触发器定时模型: 时钟触发前要稳定一段时间:建立时间(Setup Time) 时钟触发后要稳定一段时间:保持时间(Hold Time) 时钟触发到输出稳定的时间:触发器延迟(Clk_to_Q) 与时钟周期的关系: 时钟周期 > Clk_to_Q + 关键路径时延 + Setup Time Clk_to_Q + 最短路径时延 &g…
1. 定点数运算及溢出 定点数加减法:减法化加法,用补码直接相加,忽略进位 溢出:运算结果超出了某种数据类型的表示范围 溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出 方法1:V = XYS + XYS(XY为两个加数的符号位,S为结果的符号位,_表示非),那么V = 1则为溢出 方法2:V = C0 ⊕ C1(C0是最高数据位产生的进位,C1是符号位产生的进位),那么V = 1则为溢出 方法3:V = Xf1 ⊕ Xf2(数据采用变型补码 Xf1Xf2 X0X1X2…
1.封装 import java.util.Date; public class Human { protected String name; protected BirthDay birthDay; protected String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return…
总算解决一大心头之患了,比想象中容易,通宵两夜,刷完了十个实验,这个实验就是最后的了.感慨颇多.特地写篇总结. 想做一件事,就立马去做把.你会发现没那么困难,往往最大的困难,是心里的困难. 培养了HDL(Hardware Description Language)思维,并行,串行混合.它先是一个电路,再才是一个程序,电路为主,程序为辅,用RTL的思维去思考. 这个实验也不怎么难,就是一个大的模拟题,当年ACM给我良好的代码功底受益颇多. 能硬件级别揣摩CPU的一点点运行方式,但是还有很多疑问,需…
Linux入门 linux简介   学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两类:1)系统调用接口(调用内部接口),系统分组概念(1组,2组,3组): 2)内核:负责管理PC所有物理资源(硬件) 硬件 虚拟机如何建立:进入BIOS程序,设置intel中virtual technology:yes(允许建立虚拟机) 如何对linux系统盘(20GB)进行分区:一般根目录(/bo…
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件无关的,并且有许多独特的优点. 2.为什么使用C语言 C语言是一种融合了控制特性的现代语言,在现在的计算机科学的理论和实践中,控制特性是很重要的.其设计使得用户可以自然地采用自定向下的规划.结构化的编程.,以及模块化得设计,这样的编程可以使得编写出来的程序更可靠,更易懂.因为C语言具有设计特性.高效…
首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() }); setTimeout(()=>console.log("d"), 0) r.then(() => console.log("c")); console.log("b") // a b c d 了解过 Promise 对象的都知道…
(实验五  CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月  8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2.用微程序控制器控制模型计算机的数据通路. 3.通过TEC-5执行由8条机器指令组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念. 二.实验内容 1. 实验电路图1 2.实验任务 (1)将下表5-1的程序按机器指令格式手工汇编成二进制机器代码(要求预习时完成). 表5-1 内存地址…
最近因为做了些和hadoop相关的项目(虽然主要是运维),但是这段经历让我对hadoop的实际运用有了更加深入的理解. 相比以前自学hadoop,因为没有实战场景以及良好的大数据学习氛围,现在回顾下的确相当肤浅. 因此我要好好重学下hadoop,短期计划如下: 1.重学HDFS知识 2.重学mapreduce,包括老版的mr以及新的yarn 3.学习hive和pig 4.学习hbase 5.以上学习都是通过理解其架构原理为目的,最后结合大型网站架构里存储的问题,进一步完善关于解决存储瓶颈的知识.…
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例:姓名-电话,通过姓名得到电话),通过Map创建的对象key都 不可以重复. 它的两个常用子类:HashMap类和HashTable类. HashMap类:无序存放的,key不允许重复 HashTable类:无序存放,key不允许重复 key值可通过Map的方法keyset获取全部的key值,返回是个…
计算机组成原理往年试题以及答案(下载链接!!!) 太子妃升职记(1~36) ::http://pan.baidu.com/s/1dDP5Kqd…
最近想开发一个小工具,需要用到3D,果断上OpenGL,借这个过程把OpenGL重学一遍. 工欲善其事,必先利其器,先把工具都搞好. [开发语言] 果断C+OpenGL,不解释. [开发环境] MinGW Developer Studio 官网下载链接:http://vaultec.mbnet.fi/mingwstudio.php 我下载的是带MinGW的包,没有下GCC的包,是怀疑不能debug(我没有验证过,仅仅是怀疑). 悲剧的是Avast报病毒(其实根本没有病毒,不知道最近这娃怎么了,老…
老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创 建了通道,实现了和服务端的通信.然而,与服务端通信的编程模型不只一种,今天我们来学习利用另外一个服务类ClientBase<>来完成 同样的工作,了解了这个类的使用方法,我们对服务引用中的关键部分就能够理解了. ClientBase<>类也是一个泛型类,接受服务协定作为泛型参数,与Ch…
写在开头的话:这学期没有写太多的代码,终于把中英文两篇论文弄完了,趁着中间的空隙,想想找工作的处境.自己也定了自己的方向.不管学什么语言吧,每个语言都有自己的优势和使用的群体.只要自己是良马,终会有伯乐赏识. 定的标题为“重学C++” 本人之前使用C++基本上用作算法编写,MFC界面的学习编写,集成OpencV进行图像处理的项目开发或者论文实验 总的来说,能处理基本问题.但是远不能达到灵活的地步.所以下载了两本书<effective C++>和<effective STL>我希望能…
原文:从零开始学Xamarin.Forms(五) 技巧 由于HTML5规范于2014年10月终于定稿,公司.net开发人员较少,国内外已有了较为成熟的UI框架.手机软件硬件的快速发展等等原因,所以我就不打算再使用Xamarin了,而是采用HTML5+CSS3+Javascript的方式来进行跨平台的开发.之前在探索Xamarin中积累了一些小经验也同时分享给大家,希望能给大家带来帮助. 1.TabbedPage中嵌入NavigationPage,NavigationPage中的Root的titl…
http://blog.csdn.net/lfdfhl/article/details/51671038 深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure…
从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WPF(三)Prism-Region? 从PRISM开始学WPF(四)Prism-Module? 从PRISM开始学WPF(五)MVVM(一)ViewModel? 从PRISM开始学WPF(六)MVVM(一)Command? 0x5 MVVM 蛤蛤,终于到MVVM了.特别是前面的Module,忒难写,反正大概知道是怎么用就好了,具体怎么个容器,怎么个依赖注入,我也不是很懂,Prism重度依赖容器…
什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工作,解放劳动力 计算机组成原理 计算机由五大组成部分,分别是控制器.运算器.存储器.输入设备和输出设备.其中控制器+运算器是计算机的中央处理器(称为CPU),相当于人类的大脑 控制器 控制器是整个计算机的中枢神经,根据要求对计算机进行相应的控制 运算器 运算器是对数据进行各种运算和判断,即对数据进行…