操作系统课程设计说明书--信号通信与控制.doc
文本预览下载声明
河南城建学院
《操作系统》课程设计说明书
设计题目: 信号通信与控制
专 业: 计算机科学与技术
指导教师:
班 级:
学 号:
姓 名:
同 组 人:
计算机科学与工程系
2011年12月 30 日
前言
操作系统是计算机应用专业学生必修的基础课之一。在计算机软硬件课程的设置上,它起着承上启下的作用。其特点是概念多、较抽象和涉及面广,其整体实现思想和技术又往往难于理解。
操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。因此本课程的目的与任务是使学生通过本课程的学习,理解操作系统的基本概念和主要功能,掌握常用操作系统Linux/Windows)的一般使用和管理方法,了解它是如何组织和运作的,从而为学生以后的学习和工作打下基础。前言 2
系统环境 3
设计目的 5
程序原理 5
流程图 6
函数说明 7
signal(sig,function) 7
kill(pid,sig) 8
fork() 8
lockf(files,function,size) 9
Waiting() 9
wait() 9
exit() 10
调试与测试 11
设计中遇到的问题及解决方法 16
源程序 17
总结,收获与体会 23
参考文献 24
系统环境
1)文本编辑器——Windows环境平台下的EditPlus或者Linux平台下的一种文本编辑器
2)汇编编译器——NASM汇编编译器
3)C语言编译器——linux平台下的GCC编译器
鉴于条件的限制,我们将在Windows平台下安装VMware虚拟机来搭建Linux平台。
设计目的
(l)进程的创建:编写一段程序,fork()创建两个或多个子进程。当此程序运行时,(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,
(3)进程通信:①软中断通信;②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIGIGN)进行通信操作,,(4)软中断的捕获与重定义。首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
程序原理
软中断的工作工程模拟了实际的中断处理过程,当某一软中断时间发生后,首先需要设置对应的中断标记位,触发中断事务,然后唤醒守护线程去检测中断状态寄存器,如果通过查询发现某一软中断事务发生之后,那么通过软中断向量表调用软中断服务程序。这就是软中断的过程,与硬件中断唯一不同的地方是从中断标记到中断服务程序的映射过程。在CPU的硬件中断发生之后, CPU需要将硬件中断请求通过向量表映射成具体的服务程序,这个过程是硬件自动完成的,但是软中断不是,其需要守护线程去实现这一过程,这也就是软件模拟的中断,故称之为软中断。在本程序中,父进程创建两个子进程,再用kill()向两个子进发出中断信号,子进程P1和P2接到信号后,用exit(0)函数正常终止自我进程(向父进程发SIGCHLD信号。父进程的wait()函数收到子进程的SIGCHLD信号后,对子进程作适当处理后(资源回收)后返回本进程。因为父进程有两个子进程,所以需要两个wait()函数来等待子进程的结束。
函数说明
signal(sig,function)
允许调用进程控制软中断信号的处理。
头文件:
#include signal.h
参数定义
signal(sig,function)
int sig;
void (*function)();
返回值:成功时返回旧的(以前)函数描述,失败时返回SIG_ERR。
说明:信号sig的值在头文件singal.h中有完整定义和描述,可用man 7 signal来获得帮助。
sig的取值如下:
信号 功能 值 SIGHUP 挂起 1 SIGINT 键盘中断,键盘按Delete键或Break键 2 SIGQUIT 键盘按Quit键 3 SIGILL 非法指令 4 SIGTRAP 跟踪中断 5 SIGIOT IOT指令 6 SIGBUS 总线错 7 SIGFPE 浮点运算溢出 8 SIGKILL 要求终止进程 9 SIGUSR1 用户定义信号#1 10 SIGSEGV 段违法 11 SIGUSR2 用户定
显示全部