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

河南定制网站建设报价网页qq网址

河南定制网站建设报价,网页qq网址,网页设计与制作实例教程,亿网嘉园1、信号机制 在linux和unix系统下,如果想要处置(挂起,结束)进程,可以使用信号,经典消息机制,所以进程包括系统进程都是利用信号处置进程的 kill -l——查看所有系统支持的信号 1-31号信号——Unix经典信号&#xff…

1、信号机制

在linux和unix系统下,如果想要处置(挂起,结束)进程,可以使用信号,经典消息机制,所以进程包括系统进程都是利用信号处置进程的

kill -l——查看所有系统支持的信号

1-31号信号——Unix经典信号,是软件研发工程师需要了解的信号

32-33号信号——被系统隐藏,归NPTL线程库使用,不开放

34-64号信号——自定义信号,驱动研发了解

2、触发信号的5种方式

ps aux——查看进程信息

1、终端组合按键触发信号

ctl+c——发2号信号SIGINT

ctl+\——发3号信号SIGQUIT

ctl+z——发20号信号SIGTSTP

唤醒——fg 进程号

2、命令触发信号

kill -signo pid——可以向任意进程发出任意信号

3、函数触发信号

#include<signal.h>

kill(pid_t pid,int signo);——向任意进程发送任意信号

raise(int signo);——向调用进程发送任意信号

abort(void)——向调用进程发送SIG_ABRT信号

./mykill 9 1000

mykill代码

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<signal.h>int main(int argc,char**argv)
{if(argc<3){   printf("mykill failed:pram error\n");exit(0);}   kill(atoi(argv[2]),atoi(argv[1]));return 0;
}

4、硬件异常系统触发信号

当进程执行时,如果违规访问硬件,系统会发送对应的信号,杀死进程,避免访问

1、当进程中出现进程访问权限异常,例如只读内存写操作,产生段错误(内存核心已转储),系统发送SIGSEGV(11号)信号杀死目标进程

2、进程访问内存越界,触发总线错误(内存核心已转储),系统发送SIGBUS(7号)信号,杀死目标进程

3、进程使用cpu,计数异常,系统抛出浮点数例外(核心已转储),系统发送SIGFPE(8号)信号,杀死目标进程

5、软条件触发信号

在使用某个功能或设备时,当使用满足了软条件,系统会发送信号杀死进程

eg:

1、alarm定时器

用户可以自定义定时的时长,当定时的时间达到,系统会发送SIGALRM(14号)信号,但是信号会杀死进程

alarm定时器

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<signal.h>int main()
{int count=0;alarm(1);while(1){   printf("++count %d\n",++count);}   return 0;
}

2、管道

管道读端关闭,写端向管道写数据,触发软条件,系统向写端发送SIGPIPE(13号)杀死进程

3、信号的行为或动作

系统中提供的信号一般都是用来杀死或挂起进程,信号的行为一般是被提前预设好的,但是可以修改,用户可以自定义变更行为和动作

SIGNAL一般有三种行为

1、SIG_DFL(默认行为:杀死目标)

是信号首选的默认行为

默认处理动作一般分为5种:

TERM——杀死进程

CORE——杀死进程并转储核心

IGN——不干预进程

STOP——挂起进程

COUNT——唤醒进程

2、SIG_IGN(忽略行为:放弃)

处理动作:NULL

3、SIG_ACTION(捕捉行为:自定义)

处理动作:自定义动作

捕捉函数

void sig_do(int n)
{printf("gfytguhbjgv"\n);
}

捕捉函数需要开发者自行定义与实现,但是只有信号触发抵达进程,系统自动调用

行为1中的忽略动作与行为2的忽略行为相比,结果一致,但是优先级不同,行为的优先级比动作高

每个信号拥有自己的信号行为结构体,struct sigaction,自己定义修改结构体,对进程原有的结构体进行替换,因为所有默认信号行为结构体中的行为都是默认的

处理行为设定

act.sa_handler=SIG_DFL/SIG_IGN/捕捉函数地址

默认选项

act.sa_flags=0;

临时屏蔽字,可以使用sigemptyset初始化

act.sa_mask;

结构体

struct sigaction act,oact;
void (*sa_handler)(int)
{act.sa_handler=SIG_DFL/SIG_IGN/捕捉函数地址act.sa_flags=0;act.sa_mask;
}

4、改变信号行为的方法

用自定义结构体替换原有的结构体

第一个参数是要修改的信号

第二个参数是新的结构体

