8820

Процессы и потоки (нити)

Контрольная

Информатика, кибернетика и программирование

Процессы и потоки (нити). 2.1 Процессы 2.1.1 Понятие процесса Процесс (задача) - программа, находящаяся в режиме выполнения. С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данн...

Русский

2013-02-17

130 KB

35 чел.

Процессы и потоки (нити).

2.1 Процессы

2.1.1 Понятие процесса 

Процесс (задача) - программа, находящаяся в режиме выполнения.

С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.

Адресное пространство содержит:

  •  саму программу
  •  данные к программе
  •  стек программы

С каждым процессом связывается набор регистров, например:

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

Во многих операционных системах вся информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в таблице процессов операционной системы.

Некоторые поля таблицы: 

Управление процессом

Управление памятью

Управление файлами

Регистры

Счетчик команд

Указатель стека

Состояние процесса

Приоритет

Параметры планирования

Идентификатор процесса

Родительский процесс

Группа процесса

Время начала процесса

Использованное процессорное время

Указатель на текстовый сегмент

Указатель на сегмент данных

Указатель на сегмент стека

Корневой каталог

Рабочий каталог

Дескрипторы файла

Идентификатор пользователя

Идентификатор группы

 

2.1.2 Модель процесса 

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

Рассмотрим схему с четырьмя работающими программами.

В каждый момент времени активен только один процесс

 

 

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

 

2.1.3 Создание процесса 

Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess):

  •  Загрузка системы
  •  Работающий процесс подает системный вызов на создание процесса
  •  Запрос пользователя на создание процесса

Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.

В UNIX каждому процессу присваивается идентификатор процесса ( PID - Process IDentifier)

 

2.1.4 Завершение процесса 

Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess):

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

Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процессов (в числе компонентов и его регистры).

 

2.1.5 Иерархия процессов 

В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским.

В таком случае в UNIX существует и прародитель всех процессов - процесс init.

 

 

 

Дерево процессов для систем UNIX

 

В Windows не существует понятия иерархии процессов. Хотя можно задать специальный маркер родительскому процессу, позволяющий контролировать дочерний процесс.

 

2.1.6 Состояние процессов 

Три состояния процесса:

  •  Выполнение (занимает процессор)
  •  Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)
  •  Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)

Возможные переходы между состояниями.

1. Процесс блокируется, ожидая входных данных

2. Планировщик выбирает другой процесс

3. Планировщик выбирает этот процесс

4. Поступили входные данные

 

Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.

На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания, и как только сервер получит запрос, процесс переходит из "ожидания" в "выполнение". Этот переход выполняется намного быстрее, чем запуск нового процесса.

2.2 Потоки (нити, облегченный процесс) 

2.2.1 Понятие потока 

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

 

Сравнение многопоточной системы с однопоточной

 

2.2.2 Модель потока 

С каждым потоком связывается: 

  •  Счетчик выполнения команд
  •  Регистры для текущих переменных
  •  Стек
  •  Состояние

Потоки делят между собой элементы своего процесса:

  •  Адресное пространство
  •  Глобальные переменные
  •  Открытые файлы
  •  Таймеры
  •  Семафоры
  •  Статистическую информацию.

 

В остальном модель идентична модели процессов.

В POSIX и Windows есть поддержка потоков на уровне ядра.

В Linux есть новый системный вызов clone для создания потоков, отсутствующий во всех остальных версиях системы UNIX.

В POSIX есть новый системный вызов pthread_create для создания потоков.

В Windows есть новый системный вызов Createthread для создания потоков.

 

2.2.3 Преимущества использования потоков 

  1.  Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
  2.  Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.
  3.  Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода/вывода. Пример: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.

2.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное 

 

А - потоки в пространстве пользователя

B - потоки в пространстве ядра

В случае А ядро о потоках ничего не знает. Каждому процессу необходима таблица потоков, аналогичная таблице процессов.

Преимущества случая А: 

  •  Такую многопоточность можно реализовать на ядре не поддерживающим многопоточность
  •  Более быстрое переключение, создание и завершение потоков
  •  Процесс может иметь собственный алгоритм планирования.

Недостатки случая А: 

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

Мультиплексирование потоков пользователя в потоках ядра

Поток ядра может содержать несколько несколько потоков пользователя.

 

2.2.5 Особенности реализации Windows 

Используется четыре понятия:

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

Потоки работают в режиме пользователя, но при системных вызовах переключаются в режим ядра. Из-за переключения в режим ядра и обратно, очень замедляется работа системы. Поэтому было введено понятие волокна. У каждого потока может быть несколько волокон.

 


