做的比较炫的网站php网站修改代码

张小明 2026/1/12 1:41:03
做的比较炫的网站,php网站修改代码,企业网站建设遵循的原则,老薛主机做电影网站20252820_中断和异常管理实验内容#xff1a;Tasklet / Workqueue / 信号捕获 实验平台#xff1a;openEuler 内核版本#xff1a;5.10.01. 实验目的 理解 Linux 内核中下半部机制#xff08;Bottom Half#xff09;的基本思想与使用方式。掌握 tasklet 的创建、调度与释放…20252820_中断和异常管理实验内容Tasklet / Workqueue / 信号捕获实验平台openEuler内核版本5.10.01. 实验目的理解 Linux 内核中下半部机制Bottom Half的基本思想与使用方式。掌握tasklet的创建、调度与释放流程。掌握workqueue工作队列的创建、延迟调度、周期执行与退出清理流程。理解 Linux 用户态信号机制能捕获并处理CtrlC / CtrlZ / Ctrl\对应信号。2. 实验环境与准备2.1 软硬件环境操作系统openEuler内核版本5.10.0编译工具gcc / make内核构建目录/lib/modules/$(uname -r)/build - /usr/src/kernels/5.10.02.2 实验目录结构chapter4_interrupt_exception/ ├── task1_tasklet/ │ ├── tasklet_intertupt.c │ └── Makefile ├── task2_workqueue/ │ ├── workqueue_test.c │ └── Makefile └── task3_signal/ ├── catch_signal.c └── Makefile2.3 建立目录mkdir-p chapter4_interrupt_exception/{task1_tasklet,task2_workqueue,task3_signal}3. 任务一Tasklet 打印 HelloWorld3.1 实验内容说明本任务通过 tasklet 实现一个简单的下半部处理模块加载时初始化 tasklet 并调度执行在 tasklet 处理函数中打印Hello World!模块卸载时使用tasklet_kill()确保 tasklet 安全退出。3.2 核心代码要点tasklet_intertupt.c文件位置chapter4_interrupt_exception/task1_tasklet/tasklet_intertupt.ctasklet_init(tasklet, handler, data)初始化 tasklettasklet_schedule(tasklet)调度 tasklet 执行tasklet_kill(tasklet)退出时确保 tasklet 不再运行3.3 Makefile 配置关键点KERNELDIR文件位置chapter4_interrupt_exception/task1_tasklet/Makefile外部模块编译make -C $(KERNELDIR) M$(PWD) modulesopenEuler 推荐KERNELDIR/lib/modules/$(shell uname -r)/build3.4 实验步骤1进入目录并编译cdchapter4_interrupt_exception/task1_taskletmakecleanmake2加载模块并查看输出sudoinsmod tasklet_intertupt.kodmesg|tail-n303卸载模块并查看输出sudormmod tasklet_intertuptdmesg|tail-n303.5 运行结果与截图截图1make编译成功生成.ko【截图任务1-编译成功】截图2insmod后dmesg中出现Start...与Hello World...【截图任务1-加载与打印】3.6 结果分析与总结tasklet 属于下半部机制之一适合执行短小、非阻塞的延后处理。退出时必须tasklet_kill()避免模块卸载后 tasklet 仍可能访问已释放代码导致异常。4. 任务二Workqueue 周期打印 HelloWorld4.1 实验内容说明本任务使用工作队列实现“周期打印”效果创建专用 workqueue初始化 delayed_work首次延迟入队在 work 回调中打印信息并再次queue_delayed_work()自己从而形成周期执行卸载模块时取消 delayed_work 并销毁工作队列。4.2 核心代码要点workqueue_test.c文件位置chapter4_interrupt_exception/task2_workqueue/workqueue_test.c关键点create_singlethread_workqueue()创建队列INIT_DELAYED_WORK(mywork, work_handle)初始化延迟任务queue_delayed_work(queue, mywork, period*HZ)延迟调度在work_handle()中再次queue_delayed_work()实现周期循环退出时cancel_delayed_work_sync()destroy_workqueue()避免竞态与悬挂任务4.3 Makefile 配置文件位置chapter4_interrupt_exception/task2_workqueue/MakefileKERNELDIR ? /lib/modules/$(shell uname -r)/build4.4 实验步骤1进入目录并编译cdchapter4_interrupt_exception/task2_workqueuemakecleanmake2加载模块设置周期参数 5 秒sudoinsmod workqueue_test.koperiod53观察周期打印dmesg-w4卸载模块sudormmod workqueue_test4.5 运行结果与截图截图1make编译成功生成.ko【截图任务2-编译成功】截图2insmod后dmesg连续多次输出体现周期性【截图任务2-周期打印】4.6 结果分析与总结workqueue 在进程上下文中执行允许睡眠/阻塞适合执行相对更复杂的任务。周期执行推荐在 work 回调中自我重新入队而不是在module_init()中sleep避免insmod阻塞。退出必须同步取消 delayed_work防止模块卸载后工作仍被调度。5. 任务三捕获 CtrlC / CtrlZ / Ctrl\ 信号5.1 实验内容说明本任务在用户态编写程序捕获三类终端按键信号Ctrl C→SIGINTCtrl Z→SIGTSTPCtrl \→SIGQUIT程序打印当前进程 PID注册信号处理函数在捕获到信号后输出对应提示并退出。5.2 核心代码要点catch_signal.c文件位置chapter4_interrupt_exception/task3_signal/catch_signal.c使用signal(SIGxxx, handler)注册处理器使用pause()阻塞等待信号到来在 handler 中区分不同sig并输出提示5.3 编译与运行步骤1进入目录并编译cdchapter4_interrupt_exception/task3_signalmakecleanmake2运行程序./catch_signal3分别测试三种按键每次测试重新运行一次程序Ctrl CSIGINTCtrl ZSIGTSTPCtrl \SIGQUIT5.4 运行结果与截图截图1程序启动输出 PID【截图任务3-启动输出PID】截图2按下CtrlC捕获 SIGINT 输出按下CtrlZ捕获 SIGTSTP 输出按下Ctrl\捕获 SIGQUIT 输出5.5 结果分析与总结信号是 Linux 用户态重要的异步事件通知机制终端按键会向前台进程组发送特定信号。通过注册 handler 可以实现自定义行为打印、资源释放、优雅退出等。本实验通过 handler 拦截默认行为实现“捕获并提示”的效果。6. 实验中遇到的问题与解决方案6.1 问题内核源码目录找不到导致编译失败现象make[1]: *** /root/raspberrypi-kernel: No such file or directory原因Makefile 中KERNELDIR指向了不存在路径。解决openEuler 使用/lib/modules/$(uname -r)/build本机链接到/usr/src/kernels/5.10.0。7. 实验结论完成 tasklet、workqueue 与用户态信号捕获三个任务理解了 Linux 中断下半部与异步事件处理的基本机制并掌握了模块编译加载、日志验证、退出清理等关键流程。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

