Operating Systems: Basic Concepts and History



Similar documents
Operating Systems 4 th Class

Types Of Operating Systems

Chapter 3. Operating Systems

Operating System Structures

Contents. Chapter 1. Introduction

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Chapter 5: System Software: Operating Systems and Utility Programs

Part V Applications. What is cloud computing? SaaS has been around for awhile. Cloud Computing: General concepts

3 - Introduction to Operating Systems

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Chapter 1: Introduction. What is an Operating System?

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

CHAPTER 15: Operating Systems: An Overview

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

Chapter 2: OS Overview

Operating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Full and Para Virtualization

How To Understand And Understand An Operating System In C Programming

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Chapter 6, The Operating System Machine Level

Introduction. What is an Operating System?

How To Understand The History Of An Operating System

Overview of Operating Systems Instructor: Dr. Tongping Liu

Outline: Operating Systems

Chapter 3: Operating Systems

Computers: Tools for an Information Age

Definitions. Hardware Full virtualization Para virtualization Hosted hypervisor Type I hypervisor. Native (bare metal) hypervisor Type II hypervisor

Chapter 3 Operating-System Structures

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Data Centers and Cloud Computing

EECS 678: Introduction to Operating Systems

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Virtualization. Dr. Yingwu Zhu

Introduction to Cloud Services

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

DISTRIBUTED SYSTEMS AND CLOUD COMPUTING. A Comparative Study

Multimedia Systems Hardware & Software THETOPPERSWAY.COM

Running Windows on a Mac. Why?

Operating Systems Overview

Parallels Desktop 4 for Windows and Linux Read Me

How To Understand The Principles Of Operating Systems

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Overview and History of Operating Systems

Enabling Technologies for Distributed and Cloud Computing

CloudFTP: A free Storage Cloud

Learning Objectives. Chapter 1: Networking with Microsoft Windows 2000 Server. Basic Network Concepts. Learning Objectives (continued)

CPS221 Lecture: Operating System Structure; Virtual Machines

Introduction to Virtual Machines

Operating System Overview. Otto J. Anshus

Data Centers and Cloud Computing. Data Centers

wu.cloud: Insights Gained from Operating a Private Cloud System

Example of Standard API

Cloud Computing an introduction

Priority Pro v17: Hardware and Supporting Systems

Cloud computing - Architecting in the cloud

International Engineering Journal For Research & Development

SERVER CLUSTERING TECHNOLOGY & CONCEPT

SOFTWARE TECHNOLOGIES

Cloud Computing. Chapter 1 Introducing Cloud Computing

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Chapter 3: Operating-System Structures. Common System Components

Introduction to Engineering Using Robotics Experiments Lecture 18 Cloud Computing

lesson 1 An Overview of the Computer System

Chapter 2 System Structures

Data Centers and Cloud Computing. Data Centers. MGHPCC Data Center. Inside a Data Center

Operating System Tutorial

A Deduplication File System & Course Review

Introduction Disks RAID Tertiary storage. Mass Storage. CMSC 412, University of Maryland. Guest lecturer: David Hovemeyer.

Terminal Server Software and Hardware Requirements. Terminal Server. Software and Hardware Requirements. Datacolor Match Pigment Datacolor Tools

Data Centers and Cloud Computing. Data Centers

QUESTIONS & ANSWERS. ItB tender 72-09: IT Equipment. Elections Project

12. Introduction to Virtual Machines

OPERATING SYSTEMS STRUCTURES

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Mobile Operating Systems. Week I

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

VMWare Workstation 11 Installation MICROSOFT WINDOWS SERVER 2008 R2 STANDARD ENTERPRISE ED.

What is a System on a Chip?

Benchmarking Large Scale Cloud Computing in Asia Pacific

Design Issues in a Bare PC Web Server

Understanding the Performance of an X User Environment

Microsoft Office Outlook 2013: Part 1

evm Virtualization Platform for Windows

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

About Parallels Desktop 7 for Mac

About Parallels Desktop 10 for Mac

Lecture 25 Symbian OS

PARALLELS SERVER 4 BARE METAL README

Chapter 11 I/O Management and Disk Scheduling

Activatiecode voor NovaBackup Professional voor 3 pc. Omschrijving NovaBACKUP Professional 14.1

OPERATING SYSTEM SERVICES

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Operating System Components

Topics. Images courtesy of Majd F. Sakr or from Wikipedia unless otherwise noted.

Software Systems Architecture in a World of Cloud Computing. Christine Miyachi SDM Entering Class 2000

