Новые статьи по многозадачности ЦПУ
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Struchkov Mark 2024-09-10 09:10:16 +03:00
parent c4762ee1f0
commit 30ce2e6282
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
15 changed files with 476 additions and 0 deletions

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View 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)
```

View File

@ -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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -0,0 +1,10 @@
---
aliases:
- Архитектура ЭВМ
title: Архитектура ЭВМ
---
- [Центральный процессор](../../dev/fundamental/Центральный%20процессор.md)
- [[../../dev/fundamental/Ядро процессора|Ядро процессора]]
- [[../../dev/fundamental/Многозадачность ЦПУ|Многозадачность ЦПУ]]
- [Планировщик ОС](../../dev/fundamental/Планировщик%20ОС.md)
- [Оперативная память](Оперативная%20память.md)

View 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)
```

View 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)
```