Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

LINUX|| Процессы в ОС Linux. Общие понятия.

Читайте также:
  1. I. Общие компетенции.
  2. I. ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ
  3. I. ОБЩИЕ ПОЛОЖЕНИЯ
  4. I. ОБЩИЕ ПОЛОЖЕНИЯ
  5. I. ОБЩИЕ ПОЛОЖЕНИЯ
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ
  7. I. ОБЩИЕ ПОЛОЖЕНИЯ
  8. I. ОБЩИЕ ПОЛОЖЕНИЯ
  9. I. ОБЩИЕ ПОЛОЖЕНИЯ
  10. I. ОБЩИЕ ПОЛОЖЕНИЯ

Основными активными сущностями в ос Linux являются процессы. Процессы в Linux - классические, последовательные процессы. Каждый процесс выполняет одну программу и изначально получает один поток управления. У процесса есть один счетчик команд, который отслеживает следующую исполняемую команду. Linux позволяет процессу создавать дополнительные потоки. Также Linux представляет собой многозадачную систему, так, что несколько независимых процессов могут работать одновременно. У каждого процесса в Linux есть пользовательская часть, в которой работает программа пользователя, однако, когда один из потоков делает системный вызов, то происходит эмулированное прерывание с переключением в режим ядра. После этого поток начинает работу в контексте ядра с другой картой памяти, своим стеком ядра, счетчиком команд в режиме ядра и полным доступом ко всем ресурсам машины. Ядро ОC Linux внутренним образом представляет процессы как задачи при помощи структуры задач task_struct. Процесс с одним потоком представляется одной структурой задач, а многопоточный процесс будет иметь по одной структуре задачи для каждого из потоков пользовательского уровня. Само ядро является многопоточным и имеет потоки уровня ядра, которые не связаны ни с какими пользовательскими процессами и выполняют код ядра. Для каждого процесса в памяти находится его дескриптор типа task_struct. Он содержит важную информацию, необходимую ядру для управления всеми процессами. Дескриптор процесса создается при создании процесса. Для совместимости сдругими системами unix процессы в Linux идентифицируются при помощи идентификатора процесса PID (Process Identifier). Ядро организует все процессы в двунаправленный список структур задач. Информация в дескрипторе процесса подразделяется на следующие категории:

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

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

3) Сигналы (маски, указывающие, какие сигналы перехватываются, какие временно заблокированы, и какие находятся в процессе доставки).

4) Машинные регистры. Когда происходит эмулированное прерывание в ядро, то машинные регистры сохраняются здесь

5) Состояние системного вызова (здесь хранится информация о текущем системном вызове)

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

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

8) Стек ядра (фиксированный стек для использования той частью процесса, которая работает в режиме ядра)

9) Разное (текущее состояние процесса, ожидаемое процессом событие, PID процесса, идентификаторы родительского процесса, группы)

 

 


Дата добавления: 2014-12-19; просмотров: 8 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2019 год. (0.022 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав