一个进程能访问整个内存吗,如果能如何访问
来源:百度知道 编辑:UC知道 时间:2024/09/22 07:55:46
这里说的不是按常规的方法,而是使用任何方法,缓冲区溢出也不是一个常规的方法,编程平台也没有这一规定,不也溢出了吗,只要能访问任何方法都行
可以的,需要根据程序动态调整进程资源。
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
$ top -u oracle
内容解释:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
首先 如果在dos下没有内存保护机制是可以的但是dos已经是历史了
现代操作系统我们都是用在保护模式下的。保护模式下,每个进程都有自己的4g (32位线)空间作为程序的执行空间 在加上虚拟内存技术使得 我们现在的计算机能够执行大程序 。
我们的程序都是搭建在一定的平台上的 。在windows保护模式下 ,我们是没办法做到除非你用系统的漏洞什么的也许可能
缓冲区溢出 是这样的我们把数据copy 到内存中
本来我们定义的缓冲区大小是100 ,但是你想放101 个这样最后1个就会是不正常的 。这个在c 中有strcpy ==函数由于设计的时候没检测长度。。
还有就是在缓冲区