zoukankan      html  css  js  c++  java
  • 第5章 进程环境(1)_进程结构(task_struct)

    1. 进程的概念和进程结构

    1.1 进程

    (1)程序(program)是一些保存在磁盘上有序指令的集合,是存放在磁盘文件中的可执行文件。但没有任何执行的概念,它是静态的

    (2)进程(process)

      ①程序的执行实例被称为进程,是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡。

      ②进程具有独立的权限与职责,如果系统中某个进程崩溃,它不会影响其余的进程。

      ③每个进程运行在其各自的虚拟地址空间中,进程之间可以通过由内核控制的机制相互通信。

    (3)进程ID:每个linux进程都有一个唯一的数字标识符,称为进程ID(process ID),进程ID 总是一个非负整数。

    1.2 内核中的进程结构

    (1)task_struct结构体

     

      ①进程号(pid):用来唯一标识进程。

      ②进程的状态,标识进程是处于运行态,等待态,停止态,还是死亡态

        A.运行态:此时进程 或者正在运行,或者准备运行

        B.等待态:此时进程在等待一个事件发生或某种系统资源

        C.停止态:此时进程被终止

        D.死亡态:这是一个已终止的进程,但还在进程向量数组中,占有一个task_struct结构。

      ③进程的优先级和时间片。

        不同有优先的进程,被调度运行的次序不一样,一般是高优先级的进程先运行。时间片标识一个进程将被处理器运行的时间

      ④虚拟内存

        大多数进程有一些虚拟内存(内核线程和守护进程没有) ,并且Linux必须跟踪内存如何映射到系统物理内存。

      ⑤处理器相关上下文

        一个进程可以被认为是系统当前状态的总和。每当一个进程运行时,它要使用处理器的寄存器、栈等,这是进程的上下文(context)。并且,每当一个进程被暂停时,所有的CPU相关上下文必须保存在该进程的task_struct中。当进程被调度器重新启动时其上下文将从这里恢复。

    (3)与文件相关的两个数据结构

     

      ①fs_struct:它包含此进程当前工作目录根目录、umask。umask是新文件被创建的缺省模式,它可以通过系统调用来改变。

      ②files_struct包含此进程正在使用的所有文件的信息f_mode字段描述该文件是以什么模式创建的:只读、读写、还是只写。f_pos保存文件中下一个读或写将发生的位置。f_inode描叙文件的VFS索引节点,而f_ops是一个例程向量的指针,每个代表一个想施加于文件的操作的函数。Linux进程在启动时有3个文件描述符被打开了,他们是标准输入设备、标准输出设备和标准错误设备,并且通常是从创建此进程的父进程继承得来

  • 相关阅读:
    51nod 1179 最大的最大公约数
    HDU 6090 Rikka with Graph —— 2017 Multi-University Training 5
    HDU 6073 Matching In Multiplication —— 2017 Multi-University Training 4
    HDU 6069 Counting Divisors —— 2017 Multi-University Training 4
    HDU 6058 Kanade's sum —— 2017 Multi-University Training 3
    HDU 6055 Regular polygon —— 2017 Multi-University Training 2
    HDU 6053 TrickGCD —— 2017 Multi-University Training 2
    ORA-01722:无效数字
    ORA-01427 单行子查询返回多个行
    ORA 00972 错误处理
  • 原文地址:https://www.cnblogs.com/5iedu/p/6353729.html
Copyright © 2011-2022 走看看