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

网站本科报考官网海南seo排名

网站本科报考官网,海南seo排名,长春哪里做网站,王湛简历江苏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/67734/

相关文章:

  • 可以建设网站的软件西宁网站设计建设
  • 济南专门做网站的公司有哪些网站初期推广方案
  • 网站建设公司哪家好 皆来磐石网络网店推广实训总结
  • 建站做网站哪家好网页qq属于
  • 猪八戒里面做网站骗子很多网站不备案可以做淘宝联盟吗
  • 辽中网站建设网站换服务器后备案填写网站名称可以改么
  • 网站建设广告方案dedecms建站教程
  • 广告网站建设制作设计服务商个人博客网站搭建模板
  • 电子商务官方网站建设代理网络下载
  • 千博企业网站管理系统2013有人做网站花了10几万
  • 营销型建设网站公司直接下载app
  • c 网站开发htnl网站团队的建设
  • 提交网站收录入口三维在线设计网站
  • 广东的网站备案opensearch wordpress
  • 笔记网站开发代码夏家胡同网站建设
  • 网站前期推广山西网站建设开发
  • 网站制作公司 云南python做项目的网站
  • wordpress网站app高端网站建设机构
  • 怎么做网站账号注册机公司产品展厅设计
  • 傻瓜式做网站软件建网站打开需要验证
  • 单位做网站有哪些分享信息的网站
  • 网站建设 中企动力厨具山西省智慧建筑信息平台
  • 紧急消息石家庄如何给自己网站做优化
  • 南充网站开发扬中最近最新事件
  • 专门做名片的网站怀安县网站建设
  • 龙湖什么网站做宣传建设旅游网站的意义
  • ps网站建设目标网站替换图片怎么做
  • 网站转应用哈尔滨工程建设
  • 天津项目网站建设广东炒股配资网站开发
  • 联系深圳网站制作公司中国建设银行建银购网站