Tải bản đầy đủ (.ppt) (62 trang)

Slide bài giảng hệ điều hành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (530.05 KB, 62 trang )

21.1
4. H i u hành Linuxệ đ ề
4. H i u hành Linuxệ đ ề
21.2
H i u hành Linuxệ đ ề
H i u hành Linuxệ đ ề

L ch s Linuxị ử

Nguyên t c thi t kắ ế ế

L p trình Kernel Modulesậ

Qu n lý quá trìnhả

nh th i Đị ờ

Qu n lý b nh ả ộ ớ

H th ng fileệ ố

H th ng xu t nh p (I/O)ệ ố ấ ậ

Truy n thông liên quá trìnhề

C u trúc m ngấ ạ

B o m tả ậ
21.3
M c tiêuụ
M c tiêuụ



Kh o sát l ch s h i u hành Unix - ngu n g c c a Linux và m t ả ị ử ệ đ ề ồ ố ủ ộ
s nguyên t c b t bu c thi t k Linuxố ắ ắ ộ để ế ế

Nghiên c u mô hình x lý Linux b ng vi c minh h a cách nh th i ứ ử ằ ệ ọ đị ờ
các quá trình và cung c p truy n thông liên quá trình.ấ ề

Xem xét cách qu n lý b nh trong Linuxả ộ ớ

Tìm hi u xem Linux hi n th c h th ng file và qu n lý các thi t b ể ệ ự ệ ố ả ế ị
xuât nh p nh th nàoậ ư ế
21.4
L ch sị ử
L ch sị ử

Linux là m t h i u hành tiên ti n và mi n phí d a trên tiêu chu n ộ ệ đ ề ế ễ ự ẩ
Unix

Ban u Linux phát tri n nh . n n m 1991 Linus Torvalds k t đầ ể ỏ Đế ă ế
h p thêm kernel(nhân) v i m c ích chính là có kh n ng thích h p ợ ớ ụ đ ả ă ợ
v i Unixớ

L ch s cho th y Linux là s c ng tác c a nhi u ng i s d ng ị ử ấ ự ộ ủ ề ườ ử ụ
trên toàn th gi i, h u h t h trao i u qua internetế ớ ầ ế ọ đổ đề

Linux c thi t k có th ch y hi u qu trên nh ng ph n c ng đượ ế ế để ể ạ ệ ả ữ ầ ứ
máy tính thông th ng, h n n a Linux còn có th ch y trên nhi u ườ ơ ữ ể ạ ề
n n ph n c ng khác.ề ầ ứ

Nòng c t c a h i u hành Linux kernel là toàn b nguyên b n, ố ủ ệ đ ề ộ ả

nh ng nó có th ch y nhi u ph n m m Unix mi n phí, ó là k t ư ể ạ ề ầ ề ễ đ ế
qu c a vi c tích h p code có th thích h p Unix.ả ủ ệ ợ để ể ợ

Thêm vào ó, thay i Linux bao g m cung c p thêm kernel, các đ đổ ồ ấ
ng d ng, và các công c qu n lýứ ụ ụ ả
21.5
The Linux Kernel
The Linux Kernel

Phiên b n 0.01 (5-1991) không có m ng, ch có th ch y trên ả ạ ỉ ể ạ
80386- t ng thích v i vi x lý intel và trên ph n c ng máy tính, ươ ớ ử ầ ứ
c bi t b gi i h n trong giao ti p device-drive, và ch cung đặ ệ ị ớ ạ ế ỉ
c p cho h th ng file Minixấ ệ ố

Linux 1.0 (3-1994) có thêm m t s tính n ng m i:ộ ố ă ớ

H tr thêm giao th c m ng TCP/IP theo chu n UNIXỗ ợ ứ ạ ẩ

Các ch ng trình m ng c h tr giao ti p socket t ng ươ ạ đượ ỗ ợ ế ươ
thích BCD

