Потоки
В ОС понимание концепции потоков является фундаментальным для работы с командной строкой и написания эффективных скриптов. Потоки подразумевают каналы передачи данных между программами. Потоки предоставляют механизм обмена данными между программами и обеспечивают важный способ передачи информации внутри Системы.
Общие понятия потоков описываются следующими возможностями:
- Стандартные потоки:
- Стандартный ввод (stdin) – поток данных, который принимает ввод от пользователя (например, с клавиатуры) или других программ.
- Стандартный вывод (stdout) – поток данных, который представляет собой вывод программы и обычно отображается в терминале.
- Стандартный поток ошибок (stderr) – поток данных, используемый для вывода сообщений об ошибках и предупреждений.
- Потоки ввода и вывода:
- Поток ввода (Input Stream) – источник данных, из которого программа читает информацию, например stdin.
- Поток вывода (Output Stream) – канал, в который программа выводит результаты, например stdout и stderr.
- Перенаправление потоков:
- Перенаправление ввода (<) – изменение источника данных для программы, используя данные из файла вместо stdin.
- Перенаправление вывода (>) – запись вывода программы в файл вместо stdout.
- Перенаправление ошибок (2>) – перенаправление сообщений об ошибках в файл вместо stderr.
Например, возможен случай, при котором содержание текущего каталога должно не отображаться на экране, а сохраняться в файле. Таким образом, стандартный вывод должен переадресовываться в настоящий файл. В bash это делается с помощью символа ">":
ls *.txt > content.txt
В файл content выведен список всех текстовых файлов, расположенных в текущем каталоге. Чаще всего применяется именно такой способ переадресации вывода.
Есть еще два варианта:
2> файл– переадресовывает сообщения об ошибках в указанный файл;>& файлили&> файл– переадресовывают в указанный файл и сообщения об ошибках, и программный вывод.
Если использовать вместо > двойной символ >>, то весь ввод дописывается в конец уже имеющегося файла.
Переадресация ввода осуществляется с помощью < файл: команды, ожидающие ввода с клавиатуры, считывают ввод из указанного таким образом файла.
Следует обратить снимание, что невозможно одновременно обрабатывать файл и записывать в него получаемый результат.
Команды вида:
sort dat > dat
или
sort < dat > dat
приводят к удалению файла dat.
Возможности переадресации ввода и вывода приведены ниже (Таблица 5).
В ОС РОСА "ХРОМ" новый процесс создается путем копирования атрибутов текущего процесса. Новый процесс может быть клонирован и при этом такие ресурсы, как файлы, обработчики сигналов и виртуальная память, используются совместно. Если два процесса пользуются одной и той же виртуальной памятью, они функционируют как потоки в рамках одного и того же процесса. Однако для потоков структуры данных отдельно не задаются. Таким образом, в ОС РОСА ХРОМ потоки и процессы не различаются.
Более подробный разбор потоков приведен в п. Общие сведения.