русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Процессы Windows


Дата добавления: 2013-12-23; просмотров: 811; Нарушение авторских прав


Порождение процессов UNIX. Запуск программ на выполнение.

Создание процессов и потоков.

Создать процесс это, прежде всего, означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе, необходимые операционной системе для управления им. В число таких сведений могут входить например идентификатор процесса, данные о расположении в памяти исполняемого модуля, степень привилегированности. В Unix-e это называется дескриптором процесса, в NT – объект-процесс (object-process).

В Unix процесс имеет следующие атрибуты:

  1. программный код
  2. внутренние данные(переменные , массивы, объекты и т.д.)
  3. индентификаторы процесса - идентификатор процесса предка - идентификатор группы процесса
  4. реальный и эффективный идентификаторы пользователя и гр. Пользователя.
  5. список групп доступа
  6. информация об открытых файлах
  7. текущий каталог

При управлении процессами операционная система использует два основных типа информационных структур: дескриптор процесса и контекст процесса.

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

Новые процессы UNIX создаются только путем создания дубликата текущего процесса с помощью системного вызова FORK.

Схема создания нового процесса:

shell

|

fork – системный вызов предназначен для порождения нового процесса

/ \

процесс-потомок родитель(shell)

| |

exec wait



| /|\

exit -> ------/

 

 

после того как к wait поступает сигнал от exit, shell корректно удаляет процесс-потомок.

В случае сбоя о потомке будет заботиться init

Новый процесс получает от исходного всю информацию, в том числе информацию об открытых файлах.

Однако три файла вновь открываются автоматически: Stdin – стандартный ввод, Stdout – стандартный вывод, Stderr – файл диагностических сообщений.

У каждого процесса есть есть 4-х гигабайтное адресное пространство(32 разряда) в котором пользователь занимает 2 гигабайта (однако это может быть до 3-х ГБ увеличено настройкой) а операционная система занимает оставшуюся часть. Т.о. операционная система присутствует в адресном пространстве каждого процесса, хотя она защищена от изменений с помощью аппаратного блока управления памятью MMU. У процесса есть идентификатор процесса, один или несколько потоков, список дескрипторов и маркер доступа, хранящий информацию защиты. Процессы создаются с помощью вызова Win32, который принимает на входе имя исполняемого файла, определяющего начальное содержимое адресного пространства, и создает первый поток. Потоки могут создаваться динамически в процессе работы. Когда поток завершает свою работу, он может прекратить свое существование, процесс же завершается с завершением последнего активного потока.

Т.к. переключение потоков в Win2k занимает много времени (переключение в режим ядра а затем возврат в режим пользователя), то есть более простой механизм но обеспечивающий псевдопараллелизм – волокна, подобны потокам но планируемые в пространстве пользователя создавшей их программой. У каждого потока может быть несколько волокон, так же как у процесса может быть несколько потоков, с той разницей, что когда волокно логически блокируется, оно помещается в очередь блокированных волокон, после чего для работы выбирается другое волокно в контексте того же потока. ОС не знает о смене волокон, так как все тот же поток продолжает работу.

Необходимые параметры для системного вызова CreateProcess

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


<== предыдущая лекция | следующая лекция ==>
Сигналы. | Каталоги Unix


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.276 сек.