H tr giao ti p Device-driver có th ch y IP trong ỗ ợ ế để ể ạ
m ng Ethernetạ

T ng c ng h th ng fileă ườ ệ ố

H tr cách s p x p cho i u khi n SCSI giúp t ng hi u ỗ ợ ắ ế đề ể ă ệ
qu truy xu t a.ả ấ đĩ

H tr thêm ph n c ngỗ ợ ầ ứ


Phiên b n 1.2 (5-1995) là b n Linux kernel cho PC cu i cùngả ả ố
21.6
Linux 2.0
Linux 2.0

6-1996, 2.0 thêm 2 tính n ng m i:ă ớ

H tr thêm c u trúc ph c t p, bao g m c ng Alpha 64-bitỗ ợ ấ ứ ạ ồ ồ

H tr c u trúc a vi x lý.ỗ ợ ấ đ ử

Các tính n ng khác:ă

C i thi n mã qu n lý b nhả ệ ả ộ ớ

C i thi n hi u su t TCP/IP ả ệ ệ ấ

H tr vào nhân(kernel) s c p các lu ng, và t ng n p các ỗ ợ ơ ấ ồ ự độ ạ
module theo yêu c uầ

Giao di n c u hình chu nệ ấ ẩ

c dùng cho Motorola 68000-series vi x lý, h th ng Sun Sparc, Đượ ử ệ ố
PC và h th ng PowerMacệ ố

2.4 và 2.6 t ng thêm h tr SMP, thêm nh t ký trong h th ng file, u ă ỗ ợ ậ ệ ố ư
tiên kernel, h tr b nh 64-bitỗ ợ ộ ớ
21.7
H th ng Linuxệ ố

H th ng Linuxệ ố

Linux dùng nhi u công c gi ng nh : h th ng Berkeley’s BSD,h ề ụ ố ư ệ ố ệ
th ng MIT’s X Window, và d án Free Software Foundation's GNU ố ự

M t th vi n nh c b t u b ng d án GNU, và c ng ng ộ ư ệ ỏ đượ ắ đầ ằ ự ộ đồ
Linux ã d n d n c i thi n.đ ầ ầ ả ệ

M ng Linux-công c qu n lý c b t ngu n t mã 4.3BSD; ạ ụ ả đượ ắ ồ ừ
Ngu n g c c a mã BSD g n ây nh Free BSD ã m n l i t ồ ố ủ ầ đ ư đ ượ ạ ừ
b ng mã này c a Linuxả ủ

Các h th ng Linux c duy trì b i m t m ng l i l ng l o c a ệ ố đượ ở ộ ạ ướ ỏ ẻ ủ
các c ng tác trên Internet, v i m t s l ng nh c a các trang ộ ớ ộ ố ượ ỏ ủ
web công c ng ho t ng v i tiêu chu n th c tộ ạ độ ớ ẩ ự ế
21.8
Linux Distributions
Linux Distributions

T p h p các gói tr c khi biên d ch hay ậ ợ ướ ị distributions, bao g m h ồ ệ
th ng Linux c b n, cài t h th ng, qu n lý ti n ích và c ch ố ơ ả đặ ệ ố ả ệ ơ ế
s n sàng cài t các gói c a công c ti n íchẵ để đặ ủ ụ ệ

Các phân ph i u tiên qu n lý các gói b ng cách n gi n là ố đầ ả ằ đơ ả
cung c p ph ng ti n bung t t c các t p tin vào n i thích h p; ấ ươ ệ để ấ ả ậ ơ ợ
các phân ph i sau này bao g m các gói qu n lý nâng caoố ồ ả

M i nhà phân ph i bao g m SLS và Slackware ỗ ố ồ

Red Hat và Debian là các nhà phân ph i ph bi n bao g m ố ổ ế ồ

các ngu n th ng m i và không th ng m iồ ươ ạ ươ ạ

Gói nh d ng file RPM cho phép tích h p gi a các nhà phân ph i đị ạ ợ ữ ố
Linux
21.9
Gi y phép Linux ấ
Gi y phép Linux ấ

Nhân Linux c phân phát b i GNU General Public License đượ ở
(GPL), các i u kho n trong ó c t ra b i Free Software đ ề ả đ đượ đặ ở
Foundation

B t c ai s d ng Linux, hay t o ra các ng d ng c a Linux, có ấ ứ ử ụ ạ ứ ụ ủ
th làm m t ngu n g c c a các s n ph m c quy n; ph n m m ể ấ ồ ố ủ ả ẩ độ ề ầ ề
phát hành d i GPL có th không c c p phát l i nh là s n ướ ể đượ ấ ạ ư ả
ph m binary-onlyẩ
21.10
Nguyên t c thi t kắ ế ế
Nguyên t c thi t kắ ế ế

Linux là m t h th ng a tác v , a ng i dùng v i t p h p các ộ ệ ố đ ụ đ ườ ớ ậ ợ
công c thích h p v i Unixụ ợ ớ

Các h th ng t p tin c a nó tôn tr ng tri t UNIX semantic ệ ố ậ ủ ọ ệ để
truy n th ng , và nó th c hi n y các tiêu chu n mô hình ề ố ự ệ đầ đủ ẩ
m ng UNIXạ

M c tiêu thi t k chính là t c , hi u qu và tiêu chu n hóaụ ế ế ố độ ệ ả ẩ

Linux c thi t k có th tuân th v i các tài li u liên quan đượ ế ế để ể ủ ớ ệ

posix ; ít nh t có hai phân ph i Linux ã chính th c c c p gi y ấ ố đ ứ đượ ấ ấ
ch ng nh n posix. Giao di n l p trình Linux tuân th SVR4 UNIX ứ ậ ệ ậ ủ
semantics, h n là ho t ng BSD.ơ để ạ độ
21.11
Các thành ph n h th ng Linuxầ ệ ố
Các thành ph n h th ng Linuxầ ệ ố
21.12
Các thành ph n h th ng Linux(Cont.)ầ ệ ố
Các thành ph n h th ng Linux(Cont.)ầ ệ ố

Gi ng nh hi n th c UNIX, code t o thành Linux g m có 3 ph n ố ư ệ ự ạ ồ ầ
chính; quan tr ng nh t là s khác bi t gi a nhân(kernel) và các ọ ấ ự ệ ữ
ph n khácầ

Kernel có trách nhi m duy trì nh ng ph n tr u t ng quan tr ng ệ ữ ầ ừ ượ ọ
c a h i u hành.ủ ệ đ ề

Kernel code th c thi trong ch ự ế độ kernel v i kh n ng truy xu t ớ ả ă ấ
n t t c các tài nguyên v t lý c a máy tínhđế ấ ả ậ ủ

T t c các mã kernel và c u trúc gi li u c gi trong cùng ấ ả ấ ữ ệ đượ ữ
m t không gian a ch nộ đị ỉ đơ
21.13
Các thành ph n h th ng Linux(Cont.)ầ ệ ố
Các thành ph n h th ng Linux(Cont.)ầ ệ ố

H th ng th vi n nh ngh a m t t p h p chu n các hàm,thông ệ ố ư ệ đị ĩ ộ ậ ợ ẩ
qua các hàm này các ng d ng có th t ng tác v i nhân, và hi n ứ ụ ể ươ ớ ệ
th c m t s ch c n ng c a h i u hành, mà không c n u tiên ự ộ ố ứ ă ủ ệ đ ề ầ ư
qua mã kernel.


system utilities th c thi các thao tác qu n lý chuyên d ng cá ự ả ụ
nhân
21.14
Kernel modules
Kernel modules

Nh ng ph n c a mã kernel có th c biên d ch, load, và ữ ầ ủ ể đượ ị
unload không ph thu c vào nh ng ph n còn l i c a kernel.ụ ộ ữ ầ ạ ủ

