Tải bản đầy đủ (.doc) (31 trang)

Tiểu luận môn điện toán lưới và đám mây Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây

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 (1.2 MB, 31 trang )

- 1
-
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ
ĐÁM MÂY
Đề tài: Song song hóa thuật toán Dijkstra trên nền tảng điện
toán đám mây
Học viên thực hiện: Nguyễn Minh Luân
Mã số học viên: CH1301024
GVHD: PGS.TS. Nguyễn Phi Khứ
Tp.HCM tháng 06-2014
- 2
-
MỤC
LỤC
2
- 3
-
DANH MỤC HÌNH VẼ 3
MỞ ĐẦU 4
Chương 1. Thuật toán Dijkstra và song song hóa Dijkstra 5
1.Giới thiệu 5
2.Thuật toán tuần tự Dijkstra 5
3.Thuật toán song song Dijkstra 7

Chương 2. Tổng quan về điện toán đám mây 10
1. Định nghĩa 10
2. Quá trình phát triển 10
3. Những đặc điểm của điện toán đám mây 11


4. Các mô hình dịch vụ 12
5. Các mô hình triển khai 14
6. Các vấn đề ảo hóa trong môi trường điện toán đám mây 16
7. Nền tảng điện toán đám mây 18
Chương 3. Song song hóa thuật toán Dijkstra trên nền tảng điện toán
đám mây
1.Giới thiệu Windows Azure Platform
20
20
2. Ứng dụng Windows Azure Platform xử lý song song 21
3. Triển khai Windows Azure trên Private cloud của VNPT Tiền Giang 22
4. Thực nghiệm thuật toán Dijkstra song song trên Private cloud của VNPT
Tiền Giang
23
KẾT LUẬN 28
TÀI LIỆU THAM KHẢO 29
- 4
-
DANH MỤC HÌNH VẼ
Hình 1: Ghi nhớ kết quả tính được trên đồ thị ….……………………………… 6
Hình 2: Sơ đồ định nghĩa điện toán đám mây ….……………………………… 10
Hình 3: Mô hình dịch vụ điện toán đám mây ….…………………………….… 12
Hình 4: Các mô hình triển khai điện toán đám mây ………………………….… 14
Hình 5: Kiến trúc Host-based………………………….………………………….17
Hình 6: Kiến trúc Hyperisor-based…………………….………………………….18
Hình 7: Tương tác khách hàng/doanh nghiệp với Windows Azure………………20
Hình 8: Mô tả một khung ứng dụng song song trên nền Windows Azure……… 21
Hình 9: Mô hình ứng dụng song song kết nối từ UD cục bộ đến Worker Role… 22
Hình 10: Development Fabric cung cấp môi trường giả lập Windows Azure……23
- 5

-
MỞ ĐẦU
Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong số
những bài toán tối ưu trên đồ thị được ứng dụng rộng rãi trong đời sống xã hội như lĩnh
vực khoa học kỹ thuật, y tế, sinh vật, đặc biệt trong mạng giao thông vận tải (số đỉnh của
đồ thị lên đến hàng chục ngàn và phải xử lý trong một thời gian rất ngắn). Bài toán được đề
xuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được gọi
là thuật toán Dijkstra. Thuật toán có độ phức tạp là O(n
2
), với độ phức tạp tính toán
cao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này với tính
chất tuần tự của giải thuật sẽ gặp phải khó khăn về thời gian thực hiện chương trình, tốc
độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn,… kích thước của
bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song song hóa giải
thuật để tăng t

c độ và hiệu quả của giải thuật.
Bên cạnh đó, sự phát triển như vũ bão của “điện toán đám mây” đã hỗ trợ rất tốt cho
việc triển khai các phần mềm ứng dụng, bài toán có kích cỡ lớn. Trong phạm vi của tiểu
luận, em xin trình bày nội dung “Song song hóa thuật toán Dijkstra trên nền tảng điện
toán đám mây”.Bao gồm:
Chương 1: Thuật toán Dijkstra và song song hóa Dijkstra
Chương 2: Tổng quan về điện toán đám mây
Chương 3: Thực nghiệm song song hóa thuật toán Dijkstra trên nền tảng điện
toán đám mây
Kết luận: Định hướng phát triển kết quả nghiên
cứu.
- 6
-
CHƯƠNG 1. THUẬT TOÁN DIJKSTRA VÀ SONG SONG HÓA

DIJKSTRA
1. Giới thiệu
Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong số
những bài toán tối ưu trên đồ thị và được ứng dụng rộng rãi trong thực tế. Bài toán được
đề xuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được
gọi là thuật toán Dijkstra. Thuật toán có độ phức tạp là O(n
2
), với độ phức tạp tính
toán cao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này
với tính chất tuần tự của giải thuật sẽ gặp phải những vấn đề về thời gian thực hiện
chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn,
… kích thước của bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song
song hóa giải thuật để tăng t

c độ và hiệu quả của giải thuật.
Thuật toán đã giải quyết trên đồ thị với thời gian chạy khá lâu trên đồ thị có số
đỉnh lớn và dễ dàng tìm thấy nhiều ứng dụng trong các lĩnh vực khoa học kỹ thuật, y tế,
sinh vật và đặc biệt trong mạng giao thông vận tải. Tuy nhiên, có rất nhiều ứng dụng cần
xử lý nhanh trên đồ thị có số đỉnh lớn thì thuật toán tuần tự không đáp ứng được. Vì vậy
phải chia đồ thị cho nhiều bộ xử lý đồng thời tham gia tính toán, dẫn đến thuật toán
song song trên đa bộ xử lý, điều này thuật toán tuần tự chạy trên một bộ xử lý không
thể thực hiện được.
Hiện nay, mô hình xử lý song song đã và đang phát triển mạnh mẽ giải quyết
những vấn đề bế tắc mà mô hình xử lý tuần tự gặp phải như: vấn đề thời gian thực hiện
chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ và xử lý dữ liệu với quy mô lớn.
Vì vậy, “Song song hóa thuật toán Dijkstra tìm đường đi ngắn nhất từ một đỉnh
đến tất cả các đỉnh” trên đồ thị với m bộ xử lý nhằm khắc phục được các vấn đề tồn tại
đã nêu ở trên.
2. Thuật toán tuần tự Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả
các