PAGE  7


 

А также другие работы, которые могут Вас заинтересовать

27527. Понятие и структура правосознания 25 KB
  Выделяют следующие основные черты правосознания: 1 является одной из форм общественного знания; 2 состоит из идей теорий чувств эмоций настроений и других компонентов; 3 носителями компонентов правосознания являются различные субъекты права; 4 обращено не только к настоящему но и к прошлому и к будущему; 5 является формой права в отдельные периоды развития общества; 6 ориентирует субъектов права в социальноправовых ситуациях позволяет им делать соответствующий не всегда правомерный выбор и принимать юридически значимые решения....
27528. Понятие, признаки и виды правомерного поведения 29 KB
  Понятие признаки и виды правомерного поведения Правомерное поведение личности это поведение соответствующее предписаниям юридических норм т. законопослушное социальное поведение облеченное в юридическую форму. Правомерное поведение очень широко по своему диапазону и весьма неоднородно по характеру. Активное правомерное поведение.
27529. Понятие, стадии, способы и типы правового регулирования 31.5 KB
  Понятие стадии способы и типы правового регулирования Правовое регулирование целенаправленное результативное юридическое воздействие права на общественные отношения осуществляющееся при помощи совокупности юридических средств норм права правоотношений и актов реализации составляющих его механизм механизм правового регулирования. Метод правового регулирования представляет собой специфический способ совокупность способов правового воздействия на регулируемые общественные отношения. Он складывается из комбинации следующих способов...
27530. Правовая культура, понятие и структура 26 KB
  Правовая культура понятие и структура. Существует несколько подходов к понятию культуры: 1 антропологические согласно которым культура это совокупность всех благ созданных человеком в отличие от того что создала природа; 2 социологические согласно которым культура это совокупность всех духовных ценностей; 3 философские согласно которым культура это исторически определенный уровень развития общества творческих сил и способностей человека. Таким образом правовая культура это совокупность всех ценностей созданных человеком в...
27531. Правовое отношение: понятие и признаки, состав 25 KB
  Правоотношения это охраняемые государством общественные отношения возникающие как правило вследствие воздействия норм права на поведение людей и характеризующиеся наличием субъективных прав и юридических обязанностей у их участников. Признаки: 1 разновидность отношений общественных; 2 возникают на основе норм права; 3 характеризуются наличием у их участников субъективных прав и юридических обязанностей; 4 волевые отношения это означает что помимо нормы права которая сама по себе уже выражает определенную волю для возникновения...
27532. Преемственность в праве: понятие, виды и значение 28.5 KB
  Преемственность в праве заимствование правом того или иного государства положения прошлых либо современных правовых систем заимствование наилучших моделей элементов конструкций описания механизма правового регулирования с целью совершенствования правовых систем и правовой культуры Правопреемственность это необходимый элемент закона отрицания отрицания. Главным фактором обусловливающим преемственность является необходимость нормативного регулирования ряда общественных отношений вытекающая из потребностей самого общества и...
27533. Презумпции и фикции в праве 27.5 KB
  Все приёмы законодательной техники делятся на 2 группы: 1 юридические средства это допустимые правом предметы и явления с помощью которых обеспечивается достижение поставленных целей и получения результатов юридические термины и понятия; юридические конструкции; юридические символы; перечисления; юридические презумпции; юридические фикции; 2 юридические способы пути достижения намеченных целей с помощью конкретных юридических средств и при наличие условий и предпосылок законодательной практики способы структуризации; способы...
27534. Приведите примеры юридических фактов-действий 30 KB
  Юридический факт конкретные социальные обстоятельства события действия вызывающие в соответствии с нормами права наступление определенных правовых последствий возникновение изменение или прекращение правовых отношений. Классификация: 1 по характеру наступающих последствий: а правообразующие поступление в вуз; б прамоприменяющие перевод с очной формы на заочную; в правопрекращающие окончание вуза; 2 по связи с волей участников правоотношений: а события обстоятельства независящие от воли субъекта стихийное бедствие...
27535. Принципы права: понятие, классификация и значение 28 KB
  Принципы права исходные нормативноруководящие начала императивные требования определяющие общую направленность правового регулирования общественных отношений. Принципы права обусловлены рядом факторов: уровень экономического развития; особенности политической системы; социальноклассовые природы государства. Принципы российского права: 1 принцип справедливости; 2 принцип равноправия равенство перед законом и судом; 3 единство прав и обязанностей; 4 гуманизм основан на уважении человека его достоинства и прав; 5...