• As already discussed, a new process is created through fork() and if a new executable is to be run then exec() family of functions is called after fork().  As soon as this new process is created, it gets queued into the queue of processes that are ready to run.
  • If only fork() was called then it is highly likely that new process runs in user mode but if exec() is called then the new process will run in kernel mode until a fresh process address space is created for it.
  • While the process is running, a higher priority process can pre-empt it through an interrupt. In this case, the pre-empted process again goes into queue of processes that are ready to run. This process is picked up by the scheduler at some later stage.
  • A process can enter into kernel mode while running. This is possible when it requires access some resource like text file which is kept on hard disk. As operations involving access to hardware may take time, it is highly likely that process will go to sleep and will wake up only when the requested data is available.  When the process is awakened, it does not mean that it will start executing immediately, it will again queue up and will be picked for execution by scheduler at appropriate time.
  • A process can be killed through many ways. It can call exit() function to exit or can process Linux signals to exit. Also, some signals cannot be caught and cause the process to terminate immediately.
  • There are different types of Linux process. Once the process is killed, it does not get completely eliminated. An entry containing some information related to it is kept in the Kernel process address table till the parent process explicitly calls wait() or waitpid() functions to get the exit status of child process. Until parent process does this, the terminated process is known as zombie process.

最新文章

  1. 数据结构:优先队列 基于堆实现(python版)
  2. Solr Python API : SolrCloudpy 与 Pysolr 的 对比
  3. 数据库热备之SQLServer的数据库镜像实施笔记
  4. 第51课 C++对象模型分析(下)
  5. [转]通过继承ConfigurationSection,在web.config中增加自定义配置
  6. uboot 网络不通问题解决一例1
  7. mvc5入门,经典教程。。
  8. hdu 5125 magic balls
  9. 三星ssd转移系统
  10. Python进阶2---树的遍历和堆排序
  11. web安全类
  12. spring入门-注解的使用
  13. Java基础_0311: 数据表与简单Java类映射
  14. shell编程之循环
  15. 如何将Oracle 当前日期加一天、一分钟
  16. C# System.Collections.SortedList
  17. 打FFT时中发现的卡常技巧
  18. 理解Buffer
  19. webstrom 一直反复indexing
  20. Beta版本测试第二天

热门文章

  1. 这个一个对ES6多个异步处理的并发继发思想的总结和理解
  2. 1-JavaScript变量
  3. STM8 LED
  4. 4.JUC之AQS框架
  5. 前端框架开始学习Vue(三)
  6. py map reduce filter 总结
  7. [476] Database Mail is not enabled for agent notifications. Cannot send e-mail to
  8. 分布式Hadoop和HBase整合
  9. java - day014 - 编译期,运行期
  10. 【问题】yum安装软件报错ERROR:dbus.proxies