หัวใจในการท างานของระบบปฏิบัติการ คือการจัดการให้งานหรือโปรแกรมต่างๆ ของผู้ใช้ และ โปรแกรมของระบบสามารถท างานได้ ซึ่งงานแต่ละงานอาจจ าเป็นต้องใช้ทรัพยากรต่างๆ ของระบบ เช่น หน่วยประมวลผล หน่วยความจ า แฟ้มข้อมูล หรือ อุปกรณ์รอบข้างต่างๆ และเพื่อให้สามารถมองเห็น โครงสร้างและหลักการท างานของระบบปฏิบัติการได้อย่างชัดเจน จะขอกล่าวถึงเฉพาะระบบปฏิบัติการ ของระบบคอมพิวเตอร์แบบซีพียูเดียว ( Single Processor ) ซึ่งเป็นระบบคอมพิวเตอร์ที่ประกอบด้วยซีพียู เพียงตัวเดียวส าหรับประมวลผลงานต่างๆ ทั้งหมดที่มีในระบบ และมีหน่วยความจ าเพียงชุดเดียวส าหรับเก็บ งานเหล่านั้น เนื่องจากทรัพยากรของระบบมีอยู่อย่างจ ากัด ดังนั้นระบบปฏิบัติการจะต้องแบ่งทรัพยากรที่มี อยู่จ ากัดให้กับงาน หรือโปรแกรมที่ต้องการใช้ทรัพยากรเหล่านั้น งานหรือโปรแกรมที่ได้ครองทรัพยากรก็ คือโปรเซสแต่เนื่องจากระบบคอมพิวเตอร์สามารถท างานได้หลายงานในเวลาเดียวกัน เช่นในขณะที่ก าลังรันโปรแกรมอยู่ ก็สามารถอ่านข้อมูลจากดิสก์ และพิมพ์งานทางเครื่องพิมพ์ได้ พร้อมๆ กันไปด้วย ซึ่งในระบบหลายโปรแกรม หน่วยประมวลผลจะท าการสลับการท างานจากโปรแกรม หนึ่งไปอีกโปรแกรมหนึ่ง โดยแต่ละโปรแกรมจะใช้เวลาในการท างาน ประมาณ 10 ถึง 100 มิลลิวินาทีหรือ อาจจะกล่าวได้ว่า ณ หนึ่งหน่วยเวลาหน่วยประมวลผลจะท างานได้เพียงงานเดียวเท่านั้น ในขณะที่งานอื่นๆ ต้องคอย แต่เนื่องจากการคอยนั้นใช้เวลาน้อยมาก จนผู้ใช้ไม่รู้สึก จึงท าให้ดูเหมือนว่าระบบคอมพิวเตอร์ สามารถท างานได้พร้อมกันหลายๆ งานในเวลาเดียวกัน ดังนั้นการจัดการเพื่อให้งานต่างๆ ที่มีในระบบทั้งที่ เป็นงานของผู้ใช้หรืองานของระบบเองจึงเป็นหน้าที่ส าคัญของระบบปฏิบัติการ เพื่อให้ระบบสามารถ ท างานได้อย่างมีประสิทธิภาพ เมื่อระบบเป็นการท างานในระบบหลายโปรแกรมประสิทธิภาพการใช้งานหน่วยประมวลผลกลาง จะเพิ่มขึ้น กล่าวคือจะได้ปริมาณงานที่เพิ่มขึ้น และใช้งานหน่วยประมวลผล กลางได้อย่างเต็มประสิทธิภาพ มากยิ่งขึ้น เช่น ถ้าเวลาเฉลี่ยการใช้งานหน่วยประมวลผลกลางคือ 20 เปอร์เซ็นต์ ถ้ามีงานจ านวนงาน 5 งาน ในหน่วยความจ าในเวลาเดียวกัน หน่วยประมวลผลกลางจะมีการท างานตลอดเวลาโดยไม่มีเวลาว่างเลย ซึ่ง ท าให้หน่วยประมวลผลกลางท างานได้อย่างมีประสิทธิภาพ แต่อย่างไรก็ตามถึงแม้ว่าจะมีงาน 5 งาน แต่ ในช่วงเวลาหนึ่งจะมีเพียงงาน เดียวเท่านั้นที่สามารถใช้งานหน่วยประมวลผลกลางเพื่อประโยชน์ในการ ท างานได้ โดยหากมีงานใดที่ปลดปล่อย หน่วยประมวลผลกลางเพื่อไปใช้งานอุปกรณ์น าเข้าหรือแสดงผล หน่วยประมวลผลกลางก็จะบริการงานอื่นๆ แทน ซึ่งโดยเฉลี่ยแล้วงานแต่ละงานจะมีการใช้งานหน่วย ประมวลผลกลางประมาณ 20 เปอร์เซ็นต์ของเวลาทั้งหมดที่ได้ท างาน ส่วนอีก 80 เปอร์เซ็นต์จะเป็นการ ท างานที่เกี่ยวข้องกับอุปกรณ์น าเข้าหรือแสดงผลข้อมูล ซึ่งเป็นงานที่ไม่ต้องใช้หน่วยประมวลผลกลางใน การท างาน
หากเป็นระบบโปรแกรม เดียวเวลาในส่วนที่หน่วยประมวลผลกลางว่างนี้จะไม่มีการท างานใด เกิดขึ้นเลย แต่ส าหรับระบบหลาย โปรแกรมเวลาว่างในส่วนนี้จะใช้เพื่อการท างานของงานอื่นๆ แทน ภาพแสดงประสิทธิภาพการท างานของระบบหลายโปรแกรม จากกราฟแสดงประสิทธิภาพในการท างานของหน่วยประมวลผลกลางเมื่อเวลาที่ต้องใช้ในการคอย เหตุการณ์จากอุปกรณ์น าเข้าและแสดงผลเปลี่ยนไป หากงานแต่ละงานใช้เวลา 80 เปอร์เซ็นต์ของเวลาท างาน ทั้งหมดในงานเกี่ยวกับการคอยเหตุการณ์ และมีงานในหน่วยความจ า 10 งานจะเห็นว่าหน่วยประมวลผล กลางมีเวลาว่างงานประมาณ 10 เปอร์เซ็นต์เท่านั้น หากพิจารณาการใช้งานหน่วยประมวลผลกลาง เพื่อ ท างานแต่ละงานจะพบว่า 80 เปอร์เซ็นต์ ของเวลาที่ได้รับจะใช้เพื่อการคอยเหตุการณ์จากอุปกรณ์น าเข้าหรือ แสดงผลเวลาเพียง 20 เปอร์เซ็นต์เท่านั้นที่จะใช้เพื่อการท างานจริงๆ แต่หากมีจ านวนงานมากขึ้นเวลาว่าง ของหน่วยประมวลผลกลางจะลดลงทั้งนี้เนื่องจาก หากมีเวลาว่างเกิดขึ้นก็จะไปบริการงานอื่นๆ แทนที่จะ ว่างอยู่เฉยๆ ท าให้การท างานของหน่วยประมวลผลกลางท าได้เต็มประสิทธิภาพมากขึ้น โปรเซสเป็นองค์ประกอบที่ส าคัญของการท างานของระบบปฏิบัติการ มีการนิยามความหมายของโปรเซส ที่แตกต่างกัน เช่น เป็นโปรแกรมที่ก าลังท างาน เป็นส่วนของโปรแกรมที่ก าลังท างาน งานที่ได้ครองซีพียู ส าหรับค านิยามที่เป็นที่ยอมรับกันมากที่สุดคือ โปรเซสเป็นส่วนของโปรแกรมที่ก าลังท างาน แต่ เนื่องจากในระบบคอมพิวเตอร์ ณ เวลาหนึ่ง อาจจะมีงานที่ก าลังท าได้ หรือรอการท างานได้หลายงาน ดังนั้น
ในระบบคอมพิวเตอร์จึงสามารถมีโปรเซสได้หลายๆ โปรเซสท างานไปพร้อมๆ กันได้ โดยมีหน่วย ประมวลผลเพียงตัวเดียว ดังที่ได้กล่าวมาแล้วว่าระบบปฏิบัติการท าหน้าที่ควบคุมการท างานของแต่ละโปรเซสให้ท างาน ประสานจังหวะกันได้ ซึ่งโดยทั่วไปแล้วส่วนของระบบปฏิบัติการที่มีหน้าที่ในการจัดการโปรเซสจะมี หน้าที่หลักดังนี้ สร้างโปรเซสและยกเลิกโปรเซส ควบคุมการท างานของโปรเซส เพื่อให้มั่นใจได้ว่าแต่ละโปรเซสมีความก้าวหน้าในการท างาน อย่างต่อเนื่องจนกว่าโปรเซสนั้นจะท างานเสร็จ ควบคุมความผิดพลาดอันเนื่องมาจากการท างานของแต่ละโปรเซส เตรียมทรัพยากรให้พร้อมส าหรับการใช้งานของแต่ละโปรเซส ควบคุมการสื่อสารกันระหว่างโปรเซส ในระหว่างที่มีการท างานระบบปฏิบัติการจะคอยดูแลโปรเซสต่างๆ ที่มีในระบบ และจะด าเนินการ กับโปรเซสนั้นด้วยงานอย่างใดอย่างหนึ่ง เช่น การสร้างโปรเซส หรือ การควบคุมการสื่อสารระหว่าง โปรเซสนั้นกับโปรเซสอื่นๆ ที่มีการท างานเกี่ยวข้องกัน และระบบปฏิบัติการจะต้องดูแลโปรเซสเหล่านั้น ตลอดเวลาจนกว่าการท างานของโปรเซสนั้นจะสิ้นสุดลง ในการท างานของระบบคอมพิวเตอร์ โปรแกรมทุกโปรแกรมที่ท างานอยู่ รวมถึงโปรแกรมที่เป็นของ ระบบปฏิบัติการเองก็ตาม จะมีการท างานแบบตามล าดับ โดยโปรแกรมที่ได้ครองทรัพยากร (ซีพียู หน่วยความจ า เป็นต้น) เพื่อท างานนั้นเรียกว่าโปรเซส แต่เนื่องจากในระบบซีพียูเดียวนั้น จะมีซีพียูเพียงตัว เดียวท าหน้าที่ประมวลผลโปรแกรม หรือโปรเซสต่างๆ ในระบบ ซึ่งมีอยู่เป็นจ านวนมาก และเพื่อให้ทุก โปรแกรมมีโอกาสได้ครองซีพียูระบบปฏิบัติการจึงต้องท าการจัดสรรเวลาให้กับแต่ละโปรเซสเพื่อเข้าครอง ซีพียู และเมื่อโปรเซสใดโปรเซสหนึ่งได้ครองซีพียูแล้วก็ไม่ได้หมายความว่าจะได้ครองซีพียูไปจนกว่าการ ท างานของโปรเซสนั้นจะเสร็จสิ้น แต่จะได้ครองซีพียูภายในเวลาที่ได้รับจัดสรรให้ครองเท่านั้น ดังนั้น อาจจะเป็นไปได้ว่าเมื่อครองซีพียูครบตามเวลาที่ได้รับจัดสรรแล้ว แต่การท างานของโปรเซสนั้นๆ ยังไม่ เสร็จสิ้นสมบูรณ์ (ระบบปฏิบัติการจะต้องท าการถอนโปรเซสนั้น ออกจากการครอบครองซีพียู เพื่อน าซีพียูไปจัดสรรให้กับโปรเซสอื่นๆ ในระบบ โดยก่อนที่จะท าการถอน
โปรเซสนั้นออกจากการครอบครองซีพียูระบบปฏิบัติการจะต้องท าการเก็บค่าข้อมูลต่างๆ ที่เกี่ยวข้องกับการ ท างานของโปรเซส เช่น โปรแกรมเค้าเตอร์ ค่าของรีจีสเตอร์ และตัวแปรต่างๆ เพื่อใช้เป็นข้อมูลในการ ท างานของโปรเซสเมื่อโปรเซสนั้นได้กลับเข้ามาครองซีพียูอีกครั้งหนึ่ง) โปรเซสนั้นจะต้องท าการ ปลดปล่อยซีพียูและคอยการจัดสรรในรอบใหม่ต่อไป และเมื่อได้รับการจัดสรรให้ครองซีพียูอีกครั้งหนึ่ง ก็ จะท าการโหลดเอาค่าข้อมูลต่างๆ ที่เกี่ยวข้องกับการท างานของโปรเซสนั้นซึ่งได้รับการเก็บไว้ในการครอง ซีพียูครั้งก่อนออกมาใช้เป็นข้อมูลเริ่มต้นในการท างานต่อไป ซึ่งการท างานลักษณะเช่นนี้แต่ละโปรเซสก็จะ มีข้อมูลในการท างานที่แตกต่างกัน (ขึ้นอยู่กับงานของ โปรเซสแต่ละโปรเซส) จึงดูคล้ายกับว่าแต่ละโปรเซสมีซีพียูเฉพาะเป็นของตนเอง ซึ่งมีข้อมูลประกอบการ ท างานไม่เหมือนกับโปรเซสอื่นๆ ในระบบ ดังนั้นเมื่อแต่ละโปรเซสได้ครองซีพียูค่าข้อมูลต่างๆ ที่เกี่ยวข้อง กับการท างานนั้นจะไม่เหมือนกัน ขึ้นอยู่กับว่าโปรเซสนั้นๆ ท างานอะไร ดังนั้นในแต่ละครั้งของการครอง ซีพียูก็จะมีค่าข้อมูลในการท างานที่แตกต่างกัน จึงดูเสมือนว่ามีซีพียูในระบบหลายๆ ตัว โดยแต่ละตัวจะ ท างานกับโปรเซส 1 โปรเซส โดยการท างานในลักษณะนี้เรียกว่าซีพียูเสมือน ( Virtual CPU ) ดังที่ได้กล่าว ข้างต้นแล้วว่าระบบปฏิบัติการจะจัดสรรเวลาการครอบครองซีพียูให้กับโปรเซสแต่ละโปรเซสใช้ในการ ท างาน โดยจะสามารถครองซีพียูได้ภายในระยะเวลาที่ก าหนดเท่านั้น และเมื่อครบตามก าหนดเวลา ระบบปฏิบัติการก็จะสลับหรือเปลี่ยนเอาโปรเซสอื่นเข้ามาครองซีพียูแทน แต่เนื่องจากระยะเวลาที่แต่ละโปรเซสได้ครองซีพียูนั้นน้อยมาก (ประมาณ 10 ถึง 100 มิลลิวินาที) จนดูเหมือนกับว่า ณ หนึ่งหน่วยเวลาระบบสามารถท างานได้หลายๆ งานพร้อมกัน ซึ่งการท างานลักษณะนี้ เรียกว่าการท างานแบบหลายโปรแกรม ( Multiprogramming ) โดยในระบบหลายโปรแกรมนั้นจะมีโปรเซส มากกว่า1 โปรเซสที่ก าลังท างาน แต่ ณ เวลาใดเวลาหนึ่งจะมีเพียงโปรเซสเดียวเท่านั้นที่ได้ครองซีพียูเพื่อ ปฏิบัติงานตามโปรแกรมของตน ดังนั้นซีพียูจึงต้องสลับเวลาเพื่อแบ่งเวลาที่มีอยู่เพื่อการบริการให้กับ โปรเซสต่างๆ ที่มีอยู่ในระบบได้อย่างทั่วถึง ซึ่งในการจัดรูปแบบของโปรเซสเพื่อให้สามารถท างานได้นั้น (ก) (ข) (ค) ภาพ (ก) แสดงให้เห็นถึงการท างานของระบบหลายโปรแกรมในทางปฏิบัติ หรือในมุมมองของ ระบบ โดยโปรเซสแต่ละโปรเซสที่ท างานอยู่จะถูกเก็บในหน่วยความจ า ในการท างานของระบบ
จะท าทีละโปรเซสและสลับการท างานไปยังโปรเซสอื่นๆ ในระบบ และวนรอบกลับมาใหม่เรื่อยๆ จนกระทั่งเสร็จงาน ภาพ (ข) เป็นรูปแสดงลักษณะการท างานของแต่ละโปรเซสในเชิงนามธรรม หรือในมุมมองของ ผู้ใช้ ซึ่งจะเห็นว่าแต่ละโปรเซสจะท างานของตนไปอย่างต่อเนื่อง ถึงแม้ว่าซีพียูจะมีการสลับเวลาไปท างาน ให้กับโปรเซสอื่นซึ่งในขณะที่โปรเซสหนึ่งก าลังท างานอยู่นั้น โปรเซสที่เหลือจะคอยล าดับงานเพื่อรอการ ท างานอยู่ และเมื่อได้ครองซีพียูและวนรอบกลับมาท างานที่โปรเซสเดิมอีกครั้ง ก็จะท างานต่อจากจุดเดิมที่ ท างานค้างไว้โดยตรวจสอบจากโปรแกรมเค้าเตอร์ ( Program Counter ) ซึ่งเป็นรีจีสเตอร์ที่ใช้ในการบอก ต าแหน่งของการท างาน แต่เนื่องจากเวลาในการคอยนั้นสั้นมาก ท าให้ดูเหมือนกับทุกโปรเซสสามารถ ท างานได้พร้อมๆ กัน ภาพ (ค) เป็นรูปแสดงการท างานของโปรเซสจะเห็นว่าในช่วงเวลาหนึ่งจะมีเพียงโปรเซสเดียว เท่านั้นที่ได้ครองซีพียูเพื่อใช้ในการท างานในขณะที่โปรเซสอื่นๆ ต้องคอยที่จะครองซีพียู ในระบบหลายโปรแกรมจะพบว่าในช่วงเวลาหนึ่งมีการท างานของหลายโปรเซส ซึ่งแต่ละโปรเซส นั้นจะมีการท างานที่เหมือนกัน หรือแตกต่างกันก็ได้ เช่น บางโปรเซสได้ครองซีพียูและก าลังท างานอยู่ บาง โปรเซสก าลังคอยที่จะเข้าครองซีพียูเนื่องจากยังไม่ถึงล าดับงานของตน หรือบางโปรเซสก าลังติดต่อกับ อุปกรณ์อยู่ เป็นต้น ซึ่งเมื่อโปรเซสก าลังติดต่อกับอุปกรณ์ (อุปกรณ์รับข้อมูล หรืออุปกรณ์แสดงผลข้อมูล) หรือคอยเหตุการณ์จากอุปกรณ์เหล่านั้นอยู่ (เช่น การท างานยังไม่เกิดขึ้นหากผู้ใช้ยังไม่กดปุ่มจากแป้นพิมพ์ เพื่อสั่งการ) ซึ่งเป็นช่วงเวลาที่ไม่จ าเป็นต้องใช้ซีพียูในการท างาน ดังนั้นโปรเซสดังกล่าวจะไม่ได้รับการ จัดสรรเวลาของซีพียูไปให้ เนื่องจากถึงแม้ได้ซีพียูไปครองแต่ก็ไม่สามารถใช้ให้เกิดประโยชน์ได้ จะเห็นว่า ในระบบมีโปรเซสที่มีคุณลักษณะ หรือสถานะที่แตกต่างกันซึ่งแต่ละโปรเซสจะต้องมีสถานะเป็นอย่างใด อย่างหนึ่ง ดังนี้ โปรเซสในสถานะท างาน ( Running ) คือ สถานะที่โปรเซสก าลังครอบครอง ซีพียูอยู่ และ ใช้ซีพียูในการท างาน โดยใช้ซีพียูท างานตามค าสั่งในโปรแกรมของโปรเซสนั้น โปรเซสในสถานะพร้อม ( Ready ) คือ สถานะที่โปรเซสคอยที่จะเข้าครอง ซีพียู หรือพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการท างานของโปรเซส แต่การท างานจะเกิดขึ้นทันทีที่ได้ครองซีพียู โดยจะท างานต่อจากงานเดิมที่ท าค้างไว้ โปรเซสในสถานะติดขัด ( Blocked ) หรือ สถานะพัก ( Suspend ) คือ สถานะ ที่โปรเซสติดต่อกับอุปกรณ์ หรือ คอยเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสในสถานะนี้ไม่
จ าเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู และเมื่อติดต่อกับอุปกรณ์เสร็จแล้ว หรือได้ เหตุการณ์ที่คอยแล้วก็จะกลับเข้ามาในสถานะพร้อม เพื่อคอยการเข้าครองซีพียูเพื่อใช้ในการท างานต่อไป ภาพแสดงการเปลี่ยนสถานะของโปรเซส ในการเปลี่ยนแปลงสถานะของโปรเซสจะมีการเปลี่ยนแปลงใน 4 ลักษณะ ดังนี้ หมายเลข 1 เมื่อโปรเซสไม่สามารถท างานต่อได้ ซึ่งอาจจะเกิดมาจากการติดต่อกับอุปกรณ์ หรือการ คอยเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสนั้นจะเปลี่ยนสถานะมาเป็นสถานะติดขัดซึ่งเป็นสถานะที่ ไม่ต้องการใช้ซีพียู ในการเปลี่ยนสถานะ 2 และ 3 จะถูกจัดการโดยตัวจัดล าดับงานซึ่งเป็นส่วนหนึ่งของ ระบบปฏิบัติการ โดยเมื่อโปรเซสที่ก าลังท างานอยู่ใช้เวลาการท างานที่ได้รับจัดสรรหมดแล้วก็จะต้อง ปลดปล่อยซีพียูเพื่อให้โปรเซสที่ได้รับจัดสรรเวลาตัวถัดไปเข้ามาครองซีพียูแทน ซึ่งเมื่อหมดเวลางานที่ท า อยู่อาจจะเสร็จสิ้นแล้ว หรือยังไม่เสร็จก็ได้ ในกรณีที่งานท ายังไม่เสร็จ โปรเซสนั้นจะเข้ามาคอยล าดับงาน เพื่อเข้าไปใช้ซีพียูต่อไป ดังนั้นจึงเปลี่ยนสถานะจากท างานมาเป็นสถานะพร้อม (การเปลี่ยนสถานะ หมายเลข 2) ส าหรับการเปลี่ยนสถานะหมายเลข 3 เป็นการที่โปรเซสที่อยู่ในสถานะพร้อมท างาน หรือ พร้อมที่จะเข้าครองซีพียูได้เข้าครองซีพียูเพื่อท างาน ดังนั้นเมื่อได้ครองซีพียูแล้วสถานะจึงเปลี่ยนไปเป็น สถานะท างาน การเปลี่ยนสถานะหมายเลข 4 เป็นการเปลี่ยนสถานะของโปรเซสที่อยู่ในสถานะติดขัด ซึ่งก าลัง ติดต่อกับอุปกรณ์ หรือคอยเหตุการณ์อยู่ เมื่อการติดต่อกับอุปกรณ์เสร็จสิ้นแล้ว หรือได้เหตุการณ์ที่คอยแล้ว ก็จะเปลี่ยนสถานะมาเป็นสถานะพร้อมที่จะเข้าไปครองซีพียูเพื่อการท างานต่อไป ในการเปลี่ยนแปลงหมายเลข 2 และ 3 เป็นการเปลี่ยนแปลงที่เกี่ยวข้องกับการเข้าครองซีพียู หรือ การปลดปล่อยซีพียู ซึ่งเมื่อมีการปลดปล่อยซีพียูก็จะมีการเลือกเอาโปรเซสใหม่เข้าไปครองซีพียูแทน แต่ เนื่องจากในระบบมีโปรเซสจ านวนมากที่คอยที่จะเข้าครองซีพียูดังนั้นระบบปฏิบัติการจะต้องมีการจัดล าดับ การเข้าครองซีพียูของแต่ละโปรเซสว่าโปรเซสใดจะได้เข้าครองซีพียู และเข้าครองหน่วยประมวลผลเมื่อใด เพื่อให้เกิดความยุติธรรมและสามารถใช้งานซีพียูได้เกิดประโยชน์
เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์ โดยการสั่งให้โปรแกรมท างานผ่านทางระบบปฏิบัติการ แล้ว ระบบปฏิบัติการจะมีการเตรียมการที่จะสร้างโปรเซสให้กับงานใหม่ที่ถูกส่งเข้ามา โดยแต่ละโปรเซส จะถูกสร้างขึ้นมาได้นั้นจะต้องมีองค์ประกอบต่างๆ เช่น ค าสั่งของโปรแกรม ข้อมูลที่โปรแกรมต้องการใช้ และต้องมีเนื้อที่ในหน่วยความจ าหลักเพียงพอส าหรับโปรเซสใหม่ที่ก าลังจะเข้าไปในระบบ ถึงแม้ว่าเราจะมี ค าสั่งของโปรแกรมและข้อมูลเตรียมไว้พร้อมแล้วแต่เนื้อที่ในหน่วยความจ าไม่เพียงพอส าหรับจัดเก็บ โปรแกรมโปรเซสใหม่ส าหรับโปรแกรมงานนี้ก็ยังไม่ถูกสร้างขึ้นจะต้องรอไปจนกว่าจะมีโปรเซสอื่นจบลง และมีเนื้อที่ในหน่วยความจ าเหลือมากเพียงพอส าหรับโปรเซสใหม่ ระบบปฏิบัติการจึงจะสร้างโปรเซสใหม่ ขึ้นมารวมอยู่ในระบบ โดยโปรเซสที่เข้ามาใหม่นี้จะเริ่มต้นเป็นโปรเซสในสถานะติดขัดก่อนทั้งนี้จะ สังเกตเห็นได้ว่าก่อนที่โปรเซสจะเข้ามาในระบบนั้นโปรเซสนั้นจะอยู่ในรูปของโปรแกรมที่เก็บอยู่ในดิสก์ การที่จะโหลดเข้ามาในหน่วยความจ าได้ต้องโหลดผ่านอุปกรณ์น าเข้าหรือเครื่องขับดิสก์จากนั้นจึงเปลี่ยน สถานะเป็นโปรเซสในสถานะพร้อมที่จะท างานโดยจะเข้าล าดับงานเพื่อครองซีพียูซึ่งจะอยู่ภายใต้การ ควบคุมของตัวจัดล าดับงานดังได้กล่าวมาแล้ว เมื่อซีพียูว่างลงอันเนื่องจากโปรเซสที่ครอบครองซีพียู ปลดปล่อยซีพียู(ด้วยสาเหตุใดก็ตาม) ระบบปฏิบัติการจะจัดการน าโปรเซสที่อยู่ต้นล าดับงานในสถานะ พร้อมให้เข้ามาใช้ซีพียู โปรเซสนี้ก็จะท างานได้ซึ่งตอนนี้โปรเซสเปลี่ยนจากสถานะพร้อมเป็นสถานะ ท างาน ในขณะที่โปรเซสอยู่ในสถานะท างานนี้เป็นช่วงเวลาที่โปรเซสได้ท างานจริงๆ นั่นคือค าสั่งของ โปรแกรมถูกปฏิบัติการโดยซีพียูซึ่งต่างกับตอนที่โปรเซสอยู่ในสถานะพร้อมซึ่งในสถานะพร้อมนี้โปรเซส จะหยุดนิ่งเพียงเพื่อรอการครองซีพียู เนื่องจากมีโปรเซสอยู่หลายโปรเซสในระบบแต่มีซีพียูเพียงตัวเดียวเรา จะแบ่งหรือจัดสรรการใช้งานซีพียู อย่างไรจึงจะเหมาะสม ซึ่งจากรูปแสดงสถานะของโปรเซสจะเห็นว่า ซีพียูจะว่างก็ต่อเมื่อโปรเซสอยู่ในสถานะท างาน ท างานเสร็จสิ้นหมดแล้ว ซึ่งหากเป็นเช่นนี้ถ้าโปรเซสแต่ ละ โปรเซสใช้เวลาท างานไม่มากนักก็ไม่เกิดปัญหาเท่าใดนัก แต่หากมีบางโปรเซสต้องการเวลาท างานนาน มาก และโปรเซสนั้นอยู่ในสถานะท างานก็จะครอบครองซีพียูเป็นเวลานาน (จนกว่าจะเสร็จ) โปรเซสต่างๆ ที่รออยู่ในสถานะพร้อมต้องเสียเวลารอนานเกินไป เพื่อแก้ปัญหานี้ระบบปฏิบัติการ จึงได้ก าหนดระยะเวลา ของการอยู่ในสถานะรันของโปรเซสทุกโปรเซสเอาไว้ ระยะเวลานี้เรียกว่าเวลาควอนตัม ( Quantum Time ) โดยเมื่อท างานครบตามเวลาที่ได้รับจัดสรรก็จะปลดปล่อยซีพียูเพื่อให้โปรเซสอื่น ได้เข้าครองซีพียูเพื่อการ ท างาน โดยโปรเซสที่หมดเวลาก็จะไปเข้าล าดับงานเพื่อรอการครองซีพียูใหม่ ดังนั้น โปรเซสที่ต้องการเวลา ท างานนานๆ ก็จะเปลี่ยนสถานะระหว่างสถานะพร้อมและรันหลายๆ ครั้งวนรอบไปเรื่อยๆ จนกระทั่ง
โปรเซสนั้นจบลง โดยในการจัดล าดับงานการเข้าครองซีพียูจะเป็นหน้าที่ของตัวจัดล าดับงานซึ่งจะจัดล าดับ การเข้าครองซีพียูของแต่ละโปรเซสไว้ในตาราง และการเข้าครองซีพียูก็เป็นไปตามล าดับที่ในตาราง ในระยะเวลาควอนตัมถ้าโปรเซสท างานเสร็จโปรเซสก็จะออกจากระบบไป ทรัพยากรต่างๆ ที่ โปรเซสครอบครองก็จะถูกส่งคืนให้กลับระบบ แต่ถ้าโปรเซสต้องการใช้อุปกรณ์อินพุต-เอาต์พุตหรือเกิด อินเตอร์รัพต์ขึ้นระบบปฏิบัติการ จะย้ายโปรเซสที่อยู่ในสถานะรันนี้ไปอยู่ในสถานะติดขัดและดึงเอา โปรเซสที่อยู่ในสถานะพร้อมให้เข้าไปอยู่ในสถานะท างานแทนโปรเซสที่เข้ามาอยู่ในสถานะติดขัด คือ โปรเซสที่ต้องการใช้งานอุปกรณ์อินพุต-เอาต์พุต หรือเกิดสัญญาณอินเตอร์รัพต์ขึ้น ช่วงเวลานี้โปรเซสไม่ จ าเป็นต้องใช้ซีพียูแต่ก าลังรอเหตุการณ์บางอย่างให้เกิดขึ้น เช่น รอเหตุการณ์ที่อุปกรณ์อินพุต-เอาต์พุต ท างานที่โปรเซสต้องการเสร็จ หรือรอให้โปรเซสจัดการกับอินเทอร์รัพต์ที่เกิดขึ้นเสร็จสิ้น ถ้าเราให้โปรเซส ที่ก าลังรอเหตุการณ์นี้อยู่ในสถานะรันซีพียูก็จะอยู่เฉยๆ ( Idle ) ไม่ได้ท างานทั้งๆ ที่มีโปรเซสอื่นๆ ก าลังรอ ให้ซีพียูอยู่ในล าดับงานของสถานะพร้อม เราจึงก าหนดสถานะติดขัดขึ้นมาเพื่อย้ายเอาโปรเซสที่ยังไม่ ต้องการใช้งานออกมาต่างหาก และเมื่อใดที่เหตุการณ์ที่โปรเซสนั้นรออยู่เกิดขึ้น แสดงว่าโปรเซสต้องการ รันต่อไป ระบบปฏิบัติการจะย้ายโปรเซสนี้กลับไปต่อล าดับงานในสถานะพร้อมใหม่เพื่อรอการใช้ซีพียู ต่อไป เมื่อมีโปรเซสที่เข้ามาในระบบ ระบบปฏิบัติการจะมีการเก็บรายละเอียดต่างๆ ของโปรเซสนั้นไว้ เพื่อเป็นข้อมูลในการจัดการโปรเซส เช่น การจัดล าดับงาน การจัดสรรเวลา หรือให้สามารถท างานต่อจากจุด เดิมที่ค้างไว้ได้อย่างถูกต้อง โดยข้อมูลที่เก็บไว้นี้จะมีการปรับปรุงค่าข้อมูลอยู่ตลอดเวลาเพื่อให้สอดคล้อง กับสถานะของโปรเซสที่เปลี่ยนแปลงไป โดยข้อมูลต่างๆ ของแต่ละโปรเซสจะถูกเก็บไว้ในตารางโปรเซส ( Process Table ) โดยข้อมูลของแต่ละโปรเซสในตารางโปรเซสเรียกว่าบล็อคควบคุมโปรเซส ( ProcessControl Block : PCB ) หรือพีซีบี โดยพีซีบีจะเป็นศูนย์กลางในการเก็บข้อมูลส าคัญทั้งหลายของ โปรเซสที่ระบบปฏิบัติการจ าเป็นต้องใช้เพื่อการจัดการโปรเซส เมื่อระบบปฏิบัติการมอบหมายซีพียูให้ โปรเซสอื่นใช้งาน ระบบปฏิบัติการจะเก็บข้อมูลต่างๆ ของโปรเซสเดิมไว้ในพีซีบีเพื่อที่จะน ามาใช้อีกครั้ง เมื่อโปรเซสนี้ได้กลับมาใช้ซีพียูหรือได้ครอบครองซีพียู โดยระบบปฏิบัติแต่ละระบบจะมีรูปแบบการเก็บ ข้อมูลต่างๆ ของโปรเซสที่แตกต่างกัน แต่ข้อมูลของแต่ละโปรเซสที่จ าเป็นที่ต้องเก็บไว้มี 3 กลุ่ม คือ ข้อมูล เพื่อการจัดการโปรเซส ข้อมูลเพื่อการจัดการหน่วยความจ า และ ข้อมูลเพื่อการจัดการแฟ้ม โดยมีรายละเอียดของข้อมูลในแต่ละส่วนแสดงในตาราง
ข้อมูลเพื่อการจัดการโปรเซส ข้อมูลเพื่อการจัดการหน่วยความจ า ข้อมูลเพื่อการจัดการแฟ้ม Register
Program counter Program status word Stack pointer Process state
Time when process startd CPU time used
Children's CPU time Time of next alarm Message queue pointer Pending signal bits Process id
Various flag bits for Process management
Pointer to text segment Pointer to data segment Pointer to bss segment Exit status Signal status Process id Parent process Process group Real uid Effective uid Real gid Effective gid Bit maps for signals
Various flag bits for memory management UMASK mask Root directory Working directory File descriptors Effective uid Effective gid
System call parameters Various flag bits for File management รายละเอียดของข้อมูลของแต่ละโปรเซส จากตารางจะเห็นว่าข้อมูลที่ส าคัญของแต่ละโปรเซสที่ต้องมีการเก็บไว้นั้นมีมากมาย โดยในที่นี้จะ กล่าวถึงเฉพาะข้อมูลที่มีความส าคัญ และมีความจ าเป็นในส่วนต่างๆ ค่าของรีจีสเตอร์ โดยจะท าการเก็บค่าต่างๆ ที่ท างานค้างไว้ในรีจีสเตอร์ ก่อนที่จะปลดปล่อย ซีพียู เพื่อใช้เป็นข้อมูลในการท างานต่อเมื่อได้ครองซีพียูอีกครั้ง การที่ต้องเก็บค่าในรีจีสเตอร์ไว้นี้ ก็ เนื่องจาก รีจีสเตอร์ภายในซีพียู เป็นหน่วยความจ าที่ใช้ในการเก็บข้อมูลชั่วคราวในขณะที่ซีพียูท างาน หาก โปรเซสใหม่เข้ามาครองและใช้งานซีพียูก็จะท าให้ข้อมูลในรีจีส-เตอร์ถูกแทนที่ด้วยข้อมูล ของโปรเซสใหม่ท าให้โปรเซสเดิมไม่สามารถท างานต่อได้ โปรแกรมเค้าเตอร์ ( Program Counter ) เพื่อเก็บต าแหน่งปัจจุบันของการท างานไว้ และใช้ค่านี้ ในการท างานต่อเมื่อได้เข้าครองซีพียูใหม่ สถานะของโปรเซสที่เป็นอยู่ในปัจจุบัน เวลาเริ่มท างานของโปรเซส
เวลาของซีพียูที่ใช้ไปแล้ว ข้อมูลเพื่อการจัดการโปรเซสที่ส าคัญๆ ได้แก่ พอยน์เตอร์ชี้ไปยังต าแหน่งของโปรเซสในหน่วยความจ าเพื่อเก็บต าแหน่งของหน่วยความจ าที่ ใช้เก็บข้อมูลหรือโปรแกรมของแต่ละโปรเซส เพื่อให้สามารถอ้างอิง และน ามาใช้งานได้อย่างถูกต้อง พอยน์เตอร์ชี้ไปยังทรัพยากรต่างๆ ที่โปรเซสครอบครอง หมายเลขประจ าตัวของโปรเซส ข้อมูลเพื่อการจัดการโปรเซสที่ส าคัญๆ ได้แก่ ไดเร็กทอรี่ราก เป็นการเก็บที่อยู่ของโปรแกรมของโปรเซสแต่ละโปรเซสเพื่อ การอ้างอิงและการน ามาใช้งาน ไดเร็กทอรี่ปัจจุบัน รายละเอียดของแฟ้ม หมายเลขประจ าตัวของโปรเซส