Distributed and Operating SystemsSpring 18Prashant ShenoyUMass Computer Science shenoy/courses/677Computer ScienceCS677: Distributed OSLecture 1, page 1Course Syllabus CMPSCI 677: Distributed and Operating Systems Course web page: shenoy/courses/677– Syllabus posted on the course web page. Class has two sections– Section 1 (classroom section)– Section 2 (online section)– Both sections do the same work (exams, lab, homework, etc)Computer ScienceCS677: Distributed OSLecture 1, page 2

Course Staff Instructor: Prashant Shenoy– Email: [email protected], Phone: (413) 577 0850– Office hours: MW 2:30-3:45, CS 302, or by appt Teaching Assistant: Amee Trivedi– Email: [email protected]– Office hours: Will be posted soon Course/Grading Assistants– Abhay Mittal Email: [email protected]– Neha Yadav Email: [email protected]– Srikrishna Kompella, Email: [email protected] ScienceLecture 1, page 3Course Textbook Textbook: Distributed Systems, 3rd ed, by Tannenbaum and VanSteen, Prentice Hall 2017– PDF version of textbook is available for free from authors– Download your PDF copy /books/distributed-systems-3rd-edition-2017/– Print copy: Hardcopy available from Amazon Textbook store Older 2nd Edition is also available as a PDF:– s/distributed-systems/Computer ScienceLecture 1, page 4

Course Outline Introduction (today)– What, why, why not?– Basics Distributed Architectures Interprocess Communication– RPCs, RMI, message- and stream-oriented communication Processes and their scheduling– Thread/process scheduling, code/process migration, virtualization Naming and location management– Entities, addresses, access pointsComputer ScienceCS677: Distributed OSLecture 1, page 5Course Outline Canonical problems and solutions– Mutual exclusion, leader election, clock synchronization, Resource sharing, replication and consistency– DFS, consistency issues, caching and replication Fault-toleranceSecurity in distributed SystemsDistributed middlewareAdvanced topics: web, cloud computing, greencomputing, big data, multimedia, and mobile systemsComputer ScienceCS677: Distributed OSLecture 1, page 6

Misc. Course Details Grading– Homeworks quizzes (10%), 3-4 programming assignments (45%),– term paper (4%), 1 mid-term and 1 final exam (40%) [dates posted onweb page], class participation online discussions: 1% Course mailing list: cs677 @– Spire will automatically add you to this list. Moodle: Assignment submission, course materials cross-posted Piazza : online discussion forum. Register at:– Web page: shenoy/courses/677 Youtube Channel: Pre-requisites– Undergrad course in operating systemsComputer ScienceCS677: Distributed OSLecture 1, page 7Course Policies Class Participation Laptop / device use during classComputer ScienceLecture 1, page 8

Why Distributed Systems? Many systems that we use on a daily basis are distributed––––––World wide web, GoogleAmazon.comPeer-to-peer file sharing [email protected] and cluster computingModern networked computers Useful to understand how such real-world systems work Course covers basic principles for designing distributed systemsComputer ScienceCS677: Distributed OSLecture 1, page 9Definition of a Distributed System A distributed system:– Multiple connected CPUs working together– A collection of independent computers that appears to itsusers as a single coherent system Examples: parallel machines, networked machinesComputer ScienceLecture 1, page 10

Advantages and Disadvantages Advantages––––Communication and resource sharing possibleEconomics – price-performance ratioReliability, scalabilityPotential for incremental growth Disadvantages– Distribution-aware PLs, OSs and applications– Network connectivity essential– Security and privacyComputer ScienceCS677: Distributed OSLecture 1, page 11Transparency in a Distributed SystemTransparencyDescriptionAccessHide differences in data representation and how aresource is accessedLocationHide where a resource is locatedMigrationHide that a resource may move to another locationRelocationHide that a resource may be moved to anotherlocation while in useReplicationHide that a resource may be replicatedConcurrencyHide that a resource may be shared by severalcompetitive usersFailureHide the failure and recovery of a resourcePersistenceHide whether a (software) resource is in memory oron diskDifferent forms of transparency in a distributed system.Computer ScienceCS677: Distributed OSLecture 1, page 12

Open Distributed Systems Offer services that are described a priori– Syntax and semantics are known via protocols Services specified via interfaces Benefits– Interoperability– Portability Extensibility– Open system evolve over time and should be extensible toaccommodate new functionality.– Separate policy from mechanismComputer ScienceCS677: Distributed OSLecture 1, page 13Scalability ProblemsConceptExampleCentralized servicesA single server for all usersCentralized dataA single on-line telephone bookCentralized algorithmsDoing routing based on complete informationExamples of scalability limitations.Computer ScienceCS677: Distributed OSLecture 1, page 14

