Operating System Structure and Processor Architecture for a Large Distributed Single Address Space Alan C. SkousenDonald S. Miller Computer Science and.

Slides:



Advertisements
Similar presentations
Computer-System Structures Er.Harsimran Singh
Advertisements

Multiple Processor Systems
Categories of I/O Devices
Part IV: Memory Management
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Chapter 101 Virtual Memory Chapter 10 Sections and plus (Skip:10.3.2, 10.7, rest of 10.8)
OS2-1 Chapter 2 Computer System Structures. OS2-2 Outlines Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
File System Implementation
DISTRIBUTED CONSISTENCY MANAGEMENT IN A SINGLE ADDRESS SPACE DISTRIBUTED OPERATING SYSTEM Sombrero.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
Memory Management 2010.
Sombrero: Implementation of a Single Address Space Paradigm for Distributed Computing Exhibiting Reduced Complexity Alan Skousen Arizona State University.
1 Chapter 8 Virtual Memory Virtual memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory.
1 Distributed Scheduling In Sombrero, A Single Address Space Distributed Operating System Milind Patil.
Figure 1.1 Interaction between applications and the operating system.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
1 I/O Management in Representative Operating Systems.
PRASHANTHI NARAYAN NETTEM.
RGF M.S. Thesis Presentaton 12/011 Reduced Development Costs in the Operating System.
ASU 64-bit OS Group7/15/ Effects of the Single Address Space Paradigm on CPU and OS Design for a Distributed Computer System Donald S. Miller.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Chapter 1. Introduction What is an Operating System? Mainframe Systems
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
2.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 2: Computer-System Structures Computer System Operation I/O Structure.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Processes and Virtual Memory
The Mach System Silberschatz et al Presented By Anjana Venkat.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
OSes: 2. Structs 1 Operating Systems v Objective –to give a (selective) overview of computer system architectures Certificate Program in Software Development.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
FILE SYSTEM IMPLEMENTATION 1. 2 File-System Structure File structure Logical storage unit Collection of related information File system resides on secondary.
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Major OS Components CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
ECE 456 Computer Architecture Lecture #9 – Input/Output Instructor: Dr. Honggang Wang Fall 2013.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
Region-Based Software Distributed Shared Memory Song Li, Yu Lin, and Michael Walker CS Operating Systems May 1, 2000.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
1 Module 3: Processes Reading: Chapter Next Module: –Inter-process Communication –Process Scheduling –Reading: Chapter 4.5, 6.1 – 6.3.
Chapter 2: Computer-System Structures(Hardware)
Chapter 2: Computer-System Structures
Processes and threads.
Chapter 3: Process Concept
Definition of Distributed System
CSI 400/500 Operating Systems Spring 2009
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
Page Replacement.
Outline Midterm results summary Distributed file systems – continued
Computer-System Architecture
Module 2: Computer-System Structures
Operating Systems Chapter 5: Input/Output Management
Chapter 2: Operating-System Structures
Outline Chapter 2 (cont) OS Design OS structure
System calls….. C-program->POSIX call
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Chapter 2: Operating-System Structures
Presentation transcript:

Operating System Structure and Processor Architecture for a Large Distributed Single Address Space Alan C. SkousenDonald S. Miller Computer Science and Engineering Department Arizona State University Tempe, Arizona 85287, USA WWW:

2 This presentation covers: 4 Fundamental Advantages of a SASOS 4 Distributed SASOS features 4 Why build one now? 4 Why aren’t people building them? 4 Are current hardware designs adequate? 4 Effect on OS design 4 Conclusion

3 Fundamental Advantages of a SASOS 4 Address translations remain the same for all programs 4 Threads are free to travel throughout the VA space with no changes in the environment in which they are running in except for protection context 4 Network-wide communication requires no prior or additional setup 4 Internal pointers and pointers into other objects remain the same across all levels of storage and all programs –marshalling, flattening and dynamic linking not needed 4 Persistence without use of a separate file system 4 Protection by restricting what a computation is allowed to access rather than what it is allowed to address –managing IPC is reduced to managing protection

4 SASOS advantages (continued) 4 No need to design separate storage schemas for RAM and Disk, no serialization. PLUS 4 Many complex protocols for distributed applications become trivial. 4  Fewer instructions to execute, better performance. 4  Less costly to program client/server applications.

5 Distributed Sombrero SASOS features 4 Active/Passive servers are both available. 4 Normal caching causes service migration optimizing user response time. 4 Threads will schedule on any CPU in a cluster without alteration. 4 Structures and mechanisms are very scalable because of object level protection granularity

6 Why build one now? 4 64-bit RISC processors are available.  a paradigm shift to SAS operation is possible 4 Modern software has become increasingly large and complex  increased SW engineering efforts are needed to reduce the costs of program development 4 Performance increases from reducing chip feature sizes are expected to begin to decline in about 10 years  Increased performance will have to come from architectural changes

