powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Указатель на функцию, стеки и треды
25 сообщений из 27, страница 1 из 2
Указатель на функцию, стеки и треды
    #39123632
В стеке хранятся локальные переменные подпрограммы, возвращаемое значение, адрес возврата в вызывающую программу. У каждого потока есть свой стек. Значит, каждая подпрограмма создается в своем потоке, а указатель на функцию хранит адрес начала стека подпрограммы (потока)?
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39123634
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
летатель космосаЗначит, каждая подпрограмма создается в своем потоке
Нет. Она нигде никогда не создаётся. Код всегда тихо и спокойно лежит в сегменте кода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39123638
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каша какая-то. Зеленое мягкое потому что теплое. Учи матчасть. Этот бред невозможно прокомментировать. Тут все неправильно.
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39124409
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
летатель космосаВ стеке хранятся локальные переменные подпрограммы, возвращаемое значение, адрес возврата в вызывающую программу. ...

угу, из всего перечисленного адрес возврата обязательно, локальные переменные - если есть, возвращаемое значение - нет(т.к. стэк восстанавливается - т.е. всё что было на нём выделено, при вызове подпрограммы, в памяти остаётся но в любой момент может быть затёрто). кстати это если речь идёт об x86 "интеловской" архитектуре. если железка другая - то могут быть и свои замороты...

летатель космоса...У каждого потока есть свой стек....

угумс.

летатель космоса...каждая подпрограмма создается в своем потоке...

вот это утверждение противоречит Вашему утверждению летатель космоса...адрес возврата в вызывающую программу. ....

летатель космоса...указатель на функцию хранит адрес начала стека подпрограммы (потока)?

ээээээ тут что то не потребное. откуда взялся указатель? если идёт речь об регистре который хранит указатель на стэк, который в свою очередь используется при операциях сохранении и извлечении в/из стэка - то он указывает на хвост стэка, и стэк растёт в сторону младших адресов памяти. Для семейства x86 команда push - сохранить на стэке, команда pop - вытолкнуть из стэка.

В общем случае перед вызовом подпрограммы на стэк сохраняются переменные которые передаются в подпрограмму, при самом
вызове на стэк заносится адрес возврата, после вызова идёт выделение кадра под локальные данные. Процедура возврата из подпрограммы - зеркальна (но есть нюанс - существуют два варианта освобождения данных занесённых на стэк перед вызовом подпрограммы - чистит вызывающий либо чистит вызываемый. Этот нюанс особенно необходимо отслеживать при юзанье сторонних дэлеле. По теме дэлеле, если форточки, рекомендую читать Рихтера "Windows для профессионалов").

удачи вам
(круглый)
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39124429
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0возвращаемое значение - нет(т.к. стэк восстанавливается - т.е. всё что было на нём выделено, при вызове подпрограммы, в памяти остаётся но в любой момент может быть затёрто).
ну если оно в регистр лезет конечно, иначе вызывающий обеспечивает на стеке место под хранение результата (как один из вариантов реализации)
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39124519
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил...иначе вызывающий обеспечивает на стеке место под хранение результата..

апсолютно точно, и передаёт на это хозяйство адрес... но я подразумевал что ТС интересует именно фаза вызова, а не варианты мест хранения данных :)
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39124521
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это уже второй аффтар, который приходит со странной идеей, что для каждого потока
создаётся отдельная копия кода. Похоже, их, таких, где-то штампуют.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125065
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov...таких, где-то штампуют.

а есть парадигма - активный/пассивный класс (если ничего не попутал). активный - типа живёт сам по се(имеет поток).

ЗЫ
вообще есть странная тенденция людей начинающих копать:
попадая в круги действия маркета определённых текущих брэндов(высказываний, утверждений), люди не допускают даже и тени сомнения в правильности выученных постулатов.

имхо - вот это беда...
узкость восприятия мира что-ли...
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125314
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто уже второй аффтар, который приходит со странной идеей, что для каждого потока
создаётся отдельная копия кода. Похоже, их, таких, где-то штампуют.

Для Unix (fork()) копия кода действительно создаётся. Но не простая копия а COW.
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125319
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля Unix (fork()) копия кода действительно создаётся. Но не простая копия а
COW.
Там страницы кода не защищены от записи?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125325
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот статья на которую я опирался.
http://unix.stackexchange.com/questions/58145/how-does-copy-on-write-in-fork-handle-multiple-fork

