กระบวนการเบื้องหลัง

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

บน ระบบ Windowsกระบวนการเบื้องหลังอาจเป็นโปรแกรมคอมพิวเตอร์ที่ไม่ได้สร้างส่วนติดต่อผู้ใช้หรือเป็น บริการ ของWindowsแบบแรกจะเริ่มทำงานเหมือนกับที่โปรแกรมอื่นๆ เริ่มทำงาน เช่น ผ่านเมนูStartในทางกลับกันบริการของ Windows เริ่มต้นโดยService Control Manager ในWindows Vistaและใหม่กว่าจะมีการทำงานในเซสชันที่แยกจากกัน[ จำเป็นต้องอ้างอิง ]

บน ระบบ UnixหรือUnix-likeกระบวนการหรืองานเบื้องหลังสามารถระบุเพิ่มเติมได้ว่าเป็นกระบวนการที่มี ID กลุ่มกระบวนการแตกต่างจาก ID กลุ่มเทอร์มินัล (TGID) (TGID ของกระบวนการคือ ID กระบวนการของผู้นำกลุ่มกระบวนการที่เปิดเทอร์มินัล ซึ่งโดยทั่วไปจะเป็นเชลล์การเข้าสู่ระบบ TGID จะระบุเทอร์มินัลการควบคุมของกลุ่มกระบวนการ) กระบวนการประเภทนี้ไม่สามารถรับสัญญาณคีย์บอร์ดจาก เทอร์มินัลหลัก และโดยทั่วไปจะไม่ส่งเอาต์พุตไปยังเทอร์มินัลนั้น[4]คำจำกัดความทางเทคนิคเพิ่มเติมนี้ไม่ได้แยกแยะระหว่างว่ากระบวนการสามารถรับการแทรกแซงจากผู้ใช้ได้หรือไม่ แม้ว่าโดยทั่วไปแล้วกระบวนการในเบื้องหลังจะถูกใช้เพื่อวัตถุประสงค์ที่ต้องการทรัพยากรเพียงเล็กน้อย แต่กระบวนการใดๆ ก็สามารถทำงานในเบื้องหลังได้ และกระบวนการดังกล่าวจะทำงานเหมือนกับกระบวนการอื่นๆ โดยมีข้อยกเว้นที่ระบุไว้ข้างต้น[1]

บริการวินโดวส์

ในระบบปฏิบัติการตระกูลWindows NTบริการ Windows เป็นกระบวนการเบื้องหลังโดยเฉพาะ[5]บริการ Windows จะต้องเป็นไปตามกฎอินเทอร์เฟซและโปรโตคอลของService Control Managerซึ่งเป็นส่วนประกอบที่รับผิดชอบในการจัดการบริการ Windows [6]

บริการ Windows สามารถกำหนดค่าให้เริ่มทำงานเมื่อระบบปฏิบัติการเริ่มทำงาน และให้ทำงานในพื้นหลังตราบใดที่ Windows ทำงาน หรือสามารถเริ่มต้นด้วยตนเองหรือตามเหตุการณ์ก็ได้ ระบบปฏิบัติการ Windows NT มีบริการมากมายที่ทำงานในบริบทของบัญชีผู้ใช้ สามบัญชี : System, Network ServiceและLocal Service. ส่วนประกอบ Windows เหล่านี้มักเกี่ยวข้องกับกระบวนการโฮสต์สำหรับบริการ Windows : svchost.exeเนื่องจากบริการของ Windows ทำงานในบริบทของบัญชีผู้ใช้เฉพาะของตนเอง จึงสามารถทำงานได้เมื่อผู้ใช้ไม่ได้เข้าสู่ระบบ

ก่อนWindows Vistaบริการที่ติดตั้งเป็น "บริการแบบโต้ตอบ" สามารถโต้ตอบกับเดสก์ท็อป Windows และแสดงอินเทอร์เฟซผู้ใช้แบบกราฟิกได้ อย่างไรก็ตาม เมื่อใช้ Windows Vista บริการแบบโต้ตอบจะเลิกใช้งานและหยุดทำงานอย่างถูกต้อง อันเป็นผลมาจากWindows Service Hardening [7] [8]

วิธีหลักสามประการในการจัดการบริการ Windows คือ:

  1. สแน็ปอินบริการสำหรับMicrosoft Management Console
  2. sc.exe
  3. วินโดว์ PowerShell

ภูต

daemon คือกระบวนการพื้นหลังประเภทหนึ่งที่ออกแบบมาเพื่อทำงานอย่างต่อเนื่องในเบื้องหลัง โดยรอให้เหตุการณ์เกิดขึ้นหรือเป็นไปตามเงื่อนไข[9] เมื่อเปิดใช้งานด้วย ฟังก์ชัน daemon daemons จะถูกแยกออกจากเทอร์มินัลหลัก[10]

