Viney Sindhu Dr. Yanqing Zhang

Slides:



Advertisements
Similar presentations
Reinventing using REST. Anything addressable by a URI is called a resource GET, PUT, POST, DELETE WebDAV (MOVE, LOCK)
Advertisements

Categories of I/O Devices
Operating Systems Part III: Process Management (Process Synchronization)
Overview Assignment 8: hints Assignment 7: solution Deadlocks
Lock-Based Concurrency Control
HEP Data Sharing … … and Web Storage services Alberto Pace Information Technology Division.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Concurrent Processes Lecture 5. Introduction Modern operating systems can handle more than one process at a time System scheduler manages processes and.
Threads Clients Servers Code Migration Software Agents Summary
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Race Conditions CS550 Operating Systems. Review So far, we have discussed Processes and Threads and talked about multithreading and MPI processes by example.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Fundamentals of Python: From First Programs Through Data Structures
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
1 Race Conditions/Mutual Exclusion Segment of code of a process where a shared resource is accessed (changing global variables, writing files etc) is called.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Web-based Software Development Web-based Distributed Authoring and Versioning Jul 19, 2005 Shin Young Ahn.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
WWW Distributed Authoring and Versioning (WEBDAV ): An Introduction Jim Whitehead, U.C. Irvine Chair, IETF WEBDAV Working Group.
CS4273: Distributed System Technologies and Programming Lecture 13: Review.
Concurrency, Mutual Exclusion and Synchronization.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Introduction to Concurrency.
June-Hyun, Moon Computer Communications LAB., Kwangwoon University Chapter 26 - Threads.
Operating Systems CSE 411 Multi-processor Operating Systems Multi-processor Operating Systems Dec Lecture 30 Instructor: Bhuvan Urgaonkar.
Threaded Programming in Python Adapted from Fundamentals of Python: From First Programs Through Data Structures CPE 401 / 601 Computer Network Systems.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
CS399 New Beginnings Jonathan Walpole. 2 Concurrent Programming & Synchronization Primitives.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
12.5 Synchronization BY PRIYANKA, HARSHA, JEJI & XIAOLONG ADVISOR- DR.YANQING ZHANG.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Exploring Networked Data and Data Stores Lesson 3.
DISTRIBUTED FILE SYSTEM- ENHANCEMENT AND FURTHER DEVELOPMENT BY:- PALLAWI(10BIT0033)
BOF-1147, JavaTM Technology and WebDAV: Standardizing Content Management Java and WebDAV Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer.
Introduction to Information Systems SSD1: Introduction to Information Systems Unit 1. The World Wide Web Unit 2. Introduction to Java and Object- Oriented.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
CS122B: Projects in Databases and Web Applications Spring 2017
CS122B: Projects in Databases and Web Applications Winter 2017
Tiny http client and server
Threaded Programming in Python
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
Using E-Business Suite Attachments
Distributed Shared Memory
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Background on the need for Synchronization
Servlet Fudamentals.
Chapter 2: System Structures
Threads Threads.
File Transfer and access
Synchronization in Distributed File System
Revision Control Daniel Daugherty
CS122B: Projects in Databases and Web Applications Winter 2018
Fault Tolerance Distributed Web-based Systems
CS122B: Projects in Databases and Web Applications Spring 2018
Distributed Computing Systems
Threads Chapter 4.
Operating Systems : Overview
Operating Systems : Overview
HyperText Transfer Protocol
Multithreaded Programming
Threaded Programming in Python
Operating Systems : Overview
Operating Systems : Overview
WEB SERVICES From Chapter 19, Distributed Systems
CS333 Intro to Operating Systems
CSE 451 Section 1/27/2000.
CSE 542: Operating Systems
Chapter 3: Process Management
Presentation transcript:

Viney Sindhu Dr. Yanqing Zhang Synchronization Viney Sindhu Dr. Yanqing Zhang

Agenda Overview Synchronization Techniques WebDAV(Web Distributed Authoring and Versioning) Future Work References

What is Synchronization? In general it is process of precisely coordinating or matching two or more activities, devices, or processes in time. It has various applications, for e.g. operating systems, web applications, mobile development etc.

Two types of Synchronization Process synchronization Data synchronization modification Process A Process B System A System B Time Data item 1 modification Process Process Synchronization Data Item 1 Data Item 1 Process A correspondance modification 1: 1 Synchronization 1: 1 Synchronization Data item 1 Time Main System Process B modification Data Item 1 Data item 1

Synchronization Solutions File system oriented: Unix tool rsync: Incremental exchange of files Coda file system Version control systems: CVS WEBDav protocol: HTTP based file transfer protocol Locking and Versioning included Mobile Application oriented: Microsoft Active Sync: Synchronization between Desktop and Windows CE mobile devices

What is WebDAV? Web-based Distributed Authoring and Versioning “DAV” is the usual short form Provides a simple means to lock a shared document, and to create, delete, copy, and move documents from remote Web servers. Turns the Web into a writeable medium Applies to all kinds of content - not just HTML and images Based on extensions to HTTP

WebDAV Infrastructure DAV can provide infrastructure for: Collaboration Metadata Namespace management Ordered collections Versioning Access control Searching

How WebDAV works? To synchronize concurrent access to a shared document, WebDAV supports a simple locking mechanism There are two types of write locks Exclusive Write Shared Write

Exclusive Write An exclusive write lock can be assigned to a single client, and will prevent any other client from modifying the shared document while it is locked

Shared Write A shared write lock, which allows multiple clients to simultaneously update the document Shared write locks are convenient when clients modify different parts of the same document The clients, themselves, will need to take care that no write-write conflicts occur

WebDAV Assigning a lock is done by passing a lock token to the requesting client. The server registers which client currently has the lock token Whenever the client wants to modify the document, it sends an HTTP post request to the server, along with the lock token The token shows that the client has write-access to the document, for which reason the server will carry out the request

WebDAV Special Feature There is no need to maintain a connection between the client and the server while holding the lock The client can simply disconnect from the server after acquiring the lock and reconnect to the server when sending an HTTP request

How to synchronize the execution of multiple threads of same process ? Spin Locks Semaphores

Spin Locks Busy waits waste CPU cycles. Can use in interrupt context, as does not sleep. Cannot use when code sleeps while holding lock. Use for locks held a short time.

Semaphores Context switch on sleep is expensive. Sleeps, so cannot use in interrupt context. Can use when code sleeps while holding lock. Use for locks that held a long time.

Future Work When a client holding a lock token crashes, the server will one way or the other have to reclaim the lock It does not specify how servers should handle these and similar situations, but leaves that open to specific implementations The reasoning is that the best solution will depend on the type of documents that WebDAV is being used for

References https://en.wikipedia.org/wiki/WebDAV Dridi, F.; Neumann, G., "How to implement Web-based groupware systems based on WebDAV," in Enabling Technologies: Infrastructure for Collaborative Enterprises, 1999. (WET ICE '99) Proceedings. IEEE 8th International Workshops on , vol., no., pp.114-119, 1999 http://wiki.fib.upc.es/sodx/images/5/51/8._Distributed_web- based_systems.pdf http://www.cs.cornell.edu/courses/cs4410/2013su/slides/lecture06.p df https://msdn.microsoft.com/en-us/library/ms228964(v=vs.110).aspx https://cseweb.ucsd.edu/classes/fa05/cse120/lectures/120-l5.pdf

Questions?

Thank You