2012-05-05 80 views
3

我这是造成我很多疑惑的三个问题:操作系统中

  1. 如果程序中一个线程调用fork(),并在新的进程 复制所有线程,或者是新的工艺单-threaded?

  2. 如果一个线程调用exec(),将在参数 到exec()指定的程序更换在内的所有线程的整个过程?

  3. 系统调用抢占?例如,是否可以在系统调用中安排进程?

+0

你能澄清你问题3的含义吗?单个执行上下文将始终显示为按顺序执行,那么您究竟在想什么? –

+0

@亚历克斯:是的,我意识到这一点,但我不确定OP想知道什么。她问的是“安排一个过程”。我认为一些澄清将有助于获得一些有用的答案。 –

回答

4

对于exec,从man execve

比调用线程之外的所有线程的execve()过程中被破坏。

man fork

与单个线程创建子进程 - 这被称为fork()之一。

1

W.r.t. #3:是的,您可以调用直接或间接使另一个线程准备运行的系统调用。如果该线程的优先级高于当前的优先级,并且该系统设计为正确安排时间,则可以这样做。