งานพื้นหลังใน Unix

จากบรรทัดคำสั่ง Unix กระบวนการเบื้องหลังสามารถเปิดใช้งานได้โดยใช้ตัวดำเนินการ "&" คำ สั่ง bgสามารถดำเนินการงานที่ถูกระงับต่อได้ (การส่งSIGCONT ) โดยรันงานในเบื้องหลัง การใช้ คำสั่ง fgจะเชื่อมต่ออินพุตมาตรฐานของเทอร์มินัลพาเรนต์อีกครั้ง โดยนำอินพุตนั้นไปไว้เบื้องหน้า คำ สั่ง งานจะแสดงรายการกระบวนการทั้งหมดที่เกี่ยวข้องกับเทอร์มินัลปัจจุบัน และสามารถใช้เพื่อนำกระบวนการเบื้องหลังมาสู่เบื้องหน้า[4] [11]

เมื่อเซสชั่นการเข้าสู่ระบบสิ้นสุดลง ด้วยการออกจากระบบอย่างชัดเจนหรือการตัดการเชื่อมต่อของเครือข่าย กระบวนการทั้งหมด รวมถึงกระบวนการในพื้นหลัง จะถูกยกเลิกตามค่าเริ่มต้น เพื่อป้องกันไม่ให้กลายเป็น กระบวนการ ที่ไม่คุ้นเคยโดยพื้นฐานแล้ว เมื่อผู้ใช้ออกจากกระบวนการเชลล์ที่เรียกใช้งาน ซึ่งเป็นส่วนหนึ่งของการปิดระบบ ผู้ใช้จะส่งสัญญาณวางสาย ( SIGHUP ) ไปยังงาน ทั้งหมด เพื่อยุติกระบวนการทั้งหมดในกลุ่มกระบวนการ ที่เกี่ยวข้อง หากต้องการให้กระบวนการทำงานต่อไป เราไม่สามารถยุติเซสชันหรือสิ้นสุดเซสชันโดยไม่ยุติกระบวนการได้ เทอร์มินัลมัลติเพล็กเซอร์สามารถใช้เพื่อปล่อยให้เซสชันทำงานต่อไปได้ แต่จะแยกเทอร์มินัลเสมือนออกจากเซสชันนั้น โดยปล่อยให้กระบวนการทำงานเป็นกระบวนการลูกของเซสชัน ผู้ใช้สามารถแนบเซสชันใหม่ได้ในภายหลัง หรือสามารถป้องกันการยุติได้โดยการเริ่มต้นกระบวนการผ่าน คำสั่ง nohup (บอกกระบวนการให้ละเว้น SIGHUP) หรือโดยการรันในภายหลังdisownด้วยรหัสงาน ซึ่งจะลบงานออกจากรายการงานทั้งหมด หรือเพียงป้องกันไม่ให้ SIGHUP เป็น ส่งแล้ว. ในกรณีหลังนี้ เมื่อเซสชันสิ้นสุดลง กระบวนการลูกจะไม่ถูกยุติ เนื่องจากไม่ได้ส่ง SIGHUP หรือเนื่องจากไม่สนใจ และกลายเป็นกระบวนการกำพร้า ซึ่งจากนั้นจะถูกนำไปใช้โดยกระบวนการinit (เคอร์เนลจะตั้งค่ากระบวนการ init ในฐานะผู้ปกครอง) และพวกเขายังคงทำงานต่อไปโดยไม่มีเซสชัน ซึ่งปัจจุบันเรียกว่า daemons

ตัวอย่าง

ในตัวอย่างนี้ที่ทำงานบนUnix ยู ทิลิตี้ sleep จะถูกเปิดใช้งานในเบื้องหลัง หลังจากนั้น เครื่องมือ psจะถูกรันในเบื้องหน้า โดยจะแสดงข้อความด้านล่าง ทั้งสองถูกปล่อยออกจากเชลล์[12]

  คำสั่ง
 เวลาPID  TT   STAT 54659 10 S 0 :00.06 su ( zsh ) 54703 10 IN 0 :00.00 - สลีป1,000 54852 10 R+ 0 :00.00 - ps -U botty -axd
              
         
           

สมาร์ทโฟน

ขณะนี้ สมาร์ทโฟนและระบบปฏิบัติการ PDA เวอร์ชันใหม่กว่าหลายเวอร์ชันมีความสามารถในการเริ่มกระบวนการเบื้องหลัง เนื่องจากข้อจำกัดด้านฮาร์ดแวร์ กระบวนการเบื้องหลังบนระบบปฏิบัติการมือถือจึงมักถูกจำกัดไว้ที่งานหรือระดับการใช้งานบางอย่าง บนAndroidการใช้ CPU สำหรับกระบวนการพื้นหลังอาจมีขอบเขตอยู่ที่ 5 - 10% [13] แอปพลิเคชันบนiOS ของ Apple ถูกจำกัดให้ใช้เพียงฟังก์ชันย่อยขณะทำงานในเบื้องหลัง[3]บนทั้ง iOS และ Android กระบวนการในพื้นหลังสามารถถูกฆ่าโดยระบบได้หากใช้หน่วยความจำมากเกินไป[3] [13]

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

