สถานะกระบวนการ

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

สถานะของกระบวนการต่างๆ ที่แสดงในแผนภาพสถานะโดยมีลูกศรบ่งชี้ถึงการเปลี่ยนแปลงที่เป็นไปได้ระหว่างสถานะ - ดังที่เห็นได้ว่ากระบวนการบางอย่างถูกเก็บไว้ในหน่วยความจำหลัก (สีเหลือง) และบางส่วนถูกเก็บไว้ในหน่วยความจำรอง (สีเขียว)

สถานะของกระบวนการหลัก

สถานะกระบวนการทั่วไปต่อไปนี้เป็นไปได้บนระบบคอมพิวเตอร์ทุกประเภท ในสถานะเหล่านี้ส่วนใหญ่ กระบวนการจะถูก "จัดเก็บ" ไว้ในหน่วย ความจำหลัก

สร้าง

เมื่อกระบวนการถูกสร้างขึ้นครั้งแรก กระบวนการนั้นจะอยู่ในสถานะ " สร้าง " หรือ " ใหม่ " ในสถานะนี้ กระบวนการกำลังรอการเข้าสู่สถานะ "พร้อม" การรับเข้าเรียนจะได้รับการอนุมัติหรือล่าช้าตาม กำหนดการระยะยาวหรือการรับเข้าเรียน โดยทั่วไปใน ระบบ คอมพิวเตอร์เดสก์ท็อป ส่วนใหญ่ การรับเข้านี้จะได้รับการอนุมัติโดยอัตโนมัติ อย่างไรก็ตาม สำหรับระบบปฏิบัติการแบบเรียลไทม์การรับเข้านี้อาจล่าช้า ในระบบเรียลไทม์ การยอมรับกระบวนการต่างๆ มากเกินไปในสถานะ "พร้อม" อาจนำไปสู่การอิ่มตัวมากเกินไปและ การมี ทรัพยากรของระบบมาก เกินไป ส่งผลให้ไม่สามารถดำเนินการตามกำหนดเวลาของกระบวนการได้

พร้อม

กระบวนการ "พร้อม" หรือ "กำลังรอ" ถูกโหลดลงในหน่วยความจำหลักแล้วและกำลังรอการดำเนินการบนCPU (เพื่อให้ผู้มอบหมายงานหรือผู้กำหนดเวลาระยะสั้นเปลี่ยนบริบทไปยัง CPU) อาจมีกระบวนการ "พร้อม" มากมายที่จุดใดจุดหนึ่งของการทำงานของระบบ ตัวอย่างเช่น ในระบบที่มีโปรเซสเซอร์ตัวเดียว มีเพียงกระบวนการเดียวเท่านั้นที่สามารถดำเนินการได้ในแต่ละครั้ง และกระบวนการ "ที่กำลังดำเนินการพร้อมกัน" อื่นๆ ทั้งหมดจะรออยู่ การดำเนินการ

คิวที่พร้อมหรือคิวการรันถูกใช้ใน การกำหนดเวลา ของคอมพิวเตอร์คอมพิวเตอร์สมัยใหม่สามารถรันโปรแกรมหรือกระบวนการต่างๆ มากมายในเวลาเดียวกันได้ อย่างไรก็ตาม CPU สามารถจัดการได้ครั้งละหนึ่งกระบวนการเท่านั้น กระบวนการที่พร้อมสำหรับ CPU จะถูกเก็บไว้ในคิวสำหรับกระบวนการ "พร้อม" กระบวนการอื่นๆ ที่กำลังรอให้เหตุการณ์เกิดขึ้น เช่น การโหลดข้อมูลจากฮาร์ดไดรฟ์หรือการรอการเชื่อมต่ออินเทอร์เน็ต ไม่อยู่ในคิวที่พร้อมใช้งาน

วิ่ง

กระบวนการจะเข้าสู่สถานะกำลังทำงานอยู่เมื่อมีการเลือกให้ดำเนินการ คำสั่งของกระบวนการดำเนินการโดยหนึ่งใน CPU (หรือคอร์) ของระบบ มีกระบวนการทำงานสูงสุดหนึ่งกระบวนการต่อ CPU หรือคอร์ กระบวนการสามารถทำงานได้ในสองโหมด ได้แก่โหมดเคอร์เนลหรือโหมดผู้ใช้[1] [2]

โหมดเคอร์เนล

  • กระบวนการในโหมดเคอร์เนลสามารถเข้าถึงได้ทั้ง: เคอร์เนลและที่อยู่ผู้ใช้
  • โหมดเคอร์เนลช่วยให้สามารถเข้าถึงฮาร์ดแวร์ได้ไม่จำกัด รวมถึงการดำเนินการตามคำสั่งพิเศษ
  • คำสั่งต่างๆ (เช่น คำสั่ง I/Oและคำสั่งหยุด) เป็นสิทธิพิเศษและสามารถดำเนินการได้เฉพาะในโหมดเคอร์เนลเท่านั้น
  • การเรียกระบบจากโปรแกรมผู้ใช้นำไปสู่การสลับไปยังโหมดเคอร์เนล

