Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Do UNIX signals produce interrupts? Post 302942825 by Tru69 on Friday 1st of May 2015 02:48:22 PM
Old 05-01-2015
Question Do UNIX signals produce interrupts?

Hi folks!

I have been reading Vahalia's Unix Internals book, which states the following in the chapter dedicated to signals:
Quote:
The receiving process becomes aware of the signal when the kernel calls the issig() function [...] The kernel calls issig() only at the following times:
  • Before returning to user mode from a syscall/interrupt
  • Just before blocking on an interruptible event
  • Immediatly after waking from an interruptible event
Given that, my understanding is that processes running in user mode don't become aware of signals until they switch to kernel mode, where the issig() function is called at some points.

However, he later gives an example where a user would type ctrl+c at a terminal, sending a SIGINT signal to the foreground process. If it happens that this process is running on another CPU, a special "cross-processor" interrupt is needed so that the target sees the signal. But why is that? Do signals actually produce interrupts (traps) to the signaled processes so they immediately see them? Otherwise, wouldn't it be enough to just set a flag in this process' structure, which would be then checked in one of that three situations described before?

Thanks in advance!
 

9 More Discussions You Might Find Interesting

1. Programming

Unix/Linux Newbie(ish) Question - IPC/Signals

:) Hello, i have been given the following code to help me learn how to use signals, it won't compile. The problem maybe because this was written for use in Unix and i am trying to compile in Linux. The error i get says that SIGPIPE and SIG_IGN are undeclared. I think that these are defined... (2 Replies)
Discussion started by: theultimatechuf
2 Replies

2. Programming

Signals in Unix Solaris

I am doing a project to stimulate the scheduing policy of an OS under Unix Solaris. Its something like that: A process, say A will communicate to another process, which is the OS, and then execute the system call, pause(); The stimulated OS will then have to use sigsend(); to send a... (1 Reply)
Discussion started by: heljy
1 Replies

3. Filesystems, Disks and Memory

Does unix use interrupts?

I'm a freshman here and I have a simple question. Does unix use interrupts which is like Dos? Are they the same? Thx.:cool: (6 Replies)
Discussion started by: Frank_M
6 Replies

4. UNIX for Dummies Questions & Answers

catching interrupts

hey i have been facing a problem,can you tell me if we can catch ctrl d in unix i have tried and sucessfully catched and disabled ctrl-c and ctrl -z but am not sure if we can do the same for CTRL-D, so got any clue mail on he forum or ...i mean c programming in Unix thats what i am working on (1 Reply)
Discussion started by: toughguy2handle
1 Replies

5. UNIX for Advanced & Expert Users

Interrupts problems

Hi, My machine is a Unixware 7.1.3 is a files server, and I had never problem with that machine, but since two days, the machine presents slows problems, i think that the problem is te device interrupts, I had checked all and I dont found it any problem. Any idea? Thanks, (sorry my... (2 Replies)
Discussion started by: By_Jam
2 Replies

6. UNIX for Dummies Questions & Answers

Traps and Interrupts

Well, I don't know where exactly to ask this doubt so I'm asking in the newbie section. I was reading about traps and interrupts when I thought of traps as something that cease the control of the OS from the user and interrupts that cease the control yet provide support for multitasking. Am I right... (3 Replies)
Discussion started by: Legend986
3 Replies

7. Linux

How to interrupts work queue with signals

Hi masters, I am doing a project to regulate network bandwidth. I am using workqueue to implement packets management (I uses kernel threads inside each of these work queue) , netfilter hooks to implement packet catcher . All my modules individually works fine . But when I run my workqueues,... (1 Reply)
Discussion started by: iamjayanth
1 Replies

8. UNIX for Dummies Questions & Answers

about concept of Interrupts.

Hi all, I am new here ,i want to know about interrupts in detail.What r Interrupts .how they r handeled. Thanx in adavnce. (1 Reply)
Discussion started by: vishwasrao
1 Replies

9. Shell Programming and Scripting

A question about signals in Unix

Whats a signal 0. An exhaustive search on signals landed me nowhere. Is it possible to do something like this trap "echo $var" 0. If so what signal does this trap catch ? (2 Replies)
Discussion started by: kinny
2 Replies
KILL(1) 							   User Commands							   KILL(1)

NAME
kill - terminate a process SYNOPSIS
kill [-s signal|-p] [-q sigval] [-a] [--] pid... kill -l [signal] DESCRIPTION
The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent. The TERM signal will kill processes which do not catch this signal. For other processes, it may be necessary to use the KILL (9) signal, since this signal cannot be caught. Most modern shells have a builtin kill function, with a usage rather similar to that of the command described here. The '-a' and '-p' options, and the possibility to specify processes by command name are a local extension. If sig is 0, then no signal is sent, but error checking is still performed. OPTIONS
pid... Specify the list of processes that kill should signal. Each pid can be one of five things: n where n is larger than 0. The process with pid n will be signaled. 0 All processes in the current process group are signaled. -1 All processes with pid larger than 1 will be signaled. -n where n is larger than 1. All processes in process group n are signaled. When an argument of the form '-n' is given, and it is meant to denote a process group, either the signal must be specified first, or the argument must be preceded by a '--' option, otherwise it will be taken as the signal to send. commandname All processes invoked using that name will be signaled. -s, --signal signal Specify the signal to send. The signal may be given as a signal name or number. -l, --list [signal] Print a list of signal names, or convert signal given as argument to a name. The signals are found in /usr/include/linux/signal.h -L, --table Similar to -l, but will print signal names and their corresponding numbers. -a, --all Do not restrict the commandname-to-pid conversion to processes with the same uid as the present process. -p, --pid Specify that kill should only print the process id (pid) of the named processes, and not send any signals. -q, --queue sigval Use sigqueue(2) rather than kill(2) and the sigval argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to sigaction(2), then it can obtain this data via the si_value field of the siginfo_t structure. NOTES
It is not possible to send a signal to explicitly selected thread in a multithreaded process by kill(2) syscall. If kill(2) is used to send a signal to a thread group, then kernel selects arbitrary member of the thread group that has not blocked the signal. For more details see clone(2) CLONE_THREAD description. The command kill(1) as well as syscall kill(2) accepts TID (thread ID, see gettid(2)) as argument. In this case the kill behavior is not changed and the signal is also delivered to the thread group rather than to the specified thread. SEE ALSO
bash(1), tcsh(1), kill(2), sigvec(2), signal(7) AUTHOR
Taken from BSD 4.4. The ability to translate process names to process ids was added by Salvatore Valente <svalente@mit.edu>. AVAILABILITY
The kill command is part of the util-linux package and is available from Linux Kernel Archive <ftp://ftp.kernel.org/pub/linux/utils/util- linux/>. util-linux March 2013 KILL(1)
All times are GMT -4. The time now is 04:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy