Главная Случайная страница


Полезное:

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


Категории:

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






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





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

 

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

 

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

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

· Счетчик выполнения команд

· Регистры для текущих переменных

· Стек

· Состояние

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

· Адресное пространство

· Глобальные переменные

· Открытые файлы

· Таймеры

· Семафоры

· Статистическую информацию.

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

 

Планирование процессов и потоков

 

Одной из основных подсистем мультипрограммной ОС, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами и потоками, которая занимается:

  1. их созданием и уничтожением,
  2. поддерживает взаимодействие между ними,
  3. распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками.
  4. синхронизация процессов (согласование скоростей потоков также очень важно для предотвращения эффекта «гонок» - когда несколько потоков пытаются изменить один и тот же файл, взаимных блокировок или других коллизий, которые возникают при совместном использовании ресурсов),
  5. ответственна за обеспечение процессов необходимыми ресурсами,
  6. обеспечивает освобождение выделенных ресурсов (закрываются все файлы, с которыми работал процесс, освобождаются области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса, выполняется коррекция всевозможных очередей ОС и списков ресурсов, в которых имелись ссылки на завершаемый процесс).

 

С точки зрения обеспечения ресурсами ОС выполняет следующие функции и задачи:

  1. назначение процессу ресурсов в единоличное пользование или в совместное пользование с другими процессами,
  2. выделение ресурсов процессу при его создании или динамически по запросам во время выполнения.
  3. обеспечение ресурсами процессу на все время его жизни или только на определенный период,
  4. обеспечение взаимодействия с другими подсистемами ОС, ответственными за управление ресурсами (подсистема управления памятью, подсистема ввода-вывода, файловая система).

 

Планирование и диспетчеризация потоков

 

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

 

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

 

Планирование потоков, по существу, включает в себя решение двух задач:

Date: 2015-08-24; view: 687; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию