操作系统之内存管理2

1.常见的内存管理办法,固定加载地址的内存管理,固定分区的内存管理,非固定分区的内存管理和交换内存管理。第一种只适合单道编程,后三种适合多道编程,这3种适合多道编程的内存管理方式均使用同一种实现机制:基址和极限,并且以交换内存管理最为灵活和先进,但是交换内存管理存在的问题是空间浪费和程序大小受限。

2.什么是外部碎片?

随着程序在内存和磁盘间的交换,内存将变得越来越碎片化,即内存将被不同的程序分割成尺寸大小不一的无法使用的小片空间,从进程的角度看,这些碎片处于进程空间的外面,这种碎片化过程也称为外部碎片化。

3.除了外部碎片,交换内存管理还存在什么问题?

1)空间增长率低下,把程序倒到磁盘,找到大的内存空间,在倒会内存,这种做法效率是低的。

2)空间增长存在限制,尽管多个程序的总空间可以超过物理内存,但是单一程序还是不能超过物理内存的限制。

4.交换内存管理问题的解决之道是什么?

将虚拟内存和物理内存都分成大小一样的部分,如4KB,8KB,16KB,我们称为页,然后按页进行内存分配,就可以克服外部碎片的问题。此时页面作为内存空间的最小分配单位。一个程序的一个页面可以存放在任意的一个物理页面里,由于物理空间是页面的整数倍,并且页面作为内存空间的最小分配单位,将不会再产生外部碎片。由于虚拟页面可以存放在任何一个物理页面里,空间增长也任意解决,只要分配额外的虚拟页面,并找到一个闲置的物理页面存放即可。

5.在分页系统下,一个程序发出的虚拟地址由两部分组成:2的12次方为4096,4096/1024=4KB,2的20次方为1048576,1048576*4/(1024*1024)=4GB,刚好是4G的寻址空间。为了解决程序比内存大的问题,我们可以允许一个程序的部分虚拟页面存放在物理页面以外,也就是放在磁盘中,需要时,在调入。

时间: 2024-10-04 02:37:23

操作系统之内存管理2的相关文章

操作系统之内存管理

1.内存中都存储什么? 操作系统和进程,特别是多道程序设计时,要将主存继续细分: 2.内存管理需要做那些事情? 重定位:实现重定位进程就不需要记录以前自己在主存中的位置,以此实现进程换入/换出(进程的页或段换入主存时可以定位到在主存中的物理位置),也就是在进程运行时计算逻辑地址对应的物理位置. 保护:保护进程不受其他进程无意或有意的干涉.比如进程A和进程B,如果A没有授予B权限,那B就不能访问A,其次,每次执行进程时要确定访问的是该进程的东西. 共享:进程不能单打独斗,有时候需要和其他进程一起完

操作系统之内存管理(一)

物理内存与虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在Linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(SwapSpace). 作为物理内存的扩展,Linux会在物理内存不足时,使用交换分区的

操作系统之内存管理(一)

1 操作系统想要管理内存,首先得利用内存.那么如何利用内存呢,在我们程序要执行的时候,我们需要将程序装载到内存中,pc指向开始地址,并且让cpu取址执行,于是我们就利用上了内存. 2那么我们首先考虑一下如何将程序装载到内存中,操作系统会找寻一段空闲的区域,让我们的程序装载进去,而在我们编写的程序中,如call 40,40是一个相对地址,相对于这个程序的偏移量,但是装载到空闲内存的时候,我们又是如何得知,这个40变为多少了呢?这就引出了重定向的概念.如下图,我们希望到内存的时候,call 40变为

操作系统之内存管理1

1. 2.内存管理需要达到的目的? 1)地址保护:多道程序之间互不干扰,一个进程不能随便访问另外一个进程的地址空间. 2)地址独立:程序发出的地址与具体机器的物理主存地址是独立的. 3.为什么提出了虚拟内存? 在计算机中,一个程序要运行,必须加载到物理主存中,但是物理主存的容量是非常有限的,因此我们要把一个程序全部加载到主存,我们的每一个程序大小就要限制.另外,即使我们编写的每一个程序的大小都小于物理主存的容量,但主存能够存放的程序数量也是有限的.这将大大限制多道编程的发展,所以我们发明了虚拟内

操作系统:内存管理(概念)

对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持.对于专业的程序员而言,掌握一定的操作系统知识比不可少,因为不管面对的是底层嵌入式开发,还是上层的云计算开发,都需要使用到一定的操作系统相关知识. 内存管理有哪几种方式 分段和分页的区别是什么 什么是虚拟内存 什么是内存碎片什么是内碎片什么是外碎片 虚拟地址逻辑地址线性地址物理地址有什么区别 Cache替换算法有哪些 内存管理有哪几种方式

操作系统之内存管理(二)

1 前面已经有了分段的概念,那么为什么 有分页的出现呢? 这是为了提高内存分区导致的内存效率问题,在程序转载到内存的时候,我们知道程序是分段载入的,通过内存分区来装载不同的段.那么如果有下面问题,我现在需要请求的空间为160k,而我的总空闲空间是大于160k的,但是没有一个空闲分区大于160k,那么按照分区的管理,就无法利用这总共的内存区域,而内存中的空闲区域也就变成了内存碎片,为了解决这个问题,引出了分页机制!其实就是将内存分成更小的块来进行管理,每块为4k 2 有了分页机制之后,我们的内存分

模拟操作系统动态内存管理(c实现)

操作系统对内存申请与释放(对连续的区域合并)的模拟 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 10 //预设的内碎片的最小值 4 #define M_set 1024//预设的内存大小 5 6 struct mem_block 7 { 8 int num; 9 int addr; 10 int length; 11 mem_block *next; 12 }; 13 typedef mem_block* point

操作系统:内存管理

http://blog.csdn.net/zephyr_be_brave/article/details/8944967 http://www.cnblogs.com/yunsicai/p/3326105.html http://www.cppblog.com/prayer/archive/2009/08/17/93597.html http://www.jianshu.com/p/41ad81a5d504

操作系统:内存管理复习ing

OPT算法就是根据当前页对为未来预判,它包含的页数中哪些在较近的未来是会用的就不先被调换,这要有见闻色霸气2333. LRU也是要走时间序列的. 多多实践,多多刷题,多多总结,多多体会! 1. LRU我有用b站上的一种方法-> 2.这题回头要多多训练一下2333 原文地址:https://www.cnblogs.com/dragondragon/p/12561488.html