JavaScript is required to for searching.
跳过导航链接
退出打印视图
编程接口指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  内存和 CPU 管理

2.  用于 Solaris Cluster 的远程共享内存 API

3.  会话描述协议 API

4.  进程调度程序

调度程序概述

分时类

系统类

实时类

交互式类

公平份额类

固定优先级类

命令和接口

priocntl 用法

priocntl 接口

与其他接口交互

内核进程

使用 forkexec

使用 nice

init(1M)

调度和系统性能

进程状态转换

5.  地址组 API

6.  输入/输出接口

7.  进程间通信

8.  套接字接口

9.  使用 XTI 和 TLI 编程

10.  包过滤钩子

11.  传输选择和名称到地址映射

12.  实时编程和管理

13.  Solaris ABI 和 ABI 工具

A.  UNIX 域套接字

索引

调度和系统性能

调度程序可确定进程运行的时间以及持续长度。因此,调度程序的行为会对系统性能产生重要影响。

缺省情况下,所有用户进程都是分时进程。进程只能通过 priocntl(2) 调用来更改类。

所有实时进程的优先级都高于分时进程的优先级。如果有任何实时进程可以运行,则不能运行分时进程或系统进程。有时无法放弃 CPU 控制权的实时应用程序可能会完全禁止其他用户和基本内核内务处理对其进行使用。

除了控制进程类和优先级之外,实时应用程序还必须控制影响其性能的其他因素。性能方面最重要的因素包括 CPU 处理能力、主存储器量和 I/O 吞吐量。这些因素会以很复杂的方式相互作用相互影响。sar(1) 命令可以使用一些选项来报告所有性能因素。

进程状态转换

具有严格实时约束的应用程序可能需要阻止将进程换出或换页到辅助内存。下图简要概括了 UNIX 进程状态以及状态之间的转换。

图 4-2 进程状态转换图

image: 正在运行的进程可以通过抢占内存在内存中进入可运行状态,也可能在内存中进入休眠状态。内存中的进程可以进行交换。

活动进程通常处于图中的五种状态之一。箭头指示了进程状态如何进行变化。

当进程可以再次运行时,换页和交换都会造成延迟。对于具有严格的时间安排要求的进程而言,这种延迟可能是无法接受的。

为了避免交换延迟,实时进程永远不能进行交换,尽管某些实时进程可以进行换页。程序可以通过将其文本和数据锁入到主存储器中来阻止换页和交换。有关更多信息,请参见 memcntl(2) 手册页。可以锁定的内存量受限于已配置的内存量。另外,锁定过多内存可能会对未将文本和数据锁入内存的进程造成无法忍受的延迟。

实时进程与其他进程之间的性能权衡取决于局部需求。在某些系统中,可能需要进行进程锁定才能保证必需的实时响应。


注 - 有关实时应用程序延迟的信息,请参见分发延迟