Bài giảng Định thời cpu (điều phối tiến trình)
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
38 trang |
Chia sẻ: hao_hao | Lượt xem: 6654 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Bài giảng Định thời cpu (điều phối tiến trình), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Võ Quang Hoàng Khang
Email: khangvqh@yahoo.com
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)
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 2
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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 3
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ó.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 4
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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 5
Đị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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 6
Đị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ớ
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 7
Đị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…
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 8
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ô
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 9
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 đó.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 10
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 đó.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 11
Các giải thuật định thời
1 2 3
4
5
6
7
Ready list
Waitting list 1
Waitting list 28
Hình 2.7: Sơ đồ chuyển tiến trình vào các danh sách
Processor
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 12
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).
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 13
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 14
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 15
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 16
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 (!)
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 17
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 18
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 19
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 20
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 3
Quantum = 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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 21
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 22
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 23
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ó.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 24
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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 25
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 26
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 27
Chiến lươc SJF (Shortest Job First:
công việc ngắn nhất):
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 28
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 29
Chiến lược nhiều cấp độ ưu tiên
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 30
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 31
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 32
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.
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 33
Chiến lược nhiều cấp độ ưu tiên
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 34
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
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 35
Bài tập
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 36
Bài tập
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 37
Bài tập
TTCÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
ĐỊNH THỜI CPU 38
End Of Chapter 3
Các file đính kèm theo tài liệu này:
- ch03_dinhthoicpu_8932.pdf