ĐỊnh thỜi cpu (Điều phối tiến trình)

38
Võ Quang Hoàng Khang Email: [email protected] TT CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH ĐỊNH THỜI CPU (Điều phối Tiến trình)

Upload: wauna

Post on 13-Jan-2016

116 views

Category:

Documents


0 download

DESCRIPTION

TT CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH. ĐỊNH THỜI CPU (Điều phối Tiến trình). Võ Quang Hoàng Khang Email: [email protected]. Mục tiêu. Hiểu được Khái niệm cơ bản về định thời Các cấp độ định thời Mục tiêu của định thời Các giải thuật định thời. - PowerPoint PPT Presentation

TRANSCRIPT

Võ Quang Hoàng Khang

Email: [email protected]

TT CÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

ĐỊNH THỜI CPU(Điều phối Tiến trình)

ĐỊNH THỜI CPU 2TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Mục tiêu

Hiểu được Khái niệm cơ bản về định thời Các cấp độ định thời Mục tiêu của định thời Các giải thuật định thời

ĐỊNH THỜI CPU 3TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Khái niệm cơ bản về định thời

Trong môi trường hệ điều hành đa nhiệm, bộ phận điều phối tiến trình có nhiệm vụ xem xét và quyết định khi nào thì dừng tiến trình hiện tại để thu hồi processor và chuyển processor cho tiến trình khác, và khi đã có được processor thì chọn tiến trình nào trong số các tiến trình ở trạng thái ready để cấp processor cho nó.

ĐỊNH THỜI CPU 4TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Phân loại các hoạt động định thời

Định thời dài hạn (long-term scheduling): process nào được chấp nhận vào hệ thống

Định thời trung hạn (medium-term sched.): process nào được đưa vào (swap in), đưa ra khỏi (swap out) bộ nhớ chính

Định thời ngắn hạn (short-term sched.): process nào được thực thi tiếp theo

ĐỊNH THỜI CPU 5TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Định thời dài hạn

Xác định chương trình nào sẽ được đưa vào hệ thống để thực thi

Quyết định độ-đa-lập-trình (degree of multiprogramming)

Nếu càng nhiều process được đưa vào hệ thống Khả năng các process bị block có xu hướng giảm Sử dụng CPU hiệu quả hơn Mỗi process được phân chia khoảng thời gian sử

dụng CPU thấp hơn Thường có xu hướng đưa vào một tập lẫn lộn các

CPU-bound process và I/O-bound process

ĐỊNH THỜI CPU 6TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Định thời trung hạn

Quyết định về việc đưa process vào bộ nhớ chính, hay ra khỏi bộ nhớ chính phụ thuộc vào yêu cầu quản lý việc đa-lập-trình (multiprogramming) Cho phép bộ định thời dài hạn chấp nhận nhiều

process hơn số lượng process mà có tổng kích thước được chứa vừa trong bộ nhớ chính

Nhưng nếu có quá nhiều process thì sẽ làm tăng việc truy xuất đĩa, do đó cần phải lựa chọn độ-đa-lập-trình cho phù hợp

Được thực hiện bởi phần mềm quản lý bộ nhớ

ĐỊNH THỜI CPU 7TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Định thời ngắn hạn

Xác định process nào được thực thi tiếp theo, còn gọi là định thời CPU

Được kích hoạt khi có một sự kiện có thể dẫn đến khả năng chọn một process để thực thi Ngắt thời gian (clock interrupt) Ngắt ngoại vi (I/O interrupt) Lời gọi hệ thống (operating system call) Signal

…chương này sẽ tập trung vào định thời ngắn hạn…

ĐỊNH THỜI CPU 8TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Mục tiêu của định thời

Sự công bằng ( Fairness) : Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU

Tính hiệu qủa (Efficiency) : Hệ thống phải tận dụng được CPU 100% thời gian

Thời gian đáp ứng hợp lý (Response time) : Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng

Thời gian lưu lại trong hệ thống ( Turnaround Time) : Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô

ĐỊNH THỜI CPU 9TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Mục tiêu của định thời

Thông lượng tối đa (Throughput ) : Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.

Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.

ĐỊNH THỜI CPU 10TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Các giải thuật định thời

Để tổ chức điều phối tiến trình hệ điều hành sử dụng hai danh sách: Danh sách sẵn sàng (Ready list) dùng để chứa các tiến trình ở trạng thái sẵn sàng. Danh sách đợi (Waiting list) dùng để chứa các tiến trình đang đợi để được bổ sung vào danh sách sẵn sàng.

Chỉ có những tiến trình trong ready list mới được chọn để cấp processor. Các tiến trình bị chuyển về trạng thái blocked sẽ được bổ sung vào waiting list. Hệ thống chỉ có duy nhất một ready list, nhưng có thể tồn tại nhiều waiting list. Thông thường hệ điều hành thiết kế nhiều waitting list, mỗi waitting list dùng để chứa các tiến trình đang đợi được cấp phát một tài nguyên hay một sự kiện riêng biệt nào đó.

ĐỊNH THỜI CPU 11TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Các giải thuật định thời

12 3

4

5

6

7

Ready listReady list

Waitting list 1Waitting list 1

Waitting list 2Waitting list 28

Hình 2.7: Sơ đồ chuyển tiến trình vào các danh sách

Processor Processor

ĐỊNH THỜI CPU 12TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Các giải thuật định thời

Trong đó:1. Tiến trình trong hệ thống được cấp đầy đủ tài nguyên chỉ thiếu

processor.

2. Tiến trình được bộ điều phối chọn ra để cấp processor để bắt đầu xử lý.

3. Tiến trình kết thúc xử lý và trả lại processor cho hệ điều hành.

4. Tiến trình hết thời gian được quyền sử dụng processor (time-out), bị bộ điều phối tiến trình thu hồi lại processor.

5. Tiến trình bị khóa (blocked) do yêu cầu tài nguyên nhưng chưa được hệ điều hành cấp phát. Khi đó tiến trình được đưa vào danh sách các tiến trình đợi tài nguyên (waiting list 1).

ĐỊNH THỜI CPU 13TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Các giải thuật định thời

6. Tiến trình bị khóa (blocked) do đang đợi một sự kiện nào đó xảy ra. Khi đó tiến trình được bộ điều phối đưa vào danh sách các tiến trình đợi tài nguyên (waiting list 2).

7. Tài nguyên mà tiến trình yêu cầu đã được hệ điều hành cấp phát. Khi đó tiến trình được bộ điều phối chuyển sang danh sách các tiến trình ở trạng thái sẵn sang (ready list) để chờ được cấp processor để được hoạt động.

8. Sự kiện mà tiến trình chờ đã xảy ra. Khi đó tiến trình được bộ điều phối chuyển sang danh sách các tiến trình ở trạng thái sẵn sang (ready list) để chờ được cấp processor.

ĐỊNH THỜI CPU 14TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược FIFO (First In First Out):

Nguyên tắc : Processor được cấp phát cho tiến trình đầu tiên

trong danh sách sẵn sàng có yêu cầu, là tiến trình được đưa vào hệ thống sớm nhất.

FIFO được sử dụng trong điều phối độc quyền nên khi tiến trình được cấp processor nó sẽ sở hữu processor cho đến khi kết thúc xử lý hay phải đợi một thao tác vào/ra hoàn thành, khi đó tiến trình chủ động trả lại processor cho hệ thống.

ĐỊNH THỜI CPU 15TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược FIFO (First In First Out):

Ví dụ:

Nếu hệ điều hành cần cấp processor cho 3 tiến trình P1, P2, P3, với thời điểm vào ready list và khoảng thời gian mỗi tiến trình cần processor được mô tả trong bảng sau:

Tiến trình thời điểm vào t/g xử lý

P1 0 24

P2 1 3

P3 2 3

Thì thứ tự cấp processor cho các tiến trình diễn ra như sau:

Tiến trình: P1 P2 P3

Thời điểm: 0 24 27

Vậy thời gian chờ của tiến trình P1 là 0, của P2 là 23 (24 - 1), của P3 là 25 (24 + 3 - 2). Và thời gian chờ đợi trung bình của các tiến trình là:

(0 + 23 + 25)/3 = 16.

ĐỊNH THỜI CPU 16TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Ví dụ thực tế

Việc phục vụ khách trong nhà hàng Thực khách sẽ đến và gọi món ăn cho mình Mỗi món ăn cần thời gian chuẩn bị khác nhau

Mục tiêu: Giảm thời gian đợi trung bình của các thực khách

Cách làm nào sẽ phù hợp? Thông thường các nhà hàng sẽ phục vụ theo kiểu

FIFO (!)

ĐỊNH THỜI CPU 17TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược FIFO (First In First Out):

Như vậy FIFO tồn tại một số hạn chế: Thứ nhất, có thời gian chờ đợi trung bình lớn nên

không phù hợp với các hệ thống chia sẻ thời gian. Thứ hai, khả năng tương tác kém khi nó được áp

dụng trên các hệ thống uniprocessor. Thứ ba, nếu các tiến trình ở đầu ready list cần

nhiều thời gian của processor thì các tiến trình ở cuối ready list sẽ phải chờ lâu mới được cấp processor.

ĐỊNH THỜI CPU 18TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược phân phối xoay vòng (RR: Round Robin):

Ready list được thiết kết theo dạng danh sách nối vòng. Tiến trình được bộ điều phối chọn để cấp processor cũng là tiến trình ở đầu ready list, nhưng sau một khoảng thời gian nhất định nào đó thì bộ điều phối lại thu hồi lại processor của tiến trình vừa được cấp processor và chuyển processor cho tiến trình kế tiếp (bây giờ đã trở thành tiến trình đầu tiên) trong ready list, tiến trình vừa bị thu hồi processor được đưa vào lại cuối ready list. Rõ ràng đây là chiến lược điều phối không độc quyền.

ĐỊNH THỜI CPU 19TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược phân phối xoay vòng (RR: Round Robin):

Khoảng khoản thời gian mà mỗi tiến trình được sở hữu processor để hoạt động là bằng nhau, và thường được gọi là Quantum.

ĐỊNH THỜI CPU 20TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược phân phối xoay vòng (RR: Round Robin): Ví dụ: Nếu hệ điều hành cần cấp processor cho 3 tiến trình P1, P2, P3 với thời

điểm vào ready list và khoảng thời gian mỗi tiến trình cần processor được mô tả trong bảng sau:

Tiến trình thời điểm vào t/g xử lý

P1 0 24

P2 1 3

P3 2 3Quantum = 4

Thì thứ tự cấp processor cho các tiến trình lần lượt là:

Tiến trình: P1 P2 P3 P1 P1 P1 P1 P1

Thời điểm: 0 4 7 10 14 18 22 26

Vậy thời gian chờ đợi trung bình sẽ là: (0 + 6 + 3 + 5)/3 = 4.46

ĐỊNH THỜI CPU 21TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược phân phối xoay vòng (RR: Round Robin):

Như vậy RR có thời gian chờ đợi trung bình nhỏ hơn so với FIFO

Trong chiến lược này, vấn đề đặt ra đối với công tác thiết kế là: nên chon quantum bằng bao nhiêu là thích hợp, nếu quantum nhỏ thì hệ thống phải tốn nhiều thời gian cho việc cập nhật ready list và chuyển trạng thái tiến trình, dẫn đến vi phạm mục tiêu: khai thác tối đa thời gian xử lý của processor. Nếu quantum lớn thì thời gian chờ đợi trung bình và thời gian hồi đáp sẽ tăng lên, dẫn đến tính tương tác của hệ thống bị giảm xuống.

ĐỊNH THỜI CPU 22TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược theo độ ưu tiên:

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 processor đầu tiên

Độ ư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

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.

ĐỊNH THỜI CPU 23TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược theo độ ưu tiê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ếp tục xử lý hết thời gian dành cho nó.

ĐỊNH THỜI CPU 24TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược theo độ ưu tiên:

Ví dụ: Nếu hệ điều hành cần cấp processor cho 3 tiến trình P1, P2, P3 với độ ưu tiên và khoảng thời gian mỗi tiến trình cần processor được mô tả trong bảng sau:

Tiến trình độ ưu tiên thời gian xử lý

P1 3 24

P2 1 3

P3 2 3

Thì thứ tự cấp processor (theo nguyên tắc độc quyền) cho các tiến trình lần lượt là:

Tiến trình P2 P3 P1

Thời điểm 0 4 7

ĐỊNH THỜI CPU 25TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược theo độ ưu tiên:

Chiến lược này có thể dẫn đến hậu quả: các tiến trình có độ ưu tiên thấp sẽ rơi vào tình trạng chờ đợi vô hạn. Để khắc phục điều này hệ điều hành thường hạ độ ưu tiên của các tiến trình có độ ưu tiên cao sau mỗi lần nó được cấp processor.

ĐỊNH THỜI CPU 26TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lươc SJF (Shortest Job First: công việc ngắn nhất):

Đây là trường hợp đặc biệt của chiến lược theo độ ưu tiên. Trong chiến lược này độ ưu tiên P của mỗi tiến trình là 1/t, với t là khoảng thời gian mà tiến trình cần processor. Bộ điều phối sẽ chọn tiến trình có P lớn để cấp processor, tức là ưu tiên cho những tiến trình có thời gian xử lý (thời gian cần processor) nhỏ.

Chiến lược này có thể có thời gian chờ đợi trung bình đạt cực tiểu. Nhưng hệ điều hành khó có thể đoán được thời gian xử lý mà tiến trình yêu cầu.

ĐỊNH THỜI CPU 27TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lươc SJF (Shortest Job First: công việc ngắn nhất):

ĐỊNH THỜI CPU 28TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

Hệ điều hành phân lớp các tiến trình theo độ ưu tiên của chúng để có cách thức điều phối thích hợp cho từng lớp tiến trình.

Mỗi cấp độ ưu tiên có một ready list riêng. Bộ điều phối dùng chiến lược điều phối thích hợp

cho từng realy list. Hệ điều hành cũng phải thiết kế một cơ chế thích

hợp để điều phối tiến trình giữa các lớp.

ĐỊNH THỜI CPU 29TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

ĐỊNH THỜI CPU 30TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

Trong chiến lược này hệ điều hành sử dụng độ ưu tiên tĩnh, và điều phối không độc quyền, do đó một tiến trình thuộc ready list ở cấp ưu tiên i sẽ chỉ được cấp phát processor khi trong ready list ở cấp ưu tiên j (j > i) không còn một tiến trình nào.

Các tiến trình ở ready list có độ ưu tiên thấp sẽ phải chờ đợi processor trong một khoảng thời gian dài, có thể là vô hạn.

Để khắc phục điều này hệ điều hành xây dựng chiến lược điều phối: Nhiều mức độ ưu tiên xoay vòng.

ĐỊNH THỜI CPU 31TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

Hệ điều hành chuyển dần một tiến trình ở ready list có độ ưu tiên cao xuống ready list có độ ưu tiên thấp hơn sau mỗi lần sử dụng procesor, và ngược lại một tiến trình ở lâu trong ready list có độ ưu tiên thấp thì sẽ được chuyển dần lên ready list có độ ưu tiên cao hơn.

ĐỊNH THỜI CPU 32TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

Khi xây dựng một giải thuật điều phối nhiều cấp ưu tiên và xoay vòng cần quyếtđịnh 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ó độ ưu tiên cao hơ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ó độ ưu tiên thấp hơn. Phương pháp sử dụng để xác định một tiến trình mới

được đưa vào hệ thống sẽ thuộc danh sách ứng với độ tiên nào.

ĐỊNH THỜI CPU 33TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược nhiều cấp độ ưu tiên

ĐỊNH THỜI CPU 34TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Chiến lược điều phối Xổ số (Lottery

Nguyên tắc : Ý tưởng chính của giải thuật là phát hành một số vé số và phân phối cho các tiến trình trong hệ thống. Khi đến thời điểm ra quyết định điều phối, sẽ tiến hành chọn 1 vé "trúng giải", tiến trình nào sỡ hữu vé này sẽ được nhận CPU

ĐỊNH THỜI CPU 35TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Bài tập

ĐỊNH THỜI CPU 36TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Bài tập

ĐỊNH THỜI CPU 37TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

Bài tập

ĐỊNH THỜI CPU 38TTCÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

End Of Chapter 3