• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

SCO UNIX5的几个主要系统进程 【转贴】

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网
系统进程(Syetem Process ,又叫Daemon Process),不依赖于终端或用户的进程。用ps命令查询时,在TTY字段处显示为“?”。 
一、Unix5最先启动的几个系统进程为: 
1. sched:PID=0 
UNIX核心创建的第一个进程 
? 系统启动时创建其他系统进程 
? 负责进程在swap和memory之间的切换(进程调度) 
2. init:PID=1 
? 初始化boot和login进程 
? 所有用户进程的“祖先”(ancestor) 
? 所有非sched创建的系统进程的“祖先”(ancestor) 
3. vhand:PID=2 
? 将memory中较少使用的页移入swap 区。 
4. dbflush:PID=3 
? 在一定的时间间隔将“buffer cache”中的内容刷新至硬盘。 
5. kmdaemon:PID=4 
? 管理保留内存池,以备服务进程中断时取用 
6. htepi_daemon:PID=5 
? 处理“ht filesystem driver ” 的异步日志文件的修改 
二、对init进程的说明: 
init首先完成/etc/default/boot,然后再执行/etc/inittab中的指令。在从/etc/inittab中取得运行模式前,它首先派生一个shell完成下列工作: 
/etc/bcheckrc 检查根文件系统 
/etc/ifor_pmd 执行注册管理程序(许可证管理) 
/etc/smmck 检查TCB(Trusted Computing Base database) /etc/auth,/tcb 
   若选择了多用户模式,init继续派生一个shell执行下列工作: 
/etc/asktimerc,/etc/authchkrc(作用同smmck,只是smmck运行于单用户) 

进程管理的两个命令(PS,Sar) 
 
常用的几个命令主要有: 
一、 PS 
我们可以用ps 的 – l 选项,得到更详细的进程信息. 
? F(Flag):一系列数字的和,表示进程的当前状态。这些数字的含义为: 
00:若单独显示,表示此进程已被终止。 
  01:进程是核心进程的一部分,常驻于系统主存。如:     
    sched、 vhand 、bdflush 等。 
02:Parent is tracing process. 
  04 :Tracing parent's signal has stopped the process; the parent is waiting ( ptrace(S)). 
  10:进程在优先级低于或等于25时,进入休眠状态,而且不能用信号唤醒,例如在等待一个inode被创建时    
   20:进程被装入主存(primary memory) 
   40:进程被锁在主存,在事务完成前不能被置换   e 
? S(state of the process ) 
O:进程正在处理器运行  
  S:休眠状态(sleeping) 
R:等待运行(runable)    
I:空闲状态(idle) 
  Z:僵尸状态(zombie)    
  T:跟踪状态(Traced)  
