โซซิม (SOSIM) จำลองระบบปฏิบัติการ
สารบัญ :: #1 :: #2 :: #3 :: #4 :: #5 :: #6 :: #7 :: #8 :: #9 :: #10 :: #11 :: #12 :: Linux ::
SOSIM คือ อะไร
โซซิม (SOSIM) คือ โปรแกรมจำลองการทำงานของโปรเซสในระบบปฏิบัติการ ถูกพัฒนาโดย Luiz Paulo Maia เมื่อปี 2544 น.ศ.ของ Master of Science (Computer science) ที่ Federal University ในกรุงริโอเดอจาเนโร บราซิล ซึ่งช่วยให้เข้าใจการทำงานของระบบปฏิบัติการได้ง่ายขึ้น สามารถดาวน์โหลดได้จาก training.com.br
การใช้งานโปรแกรมหลังการ download แฟ้ม sosim_v11_en.zip แล้ว unzip จะพบแฟ้ม sosim.exe และ sosim.ini เมื่อ run โปรแกรมก็จะใช้งานได้ทันที โดยไม่ต้อง install หลังเปิดโปรแกรมจะพบ 3 หน้าต่าง คือ 1) SOsim Console 2) Processor Manager และ 3) Memory Management ก่อนใช้งานควรเปิด หน้าต่างอีก 2 หน้าต่าง คือ Log และ Statistics ผ่าน Menu bar, Windows ใน SOsim console จากนั้นจะพบหน้าต่างทั้งหมด 5 หน้าต่าง
เริ่มต้นใช้งาน
การใช้งานโปรแกรม ครั้งแรก
1. SOsim Console, Process, Create
2. ไม่เปลี่ยนค่า default (สีเขียว) พบค่าดังนี้
- Priority = 0
- Max frames = 5
- Process profile = CPU
- Num. of process = 1
3. กด create พบว่า process ทำงานไปเรื่อย ๆ
4. ใน log จะแสดงข้อมูลทุก 1 วินาที
5. ใน Statistics พบว่า CPU ใช้งาน 0.04%
และ Scheduled processes ก็จะแสดงจำนวนครั้งที่ Process ทำงาน
6. ใน Memory Managment พบว่า 0 - 4 ถูกจองใช้งาน
การใช้งานโปรแกรม ครั้งที่สอง
1. สร้าง CPU เหมือนเดิม เพิ่มอีก 1 Process สีแดง
2. พบว่า Process 1 และ 2 สลับกันเข้า running รอบละ 1 วินาที
3. FPL = Free page list ลดเหลือ 90 เพราะใช้ 0 - 9 ไปแล้ว
การใช้งานโปรแกรม ครั้งที่สาม
1. สร้าง CPU เหมือนเดิม เพิ่มอีก 1 Process สีเหลือง
2. กำหนด Priority = 1
3. พบว่า Process 3 เท่านั้นที่ได้ running เนื่องจากแย่ง Priority ไม่ได้
การใช้งานโปรแกรม ครั้งที่สี่
1. Console, select
2. เปลี่ยน priority ของ Process ทำให้ตัวที่ต่ำกว่ายังไม่ทำงาน
3. ดู PCB เลื่อนไปดูแต่ละ Process ได้
4. เลือกลบ Process ที่ต้องการได้
5. เลือก suspend หยุดชั่วคราว
6. เลือก resume ตื่นจากหยุดชั่วคราว
7. ถ้าลบ process แล้วสั่ง stop ก็จะไม่พบอะไรในหน่วยความจำ
+ หลังจบการทำงาน ข้อมูล log ที่ปรากฎในระบบนั้น
โปรแกรมเก็บไว้ใน log03211053.txt ตามเดือนวันชั่วโมงนาทีให้
Process profile มีหลายแบบ
Process profile มี 6 แบบ
CPU คือ โปรเซสที่ใช้งานหน่วยประมวลผลอย่างเดียว เช่น clock
IO_1 ถึง IO_3 คือ โปรเซสที่ใช้หน่วยประมวลผลน้อยกว่า การติดต่ออุปกรณ์อื่น เช่น ping
IO_.. จะอยู่ในหน่วยประมวลผลไม่นาน เพราะเน้นการทำงานกับ IO มากกว่า
MIX_1 ถึง MIX_2 คือ โปรเซสที่ใช้หน่วยประมวลผลปานกลาง และใช้พร้อมอุปกรณ์อื่น เช่น youtube.com
MIX_.. จะอยู่ในหน่วยประมวลผลนานกว่าแบบ IO_..
IO wait time คือ ระยะเวลา ชิดซ้ายจะเร็ว ชิดขวาจะช้า
Time-slice คือ ระยะเวลาการประมวลผลการ slice เข้าออก
Clock คือ ระยะเวลาการประมวลผล ใน running ชิดซ้ายจะช้า ชิดขวาจะเร็ว
สร้าง Process จำนวนมากแบบ CPU
การสร้าง process จำนวนมาก
1. ข้อจำกัดใน Memory กำหนด Min. FPL = 80% หรือ 80 ช่อง
2. ขอใช้เกินนี้ ก็ต้องอยู่นอก Ready เป็น Ready out ไป
3. พบใน select ว่ามีการจัดการ Process เข้ามาอย่างไร
4. พบใน memory ว่าอยู่ได้เพียง 4 process สำหรับ 20 ช่อง
5. Process จะสลับกันเข้า และออก ตลอดเวลา
6. ถ้าลด Min. FPL ก็จะเพิ่มจำนวน process เข้าหน่วยความจำ
การเปลี่ยนนโยบายหน่วยความจำใหม่
1. ถ้าสร้างไว้ 4 process ๆ ละ 5 frame แล้วใช้แบบ Pre-paging
2. ทุก process ก็จะอยู่ในหน่วยความจำ 5 page เพราะไม่เกินค่า Min
3. สร้าง process ที่ 5 ก็จะสลับกันเข้าออก
4. หากมี process ไหนออกไป ที่เหลือจะได้เข้า running จนครบ
5. process ที่รออยู่ก็จะได้เข้ามา ที่เคยอยู่นานแล้วก็ต้องออกไปรอ
6. แบบ Pre-paging จะเข้ารอบใหม่ ไม่ต้อง Waiting : IO
7. เปลี่ยนจาก Pre-paging เป็น Demand-paging
8. เมื่อ process จะเข้า running ต้องไปเข้า waiting ก่อน
9. มีทั้ง queue ใน waiting และ running
10. จุดเด่น คือใช้ mem เท่าที่จำเป็น คือ 1 process ก็ควร 1 page
11. 1 process อาจใช้ run และ ready รวม 2 page ไม่ได้ fix มากเท่าจำนวน frame
12. เริ่มต้นทุก process จะเข้า queue ใน waiting
13. ระหว่างทำงาน process อาจพบ Pfault แล้วเข้า Waiting
Blog : โปรแกรมจำลองการทำงานของโปรเซส
“ระบบปฏิบัติการ (Operating System)”
ของ รศ.ดร.กฤษดา ขันกสิกรรม
บทที่ 9 การใช้งานโปรแกรมโซซิม (SOSIM)

