OS 01 - Introduction

Download Report

Transcript OS 01 - Introduction

Operating Systems
1
Course Information
Operating Systems: Internals and Design
Principles, William Stallings, Prentice Hall,
http://WilliamStallings.com/OS4e.html
2. 操作系统教程(第三版),孙钟秀等,高等
教育出版社,本书的电子版教材和讲稿会被
放在网络教学平台上
3. 推荐学有余力的同学自行阅读:关于MINIX,
LINIX,UNIX内核分析的书籍
1.
2
课程学习目标


明确计算机操作系统的作用与功能
掌握操作系统实现的基本原理与方法
 在微观上,掌握设计实现各个操作系统
模块的方法、策略与算法
 在宏观上,掌握操作系统的结构和设计
实现方法,进一步了解大型软件系统的
结构和设计实现方法

掌握并发程序设计的基本方法
3
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.
4
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
5
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, …
6
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%
7
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!).
8
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.
9
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!).
10
Final Exam (60%)
 The final exam are administered in the
school.
11
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.
12
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.
13
Miscellaneous
 TA’s
 Help sessions
 Office hours
 Linux vs Microsoft users
 Questions?
14
Abstract View of System Components
15
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.”
16
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.
17
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.
18
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
19
Where are OS’s Used?
 Personal Digital Assistants (PDAs)



Mobile Phones




PalmOS
Windows CE
Windows Mobile
Embedded Linux
Symbian OS
Windows Mobile
Cars (fancy ones)
20
Where are OS’s Used?
 In the future also:




Digital Cameras (fancy ones)
MP3 Players (iPods, etc.)
Refrigerators!
Others?
21
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
22
Example OS: PalmOS
23
Example OS: Symbian OS
 Designed for
mobile phones
 Gives access to
graphics,
multimedia,
networking,
telephony, crypto,
 PC connectivity, etc.
24
Example OS: Symbian OS
25
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.
26
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.
27