进程的控制¶
来源:
操作系统 / note/进程管理/进程/进程的控制.md
进程的创建¶
Four principal events cause processes to be created:
-
System initialization.
-
Execution of a process-creation system call by a running process.
-
A user request to create a new process.
-
Initiation of a batch job. 一个后台流程可能被设计为接收传入的电子邮件,一天中大部分时间都在睡觉,但当电子邮件到达时突然活过来。
保持在后台处理某些活动的进程,如电子邮件、网页、新闻、打印等,称为守护进程(daemons)
在UNIX†中,ps程序可用于列出正在运行的进程。在Windows中,可以使用任务管理器。
谁来创建进程?进程创建进程!
不管什么情况,一个新的进程总是由一个已经存在的进程执行系统调用来创建的。这个进程可能是一个运行的用户进程,或是由键盘或鼠标唤醒的系统进程,抑或是批处理进程
在unix系统中,只有一个fork系统调用可以用来创建进程
这个系统调用会创建一个与调用进程相同的副本,两个就形成父进程和子进程的关系
父进程和子进程拥有相同的内存映像
子进程需要执行execve或者其他类似的系统调用,以修改内存映像并运行一个新的程序
进程的层次结构¶
进程的层次结构就是由父进程创建子进程而形成的树形关系
Linux¶
进程和它的所有子进程以及后裔共同组成一个进程组 他们可以接受统一的IO信号
例子:UNIX在启动的时候会有一个init的特殊进程,当它开始运行的时候,会读入一个说明终端数量的文件,然后他会为每个终端创建一个进程,这些进程等待用户登录,如果用户登录了,就会启动更多的进程,这样就形成了一个以init为根的树状结构
Windows¶
windows中的进程都是地位相同的,但是创建进程的时候,父进程会得到一个句柄,可以控制子进程,他可以把这个句柄给其他的进程