Data set (IBM mainframe): Difference between revisions

Content deleted Content added
Line 44:
Besides members, a PDS consists also of their directory. Each member can be accessed directly using the directory structure. Once a member is located, the data stored in that member is handled in the same manner as a PS (sequential) data set.
 
Whenever a member is deleted, the space it occupied is unusable for storing other data. Likewise, if a member is re-written, it is stored in a new spot at the back of the PDS and leaves wasted “dead” space in the middle. The only way to recover “dead” space is to perform frequent file compression.<ref name=Stephens>{{cite book|last1=Stephens|first1=David|title=What On Earth is a Mainframe?|date=Oct 2008|publisher=Lulu.com|isbn=978-1-4092-2535-5|page=52|url=https://books.google.com/books?id=1NMYOOW3gHMC|accessdate=May 11, 2018}}</ref> Compression, which is done using the [[IEBCOPY]] utility,<ref>{{cite web
|url=https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieac600/iea3c6_Data_Sets_with_Partitioned_Organization.htm
|title=Data Sets with Partitioned Organization
|quote=.. compressing using IEBCOPY}}</ref> moves all members to the front of the data space and leaves free usable space at the back. (Note that in modern parlance, this kind of operation might be called [[defragmentation]] or [[garbage collection (computer science)|garbage collection]]; [[data compression]] nowadays refers to a different, more complicated concept.) PDS files can only reside on [[direct access storage device|DASD]], not on [[magnetic tape]], in order to use the directory structure to access individual members. Partitioned datasets are most often used for storing multiple [[job control language]] files, [[IBM mainframe utility programs|utility]] control statements, and executable modules.
 
An improvement of this scheme is a Partitioned Data Set Extended (PDSE or PDS/E, sometimes just ''libraries'') introduced with DFSMSdfp for [[MVS/XA]] and [[MVS/ESA]] systems. A PDS/E library can store program objects or other types of members, but not both. BPAM cannot process a PDS/E containing program objects.