Кіріспе

Бинарлық сандар тізбегі – компьютерлік ғылымдағы көбірек теориялық ұғым. Дерек ағындары.

Бит ағыны (немесе бит ағындары), сондай-ақ бинарлық тізбек деп те аталады, биттер тізбегі болып табылады. Байт ағыны – байттар тізбегі. Әдетте, әрбір байт 8 биттен тұрады, сондықтан октет ағыны термині кейде қолданылады. Октат 8 биттің тізбегі түрінде әр түрлі жолдармен кодталуы мүмкін (биттік нөмірлеуді қараңыз), сондықтан байт ағыны мен бит ағыны арасында бірегей және тікелей сәйкес келу болмайды. Бит ағындары мен байт ағындары телекоммуникация және есептеу техникасында кеңінен қолданылады. Мысалы, синхронды бит ағындары SONET арқылы тасымалданады, ал Трансмиссиялық басқару протоколы асинхронды байт ағындарын тасымалдайды.

Байттесттер ағынымен байланыс

Іс жүзінде, бит ағындары байт ағындарын тікелей кодтау үшін қолданылмайды; байланыс арнасы тікелей биттерге аударылмайтын сигнализация әдісін пайдалануы мүмкін (мысалы, бірнеше жиіліктегі сигналдарды беру арқылы), және әдетте деректерімен бірге фреймдеу және қателерді түзету сияқты басқа да ақпаратты кодтайды.

Мысалдар

Биттік ағын термині көбінесе далалық бағдарламаланатын қақпалар массивіне (FPGA) жүктелетін конфигурациялық деректерді сипаттау үшін қолданылады. Көптеген FPGA байттық параллельді жүктеу әдісін де қолдайтын болса да, бұл қолданыс FPGA-ны көбінесе сериялық биттік ағыннан, әдетте сериялық PROM немесе флэш-жад чипінен конфигурациялаудың кең таралған әдісіне байланысты болуы мүмкін. Нақты FPGA үшін биттік ағынның толыққанды форматы әдетте FPGA өндірушісіне тиесілі болып табылады. Математикада, біттердің бірнеше шексіз тізбектері олардың математикалық қасиеттері үшін зерттелді; оларға Баум-Свит тізбегі, Эренфюхт-Мицельский тізбегі, Фибоначчи сөзі, Колакоски тізбегі, қалыпты қағаз бүктеу тізбегі, Рудин-Шапиро тізбегі және Тью-Морзе тізбегі жатады. Unix және Windows сияқты көптеген операциялық жүйелерде стандартты I/O кітапханалары төменгі деңгейдегі беттелген немесе буферленген файлдық қол жеткізуді байттық ағын парадигмасына түрлендіреді. Атап айтқанда, Unix сияқты операциялық жүйелерде әрбір процесс үш стандартты ағынға ие, олар бір бағытты байттық ағынның мысалы болып табылады. Unix құбыр механизмі әртүрлі процестер арасында байттық ағынмен байланыс құрады. Сығу алгоритмдері көбінесе биттік ағындарда кодтайды, себебі байт (жадтың ең кішкентай адрестелетін бірлігі) ұсынатын 8 бит пайдасыз болуы мүмкін. Көбінесе төменгі деңгейдегі тілдерде іске асырылса да, Python және Java сияқты кейбір жоғары деңгейдегі тілдер биттік ағын I/O үшін туылған интерфейстерді ұсынады. Клиенттерге байттық ағын қызметін ұсынатын байланыс протоколының белгілі бір мысалы – Интернет протоколы жиынтығының Трансмиссиялық басқару протоколы (TCP), ол екі бағытты байттық ағынды қамтамасыз етеді. Кез келген байттық ағын үшін Интернет медиа типі: Белгілі форматтағы байттық ағындар үшін басқа медиа түрлері анықталған.

Ағындылықты басқару

Байт ағынының мазмұны көбінесе динамикалық түрде жасалады, мысалы, пернетақтадан және басқа да сыртқы құрылғылардан (/dev/tty), псевдокездейсоқ сан генераторынан (/dev/urandom) алынған деректер және т.б. Мұндай жағдайларда, байт ағынының тұтынушысы (мақсаты) байттарды олар жасалатыннан гөрі жылдам пайдаланса, жүйе келесі байт қолжетімді болғанша күте тұру үшін процестерді синхрондауды қолданады. Егер байттар тұтынушыдан гөрі жылдам жасалса және өндіруші бағдарламалық алгоритм болса, жүйе сол процестерді синхрондау әдістерімен оны тоқтатады. Егер өндіруші ағынды басқаруды қолдайтын болса, жүйе тұтынушы келесі байтқа дайын болғанда ғана дайындық сигналын жібереді. Егер өндірушіні тоқтату мүмкін болмаса – пернетақта немесе ағынды басқаруды қолдамайтын кейбір аппараттық құрылғылар – жүйе әдетте тұтынушы дайын болғанға дейін деректерді уақытша сақтауға тырысады, әдетте кезек арқылы. Көп жағдайда қабылдағыш буфер толып қалмас бұрын оны босата алады. Буфер толып қалғаннан кейін де, тұтылатыннан гөрі жылдам деректерді өндіре беретін өндіруші, қажетсіз буфер асығып толуына, пакеттердің жоғалуына, желілік тығырыққа және қызметтен бас тартуға алып келеді.