Tải bản đầy đủ (.pdf) (37 trang)

đồ án môn học cpu scheduling

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 (2.28 MB, 37 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

<b>KHOA KHOA HỌC MÁY TÍNH</b>

<b>---o0o---ĐỒ ÁN MƠN HỌCCPU SCHEDULING</b>

<b>GVHD: Đỗ Tuấn AnhSVTH: Nguyễn Thùy DươngMSSV: 20204536</b>

<b><small>TP. HÀ NỘI, THÁNG 10 NĂM 2022</small></b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<i><b>LỜI CẢM ƠN</b></i>

Chúng em xin gửi lời cảm ơn chân thành đến Trường Công nghệ thông tin & Truyền thông – ĐH Bách khoa Hà Nội đã tạo điều kiện thuận lợi cho chúng em học tập và hoàn thành đề tài nghiên cứu này. Đặc biệt, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Đỗ Tuấn Anh đã dày công truyền đạt kiến thức và hướng dẫn chúng em trong quá trình làm bài.

Em đã cố gắng vận dụng những kiến thức đã học được trong thời gian qua để hoàn thành bài tiểu luận. Nhưng do kiến thức hạn chế và khơng có nhiều kinh nghiệm thực tiễn nên khó tránh khỏi những thiếu sót trong q trình nghiên cứu và trình bày. Rất kính mong sự góp ý của q thầy cơ để bài tiểu luận của em được hoàn thiện hơn.

Một lần nữa, em xin trân trọng cảm ơn sự quan tâm giúp đỡ của các thầy cô đã giúp đỡ em trong quá trình thực hiện bài tiểu luận này.

Xin trân trọng cảm ơn!

<i>Tp. Hà Nội, ngày 12 tháng 5 năm 2022 .</i>

<b> Sinh viên </b>

<b> Nguyễn Thùy Dương</b>

<small>i</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>TÓM TẮT ĐỒ ÁN</b>

<small> Đề tài nghiên cứu này trình bày về Điều phối CPU (CPU scheduling) – nền</small>tảng cơ sở của hệ điều hành đa chương trình. Bằng cách chuyển đổi CPU giữacác tiến trình, hệ điều hành có thể làm cho máy tính hoạt động hiệu quả hơn.Trong chuyên đề này, em đã đọc và tìm hiểu về các khái niệm cơ bản, một sốthuật tốn điều phối CPU và các tiêu chí đánh giá để chọn thuật toán điều phốiCPU cho một hệ thống cụ thể.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MỤC LỤC</b>

1. CÁC KHÁI NIỆM CƠ BẢN ...1

1.1 Giới thiệu...1

1.2 Chu kỳ thực hiện CPU – I/O...1

1.3 Bộ điều phối CPU...3

1.4 Bộ điều vận (Dispatcher)...4

2. TIÊU CHUẨN ĐIỀU PHỐI...4

3. CÁC THUẬT TOÁN ĐIỀU PHỐI...5

3.1 First Come First Served (FCFS)...5

3.2 Shortest Job First (SJF)...6

3.3 Shortest Remain Time (SRT)...8

3.4 Round Robin (RR)...9

3.5 Multi Level Queue (MLQ)...9

3.6 Multi Level Feedback Queues (MLFQ)...10

4. ĐIỀU PHỐI LUỒNG...11

5. ĐIỀU PHỐI ĐA XỬ LÝ...12

5.1 Đa xử lý đối xứng (SMP)...13

5.2 Đa xử lý không đối xứng...17

6. ĐIỀU PHỐI CPU THEO THỜI GIAN THỰC...18

6.1 Giảm thiểu độ trễ...18

6.2 Các điểm cần nhớ...20

6.3 Điều phối dựa trên mức độ ưu tiên...22

6.4 Điều phối đơn điệu tỷ lệ...23

6.5 Điều phối chia sẻ theo tỷ lệ...24<small>iii</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

6.6 Điều phối thời gian thực POSIX...25

7. ĐIỀU PHỐI CPU TRONG HỆ ĐIỀU HÀNH WINDOWS...27

8. ĐÁNH GIÁ THUẬT TOÁN...28

9. KẾT LUẬN...31

10. TÀI LIỆU THAM KHẢO...32

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>1. CÁC KHÁI NIỆM CƠ BẢN</b>

<b>1.1 Giới thiệu</b>

Tiến trình được thực hiện cho tới khi phải chờ đợi một thao tác vào ra. Trong hệ đơn chương trình, CPU khơng được sử dụng triệt để gây lãng phí. Trong hệ đa chương trình, CPU được tối ưu hóa để sử dụng cho nhiều tiến trình (đang chờ đợi). Để thực hiện ý tưởng này, cần nhiều tiến trình sẵn sàng trong bộnhớ tại một thời điểm và khi tiến trình phải chờ, hệ điều hành lấy CPU cho tiến trình khác

Như vậy, điều phối CPU có vai trò quan trọng với hệ điều hành đa nhiệm,làm cho máy tính được khai thác hiệu quả hơn.

<b>1.2 Chu kỳ thực hiện CPU – I/O</b>

Tiến trình là chuỗi luân phiên giữa chu kỳ tính tốn và chời đợi vào/ raBắt đầu bởi chu kỳ tính tốn

Tiếp theo chu kỳ đợi vào/ ra

Tính tốn => đợi vào/ ra => tính tốn => đợi vào/ ra => …Kết thúc: Tính tốn (u cầu hệ thống kết thúc thực hiện)

<small>1</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Dựa trên sự phân bổ thời gian cho các chu kỳ CPU và vào/ ra, ta phân loại thành 2 kiểu tiến trình

Tiến trình tính tốn (CPU-bound process) có vài chu kỳ CPU dàiTiến trình vào ra (I/O-bound process) có nhiều chu kỳ CPU ngắn

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>1.3 Bộ điều phối CPU</b>

Khi CPU nhàn rỗi, hệ hiều hành sẽ phải lựa chọn một trong số các tiến trình đang sẵn sàng trong bộ nhớ và cung cấp CPU cho nó. Q trình lựa chọn được thực hiện bởi bộ điều phối CPU (CPU scheduler) và các tiến trình phải được sắp hang trong hang đợi (hàng đợi FIFO, hàng đợi ưu tiên, DSLK đơn giản, …)

Quyết định điều phối CPU xảy ra khi tiến trình

1) Chuyển từ trạng thái thực hiện sang trạng thái chờ đợi (yêu cầu vào/ ra)

