没有合适的资源?快使用搜索试试~ 我知道了~
linux进程控制, 入门操作
资源推荐
资源详情
资源评论
Linux 教程
LINUX 进程控制
1. Linux 进程概述
进程是一个程序一次执行的过程,是操作系统动态执行的基本单元。 进程的概念主要有两点:第
一,进程是一个实体。每个进程都有自己的虚拟地址空间,包括文本区、数据区、和堆栈区。文本区
域存储处理器执行的代码;数据区存储变量和动态分配的内存;堆栈区存储着活动进程调用的指令和
本地变量。第二,进程是一个“执行中的程序”, 它和程序有本质区别。程序是静态的,它是一些保存在
磁盘上的指令的有序集合;而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创
建、调度和消亡的过程,是 Linux 的基本调度单位。只有当处理器赋予程序生命时,它才能成为一个活
动的实体,称之为进程。
内核的调度器负责在所有的进程间分配 CPU 执行时间,称为时间片(time slice),它轮流在每个进程
分得的时间片用完后从进程那里抢回控制权。
1.1. 进程标识
OS 会为每个进程分配一个唯一的整型 ID,做为进程的标识号(pid)。进程 0 是调度进程,常被成为
交换进程,它不执行任何程序,是内核的一部分,因此也被成为系统进程。进程除了自身的 ID 外,还
有父进程 ID(ppid),所有进程的祖先进程是同一个进程,它叫做 init 进程,ID 为 1,init 进程是内核自举
后的一个启动的进程。init 进程负责引导系统、启动守护(后台)进程并且运行必要的程序。它不是系
统进程,但它以系统的超级用户特权运行。
1.2. 进程的状态
进程是程序的执行过程,根据它的生命周期可以划分成 3 种状态。
执行态:该进程正在运行,即进程正在占用 CPU。
就绪态:进程已经具备执行的一切条件,正在等待分配 CPU 的处理时间片。
等待态:进程不能使用 CPU,若等待事件发生(等待的资源分配到)则可将其唤醒。
1.3. Linux 下的进程结构及管理
Linux 系统是一个多进程的系统,它的进程之间具有并行性、互不干扰等特点。也就是说,进程之
间是分离的任务,拥有各自的权利和责任。其中,每个进程都运行在各自独立的虚拟地址空间,因此 ,
即使一个进程发生了异常,它也不会影响到系统的其他进程。
1
就绪
执行 等待
调度
时间片到
因为等待某个资源
而睡眠
因为等待资源分配
而唤醒
用户进程
内核进程
用户态
内核态
中断或系统调用
Linux 教程
Linux 中的进程包含以下几个部分:
· “数据段”放全局变量、常数以及动态数据分配的数据空间。数据段分成普通数据段(包括可
读可写/只读数据段,存放静态初始化的全局变量或常量)、BSS 数据段(存放未初始化的全
局变量)以及堆(存放动态分配的数据)。
· “正文段”存放的是 CPU 执行的机器指令部分。
· “堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。
进程 process:是 os 的最小单元 大小为 4g,其中 1g 给 os 3g 给进程{代码区 数据区 堆 栈}
ps:查看活动进程。 ps –aux:查看各个进程状态,包括运行 就绪 等待等状态。 ps -aux| grep
'aa':查找指定(aa)进程。 ps –ef:查看所有的进程的 pid,ppid 等信息。
ps -aux 看%cpu(cpu 使用量) %mem(内存使用量) stat 状态{S 就绪 T 中断 R 运行 Z 僵尸}
vi a.c &(&表示后台运行),jobs 查看后台任务,fg 1 把后台任务带到前台 ctrl+z 把进程带入后台
kill -9 进程号杀掉某个进程 top 显示前 20 条进程,动态的改变 pgrep 'vi'查找进程
nice 改变优先级 crontab 计划任务,定时操作等
2. Linux 进程控制
2.1. fork 函数
原型:
#include <unistd.h>
pid_t fork(void);
在 linux 中 fork 函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而
原进程为父进程。它和其他函数的区别在于:它执行一次返回两个值。其中父进程的返回值是子进程
的进程号,而子进程的返回值为 0.若出错则返回-1.因此可以通过返回值来判断是父进程还是子进程。
fork 函数创建子进程的过程为:使用 fork 函数得到的子进程是父进程的一个复制品,它从父进程继
2
堆栈
堆
数据段(可读/只读)
数据段
代码段
存放传递参数及环境变量
BSS数据段
低地址
高地址
剩余9页未读,继续阅读
资源评论
BookyGG
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 面向初学者的 Java 教程(包含 500 个代码示例).zip
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- yolo5实战-yolo资源
- english-chinese-dictionary-数据结构课程设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功