Introduction to Operating Systems 9/16/2008 Lecture #1

advertisement
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
Download