
มีความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างกระบวนการและโปรแกรมซึ่งหมายความว่าโปรแกรมหนึ่งสามารถเรียกใช้หลายกระบวนการหรือในคำอื่น ๆ กระบวนการหลายกระบวนการสามารถเป็นส่วนหนึ่งของโปรแกรมเดียวกัน
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | โครงการ | กระบวนการ |
---|---|---|
ขั้นพื้นฐาน | โปรแกรมคือชุดคำสั่ง | เมื่อเรียกใช้งานโปรแกรมจะเรียกว่ากระบวนการ |
ธรรมชาติ | อยู่เฉยๆ | คล่องแคล่ว |
อายุ | อีกต่อไป | ถูก จำกัด |
ทรัพยากรที่จำเป็น | โปรแกรมถูกเก็บไว้ในดิสก์ในบางไฟล์และไม่ต้องการทรัพยากรอื่น ๆ | กระบวนการเก็บทรัพยากรเช่น CPU ที่อยู่หน่วยความจำดิสก์ I / O เป็นต้น |
คำจำกัดความของโปรแกรม
โปรแกรม ในคำง่าย ๆ ถือได้ว่าเป็นกิจกรรมของระบบ ในระบบประมวลผลแบบแบตช์สิ่งเหล่านี้เรียกว่าการเรียกใช้งานในขณะที่ในระบบปฏิบัติการแบบเรียลไทม์เรียกว่างานหรือโปรแกรม ผู้ใช้สามารถเรียกใช้หลายโปรแกรมที่ระบบปฏิบัติการอำนวยความสะดวกในกิจกรรมภายในโปรแกรมเช่นการจัดการหน่วยความจำโดยใช้เทคนิคบางอย่าง
โปรแกรมเป็น เอนทิตีแฝง ตัวอย่างเช่นไฟล์ที่รองรับกลุ่มคำสั่งที่จะดำเนินการ (ไฟล์เรียกทำงาน) มันถูกเรียกเช่นนั้นเพราะมันไม่ได้ดำเนินการใด ๆ ด้วยตัวเองมันจะต้องมีการดำเนินการเพื่อให้ตระหนักถึงการกระทำที่ระบุไว้ในนั้น
พื้นที่ที่อยู่ของโปรแกรมประกอบด้วยคำสั่งข้อมูลและสแต็ก สมมติว่า P เป็นโปรแกรมที่เรากำลังเขียนเพื่อให้เกิดการประมวลผลของ P ระบบปฏิบัติการจะจัดสรรหน่วยความจำเพื่อรองรับพื้นที่ที่อยู่ของ P

ความหมายของกระบวนการ
กระบวนการ คือการดำเนินการของโปรแกรม จะถือว่าเป็น นิติบุคคลที่ใช้งาน และตระหนักถึงการกระทำที่ระบุในโปรแกรม กระบวนการหลายอย่างสามารถเกี่ยวข้องกับโปรแกรมเดียวกัน สามารถจัดการกิจกรรมของระบบปฏิบัติการผ่าน PCB (Process control Block) ซึ่งรวมถึงตัวนับโปรแกรมสแต็คสถานะ ฯลฯ ตัวนับโปรแกรมจะเก็บลำดับของคำสั่งถัดไปที่จะถูกเรียกใช้ในภายหลัง
มันต้องการทรัพยากรเช่นการประมวลผลหน่วยความจำและทรัพยากร I / O เพื่อให้งานการจัดการสำเร็จ ในระหว่างการดำเนินการของโปรแกรมมันสามารถมีส่วนร่วมประมวลผลหรือการดำเนินงาน I / O ที่ทำให้กระบวนการแตกต่างจากโปรแกรม
ให้เราเข้าใจสิ่งนี้จากตัวอย่าง; เรากำลังเขียนโปรแกรม C ในขณะที่เขียนและจัดเก็บโปรแกรมในไฟล์มันเป็นเพียงสคริปต์และไม่ได้ดำเนินการใด ๆ แต่เมื่อมีการดำเนินการมันจะกลายเป็นกระบวนการกระบวนการจึงเป็นแบบไดนามิกในธรรมชาติ การใช้ทรัพยากรร่วมกันระหว่างกระบวนการหลายกระบวนการนั้นใช้โดยเครื่องปัจจุบัน แต่ในความเป็นจริงแล้วตัวประมวลผลเดียวจะถูกกระจายไปในหลาย ๆ กระบวนการ
ความแตกต่างที่สำคัญระหว่างโปรแกรมและกระบวนการ
- โปรแกรมเป็นกลุ่มที่ชัดเจนของ การดำเนินการสั่งซื้อ ที่จะดำเนินการ ในทางตรงกันข้าม อินสแตนซ์ ของโปรแกรมที่กำลังดำเนินการเป็นกระบวนการ
- ลักษณะของโปรแกรมนั้นเป็นแบบพาสซีฟเนื่องจากไม่ได้ทำอะไรเลยจนกว่ามันจะถูกประมวลผลในขณะที่กระบวนการนั้นเป็นแบบไดนามิกหรือมีการใช้งานในลักษณะที่เป็นอินสแตนซ์ของการดำเนินการโปรแกรมและดำเนินการเฉพาะ
- โปรแกรม มีอายุการ ใช้งานที่ยาวนานขึ้นเนื่องจากถูกเก็บไว้ในหน่วยความจำจนกว่าจะไม่ถูกลบด้วยตนเองในขณะที่กระบวนการมีอายุการใช้งานที่สั้นลงและ จำกัด เนื่องจากโปรแกรมจะถูกยกเลิกหลังจากเสร็จสิ้นภารกิจ
- ความต้องการทรัพยากรนั้นสูงขึ้นมากในกรณีของกระบวนการ มันอาจต้องการการประมวลผล, หน่วยความจำ, ทรัพยากร I / O สำหรับการดำเนินการที่ประสบความสำเร็จ ในทางตรงกันข้ามโปรแกรมต้องการหน่วยความจำสำหรับจัดเก็บข้อมูล
ข้อสรุป
โปรแกรมและกระบวนการเกี่ยวข้อง แต่ไม่เหมือนกัน โปรแกรมเป็นเพียงสคริปต์ที่เก็บไว้ในดิสก์หรือดูเหมือนจะเป็นขั้นตอนก่อนหน้าของกระบวนการ ในทางตรงกันข้ามกระบวนการเป็นเหตุการณ์ของโปรแกรมในการดำเนินการ