核心内容摘要
桃色深处,一场感官的绝美奏鸣
目录
进程
1 基本概念和基本操作
3.
2 描述进程 - PCB
3.
3 task_struct
3.
4 查看进程
3.
5 通过系统调用获取进程的标示符
3.
6 通过系统调用创建进程-fork初识
进程
1 基本概念和基本操作课本概念程序的一个执行实例正在执行的程序等内核观点担当分配系统资源CPU时间内存的实体。
当前进程 内核数据结构task_struct 自己的程序代码和数据
3.
2 描述进程 - PCB基本概念进程信息被放在一个叫做进程控制块的数据结构中可以理解为进程属性的集合。
课本上称之为PCBprocess control blockLinux 操作系统下的 PCB 是task_structtask_struct — PCB的一种在 Linux 中描述进程的结构体叫做 task_struct。
task_struct 是Linux 内核的一种数据结构类型它会被装载到RAM内存里滨海且包含着进程的信息
3.
3 task_struct内容分类标示符描述本进程的唯一标示符用来区分其他进程。
状态任务状态退出代码退出信号等。
优先级相对于其他进程的优先级CPU少进程多优先级本身就是一个数字程序计数器程序中即将被执行的下一条指令的地址。
内存指针包括程序代码和进程相关数据的指针还有其他进程共享的内存块的指针上下文数据进程程序执行时处理器的寄存器中的数据休学的例子要加图CPU寄存器。
I/O状态信息包括显示的 I/O 请求分配给进程的 I/O 设备和被进程使用的文件列表。
不是很重要记账信息可能包括处理器时间总和使用的时钟数总和时间限制记帐号等。
其他信息具体详细信息后续会介绍组织进程可以在内核源代码⾥找到它。
所有运⾏在系统⾥的进程都以 task_struct 双链表的形式存在内核⾥。
3.
4 查看进程./myprocess —— 直接会变成一个进程每一个进程都有自己的标识符又该如何获取呢学习第一个系统调用man getpid修改 myprocess.c 文件make - ./myprocess获得该进程的标示符PID:那么该如何查看上面的29857进程呢
进程的信息可以通过 /proc 系统文件夹查看如要获取PID为1的进程信息你需要查看 /proc/1这个文件夹。
上面的数字代表的是系统当中正在运行的进程进程的有关信息通过文件的形式表现出来因为Linux下一切皆文件因此启动的进程以文件的形式呈现出来进程被终止( ctrlc )了呢证明了proc目录里面的所有蓝色的目录对应的是真的运行起来的进程。
运行起来之后进程pid是多少就新建对应的文件夹将进程的属性放在文件夹中进程没了对应的所有信息将释放掉再次 ./myprocess再次ctrl c总而言之系统当中每多一个进程proc目录里面就会每多一个以数字命名的文件夹那么里面有什么呢
大多数进程信息同样可以使用 top 和 ps 这些用户级工具来获取
3.
5 通过系统调用获取进程的标示符进程idPID父进程idPPID
3.
6 通过系统调用创建进程-fork初识运行 man fork 认识forkfork 有两个返回值父子进程代码共享数据各自开辟空间私有一份采用写时拷贝fork 之后通常要用 if 进行交流注意fork 为什么会有两个返回值两个返回值各自给父子如何返回至于一个变量怎么能让 if 和 else if 同时成立这个问题需要在后面才能解释清楚。
3.