CS-3013 and CS-502 Operating Systems

Slides:



Advertisements
Similar presentations
IntroductionCS-4513, D-Term Distributed Computing Systems Hugh C. Lauer Adjunct Professor (Slides include materials from Operating System Concepts,
Advertisements

Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
IntroductionCS-4513 D-term Introduction CS-4513 Distributed Computing Systems (Slides include materials from Operating System Concepts, 7 th ed.,
IntroductionCS-3013 A-term CS-3013 Operating Systems A-term 2008 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum.
© 2004, D. J. Foreman 1 CS350 Operating Systems. © 2004, D. J. Foreman 2 Administrivia  Assignments ■ Homework on most chapters ■ Approximately 8 lab.
Course Information 1 CS502 Spring 2006 Operating Systems CS502 Spring 2006 Mondays – 6PM.
IntroductionCS-3013 A-term CS-3013 Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum.
Topic 1 – What is an OS? 1 CS502 Spring 2006 What is an Operating System? Characteristics –Large, complex set of programs –Long-lived, evolutionary –Worked.
Operating System.
Excellence Publication Co. Ltd. Volume Volume 1.
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
IntroductionCS-502 Fall CS-502 Operating Systems Fall 2007 Hugh C. Lauer Adjunct Professor.
WEEK 1 COURSE INTRODUCTION INTRODUCTION TO OPERATING SYSTEMS OPERATING SYSTEM STRUCTURES Operating Systems CS3013 / CS502.
ICOM Noack Operating Systems - Administrivia Prontuario - Please time-share and ask questions Info is in my homepage amadeus/~noack/ Make bookmark.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
1 Introduction to Operating Systems 9/16/2008 Lecture #1.
CS 3013 & CS 502 Summer 2006 Course Introduction1 CS3013 & CS502 – Operating Systems Hugh C. Lauer, Ph.D. Adjunct Professor.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
Introduction to Operating Systems J. H. Wang Sep. 18, 2015.
CS 444 Introduction to Operating Systems
IntroductionCS-502 (EMC) Fall CS-502 Operating Systems CS-502, Operating Systems Fall 2009 (EMC) (Slides include materials from Modern Operating.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
1 Operating Systems: Principles and Practice Cpr E 308.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Computer Literacy for IC 3 Unit 1: Computing Fundamentals © 2010 Pearson Education, Inc. | Publishing as Prentice Hall.1 Chapter 5: Identifying Operating.
IntroductionCS-3013 C-term CS-3013, Operating Systems C-term 2008 Hugh C. Lauer Adjunct Professor (Slides include materials from Operating System.
CS-502 Fall 2006Introduction1 CS-502 Operating Systems Hugh C. Lauer Adjunct Professor.
CSCI 330 UNIX and Network Programming Unit I Introduction.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
CMPS Operating Systems Prof. Scott Brandt Computer Science Department University of California, Santa Cruz.
Copyright © 2003 by Prentice Hall 1 Computers: Tools for an Information Age Chapter 3 Operating Systems: Software in the Background BSM025 Computers.
Chapter 2 Operating Systems
Introduction to Operating Systems Concepts
GNU and Linux.
Introduction to threads
Introduction to Operating Systems
CS 450/550 Operating Systems Loc & Time: MW 1:40pm-4:20pm, 101 ENG
Operating System & Application Software
Lecture 1-Part 2: Operating-System Structures
Chapter 2: Operating-System Structures
Popular Operating System Chapter 8
Chapter 2: System Structures
Introduction to Operating System (OS)
Chapter 1: Introduction
Operating Systems and Systems Programming
CS-3013 and CS-502 Operating Systems
Chapter 2: Operating-System Structures
Processes in Unix, Linux, and Windows
Introduction to Operating Systems
Networks Software.
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Chapter 2: System Structures
Operating Systems Lecture 4.
Chapter 2: The Linux System Part 1
Andy Wang Operating Systems COP 4610 / CGS 5765
CS-3013 Operating Systems Hugh C. Lauer
Lecture 1-Part 2: Operating-System Structures
CS-2303 System Programming Concepts
Accelerated Introduction to Computer Science
Linux Professor Sabol.
Processes in Unix, Linux, and Windows
Chapter 2: Operating-System Structures
Operating System Introduction
CS-2303 Introduction (continued)
EECE.4810/EECE.5730 Operating Systems
Loose ends from yesterday
Sarah Diesburg Operating Systems CS 3430
Lecture Topics: 11/1 Hand back midterms
Presentation transcript:

CS-3013 and CS-502 Operating Systems Hugh C. Lauer Adjunct Professor (half-time) Department of Computer Science (Slides include materials from Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne) CS-3013, C-Term 2012 Introduction

Outline for Today Details and logistics of this course Discussion What is an Operating System? What every student should know about them Project Assignment Virtual Machines Introduction to Concurrency CS-3013, C-Term 2012 Introduction 2

This Course Two 2-hour classes per week 1:00 – 3:00 PM, Tuesdays and Fridays January 13 – February 28, 2012 Very similar to first half of CS-502 First graduate course in Operating Systems Concentrated reading and project work CS-3013, C-Term 2012 Introduction

Concentrated reading and project work A number of students report that this is their hardest course at WPI (so far). The programming is demanding (even though not many lines of code) C language is unforgiving (costing you many hours of frustration) If you wait till a day or two before assignment is due, you have very little chance to complete it CS-3013, C-Term 2012 Introduction

This Course Two 2-hour classes per week 1:00 – 3:00 PM, Tuesdays and Fridays January 13 – February 28, 2012 Very similar to first half of CS-502 First graduate course in Operating Systems Concentrated reading and project work Course web site:– http://web.cs.wpi.edu/~cs3013/c12/ Parts of web site are protected in order to comply with copyright regulations CS-3013, C-Term 2012 Introduction

Textbooks Modern Operating Systems, 3rd edition, by Andrew S. Tanenbaum, Pearson Prentice-Hall, 2008 Linux Kernel Design, 3rd edition, by Robert Love, Novell Press, 2010 No older editions! 2nd edition acceptable Electronic 2nd edition on reserve CS-3013, C-Term 2012 Introduction 6

Supplemental Text Daniel Bovet & Marco Cesari, Understanding the Linux Kernel, 3rd edition, O’Reilly Media, 2006 Denser and more encyclopedic Aimed at professional Linux kernel developers Two copies on reserve in Gordon Library CS-3013, C-Term 2012 Introduction

Recommended Background Computer Programming:– C/C++ programming Especially a low-level language such as C Data structures Computer Organization — CS-2011 Unix/Linux user experience Reading assignment Tanenbaum Chapter 1 CS-3013, C-Term 2012 Introduction 8

C Programming Language Almost all difficulties that students have in this course go back to the C language Insufficient preparation and understanding Especially modules and include files Lack of experience with debugger printf() formats of data types static versus global variables CS-3013, C-Term 2012 Introduction

Recommended Background Computer Programming:– C/C++ programming Especially a low-level language such as C Data structures Computer Organization — CS-2011 Unix/Linux user experience Reading assignment Tanenbaum Chapter 1 Quiz on Tuesday, January 24! CS-3013, C-Term 2012 Introduction 10

Schedule & Logistics Schedule ~ 4 Programming Projects Fuller Labs 320 1:00 to 3:00 PM, Tuesdays and Fridays One 5 minute break 14 classes ~ 4 Programming Projects 1-3 weeks each Mobile Phones, pagers and other similar devices SILENT during class Prof’s Office Hours By appointment, or 9:00-10:00 AM Tuesdays 10:-00-11:00 AM Fridays Office:– Fuller 144 Contact lauer in the domain cs.wpi.edu Course e-mail list cs3013-all (in the same domain) CS-3013-staff (Prof & TAs) CS-3013, C-Term 2012 Introduction 11

Teaching Assistants Jia “Joe” Wang Evan Frenn Daphne Gorman Office hours in Fuller A22 Jia “Joe” Wang Office hours 3-5 PM Thursdays, 4-6 PM Fridays Evan Frenn Office hours 1-3 PM Mondays, 10 AM-noon on Wednesdays Daphne Gorman Office hours Thursdays, 11AM – 1 PM CS-3013, C-Term 2012 Introduction

Lecture Capture Lectures (voice and slides) will be captured automatically Can be viewed at http://echo360.wpi.edu/ess/portal/section/c75414a9-b545-487e-9dfd-6791280f01b8 Link is also on course web-site CS-3013, C-Term 2012 Introduction

Weekly Quizzes One quiz each week! 20-25 minutes each No final exam! Testing portion of grade based on best four of first five quizzes plus last quiz Weekly Quizzes One quiz each week! Tuesday, Jan 24 Tuesday, Feb 14 Tuesday, Jan 31 Tuesday, Feb 21 Tuesday, Feb 7 Tuesday, Feb 28 20-25 minutes each Except 40-50 minutes on February 28 No final exam! Must take February 28 quiz to pass course Usually closed book, closed notes (unless otherwise specified) CS-3013, C-Term 2012 Introduction 14

Projects Install Virtual Machine, build Linux kernel Fork — learn how to create and manage processes Simple modifications to Linux kernel Serious multithreaded application Option 1 Kernel messaging system Option 2 User-space performance test CS-3013, C-Term 2012 Introduction

WPI Academic Honesty Policy Grading Grading Quizzes – 45% Projects – 45% Class participation – 10% Good-faith attempt & submission of all projects required to pass this course! WPI Academic Honesty Policy http://www.wpi.edu/Pubs/Policies/Honesty/policy.html CS-3013, C-Term 2012 Introduction 16

More on Prerequisites C programming is essential Time required Java-only programmers will find it very challenging Time required 15+ hours per week, 7 or 10 weeks total Computing resources required Modern PC or Mac with > 15 gigabytes of free disk space Preferably dual- or quad-core Ability to install VMware Workstation, VMware Player software, or (for Mac) VMware Fusion If you don’t have access to such a computer See the Professor ASAP to use Virtual Fossil Server CS-3013, C-Term 2012 Introduction 17

Ground Rule There are no “stupid” questions. It is a waste of your time and the class’s time to proceed when you don’t understand the basic terms. If you don’t understand it, someone else probably doesn’t, either. CS-3013, C-Term 2012 Introduction 18

Ground Rule #2 Help each other! Even if a project or assignment is specified as individual, ask your colleagues about stuff you don’t understand. It is a waste of your time try to figure out some obscure detail on your own when there are lots of resources around. When you have the answer, write it in your own words (or own coding style) CS-3013, C-Term 2012 Introduction 19

Questions? CS-3013, C-Term 2012 Introduction 20

Instructor — Hugh C. Lauer Adjunct Professor (half-time) Ph. D. Carnegie-Mellon 1972-73 Dissertation “Correctness in Operating Systems” Lecturer: University of Newcastle upon Tyne, UK Approximately 30 years in industry in USA Research topics Operating Systems Proofs of Correctness Computer Architecture Networks and Distributed Computing Real-time networking 3D Volume Rendering Surgical Simulation and Navigation … CS-3013, C-Term 2012 Introduction 21

Systems Experience IBM Corporation University of Newcastle Systems Development Corporation Xerox Corporation (Palo Alto) Software Arts, Inc. Apollo Computer Eastman Kodak Company Mitsubishi Electric Research Labs (MERL) Real-Time Visualization Founded and spun out from MERL Acquired by TeraRecon, Inc. SensAble Technologies, Inc. Dimensions Imaging, Inc. (recent start-up, now defunct) CS-3013, C-Term 2012 Introduction 22

VolumePro™ Interactive volume rendering of 3D data such as MRI scans CT scans Seismic scans Two generations of ASICs, boards, software VolumePro 500 – 1999 VolumePro 1000 – 2001 CTO, Chief Architect of VolumePro 1000 7.5-million gate, high-performance ASIC 109 Phong-illuminated samples per second CS-3013, C-Term 2012 Introduction 23

Sample images from VolumePro CS-3013, C-Term 2012 Introduction 24

Operating Systems I have Known IBSYS (IBM 7090) OS/360 (IBM 360) TSS/360 (360 mod 67) Michigan Terminal System (MTS) CP/CMS & VM 370 MULTICS (GE 645) Alto (Xerox PARC) Pilot (Xerox STAR) CP/M MACH Apollo DOMAIN Unix (System V & BSD) Apple Mac (v.1 – v.9) MS-DOS Windows NT, 2000, XP, Vista, 7, etc. various embedded systems Linux … CS-3013, C-Term 2012 Introduction 25

Other Two seminal contributions to computer science Duality hypothesis for operating system structures (with Roger Needham) First realization of opaque types in type-safe programming languages (with Ed Satterthwaite) 21 US patents issued Computer architecture Software reliability Networks Computer graphics & volume rendering CS-3013, C-Term 2012 Introduction 26

Outline for Today Details and logistics of this course Discussion What is an Operating System? What every student should know about them Project Assignment Virtual Machines Introduction to Concurrency CS-3013, C-Term 2012 Introduction 27

What is an Operating System? (Laptops closed, please!) Class Discussion What is an Operating System? (Laptops closed, please!) CS-3013, C-Term 2012 Introduction 28

What is an Operating System? Characteristics Large, complex set of programs Long-lived, evolutionary Worked on by many people over many years Functions Creates abstractions Multiplexes concurrent activities Manages resources Mediates access to hardware devices Provides a variety of services to users and applications … CS-3013, C-Term 2012 Introduction 29

Definition – Abstraction The distillation of a complex mechanism into a simple, conceptual model User of abstraction does not need to worry about details Implementer of abstraction does not need to worry about how user will use it (within limits) CS-3013, C-Term 2012 Introduction 30

The most important word in this course! Abstraction The most important word in this course! CS-3013, C-Term 2012 Introduction 31

What is an operating system? (continued) Abstractions:– Processes, threads, and concurrent computation Virtual memory. For managing memory Files. Persistent storage of information Sockets & connections for network communication Controls I/O & peripherals Implements security and accessibility See §1.1 of Tanenbaum Definition — Same as judicial definition of pornography “I cannot define it, but I sure can recognize one when I see it!” CS-3013, C-Term 2012 Introduction 32

OS and Hardware OS mediates programs’ access to hardware Computation – CPU Storage – volatile (memory) and persistent (disk) Networks – NIC, protocols I/O devices – sound cards, keyboards, displays OS creates uniform abstractions Processes Files Sockets Streams CS-3013, C-Term 2012 Introduction 33

Operating Systems – a Study of Evolution Simple managing of time of expensive computers Managing concurrency between I/O and computation … and users … and applications Managing memory Managing files, communication, GUIs Creating abstractions for all of the above … and more! CS-3013, C-Term 2012 Introduction 34

What should every student of the Computational Sciences know about Operating Systems? Processes, threads, concurrent computation, & how to use them Memory Management, fragmentation, allocation, and virtual memory Files, persistent storage, and what they can do for you Protection, authentication, and what are those silly little keys they ask us about Different kinds of operating systems and what they are good for CS-3013, C-Term 2012 Introduction

Questions or Comments? CS-3013, C-Term 2012 Introduction

Outline for Today Details and logistics of this course Discussion What is an Operating System? What every student should know about them Project Assignment Virtual Machines Introduction to Concurrency CS-3013, C-Term 2012 Introduction 37

More about Programming Projects Project work based on OpenSUSE Linux 11.4 Each student will get a “virtual machine” What is a virtual machine? (§1.7.5 & 8.3 in Tanenbaum) Build, modify, install Linux kernel on your virtual machine Debug, analyze, crash Restore, try again CS-3013, C-Term 2012 Introduction 38

Using a Virtual Machine Use VMware Workstation or VMware Player on your own PC VMware Fusion on your Macintosh Virtual Fossil Lab Free Open Source Software Lab No longer a “laboratory” FossilVM.cs.wpi.edu CS-3013, C-Term 2012 Introduction 39

What is a Virtual Machine? An application that simulates a computer system with enough performance and fidelity to mimic actual hardware Concept originated in 1960s, and has been used occasionally in large systems Established in mainstream of enterprise systems by VMware in early 2000s. By 2012, a number of high quality virtualization systems are available CS-3013, C-Term 2012 Introduction 40

Virtual Machine Definitions Host system:– The hardware and operating system that supports the virtualization application E.g., your own or company PC or Mac E.g., a departmental server Guest system:– The virtual hardware and the operating system that is being simulated E.g., OpenSUSE Linux 11.4 for this course CS-3013, C-Term 2012 Introduction 41

Project 0 — Linux Dabbling Install your virtual machine and get it running Build and boot the Linux kernel Identified by your name Submit a copy of the build record via the web-based Turnin system Purpose:– To make a dry run of project experience from start to finish! To get kernel build process “down pat” CS-3013, C-Term 2012 Introduction

Project 0 — Linux Dabbling (continued) Use the cookbook! Make sure that you can log into Turnin system FossilVM server (if appropriate) Due, Tuesday, January 17, 11:59 PM CS-3013, C-Term 2012 Introduction

Questions? CS-3013, C-Term 2012 Introduction 44

Before the Break Photos Survey To help me learn your names! To help me understand your background CS-3013, C-Term 2012 Introduction

(Not enough time to go to Campus Center for coffee!) Short Break (Not enough time to go to Campus Center for coffee!) CS-3013, C-Term 2012 Introduction

What is an Operating System XYZ Office Media Player Business Appl. UI/Shell/GUI Prog. Tools Services Practical OS OS Kernel Traditional OS Hardware Interfaces – Registers, etc. Processor(s) I/O Controllers CS-3013, C-Term 2012 Introduction 47

Computer System Organization CS-3013, C-Term 2012 Introduction 48

Operating System Organization Kernel System Libraries (user space) Utilities, tools, Window packages, program management, other stuff Drivers & modules File Systems CS-3013, C-Term 2012 Introduction 49

Major Topics in Traditional OS Courses structure: how is the OS organized? sharing: how are resources shared across users? naming: how are resources named (by users or programs)? security: how is the integrity of the OS and its resources ensured? protection: how is one user/program protected from another? performance: how do we make it all go fast? reliability: what happens if something goes wrong – hardware or software extensibility: can we add new features? communication: how do programs exchange information concurrency: how are parallel activities created and controlled? scale: what happens as demands or resources increase? persistence: how do you make data last longer than program executions? distribution: how do multiple computers interact with each other? accounting: how do we keep track of resource usage, and charge for it? Is user interface package part of operating system? CS-3013, C-Term 2012 Introduction 50

Kinds of operating systems See §1.4 of Tanenbaum – Operating System Zoo Mainframe Operating Systems Server Operating Systems Multiprocessor Operating Systems Personal Computer Operating Systems Handheld Computer Operating Systems Embedded Operating Systems Sensor Node Operating Systems Real-time Operating Systems Smart-card Operating Systems … CS-3013, C-Term 2012 Introduction 51

Two Important Operating Systems Linux — Chapter 10 Windows — Chapter 11 Spans PCs, servers, multiprocessors, etc. CS-3013, C-Term 2012 Introduction 52

OS History – Unix & Linux Descendant of Multics First “C” version in 1973 (DEC PDP-11) Timesharing for < 10 users on 32K Memory Many Unix versions at Bell Labs – different goals Source code made available to Universities – BSD Posix (start 1981) defines standard Unix system calls AT&T licensing! CS-3013, C-Term 2012 Introduction 53

OS History - Linux Open Source – Linux.org First Version 1991, Linus Torvalds, 80386 processor v.01, limited devices, no networking, with proper Unix process support! 1994, v1.0 networking (Internet) enhanced file system many devices, dynamic kernel modules CS-3013, C-Term 2012 Introduction 54

OS History — Linux 1996, v2.0 Gnome UI – introduced in 1999 Recent multiple architectures, multiple processors threads, memory management …. Gnome UI – introduced in 1999 Recent V2.4 - 3 million lines of code 7-10 million users Growth by 25%/year through 2003 Growing use in business server market Note: development convention Odd numbered minor versions “development” Even numbered minor versions “stable” CS-3013, C-Term 2012 Introduction 55

Linux Versions Linux 2.6.xx.yy has been the “stable” version for at least five years! Many revisions in xx and yy! Including some rather major changes! Typical “social dynamic” of numbering systems! CS-3013, C-Term 2012 Introduction

OS History – Windows NT/2000/XP Key designer – David Cutler also designed VAX/VMS 1988, v1 - Win32 API – “microkernel” 1990, v3.1- Server and Workstation versions 1996, v4 Win95 interface Graphics moved into kernel More NT licenses sold than all Unix combined Microkernel de-emphasized CS-3013, C-Term 2012 Introduction 57

OS History – Windows NT/2000/XP Multi-user (with terminal services) Professional - desktop Server and Advanced Server - Client-server application servers Datacenter Server - Up to 32 processors, 64 GB RAM Windows XP Windows 2000 code base Revised UI EOL for DOS/Windows line CS-3013, C-Term 2012 Introduction 58

OS History – Windows NT/2000/XP Microsoft has 80% to 90% of OS market Desktops, laptops, servers, data centers, etc. Wintel – Windows + X86 WinNT 4.x is 12 million lines of code Win2000 is 18 million lines of code Windows XP – approaching 108 lines of code Windows Vista – early 2006 Windows 7 – 2010 CS-3013, C-Term 2012 Introduction 59

Questions? CS-3013, C-Term 2012 Introduction