操作系统之内存管理

1.内存中都存储什么?

  操作系统和进程,特别是多道程序设计时,要将主存继续细分;

2.内存管理需要做那些事情?

  1.  重定位:实现重定位进程就不需要记录以前自己在主存中的位置,以此实现进程换入/换出(进程的页或段换入主存时可以定位到在主存中的物理位置),也就是在进程运行时计算逻辑地址对应的物理位置。
  2. 保护:保护进程不受其他进程无意或有意的干涉。比如进程A和进程B,如果A没有授予B权限,那B就不能访问A,其次,每次执行进程时要确定访问的是该进程的东西。
  3. 共享:进程不能单打独斗,有时候需要和其他进程一起完成某些事情,如共享变量等。
  4. 逻辑组织:计算机主存和辅存的逻辑结构都是线性的(也就是一维数组),但是实际程序中用模块更好,因为模块更好管理,比如共享模块,修改模块等;
  5. 二级存储结构:分为主存和辅存,主存存取速度快,容量小;而辅存存取速度慢,容量大;

3.处理器需要把进程放到主存中执行,那内存是什么的组织结构?

  最原始的分区:固定分区(分区大小相同,大小不同),动态分区;

  分页:主存和进程都分成大小相等的块,只不过块很小,导致内存碎片很小;

时间: 2024-10-25 16:56:08

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

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

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

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

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

操作系统之内存管理1

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

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

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

操作系统之内存管理2

1.常见的内存管理办法,固定加载地址的内存管理,固定分区的内存管理,非固定分区的内存管理和交换内存管理.第一种只适合单道编程,后三种适合多道编程,这3种适合多道编程的内存管理方式均使用同一种实现机制:基址和极限,并且以交换内存管理最为灵活和先进,但是交换内存管理存在的问题是空间浪费和程序大小受限. 2.什么是外部碎片? 随着程序在内存和磁盘间的交换,内存将变得越来越碎片化,即内存将被不同的程序分割成尺寸大小不一的无法使用的小片空间,从进程的角度看,这些碎片处于进程空间的外面,这种碎片化过程也称为

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

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