• Linux内核管理子系统和进程管理子系统


    内核管理子系统职能:1、管理虚拟地址与物理地址的映射

              2、物理内存的分配

    程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体。

    进程:是一个执行中的程序,它是动态的实体

    进程四要素:

    1、有一段程序供其执行。这段程序不一定是某个进程所有,可以与其他进程公用。

    2、有进程专用的内核空间堆栈

    3、在内核中有一个task_struct数据结构,即通常所说的“进程控制块”。有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度

    4、有独立的空间。

    Linux进程状态:最经典的三态,但是Linux的进程状态比这个要复杂

    1.TASK_RUNNING(就绪或者执行)

    进程正在被CPU执行,或者已经准备就绪,随时可以执行。当一个进程刚被创建时,就处于TASK_RUNNING状态。 

    2.TASK_INTERRUPTIBLE

    处于等待中的进程,待等待条件为真时被唤醒,也可以被信号或者中断唤醒。 

    3.TASK_UNINTERRUPTIBLE

    处于等待中的进程,待资源有效时唤醒,但不可以由其它进程通过信号(signal)或中断唤醒。

    4.TASK_KILLABLE

    Linux2.6.25新引入的进程睡眠状态,原理类似于TASK_UNINTERRUPTIBLE但是可以被致命信号(SIGKILL)唤醒。 

    5.TASK_TRACED

    正处于被调试状态的进程。

    6. TASK_DEAD

    进程退出时(调用do_exit),所处的状态。

    Linux进程描述:

    Linux内核代码中,线程、进程都使用结构task_struct(sched.h)来表示,它包含了大量描述进程/线程的信息,其中比较重要的有:
    pid_t pid; //进程号
    vlong state; //进程状态
    vint prio; //进程优先级





     

  • 相关阅读:
    Python-读取文件内容
    torch_03_二分类
    torch_02_多项式回归
    pytorch_01_基础_一维线性回归
    LC-KSVD 代码解读
    标签一致项(LC-KSVD)-全文解读
    PCA:主成分分析
    牛客刷题-大佬链接
    调试MATLAB代码
    scroll offset & client总结
  • 原文地址:https://www.cnblogs.com/sanshijvshi/p/8474330.html
Copyright © 2020-2023  润新知