CS 414/415 Systems Programming and Operating Systems Spring 2005 Instructor: Ranveer Chandra.

Slides:



Advertisements
Similar presentations
What is an Operating System?
Advertisements

Introduction CSCI 444/544 Operating Systems Fall 2008.
CMSC 421: Principles of Operating Systems Section 0202 Instructor: Dipanjan Chakraborty Office: ITE 374
Chapter 1: Introduction
CS 6464: Advanced Distributed Storage Systems Spring 2009 Instructor: Hakim Weatherspoon.
Spring 2009 Instructor: Ken Birman. Administrative Instructor: Ken Birman, x Office hours: 4119b Upson Schedule via , any day/time TA office.
CS 414/415 Systems Programming and Operating Systems Spring 2007 Instructor: Hakim Weatherspoon.
Operating Systems CS451 Brian Bershad
CS 414/415 Systems Programming and Operating Systems
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Abhinav Kamra Computer Science, Columbia University 1.1 Operating System Concepts Silberschatz, Galvin and Gagne  2002 COMS 4118 Operating Systems Spring.
W4118 Operating Systems OS Overview Junfeng Yang.
1 CIS450/IMSE450/ECE478 Operating Systems Winter 2003 Professor Jinhua Guo.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
1/16/2008CSCI 315 Operating Systems Design1 Introduction Notice: The slides for this lecture have been largely based on those accompanying the textbook.
1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
CIS-410: Operating Systems Spring Organizational Details Class Meeting: 7:00-9:45pm, Monday, Room 252N Instructor: Dr. Igor Aizenberg Office: Aikin.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Lecture By : Rupinder Kaur Lect. IT SRS Govt. Polytechnic college Ludhiana Topic : Overview of Operating System.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
1 5/25/2016 操作系统课件 教材: 《操作系统概念(第六版 影印版)》 【原书名】 Operating System Concepts(Sixth Edition) [ 原书信息 ] Operating System Concepts(Sixth Edition) [ 原书信息 ] 【原出版社】
Thanks to Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction n What is an Operating System? n Mainframe Systems.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 1 Introduction Read:
1 CSE451 Introduction to Operating Systems Autumn 2002 Gary Kimura Lecture #1 September 30, 2002.
OSes: 1. Intro 1 Operating Systems v Objectives –introduce Operating System (OS) principles Certificate Program in Software Development CSE-TC and CSIM,
 H.M.BILAL Operating System Concepts.  What is an Operating System?  Mainframe Systems  Desktop Systems  Multiprocessor Systems  Distributed Systems.
المحاضرة الاولى Operating Systems. The general objectives of this decision explain the concepts and the importance of operating systems and development.
Operating System Concepts Chapter One: Introduction What is an operating system? Simple Batch Systems Multiprogramming Systems Time-Sharing Systems Personal-Computer.
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
Silberschatz, Galvin and Gagne  Operating System Concepts Lectured by Dr. Lican Huang
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
CS 414/415 Systems Programming and Operating Systems Spring 2006 Instructor: Ken Birman.
Operating System. Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
1.1 Sandeep TayalCSE Department MAIT 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Multiprocessor Systems Distributed.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real.
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real.
Applied Operating System Concepts
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
חוברת שקפים להרצאות של ד"ר יאיר ויסמן מבוססת על אתר האינטרנט:
Operating System Concepts
Chapter 1: Introduction
Operating Systems CSE451 Winter 2000
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
CSE 451: Operating Systems Winter 2003 Lecture 1 Course Introduction
Subject Name: Operating System Concepts Subject Number:
Operating Systems CSE451 Spring 2000
Chapter 1: Introduction
Chapter 1: Introduction
Operating Systems CS451 Spring 1998
Chapter 1: Introduction
Operating Systems CS451 Fall 1998
Chapter 1: Introduction
CSE 451: Operating Systems Autumn 2003 Lecture 1 Course Introduction
Operating System Concepts
Lecture Topics: 11/1 Hand back midterms
Chapter 1: Introduction
Presentation transcript:

CS 414/415 Systems Programming and Operating Systems Spring 2005 Instructor: Ranveer Chandra

Administrative Instructor: Ranveer Chandra, 4118 Upson Lectures (Note time change): –CS 414: M, W: 1:25 – 2:15 PM T: 3:35 – 4:25 PM –CS 415: F: 1:25 – 2:15 PM

Course Help Mailing list: – Course staff, office hours: – Required Textbook: –Operating Systems Concepts: 7 th Edition Silberschatz, Galvin and Gagne

CS 414: Overview Prerequisite: –Mastery of CS 314 material CS 414: Operating Systems –Fundamentals of OS design –How parts of the OS are structured –What algorithms are commonly used –What are the mechanisms and policies used Evaluations: –Weekly homework –Midterm, Exams –Readings: research papers

CS 415: Overview CS 415: Practicum in Operating Systems –Projects that complement course material –Expose you to cutting edge system design –Best way to learn about OSs This semester: –Build various components of operating systems Threads, networking, file systems, ubiquitous computing, … –Will use TabletPCs –Work in groups of two or more –Weekly sections on the projects Enrollment in CS 415 is compulsory!

Grading CS 414: Operating Systems –Midterm ~ 30% –Final ~ 50% –Assignments ~ 10% –Subjective ~ 10% CS 415: Systems Programming –Six projects ~ 100% This is a rough guide

Academic Integrity Submitted work should be your own Acceptable collaboration: –Clarify problem, C syntax doubts, debugging strategy Dishonesty has no place in any community –May NOT be in possession of someone else’s homework/project –May NOT copy code from another group –May NOT copy, collaborate or share homework/assignments –University Academic Integrity rules are the general guidelines Penalty is an ‘F’ in CS 414 and CS 415

