Новые книги

Маркетеры, руководители компаний и предприниматели часто не знают о новых и революционных инструментах маркетинга. А если знают, то не решаются первыми попробовать их. И напрасно. Если новое сделает ваш маркетинг хоть немного эффективнее, то вам обеспечены и рост бизнеса, и прибыль. В этой книге специалисты по инновационному маркетингу собрали «горячую десятку» новых и революционных технологий, услуг, сервисов и инструментов маркетинга. Для каждого варианта есть краткое описание, основные преимущества, стоимость, сложность реализации, сроки, примеры из практики, результаты и «фишки». Попробуйте – удивите клиентов, конкурентов, отрасль. И удивитесь результатам сами.
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.

Для начинающих Linux-программистов

Контекст процесса

 

Контекст процесса

Каждому процессу соответствует контекст, в котором он выполняется. Этот контекст включает содержимое пользовательского адресного пространства - пользовательский контекст (т.е. содержимое сегментов программного кода, данных, стека, разделяемых сегментов и сегментов файлов, отображаемых в виртуальную память), содержимое аппаратных регистров - регистровый контекст (таких, как регистр счетчика команд, регистр состояния процессора, регистр указателя стека и регистров общего назначения), а также структуры данных ядра (контекст системного уровня), связанные с этим процессом. Контекст процесса системного уровня в ОС UNIX состоит из "статической" и "динамических" частей. У каждого процесса имеется одна статическая часть контекста системного уровня и переменное число динамических частей.

Статическая часть контекста процесса системного уровня включает следующее:

A.Описатель процесса, т.е. элемент таблицы описателей существующих в системе процессов. Описатель процесса включает, в частности, следующую информацию:

  • состояние процесса;
  • физический адрес в основной или внешней памяти u-области процесса;
  • идентификаторы пользователя, от имени которого запущен процесс;
  • идентификатор процесса;
  • прочую информацию, связанную с управлением процессом.

B. U-область (u-area), индивидуальная для каждого процесса область пространства ядра, обладающая тем свойством, что хотя u-область каждого процесса располагается в отдельном месте физической памяти, u-области всех процессов имеют один и тот же виртуальный адрес в адресном пространстве ядра. Именно это означает, что какая бы программа ядра не выполнялась, она всегда выполняется как ядерная часть некоторого пользовательского процесса, и именно того процесса, u-область которого является "видимой" для ядра в данный момент времени. U-область процесса содержит:

  • указатель на описатель процесса;
  • идентификаторы пользователя;
  • счетчик времени, которое процесс реально выполнялся (т.е. занимал процессор) в режиме пользователя и режиме ядра;
  • параметры системного вызова;
  • результаты системного вызова;
  • таблица дескрипторов открытых файлов;
  • предельные размеры адресного пространства процесса;
  • предельные размеры файла, в который процесс может писать;
  • и т.д.

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

[Предыдущая глава] [Оглавление] [Следующая глава]