进程管理
文章平均质量分 91
雪饼android之路
这个作者很懒,什么都没留下…
展开
-
一篇读懂:线程和进程
线程和进程都是操作系统中用来描述执行的单位。进程是操作系统中最基本的执行单位,是一个具有独立功能的程序在操作系统中的执行过程。进程是操作系统进行资源分配和调度的基本单位。线程是进程的一个执行流,是 CPU 调度和分派的基本单位。线程是比进程更小的执行单位,它是比进程更基本的执行流。在操作系统中,进程可以包含多个线程,线程是进程中的一个实体,是被系统独立调度和执行的基本单位。原创 2022-12-16 21:17:49 · 131 阅读 · 0 评论 -
【Linux kernel】Process Creation(二)
本文是Process Creation(一)的延续,主要内容包括:1、进程描述符中Realtime Mutex相关数据结构的初始化2、子进程如何复制父进程的credentials3、per-task delay accounting的处理4、子进程如何复制父进程的flag。转载 2022-12-16 20:02:16 · 154 阅读 · 0 评论 -
【Linux kernel】Process Creation(一)
为什么要写一个关于进程如何创建的文档?其实用do_fork作为关键字进行索引,你会发现网上的相关文档数以万计。作为一个内核工程师,对进程以及进程相关的内容当然是非常感兴趣,但是网上的资料并不能令我非常满意(也许是我没有检索到好的文章),一个简单的例子如下:上面的代码是进程创建过程的一个片段,网上的解释一般都是对代码逻辑的描述:清除PF_SUPERPRIV 和PF_WQ_WORKER这两个flag的标记,设定PF_FORKNOEXEC标记。坦率的讲,这样的代码解析没有任何意义,其实c代码都已经是非常清楚了。转载 2022-12-06 22:00:00 · 214 阅读 · 0 评论 -
【Linux kernel】process credentials相关的用户空间文件
作为对linux_fans提出建议的回应,本文主要描述在用户空间,和process credentials相关的内容,具体包括:系统中的每一个用户都会有一个登录帐号,在系统登录的时候,用户要输入登录帐号和密码,通过系统认证之后,该用户就可以使用该计算机相关资源了。对应每一个帐号,/etc/passwd文件中都有一行来对应,一个简单的例子如下:每一行有7个域组成,“:”是分隔符,如下:对于一个系统用户而言,登录帐号(login name或者说是user name)是标识自己的一个字符串,在系统中是唯一的。n转载 2022-12-04 11:39:12 · 82 阅读 · 0 评论 -
【Linux kernel】process identification
一般而言,我们都会定义进程是一个正在执行的程序或者是一个程序的运行实例。程序是一个静态的概念,是存储在磁盘上的二进制可执行文件,包括程序代码和数据(正文段、数据段等)。当程序运行起来成为进程的时候,单纯的程序代码则不能清楚的描述进程,它还需要若干数据结构来描述程序的执行状态(硬件上下文和软件上下文)以及拥有的资源(如地址空间、打开的文件描述符等)。从内核的角度看,进程是一个和系统资源(CPU time、memory等)分配相关的实体。转载 2022-12-02 23:45:00 · 102 阅读 · 0 评论 -
【Linux kernel】process credentials
real user ID 和 real group ID标识了该进程属于哪一个用户(哪一个组)。Swapper和init进程的real user ID 和 real group ID都被设定为root(ID=0),用户登陆后,其对应的shell进程的real user ID 和 real group ID会被设定为登录用户。这是login进程调用setuid函数设定的。在fork进程的时候,子进程的credentials是继承自其父进程。转载 2022-12-02 23:30:00 · 95 阅读 · 0 评论