Blog : thaiall.com/blog/burin/8306/
PDF : ใหญ่/os_kridda_ch09.pdf
โปรแกรม SOSIM
โปรแกรมนี้มีหน้าที่จำลองการทำงานของโปรเซส (Process) แสดง 1) Running 2) Ready และ 3) Waiting ใน Process Manager และการจองหน่วยความจำใน Memory Manager ผู้ใช้สามารถสร้างโปรเซส (Process) ขึ้นมา แล้วส่งเข้าระบบ (System) จะเห็นการทำงานในแต่ละ State และสร้าง Process ขึ้นมาได้ 3 แบบ
ประเภทของ Process มีดังนี้
1. CPU = ใช้ Central Processing Unit อย่างเดียว
2. IO = ใช้ CPU เป็นรอง แต่ใช้ IO เป็นหลัก มีหลายแบบ
3. MIX = ใช้ CPU ปานกลาง ไปพร้อมกับ IO
ต.ย. 1 โปรเซสเดียว
[สร้าง]
Process แบบ CPU
Priority = 0, Max. frames =5
[ผล]
มี Process เดียว ก็สลับไปมาระหว่าง
Ready และ Running
และไม่ต้องเข้าคิวกับใคร จึงอยู่ที่ Ready = 0 เสมอ
[ล้าง Process ออก]
เข้า Process, Select, Delete
แล้วสั่ง Run ใหม่จะพบว่าไม่มีอะไรอยู่ใน Processor Manager
ตัวอย่าง process แบบ IO และ MIX
ต.ย. 2 โปรเซส CPU และ IO2
[สร้าง] Process แบบ CPU
แล้วสร้าง Process แบบ IO2
Priority = 0, Max. frames =5 เหมือนกันทั้ง 2 Process
[ผล]
มี Process CPU แทบจะครอง CPU
ส่วน Process IO2 ได้ทำงานใน CPU 1 ครั้ง
แล้วกับไปรอใน Waiting State ให้ CPU ทำงานให้เสร็จ 5 ครั้ง
แล้ว Process IO2 จึงจะได้ทำงาน 1 ครั้ง แล้วกลับมารอเหมือนเดิม
ใน Ready Process ที่ครองอยู่ก็คือ CPU
และมี Ready ระดับ 0 คือไม่มีใครมารอในคิวนาน ๆ

ต.ย. 3 โปรเซส CPU และ Mix1 และ IO2
[สร้าง] Process แบบ CPU
แล้วสร้าง Process แบบ Mix1
แล้วสร้าง Process แบบ IO2
Priority = 0, Max. frames =5 เหมือนกันทั้ง 2 Process
[ผล]
มี Process CPU แทบจะครอง CPU
ส่วน Process Mix1 ได้ทำงานใน CPU 2 ครั้ง เมื่อเข้า Ready ก่อนไป Wait
ส่วน Process IO2 ได้ทำงานใน CPU 1 ครั้ง แล้วไป Wait เลย
ทั้ง Mix1 และ IO2 จะรอใน Waiting State 5 ครั้ง เท่ากัน
แต่ Mix1 ได้ทำงานกับ CPU มากกว่า IO2 เมื่ออยู่ใน Ready state
[ดู Log]
หากดูการทำงานใน Log
จะพบว่า Boost คือ กำลัง
กำหนดให้ IO2 เป็น +2 แต่ Mix2 มี +1
ยิ่งบวกมากขึ้น ก็ยิ่งรอนานขึ้น
ต.ย. 4 โปรเซส IO1 และ IO2
[สร้าง] Process แบบ IO1
แล้วสร้าง Process แบบ IO2
Priority = 0, Max. frames =5 เหมือนกันทั้ง 2 Process
[ผล]
เมื่อ IO1 ทำงานเสร็จก็จะไปรอ
เมื่อ IO2 ทำงานเสร็จก็จะไปรอเช่นกัน
ทิ้งให้ CPU ว่าง ไม่มีใครใช้งาน
เอกสารอ้างอิง (Reference) [10] รศ.ดร.กฤษดา ขันกสิกรรม, "ระบบปฏิบัติการ (Operating Systems)", อาง้วนการพิมพ์, นครสวรรค์, 2555.

http://goo.gl/72BPC