1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề 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

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khái niệm về luồng, các vấn đề về luồng
Tác giả Vũ Văn Phi
Trường học Trường Đại học Phenikaa
Chuyên ngành Hệ Điều Hành
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố HÀ NỘI
Định dạng
Số trang 16
Dung lượng 1,4 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC PHENIKAA HÀ NỘI, năm 2024.

Trang 1

BỘ 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 2

Mụ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 3

Mở đầ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 4

Lu 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 6

chú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 7

c 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 8

Khó đ đá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 9

lý 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 11

S 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 ố ề ồ ạ ộ

Ngày đăng: 23/07/2024, 17:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w