第三个参数是原有的结构体

sigaction(SIGINT,&act,&oact);

替换修改信号行为结构体,一般情况下要传出进程原有的结构体,便于复位

虽然SIGINT代表的是2号信号,但是不能只传入2,因为不同电脑的信号名和编号不一定相同

eg:改变信号行为

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<signal.h>void sig_do(int n)
{int flags=3;while(flags--){   printf("         flag %d running...\n",flags);sleep(1);}   
}int main()
{struct sigaction act,oact;act.sa_handler=sig_do;act.sa_flags=0;sigemptyset(&act.sa_mask);sigaction(SIGINT,&act,&oact);while(1)sleep(1);
}

改变后不能使用ctrl+c杀死程序

5、信号的传递与处理流程

1、信号由系统发出,传递到PCB

2、PCB中有一个位图,为64位,每一位对应一个信号,称为未决信号集

还有一个位图,为64位,每一位对应一个信号,称为屏蔽字

3、信号从系统发出后,还未到达未决信号集前称为待传递信号

信号能否通过未决信号集取决于未决信号集中的位码,1为不允许,0为允许

如果信号不被允许通过未决信号集,则该信号会被直接丢弃,放弃处理

4、如果信号通过了未决信号集,但还未抵达屏蔽字集,称为未决态信号,都是待处理信号

如果信号通过了未决信号集,系统会将对应的未决信号集的位码置1,如果有相同信号再次被传递过来,会被直接丢弃,因为系统拒绝相同的信号同时传递,未决信号集的变化是系统进程设置的

5、如果信号通过了屏蔽字集,称为递达态信号

当信号变为递达态后,未决信号集的位码会被归0

系统初始是避免相同信号递达的,因为会产生捕捉函数调用冲突,因此如果某个信号递达,系统会设置临时屏蔽,将对应的屏蔽字位置设置为1,当递达信号处理完毕后,再解除屏蔽

当信号变为递达态信号,则信号正在处理,进程将被处置,杀死或者挂起(见上面3)

6、信号阻塞

指的是信号通过了未决信号集,但是未通过屏蔽字

屏蔽字是开发者可以自行设置的,用于屏蔽阻塞某些特定信号

7、如果同时发多个信号,则系统只能处理前两个发过来的信号,其余的会被全部丢弃

因为屏蔽字会被临时置1,递达态信号处理完毕后,才会归0

8、Unix经典信号,不支持排队,但是可以多阻塞1个

9、自定义信号(34-64号)支持排队

因为经典信号(1-31号)的设计初衷是处置进程

自定义信号(34-64号)被设计出来为了软硬件设计,如:磁盘探针寻址寻道,用在上一页或下一页等操作上

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

相关文章:

  • 微信制作网站平台网站建设有哪些
  • 家庭服务网站的营销策略网站开发电商项目的成本管理怎么写
  • 专业做中文网站网站建设合同 免责声明
  • wordpress迁移网站做网站公司有哪些
  • 淘宝电商网站怎么做怎样创建app
  • 企业建立网站的目的网页版微信读书
  • 濮阳网站建设熊掌网络高端网站建设公司哪家服务好
  • 搜索网站logo怎么做门户网站建设情况说明
  • 住房和城乡建设部建设司网站首页做网站学不需要做后台管理系统
  • 沈阳网站建设公众号对网站进行seo优化
  • 网站怎么才能被搜到落地页制作用什么软件
  • 建设网站那个平台好长沙建设工程造价网
  • 招聘网站建设需求o2o网站建设市场
  • 河东手机网站建设中国能源建设集团有限公司董事长
  • win7 asp.net网站架设个人网页设计大全
  • 企业网站建设指导思想推广平台大全
  • 兴化网站制作建设电影网站代码
  • 网站设计网址深圳市住建局官网平台
  • mvc做网站用的多不多做网站推广前途
  • wordpress优秀网站福建省建设厅网站 2013
  • 怎样给自己做网站重庆网站建设qq群
  • 大德通众包网站建设vps能同时做网站同时做其它事吗
  • directadmin网站储存目录公司比较好
  • asp化妆品网站 后台wordpress utf8
  • 国内大型网站域名海南网站建设
  • 整个网站都在下雪特效怎么做网页制作代码示例
  • 无锡设计师网站网站建设连接到百度
  • 企业运营管理培训seo公司优化方案
  • 秦皇岛网站开发房地产要崩塌了
  • 刷关键词的平台河南自助建站seo公司