免费智能真题库 > 历年试卷 > 软件评测师 > 2021年下半年 软件评测师 上午试卷 综合知识
  第12题      
  知识点:   服务器操作系统资源占用   操作系统   进程   进程管理
  关键词:   操作系统   进程        章/节:   测试技术的分类       

 
操作系统进程管理中,若进程P运行的时间片到了,则意味着()。
 
 
  A.  P将进入等待队列
 
  B.  P的优先级变为最高
 
  C.  P将进入就绪队列
 
  D.  P从等待队列中被唤醒
 
 
 

   知识点讲解    
   · 服务器操作系统资源占用    · 操作系统    · 进程    · 进程管理
 
       服务器操作系统资源占用
        通过《负载压力测试指标》章节的讨论,可以将服务器操作系统资源占用监控指标概括为以下几个方面:
        ①CPU。
        ②磁盘管理。
        ③内存。
        ④交换区SWAP。
        ⑤进程。
        ⑥安全控制。
        ⑦文件系统。
        下面举例对某些指标进行分析。
        . Memory:内存使用情况可能是系统性能中最重要的因素。如果系统“页交换”频繁,说明内存不足。“页交换”是使用称为“页面”的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,其目的是为了释放内存空间。尽管某些页交换使Windows 2000能够使用比实际更多的内存,也是可以接受的,但频繁的页交换将降低系统性能。减少页交换将显著提高系统响应速度。要监视内存不足的状况,请从以下的对象计数器开始。
        ①Available Mbytes:可用物理内存数。如果Available Mbytes的值很小(4MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
        ②page/sec:表明由于硬件页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放内存空间的页面数。一般如果pages/sec持续高于几百,那么应该进一步研究页交换活动。有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。pages/sec的值很大,不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。
        ③page read/sec:页的硬故障,page/sec的子集,为了解析对内存的引用,必须读取页文件的次数。阈值为>5,越低越好。大数值表示磁盘读而不是缓存读。
        . 由于过多的页交换要使用大量的硬盘空间,因此有可能导致页交换内存不足与页交换的磁盘瓶颈混淆。因此,在研究内存不足不太明显的页交换的原因时,必须跟踪如下的磁盘使用情况计数器和内存计数器:
        . Physical Disk\ %Disk Time。
        . Physical Disk\ Avg.Disk Queue Length。例如,包括Page Reads/sec和% Disk Time及Avg.Disk Queue Length。如果页面读取操作速率很低,同时%Disk Time和Avg.Disk Queue Length的值很高,则可能有磁盘瓶颈。而如果队列长度增加的同时页面读取速率并未降低,则内存不足。要确定过多的页交换对磁盘活动的影响,请将Physical Disk\ Avg.Disk sec/Transfer和Memory\ pages/sec计数器的值增大数倍。如果这些计数器的计数结果超过了0.1,那么页交换将花费10%以上的磁盘访问时间。如果长时间发生这种情况,那么可能需要更多的内存。
        . Page Faults/sec:每秒钟软性页面失效的数目(包括有些可以直接在内存中满足而有些需要从硬盘读取),而page/sec只表明数据不能在指定内存中立即使用。
        . Cache Bytes:文件系统缓存(File System Cache),默认情况下为50%的可用物理内存。如果怀疑有内存泄露,请监视Memory\ Available Bytes和Memory\ Committed Bytes,以观察内存行为,并监视可能泄露内存进程Process\Private Bytes、Process\Working Set和Process\Handle Count。如果怀疑是内核模式进程导致了泄露,则还应该监视Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs和Process(process_name)\ Pool Nonpaged Bytes。
        . Pages per second:每秒钟检索的页数。该数字应少于每秒1页。
        . Page Faults/sec:将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。
        . Work set:处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在内存中,当自由内存少于一个特定的阈值时,页就会被清除出内存。
        . Inetinfo:Private Bytes。此进程所分配的无法与其他进程共享的当前字节数量。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。
        . Processor:监视“处理器”和“系统”对象计数器可以提供关于处理器使用的有价值的信息,帮助决定是否存在瓶颈。
        . %Processor Time:被处理器消耗的处理器时间数量。如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。
        . %User Time:表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接、水平分割大表格等方法来降低该值。
        . %Privileged Time:(CPU内核时间)是在特权模式下处理线程执行代码所花时间的百分比。如果该参数值和“Physical Disk”参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。另外设置“Tempdb in RAM”,减低“max async IO”,“max lazy writer I/O”等措施都会降低该值。此外,跟踪计算机的服务器工作队列当前长度的Server Work Queues\ Queue Length计数器会显示出处理器瓶颈。队列长度持续大于4,则表示可能出现处理器拥塞。此计数器是特定时间的值,而不是一段时间的平均值。
        . %DPC Time:越低越好。在多处理器系统中,如果这个值大于50%并且“Processor:%Processor Time”非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。
        . Context Switches/sec:如果决定要增加线程字节池的大小,应该同时监视实例化inetinfo和dllhost进程这两个计数器。增加线程数可能会增加上下文切换次数,这样性能不会上升,反而下降。如果多个实例的上下文切换值非常高,就应该减小线程字节池的大小。
        . %Disk Time:指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果只有%Disk Time比较大,而CPU和内存都比较适中,硬盘可能会是瓶颈。
        . Avg.Disk Queue Length:指读取和写入请求(为所选磁盘在实例间隔中列队)的平均数。该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。注意,一个Raid Disk实际有多个磁盘。
        . Average Disk Read/Write Queue Length:指读取(写入)请求(列队)的平均数。.Disk Reads(Writes)/s:物理磁盘上每秒钟磁盘读、写的次数。两者相加,应小于磁盘设备最大允许读取次数。
        . Average Disksec/Read:指以秒计算的在此盘上读取数据的所需平均时间。.Average Disk sec/Transfer:指以秒计算的在此盘上写入数据的所需平均时间。.Bytes Total/sec:为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽进行比较。
 
       操作系统
        编写嵌入式软件有两种选择:一是自己编写内核;二是使用现成的操作系统。如果嵌入式软件只需要完成一项非常小的工作,例如在电动玩具、空调中,就不需要一个功能完整的操作系统。但如果系统的规模较大、功能较复杂,那么最好还是使用一个现成的操作系统。可用于嵌入式系统软件开发的操作系统有很多,但关键是如何选择一个适合开发项目的操作系统,可以从以下几点进行考虑:
        (1)操作系统提供的开发工具。有些实时操作系统只支持该系统供应商的开发工具,因此,还必须从操作系统供应商处获得编译器、调试器等;而有的操作系统应用广泛,且有第三方工具可用,因此选择的余地比较大。
        (2)操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,以避免因移植带来的种种困难。
        (3)操作系统的内存要求,有些操作系统对内存有较大要求。
        (4)操作系统的可剪裁性、实时性能等。
 
       进程
        简单而言,一个进程就是一个正在运行的程序。一般来说,一个进程至少应该包括以下几个方面的内容。
        .相应的程序:进程既然是一个正在运行的程序,当然需要有相应程序的代码和数据。
        .CPU上下文:指程序在运行时,CPU中各种寄存器的当前值,包括:程序计数器,用于记录将要取出的指令的地址;程序状态字,用于记录处理器的运行状态信息;通用寄存器,用于存放数据或地址;段寄存器,用于存放程序中各个段的地址;栈指针寄存器,用于记录栈顶的当前位置。
        .一组系统资源:包括操作系统用来管理进程的数据结构、进程的内存地址空间、进程正在使用的文件等。
        进程有动态性、独立性和并发行三个特性。
        (1)动态性。进程是一个正在运行的程序,而程序的运行状态是在不断地变化的。例如,当一个程序在运行的时候,每执行完一条指令,PC寄存器的值就会增加,指向下一条即将执行的指令。而CPU中用来存放数据和地址的那些通用寄存器,它们的值肯定也不断地变化。另外,堆和栈的内容也在不断地变化,每当发生一次函数调用时,就会在栈中分配一块空间,用来存放此次函数调用的参数和局部变量。而当函数调用结束后,这块栈空间就会被释放掉。
        (2)独立性。一个进程是一个独立的实体,是计算机系统资源的使用单位。每个进程都有自己的运行上下文和内部状态,在它运行的时候独立于其他的进程。
        (3)并发性。从宏观上来看,在系统中同时有多个进程存在,它们相互独立地运行。
        下图表示四个进程A、B、C、D在系统中并发地运行。从中可以看出,虽然从宏观上来说,这四个进程都是在系统中运行,但从微观上来看,在任何一个特定的时刻,只有一个进程在CPU上运行。从时间上来看,开始是进程A在运行,然后是进程B在运行,然后是进程C和进程D。接下来又轮到了进程A去运行。因此,在单CPU的情形下,所谓的并发性,指的是宏观上并发运行,而微观上还是顺序运行,各个进程轮流去使用CPU资源。
        
        四个进程在并发运行
        在具体实现上,以CPU中的程序计数器PC为例,真正物理上的PC寄存器只有一个。当四个进程在轮流执行时,PC取值的运动轨迹是先在进程A内部流动,然后再到进程B的内部流动,再到进程C和D。从进程的独立性角度来说,每个进程都有“自己”独立的PC寄存器,即逻辑上的PC寄存器,它们的取值相互独立、互不影响。所谓的逻辑PC,其实就是一个内存变量。例如,在上图中,当进程A要执行的时候,就把A的逻辑PC的值拷贝到物理PC中,然后开始运行。当轮到B运行的时候,先把物理PC的当前值保存到A的逻辑PC中,然后再把B的逻辑PC的值装入到物理PC中,即可运行。这样就实现了各个进程的轮流运行。
 
       进程管理
        UNIX中的进程由进程控制块(PCB)、正文段和数据段组成。PCB由常驻主存的基本进程控制块proc和非常驻主存的进程扩充控制块user两部分组成。正文段可供多个进程共享。系统设置一正文表text,每个正文段都占据一个表项,用来指明正文段在主存和磁盘中的位置。数据段是进程执行时用到的数据段,若进程执行时的程序是非共享的,则也构成数据段的一部分。
        传统的UNIX进程控制子系统有进程同步、进程通信、存储管理和进程调度几大功能。进程调度采用动态优先数调度算法,进程的优先数随着进程的执行情况而变化。UNIX系统中优先数的确定方法有两种,即设置方法和计算方法。
   题号导航      2021年下半年 软件评测师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第12题    在手机中做本题