linux process management

CREAT PROCESS


fork()

|

clone(參数,决定父子函数的共享内容)

|

do_fork()

|

copy_process()

|

dup_task_struct()

创建子进程的内核堆栈。复制父进程的进程描写叙述符(task_struct)

进程描写叙述符的非常多成员被清除或者设为初值

设置子进程的状态task_struct-->state

设置子进程的权限task_struct-->flags

设置子进程的进程号task_struct-->PID

依据clone的參数,拷贝或共享:
打开的文件(task_struct-->fd),

文件系统信息(task_struct),

信号处理函数(task_struct-->struct
signal_struct *signal;)

进程的地址空间(task_struct-->struct
mm_struct *mm, *active_mm;)

让父子进程平分剩余的时间片。

|

子进程被唤醒,调用exec()并运行!

NOTE


进程几点要注意的:

1,进程能够运行一个或者多个程序,一个程序能够被多个进程运行。

2,受到共享资源的约束,进程会产生约束关系,造成进程会处于不同的状态。比方等待没有一个资源如IO请求。或造成堵塞,直到资源被满足才会释放该进程,进入运行状态。

对于时间片用完的进程会进入就绪状态。

3,临界资源一次仅仅同意一个进程使用。

EXIT PROCESS


exit()

|

do_exit()

|

对task_struct的state(设为PF_EXITING)、mm(调用__exit__mm())、segment(调用sem_exit),file(__exit_files),fs(__exit_fs),signal(exit_sighand),exit_code,notify等资源进行释放。然后调用schedule()调用其它的进程。此时进程处于僵尸状态,进程描写叙述符存在于链表中,直到父进程调用wait4()。才全然释放进程。删除链表中的进程描写叙述符task_struct和共享的资源。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-08 00:06:38

linux process management的相关文章

Linux Process Management && Process Scheduling Principle

目录 1. 引言 2. 进程优先级 3. 进程的生命周 4. 进程表示 5. 进程管理相关的系统调用 6. 进程调度 7. 完全公平调度类 8. 实时调度类 9. 调度器增强 10. 小结 1. 引言 在多处理器系统中,可以真正并行运行的进程数目,取决于物理CPU的数目内核和处理器建立了多任务的"错觉",即可以并行做几种操作,这是通过以很短的间隔在系统运行的应用程序之间不停切换而做到的,这种系统管理方式引发了几个内核必须解决的问题 1. 除非明确地要求,否则应用程序不能彼此干扰,例如

Java Business Process Management(业务流程管理) 初识环境搭建

一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执行流程语言框架. (二)为什么用jbpm 业务分析师和开发人员使用的是同一种语言来交谈,大大降低了开发的风险,如果要开发一个项目,速度也更快了,因为开发人员不用再将用户需求转化成软件设计了. 其次,JBPM采用的不是一般的开发工具,而是自己的图形化开发工具,非常方便随时了解和掌握运行的进程

linux process 相关命令

1.显示指定用户信息:ps -u root 2.显示所有进程信息,连同命令行:ps -ef 3. ps 与grep 常用组合用法,查找特定进程:ps -ef|grep ssh 4. 把所有进程显示出来,并输出到ps001.txt文件:ps -aux > ps001.txt linux process 相关命令

check if a linux process is done using bash

# cat > check_process_is_end.sh while truedo   sleep 30   res=`ps -ef | grep RNAhybrid`   count=`grep -o "RNAhybrid" <<<"$res" | wc -l`   if [ "$count" -eq "1" ] ; then        echo $res        echo -en &

Linux Process Virtual Memory

目录 1. 简介 2. 进程虚拟地址空间 3. 内存映射的原理 4. 数据结构 5. 对区域的操作 6. 地址空间 7. 内存映射 8. 反向映射 9.堆的管理 10. 缺页异常的处理 11. 用户空间缺页异常的校正 12. 内核缺页异常 13. 在内核和用户空间之间复制数据 1. 简介 用户层进程的虚拟地址空间是Linux的一个重要抽象,它向每个运行进程提供了同样的系统视图,这使得多个进程可以同时运行,而不会干扰到其他进程内存中的内容,此外,它容许使用各种高级的程序设计技术,如内存映射,学习虚

The Linux Process Principle, PID、PGID、PPID、SID、TID、TTY

目录 0. 引言 1. Linux进程 2. Linux进程的相关标识 3. 进程标识编程示例 4. 进程标志在Linux内核中的存储和表现形式 5. 后记 0. 引言 在进行Linux主机的系统状态安全监控的过程中,我们常常会涉及到对系统进程信息的收集.聚类.分析等技术,因此,研究Linux进程原理能帮助我们更好的明确以下几个问题 1. 针对Linux的进程状态,需要监控捕获哪些维度的信息,哪些信息能够更好地为安全人员描绘出黑客的入侵迹象 2. 监控很容易造成的现象就是会有短时间内的大量数据产

Linux process authority、the security risks in running process with high authority

catalog 1. Linux进程权限原理 2. 最小权限原则 - 进程降权运行最佳实践 3. 进程权限控制包含的攻防向量 4. 进程高权限安全风险检查技术方案 1. Linux进程权限原理 我们知道,Linux的权限管理体系中,有2个基础权限规则源 1. MAC模型: 磁盘ACL权限,在Linux文件管理中,每个文件又有九位的权限说明,用来指明该文件允许哪些用户执行哪些操作(读.写或者执行) 2. DAC模型: SELINUX权限管理 这2类权限规则是相对静态的东西,穿插在它们之间,相对动态

Linux Process

1.Process概念 进程就是正在执行的应用程序实例. 包括了 (1)正在运行的应用程序代码, (2)相关的应用程序数据 (3)和执行程序所需要的资源, (4)该进程的一些状态标识 2.进程描述 操作系统会采用一些数据结构来描述和维护进程.在linux中,称为Process Descriptor,定义为 task_struct的一个结构体. 维护的信息有:进程的优先级,进程的状态(是否正在cpu中执行还是是阻塞状态),相对应的进程地址空间等等. 下面先介绍进程的状态: Process Stat

Linux进程状态 ( Linux Process State Codes)

进程状态代码及说明: STATE代码 说明 D 不可中断的睡眠. 通常是处于I/O之中. R 运行中/可运行. 正处于运行队列中. S 可中断的睡眠. 等待某事件发生. T 已停止. 可能是因为shell作业控制或进程正被调试. W 分页中. 不适用于内核2.6.xx及以后的版本. X 死亡. 再也不会出现. Z 死/僵尸进程. < 高优先级任务. N 低优先级任务. L 有分页内存被锁定到内存中. 用于实时任务和自定义I/O. s 会话期首进程. l 属多线程进程. 就像pthreads那样的