当前位置: 首页 > news >正文

又拍网站怎么做国外搜索引擎排行榜

又拍网站怎么做,国外搜索引擎排行榜,企业网站不被百度收录,请问聊城做网站进程 task_struct mm_struct(虚拟地址空间) 页表 代码和数据 。 新建进程先有管理系统,然后才有代码和数据。 fork()函数:子进程返回0,父进程返回的是子进程的pid - - - 方便父进程对子进程标识。 进程终止:释放代码和数据占…

进程 = task_struct + mm_struct(虚拟地址空间) + 页表 + 代码和数据 。 新建进程先有管理系统,然后才有代码和数据。
fork()函数:子进程返回0,父进程返回的是子进程的pid - - - 方便父进程对子进程标识。

进程终止:释放代码和数据占据的空间,释放内核数据结构,task_struct 延迟释放,预防僵尸进程。
echo $? - - - 获取父进程bash获取到的最近一个子进程的退出码。 退出码默认为0表示成功,非零失败,利用不同的非0值可以表明失败的原因给父进程bash,main函数的 return 就是一个返回退出码。
在这里插入图片描述

进程终止时三种情况,1.代码跑完结果正确,2.结果不正确。结果正确不正确可以通过进程的退出码决定。3.代码出现异常,提前退出了,一旦进程出异常退出码会没有意义,进程异常时OS发给进程的信号终止进程。
kill -11 pid - - - 直接给信号为段错误,终止进程。
在这里插入图片描述
说明:实际上只要是进程执行时出问题,都是OS给该进程发的信号导致的问题,因此进程退出时可以根据推出信号来判断进程是什么异常
衡量一个进程退出,只需要一个退出码和退出信号判断进程退出的原因。
当一个进程退出时,会把自己的退出码和退出信号写入自己的PCB中,这样父进程就可以获取到子进程的退出信息得到进程的退出状态。

如何终止?
1.main函数中return,表明进程终止。非main函数return叫函数结束。
2.代码调用exit函数。在代码中任意位置调用 exit() 都是终止进程。exit 的参数就是退出码。
3._exit() 和 exit() 作用基本相同。
exit 是库函数,是C语言的。_exit 是系统调用。exit() 底层是在调用 _exit() ,但是多加了一层缓冲区冲刷。从下图可以看书,printf的缓冲区是不在OS内部的,在OS内部_exit也应该冲刷缓冲区。
在这里插入图片描述

进程等待
任何一个进程默认在结束时必须会被父进程等待,进程退出的时候如果父进程不做处理就会有僵尸进程 ‘Z’,导致内存泄漏。
父进程通过等待,解决僵尸进程回收系统资源。
获取子进程的的退出信息,了解子进程是什么原因退出的(可选功能)。
wait(int *status) - - - #include<sys/types.h> #include<sys/wait.h> - - - 等待成功,返回等待的子进程的 pid。等待父进程任意一个子进程退出。父进程 wait() 到子进程后就可以释放掉僵尸掉的子进程。如果子进程没有退出,父进程一直在阻塞等待(options==0)。
阻塞等待:
pid_t > 0 :等待成功,子进程退出了,返回子进程的pid
pid_t < 0 :等待失败。
在这里插入图片描述

pid_t waitpid(pid_t pid, int *status, int options):
pid - - - 需要等待的进程pid,pid = -1 说明设置父进程等待任何一个子进程退出,与wait作用相同。如果id = fork() 创建子进程后,这里的参数pid写fork的返回值id也表示的是等待创建的子进程。和wait()同作用。
status - - - 不需要设为NULL
status是输出型参数,表示的是等待的子进程的退出信息,退出信息指的是 退出码 + 退出信号
int类型有32位,status 只使用后16位,8-15位表示退出状态,0-7位表示退出信号。
在这里插入图片描述
拿到status的0-7和8-15位的值。
在这里插入图片描述

当子进程的代码直接死循环,从外部命令信号直接杀掉子进程如下图:
在这里插入图片描述

对于获取status的那些个位值如下更方便:

  1. WIFEXITED(status): 若为正常终止子进程返回的状态,则为真。(查看进程是否是正常退出)这个相当于是获取的status的0-7位并且查看是否正常,也就是信号位的值。
  2. WEXITSTATUS(status):若WIFEXITED非零,提取子进程退出码。(查看进程的退出码) 这个获取的是status的8-15位,也就是exit退出位的值。

当子进程没有退出时,父进程在waitpid()就是在阻塞等待,进程在阻塞等待,等到后父进程才开始运行。如果不想让父进程一直等待,第三个参数options的取值可以做到:
options - - - 0:阻塞等待,WNOHANG:非阻塞等待。

当非阻塞等待时有两种返回值:

  1. 若pid指定的子进程没有结束,则waitpid()函数返回0,不予以等待。就是说如果子进程没有退出则一直返回0.
  2. 若子进程正常结束,则返回该子进程的ID。

一般非阻塞等待时,非阻塞等待+循环=非阻塞轮询。允许父进程干一些其他的事情(DoOtherThing())。
在这里插入图片描述

http://www.yayakq.cn/news/953497/

相关文章:

  • 门户网站营销策略dedecms仿站教程
  • 有专门做背景音乐的网站吗为什么一个人做网站有难度
  • 专家库 网站 建设方案网站如何集成微信支付
  • 哈尔滨模板建站服务商什么是建设型的网站
  • 电子商务网站建设管理论文建设发展公司网站
  • 江苏省医院网站建设管理规范常州公司建站模板
  • wordpress个人博客建站wordpress个人中心页
  • 做家教网站如何招生十种网络推广的方法
  • 如何用织梦搭建网站wordpress404错误
  • 怎么在百度上建立网站wordpress注册用户邮件验证
  • 网站建设费可分摊几年怎样制作公司的网页
  • 宿城区住房和城乡建设局网站营销型网站制作哪家好
  • 网站模板 介绍网站界面设计教程
  • flash做的小动画视频网站flash怎么做电子书下载网站
  • 网站建设一般多少钱官网网页设计与开发第四版答案
  • 长宁区公司网站建设wordpress 连接后台
  • 中小企业网站建设策划苏州模板做网站
  • 网站建设核心提供网站建设搭建
  • 一个网站做多少个关键词比较好南通网站seo报价
  • 好公司网站建设价格杭州巴顿设计公司官网
  • 莆田网站制作软件个人网站里在哪点击模版
  • python可以做网站后台吗百度的排名规则详解
  • 咸阳网站建设方案公司网站建设价格表
  • 电子商务网站建设详细策划杭州网站建设服务公司
  • 分析seo网站深圳的公司排名
  • 网站有备案 去掉备案天眼查在线查询系统
  • 有没有做网站的电话网站建设软件定制开发
  • 江苏网站建设优化无锡网站建设企业
  • 网站功能建设流程图网站制作公司大型
  • 河南省建设部官方网站铁岭免费移动网站建设