Чернова:Стриймове
Това е чернова на статия от Инкубатора на българската Уикипедия.
ВАЖНО: Това не е енциклопедична статия. Инкубаторът се използва за създаване на статии от нови и неопитни потребители, както и в други случаи, когато статия не отговаря на критериите на Уикипедия. Възможно е информацията в тази страница да е невярна, тенденциозна или дори напълно неподходяща за Уикипедия. Информация за авторите на черновата
Причините за това най-вероятно са, че тя не отговаря на някои от изискванията на Уикипедия.
Прегледайте статиите в Портал:Избрани статии. В началото се фокусирайте върху качеството, а не върху количеството. Вижте следващите въпроси за повече подробности. Запомнете, че не всяка друга статия в Уикипедия непременно е качествена и подходяща като пример за следване. Понякога дори съвсем некачествени статии може да не са били забелязани от останалите редактори, затова не използвайте аргументи като „Защо тази статия може да я има, а моята – която е като нея – не може?“. Ако забележите некачествени статии, поправете ги или ги предложете за изтриване на У:СИ.
Още:
Полезно е също да имате предвид следните ръководства: Този списък също не е изчерпателен. Допълнителна информация конкретно за Инкубатора може да намерите в неговия регламент.
Полезна информация как да започнете статия има в следните страници:
Този шаблон се поставя автоматично от бот на всички статии в Инкубатора. Моля, не го премахвайте! |
Тази статия вероятно е резултат от машинен превод, има неверен синтаксис и/или неуточнени специални термини и трудно разбираем текст. Ако желаете да помогнете на Уикипедия, използвайте опцията редактиране в горното меню над статията, за да нанесете нужните корекции. |
Тази статия се нуждае от вниманието на редактор с по-задълбочени познания. Ако смятате, че имате необходимите знания, подобрете тази страница. |
За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. |
При комютърните мрежи, стриймовете (STREAMS) са вградената софтуерна рамка, в Unix System V. Стриймовете се използват за имплементиране на драйвъри, мрежови протоколи и междупрограмова комуникация. Стриймовете представляват верига изградена от секции от програми или процедури, които могат да подават данни за контрол към други програми. След подаване на данните, въпросната процедура или програма спира да работи, но във всеки един момент може да бъде инициализирана от мястото, на което е прекъсната. Стриймовете се използват за доставяне на съобщения между програма и драйвър (или две програми). Стриймовете се появяват за първи път във версия 8 на Research Unix.
Стриймовете представляват система от компоненти, които позволяват едновременно свързване в двете посоки между драйвърите на системата и тези на различните устройства. Най-често стриймовете се използват за поддържане на връзка между терминал и мрежови субсистеми, като по този начин терминалното устройство може едновременно да чете и променя дадена информация в определената инфорационна система. В System V Release IV, цялата терминална система бе пренаписана за използване на стриймове. Важна особеност на стриймовете е възможността да събира драйвърите заедно, като по този начин се образува клъстер. Няколко от тези драйвъри могат да бъдат свързани един към друг и в определен ред.
Технически характеристики
[редактиране | редактиране на кода]Във Version 7 Unix, командите бяха свързани към терминалите (клавиатура и монитор или клавиатура и принтер) посредством механизъм наричан редова дисциплина, която зарежда единствена линия от входящи данни, т.е. изчаква потребителя да натисне бутона „return“ преди да изпрати входящите данни към програмата. Този метод доставяше възможността за корекция на входните данни преди натискане „return“. Стриймовете замениха редовата дисциплина с низ от обработващи модули организирани в линейна верига, която позволява двойнопосочна комуникация между съседни модули. Програмите могат да поставят нов модул в края на веригата, за да променят поведението на терминала или други устройства. Денис Ричи дава примера на свързване на верига от модули за терминал с мрежовия модул Datakit, за да се постигне дистанционно свързване към мрежа. Освен символи/characters (байтове/bites) пътуващи от програма към устройство и обратно, стриймовете могат да пренасят и команди като „hangup“ (прекратяване на връзката) и ioctl (input/output control, контрол върху входно/изходните данни) съобщения.
Стриймовете могат също така да се използват и за вътрешно процесни съобщения, чрез връзка на два процеса към псевдотерминали. Тази възможност беше въведена за първи път в mpx window system (процес, при който няколко аналогови или дигитални сигнала се обединяват) за графичния терминал Blit, който може да възпроизвежда няколко терминални прозореца. Всеки прозорец беше процес, който комуникираше с window системата през псевдотерминал, който имаше инсталиран драйвър за редова дисциплина, изпращащ напечатани символи към прозореца и получаващ текст (или графика), които да възпроизведе. Контролни сигнали показваха желанията на потребителя дали да смени или затвори прозорците.
Фактическите стрийм модули са вградени в ядрото на Unix и се инсталират (pushed) и премахват (popped) от входно/изходните системни повиквания. За пример, за да се инсталира горе споменатата редова дисциплина към „file descriptor“ /fd/ (абстрактен индикатор използван за достъп до файл или входящ/изходящ ресурс) кореспондиращ с терминално устройство, трябва да се напише (в С).
Ioctl(fd, PUSH, TTYLD);
За да се работи с входящите/изходящите данни при стриймовете, трябва да се използват командите „read“ и „write“, заедно с обикновени „file descriptors“, или конкретни стрийм функции, за да се изпратят контролни съобщения. Денис Ричи призна, че съжалява, че е трябвало да вгради стриймовете в ядрото, а не в самите процеси, но е трябвало да се направи така, заради по-голямата ефективност. По-късен Plan 9 ъпдейт вгради модули като процеси, които да се контролират от потребителя.
Тази страница частично или изцяло представлява превод на страницата STREAMS в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. |