首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nice和子进程

Nice和子进程
EN

Unix & Linux用户
提问于 2012-05-04 13:32:20
回答 1查看 17.8K关注 0票数 28

有人能告诉我指定的nice级别和子进程之间的关系吗?

例如,如果我有一个默认的nice of 0,并使用nice 5启动一个脚本,然后启动一些子进程(在本例中是大约20个并行进程),那么子进程的优点是什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2012-05-04 14:12:55

子进程继承父进程在分叉时持有的任何nice值(在您的示例中是5)。

但是,如果父进程的nice值在分叉子进程后发生更改,则子进程不会继承新的nice值。

您可以通过监视工具top轻松地观察到这一点。如果默认情况下没有显示nice字段(NI),则可以通过按f并选择I来添加它。这将将NI列添加到top显示中。

* I: NI = Nice value

代码语言:javascript
复制
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1937 root      20   0  206m  66m  45m S  6.2  1.7  11:03.67 X                                         

来自man 2 fork的良好信息

fork()通过复制调用进程创建一个新进程。称为子进程的新进程是调用进程(称为父进程)的确切副本,但以下各点除外:

  • 子进程有自己的唯一进程ID,此PID与任何现有进程组(setpgid(2))的ID不匹配。
  • 子进程的父进程ID与父进程ID相同。
  • 子级不继承其父级的内存锁(mlock(2),mlockall(2))。
  • 在子进程中,进程资源利用率(getrusage(2))和CPU时间计数器( time (2))被重置为零。
  • 子节点的挂起信号集最初是空的(σ待定(2))。
  • 子节点不继承其父(semop(2))的信号量调整。
  • 子程序不继承其父(fcntl(2))的记录锁。
  • 子节点不继承其父定时器(setitimer(2)、告警(2)、timer_create(2))。
  • 子节点不会从其父节点继承未完成的异步I/O操作(aio_read(3)、aio_write(3)),也不会从其父继承任何异步I/O上下文(参见io_setup(2))。
票数 36
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/37896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档