diff --git a/dev/fundamental/Вытесняющая многозадачность.md b/dev/fundamental/Вытесняющая многозадачность.md new file mode 100644 index 00000000..621eb94a --- /dev/null +++ b/dev/fundamental/Вытесняющая многозадачность.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Квантирование времени.md b/dev/fundamental/Квантирование времени.md new file mode 100644 index 00000000..2f81f41e --- /dev/null +++ b/dev/fundamental/Квантирование времени.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Кооперативная многозадачность.md b/dev/fundamental/Кооперативная многозадачность.md new file mode 100644 index 00000000..1cc131a0 --- /dev/null +++ b/dev/fundamental/Кооперативная многозадачность.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Многозадачность ЦПУ.md b/dev/fundamental/Многозадачность ЦПУ.md new file mode 100644 index 00000000..afac136a --- /dev/null +++ b/dev/fundamental/Многозадачность ЦПУ.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Переключение контекста.md b/dev/fundamental/Переключение контекста.md new file mode 100644 index 00000000..6487375a --- /dev/null +++ b/dev/fundamental/Переключение контекста.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Планировщик ОС.md b/dev/fundamental/Планировщик ОС.md new file mode 100644 index 00000000..c7e92c3a --- /dev/null +++ b/dev/fundamental/Планировщик ОС.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Поток процесса ОС.md b/dev/fundamental/Поток процесса ОС.md new file mode 100644 index 00000000..d68ed0cb --- /dev/null +++ b/dev/fundamental/Поток процесса ОС.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Процесс ОС.md b/dev/fundamental/Процесс ОС.md new file mode 100644 index 00000000..758333dd --- /dev/null +++ b/dev/fundamental/Процесс ОС.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Центральный процессор.md b/dev/fundamental/Центральный процессор.md new file mode 100644 index 00000000..ffa662c7 --- /dev/null +++ b/dev/fundamental/Центральный процессор.md @@ -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) +``` \ No newline at end of file diff --git a/dev/fundamental/Ядро процессора.md b/dev/fundamental/Ядро процессора.md new file mode 100644 index 00000000..2ec34650 --- /dev/null +++ b/dev/fundamental/Ядро процессора.md @@ -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) +``` \ No newline at end of file diff --git a/index.md b/index.md index 0f59a42c..c525b3d9 100644 --- a/index.md +++ b/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) diff --git a/meta/files/images/Pasted image 20240128143015.png b/meta/files/images/Pasted image 20240128143015.png new file mode 100644 index 00000000..03cec716 Binary files /dev/null and b/meta/files/images/Pasted image 20240128143015.png differ diff --git a/meta/zero/00 Архитектура ЭВМ.md b/meta/zero/00 Архитектура ЭВМ.md new file mode 100644 index 00000000..d842633c --- /dev/null +++ b/meta/zero/00 Архитектура ЭВМ.md @@ -0,0 +1,10 @@ +--- +aliases: + - Архитектура ЭВМ +title: Архитектура ЭВМ +--- +- [Центральный процессор](../../dev/fundamental/Центральный%20процессор.md) + - [[../../dev/fundamental/Ядро процессора|Ядро процессора]] + - [[../../dev/fundamental/Многозадачность ЦПУ|Многозадачность ЦПУ]] + - [Планировщик ОС](../../dev/fundamental/Планировщик%20ОС.md) +- [Оперативная память](Оперативная%20память.md) \ No newline at end of file diff --git a/productivity/Многозадачность у человека.md b/productivity/Многозадачность у человека.md new file mode 100644 index 00000000..8e0aa3d4 --- /dev/null +++ b/productivity/Многозадачность у человека.md @@ -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) +``` \ No newline at end of file diff --git a/productivity/Смена контекстов.md b/productivity/Смена контекстов.md new file mode 100644 index 00000000..05202dcc --- /dev/null +++ b/productivity/Смена контекстов.md @@ -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) +``` \ No newline at end of file