Новые статьи по многозадачности ЦПУ
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
c4762ee1f0
commit
30ce2e6282
32
dev/fundamental/Вытесняющая многозадачность.md
Normal file
32
dev/fundamental/Вытесняющая многозадачность.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
aliases:
|
||||
- вытесняющей многозадачности
|
||||
- вытесняющей многозадачностью
|
||||
parents:
|
||||
- "[[Многозадачность ЦПУ]]"
|
||||
date: 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
linked:
|
||||
- "[[Кооперативная многозадачность]]"
|
||||
---
|
||||
Вытесняющая многозадачность — это подход к [[Многозадачность ЦПУ|многозадачности]], при котором [операционная система](Операционная%20система.md) имеет полный контроль над тем, когда и какой [процесс](Процесс%20ОС.md) или [поток](Поток%20процесса%20ОС.md) получает доступ к [[Центральный процессор|процессору]].
|
||||
|
||||
[[Квантирование времени]]. Операционная система может прервать (вытеснить) текущий процесс или поток в любой момент времени, чтобы передать управление другому процессу или потоку, обеспечивая таким образом более эффективное и справедливое распределение процессорного времени между всеми выполняющимися задачами.
|
||||
|
||||
Вытеснение приводит к [переключению контекста](Переключение%20контекста.md).
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Многозадачность ЦПУ]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2023-01-28]]
|
||||
### Дополнительные материалы
|
||||
- [[Кооперативная многозадачность|Кооперативная многозадачность]]
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
31
dev/fundamental/Квантирование времени.md
Normal file
31
dev/fundamental/Квантирование времени.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
aliases:
|
||||
- квантированию времени
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Вытесняющая многозадачность]]"
|
||||
linked:
|
||||
---
|
||||
Планировщик задач [[../../../../knowledge/dev/pc/Операционная система|ОС]] выделяет каждому потоку квант времени (~50 мкс) для выполнения на [[Центральный процессор|процессоре]]. Когда квант времени истекает или возникает событие, требующее [переключения контекста](Переключение%20контекста.md) (например, операция ввода/вывода, которая может занять некоторое время), [[../../../../knowledge/dev/pc/Операционная система|ОС]] сохраняет состояние текущего [потока](Поток%20процесса%20ОС.md) (контекст) и загружает состояние следующего [[Поток процесса ОС|потока]] для его выполнения.
|
||||
|
||||
Квантирование времени является одним из механизмов, используемых в рамках [вытесняющей многозадачности](Вытесняющая%20многозадачность.md).
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Вытесняющая многозадачность|Вытесняющая многозадачность]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
48
dev/fundamental/Кооперативная многозадачность.md
Normal file
48
dev/fundamental/Кооперативная многозадачность.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
aliases:
|
||||
- non-preemptive multitasking
|
||||
- cooperative multitasking
|
||||
- кооперативная многозадачность
|
||||
- невытесняющей многозадачности
|
||||
- кооперативной многозадачности
|
||||
- невытесняющая многозадачность
|
||||
- кооперативную многозадачность
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-03-19
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Многозадачность ЦПУ]]"
|
||||
linked:
|
||||
- "[[Вытесняющая многозадачность]]"
|
||||
---
|
||||
Подход к управлению выполнением задач в [операционных системах](Операционная%20система.md), при котором текущий выполняющийся [процесс](Процесс%20ОС.md) должен явно отдать управление [[../../../../knowledge/dev/pc/Операционная система|операционной системе]], чтобы другой процесс мог быть запущен.
|
||||
|
||||
В этом режиме [[../../../../knowledge/dev/pc/Операционная система|операционная система]] не может прервать и вытеснить текущий процесс для переключения на другой процесс, как в [[Вытесняющая многозадачность|вытесняющей многозадачности]]. Вместо этого, каждый процесс должен "добровольно" уступить ресурсы, достигнув определённой точки в своём выполнении или завершив свою работу.
|
||||
|
||||
|
||||
> [!INFO]
|
||||
> В современных операционных системах преимущественно используется [вытесняющая многозадачность](Вытесняющая%20многозадачность.md).
|
||||
|
||||
**Особенности кооперативной многозадачности:**
|
||||
- **Кооперативность:** Процессы сами решают, когда отдать управление ОС, что требует более внимательного программирования, чтобы избежать занимания [[Центральный процессор|процессора]] одним процессом на долгое время.
|
||||
- **Риски:** Если один из процессов захватывает процессор и не отдаёт управление, это может привести к "зависанию" системы или снижению отзывчивости, поскольку другие процессы не смогут выполняться до тех пор, пока не будет освобожден процессор.
|
||||
- **Простота:** Механизмы кооперативной многозадачности проще в реализации по сравнению с [[Вытесняющая многозадачность|вытесняющей многозадачностью]], так как не требуют сложной логики управления приоритетами и безопасности [переключения контекста](Переключение%20контекста.md).
|
||||
- **Применение:** Этот подход чаще всего используется в системах с ограниченными ресурсами, встраиваемых системах или в старых операционных системах, где аппаратная поддержка для вытесняющей многозадачности может отсутствовать.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Многозадачность ЦПУ]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-03-19]]
|
||||
### Дополнительные материалы
|
||||
- [[Вытесняющая многозадачность]]
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
33
dev/fundamental/Многозадачность ЦПУ.md
Normal file
33
dev/fundamental/Многозадачность ЦПУ.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
aliases:
|
||||
- многозадачности
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Центральный процессор|ЦПУ]]"
|
||||
linked:
|
||||
---
|
||||
Многозадачность — это способность [операционной системы](Операционная%20система.md) одновременно управлять выполнением нескольких задач ([процессов](Процесс%20ОС.md) или [потоков](Поток%20процесса%20ОС.md)). Это достигается путем распределения [[Планировщик ОС|планировщиком ОС]] доступного процессорного времени между различными задачами таким образом, чтобы создать иллюзию их параллельного выполнения. Многозадачность может быть реализована в двух основных формах: кооперативной и вытесняющей.
|
||||
|
||||
- [[Кооперативная многозадачность]] требует, чтобы каждая задача явно отдавала управление операционной системе, чтобы другие задачи могли выполняться. Этот подход может привести к проблемам, если задача не отдает управление.
|
||||
- [[Вытесняющая многозадачность]] позволяет операционной системе "вытеснять" текущую задачу и переключаться на другую задачу, обеспечивая более надежный и справедливый механизм планирования. Этот подход наиболее распространен в современных операционных системах.
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Центральный процессор|ЦПУ]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
56
dev/fundamental/Переключение контекста.md
Normal file
56
dev/fundamental/Переключение контекста.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
aliases:
|
||||
- context switch
|
||||
- переключению контекстов
|
||||
- переключение контекстов
|
||||
- переключения контекста
|
||||
- переключению контекста
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Разработка|00 Разработка]]"
|
||||
parents:
|
||||
- "[[Многозадачность ЦПУ]]"
|
||||
linked:
|
||||
---
|
||||
Переключение контекстов происходит, когда [[../../../../knowledge/dev/pc/Операционная система|операционная система]] останавливает выполнение одной задачи и начинает выполнение другой. Этот процесс включает в себя сохранение текущего состояния задачи (контекста), включая значения регистров процессора, указатель инструкций и другие связанные с задачей данные, чтобы впоследствии можно было возобновить выполнение задачи с того места, где она была остановлена.
|
||||
|
||||
Этот процесс происходит настолько быстро и эффективно, что пользователи и приложения воспринимают систему как способную выполнять множество операций одновременно, несмотря на то, что физически одно [[Ядро процессора|ядро]] процессора в данный момент может выполнять только один поток.
|
||||
|
||||
В настоящее время все программы запускаются в так называемом "защищенном режиме", когда одна программа не имеет доступа к данным другой программы. В этом режиме указатели программы содержать не настоящий адрес на область памяти, а виртуальный, который маппится на настоящий, таким образом в двух разных программах может использоваться один и тот же адрес памяти, но на самом деле это будут разные области памяти.
|
||||
|
||||
В защищенном режиме каждая программа считает, что выполняется только она, про другие программы она не знает.
|
||||
|
||||
Когда программа не может дальше выполняться, то она сохраняет свое состояние и уступает ресурсы [[Центральный процессор|ЦПУ]] другой программе.
|
||||
- Сохранение регистров процессора
|
||||
- Сохранение общей информации: pid, tid, uid. gid, euid, egid и т.д.
|
||||
- Сохранение состояния процессора/потока
|
||||
- Сохранение прав доступа
|
||||
- Сохранение используемых потоком ресурсов и блокировок
|
||||
- Сохранение счетчиков использования ресурсов
|
||||
- Сохранение регионов памяти, выделенных процессору
|
||||
- Очистка конвейера команд и данных процессора
|
||||
- Очистка TLB, отвечающая за страничное отображение линейных адресов на физические
|
||||
|
||||
Переключение контекста занимает какое-то время (~1 мкс). Для примера выполнение одной строчки кода занимает ~0.5 нс. Переключение контекста может происходить как у процессов, так и у потоков.
|
||||
|
||||
![](../../meta/files/images/Pasted%20image%2020240128143015.png)
|
||||
|
||||
Чем больше [процессов](Процесс%20ОС.md), тем больше будет переключений. Время на процессы и паузы будут не измены, но пауз станет больше.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Разработка|00 Разработка]]
|
||||
**Родитель**:: [[Многозадачность ЦПУ|Многозадачность ЦПУ]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
- [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
38
dev/fundamental/Планировщик ОС.md
Normal file
38
dev/fundamental/Планировщик ОС.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
aliases:
|
||||
- планировщика ОС
|
||||
- планировщику ОС
|
||||
- планировщиком ОС
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-03-19
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[../../../../knowledge/dev/pc/Операционная система|Операционная система]]"
|
||||
linked:
|
||||
---
|
||||
Планировщик ОС - это ключевой компонент ядра [ОС](Операционная%20система.md), отвечающий за распределение процессорного времени между всеми запущенными процессами и потоками. Он управляет порядком, в котором [процессы](Процесс%20ОС.md) и [потоки](Поток%20процесса%20ОС.md) получают доступ к [центральному процессору](Центральный%20процессор.md) (ЦП).
|
||||
|
||||
Основные функции планировщика ОС включают:
|
||||
1. [Переключение контекста](Переключение%20контекста.md): Планировщик переключает контекст процессора с одного процесса или потока на другой. Это включает в себя сохранение состояния текущего процесса и восстановление состояния следующего процесса, который должен быть выполнен.
|
||||
2. **Приоритеты:** Планировщик использует систему приоритетов для определения того, какие процессы должны выполняться в первую очередь. Процессы с более высоким приоритетом получают больше процессорного времени или более частый доступ к ЦП.
|
||||
3. **Алгоритмы планирования:** Планировщик реализует алгоритмы планирования, которые определяют, как и когда процессы будут выполняться. Существуют различные алгоритмы, такие как круговое планирование (Round Robin), планирование с приоритетами, многоуровневые очереди и др., каждый из которых имеет свои преимущества в зависимости от сценария использования.
|
||||
4. **Справедливость и эффективность:** Планировщик стремится обеспечить справедливый доступ к ЦП для всех процессов и максимизировать эффективность использования процессорных ресурсов, минимизируя простои и время ожидания.
|
||||
5. **Обработка прерываний и асинхронных событий:** Планировщик также отвечает за реагирование на прерывания и асинхронные события, которые могут потребовать немедленного переключения контекста или изменения в плане выполнения процессов.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[../../../../knowledge/dev/pc/Операционная система|Операционная система]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-03-19]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
36
dev/fundamental/Поток процесса ОС.md
Normal file
36
dev/fundamental/Поток процесса ОС.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
aliases:
|
||||
- поток
|
||||
- потока
|
||||
- потоки
|
||||
- потоков
|
||||
- нити ос
|
||||
- нити операционной системы
|
||||
- нить ос
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Процесс ОС]]"
|
||||
linked:
|
||||
---
|
||||
Поток (или поток выполнения) — это легковесная единица выполнения, которая работает внутри [[Процесс ОС|процесса]]. Все потоки в пределах одного процесса делят между собой адресное пространство и ресурсы этого процесса, что позволяет им легко обмениваться данными и синхронизироваться.
|
||||
|
||||
Каждый поток имеет свой собственный stack, счетчик команд и набор регистров, но разделяет с другими потоками того же [[Процесс ОС|процесса]] кучу и глобальные переменные.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Процесс ОС]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
38
dev/fundamental/Процесс ОС.md
Normal file
38
dev/fundamental/Процесс ОС.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
aliases:
|
||||
- процесс
|
||||
- процесса
|
||||
- процессы
|
||||
- процессов
|
||||
- процессами
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Ядро процессора]]"
|
||||
---
|
||||
Процесс — это экземпляр программы, находящейся в выполнении. Каждый процесс имеет своё собственное виртуальное адресное пространство, которое изолирует его от других процессов, а также собственные коды и данные, состояние процессора и системные ресурсы, которые он использует (например, файловые дескрипторы и порты ввода/вывода).
|
||||
|
||||
[Операционная система](Операционная%20система.md) управляет процессами, выделяя им процессорное время и ресурсы, необходимые для их выполнения.
|
||||
|
||||
Процесс содержит в себе [потоки](Поток%20процесса%20ОС.md).
|
||||
|
||||
Под любой процесс создаются свои [Namespace](Namespace.md), которые позволяют изолировать процессы, запущенные на одном ядре друг от друга.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]]
|
||||
**Родитель**:: [[Ядро процессора|Ядро процессора]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
47
dev/fundamental/Центральный процессор.md
Normal file
47
dev/fundamental/Центральный процессор.md
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
aliases:
|
||||
- ЦПУ
|
||||
- ЦП
|
||||
- CPU
|
||||
- центральному процессору
|
||||
- процессору
|
||||
- процессоре
|
||||
- процессора
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
Центральный процессор (ЦП или CPU, от англ. Central Processing Unit) — это основной компонент компьютера и других вычислительных устройств, который выполняет инструкции программного обеспечения. Он интерпретирует и выполняет основные арифметические, логические и ввода/вывода операции, указанные в инструкциях программ.
|
||||
|
||||
ЦП состоит из нескольких ключевых компонентов:
|
||||
|
||||
1. **Арифметико-логическое устройство (АЛУ)**: Выполняет арифметические и логические операции.
|
||||
2. **Устройство управления (УУ)**: Извлекает инструкции из памяти компьютера, декодирует и исполняет их, контролируя при этом работу всех компонентов компьютера.
|
||||
3. **Регистры**: Используются для временного хранения данных и инструкций, необходимых для выполнения текущих операций.
|
||||
4. **Шина данных**: Позволяет передачу данных между различными компонентами процессора и другими частями компьютера.
|
||||
5. **Шина адреса**: Используется для указания адресов памяти, откуда или куда должны быть переданы данные.
|
||||
6. **Шина управления**: Управляет различными типами сигналов для координации работы компонентов компьютера.
|
||||
|
||||
Работа ЦП включает в себя выполнение цикла извлечения-декодирования-исполнения (fetch-decode-execute), где ЦП извлекает инструкцию из памяти, декодирует ее, чтобы понять, какую операцию необходимо выполнить, и затем исполняет эту операцию, возможно, используя данные, хранящиеся в памяти или регистрах.
|
||||
|
||||
Первые процессоры могли одновременно выполнять только одну программу. В какой-то момент появились процессоры, которые содержат несколько [процессорных ядер](Ядро%20процессора.md). Каждое процессорное ядро может работать независимо от другого, что увеличивает производительность процессора, если ПО поддерживает работу в многоядерной системе.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|Архитектура ЭВМ]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
44
dev/fundamental/Ядро процессора.md
Normal file
44
dev/fundamental/Ядро процессора.md
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
aliases:
|
||||
- ядро
|
||||
- ядер
|
||||
- многоядерный
|
||||
- одноядерный
|
||||
- ядра процессора
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-01-28
|
||||
zero-link:
|
||||
- "[[../../../garden/ru/meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]"
|
||||
parents:
|
||||
- "[[Центральный процессор]]"
|
||||
linked:
|
||||
---
|
||||
Ядра в контексте [[Центральный процессор|ЦП]] относятся к отдельным вычислительным единицам внутри одного физического процессора. Каждое ядро способно независимо обрабатывать инструкции, что обеспечивает многозадачность на аппаратном уровне.
|
||||
|
||||
Современные процессоры могут иметь несколько ядер, улучшая общую производительность и эффективность системы путем параллельной обработки нескольких потоков данных или задач.
|
||||
|
||||
Основные аспекты ядер ЦП:
|
||||
- **Многопоточность**: Многие современные ядра поддерживают технологии многопоточности, такие как Hyper-Threading от Intel, которая позволяет одному физическому ядру обрабатывать два или более независимых потока исполнения (потоков) одновременно. Это улучшает использование ресурсов ЦП и повышает производительность при выполнении множества задач.
|
||||
- **Независимость**: Каждое ядро обладает собственным набором ресурсов, таких как регистры и, иногда, кэш-память, что позволяет ему обрабатывать инструкции независимо от других ядер.
|
||||
- **Кэш-память**: Ядра могут иметь индивидуальные кэш-памяти (обычно L1 и иногда L2) и совместно использовать более крупные кэши (например, L3) на уровне процессора. Это уменьшает задержку доступа к часто используемым данным и инструкциям.
|
||||
- **Энергопотребление и производительность**: Современные ЦП обычно включают в себя функции для оптимизации энергопотребления и производительности, такие как динамическое изменение частоты и напряжения в зависимости от нагрузки.
|
||||
- **Специализированные ядра**: Некоторые процессоры включают специализированные ядра для конкретных задач, например, графические ядра в CPU с интегрированной графикой или ядра, оптимизированные для искусственного интеллекта и машинного обучения.
|
||||
|
||||
==В любой конкретный момент времени одно ядро процессора может выполнять инструкции только одного [потока](Поток%20процесса%20ОС.md).== Благодаря [[Планировщик ОС|планировщику ОС]] создается иллюзия того, что множество потоков выполняются параллельно, хотя на самом деле они выполняются последовательно, но с очень высокой скоростью переключения, - [[Многозадачность ЦПУ]]
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]
|
||||
**Родитель**:: [[Центральный процессор|Центральный процессор]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-01-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
1
index.md
1
index.md
@ -38,6 +38,7 @@ enableToc: false
|
||||
- [SpringBoot](meta/zero/00%20SpringBoot.md)
|
||||
- [00 Hibernate](meta/zero/00%20Hibernate.md)
|
||||
- Архитектура
|
||||
- [[meta/zero/00 Архитектура ЭВМ|Архитектура ЭВМ]]
|
||||
- [Архитектура ПО](meta/zero/00%20Архитектура%20ПО.md)
|
||||
- [Архитектура ИС](meta/zero/00%20Архитектура%20ИС.md)
|
||||
- [DevOps](meta/zero/00%20DevOps.md)
|
||||
|
BIN
meta/files/images/Pasted image 20240128143015.png
Normal file
BIN
meta/files/images/Pasted image 20240128143015.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
10
meta/zero/00 Архитектура ЭВМ.md
Normal file
10
meta/zero/00 Архитектура ЭВМ.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
aliases:
|
||||
- Архитектура ЭВМ
|
||||
title: Архитектура ЭВМ
|
||||
---
|
||||
- [Центральный процессор](../../dev/fundamental/Центральный%20процессор.md)
|
||||
- [[../../dev/fundamental/Ядро процессора|Ядро процессора]]
|
||||
- [[../../dev/fundamental/Многозадачность ЦПУ|Многозадачность ЦПУ]]
|
||||
- [Планировщик ОС](../../dev/fundamental/Планировщик%20ОС.md)
|
||||
- [Оперативная память](Оперативная%20память.md)
|
32
productivity/Многозадачность у человека.md
Normal file
32
productivity/Многозадачность у человека.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: "[[2023-10-24]]"
|
||||
zero-link:
|
||||
- "[[../meta/zero/00 Продуктивность|00 Продуктивность]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
Многие исследования приходят к тому, что люди, которые пытаются выполнять много задач одновременно намного менее эффективны и хуже справляются с задачами, чем те, кто фокусируется на одной задаче. При этом многозадачные считают себя очень продуктивными, но на деле это редко оказывается правдой.
|
||||
|
||||
Представьте, что вы решили учиться, слушать музыку, готовить еду и общаться с другом. Кажется, что каждому процессу можно уделить немного внимания — делать все по чуть-чуть.
|
||||
|
||||
Но только чтобы ответить приятелю, нужно услышать вопрос, обдумать его, подобрать слова и собственно ответить. А еще уследить за едой на сковородке, прочитать абзац в учебнике и распознать текст песни. Скорее всего, от такой многозадачности у вас пойдет кругом голова.
|
||||
|
||||
[Смена контекстов](Смена%20контекстов.md). Это как с оперативной памятью компьютера. Если открыть кучу вкладок или одновременно запустить несколько серьезных программ, в лучшем случае компьютер замедлится, в худшем — зависнет.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Продуктивность|00 Продуктивность]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2023-10-24]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
30
productivity/Смена контекстов.md
Normal file
30
productivity/Смена контекстов.md
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-04-02
|
||||
zero-link:
|
||||
- "[[../meta/zero/00 Продуктивность|00 Продуктивность]]"
|
||||
parents:
|
||||
- "[[Многозадачность у человека]]"
|
||||
linked:
|
||||
---
|
||||
Смена контекстов человека аналогичная [context switch в ЭВМ](../dev/fundamental/Переключение%20контекста.md). Переключение с одной задачи на другую требует каких-то [ресурсов](Ресурсы%20человека.md). Если весь день прыгать с задачи на задачу, то большая часть [мыслетоплива](Мыслетопливо.md) будет потрачено на переключения между ними.
|
||||
## Полезные советы
|
||||
- Сгруппируйте однотипные задачи и делайте их друг за другом.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Продуктивность|00 Продуктивность]]
|
||||
**Родитель**:: [[Многозадачность у человека]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-04-02]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
Loading…
Reference in New Issue
Block a user