zoukankan      html  css  js  c++  java
  • Linux 进程概念

      1.什么是进程?

      对用户来说,进程是正在运行的程序。  

      进程由程序,数据,和PCB组成。

      对操作系统来说,进程就是PCB,PCB包含了正在运行程序的全部信息。

      比如标识符,状态,优先级,内存指针,上下文数据等

      Linux下PCB叫task_struct。

     

      2.进程的描述信息

      内存指针: 程序和数据运行起来后被加载到内存中的位置

      标识符pid: 唯一标识系统中的各个进程

      上下文数据: 进程执行时的状态和资源

      程序计数器: 保存程序切换时的位置

      

     3.进程的状态

       三大基本状态 : 

       运行态:占有CPU,并在CPU上运行

       就绪态: 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行

       阻塞态: 因等待某一事件而暂时不能运行

      

     4.特殊状态的进程

      1.僵尸进程: 处于僵死状态的进程

      产生:子进程先于父进程退出,为了保存退出原因,因此子程序资源不会被完全释放,操作系统检验到子进程退出,这时候通知父进程,这时候父进程可以获取子进程退出原因,允许操作系统释放资源,这种情况子进程资源才会被完全释放。如果父进程没有理这个通知,也就意味着父进程没有允许操作系统释放子进程的资源,那么这时候子进程将处于僵死状态成为僵尸进程。

          一个终止了但未被回收的进程称作僵尸进程。

      危害 :资源泄露

      避免 :  进程等待

      解决 : 父进程退出 (因为僵尸子进程的本质原因是要保存退出原因给父进程看的,然而父进程退出了,那么僵尸子进程也就没有存在的意义了,因此操作系统就直接释放了。)  

      2.孤儿进程: 父进程先于子进程退出,那么子进程就成为孤儿进程。(运行在后台)

      孤儿进程并不是没有父进程了,而是父进程变为init进程,意味着子进程退出后,将由init进程来处理它的身后事,而init进程就会直接允许操作系统释放资源,因此不会成为僵尸进程。

          3.守护进程: 特殊的孤儿进程。(运行在后台,并且跟终端以及会话完全脱离)

     

     5.进程的优先级  

      进程优先级决定了进程获取CPU资源的优先权
      优先级实际上就是一个数组, 这个值越小, 优先级越高。
        为什么要有优先级 : 让操作系统运行的更加合理。
        如何设置优先级 : 优先级无法直接设置, 但是可以通过设置nice值进而设置优先级的值
        PRI = PRI + NI  NI的取值范围 : -20~19
        设置命令 : renice - n ni_val - p pid   nice - n ni_val . / main               
       

     6.进程调度

       CPU调度是操作系统的基本功能,如果CPU空闲,操作系统会选择就绪队列的优先级高的程序执行

     7.进程的特点

       竞争性 : 因为操作系统上的进程都是一直在竞争资源, 因此进程之间具有竞争性
       独立性 : 为了使一个进程的操作不对另一个进程造成影响, 进程之间需要具有独立性
          并行 : CPU资源足够多的情况, 多个进程可以同时运行
       并发 : CPU资源不够的情况, 多个进程切换调度运行

     

       

  • 相关阅读:
    Selenium环境搭建
    系统测试用例评审checklist
    软件测试入门
    App测试方法总结
    好东西并查集
    自己编写一个数组去掉重复元素的函数
    杭电OJ BestCoder28期1001Missing number问题(小技巧偏移法)
    介绍一个二次排序的小技巧(best coder27期1001jump jump jump)
    ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)
    一个节省空间的小技巧
  • 原文地址:https://www.cnblogs.com/Duikerdd/p/11452279.html
Copyright © 2011-2022 走看看