Получите скрипт для расширения шины в отдельные порты:

Solaris может более или менее читать вперед. В отличие от Linux, Solaris полностью динамичен в ядре и решает, что делать, в зависимости от ограничений и доступной памяти ядра.

Существует также упреждающее чтение, которое контролируется файловой системой, и может быть другой кеш, чем исторический кеш, если вы используете, например, ZFS.

Для лучшего ответа было бы важно, действительно ли вам нравится читать буферизованные устройства, что не выглядит разумным, и было бы важно знать, почему вы хотите узнать что-то о деталях реализации.

Обычно в Solaris вызовы read () к буферизованному фоновому хранилищу преобразуются в копию временной области отображения отображения ядра. В 32-битном ядре IIRC эта переходная область отображения составляет 2 МБ, в 64-битных ядрах она больше. Операции упреждающего чтения реализуются посредством запускаемых вручную вызовов сбоя, которые устанавливаются соответствующим драйвером сегмента (драйвером, который находится между виртуальной памятью переднего плана и фоновой памятью).AFAIK, единственное доступное описание есть в моей дипломной работе WOFS. По этой причине его использовали сотрудники Sun.

Для лучшего понимания полезно знать историческую подоплеку:

28 лет назад SunOS-4.0 была опубликована с новой подсистемой виртуальной памяти. Все современные ОС копируют как минимум идею mmap () из SunOS-4.0. SunOS-4.0, однако, представляет собой нечто большее, поскольку реализует объектно-ориентированную подсистему виртуальных машин.

Есть виртуальная память переднего плана, драйвер сегмента, уровень HAL (MMU) и фоновое хранилище.

В зависимости от типа объекта памяти переднего плана и типа фонового объекта существует специальный драйвер сегментации.

Если у вас есть файловая система в качестве объекта переднего плана и дисковое хранилище в качестве фоновой памяти, драйвер сегмента называется seg_vn . Если у вас есть сопоставление с устройством, используется sev_dev .

Чтобы понять, что опережение чтения зависит от объекта, вы можете проверить ufs_vnops.c и найти ufs_getpage_ra () .

0
11.11.2018, 02:53
2 ответа

Это довольно неэлегантно, но

perl -lne '
  ($a,$b) = ($2 == "" ? $1 : $2,$1) if /\[(\d+)(?:\:(\d+))?\]/; 
  for $n (reverse $a..$b) {
    print s/\[.*?\]/"[$n]"/re
  }
' file
0
28.01.2020, 04:09

Попробуйте также

$ awk '{split ($1, T, "[][:]"); for (i=T[3]?T[3]:T[2]; i<=T[2]; i++) {$1 = T[1] "[" i "]"; print}}' OFS="\t"  file3
signal_a[74]        No      No      No      INPUT
signal_a[75]        No      No      No      INPUT
signal_a[76]        No      No      No      INPUT
signal_a[77]        No      No      No      INPUT
signal_a[78]        No      No      No      INPUT
signal_a[79]        No      No      No      INPUT
signal_b[81]        No      No      No      INPUT
signal_b[82]        No      No      No      INPUT
signal_b[83]        No      No      No      INPUT
signal_c[91]        No      No      No      INPUT
0
28.01.2020, 04:09

Теги

Похожие вопросы