โหมดผู้ใช้

  • กระบวนการในโหมดผู้ใช้สามารถเข้าถึงคำสั่งและข้อมูลของตนเองได้ แต่ไม่ใช่คำสั่งเคอร์เนลและข้อมูล (หรือกระบวนการอื่น ๆ )
  • เมื่อระบบคอมพิวเตอร์ดำเนินการในนามของแอปพลิเคชันผู้ใช้ ระบบจะอยู่ในโหมดผู้ใช้ อย่างไรก็ตาม เมื่อแอปพลิเคชันผู้ใช้ร้องขอบริการจากระบบปฏิบัติการ (ผ่านการเรียกระบบ ) ระบบจะต้องเปลี่ยนจากผู้ใช้เป็นโหมดเคอร์เนลเพื่อตอบสนองคำขอ
  • โหมดผู้ใช้หลีกเลี่ยงความล้มเหลวร้ายแรงต่างๆ:
    • มีพื้นที่ที่อยู่เสมือน แบบแยก สำหรับแต่ละกระบวนการในโหมดผู้ใช้
    • โหมดผู้ใช้ช่วยให้มั่นใจได้ถึงการดำเนินการแยกของแต่ละกระบวนการ เพื่อไม่ให้ส่งผลกระทบต่อกระบวนการอื่นๆ เช่นนี้
    • ไม่อนุญาตให้เข้าถึงอุปกรณ์ฮาร์ดแวร์ใด ๆ โดยตรง

ถูกบล็อก

กระบวนการจะเปลี่ยนไปสู่ สถานะ ที่ถูกบล็อกเมื่อไม่สามารถดำเนินการต่อไปได้หากไม่มีการเปลี่ยนแปลงสถานะหรือเหตุการณ์จากภายนอกเกิดขึ้น ตัวอย่างเช่น กระบวนการอาจบล็อกการเรียกไปยังอุปกรณ์ I/O เช่น เครื่องพิมพ์ หากไม่มีเครื่องพิมพ์ โดยทั่วไปกระบวนการจะบล็อกเมื่อต้องการให้ผู้ใช้ป้อนข้อมูลหรือต้องการเข้าถึงส่วนสำคัญซึ่งจะต้องดำเนินการแบบอะตอมมิก ส่วนที่สำคัญดังกล่าวได้รับการปกป้องโดยใช้ออบเจ็กต์การซิงโครไนซ์ เช่น เซมาฟอร์หรือ mutex

สิ้นสุด

กระบวนการอาจถูกยกเลิกไม่ว่าจะจากสถานะ "กำลังทำงาน" โดยดำเนินการให้เสร็จสิ้นหรือโดยการถูกฆ่าอย่างชัดเจน ในกรณีใดกรณีหนึ่ง กระบวนการจะย้ายไปยังสถานะ "สิ้นสุด" โปรแกรมพื้นฐานไม่ได้ทำงานอีกต่อไป แต่กระบวนการยังคงอยู่ในตารางกระบวนการเป็นกระบวนการซอมบี้จนกว่ากระบวนการหลักจะเรียกwait การเรียกของระบบเพื่ออ่านสถานะทางออกณ จุดที่กระบวนการถูกลบออกจากตารางกระบวนการ ในที่สุดก็สิ้นสุดกระบวนการ ตลอดชีวิต ถ้าพาเรนต์ล้มเหลวในการเรียกwaitสิ่งนี้จะยังคงใช้รายการตารางกระบวนการ (ซึ่งก็คือตัวระบุกระบวนการหรือ PID) และทำให้ทรัพยากรรั่วไหล

สถานะกระบวนการเพิ่มเติม

มีสถานะเพิ่มเติมอีกสองสถานะสำหรับกระบวนการในระบบที่รองรับหน่วยความจำเสมือนในทั้งสองสถานะนี้ กระบวนการจะถูก "จัดเก็บ" ไว้ในหน่วยความจำรอง (โดยทั่วไปคือฮาร์ดดิสก์ )

สลับออกและรอ

(เรียกอีกอย่างว่าการระงับและการรอคอย ) ในระบบที่รองรับหน่วยความจำเสมือน กระบวนการอาจถูกสลับออก กล่าวคือ ลบออกจากหน่วยความจำหลักและวางไว้บนที่จัดเก็บข้อมูลภายนอกโดยตัวกำหนดตารางเวลา จากที่นี่กระบวนการอาจถูกสลับกลับไปสู่สถานะรอ

สลับออกแล้วบล็อคเลย

(เรียกอีกอย่างว่าถูกระงับและถูกบล็อก ) กระบวนการที่ถูกบล็อกอาจถูกสลับออกเช่นกัน ในกรณีนี้ กระบวนการถูกสลับออกและถูกบล็อก และอาจถูกสลับกลับเข้ามาใหม่อีกครั้งภายใต้สถานการณ์เดียวกันกับกระบวนการสลับออกและรอ (แม้ว่าในกรณีนี้ กระบวนการจะย้ายไปยังสถานะที่ถูกบล็อก และอาจยังคงรออยู่ เพื่อให้มีทรัพยากรเพียงพอ)

ดูสิ่งนี้ด้วย

อ้างอิง

  1. ↑ อับ ราฮัม ซิลเบอร์ชาตซ์; ปีเตอร์ แบร์ กัลวิน; เกร็ก แกญ (29-07-2551) แนวคิดระบบปฏิบัติการไอเอสบีเอ็น 978-0470128725-
  2. มอริซ เจ. บาค (1986) การออกแบบระบบปฏิบัติการ UNIX Prentice-Hall, Inc. อัปเปอร์แซดเดิลริเวอร์, นิวเจอร์ซีย์, สหรัฐอเมริกา ©1986 ไอเอสบีเอ็น 0-13-201799-7-
  • สตอลลิงส์, วิลเลียม (2005) ระบบปฏิบัติการ: หลักภายในและการออกแบบ (ฉบับที่ 5) ศิษย์ฮอลล์. ไอเอสบีเอ็น 0-13-127837-1-
โดยเฉพาะบทที่ 3 ส่วนที่ 3.2 "สถานะกระบวนการ" รวมถึงรูปที่ 3.9 "การเปลี่ยนสถานะกระบวนการด้วยสถานะหยุดชั่วคราว"
ดึงข้อมูลจาก "https://en.wikipedia.org/w/index.php?title=Process_state&oldid=1194039582"