การแยกกระบวนการ

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

การแยกกระบวนการคือชุดของเทคโนโลยีฮาร์ดแวร์และซอฟต์แวร์ต่างๆ[1]ที่ออกแบบมาเพื่อปกป้องแต่ละกระบวนการจากกระบวนการอื่นๆ บนระบบปฏิบัติการ ทำได้โดยป้องกันกระบวนการ A จากการเขียนไปยังกระบวนการ B

การแยกกระบวนการสามารถนำไปใช้กับพื้นที่ที่อยู่เสมือน โดยที่พื้นที่ที่อยู่ของกระบวนการ A จะแตกต่างจากพื้นที่ที่อยู่ของกระบวนการ B ซึ่งทำให้ A ไม่สามารถเขียนลงบน B

บังคับใช้การรักษาความปลอดภัยได้ง่ายขึ้นโดยไม่อนุญาตให้เข้าถึงหน่วยความจำระหว่างกระบวนการ ตรงกันข้ามกับสถาปัตยกรรมที่มีความปลอดภัยน้อยกว่า เช่นDOSซึ่งกระบวนการใดๆ สามารถเขียนไปยังหน่วยความจำใดๆ ในกระบวนการอื่นได้ [2]

การสื่อสารระหว่างกระบวนการจำกัด

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

นโยบายระบบอาจไม่อนุญาตให้ IPC ในบางกรณี ตัวอย่างเช่น ใน ระบบ ควบคุมการเข้าออกที่บังคับอาสาสมัครที่มีระดับความไวต่างกันอาจไม่ได้รับอนุญาตให้สื่อสารกันเอง นัยด้านความปลอดภัยในสถานการณ์เหล่านี้มีขอบเขตกว้างและขยายขอบเขตการใช้งานในระบบเข้ารหัสคีย์เครือข่ายตลอดจนอัลกอริธึมการแคชแบบกระจาย โปรโตคอลที่กำหนดอินเทอร์เฟซ เช่น สถาปัตยกรรมการเข้าถึงระบบคลาวด์ขั้นพื้นฐานและการแชร์เครือข่ายจะได้รับผลกระทบในทำนองเดียวกัน [3]

ระบบปฏิบัติการ

ระบบปฏิบัติการเด่นที่รองรับการแยกกระบวนการ:

เว็บเบราว์เซอร์

Internet Explorer 4ใช้การแยกกระบวนการเพื่ออนุญาตให้แยกอินสแตนซ์ของเบราว์เซอร์ ออกจาก กระบวนการ อย่างไรก็ตาม ในช่วงที่สงครามบราวเซอร์ อยู่สูง เวอร์ชันต่อมาถูกทิ้งเพื่อแข่งขันกับNetscape Navigator (ซึ่งพยายามมุ่งความสนใจไปที่กระบวนการเดียวสำหรับชุดอินเทอร์เน็ตทั้งหมด) แนวคิดของกระบวนการต่ออินสแตนซ์นี้จะไม่ถูกทบทวนจนกระทั่งทศวรรษต่อมา เมื่อการเรียกดูแบบแท็บกลายเป็นเรื่องธรรมดามากขึ้น

ใน" สถาปัตยกรรมหลายกระบวนการ " ของ Google Chrome [4]และ" Loosely Coupled IE (LCIE) " ของ Internet Explorer 8 แท็บ[5]ที่มีหน้าเว็บจะอยู่ภายในกระบวนการระดับ OS แบบกึ่งแยกซึ่งแยกออกจากกัน จากกระบวนการหลักของเบราว์เซอร์ เพื่อป้องกันความผิดพลาดของแท็บ/หน้าหนึ่งจากการหยุดทำงานของเบราว์เซอร์ทั้งหมด วิธีนี้ (เรียกกันทั่วไปว่าmultiprocessหรือprocess-per-tab ) มีไว้เพื่อจัดการหน่วยความจำและการประมวลผลโดยอนุญาตให้แท็บที่ไม่เหมาะสมสามารถหยุดทำงานแยกจากเบราว์เซอร์และแท็บอื่นๆ และจัดการความปลอดภัย

เบราว์เซอร์ที่มีการแยกกระบวนการ

ภาษาโปรแกรม

Erlang (ภาษาโปรแกรม)ให้แนวคิดที่คล้ายกันในพื้นที่ผู้ใช้ โดยตระหนักถึงกระบวนการที่แยกจากกันอย่างเข้มงวด

เทคโนโลยีที่เกี่ยวข้อง

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

ดูเพิ่มเติม

อ้างอิง

  1. ^ การแยกโครงสร้างกระบวนการแยก ไอเคน, มาร์ค, เฟห์นดริช, มานูเอล, ฮอว์บลิทเซล, คริส, ฮันท์, กาเลน, ลารัส, เจมส์ อาร์. ฝ่ายวิจัยของ Microsoft ต.ค. 2549 [1]
  2. ^ ทั้งหมดในคู่มือการสอบ CISSP ฉบับที่ 3, Shon Harris
  3. ^ Pahl, C (2015). "คอนเทนเนอร์และคลัสเตอร์สำหรับสถาปัตยกรรม Edge Cloud -- การทบทวนเทคโนโลยี" การประชุมนานาชาติครั้งที่ 3 ว่าด้วยอินเทอร์เน็ตในอนาคตของสรรพสิ่งและคลาวด์
  4. ^ Multi-process Architecture , Chromium Blog, พฤหัสบดี, 11 กันยายน 2551
  5. ^ IE8 และ Loosely-Coupled IE (LCIE)โดย Andy Zeigler วันอังคารที่ 11 มีนาคม 2551