Stream Read And Write Queues


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Stream Read And Write Queues
# 1  
Old 05-22-2002
Stream Read And Write Queues

Is there any possibility that a Stream Read and Write queues will interchange messages of any kind. If so what are the different possiblites and under what circumstances ?

Thanks in advance.
# 2  
Old 05-22-2002
Data on a Stream is passed in the form of messages. Each Stream head, STREAMS module, and driver has a read side and a write side. When messages go from one module's read side to the next module's read side they are said to be traveling upstream. Messages passing from one module's write side to the next module's write side are said to be traveling downstream.

Each Stream head, driver, and module has its own pair of queues, one queue for the read side and one queue for the write side. Messages are ordered into queues, generally on a first-in, first-out basis (FIFO), according to priorities associated with them.

The queue's service procedure deals with messages on the queue, usually by removing successive messages from the queue, processing them, and calling the put procedure of the next module in the Stream to pass the message to the next queue!
# 3  
Old 05-23-2002
Following is the diagram I found in SCO manuals :-
(upstream) (downstream)
(up^stream) (downstr|eam)
(up|stream) (downstr|eam)
(up|stream) (downstrXeam)
READ QUEUE«.........»WRITE QUEUE
(up^stream) (downstr|eam)
(up|stream) (downstr|eam)
(up|stream) (downstrXeam)
READ QUEUE«...........»WRITE QUEUE
(upstream) (downstream)

The above figure shows queue's linkage with neighboring modules with links ( solid vertical arrows - --> or --X ) in both directions.
I can very well understand the flow of message from downstream to upstream direction. But according to the manual each queue locates it mates ( see dotted line ) .
My question is I am not able to understand why such a relation is required or else I am completely wrong ?

Thanks in advance.

Last edited by S.P.Prasad; 05-23-2002 at 01:37 AM..
# 4  
Old 05-23-2002
I wanted to refer to my Streams Docs before I answered this. I found the answer in UNIX SYSTEM V RELEASE 4 Programmer's Guide: Streams. On page 3-4 on my book it has the diagram you show together with some qinit stuff.

I suspect that your book may be similiar to mine. My chapter 4 is STREAMS Processing Routines. On page 4-4, the Asynchonous Protocol Stream Example starts. A few pages in I have:
Quote:
CHARPROC causes the echo to be transmitted back to the terminal by first copying the message with a STREAMS utility routine. Then CHARPROC uses another utility routine to obtain the address of its own write queue. Finally, the CHARPROC read put procedure uses another utility routine to call its write put procedure and pass it the message copy.
# 5  
Old 05-24-2002
Sir, I am referring SCO Streams Runtime Systems Release and Installation Notes Manual - Streams Programmers Guide.

The diagram, which I have designed in my previous message, exists in Chapter 5 page 3.

Sir, could you explain me some basics concepts of Streams Scheduler with reference to queues. What is a Scheduling queue?

I found out that the q_link member of queue_t structure actually holds link to the queue scheduler. Kindly explain the scheduling operations.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

File Read and Write

I have got a file in following format: AAAAAAA BBBBBBBB CCCCCCC DDDDDDD I am trying to read this file and out put it in following format: AAAAAAA,BBBBBBB,CCCCCCC,DDDDDD Preferred method is shell or Perl. Any help appreciated. (11 Replies)
Discussion started by: Araoki
11 Replies

2. UNIX for Dummies Questions & Answers

Read data from given filename or stream

I have a script that takes 2 parameters (say) as mandatory script1.sh a b The 3rd parameter can be filename which it should process or it can come through a pipeline stream The script should work both ways: script1.sh a b filec or cat filec | script1.sh a b How to put logic in the... (1 Reply)
Discussion started by: ysrini
1 Replies

3. Programming

Need help about read() and write() on TCP/IP

HI I need to implement a client/server TCP application. the customer is the client and the bartender is the server. When the customer enter the Bar, client connects to the server Server should reply the client immediately. Other wise if the server is busy, it should send an update message... (10 Replies)
Discussion started by: lixiao1212
10 Replies

4. IP Networking

write() / read() syntax

hi am newbie to unix and socket programing I am trying to figuring out syntax for read and write to send data from server to client and client can read it I have to send two integers write(newsockfd,buffer,"%d %d",x,y,0) writing from client where x and y are two integers.. ... (7 Replies)
Discussion started by: karthik1238
7 Replies

5. Shell Programming and Scripting

[Video stream] network stream recording with mplayer

Hi I used this command: mplayer http://host/axis-cgi/mjpg/video.cgi -user root -passwd root \ -cache 1024 -fps 25.0 -nosound -vc ffh264 \ -demuxer 3 -dumpstream -dumpfile output.avi It's ok but... Video Playing is very fast! Why? Is it a synch problem? What parameter I have to use for... (1 Reply)
Discussion started by: takeo.kikuta
1 Replies

6. IP Networking

read/write,write/write lock with smbclient fails

Hi, We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies

7. Programming

read() blocks process until the stream is closed

Hi @all, i really stuck in programming a tool with bidirectional process communication (popen(cmd, "rw") ... something like that ;-)). Here is the code: if(pipe(p_stdin) != 0 || pipe(p_stdout) != 0) { fprintf(stderr, "Aufruf von pipe() schlug fehl.\n"); exit(1); } ... (6 Replies)
Discussion started by: jens.g
6 Replies

8. Programming

read/write files

Hi all, I have a problem with some read/write functions. I have a .bin file which contains a lot of structures as follows: struct alumno { char id; char apellido1; char apellido2; char nombre; float nota1p; float nota2p; float notamedia; char photofilename; }; What I have... (3 Replies)
Discussion started by: Attenea
3 Replies

9. Shell Programming and Scripting

Find all files with group read OR group write OR user write permission

I need to find all the files that have group Read or Write permission or files that have user write permission. This is what I have so far: find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}' It shows me all files where group read = true, group write = true... (5 Replies)
Discussion started by: shunter63
5 Replies

10. Shell Programming and Scripting

read and write from a file

I have tried to show the file name whose size is greater than 200 byte in current directory. Please help me. ls -l | tr -s " " " " | cut -f 5,9 -d " " >out.txt #set -a x `cat out.txt` i=0 `cat out.txt` | while do read x echo $x #re=200 j=0 if }" < "200" ] then echo $j j=`expr $j... (2 Replies)
Discussion started by: rinku
2 Replies
Login or Register to Ask a Question