2) Chuyển từ trạng thái thực hiện sang trạng thái sẵn sàng (ví dụ hết thời gian sử dụng CPU: ngắt thời gian)

3) Chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng (hoàn thành vào/ ra)

4) Tiến trình kết thúc

Trường hợp 1&4 được gọi là điều phối khơng trưng dụng

(non-preemtive). Theo đó, tiến trình chiếm CPU cho tới khi giải phóng bởi vì kết thúctiến trình hoặc chuyển sang trạng thái chờ đợi. Phương pháp điều phối này khơng địi hỏi phần cứng đặc biệt (đồng hồ). Ví dụ: DOS, Win 3.1, Macintosh, …

Trường hợp khác (2&3) được gọi là điều phối trưng dụng (preemptive). Tức tiến trình chỉ được thực hiện trong khoảng thời gian cho phép, khi kết thúc khoảng thời gian được định nghĩa trước, ngắt thời gian xuất hiện, bộ điều vận (dispatcher) đươc kích hoạt để quyết định hồi phục lại tiến trình hay lựa chọn tiến trình khác. Điều này giúp bảo vệ CPU khỏi các tiến trình “đói CPU”. Tuy nhiên điều phối trưng dụng dẫn đến vấn đề dữ liệu dung chung – xét trường hợpcủa 2 tiến trình chia sẻ dữ liệu: khi tiến trình 1 đang cập nhật dữ liệu thì bị mất CPU vì được ưu tiên cho tiến trình 2 để chạy, sau đó tiến trình 2 cố gắng đọc dữ

<small>3</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

