标签:span 用户态 设置 linu 切换 暴风影音 管理 堆栈 更新
一、硬件介绍:
由一条总线把CPU、内存和I/O设备串联起来并与其他设备进行通信。CPU负责运算,内存用于储存临时变量,硬盘用于储存数据。
1.1处理器CPU
从内存中读取指令--解码为二进制语言--执行指令,重复执行前面三个步骤直到程序结束。
寄存器--CPU的一部分,用于缓存一些比较重要待解决的指令。
第一类.通用寄存器:用来保存变量和临时结果。
第二类.程序计数器:它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令。
第三类.堆栈指针寄存器:它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量。(知识补充:1.堆栈:就像往箱子里放置叠好的衣服,一件一件往箱子里放,遵循后进先出原则,就像要把第一件衣服取出来,必须从最后一件开始取,直到取出第一件。2.队列:就像排队刷卡出大门,遵循先进先出原则,一条队列,肯定是第一个排队的人刷卡先走。)
第四类.程序状态字寄存器:这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。
内核态与用户态
程序状态字寄存器中有一个二进制位控制这两种模式(0、1)。
内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。
内核态与用户态切换:用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。
CPU中的一级缓存L1就是寄存器。二级缓存L2用于多核CPU之间的通信,访问速度壁访问内存快一点。
1.2存储器
寄存器就是L1缓存,高速缓存就是L2.
高速缓存命中:高速缓存硬件检查所需要的高速缓存行是否在高速缓存中,如果是,则为高速缓存命中。
内存RAM:断电后数据全部消失,易失性储存。
ROM:只读存储器在工厂中就被编程完毕,然后再也不能修改。
闪存:类似固态硬盘,不像机械硬盘那么脆弱,但是擦除次数过多就会损坏。
CMOS储存器:内置一小块电池,主要用于记录时间和日期参数,还保存一些其他参数,入记录哪一个是系统磁盘等等。
扇区:机械硬盘中,盘面一个圆中的一小段。
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置
标签:span 用户态 设置 linu 切换 暴风影音 管理 堆栈 更新
原文地址:http://www.cnblogs.com/guotianbao/p/6607892.html