Introduction to Operating Systems 9/16/2008 Lecture #1 1 Self Introduction • Instructor: 朱浩華 – Feel free to call me “Hao” – CSIE 518 – Email: hchu@csie.ntu.edu.tw • Education Background – BS Cornell (1994), PhD UIUC (1999) – Xerox, Intel, NTT DoCoMo • Research areas – Ubiquitous Computing 2 Course information • First course in operating systems. • Learning objective – How to build an operating system (at least its main components) 3 Prerequisite • • • • C++ Programming System programming Data structure Some English skill – Teach in a blend of English and Chinese. – If I speak English too fast, please tell me to slow down. – You can ask questions in Chinese. 4 Textbook • “Operating System Principle, Seventh Edition”, by Silberschatz, Galvin, and Gagne. • Widely used among U.S. Universities 3~4 years ago. 5 Grading Breakdown • 6-7 Programming Assignments using Nachos (20% of Grade) • Midterm Exam (40% of Grade) – Nov. 4 in Class • Final Exam (40% of Grade) – Time TBD 6 Academic Integrity • Your submitted assignments are supposed to your own code, every single line except provided skeleton • You are not allowed to – – – – – copy any code from others let others copy your code. see others’ code. show others your code. copy any code from the Internet & senior class 7 Office Hours & Contact Info • Instructor: 朱浩華 “Hao” – Room 518 – By appointment – Email: hchu@csie.ntu.edu.tw 8 Means of Communications • Course homepage – http://mll.csie.ntu.edu.tw/course/database_f07/index.php • BBS – – – – – ptt.cc, under “CSIE_???” board Post your questions on BBS. Read posted messages before posting new questions. No SPAM. TAs respond to your questions as quickly as possible. • Send email to TAs or me. • Come to office hours 9 Lecture Notes • Available on the course homepage before each lecture – Complements, not replacement of attending lecture and reading textbook. 10 Any Question(s) on Administrative Things? 11 Introduce an interesting project in Ubiquitous Computing (Won’t be Tested) 12 Topobo (MIT media lab) • Redefine programming – Create a program without “writing a program”. 13 What is an operating system? Break into groups for discussion 14 What is an operating system? • Program that manages raw hardware • Program that makes it easier for app developers to program than the raw complex hardware – How? Present good abstractions (interfaces) to SW above – What are the “abstractions” for CPU/Memory/Disk/Network? Applications Abstraction Operating System Raw Hardware (CPU, Memory, Disk, Network, etc.) 15 Abstractions to Apps • CPU (many programs running at the same time, safely) – Process & threads – Synchronization & deadlock • Dedicated memory for concurrent programs – Virtual memory (virtual address space) • I/O Disks & Network – Files – Socket, message queue, etc. 16 Covered Topics • Process management – Process – Thread – Scheduling • Process coordination – Synchronization – Deadlocks • Memory management • Storage management – File system – Storage system • Protection & Security • Advanced Topics (given time) – Real-time Systems – Multimedia Systems – Paging & Segmentation – Virtual memory 17 Good Questions to Ask to any OS areas • What interface (abstraction) does the OS present to the apps? – Does the abstraction make it easy to program? • How does the OS implement this abstraction from the hardware? – Does the mechanism perform well? • Example: Infinite virtual memory – Demand Paging 18 What is OS like? • OS as illusionist – Remove hardware limitation – infinite memory with infinite processors • OS as (trusted) government – Allocate resources among processes – Protect one process from another process 19 Readings • Browse through Chapters 1 & 2 – basically reviews for previous courses. • Next week – Chapter 3. 20