Kernel module có th th c thi trình i u khi n thi t b , file h ể ự đ ề ể ế ị ệ
th ng, hay m t giao th c m ng.ố ộ ứ ạ

Giao di n module cho phép ng i s d ng th 3 vi t và phân ệ ườ ử ụ ứ ế
phát trong ph m vi gi i h n c a h ,có thêm trình i u khi n thi t ạ ớ ạ ủ ọ đ ề ể ế
b hay file h th ng –chúng không c phân ph i d i d ng ị ệ ố đượ ố ướ ạ
GPL

Kernel modules cho phép Linux c thi t l p theo m t tiêu đượ ế ậ ộ
chu n,nhân nh nh t mà không c n xây d ng thêm b t k trình ẩ ỏ ấ ầ ự ấ ỳ
i u khi n thi t b nào.đ ề ể ế ị

Linux module h tr 3 thành ph n:ỗ ợ ầ

Qu n lý module ả

i u khi n ng kýĐ ề ể đă

Gi i quy t mâu thu n ả ế ẫ
21.15

Qu n lý Module ả
Qu n lý Module ả

H tr vi c n p module vào b nh , cho phép chúng giao ti p v i ỗ ợ ệ ạ ộ ớ ế ớ
các ph n còn l i c a kernelầ ạ ủ

Quá trình n p module c chia thành 2 ph n khác nhau:ạ đượ ầ

Qu n lý các o n mã module trong b nh nhânả đ ạ ộ ớ

Nh ng module c phép tham kh o và trình bày t ng tr ngữ đượ ả ượ ư

Module requestor qu n lý các yêu c u n p d li u; nó c ng liên ả ầ ạ ữ ệ ũ
t c h i nhân xem các module ng ã c n p v n còn s d ng ụ ỏ độ đ đượ ạ ẫ ử ụ
không, và khi không c n n a module này s c xóaầ ữ ẽ đượ
21.16
Driver Registration
Driver Registration
( ng ký b ph n i u khi n)đă ộ ậ đ ề ể
( ng ký b ph n i u khi n)đă ộ ậ đ ề ể

Cho phép module nói v i ph n còn l i c a nhân r ng có m t drive ớ ầ ạ ủ ằ ộ
m i v a c thêm vàoớ ừ đượ

Kernel duy trì m t b ng ng có l u t t c các driver, và cung c p ộ ả độ ư ấ ả ấ
m t t p h p các routine cho phép các driver này thêm vào hay gõ ộ ậ ợ
b ra kh i b ng b t c lúc nào.ỏ ỏ ả ấ ứ

B ng ng ký bao g m nh ng ph n sau: ả đă ồ ữ ầ


Trình qu n lý thi t bả ế ị

H th ng fileệ ố

Giao th c m ngứ ạ

nh d ng nh phânĐị ạ ị
21.17
Gi i quy t mâu thu nả ế ẫ
Gi i quy t mâu thu nả ế ẫ

Là m t k thu t cho phép các tài nguyên khác nhau dành riêng các ộ ỹ ậ
tài nguyên trong ph n c ng và b o v các tài nguyên này kh i các ầ ứ ả ệ ỏ
tình hu ng b t ng c dùng t các driver khácố ấ ờ đượ ừ

Module gi i quy t mâu thu n có m c ích:ả ế ẫ ụ đ

Ng n ng a các va ch m khi các module truy xu t tài nguyên ă ừ ạ ấ
c a ph n c ng.ủ ầ ứ

Ng n ng a s qu y r i c a các trình qu n lý thi t b n ă ừ ự ấ ố ủ ả ế ị đế
autoprobes

Gi i quy t các mâu thu n khi các driver c g ng truy xu t vào ả ế ẫ ố ắ ấ
cùng m t ph n c ngộ ầ ứ
21.18
Qu n lý ti n trìnhả ế
Qu n lý ti n trìnhả ế