ELEC 377. Operating Systems. Week 1 Class 3

Transcription:

Introduction to Operating Systems Operating Systems: Basic Concepts and History An operating system is the interface between the user and the architecture. User Applications Operating System Hardware Virtual Machine Interface Physical Machine Interface OS as juggler: providing the illusion of a dedicated machine with infinite memory and CPU. OS as government: protecting ti users from each other, allocating resources efficiently and fairly, and providing secure and safe communication OS as complex system: keeping OS design and implementation as simple as possible is the key to getting the OS to work 1 2

What is an Operating System? What is an Operating System? Any code that runs with the hardware kernel bit set An abstract virtual machine A set of abstractions that simplify application design Files instead of bytes on a disk Core OS services, written by pros Processes, process scheduling Address spaces Device control ~30% of Linux source code. Basis of stability and security Device drivers written by whoever Software run in kernel to manages a particular vendor s hardware E.g. Homer Simpson doll with USB ~70% of Linux source code OS is extensible Drivers are the biggest source of OS instability For any OS area (CPU scheduling, file systems, memory management), begin by asking two questions What s the hardware interface? (The Physical Reality) What is the application interface? (The Nicer Interface for programmer producivity) Key questions: Why is the application interface defined the way it is? Should we push more functionality into applications, the OS, or the hardware? What are the tradeoffs between programmability, complexity, and flexibility? 3 4

Operating System Functions Why do we need operating systems? Service provider Provide standard facilities File system Standard libraries Window system Coordinator: three aspects Protection: prevent jobs from interfering with each other Communication: enable jobs to interact with each other Resource management: facilitate sharing of resources across jobs. Operating systems are everywhere Single-function devices (embedded controllers, Nintendo, ) OS provides a collection of standard services Sometimes OS/middleware distinction is blurry Multi-function/application devices (workstations and servers) OS manages application interactions Convenience Provide a high-level abstraction of physical resources. Make hardware usable by getting rid of warts & specifics. Enable the construction of more complex software systems Enable portable code. MS-DOS version 1 boots on the latest 3+ GHz Pentium. Would games that ran on MS-DOSv1 work well today? Efficiency Share limited or expensive physical resources. Provide protection. 5 6

Computer Architecture & Processes Evolution of Operating Systems CPU - the processor that performs the actual computation I/O devices - terminal, disks, video board, printer, etc. Memory - RAM containing data and programs used by the CPU System bus - the communication medium between the CPU, memory, and peripherals 7 Why do operating systems change? Key functions: hardware abstraction and coordination Principle: Design tradeoffs change as technology changes. Comparing computing systems from 1981 and 2007 1981 2007 Factor MIPS 1 57,000 57,000 $/SPECInt $100K $2 50,000 DRAM size 128KB 2GB 16,000 Disk size 10MB 1TB 100,000 Net BW 9600 bps 100 Mb/s 10,000000 Address bits 16 64 4 Users/machine 100 <1 100 Energy efficiency and parallelism loom on the horizon. Data centers projected to consume 3% of US energy by next year No more single-core CPUs 8

From Architecture to OS to Application, and Back From Architectural to OS to Application, and Back Hardware Example OS Services User Abstraction Processor Process management, Process Scheduling, Traps, Protections, Billing, Synchronization Memory Management, Protection, Address space Virtual memory I/O devices Concurrency with CPU, Interrupt handling Terminal, Mouse, Printer, (System Calls) File system Management, Persistence Files Distributed systems Network security, Distributed file system RPC system calls, Transparent file sharing OS Service Protection Interrupts System calls I/O Scheduling, error recovery, billing Synchronization Virtual Memory Hardware Support Kernel / User mode Protected Instructions Base and Limit Registers Interrupt Vectors Trap instructions and trap vectors Interrupts or Memory-Mapping Timer Atomic instructions Translation look-aside buffers Register pointing to base of page table 9 10

Interrupts - Moving from Kernel to User Mode User processes may not: address I/O directly use instructions that manipulate OS memory (e.g., page tables) set the mode bits that determine user or kernel mode disable and enable interrupts halt the machine but in kernel mode, the OS does all these things a status bit in a protected processor register indicates the mode Protected instructions can only be executed in kernel mode. On interrupts (e.g., time slice) or system calls History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming i systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing/cloud computing Cell phone, mp3 player, DVD player, TIVO, PDA, iphone, ereader Software as a service, Amazon s elastic compute cloud 11 12

