zoukankan      html  css  js  c++  java
  • 进程与内存、进程状态

    进程的概念

      进程与程序不同,进程是运行中的程序,而程序是保存在硬盘上的可执行代码。

      程序转为进程的三个步骤:

      1. 内核将程序读入内存,为程序分配内存
      2. 内核为进程分配PID(进程标识符)和其他所需资源
      3. 内核为该进程保存PID以及其他状态信息,并把进程放入运行队列等待执行。当程序转化为进程后就可以被操作系统的调度程序调度执行了

      Linux下可通过ps、pstree查看当前系统中的进程。

    进程标识

      每个进程都是由每个进程ID(PID)唯一标识的,PID 存储在 PCB 中, PCB 是进程控制块,是进程最重要的组成部分。每个进程除了进程ID外还有其他标识,需要由相应函数获得。这些函数在头文件unistd.h中。

    进程与内存

      Linux一个进程由三部分组成,进程在内存中包含三个方面:

      1. 代码段。它存放程序中的代码,并可以被机器中运行同一程序的数个进程共享
      2. 堆栈段。它存放的是子程序(函数)的返回地址、子程序(函数)的参数、局部变量
      3. 数据段。它存放了全局变量,常量,以及动态数据分配的空间(比如malloc申请的空间)

          

      系统中同时运行多个相同的程序,它们的堆栈段和数据段不能是同一个,而代码段是同一个。

    进程的状态

      Linux进程的状态包含九个方面:

      1. 用户状态。进程在用户状态下进行的状态
      2. 内核状态。进程在内核状态下进行的状态
      3. 内存中就绪。进程没有执行,但是处于就绪状态,只要内核调度它,就可以执行。
      4. 内存中休眠。进程正处在休眠并在内存之中。并且没有被交换到swap设备(虚拟内存) 
      5. 就绪且换出。进程处于就绪状态,但是还必须要经过两个步骤(1.换入内存2.内核调度)才可以执行。
      6. 睡眠且换出。进程处于睡眠状态,且内存还没换入。
      7. 被抢先。进程在从内核状态返回用户状态的时候,内存抢先于它,做了上下文切换,调度了另一个进程,原进程就处于被抢先状态。
      8. 创建状态。进程刚被创建,但既不是就绪状态,也不是休眠状态,这个状态是除了进程0外的最初状态。
      9. 僵死状态。进程调用exit结束,进程不再存在,但是在进程表上还有记录,该记录可由父进程收集。

      举例说明Linux的进程转换:

      1. 进程被父进程通过系统调用 fork 创建,此时进程处于创建状态;
      2. 当fork为进程配置好内核数据结构和私有数据结构后,子进程处于就绪状态;(可能的就绪位置:1.内存  2.swap设备)
      3. 当在内存就绪时,进程可被内核调度程序调度到cpu中执行
      4. 内核调度该进程的时候,进程进入内核状态。随后由内核状态返回用户状态而执行程序。在用户状态持续一段时间后,又会被内核调度程序调度而进入内核状态,由此转入就绪状态。有时进程在用户状态时,也会因为系统调用而进入内核状态,服务完毕,又从内核状态返回用户状态。
      5. 内核状态返回向用户状态返回时可能被抢占,这是由于有优先级更高的进程需要使用cpu而不能等到下一次调度时间,从而造成抢占
      6. 进程调用exit进入僵死状态,最后结束
    ————全心全意投入,拒绝画地为牢
  • 相关阅读:
    部署 AppGlobalResources 到 SharePoint 2010
    还原一个已删除的网站集
    使用仪表板设计器配置级联筛选器 (SharePoint Server 2010 SP1)
    File or arguments not valid for site template
    Pex and Moles Documentation
    Content Query Webpart匿名访问
    Running Moles using NUnit Console from Visual Studio
    Calling a WCF Service using jQuery in SharePoint the correct way
    Updating Content Types and Site Columns That Were Deployed as a Feature
    asp.net中判断传过来的字符串不为空的代码
  • 原文地址:https://www.cnblogs.com/Bw98blogs/p/7603263.html
Copyright © 2011-2022 走看看