Scaling Techniques Principles for good decentralized algorithms––––No machine has complete stateMake decision based on local informationA single failure does not bring down the systemNo global clock Techniques– Asynchronous communication– Distribution– Caching and replicationComputer ScienceCS677: Distributed OSLecture 1, page 15Distributed Systems Models Minicomputer model (e.g., early networks)– Each user has local machine– Local processing but can fetch remote data (files, databases) Workstation model (e.g., Sprite)– Processing can also migrate Client-server Model (e.g., V system, world wide web)– User has local workstation– Powerful workstations serve as servers (file, print, DB servers) Processor pool model (e.g., Amoeba, Plan 9)– Terminals are Xterms or diskless terminals– Pool of backend processors handle processingComputer ScienceCS677: Distributed OSLecture 1, page 16

Distributed System Models (contd) Cluster computing systems / Data centers– LAN with a cluster of servers storage Linux, Mosix, . Used by distributed web servers, scientific applications, enterpriseapplications Grid computing systems– Cluster of machines connected over a WAN– SETI @ home WAN-based clusters / distributed data centers– Google, Amazon, Virtualization and data center Cloud ComputingComputer ScienceCS677: Distributed OSLecture 1, page 17Emerging Models Distributed Pervasive Systems– “smaller” nodes with networking capabilities Computing is “everywhere”– Home networks: TiVO, Windows Media Center, – Mobile computing: smart phones, iPODs, Car-based PCs– Sensor networks– Health-care: personal area networks Sustainability as a design goalComputer ScienceCS677: Distributed OSLecture 1, page 18

Uniprocessor Operating Systems An OS acts as a resource manager or an arbitrator– Manages CPU, I/O devices, memory OS provides a virtual interface that is easier to usethan hardware Structure of uniprocessor operating systems– Monolithic (e.g., MS-DOS, early UNIX) One large kernel that handles everything– Layered design Functionality is decomposed into N layers Each layer uses services of layer N-1 and implementsnew service(s) for layer N 1Computer ScienceCS677: Distributed OSLecture 1, page 19Uniprocessor Operating SystemsMicrokernel architecture Small kernel user-level servers implement additional functionalityComputer ScienceCS677: Distributed OSLecture 1, page 20

Distributed Operating System Manages resources in a distributed system– Seamlessly and transparently to the user Looks to the user like a centralized OS– But operates on multiple independent CPUs Provides transparency– Location, migration, concurrency, replication, Presents users with a virtual uniprocessorComputer ScienceCS677: Distributed OSLecture 1, page 21Types of Distributed OSsSystemDescriptionMain GoalDOSTightly-coupled operating system for multiprocessors and homogeneous multicomputersHide and managehardware resourcesNOSLoosely-coupled operating system forheterogeneous multicomputers (LAN and WAN)Offer local servicesto remote clientsMiddlewareAdditional layer atop of NOS implementing generalpurpose servicesProvide distributiontransparencyComputer ScienceCS677: Distributed OSLecture 1, page 22

Multiprocessor Operating Systems Like a uniprocessor operating system Manages multiple CPUs transparently to the user Each processor has its own hardware cache– Maintain consistency of cached dataComputer ScienceCS677: Distributed OSLecture 1, page 23Multicomputer Operating SystemsExample: MOSIX cluster - single system image1.14Computer ScienceCS677: Distributed OSLecture 1, page 24

Network Operating System1-19Computer ScienceCS677: Distributed OSLecture 1, page 25Network Operating System Employs a client-server model– Minimal OS kernel– Additional functionality as user processes1-20Computer ScienceCS677: Distributed OSLecture 1, page 26

Middleware-based Systems General structure of a distributed system as middleware.1-22Computer ScienceCS677: Distributed OSLecture 1, page 27Comparison between SystemsDistributed OSItemNetwork OSMiddlewarebased OSMultiproc.Multicomp.Degree of transparencyVery HighHighLowHighSame OS on all nodesYesYesNoNoNumber of copies of OS1NNNBasis for communicationSharedmemoryMessagesFilesModel specificResource managementGlobal,centralGlobal,distributedPer nodePer s onOSDepends on OSOpenOpenComputer ScienceCS677: Distributed OSLecture 1, page 28

Computer Science Lecture 1, page Course Staff Instructor: Prashant Shenoy - Email: [email protected], Phone: (413) 577 0850 - Office hours: MW 2:30-3:45, CS 302, or by appt Teaching Assistant: Amee Trivedi - Email: [email protected] - Office hours: Will be posted soon