Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.84 MB
Время: 0.03 c
15-1191250150
Andy BitOff
2007-10-01 18:49
2007.11.11
Запрос SQL. Создание, оптимизация.


3-1183376487
Zik
2007-07-02 15:41
2007.11.11
Список SQL серверов


2-1192530303
Dark_blue
2007-10-16 14:25
2007.11.11
Алгоритм шифрования


2-1192602435
O.O
2007-10-17 10:27
2007.11.11
ScrollBars в DBGrid


4-1178388982
buben
2007-05-05 22:16
2007.11.11
Application.Handle