zoukankan      html  css  js  c++  java
  • 操作系统的哲学原理,以及一些性能测试中的数据分析

    一些概念:

     

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

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

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

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

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

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

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

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

  • 相关阅读:
    二叉树计算叶子节点的计算问题
    操作系统中有关读者写者问题
    Java中关于CountDownLatch的使用
    Java中关于CyclicBarrier的使用
    将毫秒 换算成(天 时 分 秒 毫秒)
    数据库訪问技术之JDBC
    窥探开发人员与用户
    Cocos2d-x游戏开发之lua编辑器 Sublime 搭建,集成cocos2dLuaApi和自有类
    高速排序,归并排序,堆排序python实现
    svn 批量加入没有加入版本号控制的文件命令
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/11647917.html
Copyright © 2011-2022 走看看