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

百度会收录双域名的网站么自己做的网站怎么挂网上

百度会收录双域名的网站么,自己做的网站怎么挂网上,wordpress 左侧边栏,拉米拉云网站建设文章目录 #x1f4dd;前言#x1f320; 信号捕捉的流程#x1f309; sigaction #x1f320;穿插话题-操作系统是怎么运⾏的#x1f309; 硬件中断#x1f309;时钟中断 #x1f6a9;总结 #x1f4dd;前言 #x1f320; 信号捕捉的流程 如果信号的处理动作是⽤⼾⾃定… 文章目录 前言 信号捕捉的流程 sigaction 穿插话题-操作系统是怎么运⾏的 硬件中断时钟中断 总结 前言 信号捕捉的流程 如果信号的处理动作是⽤⼾⾃定义函数,在信号递达时就调⽤这个函数,这称为捕捉信号。 由于信号处理函数的代码是在⽤⼾空间的,处理过程⽐较复杂,举例如下: ⽤⼾程序注册了SIGQUIT 信号的处理函数sighandler当前正在执⾏main 函数,这时发⽣中断或异常切换到内核态。在中断处理完毕后要返回⽤⼾态的main 函数之前检查到有信号SIGQUIT 递达。内核决定返回用户态后不是恢复main函数的上下文继续执行,而是执行sighandler函数, sighandler和main函数使用不同的堆栈空间,它们之间不存在调用和被调用的关系,是两个独立的控制流程。sighandler函数返回后自动执行特殊的系统调用sigreturn再次进入内核态。如果没有新的信号要递达,这次再返回用户态就是恢复main函数的上下文继续执行了。 sigaction SYNOPSIS#include signal.hint sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);sigaction函数可以读取和修改与指定信号相关联的处理动作。调⽤成功则返回0,出错则返回-1。signo是指定信号的编号。若act指针⾮空,则根据act修改该信号的处理动作。若oact指针⾮空,则通过oact传出该信号原来的处理动作。act和oact指sigaction结构体: 将sa_handler赋值为常数SIG_IGN传给sigaction表⽰忽略信号,赋值为常数SIG_DFL表⽰执⾏系统默认动作,赋值为⼀个函数指针表⽰⽤⾃定义函数捕捉信号,或者说向内核注册了⼀个信号处理函数,该函数返回值为void,可以带⼀个int参数,通过参数可以得知当前信号的编号,这样就可以⽤同⼀个函数处理多种信号。显然,这也是⼀个回调函数,不是被main函数调⽤,⽽是被系统所调⽤。 当某个信号的处理函数被调⽤时,内核⾃动将当前信号加⼊进程的信号屏蔽字,当信号处理函数返回时⾃动恢复原来的信号屏蔽字,这样就保证了在处理某个信号时,如果这种信号再次产⽣,那么它会被阻塞到当前处理结束为⽌。如果在调⽤信号处理函数时,除了当前信号被⾃动屏蔽之外,还希望⾃动屏蔽另外⼀些信号,则⽤sa_mask字段说明这些需要额外屏蔽的信号,当信号处理函数返回时⾃动恢复原来的信号屏蔽字。sa_flags字段包含⼀些选项,本章的代码都把sa_flags设为0,sa_sigaction是实时信号的处理函数,本章不详细解释这两个字段,有兴趣的同学可以在了解⼀下。 穿插话题-操作系统是怎么运⾏的 硬件中断 中断向量表就是操作系统的⼀部分启动就加载到内存中了通过外部硬件中断操作系统就不需要对外设进⾏任何周期性的检测或者轮询由外部设备触发的中断系统运⾏流程叫做硬件中断 // Linux 内核 0.11 源码voidtrap_init(void) {int i;set_trap_gate(0, divide_error); // 设置除操作出错的中断向量值。以下雷同。set_trap_gate(1, debug);set_trap_gate(2, nmi);set_system_gate(3, int3); /* int3-5 can be called from all */set_system_gate(4, overflow);set_system_gate(5, bounds);set_trap_gate(6, invalid_op);set_trap_gate(7, device_not_available);set_trap_gate(8, double_fault);set_trap_gate(9, coprocessor_segment_overrun);set_trap_gate(10, invalid_TSS);set_trap_gate(11, segment_not_present);set_trap_gate(12, stack_segment);set_trap_gate(13, general_protection);set_trap_gate(14, page_fault);set_trap_gate(15, reserved);set_trap_gate(16, coprocessor_error);// 下面将int17-48的陷阱门先均设置为reserved以后每个硬件初始化时会重新设置自己的陷阱门ofor (i 17; i 48; i)set_trap_gate(i, reserved);set_trap_gate(45, irq13); // 设置协处理器的陷阱⻔。outb_p(inb_p(0x21) 0xfb, 0x21); // 允许主8259A 芯⽚的IRQ2 中断请求。outb(inb_p(0xA1) 0xdf, 0xA1); // 允许从8259A 芯⽚的IRQ13 中断请求。set_trap_gate(39, parallel_interrupt); // 设置并⾏⼝的陷阱⻔。 }void rs_init(void) {set_intr_gate(0x24,rs1_interrupt); // 设置串行口1的中断门向量(硬件IRQ4信号)。set_intr_gate(0x23,rs2_interrupt); // 设置串行口2的中断门向量(硬件IRQ3信号)。init(tty_table[1].read_q.data);// 初始化串行口1( .data是端口号)。init(tty_table[2].read_q.data);// 初始化串行口2。outb(inb_p(0x21) 0xE70x21); // 允许主8259A 芯片的IRQ3IRQ4中断信号请求。 }时钟中断 问题 进程可以在操作系统的指挥下被调度被执⾏那么操作系统⾃⼰被谁指挥被谁推动执⾏呢 外部设备可以触发硬件中断但是这个是需要⽤⼾或者设备⾃⼰触发有没有⾃⼰可以定期触发的 设备? 这样操作系统不就在硬件的推动下⾃动调度了么 // 调度程序的初始化子程序。 void sched_init(void) {... set_intr_gate(0x20, timer_interrupt);// 修改中断控制器屏蔽码允许时钟中断。outb(inb_p(0x21) ~0x01,0x21);// 设置系统调用中断门。set_system_gate(0×80, system_call);... } // system_call.s _timer_interrupt : ...; // do_timer(CPL)执行任务切换、计时等工作在kernel/shched.c,305行实现。 call _do_timer; // do_timer(long CPL ) does everything from// 调度入口 void do_timer(long cpl) {...;schedule(); } void schedule(void) {switch_to(next); // 切换到任务号为next的任务并运行之。 }总结
http://www.hkea.cn/news/14506357/

