计算机专业就业指导(Java)之基础技术测试篇(八)

基础技术测试篇(八)

3.2 内存管理

例题5:简述操作系统中内存分配的几种方式

答案:在操作系统中内存分配有以下三种方式:

(1)静态存储区域分配,这块内存在程序编译时或者在操作系统初始化时就已经分配好,在程序整个运行期间都存在,而且其大小不会改变,也不会被重新分配。例如全局变量,static变量等。

(2)栈上的内存分配,栈是系统数据结构,对于进程或者线程是唯一的,它的分配与释放由操作系统来维护,不需要开发者来管理。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元会被自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,不同的操作系统对栈都有一定的限制。

(3)堆上的内存分配,亦称动态内存分配。程序运行期间用malloc申请的内存,这部分内存由开发者负责管理,其生存期由开发人员决定,在何时分配,分配多少,并在何时用free来释放该内存。这是唯一可以由开发者参与管理的内存。使用的好坏直接决定系统的性能和稳定。

Tips:内存管理是计算机编程最为基本的领域之一。在很多的编程语言中,开发者不必担心内存是如何管理的,这并不能使内存管理的重要性一点点降低。对实际编程来说,理解语言自己的内存管理能力与局限性至关重要。大部分系统语言,例如C和C++,要求开发者必须进行内存管理。

例题6:简单说明物理内存和虚拟内存在程序运行过程中作用

答案:程序运行时需要从内存中读出某段程序的代码,代码的位置必须在物理内存中才能被运行。由于操作系统中有许多的程序同时运行,内存中不能够完全存放这些程序,所以引出了虚拟内存的概念。把那些不常用的程序片段放入虚拟内存,需要用到时再载入主存(物理内存)中。这个就是内存管理的主要工作。内存管理还有另外一个主要功能,计算程序片段在主存中的物理位置,以便CPU进行调度。

Tips:物理内存包括所有位于计算机内的可写内存。物理内存用于储存诸如操作系统,视频数据及计算机用于运行程序的指令和数据之类的内容。

虚拟内存可视为分配给应用程序的内存。操作系统使用硬盘的一部分作为虚拟内存,在硬盘和物理内存之间交换数据和指令。

虚拟内存使多任务成为可能。在执行多任务期间,系统中可能运行的所有程序的内存需求在同一时间内远超过可用的物理内存容量。操作系统就分配虚拟内存以满足每个程序的总的内存需求,然后管理可用的物理内存以便及时地在给定的时刻满足实际的内存需求。所以被分配的虚拟内存的容量可以远大于计算机内安装的物理内存容量。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值