đỉnh
Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0, ∀
(
i
,
j
)


E, đỉnh nguồn a.
Đầu ra: Chiều dài đường đi ngắn nhất và đường đi ngắn nhất từ đỉnh a đến tất
cả các đỉnh trên đồ thị.
+ Phương pháp:
Bước 1. Gán L(a):=0. Với mọi đỉnh x ≠ a gán L(x) = ∞. Đặt T:=V.
Bước 2. Chọn v ∈ T, v chưa xét sao cho L(v) có giá trị nhỏ nhất. Đặt T:=T\{v},
đánh dấu đỉnh v đã xét.
Bước 3. Nếu T=
φ
, kết thúc. L(z),  ∀ z

V, z≠a là chiều dài đường đi ngắn
nhất từ a đến z. Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất.
- 7
-
(L(z) không thay đổi, nếu L(z)= ∞ thì không tồn tại đường đi_(Not Path)).
Ngược lại sang bước 4.
Bước 4. Với mỗi x ∈ T kề v gán L(x):= min{L(x), L(v)+w(v,x)}. Nếu L(x) thay
đổi thì ghi nhớ đỉnh v cạnh đỉnh x bằng mảng truoc[] (với truoc[] của đỉnh 1= 0) để sau
này xây dựng đường đi ngắn nhất.
Quay về bước 2.

Độ phức tạp của thuật toán Dijkstra là O(n
2
).
Ví dụ: Cho đồ thị được biểu diễn như sau, sau khi thuật toán thực hiện xong thì kết
quả được ghi nhớ lên các nhãn đỉnh tương ứng
Mảng truoc[]=0 1 1 2 3 3 6 4 8 11 7 11 (Mảng ghi nhớ truoc [] dùng để tìm
đường đi, với truoc[1]=0)
Mảng độ dài L = 0 7 5 13 15 15 17 18 38 39 24 29
Vậy kết quả từ đỉnh 1 đến tất cả các đỉnh là:
- 8
-
đến 2=7 (12)
đến 3=5 (13)
đến 4=13 (124) đến 5=15 (135) đến 6=15 (136)
đến 7=17 (1367) đến 8=18 (1248) đến 9=38 (1248)
đến 10=39 (13671110)
đến 11= 24 (136711)
đến 12=29 (13671112)
Với các bước thực hiện tuần tự như trên, giải thuật có độ phức tạp là O(n
2
) khi n
tăng lên quá lớn (khoảng vài chục ngàn đỉnh) thì thời gian xử lý sẽ chậm đi rất nhiều,
điều này không đáp ứng được những ứng dụng cho giải thuật Dijkstra đòi hỏi chạy với
thời gian nhanh hơn. Ngoài ra, mô hình xử lý song song cũng như các hệ thống xử
lý song song được phát triển mạnh mẽ trên thế giới và cả ở Việt Nam. Xử lý song song
tốn ít thời gian hơn và thời gian là khác nhau tùy theo hệ thống có bao nhiêu bộ xử lý
và chỉ ra được trong tính toán song song thì thời gian thực hiện của bài toán phụ thuộc
vào thời gian truyền dữ liệu trong hệ thống cộng với thời gian thực hiện tính toán. Vì
vậy, song song hóa thuật toán Dijkstra là rất cần thiết trong thực tiễn.
3. Thuật toán song song Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến

tất cả các đỉnh
Ý tưởng: Chia đồ thị ban đầu cho m bộ xử lý (P
0
, P
1
,…,P
m-1
), cùng tính toán
đồng thời, mỗi bộ BXL đảm nhận n/m đỉnh của đồ thị (n là số đỉnh trên đồ thị, m là
số BXL ) và ma trận trọng số n/m cột n dòng (nếu n chia hết cho m). Ngược lại trường
hợp không chia hết thì ta sẽ thực hiện theo công thức (*) ở bước 1 trong thuật toán
song song. Với m BXL, mỗi bộ xử lý sẽ thực hiện tính min L(x) với x là những đỉnh
kề với đỉnh mà nó đang nhận để xét. Sau đó BXL trung tâm (P
0
) sẽ tìm min của các
L(x) trên các BXL để tiếp tục gửi đỉnh x lên các BXL để thực hiện.
Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0 ∀
(
i
,
j
)


E, đỉnh nguồn a, 1
bộ
xử lý chính và m-1 bộ xử lý phụ.
Đầu ra: Chiều dài đường đi ngắn nhất là đường đi ngắn nhất từ đỉnh a đến tất cả
các đỉnh trên đồ thị.
Phương pháp:

Bước 1. Bộ xử lý chính thực hiện
- Gán L(a):=0. Với mọi đỉnh x ≠ a, x thuộc bộ xử lý chính gán L(x)= ∞.
- Chia đều số đỉnh và ma trận trọng số để gửi cho m BXL.
Cách chia đều như sau: Giả sử ta có n đỉnh và m bộ xử lý P
0
,P
2
,…,P
m-1
.
Gọi n
i
là số đỉnh của bộ xử lý P
i
(i=0,…,m-1).
- 9
-
- Nếu n chia hết cho m thì
For i=0 to m-1
do
n
i
= n /
m
- Nếu n không chia hết cho m thì
For i=0 to m-2
do
- Ta xây dựng T
i
(i=0,…,m-1) là tập đỉnh mà bộ xử lý P