อ้างอิง

  1. ^ ab "ระบบปฏิบัติการคืออะไร กระบวนการ" บทช่วยสอน Linux เก็บถาวรจากต้นฉบับเมื่อ 15 สิงหาคม 2020 . สืบค้นเมื่อ 14 พฤศจิกายน 2553 .
  2. มิเคเล่ ไซแรน (ธันวาคม 1993) แนวคิดฐานข้อมูล Oracle รุ่น 10g 1. Oracle Corporation B10743-01. เก็บถาวรจากต้นฉบับเมื่อวันที่ 2 มีนาคม 2013 . สืบค้นเมื่อ 12 พฤศจิกายน 2553 .
  3. ↑ เอบีซี เฆซุส ดิแอซ (8 เมษายน พ.ศ. 2553) "มัลติทาสกิ้งทำงานอย่างไรใน iPhone OS 4.0 ใหม่" กิซโมโด เก็บถาวรจากต้นฉบับเมื่อ 2 พฤศจิกายน 2010 . สืบค้นเมื่อ 14 พฤศจิกายน 2553 .
  4. คู่มืออ้างอิง GNU Bash, รุ่น 4.1, พื้นฐานการควบคุมงาน Free Software Foundation, Inc. 23 ธันวาคม 2552 เก็บถาวรจากต้นฉบับเมื่อวันที่ 3 ธันวาคม2553 สืบค้นเมื่อ 10 พฤศจิกายน 2553 .
  5. ^ "ภาพรวมบริการ" ไมโครซอฟต์ เทคเน็ต . ไมโครซอฟต์. สืบค้นเมื่อ 29 มีนาคม 2556 .
  6. ^ "บริการ" เครือข่ายนักพัฒนาไมโครซอฟต์ไมโครซอฟต์. สืบค้นเมื่อ 29 มีนาคม 2556 .
  7. "PowerToys ยกระดับใหม่สำหรับ Windows Vista" นิตยสารเทคเน็ตไมโครซอฟต์ . มิถุนายน 2551 . สืบค้นเมื่อ 21 มิถุนายน 2556 . บริการ CmdAsSystem ได้รับการกำหนดค่าเป็นแบบโต้ตอบซึ่งการสนับสนุนกำลังถูกเลิกใช้งาน บริการอาจทำงานไม่ถูกต้อง ปัญหาคือสคริปต์นี้พยายามสร้างและเริ่มบริการแบบโต้ตอบ บริการแบบโต้ตอบจะทำงานไม่ถูกต้องเนื่องจากการแยกเซสชัน 0 ใน Windows Vista
  8. ^ "บริการใน Windows" เอ็มเอสดีเอ็น . ไมโครซอฟต์ . 18 ตุลาคม 2553 . สืบค้นเมื่อ 21 มิถุนายน 2556 .
  9. เอริก เอส. เรย์มอนด์ (1 ตุลาคม พ.ศ. 2547) ไฟล์ศัพท์เฉพาะ เวอร์ชัน 4.4.8 "daemon" เก็บถาวรจากต้นฉบับเมื่อ 3 พฤศจิกายน 2010 . สืบค้นเมื่อ 10 พฤศจิกายน 2553 .
  10. ราฟ (12 มิถุนายน พ.ศ. 2553). คู่มือการใช้งาน Linux "เดมอน" เก็บถาวรจากต้นฉบับเมื่อ 21 ตุลาคม 2010 . สืบค้นเมื่อ 10 พฤศจิกายน 2553 .
  11. โอเค นอร์ดลุนด์ (7 กุมภาพันธ์ พ.ศ. 2550) "กระบวนการพื้นหลังใน Unix/Linux" เก็บถาวรจากต้นฉบับเมื่อ 13 กุมภาพันธ์ 2555 . สืบค้นเมื่อ 10 พฤศจิกายน 2553 .
  12. "POSIX "ps"". IEEE Std 1003.1, ฉบับ 2004
  13. ↑ อับ แมตต์ บูคานัน (29-04-2010) Giz อธิบาย: มัลติทาสกิ้งทำงานอย่างไรบนโทรศัพท์ กิซโมโด เก็บถาวรจากต้นฉบับเมื่อ 17 ตุลาคม 2010 . สืบค้นเมื่อ 14 พฤศจิกายน 2553 .
ดึงข้อมูลจาก "https://en.wikipedia.org/w/index.php?title=Background_process&oldid=1180707741"