Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АК_лекции.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.74 Mб
Скачать
  1. Потоки исполнения

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

Состояния потоков аналогичны состояниям традиционных процессов. Из состояния «рождение» процесс приходит содержащим всего один поток исполнения. Другие потоки процесса будут являться потомками этого потоки прародителя. Процесс находится в состоянии «готовность», если хотя бы один из его потоков находится в состоянии «готовность» и ни один из потоков не находится в состоянии «исполнение». Процесс находится в состоянии «исполнение», если один из его потоков находится в состоянии «исполнение». Процесс будет находиться в состоянии «ожидание», если все его потоки находятся в состоянии «ожидание». Процесс находится в состоянии «завершил исполнение», если все его потоки находятся в состоянии «завершили исполнение». Пока один поток процесса заблокирован, другой поток того же процесса может выполняться. Потоки разделяют процессор так же, как это делали традиционные процессы, в соответствии с алгоритмами планирования.

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

Различают операционные системы, поддерживающие потоки на уровне:

- ядра;

- библиотек.

В ОС поддерживающих потоки на уровне ядра планирование использования процессора происходит в терминах потоков, а управление памятью и другими системными ресурсами остается в терминах процессов.

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

  1. Контрольные вопросы

1) Назовите причины кооперации процессов

2) Что такое кооперативные и независимые процессы

3) Опишите категории средств обмена информацией между процессами

4) Охарактеризуйте прямую и непрямую адресацию при обмене информацией между процессами

5) Охарактеризуйте прямую и непрямую связь между процессами

6) Опишите буферизацию и три варианта объемов буфера канала связи

7) Опишите потоковую модель передачи данных по каналам связи

8) Опишите модель сообщений передачи данных по каналам связи

9) Назовите условия обмена данными

10) Охарактеризуйте завершение связи между процессами

11) Опишите поток и состояния потока

12) Опишите планирование в операционных системах, поддерживающих потоки на уровне ядра и библиотек