У каждого процесса имеется
Переменные среды, как в следующем примере, создаются в большинстве оболочек командой export (или командой setenv в оболочке C shell):
$ export MYVAR='Hello world'
При предоставлении сессии командной оболочки, показывающей интерактивный ввод и вывод, текст ввода будет всегда выделяться полужирным шрифтом. Иногда в сессию будет включаться комментарий, выделенный курсивом, — в нем содержатся пояснения, касающиеся введенных команд или произведенного вывода.
Программы на языке C могут получать доступ к среде, используя внешнюю переменную (char **environ) и различные библиотечные функции, позволяющие процессу извлекать и изменять значения в его среде.
Переменные среды предназначены для различных целей. Например, оболочка определяет и использует ряд переменных, к которым можно получить доступ из сценариев и программ, выполняемых из оболочки. В число таких переменных входят HOME, указывающая путевое имя пользовательского каталога входа в систему, и PATH, указывающая список каталогов, в которых оболочка будет вести поиск программ, соответствующих введенным пользователем командам.
Каждый процесс потребляет ресурсы, например открытые файлы, память и время центрального процессора. Используя системный вызов setrlimit(), процесс может установить верхний предел своего потребления различных ресурсов. Каждый такой
Когда с помощью fork() создается новый процесс, он наследует копии настроек ограничений ресурсов от своего родительского процесса.
Ограничения ресурсов оболочки могут быть отрегулированы с использованием команды ulimit (limit в оболочке C shell). Эти настройки ограничений наследуются дочерними процессами, создаваемыми оболочкой для выполнения команд.
Системный вызов mmap() создает в виртуальном адресном пространстве вызывающего процесса новое
Отображения делятся на две категории.
•
• В противоположность первой категории,
Отображение в памяти одного процесса может совместно использоваться отображениями в других процессах. Это может произойти либо из-за того, что два процесса отображают в памяти одну и ту же область файла, либо по причине наследования дочерним процессом, созданным с помощью fork(), отображения в памяти от своего родительского процесса.
Когда два и более процесса совместно используют одни и те же страницы, каждый из них может видеть изменения, внесенные в содержимое страниц другим процессом, в зависимости от того, каким именно было создано отображение — закрытым или совместно используемым. Когда отображение является
Отображения в памяти служат для различных целей, включая инициализацию текстового сегмента процесса из соответствующего сегмента выполняемого файла, выделения новой (заполненной нулями) памяти, файлового ввода-вывода (ввода-вывода с отображением в памяти), обмена данными между процессами (через общее отображение в памяти).