




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 12 软中断实验报告 篇一: linux 软中断通信实验报告 实验 2 linux 软中断通信 1.实验目的 通过本实验,掌握软中断的基本原理;掌握中断信号的使用、进程的创建以及系统计时器的使用。 2. 实验内容 . 1 实验步骤 . 1 程 序 运 行 初 值 及 运 行 结 果 分析 . 4 实验总结 . 6 附件 . 6 实验目的 .2 / 12 . 9 实验内容 . 9 实验原理 . 9 实验结果 . 11 i 实验一 内核编译与系统调用 实验目的 熟悉 linux 下的基本操作,学会使用各种 shell 命令去操作 linux,对 linux有一个感性认识。 理解操作系统调用的运行机制。 掌握创建系统调用的方法。 实验内容 以 root用户身份登陆,并使用“ ls” ,“ cat”“ cd”等命令来实现基本的文件操作并观察 linux文件系统的特点 . 系统调用实验 a.编程调用一个系统调用 fork,观察结果。 b.编程调用创建的系统调用 foo,观察结果。 c.自己创建一个系统调用 mycall,实现功能:显示3 / 12 字符串到屏幕上。 d.编程调用自己创建的系统调用。 实验思想 系统调用是一种进入系统空间的办法。 linux 的系统调用是通过中断机制实现的。中断这个概念涉及计算机系统结构方面的知识,显然它与微处理器等硬件有着密不可分的关系。软中断,是对硬中断的一种模拟,发送软中断就是向接收进程的 proc结构中的相应项发送一个特定意义的信号。软中断必须等到接 收进程执行时才能生效的。 中断,是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 cpu不得不暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后再返回原来被中断处继续执行的进程。其发生一般而言是“异步”的。换句话说就是在无法预测的情况下发生的。所以计算机的软硬件对于中断的相应反应完全是被动的。 陷阱,即由软件产生的中断,指处理机和内存内部产生的中断,它包 括程序运算引起的各种错误,如地址非法、校验错误、页面失效等。它有专门的指令,如 x86 中的 “ intn”,在程序中是有意产生的。所以说陷阱是主动的、“同步”的。 实验步骤 4 / 12 以 root用户身份登陆,并使用“ ls” ,“ cat”“ cd”等命令来实现基本的文件操作并观察 linux文件系统的特点 .系统调用实验 程序运行初值及运行结果分析 程序: 1. /* filename: */ #include main printf; 接下来,进行编译,最简单的编译方法是不指定 任何编译选项: gcc 它会为目标程序生成默认的文件名,我们可用 -o 编译选项来为将产生的可执行文件指 定一个文件名来代替。例如,将上述名为 的 c 程序编译为名叫 helloworld 的可执行文件,需要输入如下命令: gcc o helloworld 最后,执行生成的可执行文件: ./helloworld 可以在屏幕上看到输出结果: hello world 。 编程调用一个系统调用 fork 5 / 12 在应用程序中调用系统调用 fork非常简单 ,下面的程序可以很清楚的显示出有 fork 系统调用生成了子进程,而产生的分叉作用: # include int main int iuid; iuid=fork; if for printf; sleep; if ifprintf; return 0;for printf; sleep; 1) 编程调用创建的系统调用 foo 2) 添加源代码 第一任务是编写添加到内核的源程序,即添 加到内核文件中的一个函数。该函数的名称应该是在新的系统调用名称之间前加上 sys_标志。新加的系统调用为 foo,功能为原值返回输入的整型数。格式为 int foo,返回的值就是出入的参数。在 /usr/src/linux/kernel/文件中添加源代码,如下所示: asmlinkage int sys_foo printf; 它的功能很简单,就是向标准输出一个特定的整数。6 / 12 程序如下: #include #include 实验 2 Linux 软中断通信 1.实验目的 通过本实验,掌握软中断的基本原理;掌握中断信号的使用、进程的创建以及系统计时器的使用。 2.实验内容(上交的实验 2 统一取名为: test2) 由父进程创建两个子进程,通过终端输入 Crtl+组合键向父进程发送 SIGQUIT 软中断信号或由系统时钟产生SIGALRM 软中断信号发送给父进程;父进程接受到这两个软中断的其中某一个后,向其两个子进程分别发送整数值为 16和 17 软中断信号,子进程获得对应软中断信号后, 终止运行;父进程调用 wait 函数等待两个子进程终止,然后自我终止。 3. 设计思想及算法流程 4. 源程序 #include #include #include #include #define SEC 5 7 / 12 void waiting; void stop; int wait_mark; int main int p1, p2; /*定义两个进程号变量 */while ) = -1); /*循环创建进程至成功为止 */if while ) = -1); /*循环创建进程至成功为止 */ if wait_mark = 1; alarm; signal; signal; waiting; kill; kill; wait; wait; printf; exit; 8 / 12 else signal; signal; wait_mark = 1; signal; /*接收到软中断信号 17,转 stop*/ waiting;/*在 wait 置 0 前,不可往下执行 */ lockf; /*加锁 */ printf; lockf; /*解锁 */ exit; /*子进程 2 退出 */ else signal; signal; wait_mark = 1; /*将等待标记置 1 直到中断信号刺激 stop*/ signal;/*接收到软中断信号 16,转 stop*/ waiting; /*在 wait置 0前,不可往下执行 */ lockf; printf;/*接收到父进程发送信号后,父进程杀死子进程 1*/ lockf;/*解锁 */ exit; /*子进程 1 退出 */ 9 / 12 return 0; void waiting while ; void stop wait_mark = 0; 5.运行结果 N 上机实验报告 课程名称 上机内容 学 院 专 业 班 级 学 号 计算机接口与外设 中断实验 计算机学院 计算机科学与技术 学生姓名 指导教师 完成日期 吴以凡 2016-12-9 一、实验目的 1、掌握 8259 中断 控制器的工作原理。 2、学会编写中断服务程序。 二、实验内容及成果展示 实验 1:使用软中断 代码: 10 / 12 start:MOV AX,DATA MOV DS,AX CLI MOV SI,0CH*4 MOVAX, OFFSET INTSERVICE ;中断入口偏移地址 MOVES:SI, AX MOVAX, SEG INTSERVICE ;中断入口的段地址 MOVES:SI+2, AX STI ;开中断 MOV AL,CNT ; 初始 CNT=1 MOV DX,0000H; led 的地址 OUT DX,AL ;开始第一个灯亮 LI: CALL INTSERVICE ;调用软件中断 CALL DELAY ;延时 JMP LI ; 中 断 服 务 程 序- INTSERVICEPROC PUSH DS MOV AL,CNT ;cnt=1;ROL AL,1 ;cnt=cnt MOV DX,0000H ;led=cnt INTSERVICE ENDP ;- ; 软 件 延 时 子 程 序- DELAY PROC PUSH BX ;这里用到堆栈 PUSH CX MOV BX,1 LP2:MOV CX,0 LP1:LOOP LP1 DEC BX 11 / 12 JNZ LP2 POP CX POP BX RET DELAY ENDP code ENDS END start 实验结果: 实验 2:使用 1 片 8259A + 按钮硬件中断 代码如下: start: ;设置 ICW4 ;设置 ICW4 ;设置 ICW2 ;设置 ICW2 MOV AL,01100000B;中断向量号 60H MOV DX,020H;端口号 OUT DX,AL MOV AX,DATA MOV DS,AX ; 中 断 向 量 的 设 置- CLI MOV AX,0 MOV ES,AX MOV SI,60H*4 MOVAX, OFFSET INT0 ; 中 断入口偏 移地址 MOVES:SI, AX MOVAX, SEG INT0 ; 中 断 入 口 的 段 地 址 MOVES:SI+2, AX ; 初 始 化8259A- ;设置 ICW1 ;设置 ICW1 MOV AL,00010011B ;边沿触发/单片使用 /需要 ICW4 MOV DX,020H;端口号 OUT DX,AL MOV AL,00011011B;特殊全嵌套方式 /缓冲方式 /自动结束方式 /16位机 12 / 12 LI: ;8086 模型有问题 ,它取得的中断号是最后发到总线上的数据 ,并不是由 8259 发出的中断号 . ; 中 断 服 务 程 序- MOV DX,0400H ;端口号使用 8259A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校教育与职业技能培训协议
- 企业运营成本控制方案库
- 艺术流派及发展历程概述:美术课堂教学设计
- 直接引语与间接引语的转换规则:六年级英语语法课教案
- 小猪学样550字(11篇)
- 纪念塔课件教学
- 银滩之旅250字(12篇)
- 关于七夕节的英语作文11篇
- 2025年事业单位招聘统计类试卷:统计学在美学中的
- 2025年商务英语(BEC)中级考试真题模拟卷:模拟实战演练
- 2025年足球裁判三级试题及答案
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
- 2025年特种设备检验检测项目合作计划书
- 安全生产投入费用明细
- 2025年司机三力考试题库及答案
- 铁路动态设计管理办法
- 奔驰GL350GL450GL550中文版说明书
- 智能微电网应用技术课件
- 泌尿外科围手术期护理
- 光谷华科附小数学试卷
- 大学班助培训
评论
0/150
提交评论