-2

Какое официальное объяснение этому? Кажется, я всегда забываю.

5 ответов5

4

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

Как добавил @Journeyman Geek, здесь используется вытеснение. Здесь у нас есть какая-то структура (например, очередь), в которой хранятся программы, и каждый процесс получает так много циклов для выполнения. Затем выполняющаяся в настоящий момент программа выгружается (или заменяется другой программой), и затем эта программа запускается. Существует много стратегий для определения того, какие программы выполняются, когда. Мы можем быть абсолютно честными (например, Round Robin), и каждая программа получает определенный временной интервал, или мы могли бы разделить программы по приоритету и выполнять программу с более низким приоритетом, только когда больше нет программ с более высоким приоритетом для выполнения (например: Priority Очередь).

Это полезно, когда говорят, что вы пишете приложение с графическим интерфейсом и выполняете длинную фоновую задачу. Если бы это было написано как однопоточное приложение, интерфейс GUI завис бы. Однако с двумя потоками GUI остается отзывчивым. Даже если есть только один процессор, чередование процессов означает, что графический интерфейс пользователя остается отзывчивым, в то время как фоновый процесс продолжает работать и прогрессировать.

2

Гиперпоточность, скорее всего, в современных системах - короче говоря, часть, но не все ядро дублируется, так что на каждое ядро можно запускать больше потоков

1

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

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

Смотрите Википедию для получения дополнительной информации.

1

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

Кстати, на языке Unix фокус смещается к восприятию того, что система выглядит выделенной для запросов каждого пользователя. Мы называем это просто «многопользовательский».

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .