CTSS
Compatible Time Sharing System



       Sebastian Woinar
IBM 7094 at MIT
Area of a triangle
Area of a triangle




1   0   0   0   0   9   9   9   9   9   0   0   0   0   0
X28-7327-5
              ®
                                                                                                                               FORTRAN Coding Form                                                                                                               Printed in U.S.A.

 PROGRAM                                                                                                                                                    GRAPHIC                                                             PAGE      OF
                                                                                                                                           PUNCHING
                                                                                                                                           INSTRUCTIONS                                                                         CARD ELECTRO NUMBER*
 PROGRAMMER                                                                                               DATE                                              PUNCH
                          CONT.




     STATEMENT                                                                                                                                                                                                                                         IDENTIFICATION
      NUMBER
                                                                                                                                FORTRAN STATEMENT                                                                                                        SEQUENCE
 1   2    3       4   5    6      7   8   9   10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80




 1   2    3       4   5    6      7   8   9   10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
* A standard card form, IBM electro 888157, is available for punching statements from this form
®
                                                                                                                             FORTRAN C
PROGRAM

PROGRAMMER                                                                                              DATE

                        CONT.
    STATEMENT
     NUMBER
                                                                                                                              FORTRAN ST
1   2   3       4   5    6      7   8   9   10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Key Punch Room
Punched Card
Punched Z(1) = Y + W(1)
        Card
Binary formated
Vision
John McCarthy
Fernando José Corbató




 Fernando José Corbató
IBM 709
IBM 709T/7090
Operating System

• FMS - FORTRAN Monitor System
 • compile FORTRAN programs
• IBSYS
 • compile FORTRAN, COBOL etc.
IBM 7094 configuration
IBM 7094 configuration

Basic Cycle Time: 2.18 µSecs
Float. Pt Add Time: 4.36µSecs
IBM 7094 configuration
IBM 7094 configuration
IBM 7094 configuration
IBM 7094 configuration
IBM 7094 configuration
Console
IBM 709
Max Mathews




John Kelly
Max Mathews




John Kelly
CTSS
c
Hardware Problems
•   Different user programs (and supervisor) may interfere
    with each other
•   Input-output equipement may be initiated by a user and
    read words in on another user program
•   Time sharing supervisor must be able to interrupt user
    program after a quantum of computation
•   Large core memories (e.g.. a million words) would ease
    the system programming complications immensely
    since the different active user programs, systems
    programs could remain in core memory at all times.
Hardware Problems
•   Different user programs (and supervisor) may interfere
                                          Memory Protection
    with each other
•   Input-output equipement may be initiated by a user and
                                         Trap all input-output
    read words in on another user program instructions
•   Time sharing supervisor must be able to interrupt user
                                            Time controlled
    program after a quantum of computation      interrupt
•   Large core memories (e.g.. a million words) would ease
    the system programming complications immensely
                                                8 MB RAM ;-)
    since the different active user programs, systems
    programs could remain in core memory at all times.
Programming Problems

• Supervisor should charge user usage
  accounting automatically
• Supervisor should coordinate all user
  input-output
• Good system programs tooling
Usage Problems

• Too large a computation or excessive
  typewriter output may be requested
• Since real time is not usage-time,
  supervisor must inform user
• Computer malfuntions must be expected
7094 Modifications
• Standard 60 cycle accounting and interrupt
  clock
• Memory boundary and relocation register
• 2 32,768 Core memory bank for the
   nd

  supervisor
• 7094 has become a two-mode machine
Supervisor
• Provided virtual machines
 • 3 foreground machines which run 7094
    instructions and could invoke supervisor
    services
 • 1 background machine with tape access
• Scheduling
• Managed I/O
Memory protection
• 32k memory is managed in 128 blocks of 256
  words
• 3 7 Bit registers
            5          7       5
           base       end     relo

• Protection check
    base [ 5* 256 ]<= addr <= end [ 7 * 256 ]
Instruction protection
• User mode: subset of 7094 instructions
  • Memory access only to defined region by
    memory relocation and protection
  • Certain instructions are forbidden and invoke
    protection trap
Instruction protection
                   Privileged	
  instructions
• all	
  I/O	
  instructions	
  (RDS,	
  WRS,	
  BSR,	
  BSF,	
  
  User mode: subset of 7094 instructions
  • Memory access only
  SDN,	
  RUN,	
  REW,	
  etc)	
   to defined region by
     memory relocation and protection
   all	
  channel	
  instructions	
  (RCHx,	
  LCHx,	
  SCHx,	
  

   • Certain instructions are forbidden and invoke
   etc)	
  
      protection trap
   all	
  I/O	
  transfer	
  instructions	
  (TEFx,	
  TRCx,	
  
   TCOx,	
  TCNx)	
  
   plus	
  and	
  minus	
  sense	
  (+0760...	
  and	
  -­‐0760...)	
  