Qu n lý ti n trình Unix chia vi c t o quá trình và vi c ch y các quá ả ế ệ ạ ệ ạ

trình m i thành hai thao tác c l p.ớ độ ậ

Câu l nh ệ fork t o quá trình m iđể ạ ớ

M t ch ng trình c ch y sau l i g i: ộ ươ đượ ạ ờ ọ execve

Trong UNIX, m t ch ng trình bao g m t t c các thông tin ph i ộ ươ ồ ấ ả ả
duy trì t track ch a các b i c nh c a m t hi n th c n trong để ứ ố ả ủ ộ ệ ự đơ
quá trình nđơ

Trong Linux, c tính c a quá trình chia thành 3 nhóm: c tính đặ ủ đặ
c a quá trình, môi tr ng, và b i c nh.ủ ườ ố ả
21.19
ng nh t ti n trìnhĐồ ấ ế
ng nh t ti n trìnhĐồ ấ ế

ID c a quá trình (PID). nh danh n cho quá trình; dùng cho ủ Đị đơ
nh ng quá trình c bi t trong h i u hành khi m t quá trình g i ữ đặ ệ ệ đ ề ộ ọ
m t system call signal, modify, hay wait m t quá trình khácộ để ộ

Credentials. M i quá trình ph i có m t ID liên h v i ng i s d ng ỗ ả ộ ệ ớ ườ ử ụ
và m t hay nhi u nhóm ID có th quy t nh quy n truy xu t vào tài ộ ề ể ế đị ề ấ
nguyên và file c a h th ngủ ệ ố

Personality. Trong nh ng h th ng Unix thì không th tìm th y ữ ệ ố ể ấ
nh ng trong Lin thì m i quá trình có m t nh danh liên k t cá nhân- ư ũ ỗ ộ đị ế
mà nó có th s a các sematic c a m t s system callể ử ủ ộ ố

c s d ng u tiên b i các th vi n mô ph ng yêu c u Đượ ử ụ đầ ở ư ệ ỏ để ầ
các system call này thích h p v i m t s tính n ng c a Unixợ ớ ộ ố ă ủ

21.20
Môi tr ng ti n trìnhườ ế
Môi tr ng ti n trìnhườ ế

Môi tr ng ti n trình c th a k t các ti n trình cha m , và c ườ ế đượ ừ ế ừ ế ẹ đượ
so n th o thành 2 vector k t thúc b ng 0:ạ ả ế ằ

The argument vector lists the command-line arguments used to
invoke the running program; conventionally starts with the name of
the program itself

The environment vector is a list of “NAME=VALUE” pairs that
associates named environment variables with arbitrary textual
values

Qua các bi n môi tr ng trong s các quá trình và các bi n c ế ườ ố ế đượ
th a k c a ti n trình con, vi c chuy n thông tin n các ph n c a ừ ế ủ ế ệ ể đế ầ ủ
ph n m m h th ng user-mode tr nên linh ngầ ề ệ ố ở độ

Bi n môi tr ng cung c p c ch tùy nh c a h i u hành. C ch ế ườ ấ ơ ế đị ủ ệ đ ề ơ ế
này c t o ra m i quá trình, ch không ph i là nh c u hình h đượ ạ ở ỗ ứ ả đị ầ ệ
th ng cho toàn bố ộ
21.21
Ng c nh quá trìnhữ ả
Ng c nh quá trìnhữ ả

Tr ng thái-thay i liên t c c a m t quá trình ang ch y t i m t ạ đổ ụ ủ ộ đ ạ ạ ộ
i m th i gianđ ể ờ

nh th i ng c nh là m t ph n quan tr ng c a ng c nh quá Đị ờ ữ ả ộ ầ ọ ủ ữ ả

trình; ó là thông tin mà b nh th i c n có t m ng ng hay đ ộ đị ờ ầ để ạ ư
kh i ng l i quá trìnhở độ ạ

