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

Занятие 5.Потоки. Многопроцессорные системы

Потоки

Во многих процессах встречается ситуация, когда процесс может быть разделен на несколько независимо работающих частей. Например, в издательской системе длительные операции ( печать, обработка графических данных ...) могут выполняться отдельно от приема данных от пользователя ( набор текста, работа с мышью...). Однако, если эти действия находятся в одном процессе, то они выполняются последовательно одно за другим и в этом случае процесс печати остановит работу пользователя – он не сможет работать в это время ни с клавиатурой, ни с мышью, хотя процессор в это время не занят( печать выполняет само устройство принтера). Если разделить эти действия в виде двух разных процессов, то для каждого из них будет отведена своя область памяти и один процесс не сможет использовать данные другого процесса. А если оба процесса должны использовать одни и те же данные, а разделить на параллельное выполнение нужно только действия? Если команды процесса разделить так, чтобы они работали отдельно, но использовали одну область памяти с данными в рамках одного процесса, то такое разделение называется разделением процесса на потоки. Один поток – это команды печати, а другой поток – это команды ввода данных пользователем. Однако оба эти потока – это все один процесс и они используют одну область памяти, отведенную для всего процесса и пользуются одними и теми же данными из этой области. Управлением потоками в этом случае может заниматься либо сама Ос либо процесс пользователя.

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

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

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

Многопроцессорные системы

В системах, работающих с несколькими процессорами, выделяются 2 архитектуры:

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

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

При многопроцессорной системе потоки могут выполняться параллельно на разных процессорах

Вопросы на повторение:

  • Чем поток отличается от процесса. Принцип управления потоками на уровне пользователя, его преимущества и недостатки

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

  • Принцип многопроцессорности с ведущим и ведомым процессорами

  • Принцип работы симметричной многопроцессорности