操作系统-内存管理
内存管理的概念内存空间的分配与回收为了更好能适应不同大小的程序要求和提高内存的利用率,就需要对内存空间进行分配与回收。 覆盖与交换覆盖于交换技术是在多道程序环境下用来扩充内存的两种方法。 覆盖技术 覆盖技术的思想就是将程序分为多个段。常用的段常驻内存,不常用的段在需要时调入内存。 常驻内存的段放在“固定区”中,调入后就不再调出(除非运行结束), 不常用的段放在“覆盖区”,需要用到时调入内存,用不到时调出内存。 缺点:由于必须由程序员声明覆盖结构,操作系统完成自动覆盖。对用户不透明,增加了用户编程负担 交换技术 交换技术的思想技术当内存空间紧张时,系统将内存某些进程暂时换出外存,把外存中某些以具备运行条件的进程换入内存(类似进程在内存与磁盘间动态调度)。 连续分配管理方式连续分配是为用户程序分配一个连续的内存空间。 单一连续分配在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,存放操作系统相关数据;用户区用于存放用户进程相关数据。 在单一连续分配中,内存只能有一道用户程序,用户程序独占整个用户区空间。 优点:实现简单,无外部虽破;可以...
操作系统-进程与线程
进程的概念为了让使参与的每个程序都能独立地运行,为之专门配置的一个数据结构就称为进程块(Process Control Block, PCB)。而由程序段、相关数据段和PCB三部分构成了进程实体(又称进程映像)。 PCB是进程存在的唯一标识,当进程被创建时,操作系统会为其创建PCB,结束后会回收其PCB。 若执行相同的三个程序,此时会将三个程序载入进程,它们的PCB、数据段各不相同,但程序段的内容都是相同的。 进程的状态与转换进程通常有以下几种状态: 运行态。进程正在处理机上运行。 就绪态。进程获得了除处理机外的一切所需资源,一旦得到处理机,便可立即运行。 阻塞态。又称等待态,进程正在等待某一事件(不是在等待CPU处理完成)而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使根据阻塞原因的不同,可设置多个阻塞队列。 创建态。进程正在被创建,尚未转到就绪态。 终止态。进程正从系统中小时,可能是进程正常结束或其他原因推出运行。 由于进程的整个生命周期都在运行态、就绪态、阻塞态三种状态,所以也称这三状态为基本状态。 进程控制进程控制主要是对系...
计算机组成原理-IO系统基本概念
IO控制方式简介假设有这么一段代码: #include <stdio.h> int main(){ char i; scanf("%c", &i); printf("%c",i); return 0; } 当上方代码执行到scanf("%c", &i);此时需要I/O设备来输入内容使程序继续进行下去。 此时CPU有两种解决方案: 程序查询方式:CPU不断轮询检查I/O控制器的状态寄存器,检测到状态为”已完成“后,再从数据寄存器取出输入数据。 程序中断方式:等待键盘I/O时可以先让CPU执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据。 用上述方法都需要用CPU做中转站来让主存和IO设备相互联系。 若对磁盘等高速外设就不适合使用上诉方法,因此就可以用DMA(Direct Memory Access)控制方式。 DMA控制方式:主存和高速io设备之间建立一条直接数据通路。每完成...
计算机组成原理-总线概述
总线的基本概念总线是一组能为多个部件同时共享的公共信息传送线路。由于总线发送信号,与总线连接的所有部件都能接受到,所以同一时刻只能有一个部件发送数据。可有多个部件同时接受数据。 总线的特点:共享:指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。 分时:指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时向总线发送信息。 总线的分类串行总线与并行总线串行总线: 每次传送只传送1bit数据。 优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。 缺点:在数据发送和接受的时候要进行拆卸和装配,要考虑串行,并行转换的问题。 并行总线: 每次可以并行发送多bit数据。 优点:总线的逻辑时序比较简单,电路实现起来比较容易。 缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。 按功能进行划分片内总线片内总线式芯片内部的总线,如CPU内部寄存器与寄存器之间、ALU之间的公共连接线...
计算机组成原理-多处理器的基本概念
SISD、SIMD、MIMD的基本概念单指令流单数据流(SISD)结构该计算机通常仅包含一个处理器和一个存储器。 特性: 各指令序列只能并发、不能并行,每条指令处理一两个数据。 不是数据级并行技术。 硬件组成: 一个处理器+一个主存储器 若采用指令流水线,需设置多个功能部件,采用多模块交叉存储器。 前面介绍的计算机架构都是SISD结构。 单指令流多数据流(SIMD)特性: 各指令序列只能并发、不能并行,但每条指令可同时处理多个数据。 是一个数据级并行技术。 硬件组成: 一个指令控制部件(CU)+多个处理单元/执行单元(如ALU)+多个局部存储器+一个主存储器 每个执行单元有各自的寄存器组、局部寄存器及地址寄存器。 不同执行单元执行同一条指令,处理不同的数据。 多指令流单数据流(MISD)能同时执行多条指令,处理同一个数据,现实中不存在这种计算机。 多指令流多数据流(MIMD)如现实中的intel i5或 i7等处理器。 特性: 各指令序列并行执行,分别处理多个不同的数据。 是一种线程级并行,甚至是线程级以上并行技术。 进一步分类可分为: 多...
计算机组成原理-指令流水线
指令流水的定义一条指令的执行过程可以分成多个阶段,每个阶段功能由相应的功能部件完成。而视各阶段为相应的流水段,则指令的执行过程就构成了一条指令流水线。 顺序执行方式即只有上一条指令完成后才能进行下一条指令的执行。 若设取指、分析、执行三个阶段的时间都相等,用t表示,顺序执行方式可得: 总耗时T=$n\times 3t=3nt$。 传统的冯诺依曼机就是采用顺序执行方式,该方式又称串行执行方式。 优点:控制简单,硬件代价小。 缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。 一次重叠执行方式 总耗时T=$(n-1)\times 2t+3t=(1+2n)t$。 优点:程序的执行时间缩短了1/3,各功能部件的利用率提高。 缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂。 二次重叠执行方式 总耗时T=$(n-1)\times t+3t=(2+n)t$。 优点:与顺序执行程序的执行时间缩短了2/3,各功能部件的利用率提高,这是一种理想的指令执行方式...
计算机组成原理-控制器的功能和工作原理
硬布线控制器硬布线控制器时根据指令操作码、目前的时钟周期、节拍信号以及机器状态条件来发出“微命令”。 下方图中FE为取值阶段、IND为间接寻址阶段、EX为执行阶段、INT为中断阶段。 硬布线控制器的设计设计步骤: 分析每个阶段的微操作序列(取值、间址、执行、中断四个阶段),确定指令在什么阶段。 选择CPU的控制方式,确定采用定长机器周期还是不定长机器周期,每个机器周期安排几个节拍。 安排微操作时序,如何在规定节拍内完成整个机器周期的所有微操作。 电路设计 取值周期内的微操作取值周期所有的指令都是一样的,即 PC -> MAR 1 -> R M(MAR) -> MDR MDR -> IR OP(IR) -> ID(指令译码器,Instruction Decoder) (PC) + 1 -> PC 间址周期内的微操作该阶段所有指令都一样 Ad(IR) -> MAR 将IR地址码部分放到MAR中,即形式地址来找有效地址 1 -> R M(MAR) -> MDR 找到有效地址的数据放入MDR中 MDR -&...
计算机组成原理-数据通路的功能和基本结构
数据通路的基本结构数据通路的基本概念: 内部总线。使指同一部件,如CPU内部连接各个寄存器及运算部件之间的总线; 系统总线。是指同一台计算机系统的各部件,如CPU、内存、通道和各类IO接口间互相连接的总线。 CPU内部单总线方式单总线模式就是将所有寄存器的输入和输出端都连接到一条公共通路上,这种结构简单,但数据传输存在较多冲突现象,性能较低。 单总线模式下寄存器之间数据传送若想把PC内容送至MAR,实现传送操作的流程及控制信号为: (PC)->Bus,即PC先把信号发送给CU,然后CU给PCout高电平,使PC的值可以传送到总线中。 Bus->MAR,然后CU给MARIN高电平,总线内容传入MAR中。 单总线模式下主存与CPU之间的数据传送把CPU中数据发送给主存,比如CPU从主存读取指令,流程如下: (PC)->Bus->MAR Pcout和MARin有效,将PC中值通过总线放到MAR中 1->R CU发读命令(通过控制总线发出),使MAR可以通过地址总线将地址传到主存。 MEM(MAR)->MDR MD...
计算机组成原理-指令执行过程
了解指令执行过程之前,需要了解指令的一些基本概念。 指令周期指令周期是CPU从主存中每取出并执行一条指令所需的全部时间。 指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。 而一个机器周期又包含若干时钟周期(也成为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位) 由上图可得每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。 指令工作周期总共可以区分为四个阶段:取值周期、间址周期、执行周期和中断周期,而为了区别不同的工作周期,在CPU内设置4个标志触发器FE(对应取值)、IND(对应间址)、EX(对应执行)、INT(对应中断)来区别为哪个工作周期。 指令周期的数据流取指周期若想进行取指,首先PC会想MAR发送当前指令地址,然后CU会发出控制信号,经控制总线传到主存,同时MAR中地址信息也会通过地址总线发送到主存中,此时主存中所读出的数据会通过数据总线传到MDR中,最后将MDR中获取到的数据放到IR中,就完成了一次取指操作。 间指周期有些指令取完后会进入间指周期,此时IR中已经放着数据的地址,要再通过取指操作来进行间接寻址。 指令执行方案单...
计算机组成原理-CPU的功能和基本结构
CPU的功能中央处理器CPU由控制器和运算器组成。 CPU的具体功能包括: 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。 操作控制。一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求尽心动作。 时间控制。对各种操作加以时间上的控制。 数据加工。对数据进行算术和逻辑运算。 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。 CPU的基本结构CPU主要由运算器和控制器组成, 运算器主要负责对数据的加工,进行逻辑和算术运算等操作。 控制器负责协调并控制计算机各部件执行指令的顺序等操作,包括取指令、分析指令、中断等操作。 运算器的基本结构运算器由算术逻辑单元(ALU)、通用寄存器组、暂存寄存器、累加寄存器(ACC)、程序状态寄存器(PSW)、移位器、计数器(CT)等所组成。 算术逻辑单元主要功能是进行算术/逻辑运算。 通用寄存器如AX、BX、CD、SP(堆栈指针,用于指示栈顶的地址)等,用于存放操作数(包括源操作数、目的操作数及中间结...
计算机组成原理-CISC和RISC的基本概念
复杂指令系统计算机(CISC, Complex Instruction Set Computer)设计思路:一条指令完成一个复杂的基本功能,例,x86架构,主要用于笔记本,台式机等。 CISC的主要特点: 指令系统复杂庞大,指令数目一般200条以上。 指令长度不固定。 可以访存的指令不受限制。 各种指令使用频率相差大。 各种指令指令时间相差大。 控制器大多数采用微程序控制。 难以优化编译生成高效的目标代码程序。 精简指令系统计算机(RISC, Reduced Instruction Set Computer)设计思路:一条指令完成一个基本“动作”;多条指令组合完成一个复杂的基本功能,例,ARM架构,主要用于手机、平板等。 RISC的主要特点: 选取使用频率最高的一些简单指令,复杂指令功能由简单指令的组合来实现。 指令长度固定,指令格式种类少。 只有Load/Store(取数,存数)指令能访存,其余指令的操作都在寄存器之间进行。 CPU中通用寄存器数量多。 RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。 以硬布线控制为主。 重视编译优化工作,以减少程...
计算机组成原理-程序的机器代码表示
x86汇编语言指令基础x86汇编语言是指所有结尾为86型号的cpu所能解析的语言。 指令的格式为:操作码 + 地址码。 以mov操作(mov指令功能,将源操作数s复制到目的操作数d所指的位置)为例: mov eax,ebx:意思是将寄存器ebx的值复制到寄存器eax中。 mov eax,5: 意思是将立即数5复制到寄存器eax中。 mov eax, dword ptr [af996h]:意思是将内存地址 af996h所指的32bit值复制到寄存器eax中。 mov byte ptr [af996h], 5:意思是将立即数5复制到内存地址 af996h所指的一字节中。 内存读写长度的指明: dword ptr——双字, 32bit word ptr——单字,16bit byte ptr——字节,8bit x86架构相关寄存器 若通用寄存器去掉开头的英文字母E,即AX,BX,CX,DX,此时大小为低16bit。 若未指明主存读写长度时,默认32bit。 例: mov eax, [ebx] 等价于 mov eax, dword ptr [ebx] 常用指令以下的s均为源操作数(...