liệu đang cập nhật nhưng chúng ở trạng thái khơng nhất qn. Ví dụ: Hệ điều hành đa nhiệm WinNT, UNIX, …

<b>1.4 Bộ điều vận (Dispatcher)</b>

Bộ điều vận là mơ-đun cung cấp quyền kiểm sốt CPU cho tiến trình được chọn bởi bộ điều phối ngắn hạn (short-tẻm scheduler). Bao gồm các chức năng sau:

Chuyển đổi ngữ cảnh

Chuyển sang chế độ người dung

Chuyển đến vị trí thích hợp trong chương trình người dung để khởiđộng lại chương trình

Bộ điều vận phải nhanh nhất có thể, vì nó được gọi trong chuyển đổi tiến trình. Thời gian cần thiết để bộ điều vận dừng một tiến trình và bắt đầu thực hiện một tiến trình khác được gọi là độ trễ gửi (dispatch latency).

<b>2. TIÊU CHUẨN ĐIỀU PHỐI</b>

Các thuật toán điều phối CPU khác nhau có những đặc trưng riêng, cần được xem xét để lựa chọn phù hợp với hệ thống

Sử dụng CPU (lớn nhất): mục đích của điều phối là làm CPU hoạt động nhiều nhất có thể. Độ sử dụng CPU thay đổi từ 40% (hệ thống tải nhẹ) đến 90% (hệ thống tải nặng)

Thông lượng CPU (throughput) (lớn nhất): Đo số lượng tiến trình hồn thành trong đơn vị thời gian. Với các tiến trình dài là 1 tiến trình/ giờ, các tiến trình ngắn là 10 tiến trình/ giây

Thời gian hồn thành (nhỏ nhất): Là khoảng thời gian từ thời điểm gửi đến hệ thống tới khi q trình hồn thành. Thời gian hồn thành là tổng thời gian chờ đợi để đưa tiến trình vào bộ nhớ, trong hàng đợi sẵn sàng, trong hàng đợi thiết bị và thời gian thực hiện vào ra

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Thời gian chờ đợi (nhỏ nhất): Tổng thời gian chờ trong hàng đợi sẵn sàng (Giải thuật điều độ CPU khơng ảnh hưởng tới các tiến trình đang thực hiện hay đang đợi thiết bị vào ra)

Thời gian đáp ứng (nhỏ nhất): Khoảng thời gian từ lúc gửi câu hỏi cho tới khi câu trả lời đầu tiên được tạo ra. Tiến trình có thể tạo kết quả ra từng phần và vẫn tiếp tục tính tốn kết quả mới trong khi kếtquả cũ được gửi tới người dùng

Để đơn giản, chúng ta xem xét giả thiết các tiến trình chỉ có một chu kỳ tính tốn (ms). Thước đo so sánh các thuật toán điều phối CPU là thời gian chờ đợi trung bình.

<b>3. CÁC THUẬT TOÁN ĐIỀU PHỐI </b>

<b>3.1 First Come First Served (FCFS)</b>

Nguyên tắc

Tiến trình được quyền sử dụng CPU theo trình tự xuất hiệnTiến trình sở hữu CPU cho tới khi kết thúc hoặc chờ đợi vào raVí dụ

Đặc điểm:

Ưu điểm: Đơn giản, dễ thực hiện

<small>5</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Nhược điểm: Thời gian chờ trung bình khơng đạt cực tiểu, và biến

<b>đổi đáng kể đối với các giá trị về thời gian yêu cầu xử lý và thứ tự khác nhau của các tiến trình trong danh sách sẵn sàng. Có thể </b>

xảy ra hiện tượng tích lũy thời gian chờ, khi các tất cả các tiến trình(có thể có u cầu thời gian ngắn) phải chờ đợi một tiến trình có yêu cầu thời gian dài kết thúc xử lý.

<b>3.2 Shortest Job First (SJF)</b>

Nguyên tắc:

Đây là một trường hợp đặc biệt của giải thuật điều phối với độ ưu tiên. Mỗi tiến trình lưu trữ thời gian của chu kỳ sử dụng CPU tiếp theo.

