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

东莞高端网站定制搜索引擎营销的典型案例

东莞高端网站定制,搜索引擎营销的典型案例,网站用nodejs做后台,python基础教程百度亿文章目录 📝前言🌠 信号捕捉的流程🌉 sigaction 🌠穿插话题-操作系统是怎么运⾏的🌉 硬件中断🌉时钟中断 🚩总结 📝前言 🌠 信号捕捉的流程 如果信号的处理动作是⽤⼾⾃定…

请添加图片描述

文章目录

  • 📝前言
  • 🌠 信号捕捉的流程
    • 🌉 sigaction
  • 🌠穿插话题-操作系统是怎么运⾏的
    • 🌉 硬件中断
    • 🌉时钟中断
  • 🚩总结


📝前言

在这里插入图片描述

🌠 信号捕捉的流程

在这里插入图片描述

如果信号的处理动作是⽤⼾⾃定义函数,在信号递达时就调⽤这个函数,这称为捕捉信号。
由于信号处理函数的代码是在⽤⼾空间的,处理过程⽐较复杂,举例如下:

  • ⽤⼾程序注册了SIGQUIT 信号的处理函数sighandler
  • 当前正在执⾏main 函数,这时发⽣中断或异常切换到内核态。
  • 在中断处理完毕后要返回⽤⼾态的main 函数之前检查到有信号SIGQUIT 递达。
  • 内核决定返回用户态后不是恢复main函数的上下文继续执行,而是执行sighandler函数, sighandler和main函数使用不同的堆栈空间,它们之间不存在调用和被调用的关系,是两个独立的控制流程。
  • sighandler函数返回后自动执行特殊的系统调用sigreturn再次进入内核态。
  • 如果没有新的信号要递达,这次再返回用户态就是恢复main函数的上下文继续执行了。

在这里插入图片描述

🌉 sigaction

SYNOPSIS#include <signal.h>int 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 芯片的IRQ3,IRQ4中断信号请求。
}

🌉时钟中断

问题:
进程可以在操作系统的指挥下,被调度,被执⾏,那么操作系统⾃⼰被谁指挥,被谁推动执⾏呢?

外部设备可以触发硬件中断,但是这个是需要⽤⼾或者设备⾃⼰触发,有没有⾃⼰可以定期触发的
设备?
在这里插入图片描述

这样,操作系统不就在硬件的推动下,⾃动调度了么!!!

// 调度程序的初始化子程序。
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.dinnco.com/news/35097.html

相关文章:

  • 武汉北京网站建设网络推广计划方案
  • 怎么有自己公司网站域名谷歌手机版下载安装
  • 用织梦模板怎么做动态网站网络推广的概念
  • 网站开发软件公司百度自动优化
  • ps怎么做网站图片seo资讯
  • 土特产网站建设事业计划书体验营销
  • 微网站建设方案公司培训课程有哪些
  • 找回网站后台福州今日头条新闻
  • 社区教育人民优学o2o平台成都seo优化排名推广
  • 做的网站搜不到seo技术博客
  • 网站开发价目表接广告的平台
  • wordpress代言宝插件seo类目链接优化
  • 网站后台登陆不进去是怎么回事建立网站平台
  • 怎么做阿里巴巴国际网站营销型网站建设要点
  • 重庆南昌网站建设全网优化哪家好
  • 怎么看网站用什么平台做的针对大学生推广引流
  • 怎么下载一个网站的css免费注册
  • 兰州市城乡建设厅网站如何自己建设网站
  • sem seo新手好做吗百度seo霸屏软件
  • 专业集团门户网站建设个人接外包项目平台
  • 白山网站建设网站推广的基本方法
  • 企业cms建站系统成都有实力的seo团队
  • wordpress主题导入百度禁止seo推广
  • 产品销售型企业网站有哪些百度推广开户价格
  • 网购网站有哪些大数据精准营销系统
  • 小程序开发制作官网微信seo
  • 英文网站建设维护百度一下你就知道移动官网
  • 深圳网站制作公司机构河南网站推广公司
  • 台州网站建设团队南宁seo外包要求
  • 国外空间设计网站产品推广计划书怎么写