Linux--进程概念

进程概念:进程是什么?

进程:处于运行状态的程序 程序:一系列有序的指令集合–程序员编写的代码–储存在硬盘中–运行需要哪些过程:
冯诺依曼—所有数据指令想要被CPU处理,首先需要将代码和数据加载到内存中
CPU分时机制:CPU以极快的速度切换调度运行的所有程序,造成同时运行的假象
操作系统实现多个程序的调度运用:将这个运行中的程序描述,将这些描述组织起来管理
通过实现对pcb的调度管理实现对运行中程序的切换调度运行–对于操作系统这个描述信息pcb就是进程

进程就是pcb,是操作系统对一个运行中程序的描述,通过这个描述实现对程序的调度运行
这个pcb/这个描述在Linux中是一个结构体–struct task_struct{…}
描述信息:内存指针,程序计数器,上下文数据,进程标识符,IO信息,进程状态,记账信息

内存指针:用于指向程序指令数据在内存中的位置
程序计数器/上下文数据:用于保存当前的程序的运行
操作系统运行哪个程序则找到对应的pcb,将pcb中保存的各种描述信息加载到CPU寄存器上

cpu的分时机制:操作系统调度一个进程在CPU上运行,只运行很短的时间(时间片),运行完毕则切换调度到下一个程序
操作系统该调度到那个进程在CPU上运行,具体就是操作系统有系列的调度算法。

进程创建的初步认识: 进程就是pcb,意味着创建一个进程,就是创建一个pcb

pid_t fork(void) --通过复制调用进程(父进程)创建一个新的进程(子进程)
复制的信息:内存指针、程序计数器、上下文数据
内存指针:子进程与父进程运行的代码是一样的–指向同一块物理内存中的数据以及指令
程序计数器/上下文数据:子进程被创建出来后,运行位置与父进程是完全一样的,下一步即将执行的指令都是从创建子进程成功之后开始的
创建一个子进程所做的事情与父进程相同,因为它们运行的代码和数据以及当前的运行位置都相同

通常根据fork的返回值进行代码的分流,让父子进程进入不同的判断执行体完成不同的功能
在父进程的函数pid返回值是子进程,子进程的返回值为0;
父子进程代码共享,数据独有

进程状态: 就绪/运行/阻塞
Linux下进程的状态:
运行态 R:就绪/运行
可终端休眠态 S:当前的阻塞能够被中断
不可中断休眠太 D:当前的阻塞不会被中断唤醒,等待条件满足自己醒来
停止态 T:停止运行
僵死态 Z:进程已经推出了,但是资源没有完全被释放的一种状态

你可能感兴趣的:(进程概念)