进程运行时系统执行了什么(存储器)
发布时间
阅读量:
阅读量
本文重点阐述一个程序在操作系统中的运行方式,以存储为视角作为辅助手段,深入认识内存管理的本质。
1、以前是怎么做的?
在较早时期, 存储器并未进行抽象处理, 而是以命令的方式直接控制物理内存. 在这种架构下, 并行执行多个程序无法实现. 当多个进程试图在同一块内存空间进行操作时, 系统可能会出现崩溃.
由于物理地址直接暴露于不同进程之间存在严重威胁,在这种情况下人类有相应的解决办法!若要实现多个应用程序共享内存而不互相干扰,则需解决两大关键问题:保护机制与地址重新定位。由此衍生出了一个全新概念:虚拟地址空间。所谓虚拟地址空间即为一个进程可用于寻址内存的一套逻辑化地划分好的地址集合体,并且每个进程都拥有独立的虚拟地址空间以保证系统的安全性与互操作性。
如何使每一个进程能够动态地确定自身的地址空间位置?解决方案是为每一个CPU配备两个特定的硬件寄存器:基址寄存器与界限寄存器。每当一个进程运行时(即启动并开始执行),该程序的起始物理地址会被加载到基址寄存器中,并将程序长度加载到界限寄存器中。然而,在软件日益强大的情况下(或随着软件规模不断扩大),内存往往会出现不足的情况。下面介绍两种解决方法。
最基本的就是交换机制 ,即通过将一个进程短暂地保留在内存中后释放至磁盘实现磁盘访问的技术手段。如果对存储设备有一定的了解背景知识的话你肯定就想到这一系列磁
全部评论 (0)
还没有任何评论哟~
