热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机操作系统原理刘华文段正杰课后答案,计算机操作系统原理第二版课后答案

页是

最近准备i面试,抽时间回顾一下计算机操作系统原理.  -2018.10.1

1、硬件基础

计算机的构成:

处理器(CPU):主要包括运算器、控制器内存(主存储器)输入输出设备

详细的讲,CPU内部包括:

存储器地址寄存器 MAR:  用于确定下一个要读写的存储器地址存储器缓冲寄存器 MBR: 用于存放要写入存储器的数据,或者从存储器中读取的数据输入/输出地址寄存器 IO AR: 用于确定一个输入输出设备输入/输出缓冲寄存器 IO BR: 用于在输入输出模块和处理器间交换数据 2.指令,内存,中断

基本指令的执行周期包括:

开始-->取指-->执行指令-->检查中断-->停止   (取指和执行指令循环进行)

中断处理的方法:

处理一个中断时,禁止其他中断设置中断优先级,高优先级打断低优先级的中断处理程序

内存有:

随机存储器(RAM):也有SDRAM静态随机存储器(DDR2,DDR3,DDR4)虚拟内存:使用计算机硬盘模拟的内存只读存储器(ROM):存放固化的指令 ,一般存储最底层的IO软件操作:读键盘,写屏幕,磁盘IO操作等CMOS存储器和EEPROM:CMOS保存计算机系统配置信息,EEPROM基本取代了CMOS,CMOS需要供电保存信息,EEPROM不需要持续供电也能持续保存信息

高速缓存:

因为处理器取指令至少需要访问一次内存,通常还要访问存储器用于取操作数或保存结果;处理器速度大于内存的速度,降低指令执行速度,因此设置高速缓存.

CPU<--->高速缓存(1级或多级)<--->内存

3.地址空间和内存管理

存储管理器:

操作系统中管理分层存储体系的部分称为存储管理器.

分层存储体系:

体系中包括千兆级别,昂贵且易失性的高速缓存(Cache),数千兆级别,价格适中同样易失性的内存(DDR3等),几兆兆(TB)低速,廉价,非易失性的磁盘存储,以及其他可移动存储设备.

存储器存在着以下规律:

存取速度越快,每位价格越高;容量越大,每位价格越低;容量越大,存取速度越低; 关于应用程序的内存分配(堆和栈)

这篇论坛讨论的非常好:memory manager

blog:内存映射

一个应用程序的虚拟内存区域组成(从低到高):

保留区域:Reserved区通常不对应具体的物理地址,因此不可直接访问代码区域:全局变量区:包含初始化区域(初始化的全局,静态变量),未初始化区域(未初始化的静态,全局变量):堆区域大小在代码开始运行时给出,不过在运行过程中大小可变.内存中空闲内存块按照链表形式存储,申请堆时,按照需要申请的堆的大小去遍历链表,知道找到足够大的空闲内存块 ,将其分配给程序,多余的小的内存块仍然以链表形式插入在空闲内存块中.因此堆的最大尺寸由硬件条件决定.进程空间大小-内核空间大小(1G左右)-栈大小-全局空间。 内存映射区:硬盘内容直接映射到内存,一般为文件运行时的动态链接库用户栈:在代码运行时分配,大小固定,不过通过IDE或其他方式可以修改.内核空间:大小固定,操作系统装载,不允许程序直接访问

PS:值得一提的是,一个进程可能包括多个线程,但是一个进程通常只有一个堆区域(除非应用申请多个不同类型的堆),而线程各自拥有各自的栈!堆区域为线程共享.

虚拟内存的分页和分段:

基本概念

面对越来越大的程序,常常产生程序>内存的问题,为解决这种问题,虚拟内存的概念得到普及.

虚拟内存基本思想是:每个程序都拥有自己的地址空间,这个空间被分割成多个 块,每个块被成为一页或页面.

程序运行时,并不是所有页都在物理内存中:

当程序引用一部分在物理内存的地址空间时,由硬件直接执行必要的映射;当程序引用一部分不在物理内存的地址空间时,有操作系统将缺失的页装入物理内存,并重新运行 分页

分页访问过程:

CPU中包含MMU内存管理单元,用于管理虚拟地址空间到物理内存地址的映射.假设物理内存地址大小为32k,每4k为一个页框.虚拟地址空间分页,每个页面大小等于一个页框当程序想要访问一个虚拟地址x,指令将x送到MMU,MMU根据x的虚拟地址,判断其对应的页面是否在物理内存中:若在,MMU将x转化为物理内存地址y若不在,则进行缺页中断,操作系统在物理内存中找到一个使用较少的页面回收掉,将需要访问的页面读到被回收的页面处,再将x转化为物理内存地址访问

 

这个链接很好的解释了分段:分段和分页的联系与区别

程序运行前先分段,段中再分页。页是为了内存管理。

分段和分页的区别:

(1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要.段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要.

(2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的.而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分.

(3)分页的作业地址空间是一维的.分段的地址空间是二维的.

 

 


推荐阅读
author-avatar
as2520_526
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有