Xử lý song song và máy ảo
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| virtual machines/ˈvɜːtʃuːəl məˈʃiːnz/ | máy ảo |
| parallelism/ˈpærəlelɪzəm/ | tính song song |
| SIMD/ˈsɪmdiː/ | một lệnh nhiều dữ liệu (SIMD) |
| MIMD/ˈmɪmdiː/ | nhiều lệnh nhiều dữ liệu (MIMD) |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | song song quy mô lớn |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | b bộ nhớ phân tán |
| hypervisor/ˌhaɪpəˈvaɪzə/ | giám sát máy ảo |
| sandboxing/ˈsændbɒksɪŋ/ | khu vực cách ly |
| bytecode/ˈbaɪtkəʊd/ | mã byte |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | biên dịch tức thì |
Một máy tính giả vờ là bốn mươi
- Một công ty trước đây mua một máy chủ vật lý cho mỗi ứng dụng: một cho email, một cho website, một cho kế toán. Mỗi máy chạy ở khoảng 8% công suất, và tiêu thụ toàn bộ điện năng trong giá đỡ cần làm mát.
- Sau đó các máy chủ không còn là máy móc mà trở thành tập tin. Bốn mươi virtual machines giờ chạy trên ba máy chủ vật lý, mỗi cái đều tự tin rằng mình có riêng một bộ xử lý, bộ nhớ và ổ đĩa.
- Lợi ích không chỉ là tiết kiệm điện. Một virtual machine có thể tạo snapshot trước khi thay đổi rủi ro, sao chép sang máy chủ khác khi vẫn đang chạy, và bị hủy nếu bị xâm nhập.
- Bài học này nói về parallelism và virtual machine: hai kiến trúc hệ thống khác nhau như thế nào, và VM tốn kém cũng mang lại những gì.
Kiến trúc song song, tóm tắt
- Parallelism nghĩa là nhiều phần tử xử lý hoạt động cùng lúc. Phân loại Flynn đặt tên cho các hình dạng: SIMD chạy một chỉ thị lên nhiều mục dữ liệu, và MIMD chạy các chỉ thị khác nhau trên các dữ liệu khác nhau.
- Một máy massively parallel đưa MIMD lên hàng nghìn bộ xử lý, mỗi cái có distributed memory riêng, giao tiếp qua tin nhắn.
- Tốc độ không đến từ việc tăng clock nữa, vốn bị giới hạn bởi nhiệt, mà đến từ việc làm nhiều thứ cùng lúc. Mọi kiến trúc trên trang này đều là câu trả lời cho vấn đề đó.

Chỉ thị khác nhau, dữ liệu khác nhau, cùng lúc
SIMD có nghĩa là:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Single Instruction, Multiple Data — ví dụ: GPU thực hiện cùng một thao tác trên hàng nghìn điểm ảnh.
Nối mỗi danh mục của Flynn với một ví dụ.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Flynn phân loại dựa trên số lượng luồng lệnh và dữ liệu chạy song song: SISD, SIMD, MIMD (và MISD hiếm gặp).
Một máy tính song song quy mô lớn sử dụng:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Hệ thống song song quy mô lớn (siêu máy tính) kết nối hàng nghìn bộ xử lý với bộ nhớ phân tán qua mạng nhanh.
Virtual machine là gì
- Một virtual machine là sự mô phỏng bằng phần mềm của cả một máy tính. Phần mềm chạy bên trong nó thấy một bộ xử lý, bộ nhớ và ổ đĩa trông giống thật nhưng được cung cấp và quản lý bởi phần mềm host.
- Có hai loại, và bài thi phân biệt chúng: một system VM chạy một hệ điều hành khách hoàn chỉnh, và một process VM chạy mã di động của một chương trình.
- Không cái nào là emulator của máy nhanh hơn. Mục đích của VM là cách ly và khả năng di động, không phải tốc độ.
Phòng thí nghiệm khái niệm tin học
Phân loại các ví dụ cụ thể theo ý tưởng tin học mà chúng minh họa.
Máy ảo là gì?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Điểm mấu chốt là mô phỏng và cô lập, không phải tốc độ. Máy ảo hệ thống chạy toàn bộ hệ điều hành khách; máy ảo tiến trình chạy mã byte của một chương trình.
Máy ảo hệ thống
- Một hypervisor là phần mềm tạo và quản lý virtual machines, chia sẻ bộ xử lý thực, bộ nhớ và ổ đĩa của host giữa chúng và giữ cho mỗi cái cách ly khỏi những cái khác.
- Mỗi VM khởi động hệ điều hành khách riêng của nó, nên một host có thể chạy Windows, Linux và một hệ thống legacy cũ bên cạnh nhau.
- Ứng dụng: chạy các hệ điều hành khác nhau trên một máy; server consolidation, thay thế nhiều máy chủ vật lý ít được sử dụng bằng một host; sandboxing, để phần mềm rủi ro hoặc không đáng tin cậy chạy cách ly và không thể truy cập host; và snapshots, để máy có thể quay lại trạng thái đã biết.

