1.存储器多层结构
存储器层次至少有三层:最高层为CPU,其次为主存,最底层是辅存,在层次中,越接近CPU访问速度越快,价格越高,配置的存储容量越小
根据速度从大到小可以排列为:
2.可执行存储器
就是寄存器和主存储器。所耗费时间:辅存储器访问》可执行存储器(寄存器、主存)
3.程序的注入与链接
一个程序运行时,先要装入内存,然后转变为可以执行程序,可以分为三步:
- 编译:编译程序对用户源程序进行编译,形成若干目标模块
- 链接:链接程序将编译形成后的一组目标模块以及他们所需要的库函数连接在一起,形成一个完整的装入模块
- 装入(加载):,装入程序把装入模块装入内存
4.地址绑定
地址绑定:编译器将源程序中地址绑定到可重定位的地址或相对地址上
连接程序或装入程序在将这些相对地址绑定到绝对地址
地址绑定常常发生在程序编译时、装入时、运行时。
5.逻辑地址和物理地址
CPU生成的地址通常为逻辑地址(相对地址),而在内存单元中看到的地址为物理地址(绝对地址)
6.内存保护
基址寄存器和界限寄存器:基址寄存器存放的是最小的物理地址(基地址),界限寄存器存放的是最大的逻辑地址(界限地址)
若基地址物理地址
程序装入:
对装入模块装入内存时的装入位置时的三种方法.
1.绝对装入方式:对于单道程序(单道程序环境)而言,编译后即产生绝对地址
2.可重定位装入方式(静态重定位):在多道程序环境下,编译程序对源程序编译形成的是逻辑地址,装入时把程序中程序和数据的逻辑地址改为物理地址(重定位),以后地址不再被改变
3.动态运行时装入方式(动态重定位):多道环境程序下,装入时不改变逻辑地址,此时还是物理地址,而是在运行时改变,称为动态重定位。为了使地址变换不影响指令的执行速度,需要一个重定位寄存器
程序链接:
1.静态链接:程序运行之前链接,修改相对地址和变换外服务器托管网部调用符号,作为一种进行链接以后不再拆开的链接方式,成为静态链接方式
2.装入时动态连接:装入内存时,采用边装入边连接,一个目标模块装入时,若发生模块调用事件,则装入程序找出相应的外部目标模块,将它装入内存,并修改目标模块中的逻辑地址
3.运行时动态链接:运行程序时,才链接,发现需要什么目标模块时,才装入并且链接。即未用到的目标模块,不会被调入内存和被链接到装入模块上,非常节省内存空间
对换:
常用的内存“扩充”技术:对换,覆盖,紧凑,虚拟存储器、
1.对换:即处理机调度中的中级调度(又称内存调度和中程调度),把内存中暂时不能运行进程或者暂时不用的程序或数据,转移到外存上(对换区),留出足够的空间,再把已经具备运行条件的进程或进程所需要的程序和数据存入内存.提升了内存利用和处理机利用率以及系统吞吐量,对换时,可以对换整个进程或页面和分段
2.对换区:把磁盘空间分为文件区和对换区,文件区:占据磁盘大部分,目标是提高文件存储空间的利用率其次是访问速度,采用离散分配存储管理方式.对换区:占磁盘小部分,目标提高进程换入换出速度,其次提高文件存储空间利用率,采用连续分配存储管理方式
进程换出:(1)选择被换出的进程:选择处于阻塞或者睡眠状态进程,有多个时,选择优先级较低的换出。
若无这样的进程,则选择优先级最低的换出
(2)换出进程:选择好被换出的进程时,换出非共享的数据段和程序段,对应共享的数据段和程序段,若有进程需要它,则不换出。换出时,申请对换区,申请成功,启动磁盘,把要换出的进程传送到磁盘的对换区,传送完成后,回收进程占用的内存空间,并对进程PCB和内存分配表等数据结构进行修改
进程换入:先查看PCB集合中进程的状态,找出处于就绪态但已被换出进程(静止就绪态),有多个这样的进程时,找出居于磁盘最久的进程作为换入进程,然后申请内存空间,申请成功后,把进程从外存换入内存,若申请失败,先把内存中某些进程换出留出足够内存空间后,再换入.
连续分配存储管理方式:
四类:单一连续分配,固定分区分配,动态分区分配,动态重定位分区分配
1.单一连续分配:单道程序环境下,没有存储器保护,
2.固定分区分配:提前把内存空间划分为若干固定大小分区
(1)分区大小相等(2)分服务器托管网区大小不等
3.动态分区分配:(1)空闲分区表(2)空闲分区链
动态分区分配算法:
(1)基于顺序搜索的动态分区分配算法:
首次适应:从链首开始顺序查找.
循环首次适应算法:从上次找到的空闲分区的下一个空闲分区开始找
最佳适应算法:按容量将空闲分区从小到大排列找,产生碎片最多
最坏适应算法:与最佳适应算法相反,产出碎片概率最小
(2)基于搜索引擎的动态分区分配算法
(1)快速适应算法(2)伙伴系统(3)哈希算法
续…
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
windows时间同步 最近在项目中遇见了多台windows电脑的时间同步问题。在这个项目中,有五台电脑,五台电脑处于同一局域网下,其中有一台可以连接互联网(A电脑)。我需要将其他四台电脑(B、C、D、E电脑)的时间和该台电脑同步。这在windows服务设置中…