发表于: 2017-05-07 23:35:15

1 1291


今日完成:

公司断网了,复习了mybatis

通过洗髓换骨营学习了操作系统的内存管理

为什么需要内存管理?

 虽然内存容量在不断增长,但仍然不可能将所有用户进程和系统所需要的全部程序和数据放入主存中,因此操作系统必须将内存空间进行合理的划分和有效的动态分配

内存管理包括:

程序装入和链接

内存的分配与回收

地址转换,逻辑地址转换成物理地址

利用虚拟存储技术扩充内存等


1.1程序的装入

 在多道程序环境下,要使程序运行,必须创建进程,而创建进程就要将程序和数据装入内存。一个用户源程序要变为在内存中可执行的程序,通常要进行以下处理 编译:由编译程序将用户源程序编译成若干个目标模块。 

链接由链接程序将目标模块和相应的库函数链接成装入模块。 

装入由装入程序将装入模块装入内存

1.2程序的链接

 1.2.1静态链接方式是一种事先链接方式,即在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装入模块(执行文件),以后不再拆开。

缺点:不便于对目标模块的修改和更新;无法实现对目标模块的共享

 1.2.2装入时动态链接方式 指将一组目标模块在装入内存时,边装入边链接的方式。 运行时1.2.3动态链接方式 在程序运行中需要某些目标模块时,才对它们进行链接的方式。具有高效且节省内存空间的优点。便于实现对目标木块的共享、便于修改和更新。

1.3程序的装入

 1.3.1绝对装入编译时根据目标程序将驻留在内存中的某个位置,从而将产生绝对地址的目标代码。目标代码根据程序中的地址放入对应的内存中。此时逻辑地址和物理地址相同,绝对装入指适用于单道程序环境。 

1.3.2可重定位装入多个程序的起始地址都从0开始,程序中的其他地址都是相对于起始地址的。装入时将目标程序中的指令和数据的相对地址转换成装入位置的物理地址,该过程成为重定位。这种地址变换是装入时一次完成的,称为静态重定位

 1.3.3动态运行时装入程序装入内存时,不立即把相对地址转换成绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。故装入内存后的所有地址均为相对地址。


2.连续分配管理方式

 •通常将主存划分成两个分区: 

低地址分区用于驻留操作系统,以及中断向量。 

用户进程驻留在高地址分区 

系统为程序分配的内存都是一个连续的地址空间。又分为:单一连续分配,固定分区分配动态分区分配


3.虚拟内存管理

基本概念:

 虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储管理系统,它具有请求调入功能和部分置换功能,能从逻辑上对内存容量进行扩充,其逻辑容量由外存容量和内存容量之和决定,其运行速度接近于内存,成本接近于外存。


请求分页管理

 分页请求系统在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储器系统。允许只装入若干页的用户程序和数据,便可启动运行,以后在硬件支持下通过调页功能和置换页功能,陆续将要运行的页面调入内存,同时把暂不运行的页面换到外存上,置换时以页面为单位。 

系统须设置相应的硬件支持和软件: l硬件支持:请求分页的页表机制、缺页中断机构和地址变换机构。 l软件:请求调页功能和页置换功能的软件。


明日计划:

把mybatis和Spring整合起来

1.学习Spring结合mybatis现实数据库增删改查

2.学习Junit编写单元测试,查看日志,Debug模式 调试


收获:

对系统内存管理有了大概印象



返回列表 返回列表
评论

    分享到