Список информации HBA-адаптеров в ОС Solaris 11

С помощью bash вы можете заставить файловый глоббинг отказаться от __pycache__, установив:

$ export GLOBIGNORE=__pycache__

Теперь, если вы выпустите:

$ ls __*
ls: cannot access __*: No such file or directory

Также с bash Вы можете использовать переменную окружения FIGNORE для пропуска суффиксов файлов. Это можно использовать для некоторой фильтрации каталога...

$ mkdir __pycache__
$ export FIGNORE=__pycache__

Тогда при выдаче:

$ ls __tab

будет завершен файл

$ ls __pycache__

Однако если он имеет префикс (например, с помощью пути):

$ ls ./__tab

он не будет завершен.

Вы можете использовать псевдоним grep для исключения каталогов __pycache__:

alias grep='grep --exclude-dir="__pycache__"'

Вы также можете использовать ответ Мадхавана Кумара для изменения завершения grep и других команд, которые вы хотите фильтровать, но не забывайте, что они должны быть определены в rc-файле и использованы после использования bash_completion, чтобы применить ваши переопределения.

FIGNORE
    A colon-separated list of suffixes to ignore when performing filename 
completion (see READLINE below). A filename whose suffix matches one of 
the entries in FIGNORE is excluded from the list of matched filenames. A 
sample value is ".o:~". 

GLOBIGNORE
    A colon-separated list of patterns defining the set of filenames to
    be ignored by pathname expansion. If a filename matched by a pathname 
    expansion pattern also matches one of the patterns in GLOBIGNORE, it is 
    removed from the list of matches. 
0
15.10.2018, 19:49
1 ответ

Copy on Write реализован на основе implicit interrupt, сгенерированногоMMU(Блоком управления памятью ). Примеры причин ошибки страницы следующие.

page faultтакже является неявным прерыванием, сгенерированным MMU, но оба они НЕ одинаковы. Ниже приведены некоторые причины ошибки страницы.

Недопустимый доступ к памяти:Ошибка page faultвозникает, когда страница, требуемая пользовательским процессом, отсутствует в памяти. Page faultможет произойти, если процесс хочет получить доступ к виртуальному адресу, который ему не выделен (, широко известный какsegmentation fault). Или это может произойти, если страница выгружена.

Копирование при записи:Одной из причин для page faultявляется Copy On write. Во время системного вызова fork ()ОС выделяет одну и ту же память как для дочернего, так и для родительского и помечает память как прочитанную -. Это экономит огромный штраф за копирование. Предположим, что ребенок вызывает execсразу после fork. Если бы копирование при записи не использовалось, вся скопированная страница была бы сброшена во время exec. Когда родитель или ребенок пытаются писать на этой странице, возникает ошибка страницы. Затем ОС выделяет новую страницу и снимает ограничения только для чтения -.

Копирование по требованию:Другой причиной для page faultявляется copy on demand. Когда пользовательский процесс запрашивает новую страницу в своем диапазоне виртуальных адресов, ОС может выделить виртуальный адрес без выделения соответствующего ему физического адреса. Когда процесс пытается получить доступ к этой странице, он генерирует ошибку страницы. Затем ОС выделяет физическую страницу, соответствующую виртуальной странице.

Таким образом, сбой страницы может НЕ требовать выделения новой страницы(в случае, когда она генерируется из-за ошибки ). Но если ошибка страницы требует новой страницы, страница поступает из того же пула страниц, из которого страница поступает в копию сервера при записи.

Реализация

mallocне связана с copy on write.

ПРИМЕЧАНИЕ Операционная система может работать без Copy on Writeи Copy on Demand. Хотя это не будет хорошо работать.Но page faultмеханизм необходим ОС для поддержки `подкачки'

2
28.01.2020, 02:14

Теги

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