7 Why aren’t people building them? 4 Going from multiple to single address spaces is a paradigm shift -there are costs associated with the following in a single address space –Understanding the paradigm shift –Learning programming differences –Mastering new approaches to HW/SW design 4 The CPU protection hardware necessary to make a SASOS viable introduces incompatible hardware –new software may not run on the old hardware –old software may not be able to use new HW  consequent initial economic disadvantages.

8 Are current hardware designs adequate? 4 Page based protection results in poor performance for translation buffer evictions and distributed copyset management. 4 Current hardware is designed to support process-oriented OS designs to handle homonyms, synonyms and bit limitations. 4 We suggest object based protection with separate translation on memory bus - only one page table needed.

9 Effect on OS design 4 SASOSs increase the available choices –for structuring applications –for structuring the operating system –for sharing, protecting and storing data –for communication between programs 4 Fundamental Issue - how to structure an OS to provide –a simple program development environment –high performance in a system where conserving address space is no longer a driving concern

10 Effect on OS design (continued) Kernel Services distributed among executive protection domains No central kernel and no hardware protected kernel mode A few Protection Domain Lock Registers name the protection domain that can access sensitive protected instructions and registers

11 Effect on OS Design (continued) 4 OS becomes flat and more modular rather than hierarchical. 4 Hierarchies are fixed by system and user policy rather than by initial design allowing flexible access to resources.

12 Conclusion 4 Advantages of a HW-Supported SASOS – Improved program development environment – Higher performance – Better support for distributed applications – A better match to the needs of real-time systems CPU-resident protection hardware and a SASOS that runs on it can be implemented now. This combination makes fuller use of the properties of a very large network-wide address space than contemporary process-oriented systems for both single node and distributed systems. The Sombrero SASOS and Sombrero HW are Designed to Meet these Objectives

//Header file used by the client and server: /* Definitions needed by clients and servers. */ #define MAX_PATH 255/* maximum length of a file name */ #define BUF_SIZE1024/* how much data to transfer at once */ #define FILE_SERVER 243/* file server's network address */ /* Definitions of the allowed operations. */ #define CREATE 1/* create a new file */ #define READ 2/* read a piece of a file and return it */ #define WRITE 3/* write a piece of a file */ #define DELETE 4/* delete an existing file */ /* Error codes. */ #define OK 0/* operation performed correctly */ #define E_BAD_OPCODE -1/* unknown operation requested */ #define E_BAD_PARAM -2/* error in a parameter */ #define E_10 -3/* disk error or other I/O error */ /* Definition of the message format. */ struct message { long source;/* sender's identity */ long dest;/* receiver's identity */ long opcode;/* which operation: CREATE, READ, etc. */ long count;/* how many bytes to transfer */ long offset;/* where in file to start reading or writing */ long extra1;/* extra field */ long extra2;/* extra field */ long result;/* result of the operation */ char name[MAX_PATH];/* name of the file being operated on */ char data[BUF_SIZE];/* data to be read or written */ }; // Process oriented file SERVER: #include void main(void) { struct message m1, m2; /* incoming and outgoing messages */ int r; /* result code */ initialize(); while (1) { receive (FILE_SERVER,&m1); /* server runs forever */ switch(m1.opcode) { case CREATE: r = do_create(&m1, &m2); break; case READ: r = do_read(&m1, &m2); break; case WRITE: r = do_write(&m1, &m2); break; case DELETE: r = do_delete(&m1, &m2); break; default: r = E_BAD_OPCODE; } m2.result = r; /* return result to client */ send(m1.source, &m2); /* send reply */ } //Process oriented CLIENT uses file server to copy a file: #include int copy(char *src, char *dst) /* procedure to copy file using the server */ { struct message m1; /* message buffer */ long position; /* current file position */ long client = 110; /* client's address */ /* prepare for execution */ position = 0; do { /* Get block of data from source file */ m1.opcode = READ; /* operation is a read */ m1.offset = position; /* current position in the file */ m1.count = BUF_SIZE; /* how many bytes to read */ strcpy(&m1.name, src); /* copy name of file to be read to message */ send(FILE_SERVER, &m1); /* send message to the file server */ receive(client, &m1); /* block waiting for the reply */ /* Write the data just received to the destination file */ m1.opcode = WRITE; /* operation is a write */ m1.offset = position; /* current position in the file */ m1.count = m1.result; /* how many bytes to write */ strcpy(&m1.name, dst); /* copy name of file to be written to buf */ send(FILE_SERVER, &m1); /* send the message to the file server */ receive(client, &m1); /* block waiting for the reply */ position += m1.result; /* m1.result is the number of bytes written */ } while (m1.result > 0); /* iterate until done */ return(m1.result >= 0 ? OK : m1.result); /* return OK or error code */ } //SASOS Memory object copy int copy(char *src, char *dst) { FILE_OBJECT *from, *to; //address() is a function that obtains an object's address from the nameservice from = address(src); // allocate a new memory object to = new FILE_OBJECT(dst, PERSIST, from->Size()); memcpy(to, from, from->Size()); }