ความรู้ทั่วไป สารนิเทศ การศึกษา คอมพิวเตอร์ >>
» อินเตอร์เน็ต อินทราเน็ต และเอ็กซ์ทราเน็ต
» อุปกรณ์ที่ใช้การสื่อสารข้อมูลคอมพิวเตอร์
» การทำงานแบบบัฟเฟอร์ (Buffering)
» ระบบสพูลลิ่ง (Spooling System)
» ระบบมัลติโปรแกรมมิ่ง (Multiprogramming)
» ระบบแบ่งเวลา (Time-Sharing System)
» ระบบเรียลไทม์ (Real-Time System)
» ระบบคอมพิวเตอร์ส่วนบุคคล หรือพีซี (Personal Computer Systems)
» ระบบมัลติโปรเซสเซอร์ (Multipocessor System)
» ระบบแบบกระจาย (Distributer System)
โครงสร้างของระบบปฏิบัติการ
ระบบปฏิบัติการมีหน้าที่จัดเตรียมสภาวะแวดล้อมเพื่อช่วยให้โปรแกรมทำงานได้ การ
ออกแบบถือเป็นงานหลักในการสร้างระบบปฏิบัติการใหม่
ก่อนการออกแบบจะต้องกำหนดเป้าหมายของระบบขึ้นมาก่อน
หลังจากนั้นจะต้องสร้างอัลกอริทึมที่หลากหลายที่จะเป็นต้องใช้ในการสร้างระบบ
แล้วสร้างระบบตามอัลกอริทึมนั้นมีจุดที่น่าสนใจในการพิจารณาระบบปฏิบัติการ 2-3
ประการ ประการแรกให้พิจารณาเซอร์วิสของระบบ ปฏิบัติการที่มีมาให้
ประการที่สองคือการดูที่อินเทอร์เฟซระหว่างผู้ใช้กับโปรแกรมเมอร์
ประการสุดท้ายคือการแยกส่วนประกอบของระบบออกเป็นส่วนย่อย ๆ
รวมถึงการเชื่อมโยงระหว่างส่วนย่อย ๆ นั้นด้วย
ในหัวข้อนี้ผู้เขียนจะนำคุณเข้าไปสำรวจจุดที่ควรพิจารณาทั้ง 3
ประการของระบบปฏิบัติการเพื่อแสดงมุมมองของผู้ใช้, โปรแกรมเมอร์และผู้ออกแบบระบบ
เราจะพิจารณาเซอร์วิสของระบบปฏิบัติการว่ามีอะไรบ้าง แต่ละเซอร์วิสทำอะไรบ้าง
รวมถึงวิธีต่าง ๆ ที่ใช้ในการออกแบบระบบ
คอมโพเนนต์ของระบบ (System Component)
เราสามารถสร้างระบบให้ใหญ่โตและซับซ้อนได้ด้วยการแบ่งให้เป็นส่วนย่อย
แต่ละส่วนย่อยเหล่านี้เป็นโครงสร้างของระบบที่ออกแบบอินพุต, เอาต์พุต และฟังก์ชัน
แต่เดิมนั้นทุกระบบมีคอมโพเนนต์ที่ไม่เหมือนกัน
อย่างไรก็ตามระบบสมัยใหม่มีเป้าหมายที่สนับสนุนคุมโพเนนต์ที่เป็นพื้นฐานของระบบปฏิบัติการดังนี้
การจัดการโปรเซส (Process Management)
ซีพียูทำหน้าที่เอ็กซิคิวต์คำสั่งที่อยู่ในโปรแกรม
โปรแกรมที่เอ็กซิคิวต์เป็นโปรเซสแต่เป็นเพียงการกำหนดในเบื้องต้นที่สามารถขยายเพิ่มเติมในอนาคต
โดยปกติแล้วงานแบ็ตซ์เป็นโปรเซส การแชร์เวลาของโปรแกรมก็เป็นโปรเชส
หรือแม้แต่งานของระบบ เช่น การสพูล เอาต์พุตออกทางเครื่องพิมพ์ ก็เป็นโปรเซสเช่นกัน
โปรเซสต้องการรีซอร์สที่แน่นอนเพื่อให้งานเสร็จสมบูรณ์ ทั้งเวลาสำหรับซีพียู,
หน่วยความจำ, ไฟล์, และดีไวซ์ที่เป็นอินพุตและเอาต์พุต
รีซอร์สเหล่านี้จะนำมาใช้เมื่อมีการสร้างหรือกำหนดให้โปรเซสทำงาน
นอกจากนี้เมื่อมีการสร้างโปรเซสก็อาจจะมีการส่งข้อมูลเริ่มต้นไปให้ทั้งรีซอร์สทางกายภาพและทางลอจิก
โปรเซสเป็นหน่วยหนึ่งของระบบ โดยปกติระบบจะประกอบด้วยโปรเซสเป็นจำนวนมาก
บ้างก็เป็นโปรเซสของระบบปฏิบัติการ (ที่เอ็กซิคิวต์โค้ดของระบบ)
ที่เหลือก็เป็นโปรเซสของผู้ใช้ (ที่เอ็กซิคิวต์โค้ดของผู้ใช้)
โปรเซสทั้งหมดนี้มีศักยภาพที่จะเอ็กซิคิวต์ไปพร้อม ๆ
กันด้วยความซับซ้อนของซีพียูนั่นเอง
ระบบปฏิบัติการมีหน้าที่รับผิดชอบในกิจกรรมที่เกี่ยวกับการจัดการโปรเซสดังนี้
- การสร้างและลบทั้งโปรเซสของระบบและของผู้ใช้
- การหยุดและทำโปรเซสต่อไป
- การจัดเตรียมกลไกสำหรับการซินโครไนซ์โปรเซส
-
การจัดเตรียมกลไกสำหรับการติดต่อสื่อสารโปรเซส
- การจัดเตรียมกลไกการแก้ไข deadlock
การจัดการหน่วยความจำ (Memory
Managememt)
หน่วยความจำเป็นส่วนสำคัญและเป็นศูนย์กลางการทำงานของระบบปฏิบัติการยุคใหม่
หน่วยความจำเป็นอาร์เรย์ของคำหรือไบต์
โดยที่แต่ละคำหรือไบต์จะมีแอ็ดเดรสที่แน่นอนเป็นของตัวเอง
หน่วยความจำเป็นที่เก็บข้อมูลที่ใช้งานร่วมกันของซีพียู
และดีไวซ์สำหรับอินพุตและเอาต์พุต เพื่อให้การดึงข้อมูลมาใช้ได้อย่างรวดเร็ว
โปรเซสเซอร์ส่วนกลาง
หรือซีพียูจะอ่านคำสั่งจากหน่วยความจำตลอดเวลาในวงรอบการดึงข้อมูล
และมีทั้งการเขียนและอ่านจากหน่วยความจำระหว่างวงรอบการดึงข้อมูล
การทำงานของอินพุต/เอาต์พุตทั้งการอ่านและเขียนลงหน่วยความจำจะจำผ่าน DMA
โดยปกติหน่วยความจำจะเป็นดีไวซ์สำหรับการจัดเก็บข้อมูลขนาดใหญ่ที่ซีพียูกำหนดแอ็ดเดรสและดึงข้อมูลได้โดยตรง
การจัดการไฟล์ (File Management)
การจัดการไฟล์เป็นส่วนหนึ่งในคอมโพเนนต์ของระบบปฏิบัติการที่เห็นได้ชัดเจน
คอมพิวเตอร์สามารถจัดเก็บในสื่อที่แตกต่างกัน ไม่ว่าจะเป็นเทปแม่เหล็ก, ดิสก์,
ออพติคัลดิสก์ สื่อแต่ละชนิดมีคุณสมบัติและการจัดทางกายภาพเฉพาะแบบ
สื่อแต่ละชนิดจะถูกควบคุมด้วยดีไวซ์ เช่น ดิสก์ไดรฟ์, หรือเทปไดรฟ์
ซึ่งมีคุณสมบัติเฉพาะแบบเช่นกัน คุณสมบัติเหล่านี้รวมถึง ความเร็ว, ความจุ,
อัตราการถ่ายโอนข้อมูล และวิธีการแอ็กเซสข้อมูล
เพื่อความสะดวกในการใช้งานระบบคอมพิวเตอร์นั้น
ระบบปฏิบัติการได้กำหนดชื่อทางลอจิกว่า ไฟล์
เพื่อเป็นชื่อแทนกลุ่มข้อมูลที่จัดเก็บในสื่อทางกายภาพ
โดยที่ระบบปฏิบัติการจะแมพไฟล์ไปยังสื่อทางกายภาพและแอ็กเซสไฟล์ผ่านทางดีไวซ์ที่จัดเก็บข้อมูลนั้น
ทำให้คุณใช้ชื่อไฟล์เพื่อกำหนดสิ่งที่คุณต้องการดูข้อมูลได้ทันที
ไฟล์จะเป็นชุดของข้อมูลที่สัมพันธ์กันซึ่งถูกกำหนดชื่อโดยผู้สร้างไฟล์นั้น
โดยปกติแล้ว ไฟล์จะแสดงโปรแกรมและข้อมูล ไฟล์ข้อมูลอาจจะเป็นตัวเลข, ตัวอักษร
หรือทั้งตัวเลขและตัวอักษร ไฟล์อาจจะเป็นรูปแบบอิสระ เช่น เท็กซ์ไฟล์
หรืออาจจะเป็นรูปแบบที่ตายตัว ไฟล์ประกอบด้วยชุดของบิต, ไบต์,
หรือเรกคอร์ดตามที่ผู้สร้างกำหนด
ระบบปฏิบัติการมีหน้าที่รับผิดชอบในกิจกรรมที่เกี่ยวกับการจัดการไฟล์ดังนี้
- สร้างและการลบไฟล์
- สร้างและการลบไดเรกทอรี
- สนับสนุนการจัดการไฟล์ในรูปแบบเดิม ๆ ที่ผ่านมา
- แมพไฟล์ไปยังสิ่งที่ใช้จัดเก็บข้อมูล
- แบ็คอัพหรือสร้างไฟล์สำรอง
การจัดการอินพุต/เอาต์พุต
การออกแบบระบบปฏิบัติการมีจุดมุ่งหมายข้อหนึ่งเพื่อควบคุมดีไวต์ที่เชื่อมต่ออยู่กับ
คอมพิวเตอร์
ทั้งนี้เนื่องจากดีไวซ์เหล่านั้นมีความหลากหลายในเรื่องฟังก์ชันและความเร็ว
การควบคุมจำเป็นต้องใช้วิธีการที่หลากหลายเช่นกัน วิธีการควบคุมเหล่านี้เรียกว่า
ระบบย่อยอินพุต/เอาต์พุต ซึ่งเป็นส่วนหนึ่งของ kernel
ที่แยกจากการจัดการหน่วยความจำที่ซับซ้อนในระบบเทคโนโลยีทางด้านดีไวซ์ได้แสดงให้เห็นข้อที่แย้งกัน
2 ด้าน
ด้านแรกเทคโนโลยีทางด้านดีไวซ์ทำให้เราเห็นมาตรฐานที่มีการพัฒนาอินเทอร์เฟซของซอฟต์แวร์และฮาร์ดแวร์ที่เพิ่มมากขึ้น
การพัฒนาทางด้านนี้ทำให้เรามีส่วนร่วมในปรับปรุงเพื่อพัฒนาดีไวซ์เพื่อนำมาใช้งานได้มากขึ้น
ส่วนทางด้านอื่นเราได้เห็นดีไวซ์ที่มีความหลากหลายในการเลือกใช้ดีไวซ์ใหม่บางชิ้นก็ไม่เหมือนเดิมที่มีอยู่
เป็นสิ่งท้าทายที่ทำให้เราสามารถเลือกดีไวซ์ที่ต่างประเภทกันเพื่อใช้ระบบคอมพิวเตอร์และระบบปฎิบัติการเดียวกัน
ไม่ว่าจะเป็นอินพุต/เอาต์พุตพื้นฐานเช่น พอร์ต, บัส และดีไวซ์ที่หลากหลายเพียงใด
ระบบปฏิบัติการมี kernel ที่จัดการกับดีไวซ์เหล่านี้ได้เป็นอย่างดี kernel
ของระบบปฏิบัติการก็คือโครงสร้างที่ใช้โมดูล ดีไวซ์ไดร์เวอร์
ดีไวซ์ไดร์เวอร์ได้แสดงถึงรูปแบบเฉพาะในการอินเทอร์เฟซระหว่างดีไวซ์กับระบบย่อยอินพุต/เอาต์พุต
ในขณะที่ระบบจะมีอินเทอร์เฟซมาตรฐานระหว่างแอปพลิเคชันกับระบบปฏิบัติการอยู่แล้วนั่นเอง
ระบบย่อยอินพุต/เอาต์พุตประกอบด้วย
- การจัดการหน่วยความจำที่รวมทั้งบัพเพอร์ ,แคช และสพูล
-
อินเทอร์เฟซพื้นฐานของดีไวซ์ไดร์เวอร์
- ไดร์เวอร์สำหรับดีไวซ์ที่มีรูปเฉพาะ
การจัดการสื่อจัดเก็บข้อมูล
(Storage Management)
เนื่องจากวัตถุประสงค์หลักของระบบคอมพิวเตอร์คือการเอ็กซิคิวต์โปรแกรม
ในระหว่างการเอ็กซิคิวต์โปรแกรมรวมทั้งข้อมูลเหล่านี้จะใช้ต้องอยู่บนหน่วยความจำหลัก
แต่เนื่องจากหน่วยความจำหลักเหล่านี้มีขนาดเล็ก
และเนื่องจากระบบคอมพิวเตอร์จำเป็นต้องมีไฟฟ้าหล่อเลี้ยง
ถ้าไม่มีไฟฟ้าข้อมูลบนหน่วยความจำหลักก็จะสูญหายไปด้วย
สิ่งนี้เองที่ระบบคอมพิวเตอร์จำเป็นต้องมีสื่อจัดเก็บข้อมูล
เพื่อถ่ายข้อมูลจากหน่วยความจำหลักมาเก็บไว้ก่อน เพื่อสะดวกในการใช้งานภายหลัง
ปัจจุบันระบบคอมพิวเตอร์ทั่วไปจะใช้ดิสก์เป็นสื่อในการจัดเก็บข้อมูลทั้งโปรแกรมและข้อมูล
โปรแกรมส่วนใหญ่ทั้งที่เป็นตัวคอมไพล์, ตัวเอดิเตอร์, ตัวแปลภาษา และอื่น ๆ
จะถูกโหลดขึ้นสู่หน่วยความจำหลักก่อน เพื่อทำงานกับหน่วยความจำโดยตรง
และมีการจัดเก็บข้อมูลเป็นระยะเมื่อคุณสั่งให้จัดเก็บและระบบคอมพิวเตอร์ในปัจจุบันที่มีระบบปฏิบัติการที่ทรงประสิทธิภาพจะมีการแปลงหน่วยจัดเก็บข้อมูลบนดิสก์ให้เป็นหน่วยความจำเสมือน
ตลอดเวลาที่มีการใช้งาน และจะคืนสภาพทั้งหมดให้กับระบบก่อนการชัตดาวน์ระบบ
การจัดการสื่อจัดเก็บข้อมูลที่เป็นความรับผิดชอบของระบบปฏิบัติการมีดังนี้
- จัดการเนื้อที่ว่างบนดิสก์
- จัดการตำแหน่งจัดเก็บข้อมูล
ที่อาจจะกระจัดกระจาย แต่เมื่อมีการใช้งานจะต้องทำงานได้เร็ว
โดยจะมีพอยเตอร์ชี้ไปยังกลุ่มข้อมูลเดียวกัน
- การจัดแบ่งเวลาการใช้ดิสก์