相关文章:

  • 十八哥公司网站开发php开发手机端网站开发
  • 网站建设 电脑 手机莱芜app下载
  • 峨眉山网站建设微信app下载安装官方免费下载
  • 京东电子商务网站的建设网站开发摊销多少年
  • 网站到期续费要多少钱网站优化优化怎么做
  • 黑龙江建设教育网站网站建设招标说明书
  • 织梦手机网站模板下载通用网址查询网站
  • 网站建设需要服务器么wordpress前端开发
  • 拍拍网站源码品牌线上推广方式
  • django网站开发视频广东网站定制
  • 网站增加新闻功能wordpress集成paypal
  • 开发企业网站费用同字形结构布局网站
  • 德化网站建设做什么软件做网站效率最好
  • 太原网站制作哪家便宜vr网页播放器wordpress
  • 访问不了网站目录中的网页wordpress主题的作用
  • 做固定背景网站用asp.net做购物车网站
  • 怎么做产品网站推广柳市网络推广
  • 网站建设趣味解读宁波做网站皆选蓉胜网络
  • flash 好的网站上海网站建设 缔客
  • 贵州做网站的公司有哪些建网站 行业 销售额
  • php 网站开发模式企业信息化管理系统
  • 专业免费网站建设一般我的世界做皮肤壁纸网站
  • 同类色相的网站上海 装修公司推荐
  • 个人与企业签订网站开发合同php网站源码架构
  • 中冶交通建设集团网站中国联通与腾讯设立
  • 政务网站建设浙江淮安淮阴网站建设
  • 亿万网站做软件的平台有哪些
  • 中小学网站建设论文兰州网站优化推广
  • 快速提高网站关键词排名优化发帖推广哪个平台好
  • 做云盘网站哪个好下载京东购物网