FIFO

**FIFO** е акроним за прв внатре, прв надвор, апстракција на начини на организирање и манипулирање на податоци во однос на времето и приоритизацијата. Овој израз го опишува принципот на техниката чекање за обработка или сервисирање конфликтните барања од страна на  процес : кој прв дојде, прв зема (FCFS) однесување: она што доаѓа  прво се ракува прво, што доаѓа следно чека да заврши тоа прво што дошло, итн.
Така  аналогно на однесувањето на лицата како стојат во ред, каде што лицата го напуштаат редот како што пристигнуваат, или пак чекање семафорот да се упали во наша корист. FCFS е исто така  акроним за FIFO оперативниот систем за закажување  алгоритам, кој му дава на секој процес, процесорско време како што  тие доаѓаат. Во поширока смисла на зборот, на апстракција LIFO, или Последен Внатре, Прв Надвор е спротивно на апстракција FIFO организација, разликата е можеби најјасна со оглед на тоа што  поретко користениот синоним за LIFO, FILO - кој значи Прв Внатре, Последен Надвор. Во суштина, и двете се специфични случаи на повеќе генерализирана листа (која може да се пристапи насекаде). Разликата не е во списокот (податоци), туку во  правилата за пристап до содржината. Една под-тип додава на едниот крај, а одзема од другиот крај, нејзината спротивност ги зема и ги става работите само на едниот крај [1].
Приоритетен ред е варијација на редот, кој не се квалификува за името FIFO, бидејќи тоа не е точно опис на однесувањето на податочната структура. Редиците ја  опфаќаат теоријата на повеќе генералниот концепт на задачата, како и интеракциите помеѓу строгите-FIFO редици.

## Податочни Структури

Во компјутерските науки овој термин се однесува на начинот на кој податоците складирани во редот се обработени. Секој предмет во долгиот ред е снимен во редица (simpliciter) податочна структура. Првиот податок што ќе биде додаден е и првиот податок кој ќе биде отстранет , потоа обработката продолжува секвенцијално по ист редослед. Ова е типично однесување за ред.

Типична податочна структура изгледа:


```c
struct fifo_node 
{
  struct fifo_node *next;
  value_type value;
};

class fifo
{
  fifo_node *front;
  fifo_node *back;

  fifo_node *dequeue(void)
  {
    fifo_node *tmp = front;
    front = front->next;
    return tmp;
  }

  queue(value)
  {
    fifo_node *tempNode = new fifo_node;
    tempNode->value = value;
    back->next = tempNode;
    back = tempNode;
  }
};
```


## "Глава" или "Опашка"

Контроверзноста околу термините "глава" и "опашка" постои во однос на FIFO редици. За многу луѓе, податоците треба да влезат во редот од кај "опашката", останувајќи на список на чекање сè додека не стигнат до "главата " . Оваа гледна точка е оправдано, по аналогија со редици на луѓе кои чекаат за некој вид на услуга и паралелно на употребата на "напред"и "назад" во примерот погоре. Други луѓе веруваат дека податоците треба да се внесат во редот од кај „главата“ и да се складира кај „опашката“. Редици напишани на тој начин се појавуваат во места каде што може да се сметаат авторитетни, како што е оперативниот систем ГНУ / Линукс.

## Комуникации и мрежи

Комуникациони мостови, насочувачи и преклопници користат во компјутерските мрежи употреба на  FIFO за да се одржат податоците во пакети на патот кон нивното следено одредиште. Обично, барем една FIFO структура се користи за мрежна врска. Некои уреди користат повеќе FIFOs за симултано и независно складирање во редици различни типови на информации.
Communications and networking

Категорија:Кибернетика