Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

RTOS & Computer Control System

Introduction
พิเชษฐ์ บุญหนุน
pished.bunnun@nectec.or.th

ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ

RTOS & Computer Control System – p. 1


หัวข้อนำเสนอ
ขอบเขตการศึกษา
RTOS หมายถึงอะไร?
Computer Control System หมายถึงอะไร?
RTOS และ Computer Control System เกี่ยวพันกัน
อย่างไร?
ทบทวนความรู้พื้นฐานของ RTOS
แนะนำระบบปฏิบัติการ Linux
แนะนำ RTLinux และ RTAI
สรุป
RTOS & Computer Control System – p. 2
ขอบเขตการศึกษา
เข้าใจหลักการของ RTOS
สามารถติดตั้ง RTAI บน Linux ได้
สามารถพัฒนาโปรแกรมบน RTAI ได้
สามารถประยุกต์ใช้ RTAI กับ Computer Control System
ได้

RTOS & Computer Control System – p. 3


RTOS หมายถึงอะไร?
RTOS หรือ Real Time Operating System เป็นระบบปฏิบัติการ
ที่ตอบสนองความต้องการของ Real-Time System ที่
นอกจากการประมวณผลที่ถูกต้องแล้ว ผลลัพธ์ที่ได้ต้อง
ตรงต่อเวลา
ระบบต้องตอบสนองต่อสัญญาณภายนอกได้ทันทีทันใด และ
สามารถคาดเดาพฤติกรรมการตอบสนองนั้นได้
คำนึงถึงการตอบสนองที่เลวร้ายที่สุด มากกว่าการตอบสนอง
โดยเฉลี่ย
ทำงานในช่วงเวลาที่ยาวนาน
RTOS & Computer Control System – p. 4
Computer Control System หมายถึงอะไร?

ระบบควบคุมที่มีคอมพิวเตอร์ทำหน้าที่เป็นตัวควบคุมระบบ
สุ่มสัญญาณจากระบบ ประมวณผลสัญญาณที่ได้เพื่อสร้าง
สัญญาณควบคุม
ส่งสัญญาณที่ได้ไปควบคุมระบบ
RTOS & Computer Control System – p. 5
Computer Control System หมายถึงอะไร?
Computer Control System ประกอบด้วย
ระบบหรือกระบวนการที่ต้องการควบคุม
Analog to Digital Converter และ Sensor : Sampler
Digital to Analog Converter (Zero-Order Hold) และ
Actuator : Holder
Computer ประมวลผล

RTOS & Computer Control System – p. 6


RTOS และ CCS เกี่ยวพันกันอย่างไร?

Control System ทุกระบบเป็น Real-Time System


Control Engineering จำเป็นต้องใช้ Real-Time System
สำหรับควบคุมระบบ
Computer Engineering ต้องการทฤษฎีระบบควบคุมเพื่อ
สร้างระบบควบคุม
RTOS & Computer Control System – p. 7
ทบทวนความรู้พื้นฐานของ RTOS
ประเภทของ RTOS
Hard Real-Time : สามารถให้ผลตอบได้ภายในเวลาที่
กำหนด หากระบบให้ผลตอบล่าช้าอาจทำให้ระบบทั้งหมดไม่
สามารถทำงานต่อไปได้ ใช้ในระบบควบคุมเป็นต้น เช่น
ระบบควบคุมตำแหน่งมอเตอร์ หรือ ระบบควบคุมความเร็ว
มอเตอร์
Soft Real-Time : ยอมให้ผลตอบล่าช้ากว่ากำหนดได้ โดยที่
ระบบยังคงทำงานต่อไปและผลตอบที่ได้เป็นที่ยอมรับ เช่น
ระบบมัลติมีเดียที่เสียงอาจจะกระตุก หรือ ขาดหายได้บ้าง
โดยที่ผู้ฟังยังพอรับได้ และ ระบบยังคงทำงานต่อไป

RTOS & Computer Control System – p. 8


ความรู้พื้นฐานของ RTOS
หน้าที่ของ RTOS
Task Management and Scheduling
Interrupt Servicing
Inter-Process Communication : Synchronization, Data
Exchange
Memory Management

