Multics. Charles Ahern Scott Roffman. Topics What is Multics? Brief History Notable Features of Multics Influence on Other Systems Review Sources.

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

Part IV: Memory Management
Chapter 3 Process Description and Control
CSS430 Memory Management Textbook Ch8
Computer Organization and Architecture
Memory Management Paging &Segmentation CS311, CS350 & CS550.
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 3 Memory Management Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
CSC 322 Operating Systems Concepts Lecture - 18: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
Process Description and Control Module 1.0. Major Requirements of an Operating System Interleave the execution of several processes to maximize processor.
Process Description and Control Chapter 3. Major Requirements of an Operating System Interleave the execution of several processes to maximize processor.
File System Implementation
Processes CSCI 444/544 Operating Systems Fall 2008.
Chapter 8.3: Memory Management
Memory Management (II)
1 Process Description and Control Chapter 3. 2 Process Management—Fundamental task of an OS The OS is responsible for: Allocation of resources to processes.
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
CSCE 351: Operating System Kernels
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved The Operating System Machine.
1 Process Description and Control Chapter 3 = Why process? = What is a process? = How to represent processes? = How to control processes?
Process Description and Control A process is sometimes called a task, it is a program in execution.
Using Two Queues. Using Multiple Queues Suspended Processes Processor is faster than I/O so all processes could be waiting for I/O Processor is faster.
Recursion and Implementation of Functions
TECHWARZ. (Multiplexed Information and Computing Service)  Multics was an extremely influential early time-sharing operating system.  Goal: Develop.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Process Description and Control Chapter 3. Major Requirements of an OS Interleave the execution of several processes to maximize processor utilization.
System Calls 1.
Cosc 3P92 Week 9 & 10 Lecture slides
CSC 501 Lecture 2: Processes. Process Process is a running program a program in execution an “instantiation” of a program Program is a bunch of instructions.
Implementing Processes and Process Management Brian Bershad.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
© 2004, D. J. Foreman 1 Memory Management. © 2004, D. J. Foreman 2 Building a Module -1  Compiler ■ generates references for function addresses may be.
Chapter 3 Process Description and Control
Memory Management 3 Tanenbaum Ch. 3 Silberschatz Ch. 8,9.
Chapter 4 Storage Management (Memory Management).
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Process-Concept.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
Process Description and Control Chapter 3. Source Modified slides from Missouri U. of Science and Tech.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
What is a Process ? A program in execution.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
NCHU System & Network Lab Lab #6 Thread Management Operating System Lab.
Chapter 8: Memory Management. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 8: Memory Management Background Swapping Contiguous.
Introduction to Operating Systems Concepts
Processes and threads.
Chapter 2 Memory and process management
Memory Management Paging (continued) Segmentation
Multics.
Computer Organization & Assembly Language Chapter 3
Chapter 9: Virtual-Memory Management
Memory Management Paging (continued) Segmentation
Module IV Memory Organization.
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Memory Management Tasks
Process Description and Control
Lecture Topics: 11/1 General Operating System Concepts Processes
Processes Hank Levy 1.
CS510 Operating System Foundations
Outline Operating System Organization Operating System Examples
System calls….. C-program->POSIX call
Memory Management Paging (continued) Segmentation
Presentation transcript:

Multics. Charles Ahern Scott Roffman

Topics What is Multics? Brief History Notable Features of Multics Influence on Other Systems Review Sources

MULTiplexed Information and Computing Service Multics is a timesharing OS begun in 1965 and used until Primary usage was with a mainframe and multiple terminals. CPUs, memory, I/O controllers, disk drives could be added or removed while the system is running

MULTiplexed Information and Computing Service Designed to run 24/7 Changed the idea of the computer from being a tool for scientists to a reliable and powerful resource for a large number of people “Multics keeps it up longer”

Brief History Joint project between MIT, Bell Labs, and GE Bell labs withdrew in 1969 GE Sold its computer business to Honeywell in 1970 who sold Multics as a commercial product

Features High-level language implementation On-line reconfiguration Large virtual memory with segments, paging, and generalized addresses First hierarchical file system Dynamic linking and function call by name Shared memory multiprocessor Security and rings

Language Implementation Written in PL/I language In 1965 this was a new proposal by IBM Only a small part of the OS was written in assembly Writing an OS in a high-level language was a radical idea at the time

Virtual Memory Divided into as many as 2 14 segments Each segment has as many as bit words Each segment is a logical unit of information with attributes for length and access privilege

Types of Segments 2 Main types of segments –Procedure Intended to be accessed for an instruction fetch Normally cannot write to a procedure segment Reading may be prohibited if in use –Data Contains no instructions May or may not be write protected

Directory Structure Multics (at least in this era; pre-1981) does not speak of "opening" files. Multics supports a call to "initiate" a segment that maps onto an entire file. Hierarchical arrangement of directories that associates at least one symbolic name (perhaps many) with each segment. The term "file" and "segment" are often used interchangeably as a result of this one-to-one binding.

