Streams and Critical Regions on SYSV 4.0

Streams and Critical Regions on SYSV 4.0

Post by Adnan Yaq » Thu, 23 Jan 1992 22:44:56



I am interested in knowning more about critical regions in streams
programming.  Specifically, when are streams procedures (e.g., put)
run by the kernel?  During a procedure, what spl level am I running
at?  If I have scheduled a timeout in a streams procedure, can it
interrupt my streams procedure when it expires.  I guess I am looking
for some more information about the streams scheduler.  Any help will
be greatly appreciated.
--

Star Gate Technologies
29300 Aurora Rd, Solon, OH, 44139, USA, +1 216 349 1860
 
 
 

Streams and Critical Regions on SYSV 4.0

Post by Steve Alexand » Mon, 03 Feb 1992 07:25:03



>when are streams procedures (e.g., put) run by the kernel?

Put procedures are run immediately upon issuing a putnext.  Service procedures
are run upon return to user mode (either from a system call or interrupt),
during the idle loop, and at various points during system calls such as putmsg.

Quote:>During a procedure, what spl level am I running at?

On stock SVR4 Version 3, service procedures run at spl1.  Put procedures
run at whatever the current spl is.

Quote:>If I have scheduled a timeout in a streams procedure, can it
>interrupt my streams procedure when it expires?

If you mean service procedures, not on most systems, where timeouts run from
software interrupts.  Software interrupts are normally equivalent to spl0.5.
That is to say that they are always lower priority than the lowest hardware
interrupt, so spl1 is usually sufficient to block timeouts.  I have seen one
vendor's SVR3.2 port where a timeout could interrupt something at spl1, and
that was extremely annoying :->

--

INTERACTIVE Systems Corporation, Naperville, IL | ...!{sun,ico}!laidbak!stevea

 
 
 

1. thread and critical region

Hi,

     I have a global array which holds the connection information about
the clients that are connected over TCPIP. Since I have multiple threads
running and accessing the array, how do I expand the size of array and
not have any problems in other threads. I use realloc() to exanpd the
size of array which may change the pointer to the global array. Please
email

2. Help! POINTOPOINT

3. Critical region questions

4. how to setup a secure "incoming" ftp directory?

5. X Regions crash (GC Clip regions)

6. 2.5.47-bk1: error compiling skbuff.c

7. SysV Streams & Linux

8. netscape 4.51 glibc2 and debian 2.1

9. SysV.4 Streams and Modules programming problem: 2

10. SysV.4 Streams and Modules programming problem: 1

11. SYSV stream pipe or other record IPC under Linux?

12. SysV.4 Streams and Modules programming problem: 1

13. Printing to HPIIIDs on an ETHERNET LAN, with UNIX SYSV release 4.0