概述
Linux 进程知识点总结_
- 零.基本概念
-
- 1.进程在内存中的存储结构
- 2.进程的结构体
-
- 结构体的内容
- 进程的状态
- 3.CPU和进程的管理
- 一.进程
-
- 1.进程的凭证
-
- 1.进程id
- 2.进程的用户ID和组ID
- 2.进程的创建和终止
-
- 1.创建进程的方法
- 2.终止进程的方法
- 3.wait函数
- 4.孤儿进程和僵尸进程
- 5.守护进程daemon的特点和创建方法
- 二.进程与进程之间的关系
-
- 1.进程组、会话、控制终端之间的关系
- 2.进程的优先级和调度(使用SCHED_OTHER循环时间共享策略时)
-
- 0.nice值的概念
- 1.通过shell指令调整进程优先级的方法:
- 2.在程序中调整nice值
- 3.其他进程调度策略简介
- 三.进程间通信的方法
-
- 1.IPC工具分类
零.基本概念
1.进程是可执行程序在内存中的实例,是系统进行资源分配(cpu使用时间、次数和内存等等)的基本单位。
2.程序是存储在磁盘中的文件,包含和创建进程所需要的各种信息
3.在Linux中使用task_struct结构体来描述进程的相关信息
1.进程在内存中的存储结构
下图是进程在内存中的存储结构(虚拟内存)
进程控制块pcb位于kernel区。
进程通过页表将虚拟内存的页映射到实际的物理内存上。
虚拟内存->页表->物理内存。
2.进程的结构体
Linux进程的结构体 task_struct存储在 sched.h头文件中
结构体的内容
内容比较多,大概看一下就好,可略过
1.进程运行的状态,
1) TASK_RUNNING: 可运行状态。状态下的进程又分两种状态:
a.正在运行 b.正在准备运行(得到CPU即可运行)
2) TASK_INTERRUPTIBLE 可中断的等待状态
是针对等待某事件或其他资源的睡眠进程设置的,在内核发送信号给该进程表明事件已经发生时,进程状态变为TASK_RUNNING,它只要调度器选中该进程即可恢复执行
3) TASK_UNINTERRUPTIBLE:不可中断的等待状态 D状态
处于该状态的进程正在等待某个事件(event)或某个资源,它肯定位于系统中的某个等待(wait_queue)中,处于不可中断等待态的进程是因为硬件环境不能满足而等待,例如等待特定的系统资源,它在任何情况下都不能被打断,只能用特定的方式来唤醒它,例如唤醒函数wake_up()等它们不能由外部信号唤醒,只能由内核亲自唤醒
4) TASK_ZOMBIE: 僵死
进程虽然已经终止,但由于某种原因**,父进程还没有执行wait()系统调用,终止进程的信息也还没有回收**。顾名思义,处于该状态的进程就是死进程,这种进程实际上是系统中的垃圾,必须进行相应处理以释放其占用的资源。
5) TASK_STOPPED: 暂停
此时的进程暂时停止运行来接受某种特殊处理。通常当进程接收到SIGSTOP、SIGTSTP、SIGTTIN或 SIGTTOU信号后就处于这种状态。例如,正接受调试的进程就处于这种状态
6) TASK_TRACED
从本质上来说,这属于TASK_STOPPED状态,用于从停止的进程中,将当前被调试的进程与常规的进程区分开来
7) TASK_DEAD
父进程wait系统调用发出后,当子进程退出时,父进程负责回收子进程的全部资源,子进程进入TASK_DEAD状态
8) TASK_SWAPPING: 换入/换出
2.stack
进程内核栈,进程通过alloc_thread_info函数分配它的内核栈,通过free_thread_info函数释放所分配的内核栈
3. usage
进程描述符使用计数,被置为2时,表示进程描述符正在被使用而且其相应的进程处于活动状态
4. flags
flags是进程当前的状态标志(注意和运行状态区分)
5. ptrace
ptrace系统调用,成员ptrace被设置为0时表示不需要被跟踪
6. lock_depth
用于表示获取大内核锁的次数,如果进程未获得过锁,则置为-1
7. oncpu
在SMP上帮助实现无加锁的进程切换(unlocked contextswitches)
8. 进程调度
9. preempt_notifier 结构体链表
10. f
最后
以上就是俊秀小伙为你收集整理的Linux进程知识点总结零.基本概念一.进程二.进程与进程之间的关系三.进程间通信的方法的全部内容,希望文章能够帮你解决Linux进程知识点总结零.基本概念一.进程二.进程与进程之间的关系三.进程间通信的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复