ระบบปฏิบัติการ - กระบวนการ
กระบวนการ
โดยทั่วไปกระบวนการเป็นโปรแกรมในการดำเนินการ การดำเนินการของกระบวนการจะต้องดำเนินไปตามลำดับ
กระบวนการถูกกำหนดให้เป็นเอนทิตีซึ่งแสดงถึงหน่วยพื้นฐานของงานที่จะดำเนินการในระบบ
พูดง่ายๆก็คือเราเขียนโปรแกรมคอมพิวเตอร์ของเราในไฟล์ข้อความและเมื่อเรารันโปรแกรมนี้มันจะกลายเป็นกระบวนการที่ทำงานทั้งหมดที่กล่าวถึงในโปรแกรม
เมื่อโปรแกรมถูกโหลดลงในหน่วยความจำและกลายเป็นกระบวนการสามารถแบ่งออกเป็นสี่ส่วนคือกองซ้อนฮีปข้อความและข้อมูล ภาพต่อไปนี้แสดงเค้าโครงที่เรียบง่ายของกระบวนการภายในหน่วยความจำหลัก -
SN | ส่วนประกอบและคำอธิบาย |
---|---|
1 | Stack กระบวนการ Stack ประกอบด้วยข้อมูลชั่วคราวเช่นพารามิเตอร์ method / function ที่อยู่ที่ส่งกลับและตัวแปรภายใน |
2 | Heap นี่คือหน่วยความจำที่จัดสรรแบบไดนามิกให้กับกระบวนการในช่วงเวลาที่รัน |
3 | Text ซึ่งรวมถึงกิจกรรมปัจจุบันที่แสดงโดยค่าของ Program Counter และเนื้อหาของรีจิสเตอร์ของโปรเซสเซอร์ |
4 | Data ส่วนนี้ประกอบด้วยตัวแปรส่วนกลางและตัวแปรคงที่ |
โปรแกรม
โปรแกรมคือโค้ดส่วนหนึ่งซึ่งอาจเป็นบรรทัดเดียวหรือหลายล้านบรรทัด โปรแกรมคอมพิวเตอร์มักเขียนโดยโปรแกรมเมอร์คอมพิวเตอร์ในภาษาโปรแกรม ตัวอย่างเช่นนี่คือโปรแกรมง่ายๆที่เขียนด้วยภาษาซี -
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
โปรแกรมคอมพิวเตอร์คือชุดคำสั่งที่ทำหน้าที่เฉพาะเมื่อดำเนินการโดยคอมพิวเตอร์ เมื่อเราเปรียบเทียบโปรแกรมกับกระบวนการเราสามารถสรุปได้ว่ากระบวนการเป็นอินสแตนซ์แบบไดนามิกของโปรแกรมคอมพิวเตอร์
ส่วนหนึ่งของโปรแกรมคอมพิวเตอร์ที่ทำงานที่กำหนดไว้อย่างชัดเจนเรียกว่าไฟล์ algorithm. ชุดโปรแกรมคอมพิวเตอร์ไลบรารีและข้อมูลที่เกี่ยวข้องเรียกว่า asoftware.
วงจรชีวิตของกระบวนการ
เมื่อกระบวนการดำเนินการกระบวนการจะผ่านสถานะต่างๆ ขั้นตอนเหล่านี้อาจแตกต่างกันในระบบปฏิบัติการที่แตกต่างกันและชื่อของสถานะเหล่านี้ก็ไม่ได้เป็นมาตรฐานด้วย
โดยทั่วไปกระบวนการสามารถมีหนึ่งในห้าสถานะต่อไปนี้ในแต่ละครั้ง
SN | รัฐและคำอธิบาย |
---|---|
1 |
Start นี่คือสถานะเริ่มต้นเมื่อกระบวนการเริ่มต้น / สร้างขึ้นครั้งแรก |
2 |
Ready กระบวนการนี้กำลังรอกำหนดให้กับโปรเซสเซอร์ กระบวนการที่พร้อมใช้งานกำลังรอให้โปรเซสเซอร์จัดสรรโดยระบบปฏิบัติการเพื่อให้สามารถรันได้ กระบวนการอาจเข้าสู่สถานะนี้หลังจากนั้นStart สถานะหรือในขณะที่รันโดย แต่ถูกขัดจังหวะโดยตัวกำหนดตารางเวลาเพื่อกำหนด CPU ให้กับกระบวนการอื่น |
3 | Running เมื่อกระบวนการถูกกำหนดให้กับโปรเซสเซอร์โดยตัวกำหนดตารางเวลา OS สถานะของกระบวนการจะถูกตั้งค่าให้ทำงานและโปรเซสเซอร์จะดำเนินการตามคำสั่ง |
4 | Waiting กระบวนการจะย้ายเข้าสู่สถานะรอหากจำเป็นต้องรอทรัพยากรเช่นรอการป้อนข้อมูลของผู้ใช้หรือรอให้ไฟล์พร้อมใช้งาน |
5 | Terminated or Exit เมื่อกระบวนการเสร็จสิ้นการดำเนินการหรือถูกยุติโดยระบบปฏิบัติการกระบวนการจะถูกย้ายไปยังสถานะสิ้นสุดที่รอการลบออกจากหน่วยความจำหลัก |
บล็อกควบคุมกระบวนการ (PCB)
Process Control Block คือโครงสร้างข้อมูลที่ดูแลโดยระบบปฏิบัติการสำหรับทุกกระบวนการ PCB ถูกระบุโดย ID กระบวนการจำนวนเต็ม (PID) PCB เก็บข้อมูลทั้งหมดที่จำเป็นในการติดตามกระบวนการดังที่แสดงไว้ด้านล่างในตาราง -
SN | ข้อมูลและคำอธิบาย |
---|---|
1 | Process State สถานะปัจจุบันของกระบวนการคือไม่ว่าจะพร้อมทำงานกำลังรอหรืออะไรก็ตาม |
2 | Process privileges สิ่งนี้จำเป็นเพื่ออนุญาต / ไม่อนุญาตให้เข้าถึงทรัพยากรระบบ |
3 | Process ID การระบุเฉพาะสำหรับแต่ละกระบวนการในระบบปฏิบัติการ |
4 | Pointer ตัวชี้ไปยังกระบวนการหลัก |
5 | Program Counter Program Counter เป็นตัวชี้ไปยังที่อยู่ของคำสั่งถัดไปที่จะดำเนินการสำหรับกระบวนการนี้ |
6 | CPU registers ซีพียูรีจิสเตอร์ต่างๆที่จำเป็นต้องจัดเก็บโปรเซสไว้เพื่อดำเนินการเพื่อรันสถานะ |
7 | CPU Scheduling Information ลำดับความสำคัญของกระบวนการและข้อมูลการจัดกำหนดการอื่น ๆ ซึ่งจำเป็นในการจัดกำหนดการกระบวนการ |
8 | Memory management information ซึ่งรวมถึงข้อมูลของตารางเพจขีด จำกัด หน่วยความจำตารางเซ็กเมนต์ขึ้นอยู่กับหน่วยความจำที่ใช้โดยระบบปฏิบัติการ |
9 | Accounting information ซึ่งรวมถึงจำนวน CPU ที่ใช้ในการดำเนินการกระบวนการขีด จำกัด เวลา ID การดำเนินการเป็นต้น |
10 | IO status information ซึ่งรวมถึงรายการอุปกรณ์ I / O ที่จัดสรรให้กับกระบวนการ |
สถาปัตยกรรมของ PCB ขึ้นอยู่กับระบบปฏิบัติการอย่างสมบูรณ์และอาจมีข้อมูลที่แตกต่างกันในระบบปฏิบัติการที่แตกต่างกัน นี่คือแผนภาพที่เรียบง่ายของ PCB -
PCB จะได้รับการบำรุงรักษาตลอดอายุการใช้งานและจะถูกลบเมื่อกระบวนการสิ้นสุดลง