Course Material Introduction, history, architectural support Concurrency, processes, threads Synchronization, monitors, semaphores Networking, distributed systems Memory Management, virtual memory Storage Management, I/O, filesystems Security Case studies: Windows XP, Linux

Why take this course? Operating systems are the crunch of a computer system –Makes reality pretty –OS is magic to most people. We will rip it open Operating systems is a key example of complex systems –Huge, parallel, very expensive, not understood Windows NT/XP: 10 years, 1000s of people, … –Complex systems are the most interesting: Internet, air traffic control, governments, weather, relationships, etc How to deal with this complexity?

What is an Operating System? Magic! A number of definitions: –Just google for define: Operating Systemdefine: Operating System A few of them: –“Everything a vendor ships when you order an operating system” –“The one program running at all times on the computer” –“A program that manages all other programs in a computer” Required memory varies: less than 1 MB to a few GB

Operating System: Definition Definition An Operating System (OS) provides a virtual machine on top of the real hardware, whose interface is more convenient than the raw hardware interface. Hardware Applications Operating System OS interface Physical machine interface Advantages Easy to use, simpler to code, more reliable, more secure, … You can say: “I want to write XYZ into file ABC”

Operating Systems Services Manage physical resources: –It drives various devices Eg: CPU, memory, disks, networks, displays, cameras, etc Provide abstractions for physical resources –Provide virtual resources and interfaces Eg: files, directories, users, threads, processes, etc –Simplify programming through high-level abstractions –Provide users with a stable environment, mask failures Isolate and mediate between entities –Trusted intermediary for untrusted applications

What is in an OS? Operating System Services Interrupts, Cache, Physical Memory, TLB, Hardware Devices Generic I/OFile System Memory Management Process Management Virtual MemoryNetworking Naming Access Control Windowing & graphics Windowing & Gfx Applications OS Interface Physical m/c Intf Device Drivers ShellsSystem Utils QuakeSql Server Logical OS Structure

Issues in OS Design Structure: how is an operating system organized ? Sharing: how are resources shared among users ? Naming: how are resources named by users or programs ? Protection: how is one user/program protected from another ? Security: how to authenticate, control access, secure privacy ? Performance: why is it so slow ? Reliability and fault tolerance: how do we deal with failures ? Extensibility: how do we add new features ?

Issues in OS Design Communication: how can we exchange information ? Concurrency: how are parallel activities created and controlled ? Scale, growth: what happens as demands or resources increase ? Persistence: how can data outlast processes that created them Compatibility: can we ever do anything new ? Distribution: accessing the world of information Accounting: who pays bills, and how to control resource usage

Why is this material critical? Concurrency –Therac-25, Shuttle livelock 1981 Communication –Air Traffic Control System Persistence –Denver Airport Virtual Memory –Blue Screens of Death Security –IRS

BSOD: Melbourne

BSOD: Mesquite, TX

History of Operating Systems Initially, the OS was just a run-time library –You linked your application with the OS, –loaded the whole program into memory, and ran it –How do you get it into the computer? Through the control panel! Simple batch systems (mid1950s – mid 1960s) –Permanently resident OS in primary memory –Loaded a single job from card reader, ran it, loaded next job... –Control cards in the input file told the OS what to do –Spooling allowed jobs to be read in advance onto tape/disk Compute I/O

Multiprogramming Systems Multiprogramming systems increased utilization –Developed in the 1960s –Keeps multiple runnable jobs loaded in memory –Overlaps I/O processing of a job with computation of another –Benefits from I/O devices that can operate asynchronously –Requires the use of interrupts and DMA –Optimizes for throughput at the cost of response time Compute I/O Compute I/O

Time Sharing Systems Timesharing (1970s) allows interactive computer use –Users connect to a central machine through a terminal –User feels as if she has the entire machine –Based on time-slicing: divides CPU equally among the users –Allows active viewing, editing, debugging, executing process –Security mechanisms needed to isolate users –Requires memory protection hardware for isolation –Optimizes for response time at the cost of throughput Compute

Personal Operating Systems Earliest ones in the 1980s Computers are cheap  everyone has a computer Initially, the OS was a library Advanced features were added back –Multiprogramming, memory protection, etc

Distributed Operating Systems Cluster of individual machines –Over a LAN or WAN or fast interconnect –No shared memory or clock Asymmetric vs. symmetric clustering Sharing of distributed resources, hardware and software –Resource utilization, high availability Permits some parallelism, but speedup is not the issue SANs, Oracle Parallel Server

Parallel Operating Systems Multiprocessor or tightly coupled systems Many advantages: –Increased throughput –Cheaper –More reliable Asymmetric vs. symmetric multiprocessing –Master/slave vs. peer relationships Examples: SunOS Version 4 and Version 5

Real Time Operating Systems Goal: To cope with rigid time constraints Hard real-time –OS guarantees that applications will meet their deadlines –Examples: TCAS, health monitors, factory control Soft real-time –OS provides prioritization, on a best-effort basis –No deadline guarantees, but bounded delays –Examples: most electronic appliances Real-time means “predictable” NOT fast

Ubiquitous Systems PDAs, personal computers, cellular phones, sensors Challenges: –Small memory size –Slow processor –Different display and I/O –Battery concerns –Scale –Security –Naming We will look into some of these problems

Over the years Not that batch systems were ridiculous –They were exactly right for the tradeoffs at the time The tradeoffs change Need to understand the fundamentals –So you can design better systems for tomorrow’s tradeoffs Factor MIPS11000 $/MIPS$100000$ DRAM128KB512MB4000 Disk10MB80GB8000 Net Bandwidth9600 b/s100 Mb/s10000 # Users>> 10<= 10.1