Special Topics on Operating System
Download
Report
Transcript Special Topics on Operating System
Special Topics on Operating
System
R. C. Chang
1
Tentative Topics
Linux Internal
Microkernels
Window CE Internal
Inferno
Other Embedded Operating Systems
2
Trends of Operating System
Server : UNIX/Linux, Windows/NT
Desktop : Windows 98/NT, UNIX/Linux
Embedded : WIN/CE, Inferno,VxWork,
JINI,…
3
Operating System Structure
Monolithic Kernel
– UNIX, Windows/98, Linux
First Generation Microkernel
– Mach, Chorus,…
Second Generation Microkernel
– L4, Exokernel,...
4
Linux Internal
Text Book: The Linux Kernel by David A.
Rusling, (Please Download the book from Internet)
Reference Books: Linux Kernel Internals (Second
Edition) by M. Beck et al., Addison-Wesley, 1998
5
Hardware Basics
A typical PC Motherboard
6
PC Hardware
PC, SP, PS
Memory
– D-Cache, I-Cache
– Cache Coherence
Bus
– ISA, PCI
Controllers and Peripherals
– IDE, SCSI, NIC,…
Address Space
7
Software Basics
What is an operating system?
– Memory management
– Processes
$ ps
PID TTY STAT TIME COMMAND
158 pRe 1 0:00 -bash
174 pRe 1 0:00 sh /usr/X11R6/bin/startx
175 pRe 1 0:00 xinit /usr/X11R6/lib/X11/xinit/xinitrc -178 pRe 1 N 0:00 bowman
182 pRe 1 N 0:01 rxvt -geometry 120x35 -fg white -bg black
184 pRe 1 < 0:00 xclock -bg grey -geometry -1500-1500 -padding 0
185 pRe 1 < 0:00 xload -bg grey -geometry -0-0 -label xload
187 pp6 1 9:26 /bin/bash
202 pRe 1 N 0:00 rxvt -geometry 120x35 -fg white -bg black
203 ppc 2 0:00 /bin/bash
1796 pRe 1 N 0:00 rxvt -geometry 120x35 -fg white -bg black
1797 v06 1 0:00 /bin/bash
3056 pp6 3 < 0:02 emacs intro/introduction.tex
3270 pp6 3 0:00 ps
$
8
Device Drivers
– Controller Chips
• NCR810 SCSI
The Filesystems
– EXT2,CDROM,...
9
Kernel Data Structures
Link Lists
Hash Tables
– Caches
Abstract Interfaces
– /proc/filessystems
10
Memory Management
Virtual Memory
–
–
–
–
–
large address space
protection
memory mapping
fair physical memory allocation
shared virtual memory
11
An Abstract Model of VM
12
Demand Paging
Load virtual pages that are currently bein
used by the executing program
Page fault handling
Linux uses demand paging to load
executable images into a processes virtual
memory
13
Swapping
If a process needs to bring a virtual page
into physical memory and there are no free
physical pages available…
– Clean or read-only pages --> Disacrd
– Dirty page --> swapping
Linux uses a Least Recently Used page
aging technique to choose pages
14
Physical and Virtual Addressing
Modes
OS usually runs in physical address model
Alpha AXP processor does not have a
special physical addressing model.
– It divides up the memory space into several
areas and designates two of them as physical
address area
– KSEG (0xfffffc000310000)
15
Access Control
V : Valid
FOE: Fault on Execute
FOW:
Write
FOR:
Read
ASM: Address Space Match
KRE: kernel mode can read
URE: user mode can read
PFN: Page Frame Number
Page_Dirty, Page_ACCESSED
16
Caches
Buffer Cache : block device drivers(hard
disks)
Page Caches : Speed up access to images
and data on disk.
Swap Cache: only modified(dirty) pages are
saved in the swap file.
Hardware Caches : Data/Instruction, TLB
17
Linux Page Tables
Each Platform that Linux runs on must provide
translation macro that allow the kernel to traverse
the page tables for a particular processor
18
Page Allocation and Deallocation
Physical page : mem_map structure
– mem_map_t for each physical page(initialized
at the boot time)
– Important fields
• count, age, man_nr (physical frame number)
free-area vector is used to find free pages
19
Free_area data structure
Allocated groups of pages
20
Page Allocation/Deallocation
Buddy algorithm
Pages are allocated in blocks which are
powers of 2 in size
The page deallocation code recombine
pages into large blocks of free pages
whenever it can
21
Memory Mapping
Virtual memory is represented by an
mm_structure data structure
– vm_area_structure
22
Demand Paging
Page fault
– Search for vm_area_struct (AVL Tree)
• If no (access illegal virtual address)--> SIGSEGV
– Check for type of access
– Decide the page in swap file or somewhere in
disk
• if the page’ page table entry is invalid but not empty
then it is in swap file
– nopage operation(by using page cache)
23
The Linux Page Cache
24
The Linux Page Cache
Memory mapped files are read a page at a
time and these pages are stored in the page
cache
Search through page_hash_table
Linux --> single page read ahead
25
Swapping Out and Discarding
Pages
Kernel Swap Daemon(kswapd)
– kernel thread
– keep enough free pages in the system
– started by init process and wait for kernel swap
timer to periodcally expire
– if # of free pages > free_page_high do nothing
– otherwise kswapd try to reduce the number of
physical pages being used by the system:
26
Swap out pages
Reduce the size of the buffer and page
caches
– clock algorithm
Swapping out System V shared memory
pages
– update multiple page table entries
Swapping out and discarding pages
– clock algorithm
27
The Swap Cache
When swapping pages out, Linux avoids
writing pages if it does not have to
Swap cache --> a PTE for a swapped out
page
If a swap cache is non-zero, a page in swap
file has not been modified --> no need to
write the page to the swap file
28
Swapping Pages In
Demand paging
swapin operation
29