RTOS & Computer Control System – p. 9


ความรู้พื้นฐานของ RTOS
Task Management and Scheduling
Multitasking
Uni Processor หรือ Multi Processor
Process, Thread, Task
Timing
Periodic
One-Shot
Priority-Based Scheduling
Static Priority Scheduling
Earliest Deadline First (EDF)
Rate-Monotonic Scheduling
RTOS & Computer Control System – p. 10
ความรู้พื้นฐานของ RTOS
Pre-Emptable
Priority Inversion / Priority Inheritance

RTOS & Computer Control System – p. 11


Priority Inversion

RTOS & Computer Control System – p. 12


ความรู้พื้นฐานของ RTOS
Interrupt Servicing
Interrupt Vector
Interrupt Service Routine(ISR)
Interrupt Hardware
Interrupt Software
ในระหว่างการทำงานของ ISR จะ Disable all Interrupt
การทำงานของ ISR จะต้องสั้นเพื่อ Enable all Interrupt

RTOS & Computer Control System – p. 13


ความรู้พื้นฐานของ RTOS
Inter-Process Communication : Synchronization, Data
Exchange
Semaphore
Mutex
Signal
Shared Memory
FIFOs
Messages and Mailboxes
Race Conditions

RTOS & Computer Control System – p. 14


ความรู้พื้นฐานของ RTOS
sh rsc 1, sh rsc 2;
taskA {
trylock( sh rsc 1 ); trylock( sh rsc 2 );
using( sh rsc 1 ); using( sh rsc 2 );
release( sh rsc 1 ); release( sh rsc 2 );
}
taskB {
trylock( sh rsc 2 ); trylock( sh rsc 1 );
using( sh rsc 2 ); using( sh rsc 1 );
release( sh rsc 2 ); release( sh rsc 1 );
}

RTOS & Computer Control System – p. 15


แนะนำระบบปฏิบัติการ Linux
เป็นระบบปฏิบัติการหนึ่งที่มีโครงสร้างคล้ายกับ
ระบบปฏิบัติการตระกูล UNIX
โปรแกรมส่วนมากมีลักษณะเป็น Free Software สามารถ
นำมาใช้งานได้โดยไม่จำเป็นต้องเสียค่าลิขสิทธิ์
นิยมนำมาทำเป็น Server แต่ปัจจุบันมีความพยายามนำมา
ใช้งานในลักษณะ Desktop
มีเสถียรภาพสูง
LinuxTLE, Linux SiS, Redhat, Mandrake, Debian,
Suse, TurboLinux etc.
Knoppix, Gnoppix, Morphix, TLE Live etc.
RTOS & Computer Control System – p. 16
แนะนำระบบปฏิบัติการ Linux
Linux โดย OS เองไม่เป็น RTOS โดยเฉพาะแบบ Hard
Real-Time ทั้งนี้เนื่องจาก
ถูกออกแบบมาให้การทำงานโดยรวมแล้วมีประสิทธิภาพดี
ไม่ได้คำนึงถึงกรณีเลวร้ายที่สุดที่อาจเกิดขึ้น
Non-Pre-emptable Kernel (ใน kernel 2.6 สามารถทำให้
เป็น pre-emptable kernel)
งานทุกอย่าง OS จะพยายามให้ทรัพยากรต่างๆ เท่ากัน
(CPU Time, Memory, Peripheral Devices,...)
Context Switch Time ที่ไม่อาจคาดเดาได้ว่าจะใช้เวลามาก
น้อยเท่าใด เพราะอาจมีการ Swap Memory บางส่วนลง
Hardisk ได้เป็นต้น
RTOS & Computer Control System – p. 17
แนะนำ RTLinux และ RTAI
ความพยายามทำให้ Linux ใช้เป็น RTOS ประเภท Hard
Real-Time มี 2 กลุ่มหลักๆ คือ
RTLinux ( www.fsmlabs.com ) เริ่มพัฒนาโดย Michael
Barabanov ในขณะศึกษาอยู่ที่ New Mexico Institute of
Technology ภายใต้การแนะนำของ Professor Victor
Yodaiken
RTAI ( www.rtai.org ) เริ่มพัฒนาโดยการนำโครงสร้างการ
ทำงานของ RTLinux มาพัฒนาต่อ ภายใต้การนำของ
Professor Paolo Mantegazza แห่ง Dipartimento di
Ingeneria Aerospaziale, Politecnico di Milano

RTOS & Computer Control System – p. 18


แนะนำ RTLinux และ RTAI
เป็นการแก้ไขต้นรหัสของ Linux ให้มีความสามารถแบบ Hard
RTOS โดยแทรก HAL เข้าไปใน Linux

RTOS & Computer Control System – p. 19


แนะนำ RTLinux และ RTAI
ข้อดีของการนำ Linux มาปรับปรุงให้มีความสามารถของ RTOS
สามารถใช้ความสามารถเดิมของ Linux ได้
ความสามารถด้านเครือข่าย
ความสามารถด้าน GUI
ความสามารถของ Driver อุปกรณ์อื่นๆ ที่มีอยู่แล้วบน
Linux
ชุดพัฒนามากับ Linux อยู่แล้วไม่จำเป็นต้องหาเพิ่ม
ค่าใช้จ่ายต่ำในเรื่องราคาของ Software

RTOS & Computer Control System – p. 20


สถานะปัจจุบันของ RTLinux และ RTAI
RTLinux มีการจดสิทธิบัตรเกี่ยวกับ HAL ในสหรัฐอเมริกา
มีการตั้งบริษัทเพื่อขาย RTLinux Pro มีความสามารถต่างๆ
ที่ดีกว่า RTLinux Free
มีสถานฝึกอบรมการใช้ที่มหาวิทยาลัยเกษตรศาสตร์
เป็นความร่วมมือระหว่างบริษัท FSMLabs กับ RDiPT
RTAI จากเดิมที่พัฒนาอิงจาก HAL ปัจจุบันเปลี่ยนมาใช้
โครงสร้าง ADEOS เพื่อเลี่ยงปัญหาสิทธิบัตรของ HAL และ
ลักษณะสิทธิการใช้ Software พยายามที่จะเป็น LGPL ให้
มากที่สุด ไม่มุ่งเน้นเพื่อธุรกิจการค้า

RTOS & Computer Control System – p. 21


ปัญหาน่าคิด

RTOS & Computer Control System – p. 22


ปัญหาน่าคิด
Digital Control Theory จะคิดว่าจังหวะสุ่มสัญญาณเข้าและ
ส่งสัญญาณควบคุมเป็นจังหวะเดียวกัน
RTOS และ CCS ไม่สามารถทำได้ตรงตามทฤษฎี
Jitter (RTOS)
Latency (RTOS)
เวลาที่ใช้ในการคำนวณสัญญาณควบคุม (DCT)
โดนขัดจังหว่ะการทำงานจากงานอื่นที่มีความสำคัญ
กว่า
t Control Delay ไม่คงที่

RTOS & Computer Control System – p. 23


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

RTOS & Computer Control System – p. 24


ปัญหาน่าคิด

RTOS & Computer Control System – p. 25


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

RTOS & Computer Control System – p. 26


สรุป
Computer Control System จำเป็นต้องใช้ RTOS ประเภท
Hard Real-Time
Linux ไม่เหมาะที่จะนำมาใช้งานเป็น RTOS
RTLinux หรือ RTAI สามารถนำมาทำให้ Linux มีความ
สามารถแบบ RTOS

RTOS & Computer Control System – p. 27


Home Work
ติดตั้งระบบปฏิบัติการ Linux
ศึกษาการใช้งานเบื้องต้นของ Linux
ครั้งต่อไปเราจะ...
ศึกษาการใช้งาน Linux โดยคำสั่งพื้นฐานต่างๆ ที่จำเป็น
ศึกษาการเขียนโปรแกรมง่ายๆ บน Linux

RTOS & Computer Control System – p. 28

You might also like