生成孤儿线程的c语言代码,CPU,PCB,fork

1.cpu

多核CPU,例如四核八C,指的是四个物理CPU,八个逻辑CPU,说明每个物理CPU上有两个逻辑CPU。

并发:进程之间抢占式的与CPU进行计算。每个进程都独占CPU一小会,然后让出CPU资源。

并行:每个进程都占有一个CPU进行运算。

2.PCB

进程标识符:即pid,进程号。

进程状态:

程序计数器:保存进程即将执行的下一条语句。

上下文数据:保存进程上一次执行的时候,寄存器中的数据。

内存指针:保存进程的地址,地址指向虚拟内存地址。

IO信息与记账信息:当前进程启动的时间,当前进程占用CPU的时间,显示的IO请求等。

优先级:PR(new)=PR(old)+NI

3.如何在代码中创建一个进程

系统调用:pid_t getpid(void),获取当前进程的pid的接口

系统调用:int fork();用来创建进程。如果创建子进程成功,则fork函数给父进程返回子进程pid,给子进程返回0。创建失败则返回小于0的值。子进程会拷贝父进程的PCB,因此可以说与父进程一毛一样,那么子进程从何处开始执行代码呢,答案是从int fork语句后面,因为子进程同样有程序计数器,子进程与父进程虽然具有同样的PCB,因此虚拟地址空间也是相同的,但是子进程和父进程是两个独立分开的进程,这点要时刻记住。

4.僵尸状态与孤儿进程

僵尸状态: 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程 。

孤儿进程:没有孤儿状态,只要孤儿进程。因为孤儿进程产生的原因是父进程先于子进程结束,子进程就会被1号进程领养。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值