Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизWinAPI Найти похожие ветки
← →
Инс © (2007-09-26 17:25) [120]
> А то вы ща взорветесь или на бокс перейдете :)
Маловероятно. Это у меня стиль ведения спора такой.
← →
umbra © (2007-09-26 17:25) [121]API - интерфейс операциооно для программирования приложений. Так что все программисты пишущие приложения - прикладные программисты. :)
← →
Rouse_ © (2007-09-26 17:28) [122]
> Так каков ответ на вопрос?
Реализованы КС естественно на уровне ядра... Как и 90 процентов АПИ.
Применение их в пользовательском приложении, это системное программирование?
← →
Инс © (2007-09-26 17:30) [123]
> Реализованы КС естественно на уровне ядра...
Что такое КС?
← →
Rouse_ © (2007-09-26 17:31) [124]Очевидно Критические Секции
← →
Игорь Шевченко © (2007-09-26 17:31) [125]Один я Д"Артаньян
← →
Инс © (2007-09-26 17:35) [126]
> Очевидно Критические Секции
Поздравляю. Ты облажался. Я о критических секциях не говорил и реализованы они не в ядре, это структуры пользовательского режима и переход в режим ядра при работе с КС осуществляется далеко не всегда. А говорил я об объекте ядра "раздел", перечитай внимательно [133]. А заодно подумай, почему я их упомянул вместе с MMF.
← →
Rouse_ © (2007-09-26 17:37) [127]
> Поздравляю. Ты облажался.
Спасибо. Видимо мой телепатор дал сбой...
Знаешь мне лениво сейчас думать - давай ка ты обьясни мне убогому, какое очередное озарение тебе открылось в связи с MMF? :)
← →
Rouse_ © (2007-09-26 17:39) [128]
> Я о критических секциях не говорил и реализованы они не
> в ядре
Мхат... т.е. LMD...
← →
Инс © (2007-09-26 17:40) [129]
> Спасибо. Видимо мой телепатор дал сбой...
Думаю телепатор тут не причем.
> Знаешь мне лениво сейчас думать - давай ка ты обьясни мне
> убогому, какое очередное озарение тебе открылось в связи
> с MMF?
Зачем мне так сразу карты раскрывать? :) Я хочу сначала ответ на вопрос услышать. А для этого давайте сначала убедимся, что вы понимаете о чем вообще я спросил.
← →
Инс © (2007-09-26 17:42) [130]
> Применение их в пользовательском приложении, это системное
> программирование?
А применение разделяемого с драйвером режима ядра объекта Section в пользовательском приложении это системное программирование?
← →
DVM © (2007-09-26 17:43) [131]
> А говорил я об объекте ядра "раздел",
что за объект такой?
Я знаю
access token objects,
file objects,
file-mapping objects,
I/O completion port objects,
job objects,
mailslot objects,
mutex objects,
pipe objects,
process objects,
semaphore objects,
thread objects,
waitable timer objects
← →
Rouse_ © (2007-09-26 17:44) [132]
> Зачем мне так сразу карты раскрывать?
После откровения что критическая секция реализуется не в ядре, я что-то расхотел глядеть в эти открытые карты :)
ЗЫ: а где она реализуется тогда и как ?
← →
Инс © (2007-09-26 17:44) [133]
> DVM © (26.09.07 17:43) [131]
В твоем списке объект-секция есть.
← →
DVM © (2007-09-26 17:46) [134]
> В твоем списке объект-секция есть.
Из этого списка я ничего секциями не называю. Ткни носом.
← →
Инс © (2007-09-26 17:48) [135]
> ЗЫ: а где она реализуется тогда и как ?
Критическая секция представляет собой структуру вида
_RTL_CRITICAL_SECTION = record
DebugInfo: PRTLCriticalSectionDebug;
LockCount: Longint;
RecursionCount: Longint;
OwningThread: THandle;
LockSemaphore: THandle;
Reserved: DWORD;
end;
Эта структура хранится не в системном адресном пространстве, а в адресном пространстве процесса, доступном из user-mode. Именно поэтому она не может быть совместно использована в разных процессах, только в контексте одного. Функции, работающие с КС, как правило в режим ядра даже не переходят и в этом легко самому убедиться.
← →
Инс © (2007-09-26 17:50) [136]
> Из этого списка я ничего секциями не называю. Ткни носом.
Тыкаю. Третий. А у седьмого знаешь какое внутреннее название? MUTANT :)
← →
DVM © (2007-09-26 17:51) [137]
> А у седьмого знаешь какое внутреннее название? MUTANT :)
Про мутанта знаю, про секции нет. Буду знать.
← →
Rouse_ © (2007-09-26 17:59) [138]Опана, Всю жизнь думал что цепочка InitializeCriticalSection -> RtlInitializeCriticalSection -> RtlInitializeCriticalSectionAndSpinCount -> NtCreateEvent незыблема, а оказывается от оно как. Тебе стоит в MS резюме отправить :) Ты знаешь что-то что не знаю даже разработчики :)
← →
Rouse_ © (2007-09-26 18:01) [139]
> Инс © (26.09.07 17:50) [136]
> Тыкаю. Третий.
Ну я ж говорил, у нас книги называют о "системном программировании", нити потоками, FMO секциями... Очевидно скоро мой телепатор с тобой точно отключиться :)
← →
Инс © (2007-09-26 18:55) [140]Ничего нового вы мне не сказали.
> Опана, Всю жизнь думал что цепочка InitializeCriticalSection
> -> RtlInitializeCriticalSection -> RtlInitializeCriticalSectionAndSpinCount
> -> NtCreateEvent незыблема, а оказывается от оно как. Тебе
> стоит в MS резюме отправить :) Ты знаешь что-то что не знаю
> даже разработчики :)
Это потому, что поле LockSemaphore нужно инициализировать. А скажем EnterCriticalSection может в режим ядра и не перейти, полей структуры может оказаться достаточно для того, чтобы принять решение, что КС свободна. Чаще всего так и бывает, ткните меня носом где я сказал иначе. Тем не менее это ничего не меняет, очевидно что критическая секция это структура пользовательского режима, в отличие от семафора или события, которые являются объектами ядра.
> Ну я ж говорил, у нас книги называют о "системном программировании",
> нити потоками, FMO секциями...
Да нет, вы просто свой DDK видимо не внимательно читали. В ядре нет объекта File Mapping. Там этот объект именно так и называется. http://msdn2.microsoft.com/en-us/library/ms796304.aspx
← →
Инс © (2007-09-26 19:02) [141]
> Очевидно скоро мой телепатор с тобой точно отключиться :)
Конечно, когда базовых знаний нет, никакой телепатор не поможет...
← →
Инс © (2007-09-26 19:39) [142]
> Я знаю
>
> access token objects,
> file objects,
> file-mapping objects,
> I/O completion port objects,
> job objects,
> mailslot objects,
> mutex objects,
> pipe objects,
> process objects,
> semaphore objects,
> thread objects,
> waitable timer objects
Кстати, к сведению. Это далеко не все типы объектов. По крайней мере в Win2000 типов объектов 27. А канал и мэйлслот в них не входят. Это сложные объекты, состоящие по крайней мере из двух: Device и Symbolic Link. Полный перечень могу привести.
← →
Rouse_ © (2007-09-26 20:57) [143]
> А скажем EnterCriticalSection может в режим ядра и не перейти
Изчебы, спины они для того и предназначены... Но все крутится на эвенте.
Но вообще-то фраза изначальна выглядела как "и реализованы они не в ядре". Посему и говорю - RTFM прежде чем постить.
> очевидно что критическая секция это структура пользовательского
> режима
Очевидно это структура, созданная в ядре. Где она храниться ее описатель роли не имеет т.к. евент принадлежит именно ядру.
> Конечно, когда базовых знаний нет, никакой телепатор не
> поможет...
Ну чтож... Не буду ругаться про знания, мне всегда хватало стандартных механизмов :) А вот начиная с Device и Symbolic Link - прошу поподробнее, параллельно остановимся на типе "file objects" в рамках NT, ну ты же знаешь о чем я говорю? :)
Да ну и давайте-же вернемся к нашим баранам, т.е. к Рихтеру - пишет ли он книги о Системном программировании? :)
← →
Eraser © (2007-09-26 21:15) [144]не в ту сторону куда-то спор зашел, imho. Какие кольца, какие сервисы? вы о чем? когда в учебных заведениях уже были профессии "программист" или "системынй программист" этих колец и в помине не было.
по-моему самое близкое к истине определение дает википедия http://ru.wikipedia.org/wiki/Системное_программирование
т.е. системным можно назавать тот тип приложений, который нужен для обеспечения работоспособности системы, большенство системных утилит и практически все драйвера попадют под это определение. Редактор реестара, проводник, дефрагментатор, различные оптимизаторы, средства администрирования системы - это все системные утилиты. Прикладыне же программы это другое - калькулятор, блокнот, фотошоп и т.д. Думаю мысль понятна.
← →
Инс © (2007-09-26 21:17) [145]
> Ну чтож... Не буду ругаться про знания, мне всегда хватало
> стандартных механизмов :) А вот начиная с Device и Symbolic
> Link - прошу поподробнее, параллельно остановимся на типе
> "file objects" в рамках NT, ну ты же знаешь о чем я говорю?
> :)
Да, объект файл тоже используется. Да не суть, в любом случае таких объектов ядра, как пайп или мэйлслот нет. Они состоят из других примитивов.
> Да ну и давайте-же вернемся к нашим баранам, т.е. к Рихтеру
> - пишет ли он книги о Системном программировании? :)
А разве мы уже определились с термином? На вопрос [130] ответьте, а то так спрыгнули...
← →
DVM © (2007-09-26 21:39) [146]
> Кстати, к сведению. Это далеко не все типы объектов. По
> крайней мере в Win2000 типов объектов 27.
Возможно. Остальные мне непосредственно не попадались, да и некторые из тех что я привел крайне редко мною используются.
> А канал и мэйлслот в них не входят.
Рихтер пишет, что входят.
← →
Инс © (2007-09-26 21:48) [147]
> Рихтер пишет, что входят.
Рихтер пишет очень упрощенно. Установи себе Object Viewer, сам увидишь, какие типы объектов существуют. А то, о чем ты говоришь - это Win32-объекты. Они уровнем выше и составляются из одного или более объектов исполнительной системы. А уже объекты исполнительной системы состоят из объектов ядра.
← →
Инс © (2007-09-26 21:52) [148]
> Остальные мне непосредственно не попадались
И не попадутся никогда, если учить WinAPI ;-)
← →
DVM © (2007-09-26 22:03) [149]
> И не попадутся никогда, если учить WinAPI
Чего его учить, оно не стихотворение. Его использовать надо.
← →
Инс © (2007-09-26 22:06) [150]
> Чего его учить, оно не стихотворение. Его использовать надо.
Полностью согласен. Посмотри пост [7]
← →
Инс © (2007-09-26 22:16) [151]
> Они уровнем выше и составляются из одного или более объектов
> исполнительной системы.
А почему так сделано, г-н Rouse_ объяснил в [21] сам того не желая :) Подсистем несколько, какой-нибудь Posix не имеет никакого отношения к Win32-объектам, зато имеет самое непосредственное отношение к исполнительной системе и тем более ядру. И на базе этих объектов строит свои ресурсы.
← →
Rouse_ © (2007-09-27 09:01) [152]
> На вопрос [130] ответьте, а то так спрыгнули...
Прикладнуха :)
ЗЫ: Блин, надобыть уже заканчивать а то треть рабочего вре мени на отслеживание только этой ветки уходит :)
← →
Инс © (2007-09-27 09:17) [153]
> Прикладнуха :)
Забыл обосновать и имхо забыл добавить. С тобой ведь не только я один не согласен.
> Но вообще-то фраза изначальна выглядела как "и реализованы
> они не в ядре". Посему и говорю - RTFM прежде чем постить.
Естественно критическая секция реализована в пользовательском режиме. Я и до сих пор это утверждаю. Это ивент в ядре, который КС использует. Я и сам могу реализовать в пользовательском приложении свой объект, работающий по аналогичному принципу. Значит по твоему утверждению я вышел за пределы юзер-мод и стал системеным программистом ;-)
> ЗЫ: Блин, надобыть уже заканчивать а то треть рабочего вре
> мени на отслеживание только этой ветки уходит :)
Аминь. Заканчивай. Жаль только ты мне так и не объяснил, почему я неправилно понимаю термин WinAPI.
← →
Rouse_ © (2007-09-27 09:19) [154]
> почему я неправилно понимаю термин WinAPI.
Потомучто WinAPI существует только в рамках Win32 подсистемы :)
← →
Игорь Шевченко © (2007-09-27 09:24) [155]Хорошо жить с резиновыми пальцами.
← →
Инс © (2007-09-27 10:03) [156]
> Потомучто WinAPI существует только в рамках Win32 подсистемы
> :)
И что? Не хотелось бы тебя огорчать, но я это понимаю. На твой коварный вопрос [21] про подсистемы я ответил вроде бы. Тем не менее это не мешает Win32API из подсистемы воздействовать на систему.
← →
Rouse_ © (2007-09-27 10:05) [157]POSIX тоже воздействует на систему. Я бросил кнопку на форму - тоже произошло воздействие на систему. Но это программирование в рамках подсистемы и для нее-же, а не для системы.
← →
Игорь Шевченко © (2007-09-27 10:06) [158]
> Потомучто WinAPI существует только в рамках Win32 подсистемы
> :)
И эта подсистема гвоздями прибита к ядру и составляет с ним неразделимое целое...
← →
Rouse_ © (2007-09-27 10:08) [159]Лана я закончил, а то на работу времени нема со всей этой байдой :)
← →
Инс © (2007-09-27 10:08) [160]
> Я бросил кнопку на форму - тоже произошло воздействие на
> систему. Но это программирование в рамках подсистемы и для
> нее-же, а не для системы.
Бросить кнопку на форму - да. Это прикладнуха. Объект воздействия - это не система. Объект - это кнопка и форма. А когда объектом воздействия становятся элементы ОС - это системное программирование.
Страницы: 1 2 3 4 5 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.81 MB
Время: 0.062 c