การประมวลผลแบบขนานและเครื่องเสมือน
| English | ไทย |
|---|---|
| virtual machines/ˈvɜːtʃuːəl məˈʃiːnz/ | เครื่องเสมือน |
| parallelism/ˈpærəlelɪzəm/ | ความเป็นขนาน |
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | แบบขนานมาก |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | หน่วยความจำแบบกระจาย |
| hypervisor/ˌhaɪpəˈvaɪzə/ | hypervisor |
| sandboxing/ˈsændbɒksɪŋ/ | การ Sandbox |
| bytecode/ˈbaɪtkəʊd/ | 字节码 |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | just-in-time compilation |
คอมพิวเตอร์เครื่องเดียว pretending เป็นสี่สิบเครื่อง
- บริษัทเคยซื้อ physical server ต่อหนึ่ง application: ตัวสำหรับ mail, ตัวสำหรับเว็บไซต์, ตัวสำหรับบัญชี Each运行ที่ประมาณ 8% ของ capacity และใช้ไฟเต็มกำลังใน rack ที่ต้องมีการระบายความร้อน
- จากนั้น servers不再เป็นเครื่องจักรแต่กลายเป็นไฟล์ Forty virtual machines Now运行บน three physical hosts, แต่ละตัวเชื่อว่ามี processor, memory และ disks ของตัวเอง
- การประหยัดไม่ใช่แค่ไฟฟ้า Virtual machine สามารถ snapshot ก่อนการเปลี่ยนแปลงที่มีเสี่ยง, คัดลอกไปยัง host อื่นขณะ running, และ destroy ถ้าถูก compromised
- บทเรียนนี้คือ parallelism และ virtual machine: ความแตกต่างของสอง system architectures และ VM cost และ what it buys
Parallel architectures, briefly
- Parallelism หมายถึง many processing elements working at once Flynn's taxonomy ชื่อรูปแบบ: SIMD的运行 one instruction over many data items, และ MIMD运行 different instructions on different data
- A massively parallel machine takes MIMD ไปยัง thousands of processors, แต่ละมี its own distributed memory, สื่อสารด้วย messages
- Speed不再มาจาก clock raising, ซึ่งจำกัด by heat, แต่ from doing more things at once Every architecture บนหน้านี้เป็นคำตอบสำหรับสิ่งนั้น

Different instructions, different data, at the same time
SIMD หมายถึง:
Single Instruction, Multiple Data — เช่น GPU正在运行同一操作数千个像素。
จับคู่หมวดหมู่ของ Flynn แต่ละประเภทกับตัวอย่าง
Flynn จัดหมวดหมู่ตามจำนวนสตรีมคำสั่งและสตรีมข้อมูลที่รันพร้อมกัน: SISD, SIMD, MIMD (และ MISD ที่หายาก)
คอมพิวเตอร์แบบขนานขนาดใหญ่ใช้:
ระบบแบบขนานขนาดใหญ่ (ซูเปอร์คอมพิวเตอร์) เชื่อมโยงโปรเซสเซอร์นับพันด้วยหน่วยความจำกระจายผ่านเครือข่ายที่รวดเร็ว
What a virtual machine is
- A virtual machine คือ software emulation of a whole computer Software运行ภายในเห็น processor, memory และ disks ที่ดู real แต่ถูกจัดเตรียมและ manage โดย host software
- มีสองชนิด, และ exam แยกแยะ: system VM运行 complete guest operating system, และ process VM运行 one program's portable code
- Neither เป็น emulator of a faster machine Purpose ของ VM คือ isolation และ portability, ไม่ใช่ speed
ห้องปฏิบัติการแนวคิดการคำนวณ
จัดกลุ่มตัวอย่างที่เป็นรูปธรรมตาม idea การคำนวณที่แสดงออก
เครื่องเสมือนคืออะไร?
จุดสำคัญคือการจำลองและการแยก ไม่ใช่ความเร็ว เครื่องเสมือนระบบรัน OS مهمguest ทั้งหมด; เครื่องเสมือนกระบวนการรัน字节โค้ดของโปรแกรมเดียว
System virtual machines
- A hypervisor คือ software ที่สร้างและ manage virtual machines, แบ่ง host's real processor, memory และ disks ระหว่าง them และ keep แต่ละตัว isolated จากกัน
- Each VM boots its own guest operating system, ดังนั้น one host สามารถ run Windows, Linux และ legacy system เก่าๆ alongside กัน
- Uses:运行不同的操作系统在一台机器上; server consolidation, replacing许多低使用的物理服务器与一个主机; sandboxing, risky或不受信任的软件运行隔离且无法接触主机; และ snapshots, เพื่อให้ machineสามารถ rollback到 known state

