UDI Architecture In-Depth Robert Lipe UDI Development Team Lead

Slides:



Advertisements
Similar presentations
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Advertisements

Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
CS-334: Computer Architecture
UDI, a Uniform Driver Interface By Project UDI Kevin Quick, Interphase, Chairman Mark Evenson, HP, Vice-Chairman Kurt Gollhardt, SCO, Editor.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface.
04/14/2008CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 Chapter 13: I/O Systems I/O Hardware.
Page 1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
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)
04/16/2010CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying an earlier edition.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
I/O Systems CS 3100 I/O Hardware1. I/O Hardware Incredible variety of I/O devices Common concepts ◦Port ◦Bus (daisy chain or shared direct access) ◦Controller.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
1 I/O Management in Representative Operating Systems.
I/O Systems CSCI 444/544 Operating Systems Fall 2008.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Introduction to UDI Kurt Gollhardt SCO Core OS Architect
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
UDI, a Uniform Driver Interface Architecture Overview Kurt Gollhardt (Chair, Project UDI) November 2010.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
Cpr E 308 Input/Output Recall: OS must abstract out all the details of specific I/O devices Today –Block and Character Devices –Hardware Issues – Programmed.
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
NETW 3005 I/O Systems. Reading For this lecture, you should have read Chapter 13 (Sections 1-4, 7). NETW3005 (Operating Systems) Lecture 10 - I/O Systems2.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-2: I/O Management (Review) Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 AE4B33OSS Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O.
I/O Systems I/O Hardware Application I/O Interface
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
1 Module 12: I/O Systems n I/O hardware n Application I/O Interface n Kernel I/O Subsystem n Transforming I/O Requests to Hardware Operations n Performance.
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS6: Device Management 6.1. Principles of I/O.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
UDI Tutorial & Driver Walk-Through Part 2 Kurt Gollhardt SCO Core OS Architect
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CE-321: Computer.
Chapter 13: I/O Systems. 13.2/34 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware.
UDI Tutorial & Driver Walk-Through Part 1 Kurt Gollhardt SCO Core OS Architect
UDI HDK Roadmap Matt Kaufman Senior Software Engineer
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem.
12/8/20151 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 13: I/O Systems I/O Hardware Application I/O Interface.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Silberschatz, Galvin and Gagne  Operating System Concepts Six Step Process to Perform DMA Transfer.
XE33OSA Chapter 13: I/O Systems. 13.2XE33OSA Silberschatz, Galvin and Gagne ©2005 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel.
UDI Advanced Topics DMA and Interrupts Robert Lipe UDI Development Team Lead
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 13: I/O Systems Overview I/O Hardware Application.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
UDI Technology Benefits Slide 1 Uniform Driver Interface UDI Technology Benefits.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
ECE 456 Computer Architecture Lecture #9 – Input/Output Instructor: Dr. Honggang Wang Fall 2013.
UDI Network Drivers Network Interface Metalanguage Barry Feild SCO Server Products Group
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
I/O Systems I/O Hardware Application I/O Interface
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Process Description and Control
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Module 12: I/O Systems I/O hardwared Application I/O Interface
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

UDI Architecture In-Depth Robert Lipe UDI Development Team Lead

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 2 Agenda UDI Portability and Extensibility UDI Execution Model UDI Data Model Intro to UDI Specifications Q & A

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 3 Driver Portability with UDI 100% driver source portability –Binary portability for IA32 and IA64 and... Complete driver encapsulation –All APIs defined OS-neutral and platform-neutral –OS policy removed from driver –Transparent endianness conversions

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 4 UDI Fully Encapsulates Drivers UDI Drivers Physical I/O Abstraction System Services: Configuration Resource Allocation Inter-Module Communication Tracing & Logging Error Handling Time Management Buffer Management Operating System UDI Environment Application Programs CPU and I/O Hardware (PIO, DMA, Interrupts) I/O Requests

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 5 Embedding OS UDI Environment Path From Application to Driver Layered Implementation OS-to-UDI External Mapper I/O Subsystem Application UDI Driver Physical I/O Adapter or System Hardware OS Requests Native Driver Interface UDI Channel Operations Interrupts UDI Services Hardware Access

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 6 Embedding OS UDI Environment Path From Application to Driver Integrated Implementation I/O Subsystem Application UDI Driver Physical I/O Adapter or System Hardware OS Requests UDI Channel Operations Interrupts UDI Services Hardware Access

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 7 Uniformity Across Device Types Basic model common for all drivers –Execution and Data Models »Common buffer model –Configuration Model –Inter-Module Communication »Between drivers and/or environment modules –System Services and Utility Functions

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 8 UDI Metalanguages Device-type specific communication Defines communication paradigm between cooperating modules –Operations and sequences to implement technology-specific functionality Analogous to SCSI CAM, DLPI, etc.

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 9 Agenda UDI Portability and Extensibility UDI Execution Model UDI Data Model Intro to UDI Specifications Q & A

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 10 UDI Execution Model No global entry points Driver’s udi_init_info structure contains entry-point pointers, size requirements... All driver code executed in the context of a region –Regions are associated with driver instances »One for each adapter/device controlled

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 11 Monitor Keyboard Example Driver Hierarchy Monitor External Mapper Keyboard External Mapper Monitor Driver Instance Keyboard Driver Instance Disk Driver Instance Disk Driver Instance Tape Driver Instance Base I/O Adapter Driver Instance Disk External Mapper Tape External Mapper SCSI Adapter Driver Instance I/O Bus Adapter Driver Instance PROCESSOR-MEMORY INTERCONNECT I/O Bus Adapter Base I/O AdapterSCSI Adapter Disk Tape UDI Environment Embedding OS I/O SOFTWARE I/O HARDWARE Child Parent

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 12 Host OS UDI Environment Example UDI & I 2 O Combination OS-to-UDI External Mapper Application UDI Driver (OSM) I 2 O Mapper I 2 O RTOS System Bus Hardware I 2 O Mapper UDI Environment UDI Driver (HDM) I2O Messages

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 13 UDI Regions Basic unit for execution and scheduling –Each call into the driver region is serialized No direct data sharing between regions –You have to go through channels Region attributes (e.g. priority hints) specified at build time

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 14 UDI Regions (continued) One driver instance per device instance One or more regions per driver instance –Multi-region drivers may have higher parallelism Enables instance-independence –Driver state separate for each device instance Enables location-independence –Each region may operate in a different domain »e.g. address space, NUMA or network node

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 15 Regions and Channels Region A (driver or environment) communication channel channel endpoints Region B (driver or environment) Region Data

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 16 UDI Channels Basis for Inter-Module Communication (IMC) Bi-directional channels connect regions Communication via channel operations –Strongly typed function-call interface –Asynchronous one-way operations »Each request has a corresponding response »Context managed via control blocks

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 17 channel context UDI Channel Communications Region A channel handle communication channel channel endpoints Region B channel ops vector Channel Operation entry point region data control block

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 18 Metalanguages and Channels Metalanguages define: –Number and types of channels –Channel operation types on each channel »Control block plus meta-specific parameters –Control block types for each operation »Struct includes meta-specific fields »Generic control block header common to all

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 19 UDI System Services System interface & resource management –Implemented for all UDI environments –Abstract OS services Calls from driver to environment services are called service calls

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 20 UDI Service Calls Two Styles Synchronous service calls –Complete without blocking –Results returned “immediately” Asynchronous service calls –Return without blocking –Delayed completion –Results returned via callback function

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 21 Non-Blocking Execution Model All service calls and channel operations return without blocking Drivers usually return after making one service call or channel operation call Gives environment complete control over thread usage and driver scheduling “Pseudo-threads” interleaved between callbacks

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 22 Agenda UDI Portability and Extensibility UDI Execution Model UDI Data Model Intro to UDI Specifications Q & A

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 23 UDI Data Model Context managed via control blocks –Used with channel ops & async service calls –Environment uses CB to hold service call state –Driver uses context pointer in CB to find its data No memory shared between regions –Memory allocated in region private to that region –Regions share data with channel operations

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 24 UDI Control Blocks CB contains scratch and context pointers (preserved across service calls, not ops) »Scratch space in CB holds per-request state »Context pointer lets driver find the context of a channel op or callback Initially set to channel context Channel context struct points to global data All CBs begin with generic udi_cb_t

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 25 Implicit Synchronization No locking primitives required in UDI –All data accesses implicitly synchronized »Region data accessible only from that region »Only one thread per region active at a time Other calls deferred until active call returns –Typically by adding CB to a region queue –Driver controls its parallelism by picking number and type of regions

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 26 Region Kill Different environments have different levels of trust in drivers UDI environments can: –detect misbehaved drivers (e.g. bad pointers) –track resource ownership and transfers –abruptly terminate (“region-kill”) driver instances »Frees all resources and shuts down device

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 27 Agenda UDI Portability and Extensibility UDI Execution Model UDI Data Model Intro to UDI Specifications Q & A

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 28 UDI Specifications UDI Core Specification –UDI Architecture »Execution, Data and Configuration Models –Fundamental Data Types –Core Services and Utility Functions –Core Metalanguages –Packaging & Distribution

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 29 UDI Specifications (continued) UDI Physical I/O Specification –DMA, Programmed I/O (PIO), Interrupts –Bus Bridge Metalanguage UDI PCI Bus Binding Specification –PCI enumeration attributes, etc.

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 30 UDI Specifications (continued) UDI Network Driver Specification –Network Interface Card Metalanguage –See session F13: UDI Network Drivers UDI SCSI Driver Specification –SCSI Metalanguage –See session F12: UDI SCSI Drivers

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 31 Fundamental Data Types Specific-length types –udi_ubit8_t, udi_sbit8_t, udi_ubit16_t, udi_sbit16_t, udi_ubit32_t, udi_sbit32_t –udi_boolean_t (udi_ubit8_t) Abstract types –udi_size_t, udi_index_t

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 32 Fundamental Data Types (continued) Opaque types –Contain environment-private fields and structure –Must be allocated using UDI service calls –Opaque handles »udi_channel_t, udi_constraints_t –Semi-opaque types »udi_cb_t *, udi_buf_t *

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 33 Core Services Inter-Module Communication (IMC) Memory Management Buffer Management Time Management Tracing and Logging

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 34 Core Utility Functions String/Memory Utilities –udi_strcpy, udi_strlen, udi_memcmp et al –udi_snprintf, udi_strtou32 Queue Management Utilities Endianness Management Utilities

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 35 Core Metalanguages Management Metalanguage –Environment-initiated control operations Generic I/O Metalanguage –Generic read/write plus custom ops –Useful for prototyping and “one-off” extensions –Used to access driver diagnostics

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 36 Agenda UDI Portability and Extensibility UDI Execution Model UDI Data Model Intro to UDI Specifications Q & A

F8: UDI Architecture In-Depth © 1999 SCO All Rights Reserved - Slide 37 UDI Information Web page Project UDI contacts Chair: Kevin Quick, , Vice Chair: Mark Evenson, , Secretary: John Lee, , Editor: Kurt Gollhardt, , Advisor: Mark Bradley, ,

Presenter’s Notes Cover Page Go to “Notes Page View” to see this one Put this page at end of presentation so numbering of slides will remain accurate.