Linux进程概念(一)
学习进程概念首先我们先得了解下冯诺依曼体系结构
冯诺依曼体系结构:现代计算机硬件体系结构
计算机五大硬件单元:输入设备(键盘等)、输出设备(显示器等)、存储器(内存-外存)、运算器CPU)、控制器
所有设备都是围绕存储器工作的
操作系统:在计算机硬件上安装的一个软件,目的是为了更好地操作计算机,合理统筹管理计算机上边的软硬件资源。
管理:先描述,在组织 使用pcb描述进程,使用双向链表将pcb串联起来进行管理
了解到以上两个内容,再来看进程这个概念:
进程:可以简单理解为进行中的程序,在linux下进程就叫“task_struct”
打开任务管理器,我们可以看到进程,进程下列出的就是我们电脑运行的程序,
在操作系统中,操作系统通过pcb来控制一个进程的运行,pcb也叫*“进程描述符”*,用来描述运行中的程序,在操作系统角度,进程就是pcb,pcb 中有一个内存指针,指向了当前进程要运行的位置。
而CPU采用CPU分时机制,切换调度进程,每个进程只运行一小段时间(时间片),从而达到多个程序同时运行。
除了内存指针,分时机制外,进程的运行还与程序计数器、上下文数据、标识符pid、进程状态、优先级、IO状态信息、记账信息有关。
查看进程的方式:
ps -ef aux 查看系统所有进程信息
/proc 保存系统中正在运行的程序信息(内存地址)
pid_t getpid() 获取调用进程的pid(在代码中使用)
创建进程:创建一个进程(pcb)
fock()-----通过复制调用进程(父进程)创建一个新的进程(子进程)。那么子进程与父进程拥有一样的内存指针,上下文数据,程序计数器,和父进程运行相同的代码,一样的运行位置,处理一样的数据,但是要注意父子进程“数据是独有”的
如何分辨父子进程数据是独有的:(返回值)
父进程:返回子进程的pid,pid>0
子进程:返回0
失败:返回-1
创建子进程的意义:子进程完成的功能和父进程是一样的,可以为父进程分担压力,提高效率,也可以用来完成其他任务。