i
sẽ nhận như sau:
N=0; kt là số phần tử mà các bộ xử lý nhận
- Ta xây dựng A
i
(i=0,…,m-1) là ma trận trọng số mà bộ xử lý P
i
sẽ nhận như
sau:
Gọi A là ma trận trọng số của đồ thị đầu vào thì A=(w
ij
)
nxn, suy ra:
được bộ xử lý Pi (i=0,…,m-1) nhận.
- Gửi T
i
(i=1, ,m-1), A
i
(i=1, ,m-1), L(x), (i=1, ,m-1), cho m-1 BXL
phụ
P
1
,P
2
,…,P
m-1.
Bước 2. m bộ xử l
ý
thực hiện
- Trong m bộ xử lý (trừ bộ xử lý chính), gán L(x

i
)= ∞, sao cho x
i
thuộc T
i
- 10
-
(i=1,…,m-1).
- Trên m bộ xử lý tìm L
i
(x
i
)= min{L(x
i
),

(i=0,…,m-1), x
i
chưa xét}.
- Các bộ xử lý phụ gửi L
i
(x
i
) về bộ xử lý chính.
Bước 3. Bộ xử lý chính thực hiện
- Bộ xử lý chính tìm l(v)= min{L
i
(x
i
), i=0, ,m-1}trên m bộ xử lý.

- Chuyển đỉnh v lên m bộ xử lý để thực hiện các bước tiếp theo.
Bước 4. m bộ xử lý thực hiện
- Trên m BXL kiểm tra nếu

