Patent ID: 7266825

Claim:
An operating system for a computer, comprising: a buffer class comprising a buffer and buffer service programs; and threads that are synchronized by the buffer class using a plurality of processors comprising algorithms for: running the threads of the computer program in parallel on one or more processors of computers in a computer network; generating data by a producer thread for a different thread; writing the data produced by the producer thread into buffer sections of a buffer in a write operation; reading the data generated by the producer thread by a read thread from the buffer in a read operation; controlling the write operations of the producer threads and the read operations of the read threads with buffer section flags that are set by buffer service programs; controlling the write operations and the read operations of a corresponding buffer section with a buffer section flag of the buffer section; preventing a simultaneous access to the buffer section flags for a second buffer service program during an access of a first buffer service program of the buffer by way of a standard function of the operating system employed; storing information related to a size of a buffer section along with its buffer section flags permitting individual buffer sections to have different sizes; performing a pointer query for information related to a buffer section by a buffer service program; outputting, by at least one of the buffer service programs, a read pointer or a write pointer to the respective thread in response to a corresponding pointer query, wherein the read pointer is related to an address of a start of the readable buffer section and the write pointer is related to an address of a start of the writable buffer section; processing a query about a specific size of the buffer section available for the writing or for the reading; and while a buffer section having the necessary size is not available, repeatedly performing the following: executing a wait procedure; and rechecking whether a buffer section having the necessary size is available.