重叠地址空间的二次重定向研究

操作系统

计算机工程与设计ComputerEngineeringandDesign

II

2010,31(13)

3003

体系结构与外国授备

重叠地址空间的二次重定向研究

吴贞海,

刘福岩,

李雪敏,易松

(上海大学计算机工程与科学学院,上海200072)

摘要:为了提高操作系统内核在地址空间切换时候的效率,利用ARM处理器上的快速上下文切换扩展(fastcontext

switchmg

extension,FCSE),实现任务地址空间的二次重定向。该方法首先将任务地址空间重定向到一个大的单地址空间,内存管理单元再进行从虚拟地址空间到物理地址空间的重定向。单地址空间到物理地址空间的地址转换信息始终保持有效.因而,内存管理单7;己(memory

management

unit,MMU)在任务切换的时候不必清空转换查询表(translation

look-aside

buffer,TLB),可提高处理器

在任务切换时候的效率.通过在ARM920RT处理器上的实验发现,按该方法设计实现的内核可以稳定地运行在虚拟机上.关键词:地址空间;嵌入式处理器;快速上下文切换扩展;操作系统;内存管理单元中图法分类号:TP316

文献标识码:A

文章编号:1000-7024(2010)13.3003.04

Research

on

re—redirectionofoverlappedaddressspaces

Fu-yan,LIXue.min,

WUZhen.hai,LIU

YISong

(SchoolofComputerEngineeringandScience,ShanghaiUniversity,Shanghai200072,China)

Abstract:Toswitchingtaskis

improvetheperformanceofoperatingsystemkernel,whileswitchingbetweenmultipletasks,usingFCSE(fast

embeddedprocessors,re—redirectionofaddressspacesis

context

extension)ofARM920T

toa

implemented.Firstly,addressspacesof

redirected

segmentofsingle

addressspace.Secondly,thissegmentisredirecmdtophysicalmemoryspacebymemorymaria-

addressspacetophysical

gement

unit.Asinformationofaddresstranslationfromsingle

memoryaddress

spacekeepsvalid,thereis

rio

MMU(memorymanagementunit)toflushtheTLB(translationlook-aside

improved.Finallyastablekernelisimplementedonvirtualmachine.

necessaryforKey

buffer),andperformance

ofkernelcouldbe

words:address—space;embeddedprocessors;fastcontextswitchingextension;operating

system;memorymanagementunit

0引言1传统操作系统中的地址空间切换

在传统的IA32架构上的操作系统上,应用程序的用户态和核心态占据整个可以寻址的4G地址空间,系统内核为每一个应用程序在内核地址空间保留一份页表,系统内核根据这个页表把应用程序的虚拟地址空间映射到物理地址空间,如图1所示,在进程切换的时候通过写入控制寄存器CR3来切换系统当前运行程序的一级页表,~级页表也叫做页目录,CR3指向的内存位置存放一级页表。一级页表的每一个条目叫做PDE(pagedirectoryentry),它指向一个二级页表。MMU负责将程序的虚拟地址转换成实际的物理地址,并通过页表中存放的权限信息对访问进行控制。如果遇到没有映射到页或者页访问授权冲突,处理器进入缺页异常或者访问违规处理例程,由操作系统内核来处理这一错误。传统操作系统中地址空间切换到特点是,随着这个进程的换出,这个进程的地址空间对于即将换入的进程是失效的,于是操作系统内核负责进行地址空间的换入和换出,这当中必须要清空MMU中TLB的地址翻译缓存信息。

在传统的多地址空间操作系统之中,应用程序的用户态地址空间重叠。当任务切换的时候,重叠的用户态地址空间需要切换,TLB中的地址转换信息对于换入的新任务是失效信息,TLB需要被刷新,这样的时间代价很大。因此,单地址空间的概念被提出来,尤其是在那些寻址空间很大的64位处理器平台上,每一个任务占据这个64位虚拟地址空间中的一个区域,每个任务占据的区域可以看作是这个64位地址空间中的一个段,而且这些段互不重叠,进程切换也就不需要执行地址空间的切换,TLB数据保持有效,进而不必清空TLB。单地址空间系统要求任务地址空间不重叠,这就要求:①任务在编写的时候明确知道任务的加载地址,但是这显然不现实:②任务在加载的时候可以被操作系统软件重定向,这样会加重操作系统内核的负担,并且需要软件在重新

编译时候加入重定向信息。借助于AI州920T处理器的FCSE

可以实现任务地址空闾到单地址空间再到物理地址空间的二次重定向。

收稿日期:2009.07.16:修订日期:2009—10—09。

作者简介:吴贞海(1984--),男,安徽肥东人,硕士研究生,研究方向为嵌入式操作系统;

授,研究方向为计算机操作系统;

刘福岩0965--),男,河北滦南人,博士,副教

易松(1985--),

李雪敏(1985--),女,安徽宿州人,硕士研究生.研究方向为计算机操作系统、计算机图形学;

男,湖北松滋人,硕士研究生,研究方向为计算机操作系统,计算机图形学。E-maihzhhwu@shll,edu.on

万方数据

你可能喜欢

  • 重定向
  • ICMP重定向
  • 进程地址空间
  • 路由重发布
  • 12星座分析
  • 两个路由

重叠地址空间的二次重定向研究相关文档

最新文档

返回顶部