Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Return to original program • ทำอย่างไรให้สามารถกลับไปยังโปรแกรมเดิม เมื่อ ISR เสร็จสิ้นการดำเนินการอินเตอร์รัพท์ ? • เมื่อรูทีนย่อยทำงานเสร็จแล้ว แทนที่จะใช้ RET แต่ ISRจะใช้ IRET เพื่อส่งค่ากลับ มันจะให้ซีพียูดึงค่าจากสแตกออกมาใช้ ในขณะนี้ซีพียูจะมีค่าทั้งหมดจากโปรแกรมเดิมก่อนที่จะถูกอินเตอร์รัพท์ โดยที่โปรแกรมเดิมจะไม่รู้เลยว่ามันถูกขัดจังหวะ
Vocabulary • ISR – interrupt service routine • IVT– interrupt vector table • IRET– interrupt return • RET– return (from normal subroutine) • PIC– programmable interrupt controller • IP– instruction pointer • CPU– central processing unit • RAM – random access memory
Summary of processing an interrupt (1) • ฮาร์ดแวร์ส่งสัญญาณไปยัง PIC • PIC ส่ง ID ของแหล่งสัญญาณอินเตอร์รัพท์ไปยัง รีจิสเตอร์ • PIC ส่งัญญาณไปยังซีพียูCPU ว่าเกิดสัญญาณอินเตอร์รัพท์ • CPU หยุดการทำงานของโปรแกรมปัจจุบัน
Summary of processing an interrupt (1) • CPU เก็บสถานะการทำงานปัจจุบันลงในสแตก • CPU เรียก ID ของตัวที่ส่งสัญญาณอินเตอร์รัพท์ (จำนวน IRQ) จาก PICจาก PIC • CPU จะคำนวณ IP = IVT [IRQ]
Summary of processing an interrupt (2) • ISR จะทำการรันและ ทำงานตามอินเตอร์รัพท์ • ISR ส่งข้อมูลออกทาง IRET • CPU ดึงข้อมูลออกมาจากสแตค • โปรแกรมเดิมจะดำเนินการต่อไป โดยที่โปรแกรมไม่รู้เลยว่าถูกขัดจังหวะการทำงาน
Logical view of a process • ในโปรเซสจะมีมุมมองทางตรรกะ และมุมมองทางกายภาพ ในมุมมองทางตรรกะนั้นโดยปกติจะแสดงให้เห็นบางอย่างเช่น ภาพที่อยู่ทางด้านล่าง โดยมี code segment, data segment, stack segment และ heap segment ซึ่งเซกเมนต์เหล่านี้จำเป็นต่อการรันโปรแกรม ซึ่งอยู่ใน PCB
Logical view of a process (ต่อ) • The code segment (CS) เก็บ รหัสเลขฐานสอง สำหรับเครื่อง เพื่อให้ซีพียูใช้ในการเอ็คซิคิวซ์โปรเซส • The data segment (DS) เก็บตัวแปรทั่วๆไป สำหรับโปรเซส เพื่อใช้สถิติคำนวณพื้นที่ต่างๆ • The stack segment (SS) เก็บ สแต็ค เพื่อให้ซีพียูใช้ในขณะรันโปรแกรม และนอกจากนี้ยังใช้เก็บตัวแปรหลักที่ใช้ส่งค่า เก็บตำแหน่งของโปรแกรมย่อย ฯลฯ
Logical view of a process (ต่อ) • Heap segment (HS) จะเก็บพื้นที่หน่วยความจำที่จะถูกใช้โดยโปรเซส • Process control block (PCB) คือโครงสร้างข้อมูลของระบบปฏิบัติการ และจะไม่เหมือนกับ 4 เซกเมนต์ก่อนหน้านี้ คือมันจะไม่จองพื้นที่หน่วยความจำของโปรเซส บางครั้งPCB นั้นใช้ใน linked list ที่อยู่ใน เคอร์เนล ของระบบปฏิบัติการ แต่นั่นเป็นแค่รายละเอียด • ในซีพียูรุ่นเก่าๆ มีการแบ่งพื้นที่สำหรับเซกเมนต์ แต่ในระบบใหม่จะใช้หน่วยความจำภายนอก โดยแต่ละเซกเมนต์จะแยกกันอยู่ แต่อาจจะมี base address เดียวกัน