Ch 2 process
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Ch 2 process

on

  • 1,319 views

 

Statistics

Views

Total Views
1,319
Views on SlideShare
1,319
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ch 2 process Presentation Transcript

  • 1. บทที่บทที่ 22 การจัดการการจัดการ ProcessProcess 1
  • 2. 2 การจัดการโปรเซส Process Management •โปรเซส หมายถึง โปรแกรมที่กำาลังเอ็กซิ คิวต์อยู่ •ในขณะที่โปรเซสกำาลังเอ็กซิคิวต์อยู่นั้นจะมี การใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจำา, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต •ในระบบ Multiprogramming อาจ ประกอบด้วยโปรเซสมากมาย •OS จึงมีหน้าที่ในการจัดการโปรเซสใน
  • 3. 3 องค์ประกอบของโปรเซส •โปรเซสที่สมบูรณ์มีองค์ประกอบดังนี้ 1. ชื่อและหมายเลขโปรเซส (Process ID) •เป็นหมายเลขประจำาโปรเซสเพื่อกำาหนดลำาดับการ เอ็กซีคิ้วต์ 2. โค้ดโปรแกรม (Program code) เป็นโค้ด คำาสั่งที่เป็นภาษาเครื่องที่สามารถเอ็กซิคิวต์ได้ ทันที 3. ข้อมูล (Data) เป็นข้อมูลของโปรเซสหนึ่ง หรืออาจใช้ร่วมกับโปรเซสอื่น ๆ ก็ได้ 4. บล็อกควบคุมโปรเซส (Process
  • 4. 4 องค์ประกอบของโปรเซส – บล็อกควบคุมโปรเซส (Process Control Block : PCB) OS จะกำาหนดเนื้อที่บางส่วน ในหน่วยความจำาเพื่อทำาเป็น PCB พอยเตอร์ สถานะ โปรเซส หมายเลขโปรเซส รีจิสเตอร์ ข้อมูลการจัด เวลา ข้อมูลหน่วย ความจำาข้อมูลแอ็ก เคาต์ ข้อมูลสถานะ I/O :
  • 5. (Process Control Block : PCB) 4.1 พอยเตอร์(Pointer) สำาหรับชี้ ตำาแหน่งของโปรเซสที่อยู่ในหน่วย ความจำา และตำาแหน่งของทรัพยากรที่ โปรเซสครอบครองอยู่ 4.2 สถานะของโปรเซส(Process Status) แสดงสถานะของโปรเซสที่ เป็นอยู่ในปัจจุบัน 5
  • 6. (Process Control Block : PCB) 4.3 หมายเลข โปรเซส(Process ID) เป็น หมายเลขประจำาตัวของโปรเซส 4.4 ตัวนับจำานวน(Program Counter) เป็นตัวนับที่แสดงที่อยู่ ของคำาสั่งต่อไปที่จะถูกประมวลผล 6
  • 7. (Process Control Block : PCB) o4.5 รีจิสเตอร์(Register) ทำาหน้าที่ เก็บข้อมูลสถานะระบบเมื่อมีอินเทอร์รัพ เกิดขึ้นเพื่อทำาให้โปรแกรมสามารถ ทำางานต่อไปได้เมื่อกลับมาทำางานอีก ครั้ง รีจิสเตอร์จะมีค่าและประเภทที่ เปลี่ยนแปลงได้ขึ้นอยู่กับ สถาปัตยกรรมของคอมพิวเตอร์ ประเภทของรีจิสเตอร์คือ 7
  • 8. (Process Control Block : PCB) o4.6 ข้อมูลการจัดการเวลา ซีพียู(CPU Scheduling Information) เป็นข้อมูลที่ประกอบ ด้วยลำาดับความสำาคัญของโปรเซสที่ ถูกกำาหนดโดยระบบปฏิบัติการเมื่อ โปรเซสถูกสร้างขึ้นมา สามารถ เปลี่ยนค่าไปได้ ซึ่งโปรเซสใดที่มี ความสำาคัญมากระบบปฏิบัติการจะให้ สิทธิมากกว่าโปรเซสอื่น เช่นให้เวลา 8
  • 9. (Process Control Block : PCB) o4.7 ข้อมูลการจัดการหน่วย ความจำา(Memory Management Information) เป็นข้อมูลเกี่ยวกับหน่วยความจำา ที่ระบบปฏิบัติการกำาหนดไว้ เช่น ขนาดหน่วยความจำา, ค่าของรีจิส เตอร์, Page table และ Segment table เป็นต้น 9
  • 10. (Process Control Block : PCB) 4.8 ข้อมูลแอ็กเคาต์(Account Information) เป็นข้อมูลที่อาจ ประกอบด้วยจำานวน CPU, เวลาที่ กำาหนด, หมายเลขแอ็กเคาต์, หมายเลข โปรเซส และอื่นๆ 4.9 ข้อมูลสถานะ อินพุต/เอาต์พุต(I/O Status Information) เป็นข้อมูลแสดง รายการของอุปกรณ์อินพุต/เอาต์พุตที่ 10
  • 11. 11 องค์ประกอบของโปรเซส (ต่อ) •โปรเซสที่สมบูรณ์มีองค์ประกอบดังนี้ 5. PSW (Program Status Word) เป็นตัวควบคุมลำาดับการ เอ็กซิคิวต์คำาสั่ง ของโปรเซส และเก็บข้อมูลเกี่ยวกับสถานะ ของโปรเซส ที่อยู่ของคำาสั่งที่จะเอ็กซิคิวต์ ต่อไป 6.คุณสมบัติของโปรเซส •ลำาดับความสำาคัญของโปรเซส (Priority) •อำานาจหน้าที่ของโปรเซส (Authority)
  • 12. คุณสมบัติของโปรเซส ลำำดับควำมสำำคัญของโปรเซส (Priority) โดยเมื่อโปรเซสถูกสร้ำงขึ้นมำ ลำำดับควำมสำำคัญของโปรเซสจะถูก กำำหนดโดยระบบปฏิบัติทันที สำมำรถ เปลี่ยนค่ำไปได้ ซึ่งโปรเซสใดที่มีควำม สำำคัญมำกระบบปฏิบัติกำรจะให้สิทธิ มำกกว่ำโปรเซสอื่น อำำนำจหน้ำที่ของโปรเซส (Authority) เป็นกำรบอกอำำนำจหน้ำที่ ของโปรเซสนั้นว่ำสำมำรถทำำอะไรได้บ้ำง ใช้อุปกรณ์อะไรได้บ้ำง เป็นต้น 12
  • 13. 13 สถำนะของโปรเซส •ในขณะที่เอ็กซิคิวต์โปรเซสอยู่นั้น โปร เซสจะมีกำรเปลี่ยนแปลงสถำนะอยู่ ตลอดเวลำสำมำรถแบ่งสถำนะดังนี้ –สถำนะเริ่มต้น (New) เป็นสถำนะที่เริ่ม ต้นสร้ำงโปรเซส –สถำนะพร้อม (Ready) เป็นสถำนะที่ พร้อมจะครอบครองซีพียู แต่ยังไม่มีกำรรัน –สถำนะรัน (Running) เป็นสถำนะที่โปร เซสเข้ำครอบครองซีพียูและมีกำรเอ็กซิคิว
  • 14. 14 สถำนะของโปรเซส •สถำนะรอ (Wait) เป็นสถำนะที่โปรเซสกำำ ลังรอเหตุกำรณ์บำงอย่ำง เช่น กำรรอ สัญญำณ กำรจัดกำรอินพุต/เอำต์พุตดีไวซ์ •สถำนะบล็อก (Block) เป็นสถำนะที่โปร เซสต้องกำรใช้อุปกรณ์อินพุต/เอำต์พุต หรือเกิดอินเทอร์รัพต์ระหว่ำงที่รันโปรเซส ซึ่งจะต้องรอให้มีกำรจัดกำรอุปกรณ์ อินพุต/เอำต์พุต หรือจัดกำรอินเทอร์รัพต์ให้ เรียบร้อยก่อนจะกลับไปสถำนะรันได้ต่อไป
  • 15. 15 สถำนะของโปรเซส เริ่มต้น new รัน Running บล็อก Block พร้อม Ready รอ Wait สิ้นสุด Terminate ยอมรับให้ทำำงำน อินพุต/เอำท์พุต หรืออีเวนต์เสร็จแล้ว รออินพุต/เอำต์พุต หรืออีเวนต์ ทำำงำนเสร็จสิ้นแล้วอินเทอร์รัพต์ Scheduler dispatch
  • 16. 16 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส • เมื่อผู้ใช้ต้องกำรส่งงำนให้เครื่องคอมพิวเตอร์ ทำำงำน OS จะเป็นผู้ที่รับทรำบควำมต้องกำรนี้ และ จะเตรียมสร้ำงโปรเซสให้กับงำนใหม่ที่ถูกส่งเข้ำมำ • OS จะต้องพิจำรณำว่ำเนื้อที่หน่วยควำมจำำหลักของ ระบบมีเพียงพอหรือไม่ – ถ้ำเพียงพอก็จะทำำกำรสร้ำงโปรเซสใหม่โดยเก็บไว้ใน หน่วยควำมจำำหลัก – ถ้ำไม่เพียงพอก็จะต้องรอจนกว่ำจะมีโปรเซสอื่นจบลง และมีเนื้อที่ในหน่วยควำมจำำเหลือมำกพอ • เมื่อโปรเซสถูกสร้ำงขึ้นมำใหม่จะอยู่ในสถำนะพร้อม ก่อน ยังไม่สำมำรถเข้ำไปใช้งำน CPU ได้
  • 17. 17 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส • สำเหตุที่โปรเซสไม่สำมำรถเข้ำใช้งำน CPU ได้ ทันที – เนื่องจำกระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ ใช้หลำยคนในเวลำเดียวกัน – ทำำให้มีโปรเซสมำกมำยเกิดขึ้น ซึ่งโปรเซสเหล่ำนี้ ต้องกำรใช้ CPU ทั้งสิ้น – ต้องมีกำรจัดคิวและแจ้งสถำนะพร้อมให้กับโปรเซสไว้ ก่อน – เมื่อโปรเซสที่ใช้งำน CPU ทำำงำนเสร็จสิ้นหรือถูก ยกเลิก ทำำให้ CPU จะว่ำง โปรเซสต่อไปที่อยู่ในคิวก็ จะเลื่อนเข้ำไปใช้ CPU (เปลี่ยนสถำนะจำกพร้อมเป็น
  • 18. 18 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส เริ่มต้น รันพร้อม สิ้นสุด
  • 19. 19 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส • กรณีที่โปรเซสใดใช้เวลำรันเป็นเวลำนำนก็จะ ครอบครองซีพียูเป็นเวลำนำน • ทำำให้โปรเซสอื่น ๆ เสียเวลำในกำรรอนำนเกิน ไป • เพื่อแก้ปัญหำนี้ OS จะกำำหนดเวลำในกำรอยู่ ในสถำนะกำรรันของทุกโปรเซสไว้ เรียกว่ำ “เวลำควันตัม (Quantum time)” • ถ้ำโปรเซสใดใช้เวลำครอบครอง CPU เกิน กว่ำเวลำควันตัม ระบบปฏิบัติกำรจะย้ำยโปรเซ สนั้นไปต่อคิวใหม่และเปลี่ยนเป็นสถำนะพร้อม
  • 20. 20 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส เริ่มต้น รันพร้อม สิ้นสุด • ภำยในระยะเวลำควันตัม ถ้ำโปรเซสจบลง โปรเซสก็จะออกจำกระบบ ทรัพยำกรต่ำง ๆ ที่ โปรเซสครอบครองก็จะถูกส่งคืนให้กับระบบ เกินเวลำควอน ตัม
  • 21. 21 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส • กรณีที่โปรเซสกำำลังอยู่ในสถำนะรัน มีควำม ต้องกำรใช้อุปกรณ์อินพุต/เอำท์พุต หรืออำจ จะเกิดอินเทอร์รัพต์ (Interrupt) ขึ้น • OS ก็จะย้ำยโปรเซสจำกสถำนะรันไปอยู่ใน สถำนะบล็อก และดึงโปรเซสที่อยู่ในคิวต่อไป มำรันเริ่มต้น รันพร้อม สิ้นสุด บล็อก
  • 22. 22 ขั้นตอนกำรเปลี่ยนสถำนะของ โปรเซส • กรณีที่ระบบมีงำนมำกเกินไป OS ไม่สำมำรถ ตอบสนองกำรทำำงำนของโปรเซสทั้งหมดได้ • OS จะนำำเอำโปรเซสบำงโปรเซสไปเก็บไว้ใน สถำนะรอชั่วครำวก่อน รอจนจำำนวนโปรเซส ในระบบลดลงมำอยู่ในระดับปกติ จึงค่อยย้ำย โปรเซสเหล่ำนั้นกลับมำทำำงำน รันพร้อม รอบล็อก
  • 23. 23 ลำำดับชั้นของโปรเซส (Process Hierarchy) • เมื่อผู้ใช้ส่งงำนให้กับระบบรัน OS จะทำำกำร สร้ำงโปรเซสสำำหรับงำนนั้นขึ้นมำ • กำรทำำงำนของ OS ก็ถือว่ำเป็นงำนของระบบ ดังนั้นจะมีกำรสร้ำงโปรเซสขึ้นเหมือนกัน • นอกจำกนั้นโปรเซสที่ถูกสร้ำงขึ้นก็สำมำรถ สร้ำงโปรเซสย่อยได้ • โปรเซสที่ให้กำำเนิด เรำเรียกว่ำโปรเซสแม่ (parent process) • โปรเซสย่อยที่เกิดขึ้น เรำเรียกว่ำโปรเซสลูก (child process)
  • 24. 24 ลำำดับชั้นของโปรเซส (Process Hierarchy) • โดยทั่วไป เมื่อโปรเซสแม่จบลง โปรเซสต่ำง ๆ ที่อยู่ ภำยใต้ตัวมันก็จะจบลงตำมไปด้วย • แต่ OS บำงตัวยอมให้โปรเซสแม่จบลง โดยที่โปรเซ สลูกไม่ต้องจบลงตำมไปด้วย ในกรณีนี้โปรเซสลูกก็ จะไม่มีโปรเซสแม่ A B C D E F G H
  • 25. 25 ลำำดับชั้นของโปรเซส (Process Hierarchy) • จำกตัวอย่ำงในรูป โปรเซส A จะมีโปรเซสลูก 3 โปรเซสคือ B,C และ D • ถึงแม้ว่ำโปรเซส A เป็นโปรเซสแม่ของโปรเซส B,C และ D แต่โปรเซส A ไม่ได้เป็นผู้ที่สร้ำง โปรเซส B,C และ D • ผู้ที่สร้ำงโปรเซสทั้งหมดได้แก่ OS ซึ่ง OS จะมี โปรเซสหนึ่งทำำหน้ำที่สร้ำงและยุติโปรเซส คือ “ตัวจัดคิวระยะยำว” • คำำถำม – โปรเซส F,G,H นั้นถูกสร้ำงโดยโปรเซส D ใช่
  • 26. 26 โปรเซสสื่อประสำน (Cooperating Processes) • โปรเซสที่เอ็กซิคิวต์ในระบบนั้นมี 2 แบบ – โปรเซสที่เป็นอิสระ ( Independent Processes) หมำยถึงโปรเซสที่ไม่มีผลกระทบหรือไม่ได้รับผลก ระทบจำกโปรเซสอื่น – โปรเซสสื่อประสำน (Cooperating Processes) หมำยถึงโปรเซสที่มีผลกระทบหรือได้รับผลกระทบ จำกโปรเซสอื่น • เหตุผลที่ทำำให้เกิดกำรประสำนงำนระหว่ำง โปรเซส – ต้องกำรใช้ข้อมูลร่วมกัน – ต้องกำรเพิ่มควำมเร็วในกำรคำำนวณ
  • 27. 27 กำรติดต่อระหว่ำงโปรเซส (Interprocess communication) • เมื่อโปรเซส A ต้องกำรติดต่อกับโปรเซส B – โปรเซส A และ B จะต้องจองเนื้อที่ในหน่วยควำม จำำในส่วนที่ว่ำงเอำไว้ – ทั้ง 2 โปรเซสต้องรู้ว่ำหน่วยควำมจำำร่วมนี้อยู่ที่ใด – เมื่อโปรเซส A ส่งข้อมูลให้โปรเซส B ข้อมูลจะถูก ส่งไปไว้ในหน่วยควำมจำำร่วม หน่วย ควำมจำำร่วม โปรเซส A โปรเซส B ส่งข้อมูล รับข้อมูล รับข้อมูล ส่งข้อมูล
  • 28. 28 กำรติดต่อระหว่ำงโปรเซส (Interprocess communication) •เมื่อโปรเซสต้องกำรใช้ข้อมูลของโปรเซ สอื่น โปรเซสที่ถูกร้องขอจะส่งข้อมูลไปให้ กำรที่โปรเซสต่ำง ๆ มีกำรติดต่อกันเช่นนี้ เรำเรียกว่ำ กำรติดต่อระหว่ำงโปรเซส •โดยทั่วไปกำรติดต่อระหว่ำงโปรเซสนั้นจะ ใช้วิธีกำรคือ กำรใช้หน่วยควำมจำำ ร่วม (Shared memory) •กลไกกำรรับส่งข้อมูลผ่ำนทำงหน่วยควำม จำำร่วมนี้ OS จะไม่ช่วยจัดกำรให้โปรเซส
  • 29. 29 กำรติดต่อระหว่ำงโปรเซส (Interprocess communication) • เมื่อโปรเซส A ต้องกำรติดต่อกับโปรเซส B – โปรเซส B จะตรวจสอบได้เองว่ำโปรเซส A นำำ ข้อมูลไปวำงไว้แล้วหรือยัง – ถ้ำโปรเซส A ยังไม่ส่งข้อมูลมำ โปรเซส B ก็ จะยังไม่ดึงเอำข้อมูลมำใช้ – นอกจำกนั้นโปรเซส B ยังต้องสำมำรถตรวจ สอบได้ว่ำข้อมูลที่อยู่ในหน่วยควำมจำำร่วมนั้น เป็นข้อมูลเก่ำที่เคยนำำมำใช้แล้วหรือยัง – สำำหรับโปรเซส A ถ้ำจะส่งข้อมูลชุดใหม่ให้ โปรเซส A จะต้องตรวจสอบก่อนว่ำข้อมูลชุด
  • 30. 30 กำรติดต่อระหว่ำงโปรเซส (Interprocess communication) • นอกจำกกำรใช้หน่วยควำมจำำร่วมแล้วยังมีวิธีอื่น ที่มีควำมสะดวกมำกกว่ำและเป็นมำตรฐำน คือ กำรใช้พอร์ท (Port) • พอร์ท คือพื้นที่ในหน่วยควำมจำำส่วนหนึ่งที่ OS จัดไว้เพื่อให้โปรเซสต่ำง ๆ ใช้ร่วมกันได้ • โดย OS จะทำำหน้ำที่เป็นผู้ให้จังหวะในกำรรับส่ง ข้อมูลให้กับแต่ละโปรเซส เช่น – ถ้ำโปรเซส A ต้องกำรใช้ข้อมูลจำกโปรเซส B OS จะเป็นผู้ค้นหำข้อมูล B จำกพอร์ท ถ้ำพบก็จะให้ โปรเซส A รับข้อมูลไป แต่ถ้ำไม่พบก็จะให้โปรเซ สนั้นหยุดรอจนกว่ำจะมีข้อมูลถูกส่งมำไว้ที่พอร์ท
  • 31. 31 โครงสร้ำงของพอร์ท • พอร์ทในปัจจุบันมี 3 แบบ – พอร์ทแบบคิว โครงสร้ำงของพอร์ทแบบนี้ข้อมูล ชุดใดที่ถูกส่งเข้ำพอร์ทก่อนจะถูกดึงออกไปก่อน ข้อมูลชุดใดที่ถูกส่งเข้ำพอร์ททีหลังจะถูกดึงออกไป ทีหลัง – พอร์ทแบบไปป์ มีลักษณะกำรทำำงำนเหมือนพ อร์ทแบบคิว แต่ไปป์มีควำมยำวของพอร์ทไม่จำำกัด ในขณะที่พอร์ทแบบคิวมีควำมยำวของพอร์ทคงที่ – พอร์ทแบบแสต๊ก มีกลไกกำรทำำงำนโดยข้อมูล ส่งข้อมูลเข้ำพอร์ทข้อมูลออกจำกพอร์ท
  • 32. 32 กำรเข้ำจังหวะของโปรเซส (Process Synchronization) •ในกำรใช้ทรัพยำกรโดยเฉพำะอย่ำงยิ่ง ข้อมูลอำจก่อให้เกิดปัญหำที่ทำำให้กำร ทำำงำนไม่ถูกต้อง •ตัวอย่ำง – เริ่มต้นค่ำ X = 10 – โปรเซสที่ 1 มีกำรเพิ่มค่ำ X จำกเดิม 10 – โปรเซสที่ 2 มีกำรลบค่ำ X ลง 10 – ผลจำกกำรทำำงำนจะเป็นดังนี้ (10+10-10) = 10
  • 33. 33 กำรเข้ำจังหวะของโปรเซส (Process Synchronization) 10 X=X+10 20 X=X-10 10 โปรเซสที่ 1 โปรเซสที่ 2 โปรเซสที่ 1 ทำำงำนเสร็จก่อนโปรเซสที่ 2 X=10 X=20 X=20 X=10
  • 34. 34 การเข้าจังหวะของโปรเซส (Process Synchronization) 10 X=X-10 0 X=X+10 10 โปรเซสที่ 2 โปรเซสที่ 1 โปรเซสที่ 2 ทำางานเสร็จก่อนโปรเซสที่ 1 X=10 X=0 X=0 X=10
  • 35. 35 การเข้าจังหวะของโปรเซส (Process Synchronization) X=X+10 10 X=X-10 0 หรือ 20 โปรเซสที่ 1 โปรเซสที่ 2 โปรเซสที่ 1 และโปรเซสที่ 2 ทำางานใกล้เคียงกัน X=10 X=10 X=0 X=20
  • 36. 36 การเข้าจังหวะของโปรเซส (Process Synchronization) •จากรูปจะเห็นว่าถ้าโปรเซสที่ 1 และ 2 มี การทำางานที่เป็นอิสระอาจทำาให้ผลลัพธ์เกิด ความผิดพลาดขึ้น •ดังนั้นเพื่อป้องกันความผิดพลาดที่เกิดขึ้น จะ ต้องมีการจัดจังหวะการทำางานให้กับแต่ละ โปรเซสสำาหรับการใช้ข้อมูลร่วมกัน •จากตัวอย่างควรกำาหนดว่าเมื่อโปรเซสใดได้ เข้ามาครอบครองข้อมูล โปรเซสอื่น ๆ ที่ ต้องการใช้ข้อมูลตัวเดียวกันจะต้องหยุดรอ
  • 37. 37 การเข้าจังหวะของโปรเซส (Process Synchronization) •การป้องกันโปรเซสอื่น ๆ เข้ามาใช้ ทรัพยากรซึ่งมีโปรเซสหนึ่งครอบครองอยู่ แล้วเรียกว่า การไม่เกิดร่วม (Mutual exclusion) •ในช่วงเวลาที่โปรเซสเข้าไปครอบครอง ทรัพยากรแบบการไม่เกิดร่วมนี้เรียกว่า โปร เซสนั้นอยู่ในย่านวิกฤต (Critical region หรือ Critical Section)
  • 38. 38 ปัญหาการทำางานของโปรเซส •ปัญหาที่ 1 : การอดตาย (Starvation) หรือ การเลื่อนไหล ไปอย่างไม่มีวันสิ้นสุด (Infinite postponement) –ถ้าโปรเซส A และ B ต้องการใช้ เครื่องพิมพ์พร้อมกัน โปรเซสที่จะได้ใช้ ก่อนก็คือโปรเซสที่มีลำาดับความสำาคัญสูง กว่า –เช่น ถ้า โปรเซส B มีลำาดับความสำาคัญสูง
  • 39. 39 ปัญหาการทำางานของโปรเซส –ในขณะที่โปรเซส A กำาลังรอ ปรากฏ ว่ามีโปรเซสอื่น ๆ ที่มีลำาดับความ สำาคัญสูงกว่าโปรเซส A ต้องการใช้ เครื่องพิมพ์ –สิ่งที่เกิดขึ้นกับโปรเซส A คือ โปรเซส A จะถูกโปรเซสอื่นแซงตลอดเวลา เราเรียกเหตุการณ์ที่เกิดขึ้นนี้ว่า “การอดตายของโปรเซส (Starvation) หรือ การเลื่อนไหล
  • 40. 40 ปัญหาการทำางานของโปรเซส • ปัญหาที่ 2 : วงจรอับ หรือ การติดตาย (Deadlock) ทรัพยากร A ทรัพยากร B โปรเซส 1 โปรเซส 2 ครอบครอง ครอบครอง ต้องการ ต้องการ
  • 41. แบบฝึกหัดบทที่ 2 1. สถานะของโปรเซสมีอะไรบ้าง จงอธิบาย 2. เวลา Quantum Time คืออะไร 3. ปัญหา DeadLock เกิดขึ้นได้อย่างไร 4. สถานะ Block เกิดขึ้นได้อย่างไร 5. การติดต่อกันระหว่าง Process เป็นหน้าที่ของ โคร 6. พอร์ท มีกี่แบบอะไรบ้าง 7. จงยกตัวอย่าง พอร์ทแบบสเต็ก 8. Mutual exclusion เกิดขึ้นได้อย่างไร 9. ปัญหาการอดตาย เกิดขึ้นได้อย่างไร 10. องค์ประกอบของโปรเซส มีอะไรบ้าง 41