กลับสู่คอร์สเรียน
AI031 มืออาชีพ

ระบบคอมพิวเตอร์: มุมมองจากนักพัฒนาโปรแกรม (ฉบับโลก)

การสำรวจอย่างละเอียดเกี่ยวกับวิธีที่ระบบคอมพิวเตอร์ดำเนินการโปรแกรมและจัดเก็บข้อมูล หลักสูตรนี้เชื่อมโยงช่องว่างระหว่างการเขียนโปรแกรมระดับสูงกับฮาร์ดแวร์ที่อยู่เบื้องหลัง โดยครอบคลุมการแทนค่าระดับเครื่องจักร สถาปัตยกรรมของโปรเซสเซอร์ โครงสร้างหน่วยความจำ และการเขียนโปรแกรมแบบขนาน

5.0
36.0h
955 ผู้เรียน
12 บทเรียน
0 การถูกใจ
ปัญญาประดิษฐ์
เริ่มเรียน

ภาพรวมคอร์สเรียน

สรุปเนื้อหา

การศึกษาอย่างลึกซึ้งเกี่ยวกับวิธีที่ระบบคอมพิวเตอร์ดำเนินการโปรแกรมและจัดเก็บข้อมูล การเรียนนี้เชื่อมโยงช่องว่างระหว่างการเขียนโปรแกรมระดับสูงกับฮาร์ดแวร์พื้นฐาน โดยครอบคลุมหัวข้อต่าง ๆ เช่น การแทนค่าระดับเครื่องจักร สถาปัตยกรรมของโปรเซสเซอร์ ลำดับชั้นหน่วยความจำ และการเขียนโปรแกรมแบบขนาน

เชี่ยวชาญศิลปะของการเขียนโปรแกรมระบบโดยเข้าใจพื้นที่เชื่อมต่อระหว่างฮาร์ดแวร์และซอฟต์แวร์

ผู้แต่ง: รันดาล เอ. ไบรแอนต์, เดวิด อาร์. โอฮอลลารอน

คำขอบคุณ: ได้รับการสนับสนุนจากนักเรียนและอาจารย์ผู้สอนรายวิชา 15-213 ที่มหาวิทยาลัยคาร์เนกีเมล론 คำขอบคุณรวมถึงข้อเสนอแนะจาก มานาสา เอส. และ โมฮิต ทาฮิเลียนี

เป้าหมายการเรียนรู้

  1. ระบุว่าข้อมูลถูกแทนค่าด้วยบิตและบริบทภายในระบบอย่างไร
  2. ติดตามขั้นตอนสี่ขั้นตอนของระบบการคอมไพล์ จากโค้ดต้นฉบับไปยังโปรแกรมที่สามารถทำงานได้
  3. อธิบายโครงสร้างองค์ประกอบของฮาร์ดแวร์และลักษณะเชิงลำดับชั้นของอุปกรณ์จัดเก็บข้อมูล
  4. แปลงระหว่างสัญลักษณ์ฐานสิบ ฐานสอง และฐานสิบหก และอธิบายการกำหนดที่อยู่ระดับเครื่อง (การจัดเรียงบิต - Endianness)
  5. ดำเนินการปฏิบัติการระดับบิตและตรรกะในภาษา C และทำนายผลจากการเลื่อนทางคณิตศาสตร์
  6. วิเคราะห์การเข้ารหัสจำนวนเต็มเพื่อระบุช่องโหว่ที่อาจเกิดการล้น (overflow) และข้อผิดพลาดจากการแปลงชนิดข้อมูล
  7. วิเคราะห์ ความสัมพันธ์ระหว่างโครงสร้างภาษา C (ลูป สาขา ฟังก์ชัน) กับคำสั่งในภาษาแอสเซมบลี x86-64
  8. แยกองค์ประกอบ โครงสร้างสแตกเวลาทำงาน เพื่ออธิบายว่าพารามิเตอร์ถูกส่งผ่านอย่างไร ตัวแปรท้องถิ่นถูกจัดเก็บไว้ที่ใด และการเรียกซ้ำ (recursive calls) ถูกจัดการอย่างไร
  9. ประเมิน โครงสร้างหน่วยความจำสำหรับโครงสร้างข้อมูลที่หลากหลาย และใช้กฎการจัดเรียง (alignment rules) เพื่อคำนวณความจุรวมของการจัดเก็บ
  10. กำหนดสถานะที่ผู้เขียนโปรแกรมสามารถมองเห็นได้ใน Y86-64 และเข้ารหัส/ถอดรหัสคำสั่งเป็นลำดับไบต์

บทเรียน

Lesson