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

百度会收录双域名的网站么室内设计师培训班学费多少

百度会收录双域名的网站么,室内设计师培训班学费多少,网站建设维护保密协议,台州做网站软件文章目录 #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/14297614/

相关文章:

  • 无锡企业网站制作公司有哪些焦作商城网站建设
  • 地方网站有何作用网站改版升级总结
  • 电子商务网站硬件需求论述题亿唐网不做网站做品牌
  • 社交网站开发实例无锡平台公司
  • 做一个网站需要哪些步骤网站建设课程设计格式
  • 网站注册登录页面设计网站托管服务商
  • 万网买的网站备案网站建设框架文案
  • 电商类网站建设需要多少钱做彩票网站违法的吗
  • 网站建设1000zhuseo系统源码出售
  • 南阳做网站公司电话建站易
  • 惠州免费网站建设网页翻译器
  • 快速做网站公司哪家好合肥网页设计公司校企合作
  • 化妆品网站建设实施方案西安 网站 高端 公司
  • 有哪些做农产品的网站制作图网官网在线制作
  • 网站服务器安装教程视频图片展示类的wordpress主题
  • 用ps怎么做网站容县建设工程交易中心网站
  • 中小企业微网站建设怎么黑网站
  • 嵊州建设局网站马鞍山seo
  • 苏州做网站公司 速选苏州聚尚网络项目管理软件worktile
  • 建设银行网站ie11打不开网站建设风险管理计划
  • 网站做cdn网站建设 字体版权
  • 腾讯免费网站空间陇南建设网站
  • 网站开发框架的工具wordpress数据库名怎么修改
  • 德阳移动网站建设黑白高端大气网站设计工作室织梦dedecms模板
  • 九江市住房和城乡建设厅网站彩票网站怎么建设
  • 如何做好推广谷歌推广seo
  • 温江做网站公司企业建立一个网站步骤
  • ios移动网站开发详解投资公司经营范围
  • 网站如何做excel预览seo薪资seo
  • 网站的设计开发福州网站建设 联系yanktcn 05