Кіріспе

Жоспарлау алгоритмі, кезекке енгізілген алғашқы дерек алдымен өңделеді. Компьютерлік техника және жүйелер теориясында, "бірінші кірген, бірінші шықты" (FIFO) – дерек құрылымын (әсіресе, дерек буферін) өңдеуді ұйымдастыру әдісі. Бұл әдіс кезектегі ең ерте (бірінші) жазбаны немесе "кезектің басын" алдымен өңдейді. Мұндай өңдеу, кезек аймағындағы адамдарға "бірінші келген, бірінші қызмет көрсетілді" (FCFS) принципі бойынша қызмет көрсетуге ұқсас, яғни олар кезектің соңына келген тәртіппен өңделеді. FCFS сонымен қатар FIFO операциялық жүйе жоспарлау алгоритмі үшін қолданылатын термин, ол әрбір процеске орталық процессор (CPU) уақытын талап етілген ретімен береді. FIFO-ның керісі – LIFO ("ең соңғы кірген, бірінші шықты"), онда ең жаңа жазба немесе "стектің жоғарғы бөлігі" алдымен өңделеді. Басымдық кезегі FIFO немесе LIFO емес, бірақ уақытша немесе әдепкі бойынша осыған ұқсас мінез-құлықты көрсетуі мүмкін. Кезек теориясы осы дерек құрылымдарын өңдеу әдістерін, сондай-ақ қатаң FIFO кезектері арасындағы өзара әрекеттестікті қамтиды.

Электроника

FIFO-лар электрондық тізбектерде аппараттық және бағдарламалық құралдар арасындағы буферлеу және ақын ағынын басқару үшін жиі қолданылады. Аппараттық түрінде FIFO негізінен оқу және жазу көрсеткіштерінен, жад және басқару логикасынан тұрады. Жад статикалық кездейсоқ кіру жады (SRAM), триггерлер, құлыптар немесе жадтың кез келген басқа да қолайлы түрі болуы мүмкін. Ылғалды өлшемдері емес, айтарлықтай көлемдегі FIFO-лар үшін әдетте екі портты SRAM қолданылады, онда бір порт жазуға, ал екіншісі оқуға арналған. Электроникада алғашқы FIFO-ны 1969 жылы Fairchild Semiconductor компаниясында Питер Альфке жасаған. Кейін Альфке Xilinx компаниясының директоры болды.

Қалып белгілері

FIFO мәртебе белгілерінің мысалдары: толық, бос, дерлік толық және дерлік бос. FIFO бос деп есептеледі, егер оқу адресінің тіркелгіші жазу адресінің тіркелгішіне жеткенде. FIFO толық болады, егер жазу адресінің тіркелгіші оқу адресінің тіркелгішіне жеткенде. Оқу және жазу адрестері бастапқыда бірінші жад орнында болады, ал FIFO кезекшесі бос болады. Екі жағдайда да оқу және жазу адрестері тең болады. Бұл екі жағдайды ажырату үшін қарапайым және сенімді шешім – әр оқу және жазу адресіне бір қосымша бит қосу, ол адрестің айналып келген сайын инверсияланады. Мұндай орналымда ажырату шарттары: Оқу адресінің тіркелгіші жазу адресінің тіркелгішіне тең болса, FIFO бос болады. Егер оқу және жазу адресінің тіркелгіштері тек ең маңызды бит бойынша ғана ерекшеленсе, ал қалғандары бірдей болса, FIFO толық болады.