进程概念与文件描述符

《linux内核设计与实现》第三章

进程概念及状态

进程:一个正在运行的程序,资源分配的基本单位

进程状态:就绪  运行  阻塞

进程描述符:进程控制块(PCB),存放进程的属性信息

僵死进程:子进程先结束,父进程没有调用wait获取子进程的退出码,则子进程变成僵死进程

为什么会产生僵死进程

系统在设计时,子进程在结束后,会将退出码放入PCB中,父进程要查看子进程的退出码才能使得子进程PCB释放。

如何结束:父进程-wait

fork复制进程

复制流程:

写时拷贝:

父进程打开的文件fork()后,子进程可以共享访问 。

哪些是复制的那些是共享的

问题 以下几个分别产生几个进程

fork() || fork();



fork() && fork();



for(int i = 0;i < 2; ++i)

{

        fork();

         printf("A\n");

}

6个A

for(int i = 0;i < 2; ++i)

{

        fork();

         printf("A");

}
8个A

printf() 不是一个线程安全,它有一个buffer,现在里面放东西,满了或者强制刷新才会在屏幕中打印

fork() ||  fork()  

文件描述符

open  read  write  close

系统调用:

系统调用时如何从用户态切换到内核态?

系统调用和库函数的区别?

系统调用的实现在内核中,编写内核时就实现

库函数的实现,在库文件中

exec系列  execl  execlp  execv  exevp execve替换进程

进程的产生  fork()+exec()

信号

signal() 改变信号的响应方式,1.默认 SIG_DFL    2. 忽略  SIG_IGN       3.自定义  fun

kill()   发送信号  pid sig

SIG_INT

SIGCHLD  子进程结束后发给父进程

信号怎么实现的?

长整型变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值