ชุดโฮสต์บนตู้ (rack) โดยแต่ละตัวรองรับ ماشینเสมือนหลายเครื่อง
Hypervisor ใช้เพื่อ:
Hypervisor จัดการเครื่องเสมือนระบบ อนุญาตให้หลายระบบปฏิบัติการ مهمguest แชร์เครื่องจริงเดียว
เครื่องเสมือนระบบ (ซึ่งจัดการโดย Hypervisor) รันระบบปฏิบัติการ مهمguest ทั้งหมด ในขณะที่เครื่องเสมือนกระบวนการเช่น JVM เพียงรัน字节โค้ดที่พกพาได้ของโปรแกรมเดียว
เครื่องเสมือนระบบแชร์เครื่องจริงเดียวกับหลายระบบปฏิบัติการ مهمguest; เครื่องเสมือนกระบวนการมอบ "เขียนครั้งเดียว รันได้ทุกที่" สำหรับโปรแกรมเดียว
ซอฟต์แวร์ที่ใช้สร้างและจัดการเครื่องเสมือนระบบหลายตัวบนโฮสต์เดียวเรียกว่า ____
มันแบ่งฮาร์ดแวร์จริงของโฮสต์ระหว่างผู้ใช้งานและรักษาการแยกของแต่ละคนไว้ ซึ่งเป็นสิ่งที่ทำให้การ Sandbox และการรวมระบบเป็นไปได้
Process virtual machines
- A process VM,还称为 language VM,运行 one program written in portable bytecode rather than the host's machine code. Java Virtual Machine และ .NET CLR เป็น examples
- Benefits: portability, เพราะ bytecode เดียวกัน运行ทุก where a VM exists, which is "write once, run anywhere"; runtime safety, เพราะ VM checks what the code does; และ just-in-time compilation of hot code to native instructions, so long-running programs approach native speed
- Costs: an extra layer between the program และ hardware, และ VM must be installed before the program will run at all
ข้อใดเป็นประโยชน์ของเครื่องเสมือนกระบวนการ (ภาษา) เช่น JVM? เลือก ทุก ข้อที่เกี่ยวข้อง
VM ต้องมีอยู่; นั่นคือต้นทุนของการพกพาได้ การพกพาได้ ความปลอดภัย และ JIT คือประโยชน์
Worked example: which kind of VM
- ทีมความปลอดภัยต้องการเปิดไฟล์แนบในอีเมลที่สงสัยโดยไม่เสี่ยงต่อเครือข่ายบริษัท ระบบ VM (system VM): ระบบปฏิบัติการผู้รับ (guest OS) ถูกแยกโดย hypervisor ทำให้มัลแวร์ไม่สามารถเข้าถึงโฮสต์ได้ และระบบจะรีเซ็ตสนาปช็อต (snapshot) ในภายหลังเพื่อกำจัดทุกอย่างที่มันทำไว้
- A developer wants one compiled program to run on Windows, macOS และ Linux without recompiling. A process VM: the program is compiled to bytecode และ VM ของแต่ละ platform运行它
- Name the kind, then the property, isolation หรือ portability, that the situation needs
วางผลกระทบจากการล้มเหลวของโฮสต์จริงหนึ่งเครื่อง按照顺序
การรวมระบบ集中的ความเสี่ยง: โฮสต์หนึ่งเป็นจุดล้มเหลวเดียวสำหรับทุกสิ่งที่มัน承载 That is the limitation to state.
Worked example: benefits and limitations
- อธิบายประโยชน์สองข้อและข้อจำกัดสองข้อของการใช้ ماشینเสมือนเพื่อแทนที่เซิร์ฟเวอร์ทางกายภาพของบริษัท [4]
- Benefits: several servers运行 on one physical host,所以 hardware, power และ cooling costs fall; และแต่ละ VM是被 isolated,所以 compromisedหรือ crashed server does not affect others, and can be restored from a snapshot
- Limitations: VMs share host's real processor, memory และ disks,所以 performance低于 dedicated hardware และ one busy VM สามารถ starve others; และถ้า host fails, every VM on it fails at once
- Two of each, และ each one是 consequence, not just a label
คะแนนที่หลุดหายไป
- A hypervisor manages system VMs; It is not the guest operating system และ not the host's own OS
- A process VM运行 bytecode, which is not machine code. That is what makes it portable
- The limitation of a VM is shared resources and a single point of failure, not "it is complicated"
- "Sandboxing" needs its consequence: the risky software is isolated from the host, so it cannot damage or reach it
คุณเข้าใจแล้ว
- parallelism ตอบคำถามเรื่องขีดจำกัดความเร็วนาฬิกา: SIMD สำหรับคำสั่งเดียวบนข้อมูลหลายชุด, MIMD สำหรับคำสั่งหลายชุด, และ massively parallel สำหรับโปรเซสเซอร์นับพันพร้อมหน่วยความจำแบบกระจาย
- virtual machine คือการจำลองคอมพิวเตอร์ทั้งเครื่องด้วยซอฟต์แวร์
- system VM ทำงานระบบปฏิบัติการผู้รับ (guest OS) แบบเต็มรูปแบบภายใต้ hypervisor: ระบบปฏิบัติการต่างกันบนเครื่องเดียว, การรวมเซิร์ฟเวอร์, sandboxing, และการสร้างสแนปช็อต
- process VM ทำงาน bytecode ที่พกพาได้พร้อมความปลอดภัยขณะรันและ just-in-time compilation; ค่าใช้จ่ายคือชั้นเพิ่มเติม, การใช้ทรัพยากรโฮสต์ร่วมกัน และหากโฮสต์ล้มเหลวจะทำให้ทุก VM ล้มตามไปด้วย