Tiến trình có thời gian sử dụng CPU ngắn nhất sẽ sở hữu CPU. Độ ưu tiên được gán cho mỗi tiến trình là nghịch đảo của thời gian <i>p</i>

xử lý mà tiến trình yêu cầu : <i>tp = 1/t</i>. Nếu hai tiến trình có cùng thời gian sử dụng CPU, tiến trình đến trước sẽ được yêu cầu CPU trước.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i> Thảo luận: Giải thuật này cho phép đạt được thời gian chờ trung bình cực </i>

tiểu. Khó khăn thực sự của giải thuật SJF là không thể biết được thời gian yêu cầu chu kỳ CPU tiếp theo? Chỉ có thể dự đốn giá trị này theo cách tiếp cận sau:gọi là độ dài của thời gian xử lý lần thứ t là giá trị dự đoán cho lần xử lý<i>tnn,<small>n+1</small></i>

tiếp theo. Với hy vọng giá trị dự đoán sẽ gần giống với các giá trị trước đó, có thể sử dụng công thức:

t <small>n+1 = </small>a tn (1-a )t <small> + n</small>

tin quá khứ được tích lũy. Tham số a ( 0 <= a <= 1) kiểm soát trọng số của hiện tại gần hay quá khứ ảnh hưởng đến cơng thức dự đốn.

<small>7</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>3.3 Shortest Remain Time (SRT) </b>

Nguyên tắc:

Mỗi tiến trình được gán cho một độ ưu tiên tương ứng, tiến trình cóđộ ưu tiên cao nhất sẽ được chọn để cấp phát CPU đầu tiên. Các tiến trình có độ ưu tiên bằng nhau thì tiến trình nào đến trước thì sẽđược cấp trước.

Độ ưu tiên có thể được định nghĩa nội tại hay nhờ vào các yếu tố bên ngoài. Độ ưu tiên nội tại sử dụng các đại lượng có thể đo lườngđể tính tốn độ ưu tiên của tiến trình, ví dụ các giới hạn thời gian, nhu cầu bộ nhớ…Độ ưu tiên cũng có thể được gán từ bên ngoài dựa vào các tiêu chuẩn do hệ điều hành như tầm quan trọng của tiến trình, loại người sử dụng sỡ hữu tiến trình…

Giải thuật điều phối với độ ưu tiên có thể theo nguyên tắc độc quyền hay không độc quyền. Khi một tiến trình được đưa vào danh sách các tiến trình sẵn sàng, độ ưu tiên của nó được so sánh với độ ưu tiên của tiến trình hiện hành đang xử lý. Giải thuật điều phối với độ ưu tiên và không độc quyền sẽ thu hồi CPU từ tiến trình hiện hành để cấp phát cho tiến trình mới nếu độ ưu tiên của tiến trình này cao hơn tiến trình hiện hành. Một giải thuật độc quyền sẽ chỉ đơn giản chèn tiến trình mới vào danh sách sẵn sàng, và tiến trình hiện hành vẫn tiếptục xử lý hết thời gian dành cho nó.

Thảo luận: Tình trạng ‘đói CPU’ (starvation) là một vấn đề chính yếu củacác giải thuật sử dụng độ ưu tiên. Các giải thuật này có thể để các tiến trình có độ ưu tiên thấp chờ đọi CPU vơ hạn! Để ngăn cản các tiến trình có độ ưu tiên cao chiếm dụng CPU vơ thời hạn, bộ điều phối sẽ giảm dần độ ưu tiên của các tiến trình này sau mỗi ngắt đồng hồ. Nếu độ ưu tiên của tiến trình này giảm xuống thấp hơn tiến trình có độ ưu tiên cao thứ nhì, sẽ xảy ra sự chuyển đổi quyền sử dụng CPU. Q trình này gọi là sự ‘lão hóa’ tiến trình.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>3.4 Round Robin (RR) </b>

Nguyên tắc

Danh sách sẵn sàng được xử lý như một danh sách vòng, bộ điều phối lần lượt cấp phát cho từng tiến trình trong danh sách một

Tiến trình đến trước thì được cấp phát CPU trước.

Đây là một giải thuật điều phối không độc quyền: khi một tiến trìnhsử dụng CPU đến hết thời gian quantum dành cho nó, hệ điều hànhthu hồi CPU và cấp cho tiến trình kế tiếp trong danh sách. Nếu tiếntrình bị khóa hay kết thúc trước khi sử dụng hết thời gian quantum,hệ điều hành cũng lập tức cấp phát CPU cho tiến trình khác. Khi tiến trình tiêu thụ hết thời gian CPU dành cho nó mà chưa hồn tất,tiến trình được đưa trở lại vào cuối danh sách sẵn sàng để đợi đượccấp CPU trong lượt kế tiếp.

Thảo luận: Vấn đề đáng quan tâm đối với giải thuật RR là độ dài của quantum. Nếu thời lượng quantum quá bé sẽ phát sinh quá nhiều sự chuyển đổi giữa các tiến trình và khiến cho việc sử dụng CPU kém hiệu qủa. Nhưng nếu sử dụng quantum quá lớn sẽ làm tăng thời gian hồi đáp và giảm khả năng tương táccủa hệ thống. Thông thường là 10 – 100ms.

<b>3.5 Multi Level Queue (MLQ)</b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Mỗi hàng đợi sử dụng thuật toán điều độ riêng. Giữa các hàng đợi cần có sự điều phối trung dụng, độ ưu tiên cố định

Tiến trình hàng đợi có độ ưu tiên thấp chỉ được thực hiện khicác hàng đợi có độ ưu tiên cao rỗng. Tiến trình có độ ưu tiên cao trưng dụng tiến trình có độ ưu tiên thấp

Có thể gặp tình trạng starvation, giải quyết bằng cách phân chia thời gian giữa các hàng đợi: TT foreground (80%) & TTbackground (20%)

<b>3.6 Multi Level Feedback Queues (MLFQ)</b>

<small> Nguyên tắc: </small>

Chuyển dần một tiến trình từ danh sách có độ ưu tiên cao xuống danh sách có độ ưu tiên thấp hơn sau mỗi lần sử dụng CPU. Cũng vậy, một tiến trình chờ quá lâu trong các danh sách có độ ưu tiên thấp cũng có thể được chuyển dần lên các danh sách có độ ưu tiên cao hơn.

Quyết định bởi các tham số: số lượng các cấp ưu tiên, giải thuật điều phối cho từng danh sách ứng với một cấp ưu tiên, phương pháp xác định thời điểm di chuyển một tiến trình lên danh sách có

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

độ ưu tiên cao hơn, phương pháp xác định thời điểm di chuyển mộttiến trình lên danh sách có độ ưu tiên thấp hơn, …

<b>4. ĐIỀU PHỐI LUỒNG </b>

Nguyên tắc

Mỗi luồng có một mức độ ưu tiên của luồng được gán cho nó. Các luồng được tạo trong thời gian chạy ngôn ngữ chung ban đầu đượcgán quyền ưu tiên của ThreadPosystem.Normal. Các luồng được tạo bên ngoài thời gian chạy vẫn giữ mức ưu tiên mà chúng có trước khi vào mơi trường được quản lý, có thể lấy hoặc đặt mức độưu tiên của bất kỳ luồng nào với thuộc tính Thread.Pastener. Phân biệt giữa các luồng cấp người dùng và cấp nhân:

Trên các hệ điều hành hỗ trợ chúng, đó là các luồng cấp nhân - khơng phải các quy trình - đang được lập lịch bởi hệ điều hành. Các luồng cấp người dùng được quản lý bởi một thư viện luồng vàhạt nhân không biết về chúng. Để chạy trên CPU, các luồng cấp

<small>11</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

người dùng cuối cùng phải được ánh xạ tới một luồng cấp nhân liên quan, mặc dù việc ánh xạ này có thể là gián tiếp và có thể sử dụng một quy trình nhẹ (LWP).

Trên các hệ thống triển khai mơ hình nhiều - một và nhiều - nhiều,thư viện luồng lên lịch cho các luồng cấp người dùng chạy trên một LWP có sẵn, một lược đồ được gọi là process- phạm vi tranh chấp (PCS), vì sự cạnh tranh cho CPU diễn ra giữa các luồng thuộc cùng một quy trình. Để quyết định luồng nhân nào sẽ lên lịch trên CPU, nhân sử dụng phạm vi tranh chấp hệ thống (SCS). API cho phép chỉ định PCS hoặc SCS trong quá trình tạo luồng

PTHREAD_SCOPE_SYSTEM điều phối luồng sử dụng SCSPTHREAD_SCOPE_PROCESS điều phối luồng sử dụng PCS Ví dụ: hệ thống Linux và Mac OS X chỉ cho phép

<b>5. ĐIỀU PHỐI ĐA XỬ LÝ</b>

Lập lịch CPU phức tạp hơn khi có nhiều CPU: hệ thống đa bộ xử lý bao gồm nhiều bộ xử lý và chúng có thể thực thi nhiều tác vụ cùng một lúc. Các hệ thống này làm tăng thông lượng và độ tin cậy. Trên các hệ thống SMP, điều quan trọng là phải giữ cân bằng khối lượng công việc giữa tất cả các bộ xử lý để tận dụng đầy đủ các lợi ích của việc có nhiều hơn một bộ xử lý. Ngược lại, một hoặc nhiều bộ xử lý có thể khơng hoạt động trong khi các bộ xử lý khác có khối lượng cơng việc cao, cùng với hàng đợi luồng sẵn sàng đang chờ CPU. Cân bằng tải cố gắng giữ cho khối lượng công việc được phân bổ đồng đều trên tất cả các bộ xử lý trong hệ thống SMP.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Local queue

<small>13</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Ưu điểm: dễ tổ chức hoàn thiện

Nhược điểm: tồn tại VXL rảnh rỗi với hàng đợi rỗng trong khi VXL khác phải tính tốn nhiều

Vấn đề cân bằng tải

Khi một bộ xử lý truy cập vào bộ nhớ, nó sẽ dành một khoảng thờigian đáng kể để chờ dữ liệu có sẵn. Tình trạng này, được gọi là ngừng hoạt động bộ nhớ, chủ yếu xảy ra do các bộ vi xử lý hiện đại hoạt động với tốc độ nhanh hơn nhiều so với bộ nhớ. Tuy nhiên, sự cố bộ nhớ cũng có thể xảy ra do lỗi bộ nhớ đệm (truy cậpdữ liệu khơng có trong bộ nhớ đệm). Hình 5.12 minh họa một lỗi bộ nhớ. Trong trường hợp này, bộ xử lý có thể dành tới 50 phần trăm thời gian để chờ dữ liệu có sẵn từ bộ nhớ.

Bộ nhớ bị đình trệ

Để khắc phục tình trạng này, nhiều thiết kế phần cứng gần đây đã áp dụng các lõi xử lý đa luồng trong đó hai (hoặc nhiều) luồng phần cứng được gán cho mỗi lõi. Bằng cách đó, nếu một luồng phần cứng dừng lại trong khi chờ bộ nhớ, lõi có thể chuyển sang một luồng khác. Hình 5.13 mơ tả một lõi xử lý luồng kép trên đó xen kẽ việc thực thi luồng 0 và luồng 1. Từ quan điểm hệ điều hành, mỗi luồng phần cứng duy trì trạng thái kiến trúc của nó, chẳng hạn như con trỏ lệnh và tập thanh ghi, và do đó xuất hiện như một CPU logic sẵn có để chạy một luồng phần mềm. Kỹ thuật này - được gọi là đa luồng chip (CMT) - được minh họa trong Hình 5.14. Ở đây, bộ xử lý chứa bốn lõi điện toán, với mỗi lõi chứa hai luồng phần cứng. Từ quan điểm của hệ điều hành, có tám CPU logic.

</div>

×