Scheduling algorithm

• Goal:
 • optimize turnaround time
 • minimize response time
Multi Level Feedback Queue
  •   Task is put into level l0
      dependent on its actual size (calculation time)




  •   Execution time in level x is 2x quanta
  •   If task is not completed, it is put at the end of
      level x+1 queue
  •   MLFQ is preemptive
Simulator
Simulator
Simulator
Simulator
Simulator
Simulator
Simulator
Simulator
TYPSET & RUNOFF
• TYPSET for creating and editing files
 • High speed input mode
 • Edit mode
• RUNOFF
 • Control words in the text
 • Line-length, indention, alignment
MAIL
 • Described in Programming Staff Note 39



• Created file MAIL BOX in directory
• User has been informed about new mail
MAIL
 • Described in Programming Staff Note 39



• Created file MAIL BOX in directory
• User has been informed about new mail
MAIL
 • Described in Programming Staff Note 39



• Created file MAIL BOX in directory
• User has been informed about new mail
MAIL
 • Described in Programming Staff Note 39



• Created file MAIL BOX in directory
• User has been informed about new mail
RUNCOM

• File-system file of commands to be
  executed in a batch
• Commands are usable like library
  subroutine
MAC Project
Quellen
•   REMINISCENCES ON THE HISTORY OF TIME SHARING
•   Fernando J. Corbato, Marjorie Merwin Daggett, Robert C. Daley AN EXPERIMENTAL
    TIME-SHARING SYSTEM, Proceedings of Spring Joint Computer Conference, May 3, 1962
•   R.M. Fano, The MAC system: a progress report, MAC-TR-12
•   http://www.ibiblio.org/apollo/Documents/CTSS_ProgrammersGuide.pdf
•   http://www.multicians.org/thvv/7094.html
•   http://www.multicians.org/thvv/mail-details.html
•   http://www.frobenius.com/7090.htm
•   http://motherboard.vice.com/2011/2/17/watson-s-hardest-question-what-is-life--2
•   http://u-tx.net/media/fano-on-ctss.png
•   http://mason.gmu.edu/~tbell5/page2.html
•   http://www-03.ibm.com/ibm/history/exhibits/storage/storage_1301.html
•   http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP7090.html

•   http://simh.trailing-edge.com/docs/ctss_hardware.pdf
•   http://mit.edu/saltzer/www/publications/ctss/CC-244.html
•   http://en.wikipedia.org/wiki/Daisy_Bell
Simulator
•   http://www.cozx.com/~dpitts/ibm7090.html
Videos
•   http://www.youtube.com/watch?v=Q07PhW5sCEk
•   http://www.youtube.com/watch?v=8edfFH0rklc

