Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4

Сколько времени действует критическая секция?

06.02.2021, 00:01. Показов 1300. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предположим есть массив. int q[100] к этому массиву получают доступ 2 потока и 2ой массив свободный int w[10] с ним может работать только текущая программа. Предположим первая программа выполняет 2 действия q[0]=w[9]; и q[0]=w[8];, всё это дело происходит внутри функции
C++
1
2
3
4
5
void rt(){
q[0]=w[9];
q[0]=w[8];
cout<<w[8]<<en;
}
в момент когда выполняется первое действие 2ой поток лезет в q[0] чтобы тоже что-то записать, в результате возникает критическая секция, 2 потока в один и то же момент времени лезут в одну область памяти. Возникает вопрос сколько времени будет заблокирована ячейка q[0], предполагаемые варианты:
а)Когда будет выполнено выражение q[0]=w[9];. В этом случае ячейка освободится и 2ой поток может залезть туда.
б)Когда будет выполнено выражение q[0]=w[8];. В этом случае обращение к ячейке q[0]
1ым потоком будет последним и поток 1 больше не будет претендовать на ячейку q[0], и 2ой поток без проблем будет писать данные в ячейку q[0].
в)Когда будет завершена функция rt(). В этом случае будет выполнена инструкция ради которой процессор находился в стадии прерывания. В этом случае можно поместить новую сложную инструкцию в процессор. Здесь конечно поток 2 может воспользоваться нужной ячейкой, но процессору свойственно такое понятие как параллельные задачи, и возможно выполнение функции здесь к ячейке ни какого отношения не имеет.
г) Со всем другие варианты. Опишите как по вашему это может работать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2021, 00:01
Ответы с готовыми решениями:

Критическая секция
Ребята помогите пожалуйста, надо сделать 5 потоков с помощью критической секции, незнаю как!!! пытался что-то сделать но ничего путного не...

Потоки и критическая секция!
Почему потоки проходят 14 раз, а не 10, как указано в MaxCount?????? Помогите с ответом пожалуйста! Написать программу, главный...

Критическая секция не работает
Значение переменной становится равно не нулю даже при наличии критических секций. Почему? #include &lt;iostream&gt; #define _AFXDLL ...

23
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.02.2021, 20:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Nexi99 Посмотреть сообщение
Ну я про это и спрашиваю можно ли заблокировать этот участок статической памяти на время?
Нет, нельзя

Добавлено через 1 минуту
Хотя, можешь попробовать тормознуть все потоки в процессе, кроме своего. Тогда туда, скорее всего, никто ничего не запишет.
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
06.02.2021, 20:14  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Хотя, можешь попробовать тормознуть все потоки в процессе, кроме своего. Тогда туда, скорее всего, никто ничего не запишет.
Что-то мне подсказывает что сделать буфер будет дешевле чем блокировать память. Там наверное куда и инструкций дофига.
2
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.02.2021, 20:17
Цитата Сообщение от Nexi99 Посмотреть сообщение
Что-то мне подсказывает что сделать буфер будет дешевле чем блокировать память. Там наверное куда и инструкций дофига.
Ну, раз что-то подсказывает, действуй. Что-то, оно точно не ошибается.
0
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
06.02.2021, 21:19
Цитата Сообщение от Nexi99 Посмотреть сообщение
Что-то мне подсказывает что сделать буфер будет дешевле чем блокировать память. Там наверное куда и инструкций дофига.
Дошла хорошая мысль, а я сижу и думаю - догадаешься ли ?)

Добавлено через 1 минуту
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
что-то подсказывает
Мне что - то подсказывает что, или это он, или собрат

Ограниченный буфер для чтения-записи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2021, 21:19

Есть ли критическая секция в стандартной библиотеке?
Здравствуйте! Собственно, сам вопрос. Как использовать критическую секцию в C++? Нашёл информацию о подобном для windows и linux. Есть...

Критическая секция
Есть процесс в нем создается 2 потока, проблема в том, что когда один из потоков находится в критической секции и если его уничтожить или...

Критическая секция
такая задача. есть глобальный указатель на структуру. в main -е динамически выделяю память под массив структур. Хочу чтобы у каждой...

Критическая секция
Очень срочно,помогите пожалуйста,на Сях,реализовать работу бензоколонки - бензин 80,92,95,98,Дизель - разлив бензина автомобилям через...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru