Lecture 2 Page 1 CS 111 Online Operating System Basics CS 111 On-Line MS Program Operating Systems Peter Reiher.

Slides:



Advertisements
Similar presentations
Code Correctness, Readability, Maintainability Svetlin Nakov Telerik Corporation
Advertisements

COM vs. CORBA.
Lecture 13 Page 1 CS 111 Online File Systems: Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher.
Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Lecture 12 Page 1 CS 111 Online Devices and Device Drivers CS 111 On-Line MS Program Operating Systems Peter Reiher.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Systems Analysis and Design in a Changing World, 6th Edition
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Non-functional requirements
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Lecture 1 Page 1 CS 111 Online Introduction to the Course Purpose of course and relationships to other courses Why study operating systems? Major themes.
Or ways to enhance coding enjoyment, productivity and, most of all, preserve your sanity. Nicolas Connault Web developer Moodle HQ February 19 th 2008.
CSE 303 – Software Design and Architecture
Customising Web Application Security Richard Wilson University of Melbourne, Australia Daniel Lowes University of Pretoria, South Africa.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Windows NT Operating System. Windows NT Models Layered Model Client/Server Model Object Model Symmetric Multiprocessing.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Code Correctness, Readability, Maintainability Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
Operating Systems Structure what is the organizational principle?
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Lecture 19 Page 1 CS 236 Online Securing Your System CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 2 Page 1 CS 111 Fall 2015 Operating System Basics CS 111 Operating Systems Peter Reiher.
Introduction to Software Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Introduction Why are virtual machines interesting?
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Software Development Life Cycle (SDLC)
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 2 Page 1 CS 111 Spring 2015 Operating System Basics CS 111 Operating Systems Peter Reiher.
Introduction to UNIX CS465. What is UNIX? (1) UNIX is an Operating System (OS). An operating system is a control program that allocates the computer's.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Lecture9 Page 1 CS 236 Online Operating System Security, Con’t CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
CSHenrik Bærbak Christensen1 Flexibility and Maintainability And their metrics: coupling and cohesion.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Week # 4 Quality Assurance Software Quality Engineering 1.
By Manish Shrotriya CSE MS Software Programs Shrink Wrap Software : Software that one can buy off the shelf and can install on his computer. They.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Computer System Structures
Operating System Structures
Kernel Design & Implementation
Regression Testing with its types
Environment Assessment
SYSTEM ANALYSIS AND DESIGN
The Client/Server Database Environment
Chapter 3: Windows7 Part 1.
Chapter 2: Operating-System Structures
Software Defined Networking (SDN)
The Object-Oriented Thought Process Chapter 05
Outline Chapter 2 (cont) OS Design OS structure
Outline Operating System Organization Operating System Examples
Executable Specifications
Presentation transcript:

Lecture 2 Page 1 CS 111 Online Operating System Basics CS 111 On-Line MS Program Operating Systems Peter Reiher

Lecture 2 Page 2 CS 111 Online Outline Important properties for an operating system Critical abstractions for operating systems System services

Lecture 2 Page 3 CS 111 Online Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking about – Users – Service providers – Application developers – OS developers

Lecture 2 Page 4 CS 111 Online For the End Users, Reliability Performance Upwards compatibility in releases Support for differing hardware – Currently available platforms – What’s available in the future Availability of key applications Security

Lecture 2 Page 5 CS 111 Online Reliability Your OS really should never crash – Since it takes everything else down with it But also need dependability in a different sense – The OS must be depended on to behave as it’s specified – Nobody wants surprises from their operating system – Since the OS controls everything, unexpected behavior could be arbitrarily bad

Lecture 2 Page 6 CS 111 Online Performance A loose goal The OS must perform well in critical situations But optimizing the performance of all OS operations not always critical Nothing can take too long But if something is “fast enough,” adding complexity to make it faster not worthwhile

Lecture 2 Page 7 CS 111 Online Upward Compatibility People want new releases of an OS – New features, bug fixes, enhancements People also fear new releases of an OS – OS changes can break old applications What makes the compatibility issue manageable? – Stable interfaces

Lecture 2 Page 8 CS 111 Online Stable Interfaces Designers should start with well specified Application Interfaces – Must keep them stable from release to release Application developers should only use committed interfaces – Don’t use undocumented features or erroneous side effects

Lecture 2 Page 9 CS 111 Online Interfaces and Standards Standards in the Dark Ages (1965) The S/W Reformation (1985) The role of standards today APIs ABIs

Lecture 2 Page 10 CS 111 Online Standards in the Dark Ages (1965) No software industry as we now know it All the money was made on hardware – But hardware is useless without software – All software built by hardware suppliers – Platforms were distinguished by software Software portability was an anti-goal – Keep customers captive to your hardware – Portability means they could go elsewhere Standards were few and weak

Lecture 2 Page 11 CS 111 Online The S/W Reformation (1985) An outgrowth of the popular commodity PC The advent of the “killer application” – Desk-top publishing, spreadsheets,... – The rise of the Independent Software Vendor Fundamental changes to platform industry – The “applications, demand, volume” cycle – Application capture became strategic Applications portability also became strategic – Standards are the key to portability – Standards compliance became strategic

Lecture 2 Page 12 CS 111 Online Standards Today There are many software standards – Subroutines, protocols and data formats, … – Both portability and interoperability – Some are general (e.g. POSIX 1003, TCP/IP) – Some are very domain specific (e.g. MPEG2) Key standards are widely required – Non-compliance reduces application capture – Non-compliance raises price to customers – Proprietary extensions are usually ignored

Lecture 2 Page 13 CS 111 Online APIs Application Program Interfaces – A source level interface, specifying Include files, data types, constants Macros, routines and their parameters A basis for software portability – Recompile program for the desired architecture – Linkage edit with OS-specific libraries – Resulting binary runs on that architecture and OS An API compliant program will compile & run on any compliant system

Lecture 2 Page 14 CS 111 Online ABIs Application Binary Interfaces – A binary interface, specifying Dynamically loadable libraries (DLLs) Data formats, calling sequences, linkage conventions – The binding of an API to a hardware architecture A basis for binary compatibility – One binary serves all customers for that hardware E.g. all x86 Linux/BSD/MacOS/Solaris/… May even run on Windows platforms An ABI compliant program will run (unmodified) on any compliant system

Lecture 2 Page 15 CS 111 Online For the Service Providers, Reliability Performance Upwards compatibility in releases Platform support (wide range of platforms) Manageability Total cost of ownership Support (updates and bug fixes) Flexibility (in configurations and applications) Security

Lecture 2 Page 16 CS 111 Online For the Application Developers, Reliability Performance Upwards compatibility in releases Standards conformance Functionality (current and roadmap) Middleware and tools Documentation Support (how to...)

Lecture 2 Page 17 CS 111 Online For the OS Developers, Reliability Performance Maintainability Low cost of development – Original and ongoing

Lecture 2 Page 18 CS 111 Online Maintainability Operating systems have very long lives – Solaris, the “new kid on the block,” came out in 1993 Basic requirements will change many times Support costs will dwarf initial development This makes maintainability critical Aspects of maintainability: – Understandability – Modularity/modifiability – Testability

Lecture 2 Page 19 CS 111 Online Maintainability: Understandability Code must be learnable by mortals – It will not be maintained by the original developers – New people must be able to come up to speed Code must be well organized – Nobody can understand 1M lines of random code – It must have understandable, hierarchical structure Documentation – High level structure, and organizing principles – Functionality, design, and rationale for modules – How to solve common problems Modern operating systems are often millions of lines long. Can anyone understand them entirely, even if well-organized? If not, what does that imply?

Lecture 2 Page 20 CS 111 Online Why a Hierarachical Structure? Not absolutely necessary, but... Hierarchical layers can usually be understood without having to completely understand the implementation Expansion of one sub-system in a hierarchy can usually be understood without having to understand the expansion of other sub- systems Other structures tend not to have those advantages

Lecture 2 Page 21 CS 111 Online Maintainability: Modularity and Modifiability Modules must be understandable in isolation – Modules should perform coherent functions – Well-specified interfaces for each module – Implementation details hidden within module – Inter-module dependencies should be few/simple/clean Modules must be independently changeable – Lots of side effects mean lots of bugs – Changes to one module should not affect others Keep It Simple Stupid – Costs of complexity usually outweigh the rewards

Lecture 2 Page 22 CS 111 Online Side Effects A side effect is a situation where an action in one object has non-obvious consequences – Perhaps even to other objects Side effects often happen when state is shared between seemingly independent modules and functions Side effects lead to unexpected behaviors And the resulting bugs can be hard to find Are side effects always undesirable?

Lecture 2 Page 23 CS 111 Online Maintainability: Testability OS must work, so its developers must test it Thorough testing is key to reliability – All modules must be thoroughly testable – Most modules should be testable in isolation Testability must be designed in from the start – Observability of internal state – Triggerability of all operations and situations – Isolability of functionality Testing must be automated – Functionality, regression, performance, – Stress testing, error handling handling

Lecture 2 Page 24 CS 111 Online Automated Testing Why is it important that testing be automated? Automated tests can be run often (e.g. after every change) with very little cost or effort Automatically executed tests are much more likely to be run completely and correctly every time And discrepancies are much more likely to be noted and reported What factors make it complicated to perform automated testing?

Lecture 2 Page 25 CS 111 Online Cost of Development Another area where simplicity wins If it’s simple, it will be quicker and cheaper to build Even better, there will be fewer bugs – And thus less cost for bug fixes And changing/extending it will be cheaper