สถานะของโปรเซส ประกอบด้วย
1.New คือสถานะที่โปรเซสใหม่กำลังถูกสร้างขึ้น
2.Ready คือสถานะที่โปรเซสกำลังรอคอย หรือพร้อมที่จะครอบครองหน่วยซีพียูเพื่อทำงาน
3.Running คือสสถานะที่โปรเซสได้ครอบครองซีพียู หรือโปรเซสที่กำลังทำงานตามคำสั่งของโปรเเกรม
4.Waiting คือสถานะที่โปรเซสกำลังรอคอยเหตุการณ์บางอย่าง เช่น รอให้มีการรับหรือส่งข้อมูลให้เรียบร้อยก่อน
5.Terminated คือสถานะที่โปรเซสได้สิ้นสุดลง
วิธีการจัดตารางการทำงาน
จากสถานะของโปรเซสที่กล่าวมา ทำให้ทราบว่าโปรเซสใดที่จะส่งไปให้ซีพี่ยูทำงานก่อน โดยมีหลายวิธีด้วยกันคือ
1.วิธีเเบบมาก่อนได้ก่อน
(First-Come,First-Served Scheduling : FCFS)
เป็นวิธีที่โปรเซสใดที่ร้องขอหน่วยซีพียูก่อน ก็จะได้รับบริการจากซีพียูก่อนตามที่ร้องขอกล่าวคือ เป็นไปตามโปรเซสที่ร้องขอบริการจากซีพียูตามลำดับคิว เป็นวิธีที่ง่าย ไม่ซับซ้อน ยกตัวอย่างเช่น หากโปรเซที่ป้อนข้อมูลเข้าสู่ระบบเป็นไปตามลำดับ P1 , P2 , และ P3 ดังนั้นคิวของแต่ละโปรเซสก็คือ
P1 จะใช้เวลารอคอยเป็นศูนย์
P2 จะใช้เวลารอคอยเท่ากับ 24 มิลลิวินาที
P3 จะใช้เวลารอคอยเท่ากับ 27 มิลลิวินาที
วิธีแบบมาก่อนได้ก่อน จะมีประสิทธิภาพก็ต่อเมื่อโปรเซสที่ลำดับเข้ามาในคิวมีความเหมาะสมก็จะทำให้เฉลี่ยเวลาน้อยลง แต่เป็นไปได้ยาก
2.วิธีเเบบงานใดใช้เวลาสั้นที่สุด จะได้ก่อน
(Shortest-job-First Scheduling : SJF)
เป็นวิธีที่ไม่นึกถึงลำดับในคิวว่างานใดมาก่อน แต่จะพิจารณาถึงงานหรือโปรเซสที่ใช้เวลาการประมวลผลน้อยที่สุดก็จะได้บริการ หน่วยซีพียูก่อน อย่างไรก็ตามหากกลุ่มงนมีเวลาประมวลผลเท่ากัน ก็จะพิจารณาโปรเซสที่มาก่อนได้ก่อนแทน ยกตัวอย่างเช่น
P1 ใช้เวลาการประมวลผลที่ 6 มิลลิวินาที
P2 ใช้เวลาการประมวลผลที่ 8 มิลลิวินาที
P3 ใช้เวลาการประมวลผลที่ 7 มิลลิวินาที
P4 ใช้เวลาการประมวลผลที่ 3 มิลลิวินาที
ดังนั้น โปรเซสที่จะป้อนข้อมูลเข้าสู่ระบบตามวิธีแบบ SJF ก็จะได้แก่ P4 ,P1 , P3 และ P2
3.วิธีตมาลำดับความสำคัญ
(Priority Scheduling)
เป็นวิธีที่มีการกำหนดความสำคัญของโปรเซสแต่ละโปรเซสไม่เท่ากันโดยโปรเซสที่ จะเข้าครอบครองซีพียูได้ ต้องมีลำดับความสำคัญสูงสุดในกลุ่ม
4.วิธีเเบบหมุนเวียนกันทำงาน
(Round-Robin Scheduling)
การจัดการทำงานบบนี้ถูกออกแบบมาให้ใช้กับระบบคอมพิวเตอร์แบบแบ่งเวลา โดยจะใช้พื้นฐานวิธีแบบมาก่อนได้ก่อน เป็นหลัก แต่โปรเซสจะไม่สามารถครอบครองซีพียูได้เท่ากับเวลาที่ต้องการ ดังนั้นจึงมีการกำหนดเวลาในการครอบครองให้เทาๆกัน ซึ่งเป็นขช่วงเวลาสั้นๆ
การจัดการหน่วยความจำ
การจัดการหน่วยความจำเป็นสิ่งที่ยากต่อการออกแบบระบบปฏิบัติการทีเดียว เนื่องจากการจัดการหน่วยความจำหลักในแต่ละวิธี ล้วนแต่มีข้อจำกัดเหมือนกันนั่นก็คือโปรเซสหนึ่งๆ จะต้องถูกโหลดเข้าไปอยู่ในหน่วยความจำหลักก่อนที่โปรเซสจะเริ่มทำงานหรือประมวลผลนั้นๆ หมายความว่าขนาดของโปรเซสที่ถูกโหลดเขาไปในหน่วยความจำนั้นขนาดจะต้องไม่โตกว่าหน่วยความจำหลักที่มีอยู่ และหากคิดตามหลักความเป็นจริงแล้วขนาดของหน่วยความจำหลักมักมีขนาดจำกัด ในขณที่โปรแกรมต่างๆ ในปัจจุบันมักมีความซับซ้อนยิ่งขึ้นในหน่วยความจำหลักได้ั้งหมด เนื่องจากขนาดหน่วยความจำหลักมีน้อยกว่า ดังนั้นจึงต้องมีการะบวนการจัดการเพื่อให้โปรแกรมเหล่านั้นสามารถโหลดเข้าไปในหน่วยความจำหลัก เพื่อนำไปสู่การประมวลผลให้ได้
การจัดสรรหน่วยความจำ (Memory Allocation)
ข้อมูลและโปรแกรมต่างๆ ล้วนต้องถูกโหลดเข้าไปในหน่วยความจำหลัก หรือ โปรแกรมจะทำงานได้ดีก็ต่อเมื่อโปรแกรมนั้นได้ถูกโหลดไว้ในหน่วยความจำแล้วเท่านั้น และการที่โปรแกรมสามารถเข้าไปใช้หน่วยความจำของระบบได้ เพราะระบบปฏิบัติการเป็นผู้จัดสรรนั่นเอง
ระบบโปรแกรมเดี่ยว
(Single Program/Monoprograming)
ในระบบคอมพิวเตอร์ที่มีการประมวลผลในรูปแบบโปรแกรมเดียว หมายความว่าสามารถรันโปรแกรมของผู้ใช้ได้เพียงครั้งละหนึ่งโปรแกรมเท่านั้น ซึ่งหลักการทำงานของระบบโปรแกรมเดี่ยวมีข้อดีตรงที่การจัดการความจำเป็นไปค่อนข้างง่าย ไม่ซับซ้อน แต่ข้อจำกัดคือไม่สามารถรันโปรแกรมได้หลายๆโปรแกรม ตัวอย่างระบบปฏิบัติแบบโปรแกรมเดียวคือ ระบบปฏิบัติการ DOS
ระบบหลายโปรแกรม (Multiprogramming)
หลักการของระบบหลายโปรแกรมคือ การทำงานของโปรแกรมในคอมพิวเตอร์ส่วนใหญ่สูญเสียไปกับการจัดการอุปกรณ์อินพุตและเอาต์พุต ซึ่งอุปกรณ์ดังกล่าวมีการเข้าถึงการทำงานช้ามากเมื่อเทียบกับซีพียู และขณะที่จัดการกับอุปกรณ์ดังกล่าวก้ไม่จำเป็นต้องใช้ซีพียูดังนั้นซีพียูจะว่าง ไม่มีการทำงานใดๆให้สูญเสียเวลาอันมีค่าไปอย่างน่าเสียดายหากในช่วงเวลาดังกล่าว นำโปรแกรมอื่นเข้ามาครอบครองเพื่อให้ใช้งานซีพียูได้ ก็ถือว่าคุ้มค่าเพราะซีพียูเป็นสิ่งที่มีทรัพยากรสูง สามารถรันโปรแกรมในขณะเดียวกันได้
คอมพิวเตอร์ที่ใช้ระบบปฏิบัติการที่สามารถรองรับการทำงานแบบหลายโปรแกรมนั้นมักเป็นระบบปฏิบัติการที่มีคุณภาพ ในปัจจุบันระบบปฏิบัติการที่ออกแบบมาล้วนแต่รองรับการทำงานแบบหลายโปรแกรมแทบทั้งสิ้น แต่จะต้องได้รับการออกแบบที่ดี
หน่วยความจำเสมือน (Virtual Memory)
โปรแกรมที่รันจะต้องถูกเก็บไว้ในหน่วยความจำทั้งหมด กล่าวคือโปรเซสทั้งตัวจะต้องอยู่ในหน่วยความจำหลักไปก่อน จึงสามารถเริ่มทำการประมวลผลได้ ซึ่งเป็นเรื่องปกติ แต่ถ้าพิจารณาให้ดีจะพบว่า หากโปรแกรมมีขนาดใหญ่กว่าพื้นที่หน่วยความจำหลักก็ไม่สามารถประมวลผลได้ นั่นเอง
การจัดการแฟ้มข้อมูล
ในระบบปฏิบัติการจะมีวิธีการจัดเก็บข้อมูลรูปแบบของไฟล์หรือแฟ้มข้อมูล โดยที่ไฟล์ข้อมูลนั้นๆ อาจบรรจุข้อมูลไปด้วยข้อมูลหรือโปรแกรมใดๆ ที่ผู้ใช้ต้องการรวบรวมไว้เป็นชุดเดียวกันที่สำคัญ การอ้างอิงไฟล์หรือข้อมูลต่างๆภายในโปรแกรม จะไม่เกี่ยวข้องกับแอดเดรสของโปรแกรมใดๆทั้งสิ้น
อ้างอิง
หนังสือเรียนวิชาการใช้งานระบบปฏิบัติการ รหัสวิชา 2128-2002
ไม่มีความคิดเห็น:
แสดงความคิดเห็น