Пт, 29.03.2024, 16:52
Приветствую Вас Гость | RSS
Главная | А кто PL знает ? :) - Страница 2 - Форум | Регистрация | Вход
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум » Технические форумы » MVS (OS/390, zOS) » А кто PL знает ? :)
А кто PL знает ? :)
GregoryДата: Вт, 11.08.2009, 18:31 | Сообщение # 16
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
Quote
ENQ\DEQ скорее тянет на REUSABLE

Программа "по сути" как Вы выражаетесь, реентерабельна. ENQ/DEQ как раз и позволяет ей оставаться реентерабельной, обеспечивая корректное (последовательное) выполнение критической секции кода.

Что такое тело цикла или тело процедуры, понятно. А что такое тело программы? :-)

Сообщение отредактировал Gregory - Вт, 11.08.2009, 18:34
 
XOpenДата: Вт, 11.08.2009, 18:36 | Сообщение # 17
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
По "сути" - это да. Разве я спорю? У меня же тоже самое написано. К тапочкам какие претензии? cry

зы: совсем запутался. Просто "сути" имелись в виду разные... wacko


Худая корова еще не газель!

Сообщение отредактировал XOpen - Вт, 11.08.2009, 18:44
 
GregoryДата: Вт, 11.08.2009, 18:47 | Сообщение # 18
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
так как я уже писал один раз формальная реентерабельность это флажок, устанавливаемый без проверки. Практически любая реентерабельная программа содержит код, выполняемый строго последовательно. Если программа получает память, это SVC, и некоторые команды его должны выполняться последовательно, что обеспечивается запретом прерываний (последовательно на всем z/OS!). Поэтому с "модификацией тела программы" я не соглашаюсь :-)

*) практически любая - это за исключением программ типа IEFBR14 :-)

Сообщение отредактировал Gregory - Вт, 11.08.2009, 18:49
 
XOpenДата: Вт, 11.08.2009, 18:49 | Сообщение # 19
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Gregory)
Что такое тело цикла или тело процедуры, понятно. А что такое тело программы? :-)

Судя по википедии: Тело (в программировании) — некоторая часть программы.


Худая корова еще не газель!
 
GregoryДата: Вт, 11.08.2009, 18:51 | Сообщение # 20
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
и какая же это часть? динамическая область памяти это тоже часть тела программы?
Мне не сам этот термин не нравится, а именно в контексте "модификация тела программы".


Сообщение отредактировал Gregory - Вт, 11.08.2009, 18:53
 
XOpenДата: Вт, 11.08.2009, 18:56 | Сообщение # 21
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Gregory)
так как я уже писал один раз формальная реентерабельность это флажок, устанавливаемый без проверки. Практически любая реентерабельная программа содержит код, выполняемый строго последовательно. Если программа получает память, это SVC, и некоторые команды его должны выполняться последовательно, что обеспечивается запретом прерываний (последовательно на всем z/OS!). Поэтому с "модификацией тела программы" я не соглашаюсь :-)

IBM пишет то же самое, что и я. Флажок с модесетами - это уже хакерство, читерство и прочие последствия избытка знаний. tongue

Добавлено (11.08.2009, 18:56)
---------------------------------------------

Quote (Gregory)
и какая же это часть? динамическая область памяти это тоже часть тела программы?
Мне не сам этот термин не нравится, а именно в контексте "модификация тела программы".

Вот теперь поймал! biggrin Как насчет "модификация статического тела программы" ("ужос нах", сам не понял, что написал) Ваше определение в студию!


Худая корова еще не газель!

Сообщение отредактировал XOpen - Вт, 11.08.2009, 18:58
 
GregoryДата: Вт, 11.08.2009, 19:01 | Сообщение # 22
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
если речь идет о прикладной программе, это так, а прикладной программе совершенно незачем модифицировать LPA! Какой вопрос, такой и ответ... А вот ENQ/DEQ это механизм, предоставляемый прикладной программе, чтобы эта программа могла реализовать критическую секцию.
Если же программа модифицирует управляющие блоки, она должна делать это корректно, используя один из предусмотренных для этого механизмов, например, MODESET. При чем тут хакерство??
Quote
Флажок с модесетами - это уже хакерство, читерство и прочие последствия избытка знаний.

Извиняюсь конечно, но это совершенный абсурд... Указание атрибутов модуля это хакерство? Корректное программирование это читерство? Извините конечно, но цитированная фраза уж точно не от избытка знаний :-)

А по поводу тела программы я, пожалуй, соглашусь - пусть будет хоть тело, хоть тушка :-). "Скелет программы" используемое выражение? А раз есть скелет то и тело тоже есть :-) Только вот тезис

Quote
Реентерабельная программа - это программа которая НЕ МОДИФИЦИРУЕТ свое тело

все равно неверен по существу...


Сообщение отредактировал Gregory - Ср, 12.08.2009, 02:18
 
XOpenДата: Ср, 12.08.2009, 12:44 | Сообщение # 23
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Gregory)
Извиняюсь конечно, но это совершенный абсурд... Указание атрибутов модуля это хакерство? Корректное программирование это читерство? Извините конечно, но цитированная фраза уж точно не от избытка знаний :-)

Дисскусия перерастает в пустопорожнее переливание. Есть официальное определение и методы ему следования. Все ваши действия - это неквалифицированное программирование. Нельзя править то, что не положено по дизайну. Если вы знаете команду модесет и у вас есть возможность положить ее в авторизованную библиотеку(80% программистов это недоступно) и вы применяете ее таким образом... вашему админу пора освежить знания по RACF, если он не хочет загадочных проишествий в своей системе.

Не понятны также все эти придирки по мелочам и не по существу. Я же тоже могу сказать: "В команде modeset нет параметров ENABLE/DISABLE и все написаное бред"


Худая корова еще не газель!
 
GregoryДата: Ср, 12.08.2009, 13:21 | Сообщение # 24
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
Quote
Дисскусия перерастает в пустопорожнее переливание.

Возможно...
Quote
Есть официальное определение и методы ему следования. Все ваши действия - это неквалифицированное программирование.

Вы по-видимому, не только никогда не писали системных программ, но и никогда их не видели. Посмотрите в SYS1.SAMPLIB, например, на IEEGSYS, там таких программ десятки. Официальное определение реентерабельности цитировано выше, а Ваше определение неверно, и если Вы этого не понимаете, то очень жаль.
Quote
Если вы знаете команду модесет и у вас есть возможность положить ее в авторизованную библиотеку(80% программистов это недоступно)

Еще раз повторяю - есть разные задачи и требуют они разных средств. Некоторые задачи не могут быть решены без использования авторизованных сервисов, и, естественно, такая программа должна иметь авторизацию. Между прочим, этот форум обсуждает ВСЕ вопросы z/OS, а не толоько прикладное программирование.
Quote
вашему админу пора освежить знания по RACF, если он не хочет загадочных проишествий в своей системе.

уровень привилегий пользователя в операционной системе должен соответствовать уровню решаемых им задач, не больше и не меньше. Если задачей является инсталляция продуктов, уровень доступа должен позволять это сделать. Если обязанности пользователя это проектирование и оптимизация БД, он должен иметь привилегии доступа к словарю БД (SYSIBM.*).
Quote
"В команде modeset нет параметров ENABLE/DISABLE и все написаное бред"

Операнд ENABLE там есть, см. SYS1.MACLIB. В z/OS MODESET ENABLE замененяется SYSLOCK.
Я по памяти пишу, поэтому кончено, есть неточности. И я не претендую на безошибочность и признаю свои ошибки когда мне на них указывают, что и Вам советую...
 
XOpenДата: Ср, 12.08.2009, 13:39 | Сообщение # 25
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Gregory)
В z/OS MODESET ENABLE замененяется SYSLOCK.

Не SYSLOCK, а SETLOCK(который и потверждает, что ENABLE нет). Признаем?
В официальном определении вообще нет ничего о флажках. Признаем? (так и не дождались вашего кстати. Критиковать каждый умеет.)
IEEGSYS, не реентерабельная программа. Признаем?

Обсуждение вопросов не есть выпячивание своей индивидуальности. Не надо прятать свой недостаток знаний за мелкими придирками и все будет ок.


Худая корова еще не газель!
 
GregoryДата: Ср, 12.08.2009, 14:50 | Сообщение # 26
Генерал-майор
Группа: Доверенные
Сообщений: 479
Репутация: 22
Статус: Offline
Quote
Не SYSLOCK, а SETLOCK

Согласен, очепятка :-). Да, MODESET с ENABLE в z/OS выдаст MNOTE "используй SETLOCK", тоже согласен. В более ранних системах это был штатный системный механизм, сейчас нет. Признаю.

Quote
В официальном определении вообще нет ничего о флажках.

?? На основании чего система определяет является ли загрузочный модуль реентерабельным? А как ставится этот атрибут? z/OS V1R10.0 MVS Program Management: User's Guide and Reference, 2.5. Там кстати написано вот что:
Reenterable (reentrant). The module is designed for concurrent execution by multiple tasks. If a reenterable module modifies its own data areas or other shared resources in any way, appropriate serialization must be in place to prevent interference between using tasks.
Ну что, может Вас хоть это убедит?

Добавлено (12.08.2009, 14:50)
---------------------------------------------
кстати о MODESET ENABLE... Я полагаю, что соответствующий список параметров у SVC все же поддерживается и работать программа с ENABLE все же будет, потому что IBM с совместимостью почти всегда тип топ. Постараюсь проверить это на домашнем z/OS :-) Но вообще конечно, у меня есть такая проблема - полагаться на старые знания, верные для < OS/390 и не проверять как это выглядит в z/OS сегодня. Поэтому я полносью признаю Ваше замечание насчет MODESET surprised

 
XOpenДата: Ср, 12.08.2009, 15:17 | Сообщение # 27
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Gregory)
If a reenterable module modifies its own data areas or other shared resources in any way, appropriate serialization must be in place to prevent interference between using tasks.
Ну что, может Вас хоть это убедит?

Убедил. wink

Такая фраза действительно есть, хотя в той же книжке:
RENT
The module is reenterable. It can be executed by more than one task at a time. A task can
begin executing it before a previous task has completed execution. A reenterable module
cannot modify its own code. (MVS protects your module's virtual storage so that your
module cannot be modified.)

и тут же в глосарии
reenterable. The reusability attribute that allows a program to be used concurrently by
more than one task. A reenterable module can modify its own data or other shared resources,
if appropriate serialization is in place to prevent interference between using tasks. See
reusability.

Значит такой точке зрения быть! happy


Худая корова еще не газель!
 
slДата: Ср, 12.08.2009, 16:14 | Сообщение # 28
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
настоящие программисты используют самомодифицирующийся код,
особенно в тех случаях, когда это экономит 20 наносекунд в
середине очень короткого цикла;

("Настоящие программисты не используют Паскаль")

Это просто так, чтоб дискуссию подогреть smile :) smile

 
akostДата: Ср, 12.08.2009, 19:58 | Сообщение # 29
Admin
Группа: Администраторы
Сообщений: 617
Репутация: 5
Статус: Offline
Quote (sl)
настоящие программисты используют самомодифицирующийся код,
особенно в тех случаях, когда это экономит 20 наносекунд в
середине очень короткого цикла;
("Настоящие программисты не используют Паскаль")
Это просто так, чтоб дискуссию подогреть

Экий ты змей... Заварил дискуссию, а теперь подогреваешь)).
 
slДата: Ср, 12.08.2009, 22:59 | Сообщение # 30
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Quote (akost)
Экий ты змей... Заварил дискуссию, а теперь подогреваешь)).

Дык smile
На самом деле я не ожидал, что тема окажется столь горячей smile Похоже, народ просто соскучился по здоровому флейму smile
Вот я ща подогрею еще...

Сам я писал конструкции вида

Code

          BC    0,LABELX
          OI     X'F0',*-4

, и утверждаю, что на моих машинах это было реентерабельно! smile
Т.е. второй и последующий входы шли по другой ветке, но конструкция ДОПУСКАЛА повторый вход, что и есть по определению re-enterable . Ну, кто бросит в меня камень ? smile

Вот, честно скажу, не знаю - будет ли это корректно работать на современных машинах ?...

 
Форум » Технические форумы » MVS (OS/390, zOS) » А кто PL знает ? :)
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: