Linux第5章课后习题答案.docVIP

  • 19
  • 0
  • 约3.9千字
  • 约 4页
  • 2020-06-07 发布于安徽
  • 举报
Linux思考题 5 fork()和 clone()二者之间的区别是什么? 答:fork 创建一个进程时,子进程只是完全复制父进程的资源,复制出来的 子进程有自己的 task_struct 结构和 pid,但却复制父进程其它所有的资源。通 过 fork 创建子进程,需要将上面描述的每种资源都复制一个副本。 fork()调用 执行一次返回两个值,对于父进程, fork 函数返回子程序的进程号,而对于 子程序,fork 函数则返回零, 这就是一个函数返回两次的本质。 在fork 之后, 子进程和父进程都会继续执行 fork 调用之后的指令。 系统调用 fork()和 vfork()是无参数的,而 clone()则带有参数。 fork()是全 部复制, vfork()是共享内存,而 clone()是则可以将父进程资源有选择地复制 给子进程,而没有复制的数据结构则通过指针的复制让子进程共享,具体要 复制哪些资源给子进程,由参数列表中的 clone_flags 来决定。另外, clone() 返回的是子进程的 pid。 什么是进程?什么是线程? Linux 系统中的进程有那些状态?如何获取系统 中各进程的状态? 答: 进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时 间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而 言,其调度单元是线程。一个进程至少包括一

文档评论(0)

1亿VIP精品文档

相关文档