实验目的,linux系统怎么样

系统 7
实验目的 ◦加深对进程概念的理解,明确进程和程序的区别、进一步认识并发执行的实质 ◦了解并熟悉Linux系统中利用软中断信号实现进程通信的基本概念及方法 ◦熟悉Linux提供的有关系统调用函数/库函数,并能使用这些函数 实验准备及预习 ◦了解Linux系统中利用软中断信号实现进程通信的基本概念及方法 ◦熟悉Linux提供的有关系统调用函数/库函数:alarm()、kill()、signal()、sleep()、pause() Linux的低级通信主要用来传递进程间的控制信号,主要是文件锁和软中断信号机制 软中断信号的目的是通知对方发生了异步事件 信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达 信号是在软件层次上对中断机制的一种模拟 与硬中断处理程序不一致的是 ◦收到硬中断信号后中断处理程序立即被启动,软中断处理程序必须等到接收进程运行时才启动 ◦进程可向自己发送软中断信号,以便在某些意外情况下,进程能转入规定好的处理程序。
例如,大部分陷阱都是由当前进程自己向自己发送一个软中断信号而立即转入相应处理的 信号事件的发生有两个来源 ◦硬件来源,比如我们按下了键盘或者其它硬件故障 ◦软件来源,最常用发送信号的系统函数是kill,raise,alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作 Linux中有30个软中断信号和31个实时软中断信号 SIGHUP从终端上发出的结束信号SIGINT来自键盘的中断信号SIGQUIT来自键盘的退出信号SIGFPE浮点异常信号SIGALRM时钟定时信号……见实验附录 忽略该信号执行系统默认动作捕捉信号 信号SIGKILL和SIGSTOP既不能被捕捉 ,也不能被忽略 为了给用户进程也提供相应的同步、互斥以及软中断通信功能,Linux系统提供了几种相应的系统调用或库函数 ◦文件锁函数lockf(fd,function,size)可用于互斥 ◦用于同步的系统调用是wait()或sleep(n),其中wait()用于父子进程之间的同步,而sleep则使得当前进程睡眠n秒后自动唤醒自己 ◦系统调用kill(pid,sig)和signal(sig,func)被用来传递和接收中断信号 ◦例:signal(SIGINT,SIG_IGN),表示当前进程忽略键盘中断信号的影响 常用于发送信号的系统函数是kill、raise和alarmkill()函数 功能:传送信号给指定的进程 语法格式: #include #include intkill(pid_tpid,intsig);函数说明:kill()可以用来送参数sig指定的信号给参数pid指定的进程,参数pid一般>0(将信号传给进程识别码为pid的进程)返回值:执行成功则返回0;如果有错误则返回-
1 alarm()语法格式: #include unsignedintalarm(unsignedintseconds); 返回:0或以前设置的闹钟时间的余留秒数参数:seconds的值是秒数,经过了指定的seconds秒后会产生信号SIGALRM说明: ◦设置一个时间值(闹钟时间),在将来的某个时刻该时间值会被超过。
当所设置的时间值被超过后,产生SIGALRM信号 ◦如果不忽略或不捕捉此信号,则其默认动作是终止该进程◦每个进程只能有一个闹钟时间。
如果在调用alarm时,以前已为该进 程设置过闹钟时间,而且它还没有超时,则该闹钟时间的余留值作为本次alarm函数调用的值返回。
以前登记的闹钟时间则被新值代换 当信号发出后,可以使用signal()方法捕获信号signal()函数 语法格式: #include;signal(intsig,voidfunction());功能:允许调用进程控制软中断信号的处理,以非阻塞方式定义当某信号到达时如何处理 sig指明了所要处理的信号类型,可以取除了SIGKILL和SIGSTOP外的任何一种信号,例如: SIGHVP 挂起 SIGINT 键盘按ctrl+c SIGQUIT 键盘按quit键 SIGFPE 浮点运算溢出 SIGKILL 要求终止进程 function描述了与信号关联的动作,可以取以下三种值:
SIG_DFL:缺省操作,除SIGPWR、SIGCLD外所有信 号的缺省操作是进程终结 SIG_IGN:忽视该信号的出现Function:该进程中的一个函数地址 #include#include voidhandler(){printf("hello\n");} intmain(){inti; signal(SIGALRM,handler);alarm
(5);for(i=1;i<7;i++){ printf("sleep%d...\n",i);sleep
(1);}}

标签: #大金 #群里 #程序 #iphone4怎么升级ios8 #入门 #怎么回事 #用手 #文件