CPU(central processing unit)
cache:cache就是高速内存,它的存取时间一般是10-20微秒(ns),这样,CPU可以在一个时钟周期内访问一次cache;而一般的内存的存取时间为80-90微秒(ns),它的大小对CPU的性能有很大的影响。
TLB(translation lookaside boffer):TLB是高速cache,它用于存放最近访问的虚拟地址和与其对应的物理地址对,这样TLB将可以把虚拟地址转换为物理地址。TLB是内存中系统转换表的一个子集;TLB通常是指向一个内存页面,而不是一个内存地址;它的大小对CPU的性能有很大的影响。 不同的CPU,一般有不同的时钟频率和高速缓存容量。
CPU在一次时钟周期内一般可以从高速缓存内取到一个指令并执行它。因此,从理论上说,只要CPU的主频越快,单位时间内所能执行的指令则越多。目前,有些CPU可以在一个时钟周期内执行多条指令,如PA8500可以执行4条指令。
高速缓存的大小会制约CPU的执行效率,虽然CPU主频很快,但它取不到数据,则只有空运行。因此,高速缓存的大小很重要;高速缓存又分数据高速缓存和指令高速缓存,分别存放从内存预先取来的即将执行的数据和指令单元。
虚拟寻址
一般,系统中的虚拟地址空间要比物理地址空间大得多,例如,如果系统是64位的,则理论上,它的寻址空间可以达到2的64次幂(2**64=18,447PB),但由于受费用的因素的影响,实际上的物理内存最大只有十几GB的内存。
每个进程都有自己的唯一虚拟地址空间,然而,进程的运行必须把虚拟地址映射到物理地址,这需要TLB、高速缓存和内存三者的配合。如果需要的信息不在内存,则导致一个页面错。
流水线(Pipelining)
TLB和高速缓存试图在一个时钟周期内给CPU提供它所需的信息,然而,这个过程是100%的利用率,对CPU来说,它必须先用一个时钟周期去取下一个指令,再一个时钟周期去执行这条指令,这样,CPU的利用率也只有50%。为了让CPU更忙,通常的做法是,采用流水线的方法。如PA8500是采用7个步骤的流水线。
操作系统和进程
HP-UX一个多用户、多任务的UNIX操作系统。它的性能依赖于用户数的多少、用户任务的类型、硬/软件件的配置。
HP-UX有两种运行级别:
用户级:系统用户可以与操作系统进行交互操作,如运行应用和系统命令。用户级通过系统调用接口访问内核级。
内核级:操作系统自动运行一些功能,它们主要对硬件进行操作。
在操作系统中,用户程序是以进程方式运行。进程的状态有以下几种:
SRUN
SSLEEP
SZOMB
SIDL
SSTOP
CPU的调度
一旦进程所需的数据调入内存后,它将等待CPU调度者来分配CPU时间。一般,在HP-UX中,每个进程都可以得一个 固定的时间片来运行,这个时间片的长度为十分之一秒(1/10秒)。
由于HP-UX是一个多任务的操作系统,它需要一种手段来进程的执行次序,这就是中断。在系统中,时钟中断处理器是用来处理时钟中断的系统软件。具体地说, 它将收集系统和accounting statistics and does context switching.系统性能也与这种中断发生的频率有关。
进程何优先级
每个进程都有自己的优先级;
实时优先级:-32~127,一个进程如果想以实时优先级运行,则必须用命令#rtprio来设置;
分时系统优先级:128~177;
分时用户优先级:178~251;
优先级:252~255 are used by the system as virtual memory management priorities for process deactivation.
分时进程在初始优先级是由系统分配的,为一个定值。用户可以通过改变进程的nice值来改变分时进程的优先级。因为进程会随着它的执行,将以nice值来降低它的优先级,当 它在等待执行时,又将以nice值来增加其优先级。nice值的系统缺值为20。
在系统性能分析过程中,我关心不仅仅在完成一个进程耗时多少,还包括时间花在哪以及它的时间多少。
(出处:http://www.sheup.com)