โปรแกรมจำลองการทำงานของโปรเซส

SOSIM by Prof.Luiz Paulo Maia
SOSIM by Prof.Luiz Paulo Maia

นั่งอ่านหนังสือ
ระบบปฏิบัติการ (Operating System)
ของ รศ.ดร.กฤษดา ขันกสิกรรม
พบบทที่ 9 การใช้งานโปรแกรมโซซิม (SOSIM)
โปรแกรมนี้นักศึกษา CS ป.โท ทำเป็นผลงาน Thesis
มีหน้าที่จำลองการทำงานของ process
แสดง Running, Ready และ Waiting ใน Process Manager
และการจองหน่วยความจำใน Memory Manager
ผู้ใช้สามารถสร้าง Process ขึ้นมา แล้วส่งในระบบ
จะเห็นการทำงานในแต่ละ 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

ต.ย. 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 ว่าง ไม่มีใครใช้งาน

http://www.thaiall.com/os/os03.htm

มีรายละเอียดอีกมาก
เช่น การจัดการหน่วยความจำแบบ Pre-Paging หรือ Demand Paging
การดู Statistics หรือ PCB เป็นต้น
ถ้าสนใจก็เข้าโฮมเพจ SOSIM
ของ Prof.Luiz Paulo Maia as part of his M.Sc. thesis
in Federal University of Rio de Janeiro (NCE/UFRJ), Brazil, in 2001 (2544).
http://www.training.com.br/sosim/indexen.htm