Тут речь идёт просто о pages и пока не детализируется какие именно .
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125330
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же, это же форк, он порождает новый процесс с отдельным адресным пространством.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125339
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видишь как трудно иногда ответить на простой вопрос. Это как в народной мудрости. Что один дурак
может 100 мудрецов "ушатать" вопросами.
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125360
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovК тому же, это же форк, он порождает новый процесс с отдельным адресным пространством.

Самое интересное что "отдельное адресное пространство" создается в любом случае. И при создании нити и при создании процесса форком. Так?
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125372
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesSql"отдельное адресное пространство" создается в любом случае. И при создании
нити и при создании процесса форком. Так?
Чо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125378
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovYesSql"отдельное адресное пространство" создается в любом случае. И при создании
нити и при создании процесса форком. Так?
Чо?

а чо в регистре CR3 находится? И когда он перегружается?
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125396
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesSqlDimitry Sibiryakovпропущено...

Чо?

а чо в регистре CR3 находится? И когда он перегружается?
я тебе тайну открою - все потоки одного процесса используют общую и единую таблицу страниц

со времён OS/370 MVS
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125405
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилYesSqlпропущено...

а чо в регистре CR3 находится? И когда он перегружается?
я тебе тайну открою - все потоки одного процесса используют общую и единую таблицу страниц

со времён OS/370 MVS

там только джобы и TCB и стека нет
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125406
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
летатель космосаВ стеке хранятся локальные переменные подпрограммы, возвращаемое значение, адрес возврата в вызывающую программу. У каждого потока есть свой стек. Значит, каждая подпрограмма создается в своем потоке, а указатель на функцию хранит адрес начала стека подпрограммы (потока)?

нет
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125408
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новый Годтам только джобы и TCB и стека нет
незачёт, таски там соответствуют потокам,
джобы - процессам

рантайм PL/1, в частности, создаёт таски с собственными стеками
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125419
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилНовый Годтам только джобы и TCB и стека нет
незачёт, таски там соответствуют потокам,
джобы - процессам

рантайм PL/1, в частности, создаёт таски с собственными стеками



реально прям со стеками?
в PL/1 не смотрел
видел что например в PL/X
нету там стека


или в С там делается гетмайн при каждом вызове функции
и в этой памяти хранятся переменные и savearea
и freemain при выходе из нее
стека нет никакого

ну хрен с ним пусть джобы процессам соответствуют
а таски потокам
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125424
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DSAs are held contiguously in a last-in/first-out (LIFO) storage stack and are freed and allocated by the alteration of pointer values.

http://bitsavers.trailing-edge.com/pdf/ibm/370/pli/SC33-0025-3_PLI_Optimizing_Compiler_Execution_Logic_Sep85.pdf
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125775
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на ЕС были не стеки, а связные списки особых структур PSW или PSA,уже не помню как назывались. в отличие от стека соседние логически ноды списка хранились не в смежных ячейка памяти, а были размещены по всему адресному пространству. функционально это то же самое, что и стек. фактически - совсем не то.
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39125798
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivна ЕС были не стеки, а связные списки особых структур PSW или PSA,уже не помню как назывались. в отличие от стека соседние логически ноды списка хранились не в смежных ячейка памяти, а были размещены по всему адресному пространству. функционально это то же самое, что и стек. фактически - совсем не то.

как выделять память под DSA и локальные переменные (из непрерывного куска,кучи, дополнительно выделять блоки под стек) - заботы конкретного рантайма .

ведение двусвязного списка - это просто соглашение о вызове (от которого рантайм вправе отклониться)
в современной интел-архитектуре - рантайм не обязан использовать под стек единственный непрерывный блок памяти
...
Рейтинг: 0 / 0
Указатель на функцию, стеки и треды
    #39126212
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проще говорить о функциях. это не объекты в c++, это функции, области кода. у них ничего нет, кроме адреса начала. стек у них общий и потому его можно раскрутить.

в бусте есть корутины и фибры. в корутинах имеется свой стек. но это уже совсем другая история.

в последнее время, замечаю, подпрограммами называют что-то типа корутин, ну что типа подпрограмма в отдельном потоке исполняется, а функция в том же.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Указатель на функцию, стеки и треды
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]