CTSS - Compatible Time Sharing System

  • 1.
    CTSS Compatible Time SharingSystem Sebastian Woinar
  • 2.
  • 3.
    Area of atriangle
  • 4.
    Area of atriangle 1 0 0 0 0 9 9 9 9 9 0 0 0 0 0
  • 5.
    X28-7327-5 ® FORTRAN Coding Form Printed in U.S.A. PROGRAM GRAPHIC PAGE OF PUNCHING INSTRUCTIONS CARD ELECTRO NUMBER* PROGRAMMER DATE PUNCH CONT. STATEMENT IDENTIFICATION NUMBER FORTRAN STATEMENT SEQUENCE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 * A standard card form, IBM electro 888157, is available for punching statements from this form
  • 6.
    ® FORTRAN C PROGRAM PROGRAMMER DATE CONT. STATEMENT NUMBER FORTRAN ST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
  • 7.
  • 9.
  • 10.
    Punched Z(1) =Y + W(1) Card
  • 12.
  • 15.
  • 16.
    Fernando José Corbató Fernando José Corbató
  • 17.
  • 18.
  • 19.
    Operating System • FMS- FORTRAN Monitor System • compile FORTRAN programs • IBSYS • compile FORTRAN, COBOL etc.
  • 20.
  • 21.
    IBM 7094 configuration BasicCycle Time: 2.18 µSecs Float. Pt Add Time: 4.36µSecs
  • 22.
  • 23.
  • 26.
  • 27.
  • 28.
  • 29.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
    Hardware Problems • Different user programs (and supervisor) may interfere with each other • Input-output equipement may be initiated by a user and read words in on another user program • Time sharing supervisor must be able to interrupt user program after a quantum of computation • Large core memories (e.g.. a million words) would ease the system programming complications immensely since the different active user programs, systems programs could remain in core memory at all times.
  • 36.
    Hardware Problems • Different user programs (and supervisor) may interfere Memory Protection with each other • Input-output equipement may be initiated by a user and Trap all input-output read words in on another user program instructions • Time sharing supervisor must be able to interrupt user Time controlled program after a quantum of computation interrupt • Large core memories (e.g.. a million words) would ease the system programming complications immensely 8 MB RAM ;-) since the different active user programs, systems programs could remain in core memory at all times.
  • 37.
    Programming Problems • Supervisorshould charge user usage accounting automatically • Supervisor should coordinate all user input-output • Good system programs tooling
  • 38.
    Usage Problems • Toolarge a computation or excessive typewriter output may be requested • Since real time is not usage-time, supervisor must inform user • Computer malfuntions must be expected
  • 39.
    7094 Modifications • Standard60 cycle accounting and interrupt clock • Memory boundary and relocation register • 2 32,768 Core memory bank for the nd supervisor • 7094 has become a two-mode machine
  • 40.
    Supervisor • Provided virtualmachines • 3 foreground machines which run 7094 instructions and could invoke supervisor services • 1 background machine with tape access • Scheduling • Managed I/O
  • 41.
    Memory protection • 32kmemory is managed in 128 blocks of 256 words • 3 7 Bit registers 5 7 5 base end relo • Protection check base [ 5* 256 ]<= addr <= end [ 7 * 256 ]
  • 42.
    Instruction protection • Usermode: subset of 7094 instructions • Memory access only to defined region by memory relocation and protection • Certain instructions are forbidden and invoke protection trap
  • 43.
    Instruction protection Privileged  instructions • all  I/O  instructions  (RDS,  WRS,  BSR,  BSF,   User mode: subset of 7094 instructions • Memory access only SDN,  RUN,  REW,  etc)   to defined region by memory relocation and protection all  channel  instructions  (RCHx,  LCHx,  SCHx,   • Certain instructions are forbidden and invoke etc)   protection trap all  I/O  transfer  instructions  (TEFx,  TRCx,   TCOx,  TCNx)   plus  and  minus  sense  (+0760...  and  -­‐0760...)  
  • 44.
    Scheduling algorithm • Goal: • optimize turnaround time • minimize response time
  • 45.
    Multi Level FeedbackQueue • Task is put into level l0 dependent on its actual size (calculation time) • Execution time in level x is 2x quanta • If task is not completed, it is put at the end of level x+1 queue • MLFQ is preemptive
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
    TYPSET & RUNOFF •TYPSET for creating and editing files • High speed input mode • Edit mode • RUNOFF • Control words in the text • Line-length, indention, alignment
  • 55.
    MAIL • Describedin Programming Staff Note 39 • Created file MAIL BOX in directory • User has been informed about new mail
  • 56.
    MAIL • Describedin Programming Staff Note 39 • Created file MAIL BOX in directory • User has been informed about new mail
  • 57.
    MAIL • Describedin Programming Staff Note 39 • Created file MAIL BOX in directory • User has been informed about new mail
  • 58.
    MAIL • Describedin Programming Staff Note 39 • Created file MAIL BOX in directory • User has been informed about new mail
  • 59.
    RUNCOM • File-system fileof commands to be executed in a batch • Commands are usable like library subroutine
  • 60.
  • 61.
    Quellen • REMINISCENCES ON THE HISTORY OF TIME SHARING • Fernando J. Corbato, Marjorie Merwin Daggett, Robert C. Daley AN EXPERIMENTAL TIME-SHARING SYSTEM, Proceedings of Spring Joint Computer Conference, May 3, 1962 • R.M. Fano, The MAC system: a progress report, MAC-TR-12 • http://www.ibiblio.org/apollo/Documents/CTSS_ProgrammersGuide.pdf • http://www.multicians.org/thvv/7094.html • http://www.multicians.org/thvv/mail-details.html • http://www.frobenius.com/7090.htm • http://motherboard.vice.com/2011/2/17/watson-s-hardest-question-what-is-life--2 • http://u-tx.net/media/fano-on-ctss.png • http://mason.gmu.edu/~tbell5/page2.html • http://www-03.ibm.com/ibm/history/exhibits/storage/storage_1301.html • http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP7090.html • http://simh.trailing-edge.com/docs/ctss_hardware.pdf • http://mit.edu/saltzer/www/publications/ctss/CC-244.html • http://en.wikipedia.org/wiki/Daisy_Bell Simulator • http://www.cozx.com/~dpitts/ibm7090.html Videos • http://www.youtube.com/watch?v=Q07PhW5sCEk • http://www.youtube.com/watch?v=8edfFH0rklc