Một giá đỡ chứa nhiều host, mỗi host chạy nhiều virtual machines
Hypervisor được dùng để:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Hypervisor quản lý máy ảo hệ thống, cho phép nhiều hệ điều hành khách chia sẻ một máy vật lý.
Máy ảo hệ thống (do hypervisor quản lý) chạy toàn bộ hệ điều hành khách, trong khi máy ảo tiến trình như JVM chỉ chạy mã byte di động của một chương trình.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Máy ảo hệ thống chia sẻ một máy vật lý giữa nhiều hệ điều hành khách; máy ảo tiến trình mang lại "viết một lần, chạy mọi nơi" cho một chương trình duy nhất.
Phần mềm tạo và quản lý nhiều máy ảo hệ thống trên một máy chủ gọi là ____.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Nó chia sẻ phần cứng thật của máy chủ giữa các máy khách và giữ cho từng máy khách được cô lập, đó là điều làm cho sandboxing và hợp nhất khả thi.
Process virtual machines
- Một process VM, còn gọi là language VM, chạy một chương trình được viết bằng bytecode di động thay vì machine code của host. Java Virtual Machine và .NET CLR là các ví dụ.
- Lợi ích: portability, vì cùng một bytecode chạy được ở bất cứ đâu có VM tồn tại, tức "viết một lần, chạy mọi nơi"; runtime safety, vì VM kiểm tra xem mã làm gì; và just-in-time compilation của hot code thành chỉ thị gốc, để các chương trình chạy lâu đạt gần tốc độ gốc.
- Chi phí: thêm một lớp giữa chương trình và phần cứng, và VM phải được cài đặt trước thì chương trình mới chạy được.
Những lợi ích nào của máy ảo tiến trình (ngôn ngữ) như JVM? Chọn tất cả các đáp án áp dụng.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Máy ảo phải tồn tại; đó là chi phí của khả năng di chuyển. Khả năng di chuyển, an toàn và JIT là những lợi ích.
Ví dụ giải thích: loại VM nào
- Một đội an ninh muốn mở các tập tin đính kèm_path email nghi ngờ mà không gây rủi ro cho mạng công ty. Một system VM: hệ điều hành khách được cách ly bởi hypervisor, nên malware không thể chạm vào host, và snapshot được khôi phục sau đó để xóa bỏ mọi thứ nó đã làm.
- Một lập trình viên muốn một chương trình đã biên dịch chạy trên Windows, macOS và Linux mà không cần biên dịch lại. Một process VM: chương trình được biên dịch thành bytecode và VM của từng nền tảng chạy nó.
- Hãy nêu loại, sau đó là thuộc tính, cách ly hay portability, mà tình huống cần.
Sắp xếp các hậu quả khi một máy chủ vật lý bị hỏng, theo thứ tự.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Hợp nhất tập trung rủi ro: một máy chủ là điểm yếu duy nhất cho tất cả những gì nó chứa đựng. Đó là hạn chế đối với trạng thái.
Ví dụ giải thích: lợi ích và hạn chế
- Giải thích hai lợi ích và hai hạn chế của việc dùng virtual machines để thay thế máy chủ vật lý của công ty. [4]
- Lợi ích: nhiều server chạy trên một host vật lý, nên chi phí phần cứng, điện và làm mát giảm; và mỗi VM được cách ly, nên một server bị xâm nhập hoặc sập không ảnh hưởng đến những cái khác, và có thể khôi phục từ snapshot.
- Hạn chế: các VM chia sẻ bộ xử lý thực, bộ nhớ và ổ đĩa của host, nên hiệu suất thấp hơn phần cứng độc quyền và một VM bận rộn có thể khiến những cái khác thiếu tài nguyên; và nếu host sập, mọi VM trên đó đều sập cùng lúc.
- Hai loại mỗi loại, và mỗi loại là hậu quả, không chỉ là nhãn.
Điểm số dễ mất
- Một hypervisor quản lý system VMs; nó không phải hệ điều hành khách và không phải OS của host.
- Một process VM chạy bytecode, vốn không phải machine code. Đó chính là thứ làm cho nó di động.
- Hạn chế của VM là chia sẻ tài nguyên và điểm yếu duy nhất, không phải "nó phức tạp".
- "Sandboxing" đòi hỏi hậu quả của nó: phần mềm rủi ro được cách ly khỏi host, nên không thể gây hại hoặc truy cập vào nó.
Bạn đã nắm vững
- parallelism giải quyết giới hạn tốc độ xung nhịp: SIMD cho một chỉ thị trên nhiều dữ liệu, MIMD cho nhiều chỉ thị, massively parallel cho hàng nghìn bộ xử lý với bộ nhớ phân tán
- một virtual machine là sự mô phỏng phần mềm của toàn bộ máy tính
- một system VM chạy hệ điều hành khách đầy đủ dưới một hypervisor: các hệ điều hành khác nhau trên cùng một máy, hợp nhất máy chủ, sandboxing, ảnh chụp nhanh
- một process VM chạy bytecode di động với an toàn thời gian thực và just-in-time compilation; chi phí bao gồm một lớp phụ, chia sẻ tài nguyên máy chủ và một máy chủ bị lỗi sẽ kéo theo tất cả các VM còn lại