内存管理
来源:互联网 发布:python urllib2 post 编辑:程序博客网 时间:2024/06/01 23:26
关于操作系统,有两条基本的思考线路:
1.can do something.
2.do something better.
学习内存管理这一章也是如此。
首先最基本的肯定是要思考,操作系统运行起来后,肯定有系统进程要运行,后面还有用户进程要运行,而这些进程的代码都是放到内存中运行的,于是,直观的来看,内存分为用户区和系统区。这样就完成了do sth.再后来,为了能够让用户能运行更多的进程,即内存能同时放入更多的进程,于是就提出了关于提高内存利用率的技术。在我们提高内存利用率的同时呢,我们又很自然的应该考虑到各个进程程序代码之间的独立性问题,即“存储保护”,不同的进程之间,如果没有特别的需要,不能越界访问其他进程的代码,比如我们以前写代码就遇到过诸如“访问地址0X00….非法”、“非法地址等问题。但是有的时候呢,我们又需要一些数据进行共享,比如A,B,C,D进程都需要使用打印机,它们程序当中都有一段使用打印机的代码,于是这也是个问题啊,需要被解决,这就是“存储共享”的问题。还有诸如“重定位”的问题也是一样,很自然的被提出,需要被解决,比如说使用数组arr[],访问或者修改arr[0]的值,0就是逻辑地址啊,至于内存中的实际地址,程序员不用去管的,程序运行起来的时候,你修改arr[0]的值,“重定位”技术帮你解决。,还有就是arr[0]的位置也不是一直不变,可能变化的,因为进程可能被挂起,可能其他进程占有了之前进程在内存中的位置,很多外挂也是通过修改游戏运行时内存中的数据来实现的,比如某个单机游戏,但是要找到这个游戏中的数据比如说金币,在内存中的位置是不容易的,这里就不展开了,常用工具是spy++等。操作系统学习其实不难,它就是个管理者而已。
两条线:
1.can do sth.
2.do sth better.
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- linux程序设计——父进程和子进程(第十三章)
- UNIX环境高级编程之----多线程技术(1)
- 安装sqlserver 2008出现的问题
- .net学习之ASPX页面属性
- LeetCode 24: Swap Nodes in Pairs
- 内存管理
- fans-rt 任务调度-堆栈切换篇(4)tiny模型详细分析
- Android 自定义控件打造史上最简单的侧滑菜单
- 1.Hibernate初始化
- Test
- UML类图几种关系
- 架构设计:负载均衡层设计方案(4)——LVS原理
- 使用GridView实现九宫格的菜单
- HDU 4341 Gold miner (分组背包)