操作系统个人见解之内存篇

1.逻辑地址和物理地址?进程的地址空间。内存,虚拟内存和交换空间是怎么回事? 为什么进程地址空间可以比物理内存大?
个人理解这个这个问题就通俗的比喻下就是一座高楼,和图纸的比喻。(虽然这个在后面分页分段的映射上不能使用,但是这是一个区别物理和逻辑地址好的方法)。
物理地址就是楼层的建好后的实体, 每个物理地址代表这个楼房的一个位置。
逻辑地址就好比手里拿到的工程师拿到图纸,你也可以通过地址指出楼的不同位置,但是只是逻辑上的,而不是实际运行的。

进程的地址空间其实也类比下,实际的物理地址空间。比如32位的物理地址空间为0~4G这个范围内的空间。 逻辑地址当然也是纸面上的地址空间。每个进程有它们自己的图纸,也就有它们自己的地址空间。

内存就是物理内存,虚拟内存其实是一种技术。虚拟内存技术,使得在进程执行过程中,通过页面置换来实现多道程序并发运行的。很多书上讲到的虚拟内存,其实更贴切的应该成为逻辑内存。就是图纸上的需要的内存。
linux上top命令显示的 VIRT结果其实就是进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等。
具体区别参考:linux top 命令---VIRT,RES,SHR,虚拟内存和物理内存

交换空间指的是在磁盘上开辟的一个分区,这个分区用来在进程切换的过程中,当需要的指令不在物理内存,而物理内存都被占用时进行换进换出操作的。

最后一个问题,虚拟内存其实就是图纸。图纸可以画出超出楼层,比如来个地下室,但是物理内存是固定的,他不能说加就加。

  1. 内存机制是用怎样的方法保证各个进程之间执行时不会影响?
    每个进程都有自己的图纸,也就是有自己的地址空间,每次在被调到内存的时候,
    1.早期的时候,它是有一个基地址寄存器和界限地址寄存器,他每次在被加载到内存的时候,都会保存好这两个寄存器,然后每次 访问的时候都会根据这两个寄存器的值来进行保护。

  2. 后来有了分段和分页技术,他们都有类似与前面的寄存器的东西,存放在段表和页表中,每次访问的时候,都是通过这两个东西保证不会访问其他进程的内存。他们的值是不可以随便改的,只有操作系统有权限改。

  3. 内存分配分段和分页机制?
    分段:在进程编译,链接,生产逻辑地址的时候,就把他们分别进行分段,分为代码段,数据段,堆栈,堆等等。然后在执行的时候把每一段的内容分别映射到物理内存上,并通过段表来进行记录,所以每个进程应该都有一个段表。其中包括每一段的基地址和界限地址。
    分页:将每个进程执行前,把逻辑地址空间进行分页,分成很多很多小的页面,同时把物理内存也根据页面的大小分为很多很多页框(帧 )(再次强调注意在书中用词,逻辑地址空间的分出来的部分叫页面,物理内存中分出来的叫帧)。当进程中的页面加载到内存中后,通过页表进行记录。

4.虚拟内存怎么理解?
答案参见1中

5.什么是写时复制?

这个主要用于在父进程创建子进程的时候,而子进程一般会直接exec()替换新的地址空间,所以没有必要在fork的时候进行复制父进程的地址空间,而是让父子共享父进程的地址空间。但是也有那种不进行exec的子进程,那么这种只有父子进程开始修改共享部分的时候,共享部分才会复制一个副本,达到父子进程互不影响的目的。
一般的只有写的时候,才进行复制,而写是只有写的那一页进行复制,没写到的页面不会复制,这个是在页表中的一个单独的保护位来实现的。
为了取消写时拷贝,父子同步共享一个数据时,一般可以使用vfork()代替。但vfork()主要还是用于 创建后直接exec()。

  1. 页面置换算法?
    一般页面置换算法有:FIFO 算法,OPT(最优页面置换)算法,LRU(最近最少使用),基于计数的页面置换和 页面缓冲池算法
    主要说下OPT 和LRU的区别:
    注意看两个概念: OPT的算法是最长时间不会使用,而LRU是最长时间没有使用。细细的思考,就会发现一个是未来时间,一个是过去时间。
    如果还没看懂,就来看看两个图的比较。
    最优页面置换.png
LRU置换算法.png

看出来区别了吗?OPT算法的在第五次置换的时候把刚执行过的0页面换出去了。这个它虽然名字是最优置换,但是不一定就是最优的解法了。

7.共享内存的实现?
其实共享内存主要用了两种技术手段。
一种是内存映射技术,一种是绑定地址。
共享内存首先是在自己的地址空间建立一个共享内存区域。然后通过映射的方法,绑定到物理内存。这个区域比其他的区域不同,它可以被其他的进程 通过映射的方式绑定,也就是说,多个进程的逻辑内存,可以绑定同一个物理内存地址。从而实现了进程间的数据共享。

  1. 内存分配策略?
    主要两种策略,一种是伙伴系统,一种是slab分配器。
    伙伴系统是:每次把一块内存一分为2, 他们都是2的幂次方大小的内存块。两个相同的内存块互为伙伴。然后通过一个结构体数组进行连接,每个结构体后面都对应的一个链表,它们分别会把不同大小的内存块进行连接,从而以后每次需要内存块的时候,可以快速的查找到匹配的内存块。(但是伙伴系统会产生内部碎片)。
伙伴系统结构.png

slab分配:
它类似于一个包含了一系列的不同结构体的内存池。
在内核中,对于一些常用的数据结构PCB,文件描述符等,因为经常使用到,所以每次创建和释放都是很麻烦的,所以内核为它们准备了以后分好的内存,每次使用直接使用这个结构体,用完了以后再还给slab,这样就加快内存分配的效率,并且将内核中经常使用的这些对象池放到高速缓存中。

一般对于这种动态存储进行匹配的时候,可以使用首次适应,最优适应等适配方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容

  • 1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...
    杰伦哎呦哎呦阅读 3,247评论 1 9
  • 北林操作系统2015级教材用书:《操作系统实用教程》第三版 任爱华,王雷 概念题: 实时操作系统:指操作系统能及时...
    仰望星空的先生阅读 4,921评论 2 27
  • 每当看到夜晚的月儿高高在天边,仿佛的身影就在眼前,正如一句歌词所说的想是人世间的错..... 记得初次相识...
    天心禅阅读 540评论 14 11
  • 我发现潮自拍这个新特效很好看。为嘛呢,因为我画了一个菇凉,菇凉给我画的好丑,但是加上特效,就美了~ 这是画的第一个...
    左神话阅读 294评论 2 1
  • 这两天大脑很乱,心情自然也低沉,学习效率大减。“仿佛身体被掏空”,唯有写作使我安静。 又是工作问题。上一份工作火速...
    菜瓜成长记阅读 610评论 0 0