วันอังคารที่ 7 กุมภาพันธ์ พ.ศ. 2560

บทที่ 3

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

การจัดการโปรเซส

       โปรเซสคือโปรแกรมที่ถูกประมวลผลโดยซีพียูแต่ในความเป็นจริงแล้วกิจกรรมที่ส่งไปให้ซีพียูประมวลผลนั้น ใช่ว่าจะเป็นโปรแกรมเท่านั้น ซึ่งในบางระบบอาจมีการเรียกกิจกรรมที่ซีพียูประมวลผลอยู่แตกต่างกันไป เช่น Job , Task  หรือ User Program ต่างก็มีความหมายเดียวกันกับคำว่าโปรเซส

สถานะของโปรเซส

       เมื่อแต่ละโปรเซสกำลังทำงานอยู่ จะมีการเปลี่ยนแปลงสถานะของโปรเซสในแต่ละช่วงเวลา โดยการทำงานของโปรเซสจะเกิดขึ้นบนสถานะใดสถานะหนึ่งเท่านั้น ซึ่งสถานะของโปรเซสประกอบด้วย
      1. New คือสถานะที่โปรเซสใหม่กำลังถูกสร้างขึ้น
      2. Ready คือสถานะที่โปรเซสกำลังรอคอย หรือพร้อมที่จะครอบครองหน่วยซีพียูเพื่อทำงาน
      3. Running คือสถานะที่โปรเซสได้ครอบครองซีพียู หรือโปรเซสที่กำลังทำงานตามคำสั่งของโปรแกรม
      4. Waiting คือสถานะที่โปรเซสกำลังรอคอยเหตุการณ์บางอย่าง เช่น รอให้มีการรับหรือส่งข้อมูลให้เรียบร้อยก่อน
      5. Terinated คือสถานะที่โปรเซสได้หยุดลง


สถานะของโปรเซส
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1o7pHfJysbyX156sVL6hEvtmZM_pVf5b0b2XUfw95IgRujrv9TZE61Ur9X_8Y-UQwgXbGZI8VaAsMcHGN5HUSte4_wUDLYSCnaoC3trQBZZLPTOiL5MX7OJ8sRM9rGqtSuttb32utnp4/s1600/chapte3.gif

วิธีการจัดตารางการทำงาน

       จากสถานะของโปรเซสที่กล่าวมา ทำให้ทราบว่าโปรเซสใดที่จะถูกส่งไปให้ซีพียูทำงานก่อน ดังนั้นระบบปฏิบัติการจึงต้องมีวิธีการตัดสินใจในการส่งโปรเซสเข้าครอบครองซีพียู จึงเกิดการจัดตารางการทำงานของหน่วยซีพียูขึ้น เพื่อแก้ไขปัญหาที่จะเกิดขึ้น โยมีหลายวิธีดังนี้

      1. วิธีแบบมาก่อนได้ก่อน  (First-Come , FirstServed Scheduling : FCFS) 

เป็นวิธีที่โปรเซสใดที่ร้องขอหน่วยซีพียูก่อน ก็จะได้รับบริการจากซีพียูก่อนตามที่ร้องขอกล่าวคือ เป็นไปตามโปรเซสที่ร้องขอบริการจากซีพียูตามลำดับคิว เป็นวิธีที่ง่าย ไม่ซับซ้อน ยกตัวอย่างเช่น หากโปรเซที่ป้อนข้อมูลเข้าสู่ระบบเป็นไปตามลำดับ P1 , P2 , และ P3 ดังนั้นคิวของแต่ละโปรเซสก็คือ
P1    จะใช้เวลารอคอยเป็นศูนย์
P2    จะใช้เวลารอคอยเท่ากับ 24 มิลลิวินาที
P3    จะใช้เวลารอคอยเท่ากับ 27 มิลลิวินาที
วิธีแบบมาก่อนได้ก่อน จะมีประสิทธิภาพก็ต่อเมื่อโปรเซสที่ลำดับเข้ามาในคิวมีความเหมาะสมก็จะทำให้เฉลี่ยเวลาน้อยลง แต่เป็นไปได้ยาก

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

       โปรแกรมที่รันจะต้องถูกเก็บไว้ในหน่วยความจำทั้งหมด กล่าวคือโปรเซสทั้งตัวจะต้องอยู่ในหน่วยความจำหลักไปก่อน จึงสามารถเริ่มทำการประมวลผลได้ ซึ่งเป็นเรื่องปกติ แต่ถ้าพิจารณาให้ดีจะพบว่า หากโปรแกรมมีขนาดใหญ่กว่าพื้นที่หน่วยความจำหลักก็ไม่สามารถประมวลผลได้ นั่นเอง

การจัดการแฟ้มข้อมูล

       ในระบบปฏิบัติการจะมีวิธีการจัดเก็บข้อมูลรูปแบบของไฟล์หรือแฟ้มข้อมูล โดยที่ไฟล์ข้อมูลนั้นๆ อาจบรรจุข้อมูลไปด้วยข้อมูลหรือโปรแกรมใดๆ ที่ผู้ใช้ต้องการรวบรวมไว้เป็นชุดเดียวกันที่สำคัญ การอ้างอิงไฟล์หรือข้อมูลต่างๆภายในโปรแกรม จะไม่เกี่ยวข้องกับแอดเดรสของโปรแกรมใดๆทั้งสิ้น



อ้างอิง

       หนังสือเรียนวิชาการใช้งานระบบปฏิบัติการ

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

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