ระบบปฏิบัติการมีหน้าที่จัดเตรียมสภาวะแวดล้อมเพื่อช่วยให้โปรแกรมทำงานได้
การ ออกแบบถือเป็นงานหลักในการสร้างระบบปฏิบัติการใหม่
ก่อนการออกแบบจะต้องกำหนดเป้าหมายของระบบขึ้นมาก่อน
หลังจากนั้นจะต้องสร้างอัลกอริทึมที่หลากหลายที่จะเป็นต้องใช้ในการสร้างระบบ
แล้วสร้างระบบตามอัลกอริทึมนั้นมีจุดที่น่าสนใจในการพิจารณาระบบปฏิบัติการ 2-3
ประการ ประการแรกให้พิจารณาเซอร์วิสของระบบ ปฏิบัติการที่มีมาให้
ประการที่สองคือการดูที่อินเทอร์เฟซระหว่างผู้ใช้กับโปรแกรมเมอร์
ประการสุดท้ายคือการแยกส่วนประกอบของระบบออกเป็นส่วนย่อย ๆ
รวมถึงการเชื่อมโยงระหว่างส่วนย่อย ๆ นั้นด้วย
ในหัวข้อนี้ผู้เขียนจะนำคุณเข้าไปสำรวจจุดที่ควรพิจารณาทั้ง 3
ประการของระบบปฏิบัติการเพื่อแสดงมุมมองของผู้ใช้, โปรแกรมเมอร์และผู้ออกแบบระบบ
เราจะพิจารณาเซอร์วิสของระบบปฏิบัติการว่ามีอะไรบ้าง แต่ละเซอร์วิสทำอะไรบ้าง
รวมถึงวิธีต่าง ๆ ที่ใช้ในการออกแบบระบบ
คอมโพเนนต์ของระบบ (System Component)
เราสามารถสร้างระบบให้ใหญ่โตและซับซ้อนได้ด้วยการแบ่งให้เป็นส่วนย่อย
แต่ละส่วนย่อยเหล่านี้เป็นโครงสร้างของระบบที่ออกแบบอินพุต, เอาต์พุต และฟังก์ชัน
แต่เดิมนั้นทุกระบบมีคอมโพเนนต์ที่ไม่เหมือนกัน
อย่างไรก็ตามระบบสมัยใหม่มีเป้าหมายที่สนับสนุนคุมโพเนนต์ที่เป็นพื้นฐานของระบบปฏิบัติการดังนี้
การจัดการโปรเซส (Process Management)
ซีพียูทำหน้าที่เอ็กซิคิวต์คำสั่งที่อยู่ในโปรแกรม
โปรแกรมที่เอ็กซิคิวต์เป็นโปรเซสแต่เป็นเพียงการกำหนดในเบื้องต้นที่สามารถขยายเพิ่มเติมในอนาคต
โดยปกติแล้วงานแบ็ตซ์เป็นโปรเซส การแชร์เวลาของโปรแกรมก็เป็นโปรเชส หรือแม้แต่งานของระบบ
เช่น การสพูล เอาต์พุตออกทางเครื่องพิมพ์ ก็เป็นโปรเซสเช่นกัน
โปรเซสต้องการรีซอร์สที่แน่นอนเพื่อให้งานเสร็จสมบูรณ์ ทั้งเวลาสำหรับซีพียู, หน่วยความจำ, ไฟล์, และดีไวซ์ที่เป็นอินพุตและเอาต์พุต
รีซอร์สเหล่านี้จะนำมาใช้เมื่อมีการสร้างหรือกำหนดให้โปรเซสทำงาน
นอกจากนี้เมื่อมีการสร้างโปรเซสก็อาจจะมีการส่งข้อมูลเริ่มต้นไปให้ทั้งรีซอร์สทางกายภาพและทางลอจิก
โปรเซสเป็นหน่วยหนึ่งของระบบ โดยปกติระบบจะประกอบด้วยโปรเซสเป็นจำนวนมาก
บ้างก็เป็นโปรเซสของระบบปฏิบัติการ (ที่เอ็กซิคิวต์โค้ดของระบบ) ที่เหลือก็เป็นโปรเซสของผู้ใช้
(ที่เอ็กซิคิวต์โค้ดของผู้ใช้) โปรเซสทั้งหมดนี้มีศักยภาพที่จะเอ็กซิคิวต์ไปพร้อม
ๆ กันด้วยความซับซ้อนของซีพียูนั่นเอง
ระบบปฏิบัติการมีหน้าที่รับผิดชอบในกิจกรรมที่เกี่ยวกับการจัดการโปรเซสดังนี้
-
การสร้างและลบทั้งโปรเซสของระบบและของผู้ใช้
- การหยุดและทำโปรเซสต่อไป
-
การจัดเตรียมกลไกสำหรับการซินโครไนซ์โปรเซส
-
การจัดเตรียมกลไกสำหรับการติดต่อสื่อสารโปรเซส
- การจัดเตรียมกลไกการแก้ไข deadlock
การจัดการหน่วยความจำ (Memory Managememt)
หน่วยความจำเป็นส่วนสำคัญและเป็นศูนย์กลางการทำงานของระบบปฏิบัติการยุคใหม่
หน่วยความจำเป็นอาร์เรย์ของคำหรือไบต์
โดยที่แต่ละคำหรือไบต์จะมีแอ็ดเดรสที่แน่นอนเป็นของตัวเอง
หน่วยความจำเป็นที่เก็บข้อมูลที่ใช้งานร่วมกันของซีพียู
และดีไวซ์สำหรับอินพุตและเอาต์พุต เพื่อให้การดึงข้อมูลมาใช้ได้อย่างรวดเร็ว
โปรเซสเซอร์ส่วนกลาง
หรือซีพียูจะอ่านคำสั่งจากหน่วยความจำตลอดเวลาในวงรอบการดึงข้อมูล
และมีทั้งการเขียนและอ่านจากหน่วยความจำระหว่างวงรอบการดึงข้อมูล
การทำงานของอินพุต/เอาต์พุตทั้งการอ่านและเขียนลงหน่วยความจำจะจำผ่าน DMA โดยปกติหน่วยความจำจะเป็นดีไวซ์สำหรับการจัดเก็บข้อมูลขนาดใหญ่ที่ซีพียูกำหนดแอ็ดเดรสและดึงข้อมูลได้โดยตรง
การจัดการไฟล์ (File Management)
การจัดการไฟล์เป็นส่วนหนึ่งในคอมโพเนนต์ของระบบปฏิบัติการที่เห็นได้ชัดเจน
คอมพิวเตอร์สามารถจัดเก็บในสื่อที่แตกต่างกัน ไม่ว่าจะเป็นเทปแม่เหล็ก, ดิสก์, ออพติคัลดิสก์
สื่อแต่ละชนิดมีคุณสมบัติและการจัดทางกายภาพเฉพาะแบบ
สื่อแต่ละชนิดจะถูกควบคุมด้วยดีไวซ์ เช่น ดิสก์ไดรฟ์, หรือเทปไดรฟ์
ซึ่งมีคุณสมบัติเฉพาะแบบเช่นกัน คุณสมบัติเหล่านี้รวมถึง ความเร็ว, ความจุ, อัตราการถ่ายโอนข้อมูล และวิธีการแอ็กเซสข้อมูล
เพื่อความสะดวกในการใช้งานระบบคอมพิวเตอร์นั้น
ระบบปฏิบัติการได้กำหนดชื่อทางลอจิกว่า “ไฟล์” เพื่อเป็นชื่อแทนกลุ่มข้อมูลที่จัดเก็บในสื่อทางกายภาพ
โดยที่ระบบปฏิบัติการจะแมพไฟล์ไปยังสื่อทางกายภาพและแอ็กเซสไฟล์ผ่านทางดีไวซ์ที่จัดเก็บข้อมูลนั้น
ทำให้คุณใช้ชื่อไฟล์เพื่อกำหนดสิ่งที่คุณต้องการดูข้อมูลได้ทันที
ไฟล์จะเป็นชุดของข้อมูลที่สัมพันธ์กันซึ่งถูกกำหนดชื่อโดยผู้สร้างไฟล์นั้น
โดยปกติแล้ว ไฟล์จะแสดงโปรแกรมและข้อมูล ไฟล์ข้อมูลอาจจะเป็นตัวเลข, ตัวอักษร หรือทั้งตัวเลขและตัวอักษร ไฟล์อาจจะเป็นรูปแบบอิสระ เช่น
เท็กซ์ไฟล์ หรืออาจจะเป็นรูปแบบที่ตายตัว ไฟล์ประกอบด้วยชุดของบิต, ไบต์, หรือเรกคอร์ดตามที่ผู้สร้างกำหนด
ระบบปฏิบัติการมีหน้าที่รับผิดชอบในกิจกรรมที่เกี่ยวกับการจัดการไฟล์ดังนี้
- สร้างและการลบไฟล์
- สร้างและการลบไดเรกทอรี
- สนับสนุนการจัดการไฟล์ในรูปแบบเดิม
ๆ ที่ผ่านมา
-
แมพไฟล์ไปยังสิ่งที่ใช้จัดเก็บข้อมูล
- แบ็คอัพหรือสร้างไฟล์สำรอง
การจัดการอินพุต/เอาต์พุต
การออกแบบระบบปฏิบัติการมีจุดมุ่งหมายข้อหนึ่งเพื่อควบคุมดีไวต์ที่เชื่อมต่ออยู่กับ
คอมพิวเตอร์ ทั้งนี้เนื่องจากดีไวซ์เหล่านั้นมีความหลากหลายในเรื่องฟังก์ชันและความเร็ว
การควบคุมจำเป็นต้องใช้วิธีการที่หลากหลายเช่นกัน วิธีการควบคุมเหล่านี้เรียกว่า “ระบบย่อยอินพุต/เอาต์พุต” ซึ่งเป็นส่วนหนึ่งของ
kernel ที่แยกจากการจัดการหน่วยความจำที่ซับซ้อนในระบบเทคโนโลยีทางด้านดีไวซ์ได้แสดงให้เห็นข้อที่แย้งกัน
2 ด้าน
ด้านแรกเทคโนโลยีทางด้านดีไวซ์ทำให้เราเห็นมาตรฐานที่มีการพัฒนาอินเทอร์เฟซของซอฟต์แวร์และฮาร์ดแวร์ที่เพิ่มมากขึ้น
การพัฒนาทางด้านนี้ทำให้เรามีส่วนร่วมในปรับปรุงเพื่อพัฒนาดีไวซ์เพื่อนำมาใช้งานได้มากขึ้น
ส่วนทางด้านอื่นเราได้เห็นดีไวซ์ที่มีความหลากหลายในการเลือกใช้ดีไวซ์ใหม่บางชิ้นก็ไม่เหมือนเดิมที่มีอยู่
เป็นสิ่งท้าทายที่ทำให้เราสามารถเลือกดีไวซ์ที่ต่างประเภทกันเพื่อใช้ระบบคอมพิวเตอร์และระบบปฎิบัติการเดียวกัน
ไม่ว่าจะเป็นอินพุต/เอาต์พุตพื้นฐานเช่น พอร์ต, บัส
และดีไวซ์ที่หลากหลายเพียงใด ระบบปฏิบัติการมี kernel ที่จัดการกับดีไวซ์เหล่านี้ได้เป็นอย่างดี
kernel ของระบบปฏิบัติการก็คือโครงสร้างที่ใช้โมดูล “ดีไวซ์ไดร์เวอร์” ดีไวซ์ไดร์เวอร์ได้แสดงถึงรูปแบบเฉพาะในการอินเทอร์เฟซระหว่างดีไวซ์กับระบบย่อยอินพุต/เอาต์พุต
ในขณะที่ระบบจะมีอินเทอร์เฟซมาตรฐานระหว่างแอปพลิเคชันกับระบบปฏิบัติการอยู่แล้วนั่นเอง
ระบบย่อยอินพุต/เอาต์พุตประกอบด้วย
-
การจัดการหน่วยความจำที่รวมทั้งบัพเพอร์ ,แคช
และสพูล
-
อินเทอร์เฟซพื้นฐานของดีไวซ์ไดร์เวอร์
- ไดร์เวอร์สำหรับดีไวซ์ที่มีรูปเฉพาะ
การจัดการสื่อจัดเก็บข้อมูล (Storage Management)
เนื่องจากวัตถุประสงค์หลักของระบบคอมพิวเตอร์คือการเอ็กซิคิวต์โปรแกรม
ในระหว่างการเอ็กซิคิวต์โปรแกรมรวมทั้งข้อมูลเหล่านี้จะใช้ต้องอยู่บนหน่วยความจำหลัก
แต่เนื่องจากหน่วยความจำหลักเหล่านี้มีขนาดเล็ก
และเนื่องจากระบบคอมพิวเตอร์จำเป็นต้องมีไฟฟ้าหล่อเลี้ยง
ถ้าไม่มีไฟฟ้าข้อมูลบนหน่วยความจำหลักก็จะสูญหายไปด้วย
สิ่งนี้เองที่ระบบคอมพิวเตอร์จำเป็นต้องมีสื่อจัดเก็บข้อมูล
เพื่อถ่ายข้อมูลจากหน่วยความจำหลักมาเก็บไว้ก่อน เพื่อสะดวกในการใช้งานภายหลัง
ปัจจุบันระบบคอมพิวเตอร์ทั่วไปจะใช้ดิสก์เป็นสื่อในการจัดเก็บข้อมูลทั้งโปรแกรมและข้อมูล
โปรแกรมส่วนใหญ่ทั้งที่เป็นตัวคอมไพล์, ตัวเอดิเตอร์, ตัวแปลภาษา และอื่น ๆ
จะถูกโหลดขึ้นสู่หน่วยความจำหลักก่อน เพื่อทำงานกับหน่วยความจำโดยตรง
และมีการจัดเก็บข้อมูลเป็นระยะเมื่อคุณสั่งให้จัดเก็บและระบบคอมพิวเตอร์ในปัจจุบันที่มีระบบปฏิบัติการที่ทรงประสิทธิภาพจะมีการแปลงหน่วยจัดเก็บข้อมูลบนดิสก์ให้เป็นหน่วยความจำเสมือน
ตลอดเวลาที่มีการใช้งาน และจะคืนสภาพทั้งหมดให้กับระบบก่อนการชัตดาวน์ระบบ
การจัดการสื่อจัดเก็บข้อมูลที่เป็นความรับผิดชอบของระบบปฏิบัติการมีดังนี้
- จัดการเนื้อที่ว่างบนดิสก์
- จัดการตำแหน่งจัดเก็บข้อมูล
ที่อาจจะกระจัดกระจาย แต่เมื่อมีการใช้งานจะต้องทำงานได้เร็ว
โดยจะมีพอยเตอร์ชี้ไปยังกลุ่มข้อมูลเดียวกัน
- การจัดแบ่งเวลาการใช้ดิสก์
ขอขอบคุณ
http://www.baanjomyut.com/library_2/extension-1/internet/14.html
ขอขอบคุณ
http://www.baanjomyut.com/library_2/extension-1/internet/14.html
ไม่มีความคิดเห็น:
แสดงความคิดเห็น