A Programmer's Introduction to IBM System/360 Assembler Language

Total Page:16

File Type:pdf, Size:1020Kb

A Programmer's Introduction to IBM System/360 Assembler Language --..- - ----- ---- A Programmer's Introduction - -.~-- --- --_---_.-- - - --- .. - to IBM System/360 Assembler Language Student Text --"---~-- - ---- A Programmer's Introduction - -.---- -~- ------ - - --- to IBM System/360. -~-.- Assembler Language Student Text Minor Revision (August 1970) This publication is a minor revision of Form SC20-1646-5 incorporating corrections made on pages dated (8/70). The original publication is not obsoleted. Requests for copies of IBM publications should be made to your IBM representative or to the IBM branch office serving your locality. Address comments concerning the contents of this publication to IBM Corporation, DPD Education Development - Publications Services, Education Center, South Road, Poughkeepsie, New York 12602. © Copyright International Business Machines Corporation 1956, 1969 Preface This student text is an introduction to System/360 Computing System Fundamentals and Introduction to assembler language coding. It provides many examples of System/360. The student who is not ehrolle~ in a compre­ short programs shown in assembled form. Some elementary hensive programming course will tmd the P. I. book programming techniques and the specific instructions illus­ Fundamentals of Programming a valuable guide to problem trated in the programs are discussed in simple, relatively analysis and program flowcharting. nontechnical terms. Much of the text is based on infor­ The text and programs of this book have been revised mation in IBM System/360 Principles of Operation throughout, mainly to reflect changes in programming (GA22-6821). This includes a brief review of relevant conventions attributable to the development of System/360 System/360 concepts and descriptions of selected assembler operating systems. Chapter 1 is new, and several sections in language instructions for arithmetic, logical, and branching other chapters have been entirely rewritten. The sample operations. Standard (flXed-point) , decimal, and floating­ programs have been reassembled under the widely used point arithmetic are discussed. The book also includes an Disk Operating System (DOS). As far as possible, usages elementary introduction to assembler language and the limited to DOS have been avoided, and the programs and assembler program, and chapters on base register addressing text in general are applicable to System/360 models 25, 30, and on program linkages and relocation. The coding of 40,50,65, and 75, under any of the operating systems. many other common programming techniques, such as the IBM publications that may be useful to the student are: use of branches, loops, and counters, is shown. The use of IBM System/360 Principles of Operation (SRL manual macro instructions is demonstrated, but not covered in GA22-6821) detail. Program flowcharting and input/output operations IBM System/360 Reference Data (card GX20-1703) are beyond the scope of the book. IBM System/360 System Summary (SRL manual The publication is a sampler rather than a comprehensive GA22-6810) textbook. It is intended for supplementary reading for the Number Systems (Student Text GC20-1618.) student in a regular course of study on System/360 assem­ Introduction to IBM System/360 Architecture (Student bler language coding, and for the novice programmer. In Text GC20-1667) . general, the reader will fmd that the program examples are Introduction to System/360 (P J. Course GR29-0256 quite simple at the beginning of each chapter, or ·major through -0259) subject division, and become progressively more complex. Computing System Fundamentals (p. I. Course If the going seems difficult, it is suggested tltat he simply GR29-0280 through -0282) skip to the next subject and come back later. Fundamentals of Programming P J. Course SR29-OO19) The student should have access to two IBM System/360 System/360 Assembler Language Coding (p. I. Course System Reference Library (SRL) manuals for reference SR29-0231 through -0235) purposes: the Principles of Operation and the assembler The form numbers of the assembler specification specification manual for one of the System/360 operating manuals for the various System/360 programming systems systems. (All publications and their form numbers are listed are: at the end of the Preface.) He should also be familiar with Basic Programming Support (Tape System)-GC24-3335 fundamental concepts of data processing and the basic Basic Operating System-GC24-3361 operating principles of System/360. Two IBM programmed Tape Operating System } 4 instruction (p. I.) courses, or their equivalent, are pre­ Disk Operating System GC24-341 requisite to a. full understanding of this student text: Operating System-GC28-6514 iii Contents Chapter 1: Introduction .. 1 An Example. .. 52 What Is Assembler Language? 1 More than One Base Register . 54 Machine Language . 1 Separate Base Registers for Instructions and Data.. 56 Assembler Language . 1 Questions and Exercises. .. 58 Why Learn Assembler Language? . 4 The Assembler Program . 5 Chapter 5: Decimal Arithmetic . 60 The System Environment. 5 Addition and Subtraction in Decimal 61 Functions of the Assembler 5 Decimal Multiplication .. 63 Final Processing ... 6 Decimal Division ..... 64 Use of the Coding Form . 7 Shifting of Decimal Fields. 66 An Assembler Language Program 9 Shifting to the Right . 66 Writing the Program . 9 Shifting to the Left .. 67 The Assembly Listing .... 10 Decimal Division with Shifting 68 Error Analysis by the Assembler. 12 Format and Base Conversions. 69 Modifying an Assembler Language Program . 15 Decimal Comparison: Overtime Pay 71 The Social Security Problem in Decimal. 72 Chapter 2: System/360 Review 17 The "Indian" Problem. 73 Main Storage ........... 17 Questions and Exercises. 74 Bytes and Data Field Lengths 17 Addressing . 18 Chapter 6: Logical Operations on Characters and Bits. Positioning on Integral Boundaries. 18 75 Alphameric Comparison: An Address Sort 76 Central Processing Unit . 19 General and Floating-Point Registers . 19 Logical Tests. 78 The Wallpaper Problem. 78 Arithmetic and Logical Unit . 19 Setting Bits On and Off. 79 Program Execution . 23 A Self-Checking Number Routine. 80 Sequential Instruction Execution. 23 A Final Example. 82 Branching ............ 23 Questions and Exercises . 84 Instruction Format. 23 Generation of Main Storage Addresses 24 Interruptions and the Program Status Word 25 Chapter 7: Edit, Translate, and Execute Instructions. 85 Hexadecimal Numbers. 26 The Edit Instruction. 86 Hexadecimal Code . 26 The Edit and Mark Instruction. 91 Hexadecimal Number System. 26 The Translate Instruction 92 How it Works. 92 Chapter 3: Fixed-Point Arithmetic . 29 An Example ....... 93 Addition and Subtraction . 29 The Translate and Text Instruction and the Execute Multiplication . 32 Instruction . .. 97 Multiplication and Division with Decimal Points. 34 An Assembler Application of Translate and Test and Shifting and Data Manipulation 37 Execute ............... 100 Branches and Decision Codes 39 Processing Variable-Length Blocked Records 102 The Condition C~de . 39 Questions and Exercises . 105 A Sorting Procedure . 39 Further Decisions: The Social Security Problem 42 Chapter 8: Subroutine Linkages and Program Simple Loops: Finding a Sum ........ 45 Relocation. 107 Case Study: Averaging a List of Temperatures 48 Subroutine Linkages. 108 Questions and Exercises. 50 Standard Linkage Registers 111 Program Relocation . 115 Chapter 4: Programming with Base Registers and the The Linkage Editor. 115 USING Instruction .. 51 The CALL and PDUMP Macros. 116 The USING Instruction . .. 51 Reading a Dump . 117 iv Communication between Separate Programs 120 Appendix ............ 139 Questions and Exercises . 124 System/360 Machine Instructions . 139 Condition Code Settings 140 Chapter 9: Floating-Point Arithmetic 125 Extended Mnemonic Codes . 140 Floating-Point Numbers . 126 EBCDIC Chart ......... 140 Floating-Point Instructions 130 System/360 Assembler Instructions. 142 Questions and Exercises . 134 Types of Assembler Language Constants 142 Answers to Questions and Exercises 135 Index ................. 143 FIGURES Assembly Listings of Programs 1-2 PROGA The program in Figure 1-1 . 3 1-5 PROGC The program rewritten with deliberate errors . 12 1-7 PROGB The same program modified to store the binary contents of register 6 . 15 3-2 STOCK The program in Figure 3-1 . 30 3-5 GROSS A program to perform binary (fixed-point) multiplication. 32 3-9 INTA A program involving binary multiplication and division with the result rounded off. 34 3-10 INTB A different version of the program of Figure 3-9, using a scale modifier for constants. 35 3-11 SHIFTA A program to separate three quantities stored in one fullword ............ 37 3-12 SHIFTB Modified version of the program of Figure 3-11, making it operate correctly with negative quantities. 38 3-15 SORT A program to carry out the sorting procedure charted in Figure 3-14 . 41 3-18 FICAI A program based on the flowchart in Figure 3-17 . 43 3-19 FICA2 A much better version of the program to calculate Social Security tax. 44 3-20 SUMA First version of a program to form the sum of 20 numbers . 45 3-21 SUMB Second version of program to form the sum of 20 numbers . 46 3-22 SUMC Third and shortest version of program to form the sum of 20 numbers, using the BXLE instruction . .. 47 3-23 AVGTEMP A program to compute average monthly temperature, which takes into account the possibility of omitted readings. .. 48 4-1 PROGE A program to show how the assembler calculates and supplies addresses of all storage operands ., 52 4-3 PROGF An incomplete program with an Origin (ORG) assembler instruction to simulate a length of over 4096 bytes, thus requiring two base registers . .. 54 4-4 LOOPA Program with separate base registers for processing and data, showing how a base register can be used to provide indexing for loop control .. .. 56 5-3 STOCK 1 The decimal arithmetic program in Figure 5-2 . .. 61 5-5 INTC A program that performs decimal multiplication; step-by-step results to be expected during exe- cution are shown in the comments field .......................... , 63 5-6 AVG Assembled program showing decimal division and "shifting"; step-by-step results to be expected during execution are included in the comments field .
Recommended publications
  • Task Scheduling Balancing User Experience and Resource Utilization on Cloud
    Rochester Institute of Technology RIT Scholar Works Theses 7-2019 Task Scheduling Balancing User Experience and Resource Utilization on Cloud Sultan Mira [email protected] Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Mira, Sultan, "Task Scheduling Balancing User Experience and Resource Utilization on Cloud" (2019). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Task Scheduling Balancing User Experience and Resource Utilization on Cloud by Sultan Mira A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in Software Engineering Supervised by Dr. Yi Wang Department of Software Engineering B. Thomas Golisano College of Computing and Information Sciences Rochester Institute of Technology Rochester, New York July 2019 ii The thesis “Task Scheduling Balancing User Experience and Resource Utilization on Cloud” by Sultan Mira has been examined and approved by the following Examination Committee: Dr. Yi Wang Assistant Professor Thesis Committee Chair Dr. Pradeep Murukannaiah Assistant Professor Dr. Christian Newman Assistant Professor iii Dedication I dedicate this work to my family, loved ones, and everyone who has helped me get to where I am. iv Abstract Task Scheduling Balancing User Experience and Resource Utilization on Cloud Sultan Mira Supervising Professor: Dr. Yi Wang Cloud computing has been gaining undeniable popularity over the last few years. Among many techniques enabling cloud computing, task scheduling plays a critical role in both efficient resource utilization for cloud service providers and providing an excellent user ex- perience to the clients.
    [Show full text]
  • Resource Access Control Facility (RACF) General User's Guide
    ----- --- SC28-1341-3 - -. Resource Access Control Facility -------_.----- - - --- (RACF) General User's Guide I Production of this Book This book was prepared and formatted using the BookMaster® document markup language. Fourth Edition (December, 1988) This is a major revision of, and obsoletes, SC28-1341- 3and Technical Newsletter SN28-l2l8. See the Summary of Changes following the Edition Notice for a summary of the changes made to this manual. Technical changes or additions to the text and illustrations are indicated by a vertical line to the left of the change. This edition applies to Version 1 Releases 8.1 and 8.2 of the program product RACF (Resource Access Control Facility) Program Number 5740-XXH, and to all subsequent versions until otherwise indicated in new editions or Technical Newsletters. Changes are made periodically to the information herein; before using this publication in connection with the operation of IBM systems, consult the latest IBM Systemj370 Bibliography, GC20-0001, for the editions that are applicable and current. References in this publication to IBM products or services do not imply that IBM· intends to make these available in all countries in which IBM operates. Any reference to an IBM product in this publication is not intended to state or imply that only IBM's product may be used. Any functionally equivalent product may be used instead. This statement does not expressly or implicitly waive any intellectual property right IBM may hold in any product mentioned herein. Publications are not stocked at the address given below. Requests for IBM publications should be made to your IBM representative or to the IBM branch office serving your locality.
    [Show full text]
  • 3.A Fixed-Priority Scheduling
    2017/18 UniPD - T. Vardanega 10/03/2018 Standard notation : Worst-case blocking time for the task (if applicable) 3.a Fixed-Priority Scheduling : Worst-case computation time (WCET) of the task () : Relative deadline of the task : The interference time of the task : Release jitter of the task : Number of tasks in the system Credits to A. Burns and A. Wellings : Priority assigned to the task (if applicable) : Worst-case response time of the task : Minimum time between task releases, or task period () : The utilization of each task ( ⁄) a-Z: The name of a task 2017/18 UniPD – T. Vardanega Real-Time Systems 168 of 515 The simplest workload model Fixed-priority scheduling (FPS) The application is assumed to consist of tasks, for fixed At present, the most widely used approach in industry All tasks are periodic with known periods Each task has a fixed (static) priority determined off-line This defines the periodic workload model In real-time systems, the “priority” of a task is solely derived The tasks are completely independent of each other from its temporal requirements No contention for logical resources; no precedence constraints The task’s relative importance to the correct functioning of All tasks have a deadline equal to their period the system or its integrity is not a driving factor at this level A recent strand of research addresses mixed-criticality systems, with Each task must complete before it is next released scheduling solutions that contemplate criticality attributes All tasks have a single fixed WCET, which can be trusted as The ready tasks (jobs) are dispatched to execution in a safe and tight upper-bound the order determined by their (static) priority Operation modes are not considered Hence, in FPS, scheduling at run time is fully defined by the All system overheads (context-switch times, interrupt handling and so on) are assumed absorbed in the WCETs priority assignment algorithm 2017/18 UniPD – T.
    [Show full text]
  • The CICS/MQ Interface
    1 2 Each application program which will execute using MQ call statements require a few basic inclusions of generated code. The COPY shown are the one required by all applications using MQ functions. We have suppressed the list of the CMQV structure since it is over 20 pages of COBOL variable constants. The WS‐VARIABLES are the minimum necessary to support bot getting and putting messages from and to queues. The MQ‐CONN would normally be the handle acquired by an MQCONN function, but that call along with the MQDISC call are ignored by CICS / MQ interface. It is CICS itself that has performed the MQCONN to the queue manager. The MQ‐HOBJ‐I and MQ‐HOBJ‐O represent the handles, acquired on MQOPEN for a queue, used to specify which queue the other calls relate to. The MQ‐COMPCODE and MQ‐REASON are the variables which the application must test after every MQ call to determine its success. 3 This slide contains the message input and output areas used on the MQGET and MQPUT calls. Our messages are rather simple and limited in size. SO we have put the data areas in the WORKING‐STORAGE SECTION. Many times you will have these as copy books rather than native COBOL variables. Since the WORKING‐STORAGE area is being copied for each task using the program, we recommend that larger messages areas be put into the LINKAGE SECTION. Here we use a size of 200‐300 K as a suggestion. However, that size will vary depending upon your CICS environment. When the application is using message areas in the LINKAGE SECTION, it will be responsible to perform a CICS GETMAIN command to acquire the storage for the message area.
    [Show full text]
  • Introduction to Xgrid: Cluster Computing for Everyone
    Introduction to Xgrid: Cluster Computing for Everyone Barbara J. Breen1, John F. Lindner2 1Department of Physics, University of Portland, Portland, Oregon 97203 2Department of Physics, The College of Wooster, Wooster, Ohio 44691 (First posted 4 January 2007; last revised 24 July 2007) Xgrid is the first distributed computing architecture built into a desktop operating system. It allows you to run a single job across multiple computers at once. All you need is at least one Macintosh computer running Mac OS X v10.4 or later. (Mac OS X Server is not required.) We provide explicit instructions and example code to get you started, including examples of how to distribute your computing jobs, even if your initial cluster consists of just two old laptops in your basement. 1. INTRODUCTION Apple’s Xgrid technology enables you to readily convert any ad hoc collection of Macintosh computers into a low-cost supercomputing cluster. Xgrid functionality is integrated into every copy of Mac OS X v10.4. For more information, visit http://www.apple.com/macosx/features/xgrid/. In this article, we show how to unlock this functionality. In Section 2, we guide you through setting up the cluster. In Section 3, we illustrate two simple ways to distribute jobs across the cluster: shell scripts and batch files. We don’t assume you know what shell scripts, batch files, or C/C++ programs are (although you will need to learn). Instead, we supply explicit, practical examples. 2. SETTING UP THE CLUSTER In a typical cluster of three or more computers (or processors), a client computer requests a job from the controller computer, which assigns an agent computer to perform it.
    [Show full text]
  • GEMTC: GPU Enabled Many-Task Computing
    GEMTC: GPU Enabled Many-Task Computing Scott Krieder, Ioan Raicu Department of Computer Science Illinois Institute of Technology Chicago, IL USA [email protected], [email protected] Abstract— Current software and hardware limitations prevent acceleration on HPC resources. However, a programmability gap still Many-Task Computing (MTC) workloads from leveraging exists between applications and accelerators. Researchers and hardware accelerators (NVIDIA GPUs, Intel Xeon Phi) boasting developers are forced to work within the constraints of closed Many-Core Computing architectures. Some broad application environments such as the CUDA GPU Programming Framework[3] classes that fit the MTC paradigm are workflows, MapReduce, (for NVIDIA GPUs). The goal of this work is to improve the high-throughput computing, and a subset of high-performance performance of MTC workloads running on GPUs through the use of computing. MTC emphasizes using many computing resources the GEMTC framework. The CUDA framework can only support over short periods of time to accomplish many computational 16 kernels running concurrently, one kernel per streaming tasks (i.e. including both dependent and independent tasks), multiprocessor (SM). One problem with this approach is that where the primary metrics are measured in seconds. MTC has all kernels must start and end at the same time, causing extreme already proven successful in Grid Computing and inefficiencies in heterogeneous workloads. By working at the Supercomputing on MIMD architectures, but the SIMD architectures of today’s accelerators pose many challenges in the warp level, (which sits between cores and SMs) I can trade efficient support of MTC workloads on accelerators. This work local memory for concurrency, and I am able to run up to 200 aims to address the programmability gap between MTC and concurrent kernels.
    [Show full text]
  • Real-Time Operating Systems with Example PICOS18
    Real-Time Operating Systems With Example PICOS18 Sebastian Fischmeister 1 What is an Operating System? . A program that acts as an intermediary between a user of a computer and the computer hardware . Operating system goals: o Execute user programs and make solving user problems easier. o Make the computer system convenient to use . Use the computer hardware in an efficient manner CSE480/CIS700 S. Fischmeister 2 1 Computer System Components 1. Hardware – provides basic computing resources (CPU, memory, I/O devices) 2. Operating system – controls and coordinates the use of the hardware among the various application programs for the various users 3. Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs) 4. Users (people, machines, other computers) CSE480/CIS700 S. Fischmeister 3 Abstract View of System Components CSE480/CIS700 S. Fischmeister 4 2 What is an RTOS? . Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems . Well-defined fixed-time constraints CSE480/CIS700 S. Fischmeister 5 More Precisely? . The system allows access to sensitive resources with defined response times. o Maximum response times are good for hard real-time o Average response times are ok for soft real-time . Any system that provides the above can be classified as a real-time system o 10us for a context switch, ok? o 10s for a context switch, ok? CSE480/CIS700 S. Fischmeister 6 3 Taxonomy of RTOSs .
    [Show full text]
  • Z/OS, Language Environment, and UNIX How They Work Together
    The Trainer’s Friend, Inc. 256-B S. Monaco Parkway Telephone: (800) 993-8716 Denver, Colorado 80224 (303) 393-8716 U.S.A. Fax: (303) 393-8718 E-mail: [email protected] Internet: www.trainersfriend.com z/OS, Language Environment, and UNIX How They Work Together The following terms that may appear in these materials are trademarks or registered trademarks: Trademarks of the International Business Machines Corporation: AD/Cycle, AIX, AIX/ESA, Application System/400, AS/400, BookManager, CICS, CICS/ESA, COBOL/370, COBOL for MVS and VM, COBOL for OS/390 & VM, Common User Access, CORBA, CUA, DATABASE 2, DB2, DB2 Universal Database, DFSMS, DFSMSds, DFSORT, DOS/VSE, Enterprise System/3090, ES/3090, 3090, ESA/370, ESA/390, Hiperbatch, Hiperspace, IBM, IBMLink, IMS, IMS/ESA, Language Environment, MQSeries, MVS, MVS/ESA, MVS/XA, MVS/DFP, NetView, NetView/PC, Object Management Group, Operating System/400, OS/400, PR/SM, OpenEdition MVS, Operating System/2, OS/2, OS/390, OS/390 UNIX, OS/400, QMF, RACF, RS/6000, SOMobjects, SOMobjects Application Class Library, System/370, System/390, Systems Application Architecture, SAA, System Object Model, TSO, VisualAge, VisualLift, VTAM, VM/XA, VM/XA SP, WebSphere, z/OS, z/VM, z/Architecture, zSeries Trademarks of Microsoft Corp.: Microsoft, Windows, Windows NT, Windows ’95, Windows ’98, Windows 2000, Windows SE, Windows XP Trademark of Chicago-Soft, Ltd: MVS/QuickRef Trademark of Phoenix Software International: (E)JES Registered Trademarks of Institute of Electrical and Electronic Engineers: IEEE, POSIX Registered Trademark of The Open Group: UNIX Trademark of Sun Microsystems, Inc.: Java Registered Trademark of Linus Torvalds: LINUX Registered Trademark of Unicode, Inc.: Unicode Preface This document came about as a result of writing my first course for UNIX on the IBM mainframe.
    [Show full text]
  • MTS on Wikipedia Snapshot Taken 9 January 2011
    MTS on Wikipedia Snapshot taken 9 January 2011 PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sun, 09 Jan 2011 13:08:01 UTC Contents Articles Michigan Terminal System 1 MTS system architecture 17 IBM System/360 Model 67 40 MAD programming language 46 UBC PLUS 55 Micro DBMS 57 Bruce Arden 58 Bernard Galler 59 TSS/360 60 References Article Sources and Contributors 64 Image Sources, Licenses and Contributors 65 Article Licenses License 66 Michigan Terminal System 1 Michigan Terminal System The MTS welcome screen as seen through a 3270 terminal emulator. Company / developer University of Michigan and 7 other universities in the U.S., Canada, and the UK Programmed in various languages, mostly 360/370 Assembler Working state Historic Initial release 1967 Latest stable release 6.0 / 1988 (final) Available language(s) English Available programming Assembler, FORTRAN, PL/I, PLUS, ALGOL W, Pascal, C, LISP, SNOBOL4, COBOL, PL360, languages(s) MAD/I, GOM (Good Old Mad), APL, and many more Supported platforms IBM S/360-67, IBM S/370 and successors History of IBM mainframe operating systems On early mainframe computers: • GM OS & GM-NAA I/O 1955 • BESYS 1957 • UMES 1958 • SOS 1959 • IBSYS 1960 • CTSS 1961 On S/360 and successors: • BOS/360 1965 • TOS/360 1965 • TSS/360 1967 • MTS 1967 • ORVYL 1967 • MUSIC 1972 • MUSIC/SP 1985 • DOS/360 and successors 1966 • DOS/VS 1972 • DOS/VSE 1980s • VSE/SP late 1980s • VSE/ESA 1991 • z/VSE 2005 Michigan Terminal System 2 • OS/360 and successors
    [Show full text]
  • CICS and Threadsafe Exploiting the Open Transaction Environment
    CICS and Threadsafe Exploiting the Open Transaction Environment Russ Evans [email protected] Objectives • History of Multithreading • The Open Transaction Environment • Making programs Threadsafe • Exploiting the OTE • OTE Performance Considerations • Diagnosing Threadsafe Problems • Recommendations Copyright (c) 2013, The Evans Group, Inc. 2 History of Multithreading • CICS as a Single TCB – Most efficient on a uni-processor – “Quasi-Reentrancy” – Issues: • Runaway tasks • OS Waits = Region Wait • Many restricted OS and COBOL Commands • Limited by speed of one processor Copyright (c) 2013, The Evans Group, Inc. 3 History of Multithreading • CICS Exploiting Multiple Processors – Multiple TCBs – Primary TCB is “QR”, Quasi-Reentrant – Additional TCBs for: • VSAM • DB2 • Program Loader • etc. Copyright (c) 2013, The Evans Group, Inc. 4 History of Multithreading • CICS and DB2 – Separate TCB („thread‟) for each DB2 Request – Task is switched to DB2 TCB for DB2 work, DB2 system code runs on DB2 TCB – Significant workload shifted to DB2 TCBs, but measurable overhead from TCB switching Copyright (c) 2013, The Evans Group, Inc. 5 Open Transaction Environment • Transaction runs under own TCB • Introduced in TS 1.3 for Java • DB2 Support added for TS 2.2 • Supports full OS function • Allows true Multitasking in CICS • Pseudo-reentrancy no longer allowed Copyright (c) 2013, The Evans Group, Inc. 6 OTE and DB2 Without Threadsafe QR TCB Open TCB Task Starts EXEC CICS EXEC SQL DB2 Code executes Application Code DB2 Code completes EXEC SQL DB2 Code executes DB2 Code completes Copyright (c) 2013, The Evans Group, Inc. 7 OTE and DB2 With Threadsafe QR TCB Open TCB Task Starts EXEC CICS EXEC SQL DB2 Code executes Application Code DB2 Code executes Task Termination Task completes Copyright (c) 2013, The Evans Group, Inc.
    [Show full text]
  • Introduction to the New Mainframe Chapter 7: Batch Processing and the Job Entry Subsystem (JES)
    Introduction to the new mainframe Chapter 7: Batch processing and the Job Entry Subsystem (JES) © Copyrig ht IBM Corp ., 2006. All rig hts reserved. Introduction to the new mainframe Chapter 7 objectives Be able to: • Give an overview of batch processing and how work is initiated and managed in the system. • Explain how the job entry subsystem (JES) governs th e fl ow of work th rough a z/OS system. © Copyright IBM Corp., 2006. All rights reserved. 2 Introduction to the new mainframe Key terms in this chapter • bthbatch processi ng • procedure • execution • purge • initiator • queue • job • spool • job entry subsystem (JES) • symbolic reference • output • workload manager (WLM) © Copyright IBM Corp., 2006. All rights reserved. 3 Introduction to the new mainframe What is batch processing? Much of the work running on z/OS consists of programs called batch jobs. Batch processing is used for programs that can be executed: • With minimal human interaction • At a scheduled time or on an as-needed basis. After a batch jjyob is submitted to the system for execution, there is normally no further human interaction with the job until it is complete. © Copyright IBM Corp., 2006. All rights reserved. 4 Introduction to the new mainframe What is JES? In the z/OS operating system, JES manages the input and output job queues and data. JES han dles the f oll owi ng aspect s of b at ch processi ng f or z/OS: • Receives jobs into the operating system • Schedules them for processing by z/OS • Controls their output processing © Copyright IBM Corp., 2006.
    [Show full text]
  • IBM OS/360: an Overview of the First General Purpose Mainframe
    IBM OS/360: An Overview of the First General Purpose Mainframe CS 550-2: Operating Systems Fall 2003 E. Casey Lunny 1 Table of Contents Introduction............................................................................................................3 “A Second Generation OS”...................................................................................3 Secondary Design Goals...................................................................................4 Processor Modes...................................................................................................5 Jobs and Tasks.....................................................................................................5 Degrees of Multiprocessing...............................................................................6 Data Sharing.....................................................................................................7 Job and Task Management...............................................................................7 Allowable Process States..................................................................................8 Memory Management............................................................................................8 Overview of Memory Management Techniques (Fig. 1)...............................9 Memory Structure and Implementation.............................................................9 Deadlock.............................................................................................................10 Mutual exclusion
    [Show full text]