концепция гнездо

Если сокет или FIFO, трубопроводы, терминалы, для нас, все является файлом, все течет. В ходе обмена информации, мы те передачи и прием операция потоков данных, называемые операции ввода / вывода (вход и выход), чтобы данные , поток чтения для чтения системного вызова, запись системного вызова запись. Но, говорят , что есть так много компьютерного потока, как я знаю , какой поток управлять им? Пара, где дескрипторы файлов, известные как FD, FD а является целым числом, так что операция целого числа, состоит в этот файл (поток). Мы создаем сокет, через системный вызов возвращает дескриптор файла, то остальная часть операции сокета будет преобразован в работу данного дескриптора. Не сказать , что это своего рода слоистую и абстрактного мышления.
Синхронный IO, это вызов , инициированный посредством пользовательского пространства и пространства ядра. IO синхронизация относится к пользователю космических потоками являются стороны для инициирования запросов ввода - вывода, ядро пространства является пассивным получателем.
Асинхронный IO, в свою очередь, означает , что ядро запрос инициирует ядро стороны IO нить пользователь является пассивным получателем.
Блокирование операций ввода - вывода, ссылаясь на необходимость завершения тщательной работы ядра ввода - вывода, прежде чем вернуться в пространство пользователя, выполнить операцию пользователя. Блокировка относится к статусу выполнения космической программы пользователя, пространство пользователю программы должен ждать операции ввода - вывода полностью завершен. Традиционные модели ввода - вывода являются синхронными блокировки ввода - вывода.
Неблокирования IO, относится к пользователю не нужно ждать операции ядра IO завершена, ядро немедленно возвращает значение состояния для пользователя, потребность пользователя не ждать пространства ядра операции ввода - вывода полностью завершена, пользователь может сразу же вернуться места, выполняемые пользователем операции, в неблокирующая состояние.
I / O мультиплексирование через механизм, вы можете контролировать несколько дескрипторов, когда дескриптор готов, программа может быть уведомлен о соответствующей операции.
Характер выбора на работу 32-битных целых 32, или 32 32 = 1024 идентифицируется, значение FD 1-1024. Когда значение FD более 1,024 предела, вы должны изменить размер FD_SETSIZE. На этот раз он может определить 32 макс диапазон значений FD.
Опрос и выбрать различные события через массив беспокойства pollfd передается ядру, она не описывает количество отборочных турниров, событий и revents pollfd поля для индикации соответственно событий , представляющего интереса и событий, так что массив требует только pollfd Он инициализируется один раз.
один вид или опрос оптимизации Epoll не нужно обходить все ФД возвращается, сохранить список дескриптором в ядре. выбрать и список опроса поддерживается в ядре режима пользователя, а затем передается ядру. И не опрос / выбрать разные, Epoll уже не один системный вызов, но epoll_create / epoll_ctl / epoll_wait состоит из трех системных вызовов, позже будет увидеть преимущества этого. Epoll поддерживается в ядре 2.6 позже.

рекомендация

отblog.51cto.com/3314808/2453524