做个网站软件多少钱,做淘宝客网站要申请什么,高端效果图制作公司,网站开发大概价格进程
可执行程序加载到内存中#xff0c;操作系统为内个程序都形成一个PCB对象#xff08;结构体对象#xff09;#xff0c;PCB里存放着这个程序的所有的属性。进程可执行程序PCB #xff0c;CPU执行程序也是先通过该程序的PCB找到相应的程序代码#xff0c;然后一条一…进程
可执行程序加载到内存中操作系统为内个程序都形成一个PCB对象结构体对象PCB里存放着这个程序的所有的属性。进程可执行程序PCB CPU执行程序也是先通过该程序的PCB找到相应的程序代码然后一条一条的执行 既然操作系统对进程的管理就是对PCB的管理所以PCB里面的属性是在操作系统内部的用户不能直接访问需要调用其相应属性的接口 linux的进程演示 我们以标识符属性为例写一个代码在代码里调用相应的系统接口访问这个代码在进入内存后成为进程后所具有的PCB里面的pid: 需要调用的系统接口getpid t通过man指令查看他所需要包含的头文件 我们不断的运行和停止程序 可以看书内一次进程的pid都会发生变化因为内次启动程序都会创建新的进程 而且我们可以看书他的父进程是不变的。 那么父进程是谁呢 在linux中普通进程都有父进程。
父子进程
linux中在命令行输入 ll /proc 就可以查看内存里的数据 比如此时运行一个程序我们就能在proc中看到相应进程的pid,他是以目录的形式里面存的就是进程的属性当查看这个目录的时候我们看到 进程创建子进程调用系统函数fork fork之后代码共享 再通过man指令查看fork函数可以看到fork()的返回值为子进程的pid会返回给父进程0会返回给子进程 知道了这一点那么我们是否就可以让父子进程分工同时做不同的事情 为什么fork()函数会有两个返回值呢、
fork()函数的目的就是创建一个子进程所以在fork()函数内部当执行到最后返回语句的时候就已经创建了子进程那么之后的语句就会形成分支两个进程各自返回各自的值