โปรเซสคือโปรแกรมที่ถูกประมวลผลโดยซีพียู แต่ในความเป็นจริงแล้วกิจกรรมที่ส่งไปให้ซีพีประมวลผลนั้น ใช่ว่าจะเป็นโปรแกรมเท่านั้น ซึ่งในบางระบบอาจมีการเรียกกิจกรรมที่ซีพียูประมวลผลอยู่นั้นแตกต่างกันไป ดังนั้นไม่ว่าจะเป็น Job, Task หรือ User Program ซึ่งต่างก็มีความหมายเดียวกันกับคำว่าโปรเซส และโปรแกรมที่กำลังทำงานอยู่ ก็เรียกว่าโปรเซสเช่นกันโดยการทำงานของโปรเซสจะทำงานแบบเป็นลำดับแแต่อย่างไรก็ตาม หากพิจารณาในรายละเอียดแล้ว โปรเซสก็ไม่ได้มีความหมายเพียงโปรแกรมที่กำลังทำงานอยู่เท่านั้น แต่รวมถึง Program Counter, Stack และ Data Section ด้วย
สถานะของโปรเซส
เมื่อแต่ละโปรเซสกำลังทำงานอยู่นั้น จะมีการเปลี่ยนแปลงสถานะของโปรเซสในแต่ละช่วงเวลา โปรการทำงานของโปรเซสจะเกิดขึ้นบนสถานะใจสถานะหนึ่งเท่านั้น ซึ่งสถานะของโปรเซสจะประกอบด้วย
1.New
คือสถานะที่โปรเซสใหม่กำลังถูกสร้างขึ้น
2.Ready
คือสถานะที่โปรเซสกำลังรอคอย หรือพร้อมที่จะครอบครองหน่อยซีพียูเพื่อทำงาน
3.Running
คือสถานะที่โปรเซสได้ครอบครองซีพียู หรือโปรเซสที่กำลังทำงานตามคำสั่งของโปรแกรม
4.Waiting
คือสถานะที่โปรเซสกำลังรอคอยเหตุการณ์บางอย่าง เช่น รอให้มีการรับหรือส่งข้อมูลให้เรียบร้อยก่อน
5.Terminated
คือสถานะที่โปรเซสได้สิ้นสุดลง
วิธีการจัดตารางการทำงาน
จากสถานะของโปรเซสที่กล่าวมา ทำให้ทราบว่าโปรเซสใดที่จะถูกส่งไปให้ซีพียูทำงานก่อนดังนั้น ระบบปฎิบัติการจึงต้องมีวิธีการตัดสินใจในการส่งโปรเซสเข้าครอบครองซีพียู จึงเกิดการจัดตารางการทำงานของหน่อยซีพียูขึ้น เพื่อใช่สำหรับแก้ไขปัญหาแลำนำไปสู่การตัดสินใจว่าจะนำโปรเซสที่รอคิวเพ่ือเข้าไปใช่งานในหน่อยซีพียูได้อย่างไร โปยมีหลายวิธีด้วยกันคือ
1.วิธีแบบมาก่อนได้ก่อน
(First-Come,First-Serced Scheduling : FCFS)
เป็นวิธีที่โปรเซสใดที่ร้องขอหน่วยซีพียูก่อน ก็จะได้รับการบิการบริการจากซีพียูตามที่ได้ร้องขอกล่าวคือ เป็นไปตามโปรเซสที่ร้องขอหน่อยซีพียูก่อน ก็จะได้รับการบริการจากซีพียูตามที่ได้ร้องขอวิธีใช่ FCFS นั้นสามารถนำแนวคิดหรือหลักการของคิวมาใช้งานได้ทันที ซึ่งเป็นไปในลักษณะ FIFO (First In, First Out) นั้นเอง
และต่อไปนี้จะเป็นคำอธบายด้วยตัวอย่างวิธีแบบมาก่อนได้ก่อน ให้พิจารฯาโปรเซสต่างๆ และเวลาที่ครอบครองซีพียูดังนี้
หากโปรเซสที่ป้อนเข้าสู่ระบบเป็นไปตามลำดับ P1,P2 และ P3 ดังนั้น คิวของแต่ล่ะโปรเซสก็จะมีละกษณะดังนี้
ดังนั้นเวลารอคอยของแต่ละโปรเซสคือ
P1 ใช้เวลารอคอยเป็นศุนย์
P2 จะใช้เวลารอคอยเท่ากับ 24 มิลลิวินาที
P3 จะใช้เวลารอคอยเท่ากับ 27 มิลลิวินาที
เมื่อคำนวณเป็นเวลารอคอยเฉลี่ยก็ได้เท่ากับ
(0 + 24 + 27) / 3 = 17 มิลลิวินาที
วิธีแบบมาก่อนได้ก่อน จะมีประสิทธิภาพก็ต่อเมื่อโปรเซสที่ลำดับเข้ามาในคิวมีความเหมาะสมก็จะทำให้เวลาโดยเฉลี่ยต่ำลง แต่ก็เป็นไปได้ยาก เนื่องจากเป็นเหตุการณ์ที่ยากต่อการควบคุมได้ดังเปรียบเทียบกับตัวอย่างถัดไป โดยสมมุติว่า หากโปรเซสที่ป้อนเข้าสู่ระบบมีลำดับของคิวใหม่เป็น P2.P3 และ P1 ผลที่ได้ก็จะเป็น
เวลาในการีอคอยของแต่ละโปรเซสก็จะเป็น
P2 จะใช้เวลารอคอยเป็นศูนย์
P3 จะใช้เวลารอคอยเท่ากับ 3 มิลลิวินาที
P1 จะใช้เวลารอคอยเท่ากับ 6 มิลลิวินาที
เมื่อคำนวณเป็นเวลารอคอยก็จะได้เท่ากับ
(0 + 3 + 6) / 3 = 3 มิลลิวินาที
ดังนั้น วิธีมาก่อนได้ก่อน ค่าเฉลี่ยของเวลารอคอยจะมีค่าสูงยิ่งขึ้นอย่างเห็นได้ชัดหากช่วงเวลาการทำงานของแต่ละโปรเซสมีค่าแตกต่างกันมาก
(Short-Job-First Scheduling : SJF)
เป็นวิธีที่ไม่ได้คำนึงถึงลำดับในคิวงานว่างานใดมาก่อนได้ก่อน แต่จะพิจารณาถึงงานหรือโปรเซสที่ใช่เวลาการประมวลผลน้อยก็จะได้บริการหน่อยซีพียูดังนี้
ดังนั้น โปรเซสที่ป้อนเข้าสู่ระบบตามวิธีตามวิธีแบบ SJF ก็จะได้ P4,P1,P3 และ P2 ซึ่งคิวของแต่ล่ะโปรเซสก็จะมีลักษณะดังนี้
3.วิธีตามลำดับความสำคัญ (Priority Scheduling)
เป็นวิธีที่มีการกำหนดความสำคัญของโปรเซสแต่ล่ะโปรเซสไม่เท่ากัน โดยโปรเซสที่จะเข้าครอบครองซีพียูได้ ต้องมีลำดับความสำคัญสูงสุดในกลุ่ม ดังนั้นโปรเซสใดที่มีลำดับสำคัญที่สูงกว่า ก็จะถูกส่งไปประมวลก่อน ถึงแม้ว่าจะมาทีหลังก็ตาม ในขณะเดียวกันโปรเซสที่มีความสำคัญต่ำกว่า ถึงแม้จะมาก่อน ก็จะถูกพิจารณาทีหลังตามลำดับความสำคัญต่อไป
4.วิธีหมุนเวียนกันทำงาน (Round-Robin Scheduling)
การจัดตารางด้วยวิธีแบบหมุนเวียนกันทำงานนี้ ถูกออกแบบมาให้ใช้กับระบบคอมพิวพ์เตอร์แบบแบ่งเวลา โดยจะใช้พื้นฐานวิธีมาก่อนได้ก่อน(FCFS) เป็นหลัก แต่โปรเซสจะไม่สามารถครอบครองซีพียูได้เท่ากับเวลาที่ต้องการ ดังนั้น ด้วยวิธีนี้จึงมีการกำหนดให้แต่ล่ะโปรเซสที่เข้าใช้บริการซีพียูได้เท่ากับเวลามาก่อนได้ ดังนั้น ด้วยวิธีนี้จึงมีการกำหนดให้แต่ล่ะโปรเซสที่เข้าใช้จะเป็นช่วงเวลาสั้นๆ
วงจรฮับ(Deadlock)
ในระบบปฎิบัติการที่ออกแบบมาเพิ้อรองรับการทำงานหลายๆ โปรเซส หรือที่เรียกว่าMultiprogramming หรือ Multiuser นั้น มีความเป็นไปได้ที่โปรเซสต่างๆ ต้องการครอบครองทรัพยากรเดียวกัน เหตุการณ์ดังกล่าวหากเกิดขึ้น ก็จะเกิดการแก่งแย่งชิงทรัพยากรในระบบขึ้นและหากระบบปฎิบัติการไม่มีการบวนการใดๆ จัดการกับโปรเซสที่อาจต้องรอคอยทรัพยากรจากโปรเซสอื่นที่ครอบครองอยู่อย่างชั่วนิรันดร์ จึงเป็นที่มาของวงจรอับนั้นเอง
การจัดหน่วยความจำ(Memory Allocation)\
1.การจัดสรรหน่วยความจำแบบต่อเนื่อง
2.การจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง
ระบบโปรแกรมเดี่ยว(Single Program/Monoprogramming)
ระบบหลายโปรแกรม(Multiprogramming)
หน่วยความจำเสมือน(Virtual Memory)
การจัดการแฟ้มข้อมูล
ในระบบปฎิบัติการจะมีวิธีการจัดเก็บข้อมูลในรูปแบบของไฟล์หรือแฟ้มข้อมูล โปนที่ไฟล์หรือแฟ้มข้อมูลนั้น อาจบรรจุไปด้วยข้อมูล หรือโปรแกรมใดๆ ก็ได้ที่ผู้ใช้ต้องการรวบรวมไว้รวมเป็นชุดเดียวกัน ที่สำคัญ การอ้างอิงไฟล์ หรือข้อมูลต่างๆ
1.การบันทึกข้อมูลในไฟล์แบบเรียงติดกัน
หลักการของวิธีนี้ ข้อมูลแต่ละไบต์ของไฟล์จะถูกบันทึกในลักษณะเรียงต่อเรื่องกันไปจนกระทั่งจบไฟล์ แต่วิธีจะเกิดปัญหาขุ้นได้ในกรณีที่ไฟล์นั้นมีข้อมูลเพิ่มเติม
2.การแบ่งไฟล์เป็นบล็อก
ด้วยข้อกำจัดวิธีการบันทึกข้อมูลในไฟล์แบบเรียงติดกัน ดังนั้น ระบบปฎิบัติการในเกือบทุกระบบ ไก้ใช้วิธีการแบ่งไฟล์ออกเป็นส่วนๆ ที่เรียกว่าบล็อก (Block) โดยตะละบล็อกจะนำไปเก็บไว้ที่ตำแหน่งใดในดิสก็ก็ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น