'ติด' (ในผลลัพธ์ของ 'บนสุด') เกี่ยวข้องกับ 'ไม่ตอบสนอง' (ในการตรวจสอบกิจกรรม), 'หมุน' หรือ 'วาง'


16

ในผลลัพธ์ของ top คำสั่งบางครั้งฉันเห็น ติดอยู่ .

แอปเปิ้ล (1) หน้าคู่มือ OS X ไม่ได้อธิบายการใช้คำนี้

อย่างไรถ้ามันทั้งหมดทำ ติดอยู่ เกี่ยวข้องกับสิ่งต่อไปนี้หรือไม่?

  1. ไม่ตอบสนอง - อาจเห็นได้ใน Activity Monitor ในกล่องโต้ตอบ Force Quit Applications ของ loginwindow และอื่น ๆ
  2. .hang ไฟล์ - อาจมีอยู่ที่ /Library/Logs/DiagnosticReports
  3. .spin ไฟล์ - อาจมีอยู่ที่ /Library/Logs/DiagnosticReports

มีคำตอบที่ยอมรับได้สำหรับจุดแรก คำตอบที่เกี่ยวข้องกับคะแนน 2 และ 3 จะได้รับการชื่นชม

คำตอบ:


15

มักจะไม่มีความสัมพันธ์ระหว่าง a ติดอยู่ กระบวนการของ top และแอปพลิเคชันที่ไม่ตอบสนอง:

  • ติดอยู่ หมายความว่าขณะนี้กระบวนการไม่สามารถอินเตอร์รัปต์ได้ซึ่งโดยปกติจะเป็นกรณีนี้หากกระบวนการกำลังรอให้ดิสก์หรือบล็อกข้อมูลเครือข่ายอ่าน (หรือสิ่งที่คล้ายกันระดับต่ำ) เทคนิคการพูดกระบวนการกำลังดำเนินการในพื้นที่เคอร์เนล (aka Unix kernel) และไม่สามารถถูกขัดจังหวะ (ดังนั้นแม้ kill -9 จะไม่มีผลกระทบใด ๆ ) โดยปกติแล้วสิ่งเหล่านี้ ติดอยู่ ระบุมิลลิวินาทีล่าสุดเท่านั้น (ตามที่คุณเห็น top เช่นกันเพราะจำนวน ติดอยู่ ประมวลผลการเปลี่ยนแปลงกับทุกรอบการแสดงผล)
  • แอปพลิเคชันที่ไม่ตอบสนอง เป็นไปได้ เกินไป ไม่ว่างเพื่อตอบกลับเหตุการณ์ใด ๆ ที่ OS X ขว้างใส่พวกเขา

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


ขอบคุณ - ถ้า ติดอยู่ มีความหมายเหมือนกันกับ ยูพีเอส จากนั้นฉันก็คุ้นเคยกับสถานะนั้น uninterruptible พบเห็นได้ทั่วไปเมื่อฉันกดปุ่ม Control-T ( SIGINFO ) ในขณะที่ทำงาน fsck_hfs จากบรรทัดคำสั่ง เพิ่มเติมเกี่ยวกับ SIGINFO ในแอปเปิ้ล termios (4) หน้า OS X คู่มือ .
Graham Perrin

เกี่ยวข้องกับคำตอบนี้อาจมีคำถามใน Stack Overflow ที่น่าสนใจ: วิธีการระบุว่าไม่ได้ตอบสนองต่อกระบวนการโดยทางโปรแกรม .
Graham Perrin

2
ฉันได้ดูซอร์สโค้ดของ top: uninterruptible เหมือนกับติดอยู่
nohillside

Gotcha - ไฮไลท์ จาก libtop.c ในโอเพ่นซอร์สสำหรับ Mac OS X 10.7.4
Graham Perrin

1

สถานะกระบวนการ U, TH_STATE_UNINTERRUPTIBLE และสถานะกระบวนการ Linux D

คนอื่นดึงความสนใจไป MacOS ด้านบน:“ ติดอยู่” หมายถึง“ ไม่ติดขัด” | nelsonslog

... TH_STATE_UNINTERRUPTIBLEซึ่งฉันเชื่อว่าเป็น   อะไร ps รายงานตามสถานะกระบวนการ“ U” ฉันคาดเดาว่านี่คือสิ่งที่ Linux   เรียก“ D” สำหรับ“ Device Wait” ในกรณีนี้ในกรณีส่วนใหญ่กระบวนการ   ไม่เป็นไรกำลังรอ I / O บางตัวให้เสร็จสมบูรณ์ ...

หน้า man Ubuntu สำหรับ ps ยืนยันรหัสสถานะกระบวนการ -

D    Uninterruptible sleep (usually IO)

- โดยไม่กล่าวถึงอื่น ๆ ยูพีเอส .

ในการอ้างอิงไขว้ FreeBSD / Linux Linux เคอร์เนล:

ฉันพบการสนทนาปี 2002 The Answer Gang 83: จะฆ่ากระบวนการในสถานะ sleep แบบต่อเนื่องได้อย่างไร? ( ไฮไลท์ ) ที่เหมาะสมกับการสังเกตของ @patrix

สุดท้าย แต่ไม่ท้ายสุด 2004 โพสต์ [X-Unix] กระบวนการ PS และ Stuck ( ไฮไลท์ ) พูดถึง WindowServer ซึ่งเหมาะกับ - คำถามที่เกี่ยวข้องที่กระตุ้นให้ฉันโพสต์คำถามที่นี่:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.