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

    一些概念:

     

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

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

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

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

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

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

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

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

  • 相关阅读:
    Thrift官方安装手冊(译)
    从用python做zoj1011发生Non-zero Exit Code错误说起
    POJ 1637 Sightseeing tour(最大流)
    js中substr与substring的差别
    白话经典算法系列之七 堆与堆排序
    在基于阿里云serverCentOS6.5下安装Subversion 1.6.5服务
    Android研究之手PullToRefresh(ListView GridView 下拉刷新)使用具体解释
    java中获取系统属性以及环境变量
    sql中 in 、not in 、exists、not exists 使用方法和区别
    80x86汇编小站站长简单介绍-2014年08月23日
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/11647917.html
Copyright © 2011-2022 走看看