History of Operating Systems: Phases A Brief History of Operating Systems Hand programmed machines ( 45 55) Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming i systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Single user systems OS = loader + libraries of common subroutines Problem: low utilization of expensive components Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing Execution time Execution time + Card reader time = % utilization 13 14

Batch/Off line processing ( 55 65) Batch processing ( 55 65) Batching v. sequential execution of jobs Operating system = loader + sequencer + output processor Card Reader: Read Job 1 Job 2 Job 3 User Data CPU: Printer: Execute Job 1 Job 2 Job 3 Print Job 1 Job 2 Job 3 Tape User Program System Software Tape Card Reader: Read Batch 1 Batch 2 Batch 3 Operating System CPU: Printer: Execute Batch 1 Batch 2 Batch 3 Print Batch 1 Batch 2 Batch 3 Card Reader Tape Compute Tape Printer Input Output 15 16

Multiprogramming ( 65 80) Keep several jobs in memory and multiplex CPU between jobs Multiprogramming ( 65 80) Keep several jobs in memory and multiplex CPU between jobs User Program n... User Program 2 User Program 1 System Software Operating System program P begin : Read(var) : end P system call Read() begin StartIO(input device) WaitIO(interrupt) EndIO(input device) : end Read Simple, synchronous input: What to do while we wait for the I/O device? User Program n... User Program 2 User Program 1 System Software Operating System Program 1 main{ k: read() k+1: } OS read{ startio() waitio() endio() } I/O Device interrupt 17 18

Multiprogramming ( 65 80) History of Operating Systems: Phases Keep several jobs in memory and multiplex CPU between jobs User Program n... User Program 2 User Program 1 System Software Operating System Program 1 OS Program 2 main{ k: read() k+1: } read{ startio() schedule() } endio{ schedule() } main{ I/O Device interrupt Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming i systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing 19 20

Timesharing ( 70 ) History of Operating Systems: Phases A timer interrupt is used to multiplex CPU among jobs User Program n... User Program 2 User Program 1 System Software Operating System Program 1 OS Program 2 k: k+1: main{ timer interrupt timer interrupt schedule{ } schedule{ } schedule{ timer interrupt main{ Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming i systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing 21 22

Operating Systems for PCs Distributed Operating Systems Personal computing systems Single user Utilization is no longer a concern Emphasis is on user interface and API Many services & features not present Typically support distributed services Sharing of data and coordination across multiple systems Possibly employ multiple processors Loosely coupled v. tightly coupled systems High availability & reliability requirements Amazon, CNN Evolution Initially: OS as a simple service provider (simple libraries) Now: Multi-application systems with support for coordination and communication Growing security issues (e.g., online commerce, medical records) User Program OS process management CPU User Program OS process management memory management CPU OS file system name services mail services CPU 23 Network LAN/WAN 24

History of Operating Systems: Phases What is cloud computing? Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing/cloud computing Everything will have computation, from pacemakers to toasters Computing centralizing I think there is a world market for maybe five computers Tomas J. Watson, 1943 (president of IBM) Cloud computing is where dynamically scalable and often virtualized resources are provided as a service over the Internet (thanks, wikipedia!) Infrastructure as a service (IaaS) Amazon s EC2 (elastic compute cloud) Platform as a service (PaaS) Google gears Microsoft azure Software as a service (SaaS) gmail facebook flickr 25 26

Richer Operating Systems Intellectual property Thanks, James Hamilton, amazon Copyrighted material is being disseminated in digital form without payment to copyright owners. Sue them (DMCA) Napster (99-7/00) RIAA lawsuits (9/03) MPAA lawsuits against bittorrent operators (11/04) What is the future of file sharing? Attempts to ban all file sharing at the university level. Government tapping of IP networks. Can software stop intellectual property piracy? Why not? The consumer controls the OS. What about adding hardware? Intel s trusted execution technology. Who is trusted? Hint: Its not the owner of the computer A PC is an open-ended system, not an appliance. For how much longer? 27 28

Richer Operating Systems Information organization Is it better to search for data (google), or organize it hierarchically (file folders)? Organization along a particular set of ideas (schema) might not be ideal for a different set of ideas. Gmail search vs. mail folders Integration of search in Vista and MacOS. Do you use My Documents folder, or do you maintain your own directories? use both a lot? Course Overview OS Structure, Processes and Process Management CPU scheduling Threads and concurrent programming Thread coordination, mutual exclusion, monitors Deadlocks Virtual memory & Memory management Disks & file systems Distributed file systems Security 29 30