09-06-2006
Think of scheduling like this:
There is one copy of the kernel. When a process is the current one, the kernel "attaches" itself (called a context switch) to the process memory. So when the kernel runs a system call on behalf of the process, it is "attached", and runs in the context of the process. It's not two separate entities running.
Process states (in UNIX) are:
R - runnable which means the process has done a context switch and has the kernel.
S - sleeping which means the process is waiting on I/O completion (blocked), a pipe, memory, etc.
T - process has been stopped - sent a SIGSTOP usually with ctrl/z
Z - zombie - a process that has a process image in memory but no context, ie., not swappable.
You can see this in the ps output. If you are not on Linux an have SVR4 flavor of ps,
then you will see another "state"
O - means the process is the one that currenlty has the cpu.
What you ask has to do with system calls like read which block. I don't know what you meant by process state, since I/O blocked=one of the sleep categories
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi all,
I have one requirement,I have two shell programs one is parent and the other one is child . from parent script i need to execute/trigger/call child script as background job. my requirement is after calling child script i want the child process information i.e PID of child weather it is... (8 Replies)
Discussion started by: smreddy
8 Replies
2. Shell Programming and Scripting
Hi guys,
I'm writing a script in which I have to get file from a remote host by ftp. The problem is that the remote machine could be very slow, not connected or ok. To resolve this problem, I write this:
echo "verbose on" > ftprap.cmd
echo "prompt " >> ftprap.cmd
echo "ascii"... (3 Replies)
Discussion started by: egiz81
3 Replies
3. UNIX for Advanced & Expert Users
Assume I spawn a process on (csh) command line, like
> du -a / >& /dev/null &
which creates a process with id 1234. Now, I can suspend/resume that process with
> kill -STOP 1234
> kill -CONT 1234
and can query the process state via 'jobs' or 'ps. How can I though query that state... (6 Replies)
Discussion started by: Andre_Merzky
6 Replies
4. Red Hat
Hi Expert,
I am not able to kill certain user process as root. I have tried using:
pkill -u uname
skill KILL -u uname
kill -9 PID
*** I have not using killall yet, since this server has more than 100 users online atm.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND... (1 Reply)
Discussion started by: regmaster
1 Replies
5. UNIX for Advanced & Expert Users
I'm using
"Linux hostname 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux"
All the client machines will use Thin-client ,I will use my laptop for working and I will
mount my home directory from server to my laptop.
If I open the firefox in my laptop the... (1 Reply)
Discussion started by: ungalnanban
1 Replies
6. Shell Programming and Scripting
Hi,
Can anyone help to create a script that will kill the process which is in hang state. (1 Reply)
Discussion started by: A.Santhosh
1 Replies
7. Shell Programming and Scripting
Hello Everyone,
I have a process that should be always running. Unfortunately, this process is getting down almost every 10 minutes. I want to make a script that verify the state of this process: If the process is up, the script shouldn't do nothing and if it's down he should run it.
Can... (3 Replies)
Discussion started by: adilyos
3 Replies
8. BSD
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (0 Replies)
Discussion started by: naveeng
0 Replies
9. UNIX for Advanced & Expert Users
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (1 Reply)
Discussion started by: naveeng
1 Replies
10. UNIX for Advanced & Expert Users
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (6 Replies)
Discussion started by: naveeng
6 Replies
getpid(2) System Calls Manual getpid(2)
NAME
getpid(), getpgid(), getpgrp(), getpgrp2(), getppid() - get process, process group and parent process ID.
SYNOPSIS
DESCRIPTION
These functions return process, process group and parent process IDs, as follows:
Process group ID of the specified process.
If pid is zero, the call applies to the calling process. Same result as
Process group ID of the calling process.
Process group ID of the specified process.
If pid is zero, the call applies to the calling process. Same result as
Process ID of the calling process.
Parent process ID of the calling process.
If the parent process is the initialization process (known as the call returns 1.
Security Restrictions
The system call is subject to compartmental restrictions. See compartments(5) for more information about compartmentalization on systems
that support that feature.
Compartmental restrictions can be overridden if the process possesses the privilege (PRIV_COMMALLOWED). Processes owned by the superuser
may not have this privilege. Processes owned by any user may have this privilege, depending on system configuration. See privileges(5)
for more information about privileged access on systems that support fine-grained privileges.
RETURN VALUE
The functions return the following values:
Successful completion.
n is a nonnegative process ID, as described above.
Failure:
and only. is set to indicate the error.
ERRORS
If or fails, is set to one of the following values:
[EPERM] The current process and pid are not in the same session (see setsid(2)).
[ESRCH] No process can be found corresponding to that specified by pid.
AUTHOR
and were developed by HP, AT&T, and the University of California, Berkeley.
SEE ALSO
exec(2), fork(2), setpgid(2), setsid(2), signal(5).
STANDARDS CONFORMANCE
getpid(2)