徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

内存映射文件

指数 内存映射文件

内存映射文件(Memory-mapped file),或称“文件映射”、“映射文件”,是一段虚内存逐字节对应于一个文件或类文件的资源,使得应用程序处理映射部分如同访问主内存。.

24 关系: 存储器映射输入输出平台叫用服務分頁共享内存Boost C++ Libraries碎片D語言随机存取存储器行程行程間通訊記憶體管理虚拟内存GibibyteIA-32JavaMicrosoft WindowsOpenVMSPerlPOSIXPython语言R语言RubyUnix-likeWindows API

存储器映射输入输出

内存映射输入输出(Memory-mapped I/O, MMIO,简称为内存映射IO),以及端口映射输入输出(port-mapped I/O, PMIO,也叫作独立输入输出(isolated I/O),是PC机在中央处理器(CPU)和外部设备之间执行输入输出操作的两种方法,这两种方法互为补充。除此之外,执行输入输出操作也可以使用专用输入输出处理器(dedicated I/O processors)——这通常是指大型電腦上的通道输入输出(Channel I/O),这些专用处理器执行自有的指令集。 内存映射IO(不要和内存映射文件的输入输出混淆)使用相同的地址总线来寻址內存和输入输出设备(简称IO设备),前提是IO设备上的设备内存和寄存器都已经被映射到内存空间的某个地址。这样当CPU访问某个地址的时候,可能是要访问某一部份物理內存,也可能是要访问IO设备上的内存。因此,设备内存也可以通过内存访问指令来完成读写。每个IO设备监测CPU的地址总线,并且在发现CPU访问被分配到本设备的地址区域的时候做出响应,建立数据总线和相应设备寄存器之间的连接。为了实现CPU对MMIO设备的访问,相应的地址空间必须给这些设备保留, 并且不能再分配给系统物理内存。这可以是永久保留,也可以是暂时性的保留。通常来说X86架构都是永久保留的,而在Commodore 64中,由于采用了IO设备和普通内存之间的堆交换技术(bank switching),可以做到暂时性保留。 PMIO通常使用一组专门为IO设计的CPU指令来执行IO操作。比如在基于x86和x86-64架构的微处理器中使用in/out指令。这两条指令有一些不同的形式,分别用来在CPU的EAX寄存器(或高16位/低16位/高8位/低8位)和IO设备的某个端口之间完成对单字节/双字节/四字节数据的操作(比如对out指令,分别有outb, outw和outl) 。IO设备有一个和内存地址空间相互独立的IO地址空间。IO设备通过专用IO针脚或者专用的总线和CPU相连。因为这个IO地址空间和内存地址空间相互独立,所以有时候称为独立I/O.

新!!: 内存映射文件和存储器映射输入输出 · 查看更多 »

平台叫用服務

平台叫用服務(Platform Invocation Services),或称P/Invoke,通常指微软的公共语言运行时提供的跨平台调用方式。 平台叫用服務是公共语言基础设施相关实现的一个特性。这一特性与微软的公共语言运行时提供的较为类似,因此一般提到P/Invoke多数指微软的.NET实现方案。这一方案能够实现通过托管代码访问原生代码。使用P/Invoke可以通过CLR来控制DLL的加载,以及将非托管代码的数据类型转换为托管数据类型。.

新!!: 内存映射文件和平台叫用服務 · 查看更多 »

分頁

分頁(Paging),是一種作業系統裡記憶體管理的一種技術,可以使電腦的主記憶體可以使用儲存在輔助記憶體中的資料。作業系統會將輔助記憶體(通常是磁盘)中的資料分割成固定大小的區塊,稱為「頁」(pages)。當不需要時,將分頁由主記憶體(通常是内存)移到輔助記憶體;當需要時,再將資料取回,載入主記憶體中。相對於分段,分頁允許記憶體儲存於不連續的區塊以維持檔案系統的整齊。分页是磁盘和内存间传输数据块的最小单位。 分頁/虛擬記憶體能有助“大大地”降低整體及額外非必要的 I/O 次數,提高系統整體運作效能。因為這能有助提高 RAM 的讀取命中率,也透過其內部的高效率算法來達到 I/O 數據流的預緩存工作,通過與之相關的等等手段也能很好地提高了 CPU 的使用效率,而擁有大實體記憶體的用戶更可能考慮利用如Ramdisk、Supercache、SoftPerfect RAM Disk等模擬出硬碟分區來同時將虛擬記憶體/系統临时檔案等設置其上以進一步加強系統效能,及達至保障硬碟的措施。分頁是虛擬記憶體技術中的重要部份。.

新!!: 内存映射文件和分頁 · 查看更多 »

共享内存

共享内存,分为两种:.

新!!: 内存映射文件和共享内存 · 查看更多 »

Boost C++ Libraries

Boost C++ 函式庫(Libraries)是一組擴充C++功能的經過同行評審(Peer-reviewed)且開放源碼程式庫。大多數的函式為了能夠以開放源碼、封閉專案的方式運作,而授權於Boost軟體授權條款(Boost Software License)之下。許多Boost的開發人員是來自C++標準委員會,而部份的Boost函式庫成為C++的TR1標準之一。 為了要確保函式庫的效率與彈性,Boost廣泛的使用模板(template)功能。而它是針對各式領域的C++使用者與應用領域(Application Domain)上,包含的函式庫類別從像這種類通用函式庫,到像是檔案系統的作業系統抽象層,甚至能夠利用Boost來開發額外的函式庫或是給進階的C++使用者利用,像是。.

新!!: 内存映射文件和Boost C++ Libraries · 查看更多 »

碎片

,2010年上映的日本劇情片,滿島光主演。改編自漫畫家的漫畫作品《LOVE VIBES》。此部電影亦是知名演員之女安藤桃子的初執導作品。.

新!!: 内存映射文件和碎片 · 查看更多 »

D語言

D語言是一种程式語言,具备多範型,例如物件導向、指令式。由沃尔特·布莱特和安德烈·亞歷山德雷斯庫所開發,起源自C++,深受C++的影響,然而其不是C++的变种,而是重新设计来自C++的部分特性,并受到其它程式語言觀念的影響,如Java、C#以及Eiffel。2007年1月2日釋出1.0穩定版本。版本2.0釋出於2007年1月17日。 Walter Bright本身是Symantec C++ 編譯器的作者;另一名作者Andrei Alexandrescu是Facebook的研究科学家,他与一个团队用D语言重写一些Facebook的重要操作。.

新!!: 内存映射文件和D語言 · 查看更多 »

随机存取存储器

随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以隨時读写(重新整理時除外,見下文),而且速度很快,通常作为操作系统或其他正在运行中的程式的临时資料存储媒介。 主記憶體(Main memory)即電腦內部最主要的記憶體,用來載入各式各樣的程式與資料以供CPU直接執行與運用。由於DRAM的性價比很高,且擴展性也不錯,是現今一般電腦主記憶體的最主要部分。2014年生產電腦所用的主記憶體主要是DDR3 SDRAM,而2016年開始DDR4 SDRAM逐漸普及化,筆電廠商如華碩及宏碁開始在筆電以DDR4記憶體取代DDR3L。.

新!!: 内存映射文件和随机存取存储器 · 查看更多 »

行程

行程(process),是電腦中已執行程式的實體。行程為曾经是分時系統的基本運作單位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,行程本身不是基本執行单位,而是執行緒的容器。程式本身只是指令、数据及其组织形式的描述,行程才是程式(那些指令和数据)的真正執行实例。若干行程有可能與同一個程式相關聯,且每個行程皆可以同步(循序)或异步(平行)的方式獨立執行。現代電腦系統可在同一段時間內以进程的形式将多個程式載入到記憶體中,並藉由時間共享(或稱时分复用),以在一個處理器上表現出同時(平行性)執行的感覺。同樣的,使用多執行緒技術(多執行緒即每一個執行緒都代表一個行程内的一个独立执行上下文)的作業系統或電腦架構,同樣程式的平行线程,可在多CPU主機或網絡上真正同時執行(在不同的CPU上)。.

新!!: 内存映射文件和行程 · 查看更多 »

行程間通訊

进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。 进程是计算机系统分配资源的最小单位(严格说来是线程)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。通常,使用进程间通信的两个应用可以被分为客户端和服务器(见主从式架构),客户端进程请求数据,服务端响应客户端的数据请求。有一些应用本身既是服务器又是客户端,这在分布式计算中,时常可以见到。这些进程可以运行在同一计算机上或网络连接的不同计算机上。 IPC对微内核和纳米内核的设计过程非常重要。 微内核减少了内核提供的功能数量。 然后通过IPC与服务器通信获得这些功能,与普通的单片内核相比,IPC的数量大幅增加。.

新!!: 内存映射文件和行程間通訊 · 查看更多 »

記憶體管理

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。 一個執行中的程式,譬如網頁瀏覽器在個人電腦或是圖靈機(Turing machine)裡面,為一個进程將資料轉換於真實世界及電腦記憶體之間,然後將資料存於電腦記憶體內部(在電腦科學,一個程式是一群指令的集合,一個进程是電腦在執行中的程式)。記憶體能被實際組織在許多方法裡頭,例如磁帶或是磁盤,或是小陣列容量的微晶片。 從1950年代開始,計算機變的更複雜,它被連線於許多種類的記憶體。記憶體管理的任務也變得複雜,甚至必須要在同一台機器上相同的時間執行多個进程。 在記憶體內,一個程式(作業系統)在每一個資料區段持續地追蹤實體位置,及移動實體上的資料去改善其效能及保證可靠性,對於每個用户層(user-level)的程式,作業系統分配一段虛擬記憶體空間,當行程起始時,不需要移動資料到實體裝置間,資料存於磁碟內的虛擬記憶體空間,也不需要去配置主記憶體空間給該行程,當使用者有需要用到時,他們才会很自由地載入到主記憶體內。 可以想像一個很大的程式,當他執行時變成行程,而大部分的記憶體空間都被存到磁碟內虛擬記憶體位址,需要用到的部分才被載入到記憶體內部提供服務。.

新!!: 内存映射文件和記憶體管理 · 查看更多 »

虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。 注意:虚拟内存不只是「用磁盘空间来扩展物理内存」的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为「连续的虚拟内存地址」,以借此「欺骗」程序,使它们以为自己正在使用一大块的「连续」地址。 现代所有用于一般应用的操作系统都对普通的应用程序使用虚拟内存技术,例如文字处理软件,电子制表软件,多媒体播放器等等。老一些的操作系统,如DOS和1980年代的Windows,或者那些1960年代的大型机,一般都没有虚拟内存的功能——但是,和苹果公司的Lisa都是很值得注意的例外。 那些需要快速存取或者反應時間非常一致的嵌入式系统,和其他的具有特殊应用的计算机系统,可能会為了避免讓運算結果的可預測性降低,而选择不使用虚拟内存。.

新!!: 内存映射文件和虚拟内存 · 查看更多 »

Gibibyte

Gibibyte(giga binary byte的缩写)是資訊計量的一个单位,简称GiB。 Gibibyte與Gigabyte常常被混淆,前者的計算方式是二進制,後者的計算方式是十進制。現今的計算上,常把Gigabyte以二進制的方式計算,即230。(因為Windows對GB這個資訊計量單位的誤用,因此在Windows中顯示的"1GB",其實應是指"1GiB",但Windows卻顯示為"1GB",而常造成誤解。誤用會普遍化的一大因素,是因為Windows的作業系統佔有率高),由於两种换算方法的不同,使容量在計算上相差了7.3%,所以常有Windows系统报告的容量比硬盘标示的容量還要小的情况发生。但在苹果公司的OS X作業系統中,对于儲存裝置的容量计算方式与硬盘厂商一致,均为1GB.

新!!: 内存映射文件和Gibibyte · 查看更多 »

IA-32

英特爾32位元架構(Intel Architecture, 32-bit,縮寫為IA-32),常被稱為i386、或x86,由英特爾公司於1985年推出的指令集架構。它是8086架構的延伸版本,可支援32位元運算,首次應用在Intel 80386晶片中。.

新!!: 内存映射文件和IA-32 · 查看更多 »

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.

新!!: 内存映射文件和Java · 查看更多 »

Microsoft Windows

Microsoft Windows(中文有时譯作微軟--,通常不做翻译)是微軟公司推出的一系列操作系统。它問世於1985年,起初是MS-DOS之下的桌面環境,其後續版本逐漸發展成為主要为個人電腦和服务器用户設計的操作系統,并最终获得了世界个人电脑操作系統的垄断地位。此操作系統可以在几种不同类型的平台上运行,如个人电脑(PC)、移动裝置、服务器(Server)和嵌入式系統等等,其中在个人电脑的领域应用内最为普遍。在2004年國際數據資訊公司一次有关未来发展趋势的会议上,副董事长Avneesh Saxena宣布Windows拥有终端操作系统大约70%的市场份额 www.linuxworld.com.au。 Windows操作系統目前最新的穩定版是於2015年7月29日發佈的 Windows 10。Windows Server目前最新的穩定版是2016年9月26日發佈的Windows Server 2016。.

新!!: 内存映射文件和Microsoft Windows · 查看更多 »

OpenVMS

OpenVMS(開放虛擬記憶體系統,Open Virtual Memory System),舊名VAX-11/VMS,VAX/VMS或VMS,一種用於伺服器的作業系統,2005年1月由惠普推出,可以運行在VAX、Alpha或Itanium處理器家族平台上。 Category:1977年软件 Category:计算机平台 Category:DEC作業系統 Category:惠普 Category:并行计算 Category:叢集計算.

新!!: 内存映射文件和OpenVMS · 查看更多 »

Perl

Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.

新!!: 内存映射文件和Perl · 查看更多 »

POSIX

可移植作業系統接口(Portable Operating System Interface,縮寫為POSIX),是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945。此标准源于一个大约开始于1985年的项目。POSIX这个名称是由理查德·斯托曼应IEEE的要求而提议的一个易于记忆的名称。它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。 Linux基本上逐步实现了POSIX兼容,但并没有参加正式的POSIX认证。 微软的Windows NT声称部分实现了POSIX标准。 当前的POSIX主要分为四个部分:Base Definitions、System Interfaces、Shell and Utilities和Rationale。.

新!!: 内存映射文件和POSIX · 查看更多 »

Python语言

#重定向 Python.

新!!: 内存映射文件和Python语言 · 查看更多 »

R语言

R语言,一種自由軟體程式語言與操作環境,主要用于统计分析、绘图、数据挖掘。R本來是由來自新西蘭奧克蘭大學的罗斯·伊哈卡和罗伯特·杰特曼開發(也因此稱為R),現在由“R開發核心團隊”負責開發。R基于S语言的一个GNU計劃项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的語法是來自Scheme。 R的原始碼可自由下載使用,亦有已編譯的執行檔版本可以下載,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同時有人開發了幾種圖形用戶界面。.

新!!: 内存映射文件和R语言 · 查看更多 »

Ruby

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本電腦科學家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。.

新!!: 内存映射文件和Ruby · 查看更多 »

Unix-like

#重定向 类Unix系统.

新!!: 内存映射文件和Unix-like · 查看更多 »

Windows API

Windows操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,是微软对于Windows操作系统中可用的核心应用程序编程接口的称法。它被设计为各种语言的程序调用,也是应用软件与Windows系统最直接的交互方式。大多数驱动程序需要对Windows系统更底层次访问接口,由所用版本的Windows的Native API来提供接口。 Windows有一个软件开发套件(SDK, software development kit)提供相应的文档和工具,以使程序员开发使用Windows API的软件和利用Windows技术。.

新!!: 内存映射文件和Windows API · 查看更多 »

重定向到这里:

文件映射对象

传出传入
嘿!我们在Facebook上吧! »