云南网站建设的步骤优秀企业站网站

Unix 系统邮件操作全攻略 在 Unix 系统中,邮件的发送、阅读和管理是日常操作中的重要部分。本文将详细介绍如何在 Unix 系统中使用不同工具进行邮件相关操作。 一、使用 mutt 发送邮件 使用 mutt 发送邮件的过程与使用 pine 有相似之处。通常,你可以在 mutt 环境中撰写并发…

张小明 2025/12/23 9:57:08 网站建设

建设网站需要做的工作内容花都网站建设策划

LDAP 基础概念 轻量级目录访问协议 (Lightweight Directory Access Protocol, LDAP) 是一种开放的、跨平台的、基于 TCP/IP 的协议,用于访问和维护分布式目录信息服务。目录服务就像一个特殊的数据库,优化用于读取、浏览和搜索,主要存储有关用…

张小明 2025/12/23 9:57:05 网站建设

用cms织梦做网站图文教程做视频有赚钱的网站

SillyTavern版本升级3步走:新手也能轻松搞定 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在担心升级SillyTavern会把精心设置的角色数据弄丢吗?害怕复杂的命令…

张小明 2025/12/23 9:57:02 网站建设

朔城网站制作用wordpress教程

提到远程桌面,向日葵、ToDesk 肯定都知道,这两款我都使用过,我个人使(白)用(嫖)体验来看 ToDesk 把向日葵压着打,向日葵的免费通道极其不稳定,经常用着用着就掉线,连接使用体验卡顿感明显,ToDes…

张小明 2025/12/23 11:45:32 网站建设

秀山微信网站建设安卓app公司开发

1. 功能定义str.isalnum() 是 Python 字符串对象的内置方法,用于检查字符串是否仅包含字母(a-z, A-Z)和数字(0-9) ,且至少包含一个字符。返回值为布尔类型(True/False)。2. 语法格式…

张小明 2025/12/23 11:45:30 网站建设

网站正在建设中 模板免费设计网站

Taiga项目管理工具终极指南:从零构建高效敏捷团队协作平台 【免费下载链接】taiga Taiga is a free and open-source project management for cross-functional agile teams. 项目地址: https://gitcode.com/gh_mirrors/taig/taiga 你是否正在为团队协作效率…

张小明 2026/1/11 14:38:57 网站建设