Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.058 c
11-1176224694
Don
2007-04-10 21:04
2007.11.11
Владимиру по KOLadd


11-1175523578
Fregl
2007-04-02 18:19
2007.11.11
Поддержка MySQL


2-1192536340
Kolan
2007-10-16 16:05
2007.11.11
Variant := := StrToInt( 1 ) приводит к исключению, почему?


15-1190992526
vasIZmax
2007-09-28 19:15
2007.11.11
True, False и Почти (Almost, по англ. по-моему))))


2-1192726332
Malik
2007-10-18 20:52
2007.11.11
PopupMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский