我这是造成我很多疑惑的三个问题:操作系统中
如果程序中一个线程调用
fork()
,并在新的进程 复制所有线程,或者是新的工艺单-threaded?如果一个线程调用
exec()
,将在参数 到exec()
指定的程序更换在内的所有线程的整个过程?系统调用抢占?例如,是否可以在系统调用中安排进程?
我这是造成我很多疑惑的三个问题:操作系统中
如果程序中一个线程调用fork()
,并在新的进程 复制所有线程,或者是新的工艺单-threaded?
如果一个线程调用exec()
,将在参数 到exec()
指定的程序更换在内的所有线程的整个过程?
系统调用抢占?例如,是否可以在系统调用中安排进程?
对于exec
,从man execve
:
比调用线程之外的所有线程的
execve()
过程中被破坏。
从man fork
:
与单个线程创建子进程 - 这被称为
fork()
之一。
W.r.t. #3:是的,您可以调用直接或间接使另一个线程准备运行的系统调用。如果该线程的优先级高于当前的优先级,并且该系统设计为正确安排时间,则可以这样做。
你能澄清你问题3的含义吗?单个执行上下文将始终显示为按顺序执行,那么您究竟在想什么? –
@亚历克斯:是的,我意识到这一点,但我不确定OP想知道什么。她问的是“安排一个过程”。我认为一些澄清将有助于获得一些有用的答案。 –