进程的零碎小知识

本文详细探讨了Linux进程的属性,包括上下文、执行目录、资源分配和权限。同时,阐述了进程的创建、结束、组成及调度机制,特别提到了task_struct结构体的作用。还介绍了进程间的通信方式如信号、管道和共享内存,并讨论了进程的限制,如文件描述符和信号处理。最后,简要提及了Linux内核中的进程调度器,包括CFS、实时和截止期调度类。
摘要由CSDN通过智能技术生成

进程的属性

1.程序读取的上下文,它表示程序读取执行的状态
2.程序当前执行的目录
3.程序服务的文件和目录
4.程序访问的权限
5.内存和其他分配给进程的系统资源

进程的状态

进程的创建和结束

进程的组成

进程的调度

task_struct结构体的一些组成
1.State
2.Sheduling Information
3.Identifiers
4.Inter-Process Communication 信号,管道和信号灯共享内存,消息队列
5.Links:进程之间都是相互联系的
6.Times and Timers :jiffies变量,Linux系统支持相关的interval定时器
7.File System:进程可以自由地打开或关闭文件,进程的task_struct结构中包含一个指向每个打开文件描述符的指针以及指向两个VFS inode的指针。每个VFS inode唯一地标记文件中一个目录或者文件,同时还对底层的文件系统提供统一的接口。这两个指针,一个指向进程的根目录,另一个指向其当前或pwd目录。pwd从UNIX命令pwd中派生出来的用来显示当前工作目录。这两个VFS inode包含一个count域,当多个进程引用它时,它的值将增加。这就是为什么不能删除进程当前目录或者其子目录的原因
8.Virtual Memony:多数进程都有一些虚拟内存(核心线程和后台进程没有),Linux核心必须跟踪虚拟内存与系统物理内存带的映射关系。
9.Processor Specific Context:进程可以被认为是系统当前状态的总和。进程运行时,它将使用处理器的寄存器以及堆栈等。进程被挂起时,进程的上下文以及所有的与CPU相关的状态必须保存在它的task_struct结构中。当调度器重新调度该进程时,所有上下文被重新设定。(系统必须将当前进程的状态,处理器中的寄存器以及上下文状态保存到task_struct结构中,每次调用子程序时,它将参数放在寄存器中并把返回地址放置在堆栈中,所有调度器总是运行在当前的进程的上下文)

精通Linux内核开发的里面的划分

进程属性

进程关系

1.real_parent和parent

指向父任务结构体的指针

chldren

这是指向子任务结构体链表的指针

sibiling

这是指向兄弟任务结构体链表的指针

group_leader

这个指针指向进程组组长的任务结构体

进程限制

文件描述符

1.fs

文件系统信息存储在该字段中

2.files

文件描述符表保存了一些指针,这些指针指向进程为了执行各种操作而打开的所有文件,而files字段保存了一个指向该文件描述符表的指针。

信号描述符

1.signed

这是struct signal_struct类型的元素,它保存了与进程相关的所有信号的信息。

2.signhand

这是struct signed_struct 类型的元素,它保存了与进程相关的所有信号的信息。

3.sigset_t blocked和real_blocked

这些元素标识了当前进程屏蔽或阻塞的信号

4.pending

这是struct sigpending类型的,它用来标识已经生成但未传递的信号。

5.

该字段保存了一个指向备用堆栈的指针,它有助于信号处理

6.

该字段表示用于信号处理的备用堆栈的大小

进程调度器

通用调度器下有三个调度类
完全公平调度类(CFS),实时调度类和截止期调度类(dealline)。每个调度类处理有特定需求的进程。
会慢慢补充这篇博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值