Vorige                       Titel                            Volgende
______________________________________________________________________


        - A bit wich indicates if this task is approved or not.
	- The bit wich indicates if a lower prioritylevel is following.
	- A bit to indicate if this task was interrupted during a
	  systemcall. If this is so the restarting of the task is
	  a litte bit different from normally.

---------------
At this point a new cell starts. The reason for this is that the
following cell is the first element of the UFIlist and it is easier
if the startingaddress is standardised.

An element of the UFIlist contains:
- A link to the next element of the UFIlist.
- A link to the UFI in wich data is written if the task uses this
  number to write to
- A link tot the UFI from wich data is read if the task uses this
  number to read from
- The status. This is not defined yet and not needed yet. It is
  reserved for later expansion.


The first element of the UFIlist follows the TIB. This was done to
decrement the number of links in the system and that way speed it up.
The first element is number 0, the next 1 etc. etc. These numbers
are used by the task to refer to the UFI's
For every number there are two UFI's. One to read from and one to
write to. Number 0 are the standard in and the standard out UFI's.
The UFI's represented by one number may be the same.


The UFI's are stored in the following way.

Every UFI has a Ufi Controll Block or UCB. The data itself is stored
in datablocks.

An UCB contain:

- A link to the TIB if it's owner.
- A link to the TIB of it's read task.
- A link to the TIB of it's write task.
- The number of pointers or links wich point to this UCB. This number
  is kept updated all the time and if it is decremented to zero the
  UFI is killed.As noone knows where to find the UFI it isn't useful
  any more.
- A link to the last datablock. This is the datablock in wich the
  last byte of the contents of the UFI is stored.
- An index in that last datablock. This index tells the system what
  byte in the datablock is the last byte of the UFI.
- An index in the first datablock of the UFI telling the system where
  to find the first byte of the UFI in that datablock.
- A link to the datablock in wich the 'current' pointer is poining.
- An index in that datablock to what byte the currentpointer is pointing.

Following this UCB is the first datablock. It starts at the beginning
of a new cell. It contains:
- A link to the next datablock.
- A number of bytes data. (normally 254)
  In the first datablock the first few bytes may not belong to the
  contents of the UFI. In the last datablock the last few bytes
  may not belong to the UFI.

______________________________________________________________________

Vorige                       Titel                            Volgende