B:进程正在等待更多的内存页  
? C(cpu usage):cpu利用率的估算值  
二、 Sar:统计单CPU系统的系统活动情况 
Cpusar:多处理器系统中单个处理器的活动情况 
Mpsar:多处理器系统中处理器的总体活动情况 
? Sar -u:检查是否有逃逸进程大量占用CPU 
此命令的显示有四个字段,含义如下: 
%usr:执行用户进程的时间 
%sys:执行系统进程的时间 
%wio:等待完成I/O的时间 
%idle:空闲时间 
显示结果分析说明: 
1) 一般情况下,%usr与%sys的值基本相等 
2) 在一般的多用户系统中,%idle通常大于40% 
3) 若%wio经常>15%,意味着硬盘有可能会造成瓶颈 
4) 若%idle经常小于30%,意味着处理器能力较弱 
5) 若%idle经常小于10%,表明处理器负担过重,或者存在逃逸进程 
6) 若%idle接近于0,并且%sys又远远高于%usr,则可能是因为内存短缺引起了大量的swapping和paging 
? Sar -p:检查系统中是否有过多的等待进程 
此命令有四个相关字段: 
runq-sz:内存(memory)中可以运行的进程数 
%runocc:进程进入内存等待的概率 
swpq-sz:对换区(swap)中等待运行的进程数 
%swpocc:进程进入swap等待的概率 
显示结果分析汇总如下: 
1) 若runq-sz经常大于2并且%runocc经常大于100%,意味着处理器负载过重 
2) 若%swpocc不为0,表示系统已经置换出了进程。可以采用增加内存或减少缓冲的方法来减少swap和paging。 
? 自动统计程序: 
对系统运行状况的判断不能依赖于某个特定时期的数据,它需要一个长期的积累和收集的过程。Unix5提供了两个基于月的自动统计程序sa1(以二进制形式收集、存放于目录/usr/adm/sa中,以sadd为文件名,dd是一个数字,表示当月第几天)、sa2(以可读文本形式存放在目录/usr/adm/sa中,文件名为:sardd)。这两个命令可以通过crontab启动。相关文件位于/usr/spool/cron/crontabs下sys和 root。 
? 激活自动记录: 
/usr/lib/sa/sar_enable -y 
? 显示记录内容: 
sar –q -f /usr/adm/sa/sa10 

  用低优先级运行进程 
 nice(C)指令用於以较低的调度优先级执行命令,每个进程都有 
 一个 nice 值,用於计算它的优先级。nice 值在 0 到 39 范围内, 
 高值获得低优先级,不给实参的默认情况是 nice 值 20。超级用户 
 可指定负值,以提高优先级。 
 在注销进程後进程继续执行 
 後台启动的进程,默认情况下,当注销後就不再存在,但是,可 
 以使用 nohup(c)指令,让进程不受挂起和注销影响,得以继续 
 运行,例如: 
 $ nohup sort bigfile>sortfile & 
 4567 
 $ exit 
 当用户注销时,用户未用输出改向,输出将送到当前目录下的 
 nohup.out 文件中,如果当前目录不可写,则输出改向到 
 $HOME/nohup.out。 

 重新启动安全级精灵进程 

 根据 C2 安全级要求,某些精灵进程用 LUID (Login User 
 Identifier)标记运行,如此只能用 sd(ADM)实用程序重新启 
 动他们。 
 如果 LUID 限制有效的话(高安全级),只能用 sd(ADM),例  
 如 cron(C)这样的精灵,在高安全级下要 sd 重新启动它。 
 进程终止实用程序 
 需要终止实用程序时,可以通过发信息给进程,使它自杀,通常 
 会用在终止一些已挂起的或是运行的进程。 
 语法如下: 
 $ kill [-signal] 
 例如 
 $ kill 4411 
 4411:terminated 
 这样,只能终止运行优先级大於 25 的进程,小於 25 优先级的进 
 程只能在重新引导系统中撤注它。 
 调度单个作业执行 
 at(C)指令使得在某指定时间执行一组命令一次,主要用於在系统 
 活动较少的情况下,在预定时限(例如在半夜後或每日固定时间) 
 内运行指令。 
 要重新定向,可以使用标准输入,或可文件输入;在打入完整的 
 at 指令後,就会显示出将要运行的作业号与时间。 
 语法如下: 
 $ at time [date] [increment] < [filename] 
 任何用户都能运行一个 at 作业,但必须给予授权。 
 指定单个作业调度时间 
 时间格式为 hr:min 或 min,hr ,用 a.m 或 p.m 指定上午或下午, 
 有效时间包括 no on,midnight 和 now,指定日期则用「月日 
 〔年〕」格式,例如 Feb14。一星期那一天也可用 monday、 
 mon、today 或 tomorrow 代替。 
 .at 指令从标准输入中,读入打算在以後某一时刻所执行的命令: 
 $ at 14:00 Jan 
 sort /u/user1/file 
 /u/user1/sort 
 ctrl>d 
 job 61202778.a at Thu Jan 4 14:00:00 1996 
 记著使用时,要用全路径名指定文件。指令输出以电子邮件发送 
 给用户,也可输出改向到文件或终端。 
 列出单个调度作业 
 使用命令 
 $ at -1 
 job 612027780.a at Wed Jan 24 08:43:00 1996 
 job 612027900.a at Wed Jan 24 08:43:00 1996 
 若指定 jod_id,一般用户会得到一张自己所有作业的表,根用户 
 则能取得全部作业的表。 
 撤消单个调度作业 
 使用以下指令撤消作业: 
 $ at -r 
 可以使用匹配符撤销多个作业。at 的作业存放在 
 usr/spool/cron/atjobs 
 在一般数据库上调度作业 
 用 crontab (C)指令,从指定文件或标准输入拷贝或编辑成用户 
 的 crontab 文件,该文规定了在指定日期和时间调度运行一些指 
 令。 
 crontab 指令提供了对 cron 系统精灵要执行的作业,清理 /tmp , 
 撤销在一般数据上日记文件或不想要的文件,以及检查空间,邮 
 寄警告予用户等。 
 /usr/lib/cron/cron.allow 文件列出了能使用 cron 的用户, 
 /usr/lib/cron/cron.deny 文件列出了拒绝存取 cron 的用户,仅 
 当 cron.allow 文件不存在时,cron.deny 文件才起作用。 
 指定作业及其调度时间 
 作业可能是单个指令或包含多道指令的 shell 脚本,指令输出邮 
 寄给用户,也可输出改向到文件或终端。在文件中打入作业及运 
 行时间,以运行此作业。文件可取任何名字,但是,不允许包括 
 首尾部和空白行,而且,最好取 .cronfile ,这种取名反映其功 
 能,易记易理解。.cronfile 文件可用正文编辑或 vi 创建。 
 每个用户仅提供一个 .cronfile文件,每当执行 crontab 指令时, 
 新文件会盖写原先文件。编辑已存在的 .cronfile 文件,增加或 
 修改一个作业,然後用 crontab 重新提交 .cronfile 。而每个用 
 户的登记项会存放在/usr/spool/crontabs/。 
 列出或修改 cron 作业 
 要列出当前提供的 cron 作业,可以打入: 
 $ crontab -1 
 修改 cron 项,使用指令: 
 $ crontab -1 >.cronfile 
 $ vi .cronfile 
 $ crontab .cronfile 
 如要撤销 cron 作业,则打入: 
 $ crontab -r 
 但有一样,请留意,根用户没有 .cronfile 文件。

 shenyf 回复于:2004-03-04 22:43:19
[img:5a2b7a82f8]http://www.eoshow.com/images/cn/hao.gif[/img:5a2b7a82f8],顶[img:5a2b7a82f8]http://www.eoshow.com/images/cn/gantan.gif[/img:5a2b7a82f8] 

-----------------------------------------------------------
以上文字、图由易我秀输出,你也想这么酷吗?
http://www.eoshow.com/download/install1.html

 ld1949 回复于:2004-03-05 13:51:34
好文章!对启动过程有了一个初步了解,谢谢 :lol:

 scgypt123 回复于:2004-03-05 22:36:46
好文章!对启动过程有了一个初步了解,谢谢

 jzfenglx 回复于:2004-03-11 11:49:44
I wnat get it !

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网