Standard Processor Registers The PC Is the Program Counter X0 through X7 are the Index Registers. A is the Accumulator register Q is the quotient register PC PBR DBR Processor Registers AP BP SP LP Q A X0 X1 X7...

Base Pair Registers PC PBR DBR Processor Registers AP BP SP LP Q A X0 X1 X7... AP, BP, LP, and SP are the 4 base pointer registers –Argument Pointer –Base Pointer –Linkage Pointer –Stack Pointer They each hold a complete generalized address and are named according to their function in Multics.

Other Registers The PBR is the Procedure Base Register. It contains the segment number of the procedure in execution (think of it as your process’s unique id). PC PBR DBR Processor Registers AP BP SP LP Q A X0 X1 X7...

Other Registers The DBR is the Descriptor Base Register. It points to the descriptor table for your process, which tells your process its security rights for each segment it is using and a pointer to each of them. PC PBR DBR Processor Registers AP BP SP LP Q A X0 X1 X7...

Addressing Multics uses a “Generalized Address” It is calculated differently depending on if the CPU is attempting to read an instruction or data Segment #Word # Generalized Address

Creation of the Instruction Fetch Generalized Address PC PBR DBR Other Stuff Processor Registers Segment #Word # Generalized Address

Creation of Data-Access Generalized Address Segment #Word # Generalized Address Segment #Word # + + Base Register Segment Tag Mode Address Operation Indexreg. Instruction Format External Flag = True PCB = False

Segment #Word # Generalized Address Protection Mode and Reference DBR Current Process’s Descriptor Segment Referenced Information Segment X Y X Y

Generalized Address Benefits Reallocation of the processor to a new process requires little more than swapping out the DBR. The Generalized address allows access to a word without knowing it’s physical location in memory

Inter-segment Linking Allows for the ability to share procedure and data information and the power to construct complex procedures by building on previous work. Location Independent Addresses are essential to performing these tasks.

Inter-segment Linking Requirements 1.Procedure segments must be pure. –Execution must not cause a single word of their own content to be modified. 2.It must be possible for a procedure to call a routine by its symbolic name. –Without prior arrangements. 3.Segments of procedures must be invariant to the recompilation of other segments.

Requirement 1 Requires that a segment be callable even if no position in the descriptor segment of the process has been reserved for the segment. Making the segment known to the process is done by assigning a position in the descriptor segment (a segment number) when the process first makes reference to the segment, by its symbolic name.

Linkage Data Consider a procedure segment P that makes reference to a word at location x within data segment D. Ex. OPR | [x] –The <> indicate that D is the reference name –The [] indicate that x is a symbolic address within an external segment

OPR | [x] Here we see the inter segment reference to x in D from procedure P. But to maintain the Third requirement we need segment p to be invariant to recompilation of D. P D X

OPR | [x] In order to adhere to requirement 3 and 2, we create a linkage section that contains all external references of procedure P. Each different process gets its own linkage section for each procedure it calls. –In our case there is an Lα, that would contain the reference to the actual location of x in D at the present time.

OPR | [x] its stands for indirect to segment Before the link is established, it must verified, (lead to a trap, ft) and then search for the symbolic address | [x] * P D X ITS L α * Indicates Indirect Addressing

Linkage pointer The linkage pointer is a generalized address that resides in a dedicated base register (lp). The displacement k is determined by the coding of P and is invariant with respect to the process using P. * P ft L α Linkage section for P K LP | [x] lpkOPR1*

Procedure Call and Returns Conventions for four aspects of sub routine calling –Transmission of arguments –Arranging for return of control –Saving and restoring processor state –Allocating Private storage for called procedure The argument pointer (ap) (at procedure entry) contains the generalized address of the list of arguments for the called procedure

Linkage Mechanism for procedure Entry The mechanism required for an external procedure call from procedure P to segment Q at entry point e. The solid lines indicate the individual steps taken through indirect addressing. The dashed lines indicate resulting flow of control. P lp k TRA * Call |[e] LPp its Linkage Section for P e Q LPq its Linkage Section for Q y LPq  lp TRA y, *

Executing call to external procedure The procedures base register and program counter are saved in the stack segment by the caller, pointer to by stack pointer (sp) Return from the called procedure can be effected by restoring the caller’s machine conditions from the stack segment.

Unix and Multics Dennis Ritchie and Ken Thompson, creators of Unix, originally worked with Bell Labs on the Multics project When Bell Labs pulled out in 1969, Ken and Dennis began a the Unix Project The title “Unix” is a parody of Multics, “One of whatever Multics was many of.”

Conclusion High-level language implementation 24/7 “Computing Service” Security and rings Large virtual memory with segments Generalized Addresses Dynamic linking and function call by name

References R. Daley, and J. Dennis, “Virtual Memory, Processes and Sharing in MULTICS” Communications of the ACM. Vol. II. Number 5. pp May, A. Silberschatz, P. Galvin, and G. Gagne, "operating System Concepts" John Wiley & Sons, 7th Edition, 2005 Paul Green, “Multics Virtual Memory – Tutorial and Reflections” ftp://ftp.stratus.com/pub/vos/multics/pg/mvm.html