操作系统面试题之进程与线程相关

进程(线程 + 内存 + 文件/网络句柄)

  • 内存:逻辑内存
  • 文件/网络句柄:为所有线程所共有
  • 线程:进程所创建的,进程是线程的容器

孤儿进程

指的是父进程死掉的子进程,这些孤儿进程会被init进程(进程号为1)所收养,由init 进程对它们完成状态收集工作

僵尸进程

一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait() 或 waitpid() 获取了子进程信息后才会释放。如果子进程退出,而父进程并没有调用 wait() 或 waitpid(),那么子进程的进程描述符仍然保存在系统中,这种进程称之为僵尸进程。

线程(栈 + PC + TLS)

  • PC(程序计数器):PC就是指向当前的指令,而这个指令是放在内存中。 每个线程都有一串自己的指针,去指向自己当前所在内存的指针
  • TLS(Thead Local Storage): 存储线程所独有的数据

进程与线程的区别

  • 进程是资源调度的最小单位,线程是系统调用的最小单位
  • 进程有自己独立的内存空间,线程可以共享进程的内存空间

死锁

原因

  • 系统资源不足
  • 进程推进的顺序不合适
  • 资源分配不当

导致死锁的四个必要条件

  • 一个进程一次只能访问一个资源,其它进程不能访问已经分配的资源
  • 一个进程在等待其它资源的时候,继续占有已经抢占到的资源
  • 一个进程不能强行抢占另一个进程的资源
  • 存在一个封闭的进程链,导致每一个进程都在等待下一个进程的资源

银行家算法

本文标题:操作系统面试题之进程与线程相关

文章作者:Enda Lin

发布时间:2019年11月14日 - 14:53

最后更新:2019年11月14日 - 15:38

原始链接:https://wt-git-repository.github.io/2019/11/14/操作系统面试题之进程与线程相关/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。