Linux进程概念

1.进程概念

课本概念:程序的一个执行实例或者正在执行的程序等

内核观点:担当分配系统资源(cpu时间,内存)的实体

2.描述进程-PCB

进程信息被放在一个叫做进程控制块数据结构中,可以理解为进程属性的集合。

课本上称之位PCB(process control block),linux操作系统下的PCBtask_struct

(1)task_struct-PCB的一种

    在linux中描述进程的结构体叫做task_struct

    task_struct是linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息

(2)task_struct内容分类

标示符描述本进程的唯一标示符,用来区别其他进程。

状态:任务状态,退出代码,退出信号等

优先级:相对于其他进程的优先级

程序计数器:程序中即将被执行的下一条指令的地址

内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针

上下文数据:进程执行时处理器的寄存器的数据

I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表

记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等

其他信息等等

上下文数据是指程序执行时处理器各种寄存器中的数据。包括:

通用寄存器。
程序计数器:程序中即将执行的下一条指令的地址。
程序状态字PSW:含有状态信息,如执行方式,中断屏蔽字等。
用户栈指针:指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。

上下文数据存在的必要性:处理机处于执行状态时,正在处理的许多信息都是放在寄存器中。当进程被切换时,处理机状态信息都必须保存在相应的PCB中,以便在该进程重新执行时能再从断点继续执行。

3.组织进程

PCB是进程的唯一描述块,为了动态插入和删除,PCB由链表组织。进程创建时,为该进程生成一个PCB,进程终止时,回收PCB

4.查看进程

  • ls /proc/ 要查看几号进程信息,就查看对应的文件。例如ls /proc/1
  • ps aux 例如ps aux | grep test | grep -v grep查看关于test的进程信息
  • top 相当于windows下的任务管理器

 5.通过系统调用获取进程标示符

子进程(pid)

父进程(ppid)

Linux进程概念_第1张图片

 

 

6.通过系统调用创建进程-fork初识

(1)运行 man fork 认识fork

Linux进程概念_第2张图片

 

(2) fork有两个返回值,给子进程返回0,给父进程返回子进程的pid,

(3)父子进程代码共享,数据各自开辟空间,私有一份(采用写时拷贝)

fork 之后要用if 进行分流

Linux进程概念_第3张图片

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux)