Сб, 28.12.2024, 04:21
Приветствую Вас Гость | RSS
Главная | Знаете ли вы основы z/OS ? - Форум | Регистрация | Вход
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Знаете ли вы основы z/OS ?
XOpenДата: Вт, 21.02.2012, 16:06 | Сообщение # 1
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Давайте проверим себя, можем ли мы считаться спецами в z/OS или не знаем даже основ. Ответьте сначала честно, а потом уже запускайте.

//NOWHERE EXEC PGM=IEFBR14
//SYSUT1 DD DISP=SHR,DSN=SPOSPEL.NOWHERE,VOL=SER=VOL001,UNIT=3390

С каким кодом закончится этот синтаксически верный джоб? Известно, что VOL001 в онлайне и не содержит данный набор. Каталог чист. Все остальные политики не важны, здесь все имеется для ответа. Варианты:

1. RC=0 или 2. RC=8 или 3. JCL ERROR или 4. ABEND
 
BibizyanДата: Вт, 21.02.2012, 17:23 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
вот так вот в лоб если - то я бы выбрал вариант нумер три. сперва, по-моему, делается аллокация того, что нужно в степе, потом запускается программа. аллокация навернётся, получим ошибку.
 
stas9132Дата: Вт, 21.02.2012, 17:34 | Сообщение # 3
Сержант
Группа: Проверенные
Сообщений: 24
Репутация: 0
Статус: Offline
А как завершится вот такой JCL?
Шаг задания имеет параметр REGION=1024K. Программа получает динамическую память LENGTH=1024*1030 = 1030К

//ASMJOB JOB (),'',
// CLASS=A,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//STEP1 EXEC PROC=ASMACLG,REGION=1024K
//C.SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB
// DD DISP=SHR,DSN=SYS1.MODGEN
// DD DISP=SHR,DSN=ASM.SASMMAC1
// DD DISP=SHR,DSN=ASM.SASMMAC2
//C.SYSIN DD *
START
BASR 12,0
USING *,12
ST 14,SA14
STORAGE OBTAIN,LENGTH=1024*1030
LTR 15,15
BRNZ EXITL
STORAGE RELEASE,LENGTH=1024*1030,ADDR=(1)
EXITL L 14,SA14
BR 14
SA14 DS A
END
 
AKonevДата: Вт, 21.02.2012, 17:40 | Сообщение # 4
Лейтенант
Группа: Проверенные
Сообщений: 66
Репутация: 5
Статус: Offline
Я за первый вариант, в IEFBR14 нет никаких OPEN и поэтому все равно какие DD указаны, лишь бы были синтаксически правмльны.
 
drblezДата: Вт, 21.02.2012, 18:15 | Сообщение # 5
Сержант
Группа: Доверенные
Сообщений: 37
Репутация: 2
Статус: Offline
Quote (XOpen)
//NOWHERE EXEC PGM=IEFBR14
//SYSUT1 DD DISP=SHR,DSN=SPOSPEL.NOWHERE,VOL=SER=VOL001,UNIT=3390


Мнится мне, что 3, ибо SHR - набор должен быть... Щас попробую

Добавлено (21.02.2012, 18:15)
---------------------------------------------

Quote (drblez)
Щас попробую


2 //NOWHERE EXEC PGM=IEFBR14
3 //SYSUT1 DD DISP=SHR,DSN=SPOSPEL.NOWHERE,UNIT=3390
IEF212I DRBLEZA NOWHERE SYSUT1 - DATA SET NOT FOUND
 
BibizyanДата: Вт, 21.02.2012, 18:34 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
Quote (drblez)
2 //NOWHERE EXEC PGM=IEFBR14 3 //SYSUT1 DD DISP=SHR,DSN=SPOSPEL.NOWHERE,UNIT=3390 IEF212I DRBLEZA NOWHERE SYSUT1 - DATA SET NOT FOUND

ух ты! а у меня в итоге прошло по нулям.
проверил... всё зависит от того, указывать ли VOL=SER=VOL001,UNIT=3390 (с реальным диском). если и то, и другое есть - отрабатывает по нулям. если хотя бы одного нету - ошибка.

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


Сообщение отредактировал Bibizyan - Вт, 21.02.2012, 18:44
 
XOpenДата: Вт, 21.02.2012, 21:53 | Сообщение # 7
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (Bibizyan)
ух ты! а у меня в итоге прошло по нулям.

Именно. Смысл в том, что z/OS ищет наличие девайса, но никак не самого набора на нём. Добро пожаловать в загадочный мир логики z/OS программистов.

ps: каталог обрабатывается другой логикой и дает более предсказуемый "Data Set not found". JCL error.

Quote (AKonev)
Я за первый вариант, в IEFBR14 нет никаких OPEN

Ответ правильный, но логика неверна. Буду остальным задавать вопрос с примером PGM=MYPROG.

Quote (Bibizyan)
если не нужно (т.е. есть всё необходимое) - отработает.

важный момент, диск должен быть не просто указан, а еще и доступен.
 
AKonevДата: Ср, 22.02.2012, 09:14 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 66
Репутация: 5
Статус: Offline
Quote (XOpen)
Ответ правильный, но логика неверна. Буду остальным задавать вопрос с примером PGM=MYPROG.

Хорошо smile Попробую с логикой. На этапе обработки DD-карт, для каждой из них строится блок управления файлом (JFCB)
Заполняются там отнюдь не все поля, а некоторый минимальный перечень. В него как раз обязательно должны попасть данные из UCB (возможно там просто ссылка на живой UCB, не помню, смотреть надо). Вот почему если имя файла указано, а диск нет, то идет обращение к каталогу. Разумеется это для DISP=SHR,OLD и MOD. Далее, если будет выдан обычный OPEN произойдет непосредственное чтение DSCB и заполнение блоков DCB и DEB. Можно прочитать JFCB (макро RDJFCB), произвести там модификацию много чего и выдав OPEN TYPE=J читать затем совсем например другой файл. Этот прием широко использовался в древних версиях ОС, когда надо было в одной программе работать с большим количеством разных файлов, а DD - карты плодить не хотелось. Когда появилась DYNALLOC, все стало гораздо проще.
 
XOpenДата: Ср, 22.02.2012, 10:09 | Сообщение # 9
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Quote (AKonev)
Попробую с логикой.

Имелось в виду в том смысле, что независимо от того есть open или нет, упасть по JCL error может еще до запуска программы (диск не указан или не доступен). Но, если это подразумевалось в вашем ответе и уточнялось, что 213 тоже не будет - то снимаю шляпу. cool
 
GregoryДата: Ср, 22.02.2012, 11:32 | Сообщение # 10
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Quote
Можно прочитать JFCB (макро RDJFCB), произвести там модификацию много чего и выдав OPEN TYPE=J читать затем совсем например другой файл... Когда появилась DYNALLOC, все стало гораздо проще.

Вставлю пять копеек: между модификацией JFCB, что и сейчас возможно, и DYNALLOC принципиальная разница. "Можно прочитать JFCB произвести там модификацию много чего и выдав OPEN TYPE=J читать затем совсем например другой файл" но только на том же томе - распределение устройств уже выполнено. DYNALLOC же обеспечивает динамическое распределение устройств. В ранних OC динамическое распределение устройств тоже существовало (TSO DAIR), равно как и динамическое распределение памяти (SVC 32), но эти API не были открыты для пользователя и многие умельцы народные что только не выделывали для получения желаемого эффекта biggrin
К вопросу о том, почему так сделано - я предполагаю, что причина этого - необходимость избежать deadlock (напомню, что ранние OC это системы пакетной обработки): задание A получает устройство U1, затем запрашивает U2, а в это время задание B получило устройство U2 и запрашивает U1... Для динамического распределения нужна намного более сложная логика планирования, что на машине с 256К памяти достаточно проблематично.


Сообщение отредактировал Gregory - Ср, 22.02.2012, 14:22
 
AKonevДата: Ср, 22.02.2012, 11:50 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 66
Репутация: 5
Статус: Offline
Quote (stas9132)
А как завершится вот такой JCL?

Хорошо завершится. smile Реально REGION будет 1024K + 64K. Если задействован exit IEALIMIT, то добавка может быть и другой.

Добавлено (22.02.2012, 11:50)
---------------------------------------------

Quote (Gregory)
но эти API не были открыты для пользователя и многие умельцы народные что только не выделывали для получения желаемого эффекта

Эх!, biggrin я даже ретранслировал почти все модули SVC 32. что бы попытаться до конца понять что оно умеет делать. Помнится научился создавать простые файлы и завязал с этим из-за отсутствия на тот момент необходимостей.
 
GregoryДата: Ср, 22.02.2012, 11:54 | Сообщение # 12
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
//NOWHERE EXEC PGM=IEFBR14
//SYSUT1 DD ...
последовательность действий такая:
1) вызов catalog management если в DD отсутствует VOL=SER и/или UNIT, а также если указано VOL=REF=dsname
2) распределение устройств (возможно, с запросом монтирования тома, еcли том не установлен и в UNIT не указан DEFER)
3) распределение памяти, если в DD указано или подразумевается DISP=NEW и UNIT определяет том прямого доступа

т.е. здесь еще еще один момент, который сейчас практически забыт - монтирование тома. Диски бывали съемными, а дисководы были дороги, и их было не так много, например, всего 4 штуки 5061 (29Мб) (сравните с ресурсами современного мобильного телефона smile ) Магнитные ленты (кассеты) и сейчас съемные носители.


Сообщение отредактировал Gregory - Чт, 23.02.2012, 10:54
 
XOpenДата: Пт, 04.05.2012, 22:00 | Сообщение # 13
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Продолжаем проверять свои знания:
z/OS имеет высокий уровень безопасности и соответствует рейтингу EAL5?
Ответы: 1. Правда 2. Не правда
 
akostДата: Сб, 05.05.2012, 12:18 | Сообщение # 14
Admin
Группа: Администраторы
Сообщений: 619
Репутация: 5
Статус: Offline
Поправьте меня, если что. Но, по-моему, EAL-5 был навешен на оборудование, а не на систему. Гугль говорит о сервере z10 EC, в частности. А вот про систему - не встречал. Так что мой ответ - 2.
Тут, кстати, интересное обсуждение по этому поводу.
 
XOpenДата: Сб, 05.05.2012, 15:49 | Сообщение # 15
Генерал-майор
Группа: Администраторы
Сообщений: 325
Репутация: 4
Статус: Offline
Выбран верный ответ. Та-дам! biggrin

http://www.commoncriteriaportal.org/products_OS.html#OS

Горькая правда такова, что EAL5 даже не у сервера, а у технологии LPAR. angry
z/OS тоже имеет сертификат, но EAL4+

И если IBM маркетологи стараются мягко всё завуалировать и говорят у нас есть EAL5 в z Series, то следующая волна уже всё мешает в кучу. Такая же истории как с запуском Windows на мейнфрейме.

Ну и по ссылке видно, что EAL4+ есть и у Линуксов и Юниксов. То есть ничего сверх выдающегося в самом z/OS в плане безопасности нет.
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: