Scheduling Queues: Help


 
Thread Tools Search this Thread
Top Forums Programming Scheduling Queues: Help
# 1  
Old 03-05-2011
Error Scheduling Queues: Help

I have a problem understanding the different scheduling queues (Ready Queue, I/O Queue, Job Queue) Can you please explain/illustrate/differentiate these queues to me? Thanks a lot guys.Smilie
# 2  
Old 05-26-2011
It's very easy to get lost in the terms people uses it on day today basis, however knowing who and where are they being used is the easiest way of keeping tab on these terms you mentioned.

Here are some of the basic info which I believe , might help you differentiating them. If someone find this information not up to date, your corrections are most welcome. Thanks

Ready Queues / Runqueues

The job of the scheduler is simple: choose the task on the highest priority list to execute and that list which the scheduler refers to is in the runqueue.

The Linux 2.6 scheduler runqueue structure describes that each CPU has a runqueue made up of 140 priority list that are serviced in FIFO order out of which 1-100 are real time task priorities and remaining 101-140 for user task priority.

As the number of queue is fixed (140) and is independent of the number of processes running.

This Queue is a list of task prioity listed as FIFO and per CPU a runqueue is associated with it. Each runqueue has 2 priority queue list "Active and expired runqueue".

In other way, Per Processor -> 2 Runqueue(Active/Expired) -> Each runqueue has an array of 140 priority entries(queues) -> one for each Priority/privilege level

When a task is on the active runqueue, execut in its time slice given by CPU to do the job and if it uses all of its CPU time slice and still not completed,then it's moved to the expired runqueue and its time sclice is recalculated and so does its priority.

If no tasks exist on the active runqueue for a given priority, the pointers for the active and expired runqueues are swapped, thus making the expired priority list the active one. That should atleast give the picture what it is. (If you are going further better have a look at the 2.6 scheduler designed and implemented by Ingo Molnar )

I/O Queue

Although most Linux users are familiar with the role of process schedulers,many users are not so familiar with the role of I/O schedulers. I/O schedulers are similar in some aspects to process schedulers; for instance, both schedule some resource among multiple users. It is well known that Linux implemented four types of I/O schedulers (noop/deadline/anticipatory/cfq) in Linux kernel 2.6.10.

Linux I/O scheduler also has a functionality to sort incoming I/O requests in its request-queue for optimization. Queue size is configurable and you can see the default Queue size in example bellow

Example:
rango@ubuntu:$ cat /sys/block/sda/queue/nr_requests
128

Have a look at the Linux I/O scheduler framework in Linux forums to get the idea where the queues are and how it enqueues and dequeues the I/O request and so on. There is a whole world out there, but this should do the trick at the moment.

Job Queue

Basically, job queues are old mainframe concept literally a queue, or line of people waiting to have their programs run. The generic term is still used now and then ,say cronjob where your program executes in the order you assign or just to give you the literal picture of it ...“Printers” . You can also see Linux provide facility like at, batch so on to queue the job. The internal working of the schedulers is publicity shy and works behind the scene, so its fair enough for this post to assume that your job will get done.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cleaning Message Queues

i have an application installed on AIX 5.3 and i have made a script that shutdown a proccesses that exceeded 10000kb of memory usage but i have a problem with cleaning the message queues of these proccesses after shutting them down. Is there any way to clean the message queues for this particular... (8 Replies)
Discussion started by: Portabello
8 Replies

2. UNIX for Dummies Questions & Answers

message queues

can any body provide a tutorial that explains the concept of message queues in UNIX in great detail (1 Reply)
Discussion started by: asalman.qazi
1 Replies

3. UNIX for Advanced & Expert Users

message queues

#include <sys/ipc.h> #include <sys/msg.h> int main() { int qid; int t; struct msgbuf mesg; qid=msgget(IPC_PRIVATE,IPC_CREAT); mesg.mtype=1L; mesg.mtext=1; t=msgsnd(qid,&mesg,1,0); printf("%d",t); } the program prints -1 as the result of msgsnd ,which means that msgsnd doesn't... (1 Reply)
Discussion started by: tolkki
1 Replies

4. BSD

Posix queues

Hi! Everybody%) I got a question like this: Does my FreeBSD5.1 support Posix queues. Thanks! (7 Replies)
Discussion started by: kamazi
7 Replies

5. UNIX for Dummies Questions & Answers

message queues

let 3 processes a, b and c are sharing msgs using msg queues.process 'a' sending msg to 'c' and in turn 'c' send sthat msg to 'b'.if something happens to c how can 'a' and 'b' know that 'c' is not available?????? (2 Replies)
Discussion started by: sukaam
2 Replies

6. Programming

Message queues

Hi all, I've been trying for hours to figure out how to turn my 2-program (one to send and one to receive) "chat system" using message queues, into a single program where each concurrent component (entity) will both send and receive messages. PLEASE give me a hand with this, I'm starting to... (9 Replies)
Discussion started by: mgchato
9 Replies

7. Linux

print queues

RH 7.2 Are there any commands to check the print queue status? Something along the lines of AIX's "qchk"? Thanks!! (2 Replies)
Discussion started by: jalburger
2 Replies

8. UNIX for Advanced & Expert Users

at queues

Hi, I submit some processes throught an at queue with the cmd at -q queue. I can easily check the waiting process with atq. But how can I check running processes within a specific queue ? Thanks, Stef (2 Replies)
Discussion started by: stef
2 Replies

9. UNIX for Dummies Questions & Answers

Print Queues

I have a print queue set up with the following options: remote, standard processing, Hostname=(A Windows 2000 Server), bsd print spooler. It takes about 1 minute to transfer a 100 kb file and it times out (downs the queue) on larger files. When tested on a different system at a different location... (2 Replies)
Discussion started by: Scottb7711
2 Replies
Login or Register to Ask a Question