仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 648|回复: 11
打印 上一主题 下一主题

[其他Linux] Linux编程之OS内存办理需求仓酷云

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多。
当我进修Linux内核内存办理时,对内存办理的需求发生了疑问,为何非要利用一连的物理内存?为何要利用分页机制?外部碎片、内部碎片是甚么意义?在查阅了《OperatingSystemsInternalsandDesignPrinciples》一书后,成绩显得明晰了很多。这是一本角度站的对照高的书,WilliamStallings站在操纵体系实际和开展的角度上写得,是本不错的好书。
本篇博客耗时2小时。
1、内存办理的需求

一切古代操纵体系,对内存办理方面都有5个方面的需求(是1993年的一篇论文总结的:Lister,A.,andEager,R.FundametalsofOpeartingSystems,NewYork:Springer-Verlag,1993.):分离是重定位、回护、共享、逻辑构造、物理构造:


  • 重定位(relocation)
在多道程序计划体系中,可用的内存空间一般被多个历程共享。一般情形下,程序员其实不能事前直到在某个程序实行时代会有其他哪些历程驻留在内存中。别的还但愿经由过程供应一个伟大的停当历程池,可以把举动历程换进大概还出内存内存,以便使处置器的使用率最年夜化。一旦程序被换出到磁盘,当下一次被换进时,假如必需放在或被换出前不异的内存地区,那末将会是一个很年夜的限定。为了不这类限定,我们必要把历程重定位到内存的分歧往越。
因而,我们事前不晓得程序将会被安排到哪一个地区,而且我们必需同意程序经由过程互换手艺在内存中挪动。处置器硬件和操纵体系软件必需可以经由过程某种体例把程序代码中的内存会见转换成实践的物理内存地点,并反应程序在内存中确当前地位。


  • 回护(protection)
每一个历程都应当遭到回护,以避免被其他历程成心或偶然地干与。因而,该历程之外的其他历程中的程序不克不及未经受权地会见(举行读操纵或写操纵)该历程的内存单位。在某种意义上,要满意重定位的需求增添了满意回护需求的难度。因为程序在内存中的地位是不成展望的,因此在编译时不成能反省相对地点来确保回护。而且年夜多半程序计划言语同意在运转时举行地点的静态盘算(比方,经由过程盘算数组下标或数据布局中的指针)。因而,必需在运转程序时反省历程发生的一切内存会见,以确保他们只会见了分派给该历程的存储空间。
内存回护的需求必需由处置器(硬件)来满意,而不是操纵体系(软件)来满意。这是由于操纵体系不克不及展望程序大概发生的一切内存会见;即便能够展望,提早检察每一个历程中大概存在的内存守法也长短常费时的。因而,只能在指令会见内存时来判别这个内存会见是不是守法(存取数据或跳转)。为完成这一点,处置器硬件必需具有这个才能。


  • 共享(share)
任何回护机制都必需具有必定的天真性,以同意多个历程会见内存的统一部分。比方,假如多个历程正在实行统一个程序,则同意每一个历程会见该程序的统一正本要比让每个历程有本人独自正本更有上风。互助完成统一个义务的历程大概必要共享会见不异的数据布局。因而内存办理体系必需同意对内存共享地区历程受控会见,而不会伤害基础的回护。


  • 逻辑构造(physicalorganization)
盘算机体系中的内存老是被构造成线性的(或一维的)地点空间,而且地点空间是由一系列字节或字构成的。内部存储器(简称外存)在物理层上也是按相似体例构造的。只管这类构造体例相似于实践的呆板硬件,但它其实不切合程序机关的典范办法。年夜多半程序被构造成模块,某些模块是不成修正的(只读、只实行),某些模块包括能够修正的数据。假如操纵体系和盘算机硬件可以无效地处置以某种模块的情势构造的用户程序和数据,则会带来良多优点:

  • 能够自力的编写和编译模块,体系在运转时剖析从一个模块到一切其他模块的援用。

  • 经由过程过度的分外开支,能够给分歧的模块分歧的回护级别(只读、只实行)。

  • 能够引进某种机制,使得模块能够被多个历程共享。在模块级供应共享的长处在于它切合用户对待成绩的体例,因而用户也能够很简单的指定必要的共享。



  • 物理构造(logicalorganization)
盘算机的存储器最少要被构造成两级,称为内存和外存。内存供应疾速的会见,本钱也绝对较高,而且内存是易掉性的,即它不克不及供应永世存储的。外存比内存慢并且廉价,它一般长短易掉性的。因而,年夜容量的外存能够用于临时存储程序和数据,而较小的内存则用于保留以后利用的程序和数据。
明显,在两级存储间挪动信息的义务应当是一种体系的义务,而该义务恰好就是存储办理的实质地点。
2、存储办理的义务

义务也是5个,与需求绝对应(引自《OperatingSystemsInternalsandDesignPrinciples》,义务是内存办理和文件体系配合的):


  • 历程断绝:操纵体系必需包话自力的历程,避免互相搅扰各自的存储空间,包含数据和指令。
  • 主动分派和办理:程序应当依据必要在存储条理间静态分派,分派对程序员是通明的。因而,程序员无需体贴与存储限定相干的成绩,操纵体系由小的完成分派成绩,能够仅在必要时才给功课分派存储空间。
  • 撑持模块化程序计划:程序员应当可以界说程序模块,而且静态创立、烧毁模块,静态的改动模块的巨细。
  • 回护和会见把持:不管在存储条理中的哪一级,存储器的共享城市发生一个程序凤纹另外一个程序存储空间的潜伏大概性。当一个特定的使用程序必要共享时,着时可取的。但在其余时分,它大概威逼的到程序的完全性,乃至为写到操纵体系本身。操纵体系必需先同意一部份内存能够由各类用户以各类体例举行会见。
  • 临时存储:很多使用程序必要在盘算构造机后长工夫保留信息。
3、团体的一点了解

重定位。Linux平台下,程序在编译后构成二进制文件,经由过程反编译工具检察都是绝对地点,在程序从硬盘载进到内存的过程当中,必要为程序分派内存,完成程序的载进,载进后程序具有了逻辑地点,每次实行程序取得逻辑地点多是一样的,但也大概纷歧样,找到符合的逻辑地点,大概说找到符合的物理内存,而且可以将这些物理内存与二进制程序的绝对地点相符合,使得程序一般实行,或持续实行,就是重定位。
回护和共享是对照好了解的,古代操纵体系都具有这些特征。

如果你只是想应付一下操作系统的课程,劝你最好别学,或者说不要指望能用的怎么样。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-20 22:23:47 | 只看该作者
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。
海妖 该用户已被删除
板凳
发表于 2015-1-30 07:15:40 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-6 08:01:22 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 16:45:28 | 只看该作者
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
6#
发表于 2015-2-17 08:54:33 | 只看该作者
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
柔情似水 该用户已被删除
7#
发表于 2015-2-17 09:18:52 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
再现理想 该用户已被删除
8#
发表于 2015-3-5 18:50:20 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
不帅 该用户已被删除
9#
发表于 2015-3-8 11:57:18 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
老尸 该用户已被删除
10#
发表于 2015-3-10 20:39:26 | 只看该作者
选择一些适于初学者的Linux社区。
简单生活 该用户已被删除
11#
发表于 2015-3-17 09:54:06 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
若天明 该用户已被删除
12#
发表于 2015-3-24 06:10:44 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 03:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表