BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC PHENIKAA HÀ NỘI, năm 2024.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA
⸎⸎⸎⸎⸎
BÁO CÁO BÀI TẬP LỚN
HỌC PHẦN HỆ ĐIỀU HÀNH
Đề bài: “Trình bày khái niệm về luồng, các vấn đề về luồng Lấy ví dụ minh họa, liên hệ luồng trong hệ điều hành Linux.”
Họ và tên sinh viên : Vũ Văn Phi
Mã Sinh Viên : 22010288
Ngành học : Công Nghệ Thông Tin
Khóa : K16
Tên lớp : CNTT3
HÀ NỘI, năm 2024
Trang 2Mục Lục
Mở đầu 3
N i dung ộ 3
1.T ng quan ổ 3
1.1 Khái ni m lu ng ệ ồ 3
1.2 So sánh lu ng và ti n trình ồ ế 4
1.3 S c đ ng và thu n l i ự ơ ộ ậ ợ 6
1.4 Lu ng ng ồ ườ i dùng và lu ng nhân ồ 8
2 Các v n đ c a lu ng ấ ề ủ ồ 9
2.1 Đ ng b hóa ồ ộ 9
2.2 Tranh ch p – Deadlock ấ 9
2.3 L p l ch (Scheduling) ậ ị 10
2.3 Các gi i pháp qu n lý ả ả 10
3 Mô hình lu ng ồ 11
3.1 Mô hình nhi u-m t ề ộ 11
3.2 Mô hình m t-m t ộ ộ 11
3.3 Mô hình nhi u-nhi u ề ề 12
4 Ví d minh h a ụ ọ 12
5 Lu ng trong Linux ồ 13
5.1 T ng quan lu ng Linux ổ ồ 13
5.2 Các lo i lu ng thông d ng ạ ồ ụ 13
5.3 Tri n khai lu ng trong Linux ể ồ 14
TÀI LI U THAM KH O Ệ Ả 16
Trang 3Mở đầu
K t khi máy tính đa nhi m ra đ i, kh năng ch y đ ng th i ể ừ ệ ờ ả ạ ồ ờ nhi u ng d ng trên cùng m t h th ng là đi u không còn xa l Tuy ề ứ ụ ộ ệ ố ề ạ nhiên, vi c t n d ng t i đa s c m nh x lý đa lõi c a các b x lý hi n ệ ậ ụ ố ứ ạ ử ủ ộ ử ệ
đ i đòi h i ph i có c ch l p trình đa lu ng hi u qu M t trong nh ng ạ ỏ ả ơ ế ậ ồ ệ ả ộ ữ khái ni m then ch t c a l p trình đa lu ng đó là lu ng (thread) Lu ng ệ ố ủ ậ ồ ồ ồ cho phép chia nh m t chỏ ộ ương trình thành nhi u đề ường th c thi đ c ự ộ
l p, mang l i kh năng x lý song song, tăng t c đ x lý Tuy nhiên, l p ậ ạ ả ử ố ộ ử ậ trình đa lu ng cũng đ t ra nhi u thách th c nh đ ng b , xung đ t và ồ ặ ề ứ ư ồ ộ ộ
l p l ch lu ng c n gi i quy t Bài ti u lu n này sẽ trình bày khái ni m ậ ị ồ ầ ả ế ể ậ ệ
lu ng, phân tích các v n đ chính v lu ng cũng nh ví d v lu ng ồ ấ ề ề ồ ư ụ ề ồ trong h đi u hành Linux - m t h th ng đi n hình ng d ng t t l p ệ ề ộ ệ ố ể ứ ụ ố ậ trình đa lu ng.ồ
N i dung ộ
1.T ng quan ổ
1.1 Khái ni m lu ng ệ ồ
Trong khoa h c máy tính, lu ng (thread) là m t chu i các l nh ọ ồ ộ ỗ ệ
đượ ậc l p trình nh nh t đ có th đỏ ấ ể ể ược qu n lý đ c l p b i m t b đ nhả ộ ậ ở ộ ộ ị
th i (scheduler) , thờ ường là m t ph n c a h đi u hành Thread là m t ộ ầ ủ ệ ề ộ
đ n v c b n trong CPU M t lu ng sẽ chia s v i các lu ng khác trong ơ ị ơ ả ộ ồ ẻ ớ ồ cùng process v thông tin data, các d li u c a mình Vi c t o ra thread ề ữ ệ ủ ệ ạ giúp cho các chương trình có th ch y để ạ ược nhi u công vi c cùng m t ề ệ ộ lúc Nhi u h đi u hành hi n đ i hi n nay cung c p các đ c đi m cho ề ệ ề ệ ạ ệ ấ ặ ể
m t quá trình ch a nhi u lu ng (thread) đi u khi n.ộ ứ ề ồ ề ể
Trang 4Lu ng là m t ti n trình g n nh có th đồ ộ ế ọ ẹ ể ược qu n lý đ c l p b i ả ộ ậ ở
m t b l p l ch, là m t đ n v th c thi nh nh t c a m t chộ ộ ậ ị ộ ơ ị ự ỏ ấ ủ ộ ương trình
Nó bi u di n m t dòng th c thi đ c l p bên trong m t ti n trình và có ể ễ ộ ự ộ ậ ộ ế
kh năng chia s tài nguyên v i các lu ng khác trong cùng m t ti n trình.ả ẻ ớ ồ ộ ế
Lu ng giúp tăng cồ ường kh năng đa nhi m và t n d ng hi u qu tài ả ệ ậ ụ ệ ả nguyên h th ngệ ố
M i ti n trình (process) có ít nh t m t lu ng, nh ng có th có ỗ ế ấ ộ ồ ư ể nhi u lu ng Các lu ng trong cùng m t ti n trình chia s cùng m t ề ồ ồ ộ ế ẻ ộ không gian b nh và tài nguyên h th ng Đa lu ng có th t n t i trong ộ ớ ệ ố ồ ể ồ ạ cùng m t ti n trình, th c thi đ ng th i và chia s tài nguyên nh b nh ,ộ ế ự ồ ờ ẻ ư ộ ớ trong khi nh ng ti n trình khác nhau thì không chia s các tài nguyên ữ ế ẻ này
1.2 So sánh lu ng và ti n trình ồ ế
Đi m gi ng nhau:ể ố
Qu n lý tài nguyên:ả
C lu ng và ti n trình đ u là các đ n v th c thi trong h ả ồ ế ề ơ ị ự ệ
đi u hành, và c hai đ u c n tài nguyên đ ho t đ ng.ề ả ề ầ ể ạ ộ
C hai cũng đ u có th chia s tài nguyên nh b nh , tài ả ề ể ẻ ư ộ ớ nguyên h th ng, và th i gian CPU (trong trệ ố ờ ường h p các ti n trìnhợ ế
được th c hi n song song trên các nhân CPU đa nhân).ự ệ
Qu n lý b i h đi u hành:ả ở ệ ề
C lu ng và ti n trình đ u đả ồ ế ề ược qu n lý b i h đi u hành.ả ở ệ ề
H đi u hành qu n lý các ti n trình và lu ng b ng cách c p ệ ề ả ế ồ ằ ấ phát tài nguyên và l p l ch th c thi chúng trên các nhân CPU.ậ ị ự
Trang 5Đi m khác nhau:ể
Ph m vi c a tài nguyên:ạ ủ
Ti n trình: M i ti n trình có không gian b nh riêng, bao ế ỗ ế ộ ớ
g m mã, d li u, và b nh stack Ti n trình không chia s b nh ồ ữ ệ ộ ớ ế ẻ ộ ớ
v i các ti n trình khác mà c n s d ng c ch liên l c nh IPC.ớ ế ầ ử ụ ơ ế ạ ư
Lu ng: Các lu ng trong cùng m t ti n trình chia s cùng m tồ ồ ộ ế ẻ ộ không gian b nh Do đó, vi c truy c p và thay đ i d li u gi a ộ ớ ệ ậ ổ ữ ệ ữ các lu ng có th đồ ể ược th c hi n m t cách tr c ti p mà không c n ự ệ ộ ự ế ầ
s d ng c ch IPC.ử ụ ơ ế
Th i gian kh i t o và k t thúc:ờ ở ạ ế
Ti n trình: Th i gian kh i t o và k t thúc c a ti n trình ế ờ ở ạ ế ủ ế
thường lâu h n so v i lu ng do vi c c n ph i c p phát và qu n lý ơ ớ ồ ệ ầ ả ấ ả không gian b nh riêng.ộ ớ
Lu ng: Th i gian kh i t o và k t thúc c a lu ng thồ ờ ở ạ ế ủ ồ ường nhanh h n so v i ti n trình vì không c n t o m i m t không gian ơ ớ ế ầ ạ ớ ộ
b nh m i.ộ ớ ớ
Đ tin c y:ộ ậ
Ti n trình: N u m t ti n trình g p l i, các ti n trình khác ế ế ộ ế ặ ỗ ế không b nh hị ả ưởng
Lu ng: N u m t lu ng g p l i, nó có th nh hồ ế ộ ồ ặ ỗ ể ả ưởng đ n t t ế ấ
c các lu ng khác trong cùng m t ti n trình.ả ồ ộ ế
Trong khi c lu ng và ti n trình đ u là các khái ni m quan tr ng ả ồ ế ề ệ ọ trong l p trình đa lu ng và đa nhi m, s hi u bi t v s khác bi t gi a ậ ồ ệ ự ể ế ề ự ệ ữ
Trang 6chúng là quan tr ng đ tri n khai và qu n lý các ng d ng m t cách ọ ể ể ả ứ ụ ộ
hi u qu trên h đi u hành.ệ ả ệ ề
1.3 S c đ ng và thu n l i ự ơ ộ ậ ợ
Nhi u gói ph n m m ch y trên các máy đ bàn PC là đa lu ng ề ầ ề ạ ể ồ
Đi n hình, m t ng d ng để ộ ứ ụ ược cài đ t nh m t quá trình riêng r v i ặ ư ộ ẻ ớ nhi u lu ng đi u khi n M t trình duy t Web có th có m t lu ng hi n ề ồ ề ể ộ ệ ể ộ ồ ể
th hình nh, văn b n trong khi m t lu ng khác l y d li u t m ng M tị ả ả ộ ồ ấ ữ ệ ừ ạ ộ trình so n th o văn b n có th có m t lu ng hi n th đ h a, lu ng th ạ ả ả ể ộ ồ ể ị ồ ọ ồ ứ hai đ c s b m phím trên bàn phím t ngọ ự ấ ừ ười dùng, m t lu ng th ba ộ ồ ứ
th c hi n vi c ki m tra chính t và t v ng ch y trong ch đ n n.ự ệ ệ ể ả ừ ự ạ ế ộ ề Trong nh ng trữ ường h p c th m t ng d ng đ n có th đợ ụ ể ộ ứ ụ ơ ể ược yêu c u th c hi n nhi u tác v đ n Thí d , m t trình ph c v web ch pầ ự ệ ề ụ ơ ụ ộ ụ ụ ấ
nh n các yêu c u khách hàng nh trang web, hình nh, âm thanh, M t ậ ầ ư ả ộ trình ph c v web có th có nhi u (hàng trăm) khách hàng truy xu t ụ ụ ể ề ấ
đ ng th i nó N u trình ph c v web ch y nh m t quá trình đ n lu ng ồ ờ ế ụ ụ ạ ư ộ ơ ồ truy n th ng thì nó sẽ có th ch ph c v m t khách hàng t i cùng th i ề ố ể ỉ ụ ụ ộ ạ ờ
đi m Lể ượng th i gian mà khách hàng ph i ch yêu c u c a nó đờ ả ờ ầ ủ ược
ph c v là r t l n.ụ ụ ấ ớ
M t gi i pháp là có m t trình ph c v ch y nh m t quá trình đ nộ ả ộ ụ ụ ạ ư ộ ơ
ch p nh n các yêu c u Khi trình ph c v nh n m t yêu c u, nó sẽ t o ấ ậ ầ ụ ụ ậ ộ ầ ạ
m t quá trình riêng đ ph c v yêu c u đó Th t v y, phộ ể ụ ụ ầ ậ ậ ương pháp t o ạ
ra quá trình này là cách s d ng thông thử ụ ường trước khi lu ng tr nên ồ ở
ph bi n T o ra quá trình có nh hổ ế ạ ả ưởng r t l n nh đấ ớ ư ược trình bày ở
chương trước N u quá trình m i sẽ th c hi n cùng tác v nh quá trình ế ớ ự ệ ụ ư
đã có thì t i sao l i gánh ch u t t c chi phí đó? Thạ ạ ị ấ ả ường sẽ hi u qu h n ệ ả ơ cho m t quá trình ch a nhi u lu ng ph c v cùng m t m c đích Ti p ộ ứ ề ồ ụ ụ ộ ụ ế
Trang 7c n này sẽ đa lu ng quá trình trình ph c v web Trình ph c v sẽ t o ậ ồ ụ ụ ụ ụ ạ
m t lu ng riêng l ng nghe các yêu c u ngộ ồ ắ ầ ười dùng; khi yêu c u đầ ược
th c hi n nó không t o ra quá trình khác mà sẽ t o m t lu ng khác ph cự ệ ạ ạ ộ ồ ụ
v yêu c u.ụ ầ
Lu ng cũng đóng m t vai trò quan tr ng trong h th ng l i g i thồ ộ ọ ệ ố ờ ọ ủ
t c xa (remote process call-RPC) Nh đã trình bày chụ ư ở ương trước, RPCs cho phép giao ti p liên quá trình b ng cách cung c p c ch giao ti p ế ằ ấ ơ ế ế
tương t nh các l i g i hàm hay th t c thông thự ư ờ ọ ủ ụ ường Đi n hình, các ể trình ph c v RPCs là đa lu ng Khi m t trình ph c v nh n m t thông ụ ụ ồ ộ ụ ụ ậ ộ
đi p, nó ph c v thông đi p dùng m t lu ng riêng Đi u này cho phép ệ ụ ụ ệ ộ ồ ề
ph c v nhi u yêu c u đ ng hành.ụ ụ ề ầ ồ
Nh ng thu n l i c a l p trình đa lu ng có th đữ ậ ợ ủ ậ ồ ể ược chia làm b n ố
lo i:ạ
S đáp ng: đa lu ng m t ng d ng giao ti p cho phép m t ự ứ ồ ộ ứ ụ ế ộ
chương trình ti p t c ch y th m chí n u m t ph n c a nó b khóa hay ế ụ ạ ậ ế ộ ầ ủ ị đang th c hi n m t thao tác dài, do đó gia tăng s đáp ng đ i v i ngự ệ ộ ự ứ ố ớ ười dùng Thí d , m t trình duy t web v n có th đáp ng ngụ ộ ệ ẫ ể ứ ười dùng b ng ằ
m t lu ng trong khi m t nh đang độ ồ ộ ả ượ ạc n p b ng m t lu ng khác.ằ ộ ồ Chia s tài nguyên: M c đ nh, các lu ng chia s b nh và các tài ẻ ặ ị ồ ẻ ộ ớ nguyên c a các quá trình mà chúng thu c v Thu n l i c a vi c chia sẽ ủ ộ ề ậ ợ ủ ệ
mã là nó cho phép m t ng d ng có nhi u ho t đ ng c a các lu ng khác ộ ứ ụ ề ạ ộ ủ ồ nhau n m trong cùng không gian đ a ch ằ ị ỉ
Kinh t : c p phát b nh và các tài nguyên cho vi c t o các quá ế ấ ộ ớ ệ ạ trình là r t đ t Vì các lu ng chia s tài nguyên c a quá trình mà chúng ấ ắ ồ ẻ ủ thu c v nên nó kinh t h n đ t o và chuy n ng c nh gi a các lu ng ộ ề ế ơ ể ạ ể ữ ả ữ ồ
Trang 8Khó đ đánh giá theo kinh nghi m s khác bi t chi phí cho vi c t o và ể ệ ự ệ ệ ạ duy trì m t quá trình h n m t lu ng, nh ng thộ ơ ộ ồ ư ường nó sẽ m t nhi u ấ ề
th i gian đ t o và qu n lý m t quá trình h n m t lu ng Trong Solaris ờ ể ạ ả ộ ơ ộ ồ
2, t o m t quá trình ch m h n kho ng 30 l n t o m t lu ng và chuy n ạ ộ ậ ơ ả ầ ạ ộ ồ ể
đ i ng c nh ch m h n 5 l n.ổ ữ ả ậ ơ ầ
S d ng ki n trúc đa x lý: các l i đi m c a đa lu ng có th phát ử ụ ế ử ợ ể ủ ồ ể huy trong ki n trúc đa x lý, đó m i lu ng th c thi song song trên m t ế ử ở ỗ ồ ự ộ
b x lý khác nhau M t quá trình đ n lu ng ch có th ch y trên m t ộ ử ộ ơ ồ ỉ ể ạ ộ CPU Đa lu ng trên m t máy nhi u CPU gia tăng tính đ ng hành Trong ồ ộ ề ồ
ki n trúc đ n x lý, CPU thế ơ ử ường chuy n đ i qua l i gi a m i lu ng quá ể ổ ạ ữ ỗ ồ nhanh đ t o ra hình nh c a s song song nh ng trong th c t ch m t ể ạ ả ủ ự ư ự ế ỉ ộ
lu ng đang ch y t i m t th i đi m.ồ ạ ạ ộ ờ ể
1.4 Lu ng ng ồ ườ i dùng và lu ng nhân ồ
Lu ng ngồ ười dùng: đượ ỗ ợ ước h tr d i nhân và được cài đ t b i th ặ ở ư
vi n lu ng t i c p ngệ ồ ạ ấ ười dùng Th vi n cung c p h tr cho vi c t o ư ệ ấ ỗ ợ ệ ạ
lu ng, l p th i bi u, và qu n lý mà không có s h tr t nhân Vì nhân ồ ậ ờ ể ả ự ỗ ợ ừ không bi t các lu ng c p ngế ồ ấ ười dùng, t t c vi c t o lu ng và l p th i ấ ả ệ ạ ồ ậ ờ
bi u để ược th c hi n trong không gian ngự ệ ười dùng mà không c n s can ầ ự thi p c a nhân Do đó, các lu ng c p ngệ ủ ồ ấ ười dùng thường t o và qu n lý ạ ả nhanh, tuy nhiên chúng cũng có nh ng tr ng i Thí d , n u nhân là đ n ữ ở ạ ụ ế ơ
lu ng thì b t c lu ng c p ngồ ấ ứ ồ ấ ười dùng th c hi n m t l i g i h th ng ự ệ ộ ờ ọ ệ ố nghẽn sẽ làm cho toàn b quá trình b nghẽn, th m chí n u các lu ng ộ ị ậ ế ồ khác s n dùng đ ch y trong ng d ng Các th vi n lu ng ngẳ ể ạ ứ ụ ư ệ ồ ười dùng
g m các lu ng POSIX Pthreads, Mach C-threads và Solaris 2 UI-threads.ồ ồ
Lu ng nhân: đồ ượ ỗ ợ ực h tr tr c ti p b i h đi u hành Nhân th c ế ở ệ ề ự
hi n vi c t o lu ng, l p th i bi u, và qu n lý không gian nhân Vì qu n ệ ệ ạ ồ ậ ờ ể ả ả
Trang 9lý lu ng đồ ược th c hi n b i h đi u hành, lu ng nhân thự ệ ở ệ ề ồ ường t o và ạ
qu n lý ch m h n lu ng ngả ậ ơ ồ ười dùng Tuy nhiên, vì nhân được qu n lý ả các lu ng n u m t lu ng th c hi n l i g i h th ng nghẽn, nhân có th ồ ế ộ ồ ự ệ ờ ọ ệ ố ể
l p th i bi u m t lu ng khác trong ng d ng th c thi Trong môi trậ ờ ể ộ ồ ứ ụ ự ường
đa x lý, nhân có th l p th i bi u lu ng trên m t b x lý khác H u h tử ể ậ ờ ể ồ ộ ộ ử ầ ế các h đi u hành hi n nay nh Windows NT, Windows 2000, Solaris 2, ệ ề ệ ư BeOS và Tru64 UNIX (trước Digital UNIX)-h tr các lu ng nhânỗ ợ ồ
2 Các v n đ c a lu ng ấ ề ủ ồ
2.1 Đ ng b hóa ồ ộ
Đ ng b hóa là quá trình đi u ch nh th i gian th c thi c a các ồ ộ ề ỉ ờ ự ủ
lu ng đ đ m b o s nh t quán và an toàn trong qu n lý tài nguyên chia ồ ể ả ả ự ấ ả
s Các v n đ đi n hình c a đ ng b hóa bao g m:ẻ ấ ề ể ủ ồ ộ ồ
Race Condition: Đây là tình tr ng x y ra khi hai ho c nhi u lu ngạ ả ặ ề ồ cùng truy c p và thay đ i m t tài nguyên chia s mà không có s đ ngậ ổ ộ ẻ ự ồ
b hóa K t qu c a quá trình này là không th d đoán và th m chí cóộ ế ả ủ ể ự ậ
th d n đ n các l i và d li u không đúng.ể ẫ ế ỗ ữ ệ
Deadlock: Đây là tình tr ng mà hai ho c nhi u lu ng ho c ti nạ ặ ề ồ ặ ế trình b k t đ ng vì m i lu ng đang ch tài nguyên mà ch có th đị ẹ ứ ỗ ồ ờ ỉ ể ược
gi i phóng b i m t lu ng khác Deadlock có th x y ra khi các lu ng cả ở ộ ồ ể ả ồ ố
g ng gi và yêu c u tài nguyên t nhau mà không gi i phóng các tàiắ ữ ầ ừ ả nguyên đã gi ữ
2.2 Tranh ch p – Deadlock ấ
Tranh ch p (Deadlock) là m t tr ng thái trong đó m t t p h p các ấ ộ ạ ộ ậ ợ
lu ng ho c ti n trình b k t vì m i lu ng ho c ti n trình trong t p h p ồ ặ ế ị ẹ ỗ ồ ặ ế ậ ợ
Trang 10đang ch đ i m t tài nguyên mà ch có s n cho m t lu ng ho c ti n ờ ợ ộ ỉ ẵ ộ ồ ặ ế trình khác trong t p h p ậ ợ
Deadlock thường x y ra khi có m t chu trình trong các yêu c u tài ả ộ ầ nguyên gi a các lu ng ho c ti n trình Deadlock gây t c nghẽn trong h ữ ồ ặ ế ắ ệ
th ng và có th gây ra các v n đ nghiêm tr ng n u không đố ể ấ ề ọ ế ượ ửc x lý đúng cách
2.3 L p l ch (Scheduling) ậ ị
L p l ch (Scheduling) là quá trình quy t đ nh xem lu ng nào trong ậ ị ế ị ồ
h th ng sẽ đệ ố ược th c thi ti p theo trên các CPU có s n M t s v n đ ự ế ẵ ộ ố ấ ề
thường g p trong l p l ch lu ng bao g m:ặ ậ ị ồ ồ
Starvation: Đây là tình tr ng m t ho c nhi u lu ng không đạ ộ ặ ề ồ ược
l p l ch đ th c thi trong m t kho ng th i gian dài do u tiên c a các ậ ị ể ự ộ ả ờ ư ủ
lu ng khác ho c do các thu t toán l p l ch không công b ng.ồ ặ ậ ậ ị ằ
Priority Inversion: Đây là tình tr ng mà m t lu ng có u tiên cao ạ ộ ồ ư
ph i ch đ i m t lu ng có u tiên th p đ gi i phóng m t tài nguyên, ả ờ ợ ộ ồ ư ấ ể ả ộ
đi u này có th x y ra khi s d ng các c ch l p l ch không phù h p.ề ể ả ử ụ ơ ế ậ ị ợ
2.3 Các gi i pháp qu n lý ả ả
Đ ng b hóa lu ng: S d ng các c ch đ ng b nh mutex, ồ ộ ồ ử ụ ơ ế ồ ộ ư semaphore, monitor đ b o v tài nguyên chung và tránh các tình hu ng ể ả ệ ố
ch y đua.ạ
Thi t k thu t toán l p l ch: Thu t toán l p l ch công b ng, tránh ế ế ậ ậ ị ậ ậ ị ằ tình tr ng starvation lu ng Ví d Round Robin, Priority Scheduling.ạ ồ ụ
Gi i h n s lớ ạ ố ượng lu ng: Gi i h n s lu ng t i đa có th t o ra đ gi m ồ ớ ạ ố ồ ố ể ạ ể ả overhead cho h th ng.ệ ố
Trang 11S d ng các th vi n/framework qu n lý lu ng: NPTL, Pthreads ử ụ ư ệ ả ồ cho Linux Boost, Java Thread cho l p trình ng d ng Gi m thi u l i ậ ứ ụ ả ể ỗ
ti m n.ề ẩ
Cân nh c ng d ng h p lý đa lu ng: Ch áp d ng song song trên ắ ứ ụ ợ ồ ỉ ụ
nh ng ph n code th c s c n, tránh overhead không c n thi t.ữ ầ ự ự ầ ầ ế
Nh v y, v i m t t p h p các gi i pháp toàn di n, các nhà phát ư ậ ớ ộ ậ ợ ả ệ tri n có th t n d ng để ể ậ ụ ược hi u qu c a lu ng đ ng th i ki m soát t t ệ ả ủ ồ ồ ờ ể ố các v n đ ti m n.ấ ề ề ẩ
3 Mô hình lu ng ồ
Nhi u h th ng cung c p s h tr c hai lu ng nhân và lu ng ề ệ ố ấ ự ỗ ợ ả ồ ồ
người dùng nên t o ra nhi u mô hình đa lu ng khác nhau Chúng ta sẽ ạ ề ồ xem xét ba lo i cài đ t lu ng thông thạ ặ ồ ường
3.1 Mô hình nhi u-m t ề ộ
Mô hình nhi u-m t ánh x nhi u lu ng c p ngề ộ ạ ề ồ ấ ười dùng t i m t ớ ộ
lu ng c p nhân Qu n lý lu ng đồ ấ ả ồ ược th c hi n trong không gian ngự ệ ười dùng vì th nó hi u qu nh ng toàn b quá trình sẽ b khóa n u m t ế ệ ả ư ộ ị ế ộ
lu ng th c hi n l i g i h th ng khóa Vì ch m t lu ng có th truy xu t ồ ự ệ ờ ọ ệ ố ỉ ộ ồ ể ấ nhân t i m t th i đi m nên nhi u lu ng không th ch y song song trên ạ ộ ờ ể ề ồ ể ạ nhi u b x lý Green threads-m t th vi n lu ng đề ộ ử ộ ư ệ ồ ược cài đ t trên các ặ
h đi u hành không h tr lu ng nhân dùng mô hình nhi u-m t.ệ ề ỗ ợ ồ ề ộ
3.2 Mô hình m t-m t ộ ộ
Mô hình m t-m t ánh x m i lu ng ngộ ộ ạ ỗ ồ ười dùng t i m t lu ng ớ ộ ồ nhân Nó cung c p kh năng đ ng hành t t h n mô hình nhi u-m t ấ ả ồ ố ơ ề ộ
b ng cách cho m t lu ng khác ch y khi m t lu ng th c hi n l i g i h ằ ộ ồ ạ ộ ồ ự ệ ờ ọ ệ
th ng nghẽn; nó cũng cho phép nhi u lu ng ch y song song trên các b ố ề ồ ạ ộ