Kernel duy trì thông tin accounting v tài nguyên hi n hành c ề ệ đượ
s d ng b i m i quá trình, t ng s tài nguyên c s d ng b i ử ụ ở ỗ ổ ố đượ ử ụ ở
quá trình t lúc b t u n khi k t thúcừ ắ đầ đế ế

B ng file ả là m t m ng các con tr n c u trúc file kernelộ ả ỏ đế ấ

Khi t o m t file xu t nh p b ng system call, quá trình c p ạ ộ ấ ậ ằ đề ậ
các file b i a ch c a nó trong b ngở đị ỉ ủ ả
21.22
Ng c nh quá trìnhữ ả
Ng c nh quá trìnhữ ả

Trong khi ó, b ng các t p tin li t kê các file ang m , đ ả ậ ệ đ ở
file-system context cung c p yêu c u m m t file m iấ ầ để ở ộ ớ

Nh ng t p tin g c hi n t i và ng d n m c nh c dùng ữ ậ ố ệ ạ đườ ẫ ặ đị đượ
cho vi c tìm ki m file m i c ch a trong óệ ế ớ đượ ứ đ

Signal-handler table nh ngh a các công vi c trong không gian đị ĩ ệ
a ch quá trình c g i khi có m t tín hi u c bi t nđị ỉ đượ ọ ộ ệ đặ ệ đế

Virtual-memory context mô t t t c n i dung c a không gian a ả ấ ả ộ ủ đị
ch riêng nóỉ
21.23
Quá trình và lu ngồ
Quá trình và lu ngồ


Linux dùng các cách trình bày gi ng nhau v b n ch t c a các ố ề ả ấ ủ
quá trình và lu ng; m t lu ng n gi n ch là m t quá trình m i, ồ ộ ồ đơ ả ỉ ộ ớ
mà x y ra vi c chia s không gian a ch v i quá trình cha c a nóả ệ ẻ đị ỉ ớ ủ

S phân bi t ch c t o ra khi có m t lu ng m i t o ra b ng ự ệ ỉ đượ ạ ộ ồ ớ ạ ằ
vi c g i system call ệ ọ clone

fork t o ra m t quá trình con, có kh n ng s h u toàn b quá ạ ộ ả ă ở ữ ộ
trình ng c nh c a nóữ ả ủ

clone t o ra m t quá trình m i gi ng nh chính nó, nh ng ạ ộ ớ ố ư ư
c cho phép chia s c u trúc d li u c a quá trình chađượ để ẻ ấ ữ ệ ủ

S d ng ử ụ clone t o m t ng d ng fine-grained i u khi n chính để ạ ộ ứ ụ đ ề ể
xác nh ng gì c chia s gi a hai lu ngữ đượ ẻ ữ ồ
21.24
nh th iĐị ờ
nh th iĐị ờ

Nhi m v là ch nh th i gian CPU cho các tác v khác nhau ệ ụ ỉ đị ờ ụ
trong ph m vi h i u hànhạ ệ đ ề

Trong khi nh th i th ng c xem nh là vi c ch y và ng t các đị ờ ườ đượ ư ệ ạ ắ
quá trình. Trong Linux, vi c ch y các ch n trình c ng bao g m ệ ạ ươ ũ ồ
các tác v kernel khác nhauụ

Vi c ch y các tác v kernel bao g m c các tác v yêu c u b i ệ ạ ụ ồ ả ụ ầ ở
các quá trình ang ch y và các tác v th c thi thay m t cho m t đ ạ ụ ự ặ ộ
thi t b i u khi nế ị đ ề ể


Nh ví d 2.5, gi i thu t nh th i m i – u tiên, u tiên c sư ụ ả ậ đị ờ ớ ư độ ư ơ ở

S p x p th i gian th cắ ế ờ ự

Giá tr pị đẹ
21.25
Qua h gi a u tiên và dài phân th i ệ ữ độ ư độ ờ
Qua h gi a u tiên và dài phân th i ệ ữ độ ư độ ờ
gian
gian

×