วันอาทิตย์ที่ 11 ธันวาคม พ.ศ. 2559

บทที่ 3 ระบบปฎิบัติการกับการจัดการทรัพยากรระบบ

การจัดการโปรเซส
โปรเซสคือโปรแกรมที่ถูกประมวลผลโดยซีพียู แต่ในความเป็นจริงแล้วกิจกรรมที่ส่งไปให้ซีพีประมวลผลนั้น ใช่ว่าจะเป็นโปรแกรมเท่านั้น ซึ่งในบางระบบอาจมีการเรียกกิจกรรมที่ซีพียูประมวลผลอยู่นั้นแตกต่างกันไป ดังนั้นไม่ว่าจะเป็น 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 มิลลิวินาที
ดังนั้น   วิธีมาก่อนได้ก่อน ค่าเฉลี่ยของเวลารอคอยจะมีค่าสูงยิ่งขึ้นอย่างเห็นได้ชัดหากช่วงเวลาการทำงานของแต่ละโปรเซสมีค่าแตกต่างกันมาก

2.วิธีแบบงานใดใช้เวลาสั้นที่สุด จะได้ก่อน
(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) โดยตะละบล็อกจะนำไปเก็บไว้ที่ตำแหน่งใดในดิสก็ก็ได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น