操作系统的哲学原理,以及一些性能测试中的数据分析

一些概念:

 

1.内存管理主要是管理缓存/主存/磁盘/磁带等存储介质锁形成的内存框架。

2.虚拟内存:即将物理内存(缓存和主存)扩充到外部存储介质(磁盘/光盘/磁带)上。这样内存的空间就大大的增加了。

3.中断的基本原理是:设备在完成自己的任务后向CPU发出中断,CPU判断优先级,然后确定是否响应。如果响应,则终端服务程序,并在终端服务程序执行完后继续执行原来的程序。

4.从物理内存的分配来看,每个进程占用一片内存空间,从这点上说,进程就是内存的某片空间。由于在任意时刻,CPU只能执行一条指令,因此任意时刻在CPU上执行的进程只有一个,而到底执行那条指令由程序计数器指定。也就是说,在物理层面上,所有进程共用一个程序计数器。从逻辑层面上来看,每个进程可以执行,也可以暂时挂起让别的进程执行,之后又可以接着执行。

5.如果在程序运行过程中发生中断或异常,系统将自动切换到内核态来运行中断或异常处理机制。此外,程序进行系统调用也将造成从用户态进入到内核态的转换。

6.操作系统分配给程序的空间小了,造成程序无法继续运行。处理办法:给该程序换一个空间。就是当一个程序所占空间不够是,我们将其倒在磁盘到,再加载到一个更大的内存空间。这种将程序倒在磁盘上,再加载进内存的管理方式成为交换(SWAP)。

7.分页中:在交换页面时,如果更换的页面时一个很快就会被再次访问的页面,则在此次却也中断后又会发生新的缺页中断,这样内存访问变成磁盘访问,使系统的效率急剧下降。这种现象称为内存抖动(tras-hing)

8.接上面的内存抖动,我记得Android里面的内存抖动是和heap堆内存回收频率有关,如果heap分配的临时变量多且频繁,也会造成抖动。

原文地址:https://www.cnblogs.com/zhizhiyin/p/11647917.html