Transcript user mode
EE110300 電機資訊工程實習
Lecture 3 個人電腦系統 II
---- Operating Systems
資訊工程系
黃泰一 教授
1
What is an operating system?
Definition
An operating system is the “permanent”
software that controls/abstracts hardware
User applications can thus be simpler and
device-independent
User Applications
virtual machine interface
Operating System
physical machine interface
Architecture
2
What is an operating system?
Definition (con’t)
Manages resources and processes to support
different user applications
Provides Applications Programming
Interface (API) for user applications
User Application
User Application
Operating System
Architecture
3
Modern operating systems
x86 platform
– Linux
– Windows
Mac platform – Mac OS
Sun Solaris & Unix (Sun workstations)
IBM AIX (mainframes)
Embedded systems (special-purpose OS)
– Palm, PocketPC, etc
– Xbox, etc
4
Linus Torvalds
1991, Finland, Linux Project
1992, Linux Kernel 0.02
– Bash v1.08
– GCC v1.40
1997, Moves to Transmeta
1998, Linux Kernel v2.2
2001, Linux Kernel v2.4
Pronunciation: “Linn-ucks”
5
Windows 2000 & XP
1989: 10 developers left DEC VMS team
and joined Microsoft Windows NT 1.0
1996: Windows NT 4.0
1999: Windows 2000
2001: Windows XP
2002: Microsoft .Net Server
6
Linux vs. Windows NT
Linux is kernel only, free and open source
Windows is full-loaded OS and pricy
Linux requires minimum HW, Windows not
Web server
– (Win2K + SWC ) beats (Linux + TUX)
File server & printer server
– Windows supports a wider range of HW
– Linux has more stable drivers
7
Operating System Interfaces
8
Software & hardware layer
User Program
Executable Binary
user
Compiler
Linker
compiler
user mode
kernel
System library
OS interface
Operating System
device drivers
OS
Architecture
Hardware
9
Device Driver
Device driver的唯一目的就是要將所
有的硬體隱藏.
他應該是整套軟體中唯一能和硬體
溝通的窗口.
他能直接讀取或寫入特定裝置控制
及狀態暫存器, 如果裝置發生中斷,那
ISR也要整合到裝置驅動程式.
10
System service call (monitor)
C Programs:
main() {
// call printf, provided
// by the C library, to
// print on the screen
printf(“Hello World!”);
}
Borland C library:
Int printf(…) {
// call SysOutputString,
// provided by NT
// system library, to
// print on the screen
SysOutputString(…);
}
NT library:
Void SysOutputString(…) {
// call NtOutputString, that in turn will call
// video card driver to output strings to
// the screen
NtOutputString(…);
}
11
System service call (disk)
C Programs:
main() {
// call CreateFile
// by the C library, to
// create a file on disk
CreateFile(“a.txt”)
}
Borland C library:
Int CreateFile(…) {
// call NtCreateFile,
// provided by NT to
// create a file
NtCreateFile(…);
}
NT library:
Void NtCreateFile(…) {
// call NtInternalCreateFile, that in turn will
// call the file system driver and the disk
// driver to create a file on a disk
NtInternalCreateFile(…);
}
12
System service calls (network)
C Programs:
main() {
so = createsocket();
send(so, “text”);
close(so);
}
Borland C library:
int createsocket(…) {
…
NtCreateSocket(…);
}
int send(…) {
…
NtSocketSend(…);
}
NT library:
Void NtCreateSocket(…) {
…
NtAfdCreateSocket(…);
}
13
14
Virtual computer concept
Virtual C++
Computer
C++
compiler
LISP interpreter
Operating system
FORTRAN
compiler
Macroinstruction
interpreter
Operating
System
Command
interpreter
Bare
machine
C compiler
Assembler
Virtual C
Computer
Java compiler
…
15
Importance of operating system
System API are the only interface between
user applications and hardware
– API are designed for general-purpose, not
performance driven (e.g. network applications)
OS code cannot allow any bug
– Any break (e.g. invalid access) causes reboot
The owner of OS technology controls the
software industry
16
What is Embedded System?
是電腦軟體與硬體的綜合體,亦可涵蓋
機械或其他附屬裝置;整個綜合體設計
的目的,在於滿足某種特殊功能.
例如 : PDA, 遊樂器, 衛星導航系統, 流
程管理器 等.
17
Embedded system architecture
3-layered device
– Palm, PocketPC
2-layered device
– XBox
User Applications
Embedded OS
Application
Hardware
Hardware
18
General-purpose & embedded OS
General-purpose Embedded OS
Examples
Linux, Windows WinCE, Palm OS
Hardware
General-purpose Special device
OS code size
Large
Small
Stability req.
Strong
Weak
Develop. cost
Huge
Medium
19
Operating system concepts
20
Process & Thread
How do different applications run on the
same machine at the same time without
interfering each other?
– Protection between processes
– Protection between a process and the OS
Process: an execution of a program,
consisting of a virtual address space, one or
more threads, and some OS states.
21
Virtual memory (address space)
page 0
0
pp 0
page 1
page 2
pp 1
vap0
vap1
x
x
pp 2
pp N
page table
pp
220
212
paging file
physical memory (16MB)
232 - 1
virtual address space (4GB)
page
22
Virtual memory (address space)
page 0
0
pp 0
page 1
page 2
pp 1
vap0
x
pp 2
vap1
pp N
page table
pp
220
212
paging file
physical memory (16MB)
232 - 1
virtual address space (4GB)
page
23
Memory manager
pp 0
pp 1
PT
pp 2
process VA
pp N
pp
212
paging file
physical memory
PT
process VA
24
Memory manager
pp 0
pp 1
PT
pp 2
process VA
pp N
pp
212
paging file
physical memory
PT
process VA
25
Memory manager (w/ constraint)
x
pp 0
pp 1
PT
process VA
memory
manager
pp 2
pp N
pp
212
paging file
physical memory
PT
process VA
26
Protection
dual mode operation
Can application modify its own page table?
If it could, could get access to all physical
memory.
Dual Mode
– Kernel/protected model: no restriction, can
touch any physical memory page
– User mode: where you program runs, can only
touch part of the virtual address space
Applications can enter the kernel mode
through systems calls (traps)
27
Mode change: system call trap
1. System call traps to the kernel (kernel mode)
2. Kernel determines service routine required
3. Kernel services the call.
4. Control is returned to user program (user mode)
28
Thread
A process starts with one thread (main
thread), and can initialize more threads by
CreateThread() calls
A thread represents an execution stream of
instructions and its CPU register context
A thread is the unit used in the scheduler
Kill a process kill its all threads
29
Scheduler
A component in OS that decides which
thread in the thread pool gets the CPU
Priority-based scheduler
Context switch
new
thread
ready
scheduler
signal
events
waiting
running
terminating
threads
30
Synchronization
All threads in the same process share all
global data
Synchronization among these threads is
necessary to maintain data integrity
Resource lock is commonly used to
guarantee thread mutual exclusive
– abuse of such locks decreases scalability
– ignorance of such locks decreases stability
Deadlock issues
31
File Systems
A hard disk is just a raw media storage
A hard disk device driver allows OS to
communicate with the hardware
But, it is the responsibility of the OS to organize
disk sectors/tracks for storing files
– such component is called the file system
E.g. A hard disk that stores NTFS information
cannot be read with the FAT32 driver
– example: paper with Moses code
32
Operating Systems and
System Software
Example: web server software
33
User-mode web server architecture
Web Server
web cache
User Mode
I/O module
Kernel Mode
System Cache
CM
FileSys
Socket
TCPIP
network card
34
User-mode web server commons
User-mode application architecture
– e.g. Microsoft Internet Information Server (IIS),
Netscape Enterprise Server, Apache HTTP Server, etc.
Dependent on generally system API
Stand-alone web content cache limited by
virtual address space
Time-to-live cache replacement algorithm
Memory-less dynamic code execution
35
SWC web server architecture
User Code
User Mode
TWC.LIB
I/O Module
Kernel Mode
web cache
miss
System Cache
CM
VA<->PA
SWC
hit
NTFS
TCPIP -
network card +
36
SPECWEB’99 Performance
22719
24,000
Linux + Zeus
W2K + IIS 5.0
IBM-AIX + Zeus
Linux + TUX
W2K + SWC
20,000
Requests/Sec
16,000
21982
14400
12309
12,000
9016
5600*
4800*
8,000
4,000
1512
2694
6371
5600
4409
1638
0
UP
*estimated scaling data
4P
8P
37
Kernel vs. user-based web server
Increase peak capacity by five
times
Web cache size be limited by physical
memory size
Web cache be shared by both static &
dynamic web requests
Remove I/O overhead and Socket creation
Fast TCPIP data transmission
38
Summary
# persons
skills
control
reward
Apps
many
easy
small
low
EOS
few
difficult
large
high
A.D. 1492 Columbus discovers America
--- The new and free land is on your grip!!
39