版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统的虚拟内存和虚拟地址空间虚拟存储器·计算机系统的存储器分为内存(主存)和外存(硬盘)。内存的价格昂贵,速度高,存储容量有限;外存价格便宜,速度慢,存储容量很大,适合于存放大量数据。为了使更多的用户进程合理、充分地使用存储资源,操作系统统一管理内存和外存,即把内存中暂时不用的内容放在硬盘上,内存中就可以腾出一部分空间可以从硬盘装入其他迫切需要的内容。因此,从效果上看,计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器。人们称这个存储器为虚拟存储器局部性原理实验证明,在几平所有进程的执行过程中,某一个特定的时间段中CPU不是随机地访问整个程据,而是集中地访问程序或数据的某一个部分。进程的这种访问特性称为局部性原理。与cPU访问该局部内的数据和代码的次数相比,局部段的变化很缓慢正是基于这样的原理,我们才有可能实现虚拟存储管理。把进程的所有内容划分为一个个小的部分,首先只把系统所必需的部分数据装入内存,其余部分就放在外存中始运行之后,再把所需要的其他部分换入内时把不再需要的部分从内存中换到硬盘或者清除掉。然,与之相配合,实际的内存也要划分为对应的小部分这种内外存之间的数据交换对用户进程来讲是透明的。从用户进程的角度来看,系统好像提供很大的内存一样,整个进程都能装进去而且正常运行,这种逻辑上的大容量存储空间就可以称为虚拟存储器。实际上,是操作系统的存储管理起了作用,用多次内外存数据交换的时间换来了大容量的并不真正存在的(虚拟的)内存。因此,可以想象,访问虚拟存储器的速度要比访问真正内存的速度要慢(大型机APP大小最少几个G,机内存没那么大)从宏观角度Linux的虚拟内存管理机制为应用程序和驱动程序提供了两种服务√使每个进程都拥有自己独立的內存地址空间;对于32位inux而言每个任务可寻址的内存地址空间都为∞0024GB);对于64位inu而言,每个任务可寻址的内存地址空间都为0×0000000000FF6(26417179869184GB或者1677216T8√当物理内存不够时,虚拟内存管理糢块会用外存空间模拟內存空间,并且该模拟过程对应用程序是透明的。用户地址空间与内核地址空间1.Linux将每个进程的4GB的独立地址空间又划分为用户地址空间(000030FF和内核地址空间(0C000IXFFFFFFFF两部分。2.操作系统内核代码和数据存放在内核地址空间;每个进程自己私有的代码和数据存放在用户地址空间3.虽然Linux的内核代码和数据被映射到了每个进程的地址空间中(所有进程看到的内容是相同的),但在实际的物理内存中只有内核代码和数据的一份拷贝。用户态与核心态一般现代CPU嘟都有几种不同的指令执行级别在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态用户态指相应的低级别执行状态,代码的掌控范围会受到限制,只能执行CPU指令集的一个子集举例:intelx86〔門U有四种不同的执行级别03,0级最高,3级最低,Linu欢只使用了其中的0级和3级分别来表示内核态和用户态0Xc000006呐内核地址空间只能在内核态下访问,0×000xbff地址空间在两种状态下都可以访问应用程序可以通过Linux系统调用由用户态进入内核态,C语言调用汇编语言asm用户态切换到内核态的3种方式a.系统调用用户态进程通过系统谰用申请使囯霂作系統提供的服务程序完成工作,系統谞用的杋制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如iuw的nt8h中当CPU在执行运行在月户态下的程序时,发生了某些事先不可知的异常,这时会触发白当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常c.分围设各的中断当外围没备完成用户请求的操作后,会向CPU发出相的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去拭行与中断信号对应的处運程序,如果先前行的指令是用户态下的程序,那么这个转换的过程自然乜就发生了由用户态到内核态的切换。比如硬盘凑写操作完成,系统会切换到硬盘读写的中处理程序中执行后续架作等这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调冂可以认为是雨户进程主动发起的,异常和外围设备中断则是动的切换步骤·从触发方式上看,可以认为存在前述3种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断的处理机制基本上也是一致的,步骤如下:[1]从当前进程的描述符中提取其内核栈的s5及esp0信息。[2]使用550和es0指向的内核栈将当前进程的ceip,eflags,Ss,esp信息保存起来,这个过程也完成了由用户栈到内核栈的切换过程,同时保存了被暂停执行的程序的下一条指令。·[3]将先前由中断向量检索得到的中断处理程序的csei信息装入相应的寄存器,开始执行中断处理程序,这时就转到了内核态的程序执行了。用户态内核态应用BNQ的技术核心:零拷贝技术,Kaka就是采用aaNo零拷贝技术ANO的cn(通道)就相操作系统中的内整缓社屋:有可IrBufferFilefilenewFile(test.zip")RandomAccessFilerafnewRandomAccessfile(file,rw")FileChannelfileChannelrafgetChannel()MappedByteBufferbufferfile.map(FileChannel.MapModeREAD_ONLY,0,fileChannelsizeNO中的FIleChannel.map方艺荔:肉核据众磁盘读取到内建添合这收大文件时迷魔交内篷数物页是如processData()∥/数据处理完成以后,打开一个SocketchannelSocketcChannelsocketChannelSocketChannelopen(newInetSocketAddress(",port))·∥/这时依旧需要CPU将内核缓冲区的内容拷贝到网络缓冲区socketChannel.w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教 八年级 语文 下册 第3单元《11.核舟记 第1课时》课件
- 购买尿动力学分析仪项目可行性研究报告
- 克孜勒苏可行性研究报告
- 聚氨酯复合保温热水管项目可行性研究报告
- 刑事诉讼违法行为的法律后果
- 2026年及未来5年市场数据中国发酵工程行业市场全景评估及投资规划建议报告
- 钻孔灌注桩钢筋笼吊装方案
- 2025 高中信息技术数据与计算之算法的矩阵链乘法算法课件
- 急性ST段抬高型心肌梗死指南精要
- 智能农机装备应用与发展:技术赋能农业现代化
- 上交所2026校招笔试题
- 2026延安志丹县人力资源和社会保障局公益性岗位招聘(50人)笔试备考题库及答案解析
- 车间内部转运车管理制度
- 2026年山东省立第三医院初级岗位公开招聘人员(27人)笔试参考题库及答案解析
- 2026湖北武汉市江汉城市更新有限公司及其下属子公司招聘11人笔试备考题库及答案解析
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人笔试备考题库及答案解析
- 麻醉门诊评估指南解读
- 2026年广东省辅警笔试题库及1套参考答案
- 2026年高考数学二轮复习:专题13 数列的综合大题(含知识融合)9大题型(专题专练)(全国适用)(原卷版)
- 交通电路处理 11
- 2026年时事政治测试题库100道附完整答案【考点梳理】
评论
0/150
提交评论