Chris Gill CSE 522S – Advanced Operating Systems

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

MapReduce Online Tyson Condie UC Berkeley Slides by Kaixiang MO
MapReduce Online Created by: Rajesh Gadipuuri Modified by: Ying Lu.
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
A. Frank - P. Weisberg Operating Systems Introduction to Cooperating Processes.
Pipelining By Toan Nguyen.
19-Aug-15 About the Chat program. 2 Constraints You can't have two programs (or two copies of the same program) listen to the same port on the same machine.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Today’s topic Other server design alternatives –Preforked servers –Threaded servers –Prethreaded servers.
Introduction to Interprocess communication SE-2811 Dr. Mark L. Hornick 1.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Threads and Processes.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
Proactor Pattern Venkita Subramonian & Christopher Gill
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis
Field Trip #25 Creating a Client/Server By Keith Lynn.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
File Systems cs550 Operating Systems David Monismith.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Using Workflow With Dataforms Tim Borntreger, Director of Client Services.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 33 Networking.
Lecture 3 – MapReduce: Implementation CSE 490h – Introduction to Distributed Computing, Spring 2009 Except as otherwise noted, the content of this presentation.
Kernel Synchronization David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Index Building.
C++11 Atomic Types and Memory Model
Chapter 9: Transport Layer
Day 3: September 10, 2012 Gates from Transistors
Instructor Materials Chapter 9: Transport Layer
Chapter 3: Process Concept
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Linux Pipes and FIFOs David Ferry, Chris Gill
Out-of-Process Components
Processes David Ferry, Chris Gill
Overview of the Lab 2 Assignment: Linux Scheduler Profiling
Net 323 D: Networks Protocols
Overview of the Lab 3 Assignment: Kernel Module Concurrent Memory Use
Semester Review Chris Gill CSE 422S - Operating Systems Organization
Algorithm Analysis CSE 2011 Winter September 2018.
Chapter 12: Query Processing
Interrupts and Interrupt Handling
Using the Parallel Universe beyond MPI
Java Byte IPC: Part 6-Summary
What is an Architecture?
Lecture 1: Multi-tier Architecture Overview
Net 323 D: Networks Protocols
An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.
Conceptual Architecture of PostgreSQL
Conceptual Architecture of PostgreSQL
Lecture 2- Query Processing (continued)
CPEG514 Advanced Computer Networkst
Day 3: September 4, 2013 Gates from Transistors
System Calls David Ferry CSCI 3500 – Operating Systems
Overall Kernel Module Design
Top Half / Bottom Half Processing
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
CSE 333 – Section 10 Final Review.
What is an Architecture?
Internet Applications & Programming
Out-of-Process Components
Linux Block I/O Layer Chris Gill, Brian Kocoloski
Threads vs. Processes Hank Levy 1.
CS703 - Advanced Operating Systems
CSE 153 Design of Operating Systems Winter 2019
Interrupts and Interrupt Handling
Processes David Ferry, Chris Gill, Brian Kocoloski
External Sorting Dina Said
Presentation transcript:

Overview of the Lab 1 Assignment: Multiplexing Inter-Process Communication Chris Gill CSE 522S – Advanced Operating Systems Washington University in St. Louis St. Louis, MO 63143

CSE 522S – Advanced Operating Systems Overall Design Server & clients work to reassemble a file from shuffled fragments A form of distributed merge sort Server loads a file listing fragments, then coordinates with clients Reads in and sends a fragment to each client as soon as that client connects When all fragments have been sent to clients, stops accepting new connections Reads back and merges streams of sorted (numbered) lines from clients Outputs the assembled file Clients process file fragments Each client reads in a stream of (numbered) lines from the server Stores lines then sorts them according to their line numbers Streams the (numbered) lines back to the server Server Client Client Client CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Server Nuances Server needs to multiplex events within a single thread of execution Using epoll() or select() or poll() to handle events from multiple sockets concurrently Dispatching a single call to accept() or read() or write() for each new event Stores and manage results dynamically Use malloc and free to support arbitrary numbers of clients, text lengths, numbers of text fragments, etc. Use dynamic, not static, data structures Don’t assume fixed sizes/numbers for things that may vary per program inputs Even with a single thread, work concurrently Small fragments of text are written/read Data structures store interim results Server stays busy (assuming client turnaround is reasonably quick) Server Event Loop select() accept() write() read() CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Client Nuances Client may be single-threaded without using an event multiplexing loop Workflow is largely sequential Stays busy once server starts feeding it data Stores and manage results dynamically Use malloc and free to support arbitrary lengths and numbers of text fragments, etc. Use dynamic, not static, data structures Don’t assume fixed sizes/numbers for things that may vary per program inputs Each read or write may send or receive only part of a buffer of data Need to manage pointers within linked list of text fragments, in order to make sure everything is sent This issue also affects server code Client workflow connect() while(!done) { read() } sort() write() close() CSE 522S – Advanced Operating Systems

CSE 522S – Advanced Operating Systems Lab Write-up As you work, please record your observations in detail It’s a good idea to read the entire assignment, and to plan and design a bit before starting to work on it It’s also a good idea to develop and test incrementally Run different combinations of file lengths, #s of fragments Use the file fragmentation program that’s linked from the assignment to generate your own test cases Write a cohesive report that analyzes, integrates, and offers explanations for what you observed Document the thinking behind your design Attribute sources for any code or design ideas you obtained from elsewhere (caveat – only use what you understand, and know to be correct) Explain not only what you did and what you saw, but also why you did that, and why you think what you saw happened CSE 522S – Advanced Operating Systems