1 / 49

Interrupts

Interrupts. โดย นางสาวกนกอร ศิ ริอำนาจ รหัสนิสิต 50036153 กลุ่ม 2. Interrupts. Interrupts CPU มี interrupt pin สำหรับเป็นตัวรับสัญญาณจาก hardware interrupt เมื่อ hardware interrupt เกิดมีการขัดจังหวะเกิดขึ้น ค่าของ pin จะเปลี่ยนเพื่อบอก CPU ว่าขณะนี้มี interrupt เกิดขึ้น.

dahlia
Download Presentation

Interrupts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interrupts โดย นางสาวกนกอร ศิริอำนาจ รหัสนิสิต 50036153 กลุ่ม 2

  2. Interrupts Interrupts • CPU มี interrupt pin สำหรับเป็นตัวรับสัญญาณจาก hardwareinterrupt เมื่อ hardwareinterrupt เกิดมีการขัดจังหวะเกิดขึ้น ค่าของ pin จะเปลี่ยนเพื่อบอก CPU ว่าขณะนี้มี interrupt เกิดขึ้น

  3. Interrupts สาเหตุของ interrupt ประกอบไปด้วย : • Disk ทำงานเสร็จเรียบร้อยแล้ว • Key ถูกกด • Mouse ถูกเคลื่อนย้ายหรือเมื่อมีการคลิก • มีการเปลี่ยนแปลงของ Clock time • มีการทำงานของ Network อยู่ ฯลฯ

  4. The IVT The IVT • CPU มี 1 interrupt pin แต่คอมพิวเตอร์นั้นมีแหล่งที่สามารถเกิด interrupt ได้มากมาย คอมพิวเตอร์จะรู้ได้อย่างไรว่ามี interrupt เกิดขึ้น? CPU สามารถรู้ได้คือ จะมีการถาม PIC. • Hardware interrupt sources มีการเชื่อมต่อกับ PIC. ซึ่งมันจะบันทึก id เก็บเอาไว้ PIC เชื่อมต่อกับ CPU interrupt pin เมื่อ CPU ได้รับ interrupt มันจะถาม PIC.ว่า “ แหล่งของ interrupt ที่เกิดขึ้นนั้นคืออะไร ”

  5. สถานะของ CPU คือ การรวบรวมของค่าที่อยู่ใน register ทั้งหมดของ CPU ที่ชี้อยู่ในเวลานั้น

  6. Running the ISR Running the ISR CPU สามารถหยุดการทำงานได้อย่างไร การให้บริการ interruptและหลังจากนั้นทำต่อด้วยงานเดิม เมื่อมี interrupt เกิดขึ้น hardware CPU จะ“snapshot” ของสถานะ CPU และใส่มันลงไปบน stack หลังจากนั้นมันจะใช้ interrupt number จากPIC เทียบกับ index จากใน IVT ไปโหลด CPU IP กับ ISR address สำหรับ interrupt

  7. Running the ISR ตัวอย่าง ถ้าคีย์ถูกกดจะเป็นเหตุให้ PIC ได้รับสัญญาณในแหล่งข้อมูลที่ 1 และมันจะใส่ 1 ไปใน interrupt numberregister และหลังจากนั้นสัญญาณที่ CPU ก็จะเกิด interrupt CPUจะ snapshot ของสถานะ CPU และดันมันออกจาก stack ต่อจากนั้นมันจะได้รับค่าจาก PIC interrupt numberregister (ในกรณีนี้คือ 1) และไปที่ IVT และได้รับ address ใน slot 1 และใส่ไปใน CPU IPregister ต่อจากนั้น ISR ในส่วนของ keyboard นั้น address คือ ใน slot 1 ของ IVT ที่กำลังดำเนินการอยู่

  8. Return to original program Return to original program • วิธีที่เราสามารถกลับไปยังที่เดิมของโปรแกรม เมื่อ ISR กำลังจัดการโปรเซสที่ interrupt? เมื่อ subroutine ทำงาน แทนที่ของ RET ISR จะใช้ IRET เพื่อย้อนกลับไป นี่คือ CPU pop สถานะ snapshot จาก stack ข้างใน CPU ขณะนี้ CPU มีค่าทั้งหมดจากก่อนการเกิด interrupt กลับไปใน register ดังนั้นโปรแกรมเดิมจะทำงานต่อไปและมันจะไม่รู้ว่ามันถูกขัดจังหวะ

  9. Vocabulary Vocabulary • ISR – interrupt service routine เป็นโปรแกรมที่อุปกรณ์ภายนอกต้องการให้ไมโครโปรเซสเซอร์กระทำเพื่อการถ่ายโอนข้อมูล คำสั่งสุดท้ายของ Service routine จะมีคำสั่ง  return  อยู่ เหมือนSub routine ทั่วไปซึ่งคำสั่งนี้จะดึงค่า  address กลับออกมาจาก Stack มาใส่ใน pc จากนั้น ไมโครโปรเซสเซอร์ จะดำเนินการใน program หลักที่ทำค้างไว้ต่อไป • IVT – interrupt vector table เป็นส่วนที่เก็บค่าตำแหน่งของ interrupt service routines ไว้

  10. Vocabulary • IRET – interrupt return ที่ส่วนสุดท้ายของขั้นตอนการปฏิบัติของ Interrupt type 0 จะทำการนำค่าต่างๆของแฟล็กซและรีจิสเตอร์กลับมายังค่าเดิมก่อนที่จะเกิดการ interrupt ด้วยการ pop ค่าของแฟล็กซและรีจิสเตอร์ออกมาจาก stack • RET – return (from normal subroutine) • PIC – programmable interrupt controller • IP – instruction pointer ใช้ชี้ตำแหน่งของคำสั่งถัดไปให้กับ Microprocessor และทำหน้าที่หาตำแหน่งจริงของคำสั่งโดย IP = CS x 10H

  11. Vocabulary • CPU – central processing unit เป็นส่วนตีความ และประมวลผล ตามชุดของคำสั่งเครื่องจากซอฟต์แวร์ • RAM – random access memory เป็นหน่วยความจำหลักที่จำเป็น หน่วยความจำ ชนิดนี้จะสามารถเก็บข้อมูลได้ เฉพาะเวลาที่มีกระแสไฟฟ้าหล่อเลี้ยงเท่านั้นเมื่อใดก็ตามที่ไม่มีกระแสไฟฟ้า มาเลี้ยง ข้อมูลที่อยู่ภายในหน่วยความจำชนิดจะหายไปทันที ทำหน้าที่เก็บชุดคำสั่งและข้อมูลที่ระบบคอมพิวเตอร์กำลังทำงานอยู่ด้วย ไม่ว่าจะเป็นการนำเข้าข้อมูล (Input) หรือ การนำออกข้อมูล (Output)

  12. Summary of processing aninterrupt (1) สรุป การทำงานของอินเตอร์รัพท์ • อุปกรณ์ส่งสัญญาณอินเตอร์รัพท์ไปที่ PIC • PIC ส่ง ID ของแหล่งสัญญาณอินเตอร์รัพท์ไปให้ รีจิสเตอร์ • PIC ส่งสัญญาณไปบอก ซีพียูว่ามีอินเตอร์รัพท์ • CPU หยุดการทำงานของโปรแกรมปัจจุบัน • CPU เก็บสถานะการทำงานของโปรแกรมปัจจุบันลง stack • CPU ดึง ไอดีของ ตัวที่ส่งสัญญาณอินเตอร์รัพท์มาจากจาก PIC • CPU คำนวณ IP=IVT[IRQ]

  13. Summary of processing aninterrupt (2) • ISR จะทำการรันและ ทำงานตามอินเตอร์รัพท์ • ISR ส่งข้อมูลออกทาง IRET • CPU ดึงข้อมูลออกมาจาก stack • โปรแกรมเดิมจะทำการรันต่อ โดยที่โปรแกรมไม่รู้เลยว่าถูกขัดจังหวะการทำงาน

  14. Dual-Mode Operation การทำงานแบบ โหมดคู่ ในcpu สมัยใหม่ จะสนับสนุนการประมวลผลแบบหลายโหมด อย่างน้อยที่สุด 2 โหมดเพื่อสนับสนุนการทำงานให้มีประสิทธิภาพของระบบปฏิบัติการ โดยมีอยู่2โหมดคือ โหมดเต็มประสิทธิภาพ กับ โหมดผู้ใช้ โดยที่ระบบปฏิบัติการจะรันในโหมดที่ไม่จำกัดและจะรันทุกคำสั่ง ส่วนโปรแกรมประยุกต์จะรันในโหมดผู้ใช้ โดยที่ในโหมดนี้จะไม่อนุญาตให้เปลี่ยนแปลง ตารางเพจ ไม่ให้ทำงานกับ I/O โดยตรง หรือเปลี่ยนโหมดการทำงาน และคำสั่งพิเศษอื่นๆ

  15. Dual-Mode Operation (2) เมื่อมีการส่งสัญญาณขัดจังหวะจากอุปกรณ์ เครื่องจะเข้าสู่การทำงานแบบโหมดเต็มประสิทธิภาพโดยอัตโนมัติ เมื่อ ISR ทำงานเสร็จ มันจะส่งค่าไปให้ ซีพียู แล้วกลับเข้าสู่โหมดผู้ใช้ ถ้าเราใช้คำสั่งพิเศษในโหมดผู้ใช้ มันจะทำให้เกิดการขัดจังหวะ เพราะมันจะส่งค่าที่ใช้ควบคุมไปให้ระบบปฏิบัติการ และระบบปฏิบัติการจะทำการทำลายโปรแกรมที่รันอยู่

  16. Software Interrupts การขัดจังหวะของ ซอร์ฟแวร์ การเพิ่มขึ้นของการขัดจังหวะของอุปกรณ์ ทำให้ซีพียูสมัยใหม่นั้นสนับสนุนการขัดจังหวะของ ซอร์ฟแวร์ด้วย การทำงานของซอร์ฟแวร์อินเตอร์รัพท์นั้น เกือบจะเหมือนกันการทำงานของ ฮาร์ดแวร์อินเตอร์รัพท์ แต่แทนที่จะมีขาที่ใช้รับสัญญาณอินเตอร์รัพท์ และดึงข้อมูลจาก PIC ตัวอย่างที่จะกล่าวถึงคือ อินเตอร์รัพท์ 21 คือการติดต่อกับ system call ของ MS-DOS

  17. Software Interrupts (2) ซอร์ฟแวร์อินเตอร์รัพท์บางครั้งเรียกว่า traps ในระบบปฏิบัติการมีการเตรียมเครื่องมือให้ system call เพื่อสร้างอินเตอร์รัพท์ พวก system call มีตัวอย่างเช่น open(), read(), write(), close(), seek(), ioctl(), kill(), fork() ฯลฯ โปรแกรมประยุกต์นั้นโดยปกติแล้วจะเรียกใช้บางอย่างเช่น c library และที่จริงแล้วมันจะไปเรียก system call เพื่อสร้าง อินเตอร์รัพท์

  18. CPU Hogs โดยปกติแล้วระบบปฏิบัติการจะรันโปรแกรมจนกว่า ฮาร์ดแวร์หรือ ซอร์ฟแวร์อินเตอร์รัพท์หรือร้องขอการใช้งาน หลังจากนั้นมันจะทำการสลับโปรแกรมอื่นขึ้นมารัน หรือเรียกว่า context swintchปัญหาหนึ่งที่เกิดขึ้นเมื่อกำลังคำนวณอยู่และ ไม่สามารถใช้ system call ได้ ถ้าไม่มีการขัดจังหวะของฮาร์ดแวร์อินเตอร์รัพท์ จึงไม่มีโปรแกรมใดที่สามารถรันบนซีพียูได้ ระบบปฏิบัติการจะแก้ไข้ปัญหานี้โดย

  19. CPU Hogs (2) การใช้เวลาของระบบในเมนบอร์ดจะมี chip ที่ควบคุมการทำงานของเวลาในเครื่อง โดยมันจะส่งสัญญาณขัดจังหวะหลายครั้งในหนึ่งวินาที ระบบปฏิบัติการจะจะเพิ่ม ISR ที่ทำหน้าที่รับอินเตอร์รัพท์นี้ และสร้าง การนับเวลาถอยหลัง เพื่อยกเลิกการรันโปรแกรมปัจจุบัน แต่ละครั้งที่ ISR เรียกใช้ตัวจับเวลา เวลาจะค่อยๆ ลดลงเรื่อยๆ และเมื่อเวลาถึง 0 ระบบปฏิบัติการจะสลับโปรแกรมอื่นขึ้นมาทำงาน และตั้งค่าตัวนับเวลาใหม่ วิธีนี้จะแน่ใจได้ว่า CPU สามารถแบ่งเวลาทำงานโปรแกรมทั้งหมด และไม่ถูกแย่งใช้โดยโปรแกรมเดียว

  20. Processes โปรเซส คือ โปรแกรมที่กำลังรันอยู่ โดยที่มันจะต้องใช้ โค้ด สถานะซีพียูตารางเพจ การเปิดไฟล์ ฯลฯ ข้อมูลทั้งหมดนี้จะถูกจัดการด้วยระบบปฏิบัติการ แต่ละโปรแกรมที่กำลังรันอยู่จะเรียกว่า โปรเซส และบางครั้งอาจจะมีโปรเซสพิเศษ ที่ทำงานให้กับระบบปฏิบัติการ โดยแต่ละโปรเซสจะมีพื้นที่สำหรับบันทึกการทำงานของแต่ละตัว โดยจะเรียกว่า Process Control Block(PCB)

  21. Context Switch การสลับโปรเซส context switch คือชื่อของกระบวนการที่ช่วยซีพียูในการทำงาน เพื่อสลับโปรเซสที่กำลังรันอยู่ เมื่อซีพียูได้รับสัญญาณขัดจังหวะ มันจะทำงานโดยการเปลี่ยนสถานะซีพียู แล้วทำการบันทึกค่าที่ซีพียูกำลังทำอยู่ในปัจจุบันลงใน สแตค โดยที่จะทำงานเมื่อเกิดอินเตอร์รัพท์ขึ้น สำหรับ context switch นั้น ISR จะทำการคัดลอกข้อมูลเข้าสู่พื้นที่พิเศษที่เรียกว่า PCB หลังจากนั้นมันจะเรียกโปรแกรมอื่นขึ้นมาทำงาน

  22. Context Switch (2) โดยจะคัดดลอกข้อมูลต่าง ๆ ลงไปใน PCB และเก็บในรูปแบบของสแตคอีกทีหนึ่ง และเปลี่ยนสถานะซีพียู โดยวิธีการนี้จะทำเมื่อได้รับค่า IRET และเครื่องเปลี่ยนไปเป็นโหมดผู้ใช้ ระบบปฏิบัติการจะสามารถเปลี่ยนได้อย่างไร และจะให้โปรแกรมอะไรมารันต่อ โดยที่การสลับโปรเซสนั้นสามารถทำได้ทุกเมื่อ เมื่อตัวจับเวลาเป็น 0 หรือเมื่อโปรเซสไม่สามารถดึงข้อมูลจาก I/O ได้

  23. Context Switch(3) Process ที่ 1 ทำงานบนcpu ในตอนนี้

  24. Context Switch(4) เมื่อเกิดกระบวนการขัดจังหวะเกิดขึ้น cpuจะผลักเข้าสู่ stack

  25. Context Switch(5) ระบบปฏิบัติการ isrจะคัดลอกสถานะ cpu snapshotไปสู่โปรเซสที่1

  26. Scheduler chooses new process การเลือกกระบวนการใหม่ • ตารางเวลา CPU จะตั้งกระบวนการที่พร้อมจะทำงานและเลือกหนึ่งโปรแกรมขึ้นมาทำงานในตัวอย่างนี้โปรเซสเลือกที่จะทำงานบนโปรเซส 2

  27. Context Switch(6) ระบบปฏิบัติการ ISR จะคัดลอกสถานะ cpu snapshot จากโปรเซสที่2 ไปสู่ stack เพื่อแทนที่ โปรเซส 1

  28. Context Switch(7) ระบบปฏิบัติการ ISR มีปัญหาIRETcpuจะ pops สถานะซีพียู snapshot จาก stack ภายในซีพียูและโปรเซส2ทำงานถ้ามันไม่เคยหยุด

  29. Process Scheduling การจัดตารางเวลาโปรเซส • เมื่อ system call หยุดการทำงานของ I/O แล้ว หรือว่าหมดเวลาการทำงานของซีพียูแล้ว ระบบปฏิบัติการจะทำการสลับการทำงานเพื่อเรียกโปรเซสอื่นมารันแทน แล้วจะเลือกโปรเซสไหนมาทำงาน ? ซึ่งมีหลายวิธีในการเลือกโปรเซสมาทำงาน และแนวความคิดที่จะเลือกโปรเซสขึ้นมาทำงานนั้นเรียกว่า ตารางโปรเซส ซึ่งการเลือกโปรเซสนี้มีความซับซ้อนมากบนเครื่อง เมนเฟรม แต่ส่วนใหญ่ระบบปฏิบัติการจะใช้บางอย่าง เช่น FIFO

  30. Concepts Hardware Interrupt &PICจะส่งสัญญาณขัดจังหวะผ่านทางซิสเต็มบัส (System bus) มาที่ซีพียู Hardware แต่ละตัวจะมีตัวควบคุมอุปกรณ์ (Device Controller) อยู่ทุกตัว ในตัวควบคุมอุปกรณ์ประกอบไปด้วย 2 ส่วน คือ1. ที่พักข้อมูล เก็บข้อมูลที่มาจากตัว Hardware โดยตัวควบคุมเป็นคนรับ - ส่งข้อมูล2. Register พิเศษเก็บข้อมูลที่มาจากตัว Hardware โดยหน่วยประมวลผลกลางเป็นผู้รับ - ส่ง

  31. Concepts Software Interruptเรียกอีกอย่างหนึ่งว่า  System Call เกิดขึ้นโดยการที่โปรแกรมที่กำลังดำเนินการอยู่ไปเรียกใช้คำสั่งพิเศษ ๆเช่น การหารด้วย 0 (ศูนย์ การเข้าถึงโปรแกรมอื่นที่ไม่ถูกต้อง การเรียกใช้ระบบปฏิบัติการแบบผิด ๆเป็นต้น ) การทำงานของ  Software Interrupt จะคล้ายกับ Hardware Interrupt คือ1. เมื่อเกิด Interrupt หน่วยประมวลผลกลาง จะหยุดทำงานปัจจุบันและเก็บตำแหน่งนั้นไว้2. ย้ายตำแหน่งมาทำงานยังตำแหน่งที่บรรจุโปรแกรมดำเนินการ (Interrupt Service Routine)3. ดำเนินการตามโปรแกรมนั้นจนเสร็จ4. หน่วยประมวลผลกลางย้ายกลับมาทำงานที่ตำแหน่งเดิม Process & PCBโปรเซสและpcb

  32. Concepts Context switchคือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบ System Callsคือ โปรแกรมย่อย (Routine) หนึ่ง ๆ ที่คอยทำหน้าที่ในการติดต่อระหว่างระบบปฏิบัติการกับการโปรแกรมของผู้ใช้หรือ กระบวนการที่เกิดขึ้น

  33. Concepts Dual-mode operationการแบ่งการปฏิบัติการของการทำงานในระบบคอมพิวเตอร์ ออกเป็น 2 ช่วง ได้แก่- ช่วงของระบบ (Monitor Mode หรือ System Mode)- ช่วงของผู้ใช้ (User Mode) CPU stateสถานะซีพียู

  34. Unexplained บางแนวคิดที่อยู่ในสไลด์แต่ไม่ได้อธิบาย สิ่งเหล่านั้นจะถูกอธิบายภายในข้างหน้า เรามีปัญหาไก่และไข่ และเราต้องเริ่มต้น • Page table • Passing data between user process and the operating system ผ่านข้อมูลระหว่างผู้ใช้และกระบวนการ ระบบปฏิบัติการ • File handleการจัดการไฟล์

  35. Process States สถานะโปรเซส มีโปรเซสหนึ่งใน PCB ที่เรียกว่าสถานะโปรเซส มันเป็นสถานะต่างๆ ของการทำงานของโปรเซสในระหว่างที่โปรเซสมีโอกาสทำงานอยู่ • สถานะทำงาน (running) โปรเซสได้ใช้ทรัพยากรโปรเซสเซอร์ ซึ่งประมวลผลคำสั่งในส่วนรหัสของโปรเซส ทำให้โปรเซสสามารถมีความคืบหน้าในการทำงานได้

  36. Process States • สถานะติดขัด (Blocked state) คือสถานะที่โปรเซสหยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสไม่จำเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู ซึ่งจะทำให้โปรเซสอื่นเข้ามาครอบครองซีพียูในช่วงนี้ได้ • สถานะพร้อม (Ready state) คือสถานะที่โปรเซสพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการรันของโปรเซส

  37. Process State Diagram

  38. Process State Diagram (2) โดยแต่ละ วงกลมในแผนภาพนั้นแสดงให้เห็นกลุ่มของโปรเซส ซึ่งไม่ใช่แค่โปรเซสเดียว ถ้าคุณมี ซีพียูที่มีหลายหน่วยประมวลผล มันก็จะสามารถรันได้หลายโปรเซสในเวลาเดียวกัน ถ้าคุณมีมากกว่าหนึ่งโปรเซสที่รอดึงข้อมูลจาก I/O มันจะทำการบล็อกการทำงานของโปรเซส แต่ถ้าหลายโปรเซสที่รอการประมวลผลจากซีพียู มันจะกำหนดสถานะโปรเซสให้มีสถานะเป็น ready ในระบบส่วนใหญ่ในปัจจุบัน, จะเก็บโปรเซสใน คิวแบบหลายระบบดับ

  39. Priority queues ตัวอย่างที่ 3 การจัดคิว แบบลำดับความสำคัญคือ สูง ปกติ และต่ำ แต่ละระดับความสำคัญจะมีคิวซึ่งแสดงแบบ FIFOเมื่อระบบจะเลือกเก็บโปรเซสใหม่เพื่อรันมันจะเลือกโปรเซสแรกในคิวลำดับความสำคัญสูง คิวที่ว่างจะเลือกโปรเซสที่มีความสำคัญปกติเป็นลำดับแรก จะสิ้นสุดถ้าคิวที่มีความสำคัญสูงและปกติเป็น

  40. Priority queues (2) แต่ถ้าในระดับความสำคัญสูงและปานกลางนั้นว่าง จะเลือกระดับความสำคัญระดับต่ำมาทำงาน ซึ่งวิธีนี้ก็เป็นวิธีที่ดีพอสำหรับระบบส่วนใหญ่ อย่างไรก็ตามถ้าคุณตั้งค่างานทั้งหมดให้เป็นระดับสูงมันก็จะแย่งการทำงานของซีพียูไป โดยการทำงานปกติ มันจะทำงานในระดับความสำคัญปานกลาง สำหรับความสำคัญระดับต่ำจะทำงานบางอย่าง โดยแบ่งเวลาที่เหลือจากการทำงานของซีพียู และจะใช้ซีพียู เมื่อโปรเซสที่มีระดับความสำคัญปานกลางไม่ได้ใช้ซีพียูแล้ว ซึ่งโปรเซสระดับต่ำเหล่านี้จะใช้เวลาที่เหลือของซีพียู ถ้างานที่มีระดับความสำคัญระดับสูงก็จะถูกเลือกมาประมวลผลก่อน ซึ่งสามารถลดการทำงานของงานที่มีระดับความสำคัญปานกลางของซีพียู

  41. Priority queues (3) การจัดกลุ่มโปรเซส I/O จะทำให้สามารถจัดกลุ่มคิวได้ด้วย โดยปกติจะมี 1 คิวต่อหนึ่งอุปกรณ์ โดยจะมีคิวที่ใช้ทั่วไปอยู่ 1คิว แต่มันไม่ได้ถูกใช้ตั้งแต่เราสามารถทำฮาร์ดดิสก์แบบคู่ขนาน โดยที่เวอร์ชั่นก่อนๆของ MS-Windows ยังไม่สามารถทำงานแบบคู่ขนานได้ แต่ปัจจุบันนี้ ระบบปฏิบัติการสมัยใหม่นั้นสามารถทำงานแบบคู่ขนานได้ ซึ่งในเครื่องเมนเฟรมนั้นจัดระดับความสำคัญของอุปกรณ์ I/O ไว้ดีมากซึ่งเก็บไว้ใน ready queue แต่ว่าเครื่องทั่วๆไปนั้นไม่จำเป็นต้องมี

  42. Logical view of a process ในโปรเซสจะมี มุมมองในทางตรรกะ และมุมมองทางกายภาพ ในมุมมองทางตรรกะนั้นโดยปกติจะแสดงให้เห็นบางอย่างเช่น ภาพที่อยู่ด้านล่าง โดยมี code segment, data segment, stack segment และ heap segment ซึ่งเซกเมนต์เหล่านี้จำเป็นต่อการรันโปรแกรม ซึ่งอยู่ใน PCB โดยปกตินั้น PCB จะถูกเก็บไว้ซักที่หนึ่งในระบบปฏิบัติการ และเซกเมนต์ทั้ง 4 ตัวนั้นก็จะต้องถูกเก็บไว้ภายในพื้นที่หน่วยความจำของโปรเซสด้วย

  43. Logical view of a process (2) • code segment (CS) จะใช้เก็บ รหัสเลขฐานสอง สำหรับเครื่อง เพื่อให้ซีพียูใช้ในการรันโปรแกรม • data segment (DS) จะใช้เก็บตัวแปรทั่วๆไป สำหรับโปรเซส เพื่อใช้สถิติคำนวณการจองพื้นที่ต่างๆ • stack segment (SS) จะใช้เก็บ stack เพื่อให้ซีพียูใช้ในขณะรันโปรแกรม และนอกจากนี้ยังใช้เก็บตัวแปรหลักที่ใช้ส่งค่า เก็บตำแหน่งของโปรแกรมย่อย ฯลฯ

  44. Logical view of a process (3) • heap segment (HS) จะเก็บพื้นที่หน่วยความจำที่ใช้โดยโปรเซส • process control block (PCB) คือข้อมูลของระบบปฏิบัติการ แต่จะไม่เหมือนกับ 4 เซกเมนต์นั่น มันจะไม่จองพื้นที่หน่วยความจำของโปรเซส บางครั้งPCB นั้นใช้ใน linked list ที่อยู่ใน เคอร์เนล ของระบบปฏิบัติการ • ในซีพียูรุ่นเก่าๆ มีการแบ่งพื้นที่สำหรับ เซกเมนต์ แต่ในระบบใหม่จะใช้หน่วยความจำภายนอก โดยแต่ละเซกเมนต์จะแยกกันอยู่ แต่อาจจะมี เบส แอดเดรส เดียวกัน

  45. Old-style segmentation ซีพียูสมัยก่อนนั้นใช้ การแบ่งออกเป็นส่วนๆ และยังมีข้อจำกัดเรื่องการจัดการหน่วยความจำ เครื่อง 808x นั้นมีหน่วยความจำขนาด 1MB แต่ถ้าคุณลบออกด้วย BIOS การ์ดจอIVT ฯลฯ คุณจะมีหน่วยความจำที่ใช้ได้เพียง 640KB อย่างไรก็ดี ในชิปหนึ่งตัวจะใช้หน่วยความจำแค่ 64 KB เพื่อเก็บตำแหน่ง ซึ่งจะต้องเหลือหน่วยความจำไว้ให้ segment register อีก64 KB หลังจากนั้นเราก็จะใช้ ตำแหน่งในรีจิสเตอร์ เพื่อหาข้อมูลใน segment

  46. Old-style segmentation (2) ในการใช้ระบบ memory segment นั้นจะต้องใช้ร่วมกันระหว่าง segment:offsetโดยที่ segment จะบอกว่ามีจำนวน segment เท่าไหร่ที่อยู่ใน RAM และ offset จะบอกว่าตำแหน่งที่เราต้องการนั้นอยู่ตรงส่วนไหนของภายใน segment นั้น ให้คุณคิดเหมือนกับว่ามันเป็น array 2 มิติ โดยที่มิติแรกนั้นคือ segment และอีกมิติคือ offset หน่วยความจำ RAM ของระบบทั้งหมดสามารถเข้าถึงได้ แต่เข้าถึงได้เพียงครั้งละ 1 segment เท่านั้น

  47. Vocabulary • FIFO คือ First In First Out หรือมันก็คือ คิว • Segmentation คือการแบ่งตำแหน่งของหน่วยความจำออกเป็น 2 ส่วน คือ segment และ offset โดยที่การทำงานของมันเหมือน อาเรย์ สองมิติ, และขนาดของมันยังสามารถปรับได้ตามขนาดที่เล็กกว่า รีจิสเตอร์ โดยที่ตัวมันนั้นมีตำแหน่งเริ่มต้นที่ 0

  48. Concepts • Interrupts, the programmable interrupt controller (PIC), the interrupt number(IRQ), the interrupt vector table (IVT) • Interrupt service routine (ISR) • Context switch, CPU state, and process control block (PCB) • Dual-mode operation(โหมดการทำงานสองระบบ), โหมดพิเศษที่ทำงานเต็มประสิทธิภาพ สำหรับระบบปฏิบัติการ โหมดผู้ใช้สำหรับ โปรแกรมประยุกต์ • CPU Hogs and the system clock

  49. Concepts (2) • Process scheduling with priority queues(ตารางงานของโปรเซส แบบจัดลำดับความสำคัญ) • Process state diagram(แผนผังสถานะการทำงานของโปรเซส) • Logical view of a process(มุมมองของโปรเซสในเชิงตรรกะ) • Old-style memory segmentation(การทำงานของตัวแบ่งหน่วยความจำแบบเก่า)

More Related