, T
i
=T
i
\{v} (i=0,…,m-1), đánh dấu đỉnh v
đã xét.
- Kiểm tra nếu T
i
(i=0, ,m-1) = , thì bộ xử lý thứ i kết thúc, sang bước 6.
- Ngược lại, sang bước 5.
Bước 5. m bộ xử lý thực hiện
for x ∈ T
i
(i=0,…,m-1) kề với v
if
L(
x
)
>
L(
v
)
+w
(
v
,

x)
{ L(x) := L[v] + w(v,x)
Truoc[x]=v // ghi nhớ đỉnh v vào x}
quay lại bước 2
Bước 6. Bộ xử lý chính thực hiện.
Nếu tất cả m-1 bộ xử lý phụ kết thúc thì bộ xử lý chính thực hiện: nhận kết quả từ
các bộ xử lý phụ và kết luận chiều dài đường đi ngắn nhất từ a đến tất cả các đỉnh và
đường đi ngắn nhất qua các đỉnh đã ghi nhớ. Đỉnh nào có nhãn không thay đổi (bằng
∞) thì không tồn tại đường đi_(Not Path). Hệ thống kết thúc.
- 11
-
CHƯƠNG 2. TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
1. Định nghĩa
Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặt
kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng (platform) và các
dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được phân phối theo nhu cầu cho
các khách hàng bên ngoài thông qua Internet.
Điện toán đám mây là một hệ thống, nơi mà các nguồn tài nguyên của một trung
tâm dữ liệu được chia sẻ sử dụng công nghệ ảo hóa, mà còn cung cấp co giãn, theo yêu
cầu và dịch vụ ngay lập tức cho khách hàng vàchi phí sử dụng của khách hàng như hóa
đơn tiện ích, được mô tả sơ đồ sau:
Hình 2: Sơ đồ định nghĩa điện toán đám mây.
2. Quá trình phát triển
Thuật ngữ "đám mây" đã được sử dụng như là một phép ẩn dụ cho mạng Internet.
Việc sử dụng này ban đầu được bắt nguồn từ mô tả phổ biến của nó trong sơ đồ mạng như
phác thảo của một đám mây, được sử dụng để đại diện cho việc vận chuyển dữ liệu giữa
các nhà cung cấp dịch vụ (chủ sở hữu các đám mây) đến một vị trí thiết bị đầu cuối ở phía
bên kia của đám mây. Khái niệm này trở lại vào đầu năm 1961, khi Giáo sư John
McCarthy đề nghị rằng công nghệ máy tính phân hưởng thời gian (time-sharing) có thể
dẫn tới một tương lai nơi mà năng lực tính toán và thậm chí cả các ứng dụng cụ thể có thể

được bán thông qua một mô hình kinh doanh kiểu tiện ích (Utility-type). Ý tưởng này đã
trở nên rất phổ biến vào cuối những năm 1960, nhưng giữa những năm 1970 ý tưởng phai
nhạt dần khi nó trở nên rõ ràng rằng các công nghệ liên quan đến công nghệ thông tin thời
điểm đó đã không thể duy trì một mô hình điện toán tương lai. Tuy nhiên, kể từ khi bước
sang thiên niên kỷ, khái niệm này đã được hồi sinh. Và trong thời gian này, thuật ngữ
điện toán đám mây bắt đầu xuất hiện trở lại trong giới công nghệvà đã có những sự phát
triển vượt bậc và cực kỳ nhanh chóng [3].
Sự bùng nổ nhanh chóng của khoa học kỹ thuật, đặc biệt là ngành công nghiệp kỹ
thuật cao với sự ra mắt của mạng xã hội Facebook vào năm 2004, Amazon ra đời năm
- 12
-
2006, Apple cho ra đời IPhone năm 2007, Google Apps ra mắt năm 2008 và Microsoft
Azure vào năm 2009 đã đánh thức được tiềm năng của điện toán đám mây [4].Các giải
pháp đám mây của HP vào năm 2010, giải pháp SmartCloud của IBM năm 2011, năm
2012 và 2013 thị trường Smart Phone của Samsung và Apple phát triển mạnh mẽ.
3. Những đặc điểm của điện toán đám mây
Các đặc điểm của môi trường điện toán đám mây trình bày sau, có thể không là tất
cả, tham khảo từ nhiều nguồn tài liệu khác nhau,nhìn chung các loại dịch vụ được cung
cấp trên điện toán đám mây có những đặc điểm như sau:
- Tính co giãn và khả năng mở rộng (Elasticity and scalability): Điện toán đám
mây cung cấp khả năng mở rộng và co giãn nguồn tài nguyên theo yêu cầu dịch vụ cụ
thể. Ví dụ, người dùng có thể cần một số lượng lớn các tài nguyên máy chủ trong thời
gian thực hiện một nhiệm vụ cụ thể. Sau đó người dùng có thể giải phóng các tài nguyên
máy chủ sau khi hoàn thành nhiệm vụ.Đây là đặc điểm nổi bật của môi trường điện toán
đám mây, nó giúpcho nhà cung cấp sử dụng tài nguyên hiệu quả, tận dụng triệt để tài
nguyên dư thừa, phục vụ được nhiều khách hàng. Đối với người sử dụng dịch vụ, khả
năng co giãn giúp họ giảm chi phí do chỉ trả phí cho những tài nguyên thực sự dùng.
- Pay-per-use: Người dùng trả tiền cho dịch vụ điện toán đám mây chỉ khi họ sử
dụng chúng hoặc là trong thời gian ngắn (với thời gian sử dụngbộ nhớ xử lý) hoặc là
trong một thời gian dài hơn (dịch vụ lưu trữ).

- Theo yêu cầu (On demand): Người sử dụng gọi các dịch vụ điện toán đám mây
chỉ khi cần chúng, và những người sử dụng không phải là các bộ phận thường trực của cơ
sở hạ tầng CNTT - đây là một lợi thế quan trọng của người sử dụng để sử dụng điện toán
đám mây,điều này trái ngược với các dịch vụ CNTT nội bộ truyền thống. Với các dịch vụ
điện toán đám mây không cần phải có nguồn tài nguyên chuyên dụng chờ đợi sẵn để được
sử dụng như là trường hợp với các dịch vụ nội bộ truyền thống.
- Khả năng phục hồi (Resiliency): Khả năng phục hồi nhanh của một đám mây
cung cấp dịch vụcó thể hoàn toàn cô lập khi lỗi xảy ravới máy chủ hay các nguồn tài
nguyên lưu trữ của người sử dụng. Công việc này được thực hiện bằng cách di chuyển
(migrate) đến một nguồn tài nguyên vật lý khác nhau trong điện toán đám mây mà không
có sự nhận biếthay can thiệp của người sử dụng.
- Nhiều người thuê (Multi-tenancy): Các nhà cung cấp dịch vụ điện toán đám mây
lưu trữ các dịch vụ cho nhiều người sử dụng trong cùng một cơ sở hạ tầng – tài nguyên
trong hệ thống được chia sẻ cho nhiều người sử dụng.
- 13
-
- Tính sẵn sàng cao: Đặc điểm này liên quan đến xem xét sự cân bằng giữa việc
phục hồi hệ thống và chi phí. Ở đây, các nhà cung cấp điện toán đám mây có thể di
chuyển khối lượng công việc qua các máy chủ- di chuyển (migrage) cả hai trung tâm dữ
liệu nội bộ và các trung tâm dữ liệu (không cùng khu vực địa lý). Kỹ thuật này cần được
xem xét tính hiệu quả và chi phí phải bỏ ra, ví dụ: di chuyển dữ liệu ở trung tâm dữ liệu
trong nước, hay ra nước ngoài, băng thông đáp ứng khối lượng công việc, thời gian phục
hồi và giá trị tài sản dữ liệu.
4. Các mô hình dịch vụ
Hình 3: Mô hình dịch vụ điện toán đám mây.
4.1. Cơ sở hạ tầng như một dịch vụ (IaaS)
IaaS chứa toàn bộ các tài nguyên hạ tầng trang thiết bị và phần cứng, các tài nguyên
ảo hóa (nếu có), phân phối các kết nối vật lý và logic cho các tài nguyên này, cung cấp
một tập hợp các APIs cho phép quản lý và tạo nên sự tương tác với hạ tầng của người sử
dụng. Nó là nền tảng của tất cả các dịch vụ đám mây, PaaS và SaaS được xây lần lượt

trên nó, thừa hưởng mọi rủi ro an ninh của nó .
Trong mô hình dịch vụ IaaS, các nhà cung cấp dịch vụ cung cấp máy tính thực hoặc
ảovà các nguồn tài nguyên khác. Trình quản lí máy ảo (hypervisor) bên trong hệ thống
đám mây có thể cung cấpnhiều máy ảo và khả năng mở rộng hoặc thu hẹp các nguồntài
nguyên theo yêu cầu khác nhau của khách hàng. IaaS thường cung cấp các nguồn tài
nguyên bổ sung như cácmáy ảo,lưu trữ, tường lửa, cân bằng tải,các địa chỉ IP, các mạng
nội bộ ảo (VLAN), Đối với các kết nối mạng diện rộng, khách hàng có thể sử dụng
thông qua Internet hoặc các carrier cloud (dành cho các mạng riêng ảo - VPN).
- 14
-
Để triển khai các ứng dụng, người dùng điện toán đám mây cài đặt hệ điều hành và
phần mềm ứng dụng của họ trên cơ sở hạ tầng đám mây. Trong mô hình này, người dùng
sẽ phải vá lỗi, bảo trì hệ thống và phần mềm ứng dụng của họ. Các nhà cung cấp dịch vụ
điện toán đám mây thường tính phí dịch vụ IaaS trên cơ sở điện toán thành phần: chi phí
phản ánh số lượng nguồn tài nguyên được phân bổ và sử dụng.
Những nhà cung cấp IaaS điển hình là: Amazon EC2, Google Compute Engine, HP
Cloud, Joyent, Linode, NaviSite, Rackspace, and ReadySpace Cloud Services.
4.2. Nền tảng như một dịch vụ (PaaS)
Trong mô hình PaaS, những nhà cung cấp dịch vụ đám mây cung cấp nền tảng bao
gồm hệ điều hành, môi trường thực hiện ngôn ngữ lập trình, cơ sở dữ liệu và máy chủ
web. Nhà phát triển ứng dụng có thể phát triển và chạy các giải pháp phần mềm của họ
trên một nền tảng điện toán đám mây mà không cần tốn chi phí và sự phức tạp của việc
mua và quản lý phần cứng cơ bản. Với PaaS, máy tính cơ bản và các nguồn tài nguyên
lưu trữ tự động và thay đổi quy mô để phù hợp với nhu cầu ứng dụng, qua đó người dùng
không phải tự phân bổ nguồn tài nguyên.
Những nhà cung cấp PaaS điển hình là: AWS Elastic Beanstalk, Cloud Foundry,
Heroku, Force.com, EngineYard, Mendix, OpenShift, Google App Engine, AppScale,
Windows Azure Cloud Services, OrangeScape and Jelastic.
4.3. Phần mềm như một dịch vụ (SaaS)
Trong mô hình SaaS, nhà cung cấp dịch vụ đám mây cài đặt và vận hành phần mềm

ứng dụng bên trong đám mây và những người sử dụng điện toán đám mây truy cập các
phần mềm từ các khách hàng của dịch vụ đám mây. Những người sử dụng điện toán đám
mây không quản lý cơ sở hạ tầng đám mây và nền tảng mà trên đó các ứng dụng đang
chạy, việc này giúp loại bỏ việc cài đặt và chạy các ứng dụng trên máy tính của người
dùng, đơn giản hóa việc bảo trì và hỗ trợ. Điều làm cho một ứng dụng điện toán đám mây
khác biệt đối với các ứng dụng khác là khả năng mở rộng của nó. Điều này có thể đạt
được bằng các tác vụ nhân bản (cloning) lên nhiều máy ảo,các load balancer phân phối
công việc trên các thiết lập của máy ảo,quá trình này hoàn toàn vô hình với người dùng,
họ chỉ nhìn thấy một điểm truy cập duy nhất. Để đáp ứngsố lượng lớn người dùng, các
ứng dụng đám mây có thể hoạt động đa nhiệm, có nghĩa là bất kỳ máy chủ nào cũng đều
phục vụ nhiều hơn một tổ chức sử dụng. Việc tham chiếu tới các loại phần mềm ứng dụng
đám mây đã trở nên phổ biến với một quy tắc đặt tên: desktop như một dịch vụ, quá trình
kinh doanh như một dịch vụ, môi trường kiểm tra như một dịch vụ, giao tiếp như một
dịch vụ.
- 15
-
Mô hình định giá cho các ứng dụng SaaS thường là một khoản phí cố định hàng
tháng hoặc hàng năm cho mỗi người dùng, qua đó giá có khả năng thay đổi nếu người
dùng thêm vào hoặc gỡ bỏ bất cứ thành phần nào.
Những nhà cung cấp SaaS điển hình là: Google Apps, Microsoft Office 365,
Petrosoft, Onlive, GT Nexus, Marketo, Casengo, TradeCard, Salesforce and
CallidusCloud.
4.4. Mạng lưới như một dịch vụ (NaaS)
Một loại dịch vụ đám mây có khả năng cung cấp cho người dùng dịch vụ đám mây
sử dụng mạng, dịch vụ kết nối truyền tải và dịch vụ kết nối mạng giữa các đám mây.
NaaS liên quan đến việc tối ưu hóa phân bổ nguồn tài nguyên bằng cách xem xét tài
nguyên mạng và máy tính như một thể thống nhất.
Dịch vụ NaaS truyền thống bao gồm mạng riêng ảo (VPN) mở rộng và linh hoạt,
cũng như băng thông theo yêu cầu. Cụ thể hóa thì khái niệm NaaS cũng bao gồm việc
cung cấp một dịch vụ mạng ảo từ các chủ sở hữu cơ sở hạ tầng mạng lưới cho một bên

thứ ba
5. Các mô hình triển khai:
Hình 4: Các mô hình triển khai điện toán đámmây.
5.1. Đám mây công cộng (Public cloud)
Các ứng dụng, lưu trữ và các tài nguyên khác của đám mây công cộng được thực
hiện cho người dùng bởi một nhà cung cấp dịch vụ sẵn có. Những dịch vụ này miễn phí
hoặc được cung cấp trên một mô hình trả theo sử dụng (pay-per-use).
Nhà cung cấp dịch vụnhư Amazon AWS, Microsoft và Google sở hữu và vận hành
cơ sở hạ tầng và cung cấp truy cập chỉ thông qua Internet (kết nối trực tiếp không được
- 16
-
cung cấp). Nhà cung cấp chịu trách nhiệm về cài đặt, quản lý, cung cấp và bảo trì dịch vụ
của họ.
5.2. Đám mây riêng (Private cloud)
Đám mây riêng là cơ sở hạ tầng điện toán đám mây chỉ hoạt động cho một tổ chức
duy nhất, cho dù được quản lý nội bộ hay bởi một bên thứ ba và lưu trữ nội bộ hay bên
ngoài. Thực hiện một dự án điện toán đám mây riêng đòi hỏi một mức độ trong việc ảo
hóa hạ tầng hệ thống máy chủ phục vụ sản xuất kinh doanh, nó yêu cầu tổ chức phải đánh
giá lại các nguồn lực hiện có. Khi được thực hiện đúng, nó có thể mang lại một tác động
tích cực đối với doanh nghiệp, nhưng mỗi bước trong dự án đều đặt ra các vấn đề về bảo
mật cần được giải quyết để tránh các lỗ hổng nghiêm trọng.
Các đám mây riêng đưa ra nhiều lợi ích giống như các đám mây công cộng, sự khác
biệt chính làtổ chức có trách nhiệm thiết lập và bảo trì đám mây này. Sự khó khăn về chi
phí để thiết lập một đám mây bên trong tổ chức đôi khi có thể có chiều hướng ngăn cản
hoạt động kinh doanh liên tục (BC), khắc phục điều này có thể sẽ vượt quá chi phí của
việc sử dụng một đám mây công cộng.
Các đám mây riêng đưa ra nhiều lợi thế so với loại công cộng. Việc kiểm soát chi
tiết hơn trên các nguồn tài nguyên khác nhau, các đám mây riêng là lý tưởng khi các kiểu
công việc đang được thực hiện không phù hợp cho một đám mây công cộng do vấn đề về
quản lý và an ninh.

5.3. Đám mây lai (Hybrid cloud)
Là một sự kết hợp của các đám mây công cộng và đám mây riêng, trên nguyên
tắcvẫn giữ nguyên các thành phần của chúng nhưng liên kết với nhau, cung cấp các lợi
ích của mô hình triển khai.Những đám mây này thường do tổ chức tạo ra và các trách
nhiệm quản lý sẽ được phân chia giữa tổ chức và nhà cung cấp đám mây công cộng. Đám
mây lai sử dụng các dịch vụ có trong cả không gian công cộng và không gian riêng.
Các tổ chức và cá nhân có thể để có được khả năng chịu lỗi kết hợp với khả năng sử
dụng tại chỗ ngay lập tức mà không cần phụ thuộc vào kết nối internet. Kiến trúc đám
mây hybrid đòi hỏi cả nguồn tài nguyên tại chỗ và đám mây từ xa.
Hạn chế chính với đám mây này là sự khó khăn trong việc tạo ra và quản lý có hiệu
quả trong một giải pháp kết hợp hai mô hình đám mây. Phải thực hiện việc nhận được và
cung cấp các dịch vụ lấy từ các nguồn khác nhau như thể chúng có nguồn gốc từ một chỗ
và tương tác giữa các thành phần riêng và chung,việc này thực hiện rất phức tạp. Do đây
là một khái niệm kiến trúc tương đối mới trong điện toán đám mây, nên cách thực hành và
các công cụ về loại này đang tiếp tục phát triển.
- 17
-
6. Các vấn đề ảo hóa trong môi trường điện toán đám mây
Ảo hóa hệ thống máy chủ giúp đem lại nhiều lợi ích, như tăng tính tự động, dễ thiết
lập của các máy chủ ảo, giúp việc quản lý, chia sẻ tài nguyên tốt hơn, quản lý luồng làm
việc phù hợp với nhu cầu, dễ cài đặt…
Xét về kiến trúc hệ thống, các mô hình ảo hóa hệ thống máy chủ có thể ở hai dạng
Host-based hoặc Hypervisor-based (còn gọi là bare-metal hypervisor). Ngoài ra, tùy theo
từng sản phẩm ảo hóa được triển khai (như VMWare, Microsoft HyperV, Citrix XEN
Server) mà mức độ ảo hóa cụ thể sẽ khác nhau. Các mức độ ảo hóa bao gồm:
- Full virtualization: Hệ điều hành khách (Các hệ điều hành cài trên máy chủ ảo)
không bị thay đổi, và chúng hoạt động như trên phần cứng thật sự.
- Para virtualization: Các hệ điều hành khách sẽ bị thay đổi để hoạt động tốt hơn với
phần cứng. Tuy nhiên dạng này thường có hạn chế là hỗ trợ khá ít các loại hệ điều hành
khách.

- Emulation: Các hệ điều hành khách bị thay đổi, nhưng chúng được chạy trên một
phần mềm giả lập CPU vật lý.
Để có một cái nhìn đầy đủ hơn, ta xem xét hai dạng kiến trúc Host-based và
Hypervisor-based của ảo hóa hệ thống máy chủ, đồng thời xem xét khái niệm Hypervisor
là gì.
Hypervisor là gì: Để hiểu rõ hơn về khái niệm ảo hóa máy chủ, trước hết chúng ta sẽ
tìm hiểu một định nghĩa mới, đó là hypervisor. Hypervisor hay còn gọi là Virtual Machine
Monitor (VMM), là một lớp phần mềm “mỏng” giữa phần cứng và hệ điều hành để cho
phép các hệ điều hành đó quản lý và sử dụng các tài nguyên phần cứng cùng lúc.
6.1. Kiến trúc Host-based
Còn gọi là hosted hypervisor. Kiến trúc này sử dụng một lớp hypervisor chạy trên
nền tảng hệ điều hành, sử dụng các dịch vụ được hệ điều hành cung cấp để phân chia tài
nguyên tới các máy ảo. Ta xem hypervisor này là một lớp phần mềm riêng biệt, do đó các
hệ điều hành khách của máy ảo sẽ nằm trên lớp thứ 3 so với phần cứng máy chủ.
- 18
-
Hình 5 : Kiến trúc Host-based.
Ta có thể thấy, một hệ thống ảo hóa sử dụng kiến trúc Host-based được chia làm 4
lớp hoạt động như sau:
+ Nền tảng phần cứng: Bao gồm các thiết bị nhập xuất, thiết bị lưu trữ (HDD,
RAM), bộ vi xử lý CPU, và các thiết bị khác (các thiết bị mạng, vi xử lý đồ họa, âm
thanh…).
+ Hệ điều hành Host: Hệ điều hành này thực hiện việc liên lạc trực tiếp với phần
cứng, qua đó cung cấp các dịch vụ và chức năng thông qua hệ điều hành này.
+ Hệ thống virtual machine monitor (hypervisor): chạy trên nền tảng hệ điều hành
host, các hệ thống này lấy tài nguyên và dịch vụ do hệ điều hành host cung cấp, thực hiện
việc quản lý, phân chia trên các tài nguyên này.
+ Các ứng dụng máy ảo: Sử dụng tài nguyên do hypervisor quản lý.
Một số hệ thống hypervisor dạng Hosted có thể kể đến như VMware Server,
VMware Workstation, Microsoft Virtual Server…

6.2. Kiến trúc Hypervisor-based
Còn gọi là bare-metal hypervisor. Trong kiến trúc này, lớp phần mềm hypervisor
chạy trực tiếp trên nền tảng phần cứng của máy chủ, không thông qua bất kì một hệ điều
hành hay một nền tảng nào khác. Qua đó, các hypervisor này có khả năng điều khiển,
kiểm soát phần cứng của máy chủ. Đồng thời, nó cũng có khả năng quản lý các hệ điều
hành chạy trên nó. Nói cách khác, các hệ điều hành sẽ chạy trên một lớp nằm phía trên
các hypervisor dạng bare-metal. Hình vẽ sau sẽ minh họa cụ thể hơn cho vấn đề này:
- 19
-
Hình 6: Kiến trúc Hypervisor-based.
Ta có thể thấy, một hệ thống ảo hóa máy chủ sử dụng nền tảng Bare-metal
hypervisor bao gồm 3 lớp chính:
+ Nền tảng phần cứng: Bao gồm các thiết bị nhập xuất, thiết bị lưu trữ (HDD,
RAM), bộ vi xử lý CPU, và các thiết bị khác (thiết bị mạng, vi xử lý đồ họa, )
+ Lớp nền tảng ảo hóa Virtual Machine Monitor (còn gọi là hypervisor), thực hiện
việc liên lạc trực tiếp với nền tảng phần cứng phía dưới, quản lý và phân phối tài nguyên
cho các hệ điều hành khác nằm trên nó.
+ Các ứng dụng máy ảo: Các máy ảo này sẽ lấy tài nguyên từ phần cứng, thông qua
sự cấp phát và quản lý của hypervisor.
Một số ví dụ về các hệ thống Bare-metal hypervisor như là: Oracle VM, VMware
ESX Server, IBM's POWER Hypervisor (PowerVM), Microsoft's Hyper-V, Citrix
XenServer…
7. Nền tảng điện toán đám mây
7.1. Nền tảng mã nguồn mở
Có nhiều nền tảng điện toán đám mây, sử dụng các ngôn ngữ lập trình và các công
nghệ nguồn mở được hỗ trợ trên mỗi nền tảng, được phân loại nền tảng cơ bản và các nền
tảng chuyên dụng.
Các nền tảng cơ bản là những đề xuất tối thiểu (vật lý hay ảo hóa) và có thể có một
hệ điều hành. Hoàn toàn tự do để cấu hình hệ thống trong đám mây, chỉ cần một nền tảng
cơ bản,khi đó, tachỉ cần xác định một số đặc tả kỹ thuật phần cứng như dung lượng bộ

nhớ xử lý, lưu trữ với mứcphù hợp,….
Các nền tảng cơ bản như Amazon EC2 hoặc Joyent Accelerator có rất nhiều quyền
tự do để chạy bất kỳ phần mềm nào trên đám mây khách hàng. Có thể chạy các ứng dụng
- 20
-
Web trên các nền tảng cơ bản, sử dụng bất kỳ máy chủ ứng dụng hoặc cơ sở dữ liệu nào.
Tất nhiên, cần phải thiết lập, cài đặt, đặt cấu hình và quản lý tất cả các cơ sở hạ tầng này.
Cũng có một số nền tảng mức trung gian. Nền tảng Aptana Cloud cung cấp nhiều
tính năng linh hoạt, do nó được phân tầng ở bên trên của Accelerator Joyent. Aptana làm
nhẹ bớt công việc bằng cách cung cấp một số tùy chọn cơ sở hạ tầng dựa trên nguồn mở
để xây dựng các ứng dụng trên đó. Nó cũng có nhiều công cụ linh hoạt để đơn giản hóa
quá trình triển khai. Điều quan trọng là sử dụng nhiều lựa chọn công nghệ nguồn mở.
Trên nền tảng đám mây,với một nền tảng cơ bản, ta có thể lựa chọn máy chủ ứng
dụng, cơ sở dữ liệu, chọn hệ điều hành Linux® hay UNIX® máy chủ Web Apache với
các module thích hợp cho ngôn ngữ lập trình và cơ sở dữ liệu MySQL hoặc Postgres. Đây
là những lựa chọn phổ biến và có thể tìm một số tùy chọn cấu hình sẵn (sử dụng nền tảng
nguồn mở Aptana).
Các nền tảng chuyên dụng cung cấp một số kiểu môi trường lập trình và các dịch vụ
trên một nền tảng cơ bản. Các nền tảng chuyên dụng này thường đơn giản và cung cấp
một số dịch vụ duy nhất (Sử dụng máy ứng dụng Google App Engine).
7.2. Nền tảng thương mại
Microsoft: ra đời vào đầu năm 2008 với sản phẩm Hyper-V, là công nghệ ảo hóa
server là thành phần quan trọng trong hệ điều hành Windows Server 2008. Hyper-V là
công nghệ ảo hóa thế hệ kế tiếp dựa trên hypervisor, khai thác phần cứng server 64-bit thế
hệ mới. Kết hợp cài đặt phần mềm quản lý tập trung của Microsoft Virtual Machine
Manager 2012 với nhiều tính năng nổi trội như:giao diện điều khiển để quản lý các máy
ảo trong mạng và không chỉ các VM có thể chạy trên nền tảng Hyper-V, nó có thể kết nối
với VMware và Citrix XenServer.
VMware: VMware là lâu đời nhất và hầu hết có các tính năng hoàn chỉnh, các sản
phẩm ảo hóa gồm ESXi, vSphere.

Citrix: Giải pháp điện toán đám mây của Citrix là tập trung vào sản phẩm XenServer
và được hỗ trợ bởi cơ sở hạ tầng và cộng đồng mã nguồn mở CloudStack
- 21
-
CHƯƠNG 3. SONG SONG HÓA THUẬT TOÁN DIJKSTRA TRÊN
NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY
1. Giới thiệu Windows Azure Platform
Nền tảng Windows Azure của Microsoft được chính thức đưa ra thị trường vào ngày
1/1/2010, có thể nói đây là sản phẩm mang tính chiến lược của hãng phần mềm lớn nhất
thế giới nhằm cạnh tranh với các nhà cung cấp dịch vụ Cloud Computing hàng đầu là
Amazon và Google, IBM,
“Azure đánh dấu bước chuyển đổi trong phát triển phần mềm, trong chiến lược và
trong cách thức phân phối sản phẩm của chúng tôi” - Ray Ozzie, người thay thế vai trò
của Bill Gates tại Microsoft tại Microsoft khẳng định.
Microsoft Windows Azure Platform là nền tảng ứng dụng trong các “đám mây” cho
phép các ứng dụng/dịch vụ có thể host và thực thi trên các datacenter của Microsoft. Nó
cung cấp Windows Azure như là một hệ điều hành đám mây (cloud services operating
system), Windows Azure là môi trường runtime cho các ứng dụng cloud và cung cấp một
tập các dịch vụ hỗ trợ cho phát triển, quản trị và hosting ứng dụng.
Hình 7: Tương tác khách hàng/doanh nghiệp với Windows Azure
Windows Azure Platform là một nền tảng có tính mềm dẻo, hỗ trợ đa ngôn ngữ và
tích hợp với môi trường on-premise sẵn có. Để xây dựng các ứng dụng và dịch vụ cho
Windows Azure, developer có thể sử dụng bộ công cụ Visual Studio, ngoài ra Windows
Azure còn hỗ trợ hầu hết các giao thức và chuẩn thông dụng như SOAP, REST, XML,
PHP.
- 22
-
2.Ứng dụng Windows Azure Platform xử lý song song:
Windows Azure hỗ trợ tạo các ứng dụng xử lý song song. Nhiều tổ chức/cơ quan
đôi khi cần một số lương lớn các máy tính để xử lý 1 chương trình song song, chẳng hạn

như để render các hiệu ứng đặc biệt cho một bộ phim, xử lý nghiệp vụ trong một ngân
hàng, …Một giải pháp là có thể đầu tư một hệ thống tính toán song song (cluster) gồm
nhiều máy với cấu hình mạnh, tuy nhiên chi phí sẽ rất cao. Windows Azure sẽ là giải
pháp kinh tế hơn nhiều, gần như một giải pháp siêu máy tính trực tuyến theo yêu cầu (on-
demand SuperComputer).
Nhà phát triển có thể sử dụng Worker Role để tạo các ứng dụng dạng này, hơn nữa,
các ứng dụng song song thường sử dụng đến không gian dữ liệu lớn, Windows Azure có
thể đáp ứng bằng Blobs.
Hình 8: Mô tả một khung ứng dụng song song trên nền Windows Azure
Trong mô hình trên, việc tính toán song song được thực hiện bởi một số lượng lớn
các Worker Role chạy song song, các Worker Role này sử dụng Blobs để lưu trữ dữ liệu.
Để tương tác với ứng dụng, người dùng thống qua 1 WebRole instance, từ giao diện
tương tác này, người dùng có thể xác định số lượng Worker Role instance cần thiết, khởi
động, tạm dừng 1 số instance, lấy kết quả, … Việc liên lạc giữa WebRole instance và
Worker Role instance được thực hiện nhờ “cầu nối” Queues Storage.
Các queues này có thể truy cập từ các ứng dụng on-premise, do đó nếu không muốn
phụ thuộc vào Web Role instance của Windows Azure, nhà phát triển có thể xây dựng
ứng dụng chạy từ máy local để tương tác với các Worker Role instances. Hình sau mô tả
một tình huống như vậy
- 23
-
Hình 9: Mô hình ứng dụng song song kết nối từ ứng dụng cục bộ đến Worker
Role
Trong mô hình này, việc xử lý song song vẫn được thực hiện trên các Worker Role
instances chạy song song, mỗi một instance tương tác với bên ngoài thông qua Queues,
tuy nhiên khác với mô hình trước đó, lúc này các công việc trong Queues sẽ được ghi trực
tiếp từ ứng dụng on-premises.
3.Triển khai Windows Azure Platform trên đám mây riêng (Private cloud) của
VNPT Tiền Giang:
- Tạo 2 máy ảo (P

0,
P
1
) có cấu hình như sau:
- Cài đặt các phần mềm hệ thống gồm:
+ Windows Server 2008.
+ Visual Studio 2008.
+ Windows Azure Development Kit (SDK).
+ Windows Azure Tools cho Visual Studio.
- 24
-
+ Tool Development Fabric (Microsoft cung cấp) giúp giả lập môi trường Windows
Azure trên đám mây riêng của VNPT Tiền Giang (đơn vị thành viên của Tập đoàn Bưu
chính Viễn thông Việt Nam), cung cấp các tính năng Web Role, Worker Role, các dịch vụ
Storage (Blobs, Tables, Queues) tương tự như trên hệ thống Data Center của Microsoft.
Mô hình minh họa như sau:
Hình 10: Development Fabric cung cấp môi trường giả lập Windows Azure trên hệ
thống Privte cloud.
4. Thực nghiệm thuật toán Dijkstra song song trên đám mây riêng (Private
cloud):
Tìm đường đi ngắn nhất từ đỉnh nguồn a=1 đến tất cả các đỉnh theo thuật toán song
song trên đồ thị (n=12 đỉnh) dưới đây cho m=2 máy ảo (P
0,
P
1
), trong đó: P
0
là máy ảo
xử lý chính và P
1

là máy ảo xử lý phụ.
Bước 1.Máy ảo xử lý chính P
0
thực hiện.
Phân công T
0
={1,2,3,4,5,6}, A
0
cho chính P
0
và phân công T
1
={7,8,9,10,11,12},
A
1
cho P
1.
Gán L(1)=0; L(2)=L(3)=L(4)=L(5)=L(6)
Máy ảo xử lý chính P
0
nhận đỉnh a=1, L(1)=0,
L(2)=L(3)=L(4)=L(5)=L(6)=∞,
T
0
={1,2,3,4,5,6} và A
0
.
Máy ảo xử lý chính P
0
thực hiện gửi L(7)=L(8)=L(9)=L(10)=L(11)=∞,

T
1
={7,8,9,10,11,12} và A
1
đến bộ xử lý P
1.
- Máy ảo P
0
thực hiện:
- 25
-
Bước 2.
Tìm minl= min{L(x), x T
0
} ->
m
inl=
0.
- Máy ảo P
1
thực hiện:
Bước 2.
Gán L(7)=L(8)=L(9)=L(10)=L(11)=L(12)= ∞
Tìm minl=min{L(x), x T
1
}= ∞
Gửi minl về P
0
- Máy ảo P
0

thực hiện:
Bước 3.Tìm min của minl đã chuyển đến ở bước 2 với minl mà P
0
giữ.
->Min=Lv=L(1)=0, gán đỉnh v = 1
Chuyển v = 1 lên P
0
và P
1
- Máy ảo P
0
thực hiện:
Bước 4.
T
0
=T
0
\{v}={1,2,3,4,5,6}\{1}={2,3,4,5,6}, đánh dấu đỉnh 1 đã xét.
T
0


φ
,
sang bước 5.
- Máy ảo P
0
thực hiện:
Bước 5.
Đỉnh 2,3 kề với đỉnh 1.

L(2)=min{L(2),w(1,2)+L(1)}=7 thay đổi.L(3)=min{L(3), w(1,3)+L(1)}= 5 thay
đổi.
Ghi nhớ đỉnh 1 vào đỉnh 2,3 đồ thị có các nhãn như sau:
- Máy ảo P
1
thực hiện:
Bước 4.
v=1, đỉnh 1

T
1
, suy ra T
1
={7,8,9,10,11,12}

×