280 likes | 370 Views
Operating Systems. Course Information. Operating Systems: Internals and Design Principles, William Stallings, Prentice Hall, http://WilliamStallings.com/OS4e.html 操作系统教程(第三版),孙钟秀等,高等教育出版社,本书的电子版教材和讲稿会被放在网络教学平台上 推荐学有余力的同学自行阅读:关于 MINIX,LINIX,UNIX 内核分析的书籍. 课程学习目标. 明确计算机操作系统的作用与功能
E N D
Course Information • Operating Systems: Internals and Design Principles, William Stallings, Prentice Hall, http://WilliamStallings.com/OS4e.html • 操作系统教程(第三版),孙钟秀等,高等教育出版社,本书的电子版教材和讲稿会被放在网络教学平台上 • 推荐学有余力的同学自行阅读:关于MINIX,LINIX,UNIX内核分析的书籍
课程学习目标 • 明确计算机操作系统的作用与功能 • 掌握操作系统实现的基本原理与方法 • 在微观上,掌握设计实现各个操作系统模块的方法、策略与算法 • 在宏观上,掌握操作系统的结构和设计实现方法,进一步了解大型软件系统的结构和设计实现方法 • 掌握并发程序设计的基本方法
Syllabus • An introduction to the principles underlying the design and the implementation of contemporary computer operating systems. • Class designed for students majoring in Computer Science or in areas having a strong emphasis in Computer Science.
Syllabus (continued…) • At the end of the course, the student should have a basic understanding of: • Design and implementation issues of contemporary operating systems • Detailed analysis of process, multithreading, symmetric multiprocessing, and microkernels • Memory management techniques, including virtual memory • Various approaches to process scheduling • Operating system control of Input/Output • Operating system management of files
Prerequisites • Knowledge of C, C++, Java • Ability to complete large programming project • Understand existing framework • Design system solutions to particular problems • Able to use Windows, Unix, Linux, MacOS, …
Organization and Grading • This class consists of lectures, homework, programming assignments, and a final exam. Each has a weighted contribution to your final grade. • Homework and Participation : 10% • Programming Assignments: 30% • Final Exam: 60%
Homework and Participation (10%) • Homework is designed to reinforce class material and help in exam preparation. • Each homework consists of 10+ questions and covers the material from the previous class discussion. • Any homework submitted after the due date will lose 50% per week. (After 1 week, an assignment has no grading value!).
Programming Assignments (30%) • There are three programming assignments (10% each) designed to emphasize topics discussed in class. • The programming assignments are done in teams of 3 students. • Programming assignments can be found on the class web site (http://software.nju.edu.cn/xli) • Programming assignments must be passed off by a TA during regular TA hours in the TA offices or class programming labs.
Programming (continued…) • To receive full credit, programming assignments must be completed and passed off with a “Date Modified” timestamp on or before the due date. • Any assignment completed and passed off after the due date will lose 10% per school day. (After 2 weeks, an assignment has no grading value!).
Final Exam (60%) • The final exam are administered in the school.
Programming Environments… • Programming of the assignments will be done in any programming language. • The choice of the software tools and programming environment is left to the student’s discretion. • In any case, it is the student’s responsibility to present their work to a TA in the designated lab for pass off.
Academic Honesty • Academic honesty includes completing your own homework, labs and final. • Students should work together to help each other understand material, but should always turn in their own work. • Examples of academic dishonesty include sharing code for labs with other students, turning in someone else's writing as your own report, and cheating on an exam.
Miscellaneous • TA’s • Help sessions • Office hours • Linux vs Microsoft users • Questions?
Operating Systems • What is an operating system? • Hard to define precisely, because operating systems arose historically as people needed to solve problems associated with using computers. • How about… “Software that makes computing power available to users by controlling the hardware.” “Software executes when nothing else is happening.” “A collection of software modules including device drivers, libraries, and access routines.”
What does a modern operating system do? • Provides Abstractions: • Hardware has low-level physical resources with complicated, idiosyncratic interfaces. • OS provides abstractions that present clean interfaces. • Goal: make computer easier to use. • Examples: Processes, Unbounded Memory, Files, Synchronization and Communication Mechanisms. • Provides Standard Interface: • Goal: portability. • Unix runs on many very different computer systems.
What does a modern operating system do? • Mediates Resource Usage: • Goal: allow multiple users to share resources fairly, efficiently, safely and securely. • Examples: • Multiple processes share one processor. (preemptable resource) • Multiple programs share one physical memory (preemptable resource). • Multiple users and files share one disk. (non-preemptable resource) • Multiple programs share a given amount of disk and network bandwidth (preemptable resource). • Consumes Resources: • Solaris takes up about 8 Mbytes physical memory. • Windows XP has 40 million lines of code.
Where are OS’s Used? • In more and more places! • Desktop and Server Computers • DOS + Windows 95/98/ME • Windows NT/2000/XP • Free Unix variants: Linux, FreeBSD, NetBSD, etc. • Commercial Unix variants: Solaris, HP-UX, AIX, etc. • MacOS • Some Game Consoles • Xbox: Cut-down Windows 2000
Where are OS’s Used? • Personal Digital Assistants (PDAs) • PalmOS • Windows CE Windows Mobile • Embedded Linux • Mobile Phones • Symbian OS • Windows Mobile • Cars (fancy ones)
Where are OS’s Used? • In the future also: • Digital Cameras (fancy ones) • MP3 Players (iPods, etc.) • Refrigerators! • Others?
Example OS: PalmOS • Used for PalmPilot PDAs and successors • Multitasking since PalmOS 5 • CPUs: Intel XScale,Texas Instruments OMAP, Motorola Dragonball MX • Wireless: 802.11b, Bluetooth, GSM, CDMA • 320×320+ displays • Good battery utilisation
Example OS: Symbian OS • Designed for mobile phones • Gives access to graphics, multimedia, networking, telephony, crypto, • PC connectivity, etc.
The Future… • In the future, computers will continue to become physically smaller and more portable. • Operating systems have to deal with issues like disconnected operation and mobility. • Media rich information within the grasp of common people - information with psuedo-real time components like voice and video. • Operating systems will have to adjust to deliver acceptable performance for these new forms of data.
Finally • Operating systems are so large no one person understands whole system. Outlives any of its original builders. • The major problem facing computer science today is how to build large, reliable software systems. • Operating systems are one of very few examples of existing large software systems, and by studying operating systems we may learn lessons applicable to the construction of larger systems.