ในโลกปัจจุบันนี้ระบบคอมพิวเตอร์หรือหน่วยประมวลผลที่ทำงานด้วยซอฟต์แวร์หรือโปรแกรมการทำงาน เข้ามามีบทบาทในการควบคุมการทำงานของเครื่องจักรกลหรืออุตสาหกรรมกระบวนการผลิตมากยิ่งขึ้น
ทวิช ชูเมือง
ในโลกปัจจุบันนี้ระบบคอมพิวเตอร์หรือหน่วยประมวลผลที่ทำงานด้วยซอฟต์แวร์หรือโปรแกรมการทำงาน เข้ามามีบทบาทในการควบคุมการทำงานของเครื่องจักรกลหรืออุตสาหกรรมกระบวนการผลิตมากยิ่งขึ้น เนื่องจากมีความถูกต้องและแม่นยำสูงในการทำงาน มีความเชื่อมั่นในการทำงานสูงแม้กระทั่งในการทำงานที่มีความเสี่ยงต่อการเกิดอันตราย ดังเช่น ในระบบนิรภัยต่าง ๆ ส่วนใหญ่ระบบต่าง ๆ ดังกล่าวก็จะถูกควบคุมมาจากอุปกรณ์ควบคุมที่มีซอฟต์แวร์หรือโปรแกรมการทำงานที่ฝังอยู่บนอุปกรณ์ (Embedded Software) เหล่านี้ เครื่องจักรกลหรืออุตสาหกรรมกระบวนการผลิตที่ถูกควบคุมด้วยหน่วยประมวลผลที่ทำงานด้วยซอฟต์แวร์หรือโปรแกรมการทำงาน จะประกอบไปด้วย
* รถยนต์
* รถไฟ
* เครื่องบิน
* โรงกลั่นน้ำมัน
* โรงงานปิโตรเคมี
* โรงงานแปรรูป
* โรงไฟฟ้านิวเคลียร์
* อุปกรณ์ทางการแพทย์
ซึ่งในการควบคุมการทำงานของเครื่องจักรกลหรืออุตสาหกรรมกระบวนการผลิตที่มีความเสี่ยงต่อการเกิดอันตรายนั้น ส่วนการควบคุมจะต้องไม่เกิดความผิดพลาดในการทำงานหรือมีค่าความผิดพลาดอยู่ในค่าที่ยอมรับได้ ซึ่งในความจริงแล้วซอฟต์แวร์เหล่านี้อาจจะเกิดความผิดพลาดในการทำงานที่เกี่ยวข้องกับความเสี่ยงต่อการเกิดอันตรายได้เช่นกัน
ดังนั้นปัญหาเรื่องความปลอดภัยของซอฟต์แวร์ได้กลายเป็นหัวข้อที่ถูกกล่าวถึงมากในปีที่ผ่าน ๆ มา มาตรฐานสากลชั้นนำของเรื่องนี้จะเป็นมาตรฐาน IEC 61508: ความปลอดภัยของงานไฟฟ้า/อิเล็กทรอนิกส์/โปรแกรมความปลอดภัยเกี่ยวกับระบบอิเล็กทรอนิกส์ มาตรฐานนี้เป็นมาตรฐานกล่าวโดยทั่วไป และไม่ได้กำหนดเฉพาะเจาะจงสำหรับการนำไปใช้ในอุตสาหกรรมใด ๆ แต่ก็ถือได้ว่าเป็นจุดเริ่มต้นทำให้เกิดจำนวนมาตรฐานอุตสาหกรรมโดยเฉพาะออกมาเป็นจำนวนมาก และสามารถนำไปใช้เพื่ออุตสาหกรรมที่ไม่ได้มีมาตรฐานเฉพาะของตนเองในหลายอุตสาหกรรมดังเช่น
* EN50128 (รถไฟ)
* DO-178B (เครื่องบิน)
* IEC 60880 (นิวเคลียร์)
* IEC 601-1-4 (อุปกรณ์การแพทย์)
จากการศึกษาของ Debra Herrmann (Herrmann, 1999) ได้พบว่ามีมาตรฐานจำนวน 19 มาตรฐานที่มีความเกี่ยวข้องกับเรื่องความปลอดภัยของซอฟต์แวร์และความน่าเชื่อถือในภาคอุตสาหกรรมและเทคโนโลยี มาตรฐานเหล่านี้มีความนิยมใช้งานเพิ่มมากขึ้นและมากกว่านั้นผลิตภัณฑ์ที่มีการฝังด้วยซอฟต์แวร์ดังกล่าวได้กำลังถูกพัฒนาให้สอดคล้องกับมาตรฐานเหล่านี้ เมื่อผลิตภัณฑ์ฝังด้วยซอฟต์แวร์ มีการใช้งานเพิ่มจำนวนมากขึ้น
นอกจากนั้นในผลิตภัณฑ์ดังกล่าว ยังใช้การฝังระบบปฏิบัติการบนเวลาจริงหรือ RTOS (Real Time Operating System) ในการควบคุมการทำงาน ก็เป็นที่แน่นอนว่าผลิตภัณฑ์ที่มีการใช้ระบบปฏิบัติการบนเวลาจริงจะต้องถูกออกแบบมาเพื่อให้เป็นไปตามมาตรฐานเหล่านี้ จึงทำให้เกิดคำถามสำคัญสำหรับผู้ออกแบบว่า ทำอย่างไรระบบปฏิบัติการบนเวลาจริงที่ออกแบบจะมีผลกระทบต่อการรับรอง (Certification) บทความนี้จะแสดงความท้าทายและผลประโยชน์ของการใช้ระบบปฏิบัติการบนเวลาจริงในผลิตภัณฑ์ที่จะได้รับการรับรอง
ในปัจจุบันนี้การใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ (Commercial RTOS) เป็นมาตรฐานการปฏิบัติในหลายองค์กรเมื่อมีการทำงานเกี่ยวข้องกับเครื่องจักรกลหรืออุตสาหกรรมกระบวนการผลิต ผลประโยชน์ที่ได้เป็นจำนวนมากของการใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์เทียบกับการดำเนินการจัดทำระบบให้เป็นไปตามมาตรฐานด้วยตนเองหรือใช้ระบบที่ไม่มีการรับรอง สำหรับการเริ่มต้นจะช่วยให้สามารถจัดโครงสร้างของโครงการอยู่ในส่วนขอบเขตของซอฟต์แวร์ (การทำงานเฉพาะและบล็อกหน่วยความจำ) และช่วยลดจำนวนระยะเวลาของทีมพัฒนา (Development Team) และความพยายามในการสร้างโครงสร้างพื้นฐานเป็นอย่างมาก
ในปัจจุบันด้วยระยะเวลาของโครงการ (Schedule) และงบประมาณที่จำกัด จึงเป็นการดีกว่าที่จะให้ทีมงานดำเนินการในส่วนโปรแกรมควบคุมการทำงานสำหรับผลิตภัณฑ์ แทนที่จะเสียเวลาในการดำเนินการสร้างโครงสร้างพื้นฐานที่ใช้สนับสนุนการทำงานของผลิตภัณฑ์ ซึ่งระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ที่ไม่เพียงแต่มีโครงสร้างพื้นฐานที่เสร็จเรียบร้อยแล้ว ยังมีพร้อมในตลาดไว้สำหรับเลือกใช้งานได้
นอกจากนั้นยังมีระดับการทำงานจริงนับหมื่นชั่วโมงและจะมีความน่าเชื่อถือได้มากขึ้นกว่ารหัสใหม่หรือโปรแกรมใหม่ที่จะเขียนขึ้นมา นอกจากนี้การใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ ปกติจะมีเครื่องมือ (Toolset) อย่างมากมายในการพัฒนาที่จะช่วยในแก้ปัญหาและตรวจสอบโปรแกรมการใช้งานที่ถูกสร้างขึ้น มีเครื่องมือที่ตระหนักถึงระบบปฏิบัติการและวิธีการทำงานที่เป็นประโยชน์อย่างมาก เมื่อพยายามแก้ปัญหาการออกแบบที่ซับซ้อนและประเด็นการแก้ปัญหา
นอกเหนือจากเหตุผลดังกล่าวแล้ว การใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ในผลิตภัณฑ์ใด ๆ มีข้อดีอื่น ๆ ที่ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์สามารถนำไปประยุกต์ใช้งานในด้านความปลอดภัย ซึ่งสิ่งเหล่านี้จะรวมไปถึง
* การป้องกันหน่วยความจำ
* การสื่อสารที่ปลอดภัย
* การกำหนดเวลาทำงานที่ปลอดภัย
ระบบเหล่านี้อนุญาตให้โปรแกรมเมอร์สามารถรวมมาตรการความปลอดภัยเข้าไปอย่างง่ายดายโดยไม่ลังเลในการใช้งาน ระบบปฏิบัติการที่มีคุณสมบัติเหล่านี้จะบันทึกการทำงานและลดความเสี่ยงสำหรับผู้ใช้ หากระบบปฏิบัติการไม่ได้มีคุณสมบัติเหล่านี้แล้ว ผู้ใช้งานต้องสร้างคุณสมบัติเหล่านี้ลงไปในการใช้งานของตนเอง
การป้องกันหน่วยความจำให้โปรแกรมและการป้องกันข้อมูลของระบบปฏิบัติการจากความผิดพลาดของฮาร์ดแวร์และการบันทึกอย่างไม่ถูกต้อง ระบบปฏิบัติการจำนวนมากจะแยกช่องว่างของตำแหน่งที่อยู่ของหน่วยความจำสำหรับกระบวนการต่าง ๆ ที่ทำงานในระบบปฏิบัติการ การป้องกันนี้รวมเข้ากับส่วนบริหารจัดการหน่วยความจำหรือ MMU (Memory Management Unit) จะป้องกันการบันทึกข้อมูลมาจากส่วนอื่น ซึ่งเป็นคุณสมบัติที่สำคัญเพื่อสนับสนุนการทำงานในระดับความปลอดภัยที่แตกต่างกัน เมื่อใช้ทำงานในส่วนประมวลผลเดียวกัน การทำงานในลักษณะนี้จึงมีประโยชน์อย่างมาก เมื่อผ่านขั้นตอนการรับรองจะมีข้อดีต่าง ๆ ดังนี้
ข้อแรกจะช่วยให้สามารถระบุการทำงานที่ไม่ใช่งานความปลอดภัย ที่สำคัญไม่ต้องมีการพัฒนาคุณสมบัติต่าง ๆ ที่มีระดับความรุนแรงเดียวกันในแง่ของกระบวนการและการวินิจฉัยในขณะทำงาน ซึ่งทำให้ง่ายขึ้นเป็นอย่างมาก เมื่อมีความพยายามที่จะเกี่ยวข้องในขั้นตอนการรับรอง
ข้อสองจะช่วยให้สามารถใช้ซอฟต์แวร์ของบุคคลที่สาม (Third Party) สำหรับพื้นที่ไม่เกี่ยวข้องกับความปลอดภัย โดยไม่ต้องมีการรับรองซอฟต์แวร์ การที่ต้องรับรองซอฟต์แวร์ของบุคคลอื่นเป็นความท้าทายมากหากไม่มีสิ่งต่าง ๆ ดังนี้
* รหัส (Source Code)
* ที่มาเอกสารวงรอบการทำงาน (Llifecycle Documentation)
* และ/หรือความร่วมมือจากผู้ผลิต
ถ้าไม่มีการป้องกันหน่วยความจำนี้ ต้องมีการใช้มาตรการอื่น ๆ เพื่อรับรองการแยกจากกันหรือพิจารณาซอฟต์แวร์ทั้งหมดทำงานเพื่อความปลอดภัยและที่สำคัญจะต้องอยู่ภายใต้ข้อกำหนดของระดับความปลอดภัยสมบูรณ์สูงสุด (Highest Safety Integrity Level) ของผลิตภัณฑ์ ต้องมีหลักสมมุติว่าซอฟต์แวร์ทั้งหมดสามารถทำความเสียหายต่อพื้นที่หน่วยความจำของซอฟต์แวร์อื่น ๆ ได้ จึงต้องให้ความสำคัญในการรักษาความปลอดภัย
เมื่อใช้การป้องกันหน่วยความจำประเภทนี้ มีข้อกังวลหนึ่งที่ควรจะพิจารณา หากมีการใช้ส่วนประมวลผลขนาดเล็ก (Microcontroller) ที่ส่งข้อมูลระหว่างหน่วยประมวลผลหลักและอุปกรณ์อินพุตเอาต์พุต (On-chip I/O Devices) ผ่านทางการเข้าถึงหน่วยความจำโดยตรงหรือ DMA (Direct Memory Access) แล้ว รายการเหล่านี้จะไม่ได้ถูกป้องกันโดยส่วนบริหารจัดการหน่วยความจำ ถ้ามีอุปกรณ์อินพุตเอาต์พุตใดทำงานด้านความปลอดภัยแล้วการใช้งานที่ไม่ใช่ด้านความปลอดภัยต้องไม่สามารถเข้าถึงอุปกรณ์เหล่านี้ได้หรือต้องมีมาตรการป้องกันเพิ่มเติมเข้าไปในซอฟต์แวร์
การป้องกันหน่วยความจำประเภทอื่น ๆ ที่มีรวมไปถึงสิ่งต่าง ๆ ดังนี้
* การตรวจสอบ CRC (Cyclic Redundancy Checking) ในบริเวณที่ข้อมูลและรหัสไม่มีการเปลี่ยนแปลง
* การเก็บซ้ำ (Duplicate Storage)
* การบริหารจัดการตรวจสอบข้อมูลที่เก็บไว้ (Monitored Heap Management)
* กองตรวจจับข้อมูลมากเกินไป (Stack Overflow Detection)
การตรวจสอบแบบ CRC จะตรวจสอบความเสียหายของฮาร์ดแวร์รวมทั้งการบันทึกข้อมูลที่ไม่ถูกต้อง ขณะที่ส่วนบริหารจัดการหน่วยความจำอาจปกป้องการบันทึกข้อมูลที่ไม่ถูกต้องที่ถูกเขียนมาจากกระบวนการอื่น การเขียนข้อมูลที่ไม่ถูกต้องในกระบวนการอาจเกิดขึ้นและควรได้รับการป้องกัน สำหรับข้อมูลที่ไม่เปลี่ยนแปลงเลยหรือเปลี่ยนแปลงมากนาน ๆ ครั้ง ควรใช้การตรวจสอบแบบ CRC หากข้อมูลมีความสำคัญเกี่ยวกับความปลอดภัย
ทางเลือกอีกทางหนึ่งในการป้องกันความปลอดภัยของข้อมูลที่สำคัญคือการจัดเก็บซ้ำซ้อน พร้อมกับการเปรียบเทียบข้อมูลทุกครั้งที่มีการเข้าถึง ถ้าใช้การเก็บข้อมูลซ้ำซ้อนควรสับเปลี่ยนที่กันเพื่อตรวจสอบความเสียหายเฉพาะบิตที่กำลังติดค้างอยู่ในค่าที่เป็นหนึ่งหรือเป็นศูนย์ การบริหารจัดการตรวจสอบข้อมูลที่เก็บไว้ เพื่อให้แน่ใจว่ามีหน่วยความจำที่เพียงพอสำหรับการจัดสรรหน่วยความจำแบบไดนามิกและสามารถตรวจสอบการสูญเสียได้ การตรวจสอบการล้นของข้อมูลจะตรวจสอบสถานการณ์ที่มีพื้นที่ไม่เพียงพอและเริ่มมีการแทนที่พื้นที่หน่วยความจำอื่นๆ
การสื่อสารสำหรับข้อมูลความปลอดภัยที่สำคัญ (Safety Critical Data) เป็นอีกส่วนหนึ่งสำหรับระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ที่สามารถทำให้เป็นสิ่งที่ง่ายขึ้น ซึ่งจะรวมทั้งการสื่อสารระหว่างโปรเซสเซอร์และภายในกระบวนการสื่อสาร การใช้การสื่อสารระหว่างโปรเซสเซอร์จะกลายเป็นสิ่งสำคัญมาก เมื่อระบบและการออกแบบฮาร์ดแวร์ตัดสินใจให้มีการแบ่งโปรเซสเซอร์ออกเป็นส่วน ๆ การออกแบบลักษณะนี้มีแนวโน้มที่สามารถเห็นได้ในหน่วยควบคุมอิเล็กทรอนิกส์ขนาดเล็กเช่น เครื่องมือวัดทางอุตสาหกรรมแบบชาญฉลาด (Smart Transmitters) เนื่องมาจากราคาของหน่วยประมวลผลเดี่ยวที่ลดลงต่ำกว่าราคาของ IC (Integrated Circuit) โดยเฉพาะการสื่อสารทั้งสองประเภทนี้สามารถเกิดวิกฤตขึ้น เมื่อมีการเปลี่ยนแปลงสำคัญที่สามารถรบกวนกันได้ หากไม่ระมัดระวังในการใช้งาน มีความเป็นไปได้ในการส่งข้อมูลไม่แน่นอนไปขัดจังหวะก่อนที่จะการรวบรวมข้อมูลทั้งหมดจะเสร็จสิ้น
ปัญหาเหล่านี้บางครั้งมักจะเป็นเรื่องยากในการค้นหาและแก้ไขเพราะจะเกิดขึ้นเพียงนาน ๆ ครั้งและจะไม่สะดวกในการเก็บข้อมูลเมื่อมีเหตุการณ์นี้เกิดขึ้น แต่เมื่อเกิดขึ้นแล้วการตอบสนองของระบบอาจจะล้มเหลวแบบไม่ปลอดภัยตรวจจับไม่ได้ (Unsafe Undetected Failure) หากระบบปฏิบัติการพื้นฐานใช้ระบบคิวตามข้อความระหว่างงานเฉพาะกับการปกป้องผู้ส่ง/รับข้อมูลและเนื้อหาของข้อความแล้ว ปัญหานี้สามารถแก้ไขได้ในระดับระบบปฏิบัติการ ในทำนองเดียวกันหากระบบปฏิบัติการพื้นฐาน (Ooperating System) ใช้พื้นที่หน่วยความจำร่วมกันกับการควบคุมการอ่าน/เขียนเข้ากับการป้องกันข้อมูลการเป็นเจ้าของและเนื้อหาแล้ว ระบบปฏิบัติการพื้นฐานสามารถดูแลปัญหานี้ได้เป็นอย่างดี มิฉะนั้นจะต้องมีมาตรการที่คล้ายกันในรหัสการใช้งานซึ่งสามารถสร้างงานเพิ่มเติมขึ้นอีกเป็นอย่างมาก
ระยะเวลาการทำงานด้านความปลอดภัยและกลไกการตรวจสอบที่ทำให้มั่นใจว่ามีการทำงานด้านความปลอดภัยสำคัญที่จำเป็นเมื่อมีความต้องการ เป็นข้อดีอีกอย่างหนึ่งที่สามารถหาได้จากระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ สามารถทำได้โดยวิธีการดังนี้
* ใช้เวลาในการตัดสินใจ
* ตรรกะในการตรวจสอบการควบคุมการเคลื่อนที่ของข้อมูลตามมาตรฐาน IEC 61508-2
* กรอบเวลาที่จะยุติการกระทำของงานถ้าเกินกว่าเวลาที่กำหนด
วิธีการเหล่านี้เมื่อรวมกับการตรวจสอบจากภายนอกในการตรวจจับความผิดพลาดของฮาร์ดแวร์ที่มีประสิทธิภาพสูงทำให้มั่นใจว่าหน้าที่การทำงานที่สำคัญดำเนินการในอัตราที่ต้องการ
IEC 61508 Certification
ในปัจจุบันมาตรฐาน IEC 61508 ไม่ได้อ้างอิงไปถึงซอฟต์แวร์ RTOS หรือ COTS (Commercial Off the Shelf Software) ในส่วนนี้จะเป็นการปรับปรุงในครั้งที่สองที่จะมาถึง มาตรฐานซึ่งจะระบุไว้อย่างชัดเจนว่าต้องการที่จะเห็นซอฟต์แวร์ COTS เป็นไปตามข้อกำหนดเช่นเดียวกับซอฟต์แวร์ที่พัฒนาขึ้นมาใหม่ ซึ่งได้บอกเป็นนัยโดยมาตรฐานปัจจุบันโดยไม่ได้กล่าวถึง แต่ตอนนี้จะถูกเรียกหาโดยเฉพาะ ดังนั้นเมื่อดำเนินการรับรองผลิตภัณฑ์ จะต้องรักษาระบบปฏิบัติการพื้นฐานให้เหมือน ๆ กับของส่วนประกอบ
การรับรองซอฟแวร์ ประกอบไปด้วยหลาย ๆ ระยะที่แตกต่างกัน ขั้นแรกกระบวนการพัฒนาที่ถูกใช้ในการสร้างซอฟต์แวร์จะต้องถูกวิเคราะห์ หลังจากนั้นการออกแบบซอฟต์แวร์จะถูกวิเคราะห์เพื่อตรวจสอบโหมดความล้มเหลวที่อาจเกิดขึ้นและมาตรการดำเนินการในซอฟต์แวร์ จะเป็นแนวทางเดียวกับความท้าทายของการใช้ระบบปฏิบัติการเชิงพาณิชย์ เมื่อกระบวนการพัฒนาและมาตรการความปลอดภัยของระบบปฏิบัติการอยู่นอกเหนือการควบคุม ทำอย่างไรที่สามารถเป็นได้ที่คาดหวังว่าผลิตภัณฑ์นี้จะได้รับการรับรอง โชคดีที่ยังมีตัวเลือกหลายทาง
ตัวเลือกที่ง่ายคือใช้ระบบปฏิบัติการที่ผ่านการรับรองแล้ว มีระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ในตลาดที่ได้รับการรับรองตามมาตรฐาน IEC 61508 เลือกระบบปฏิบัติการเหล่านี้เพียงหนึ่งผลิตภัณฑ์สามารถช่วยลดเรื่องยุ่งยากออกจากกระบวนการ
ตัวเลือกที่สองคือการใช้ระบบปฏิบัติการที่ไม่ผ่านการรับรองและรวมเป็นองค์ประกอบในกระบวนการรับรอง ตัวเลือกนี้จะยากแต่สามารถทำได้และมีการดำเนินการมาแล้วหลายครั้ง
ระบบปฏิบัติการที่ผ่านการรับรอง (Certified Operating Systems)
ประโยชน์หลักของการใช้ระบบปฏิบัติการที่ผ่านการรับรองคือ
* การลดความเสี่ยง
* ต้นทุน
* เวลาในทางการตลาด
การกระทำดังกล่าวเพื่อลดความเสี่ยงที่เป็นส่วนประกอบของระบบปฏิบัติการที่ไม่สามารถจะผ่านการรับรองโดยไม่มีการเปลี่ยนแปลงซึ่งอาจจะอยู่นอกเหนือการควบคุม ซึ่งจะลดค่าใช้จ่ายและระยะเวลาที่เกี่ยวข้องกับการรับรองส่วนระบบปฏิบัติการในส่วนที่ออกแบบ การลดค่าใช้จ่ายและเวลาที่เกี่ยวข้องในการสร้างมาตรการเพิ่มเติมในรหัสการใช้งาน เพื่อหลีกเลี่ยงความผิดพลาดที่อาจเกิดขึ้นในระบบปฏิบัติการและเป็นกฎระเบียบความต้องการรวบรวมข้อมูลของการพิสูจน์ในการใช้งานบนระบบปฏิบัติการ
ผลประโยชน์ของการใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ที่ผ่านการรับรองอีกข้อหนึ่ง จะให้คู่มือความปลอดภัย ซึ่งจะจัดเตรียมให้คำแนะนำในการใช้ระบบปฏิบัติการอย่างปลอดภัย จะมีข้อมูลที่เกี่ยวกับคุณสมบัติและหน้าที่สามารถทำได้และไม่สามารถใช้ได้อย่างปลอดภัยรวมทั้งวิธีการใด ๆ เพื่อให้แน่ใจถึงความปลอดภัยในการนำไปใช้งาน นอกจากนั้นระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ที่ผ่านการรับรองจะมีคุณสมบัติบางอย่างเช่น การป้องกันหน่วยความจำที่จะทำให้ง่ายต่อการออกแบบสำหรับการใช้งานด้านความปลอดภัย
เหตุผลเหล่านี้ทำให้ค่อนข้างน่าสนใจที่จะใช้ระบบปฏิบัติการที่ผ่านการรับรองในการควบคุมอุปกรณ์หรือเครื่องจักรต่าง ๆ หากเป็นไปได้ทั้งหมด แน่นอนว่าจะมีบางกรณีที่เป็นไปไม่ได้ในทางปฏิบัติ ตัวอย่างทั่วไปเช่นในกรณีที่มีผลิตภัณฑ์อยู่แล้วและกำลังพยายามที่จะผ่านการรับรอง สินค้านี้อาจใช้ระบบปฏิบัติการที่ไม่ผ่านการรับรองและความพยายามที่จะเปลี่ยนระบบปฏิบัติการอาจมีขนาดใหญ่มาก นอกจากนี้การทำเช่นนั้นได้ทำลายความน่าเชื่อถือของผลิตภัณฑ์ที่มีช่วงเวลาพิสูจน์ในการทำงานเพื่อใช้เป็นความไว้วางใจของสินค้า ในกรณีนี้การเปลี่ยนระบบปฏิบัติการใหม่อาจเพิ่มความเสี่ยงมากขึ้นและมีต้นทุนสูงขึ้นแทนที่จะประหยัดกว่า
ถ้าการเปลี่ยนระบบปฏิบัติการไม่ได้เป็นตัวเลือกที่เหมาะสมแล้ว ดังนั้นจึงต้องทำตามเส้นทางของการใช้มาตรการในรหัสการใช้งานเพื่อให้มีความปลอดภัยในระบบปฏิบัติการ วิธีที่ดีที่สุดเมื่อไปเกี่ยวข้องกับเรื่องนี้คือ ทำการวิเคราะห์อันตรายของซอฟต์แวร์ กระบวนการนี้เป็นหลักการที่ประกอบด้วยการวิเคราะห์ขององค์ประกอบทั้งหมดของระบบปฏิบัติการเพื่อตรวจสอบอะไรที่เป็นโหมดความล้มเหลวที่เป็นไปได้ สำหรับในแต่ละโหมดความล้มเหลวที่ตรวจพบ การวัดต้องอยู่ในผลิตภัณฑ์เพื่อให้มั่นใจว่าเป็นความล้มเหลวปลอดภัย (Safe Failure)
ความล้มเหลวที่ปลอดภัยหมายถึงสถานะที่เอาต์พุตสามารถอยู่ในสถานะปลอดภัยซึ่งหยุดกระบวนการที่เป็นแบบปกติหยุดจ่ายพลังงาน (De-energized) การวิเคราะห์อันตรายทำได้โดยทำตามคุณลักษณะของแต่ละองค์ประกอบหนึ่งและใช้ Guidewords เพื่อพิจารณาหาการเบี่ยงเบนไป สาเหตุที่เป็นไปได้และผลกระทบมีการวิเคราะห์แล้วและมาตรการความปลอดภัยที่เป็นไปได้ ตารางที่ 1 แสดงตัวอย่างการวิเคราะห์ความอันตรายสำหรับคุณสมบัติของระบบปฏิบัติการ วัตถุประสงค์ของตัวอย่างนี้เป็นเพียงการให้ความรู้สึกของวิธีการวิเคราะห์อันตรายและไม่ควรถือว่ามีความสมบูรณ์หรือถูกต้อง
ตารางที่ 1 ตัวอย่างการวิเคราะห์ความอันตราย
ผลของการวิเคราะห์ความอันตรายจะเป็นรายการชื่อของมาตรการความปลอดภัยเช่นที่ปรากฏในคอลัมน์ 5 ในตารางที่ 1 มาตรการความปลอดภัยเหล่านี้อาจมีรายการที่ดำเนินการแล้วในการใช้งานหรืออาจมีมาตรการใหม่ที่ต้องเพิ่มเข้าไปในการใช้งาน ผลเสียของการมีการทำวิเคราะห์นี้บนระบบปฏิบัติการจะเป็นสิ่งที่ชัดเจนว่าเป็นการใช้ระยะเวลาในทำงานมาก โดยเฉพาะอย่างยิ่งถ้าพบว่ามาตรการด้านความปลอดภัยจำนวนมากต้องดำเนินการ แต่จะไม่เลวร้ายเท่าที่อาจดูเหมือนเป็นครั้งแรก ๆ ในหลายการวัดมาตรการความปลอดภัยที่ต้องการจัดเตรียมสำหรับระบบปฏิบัติการจะเป็นประโยชน์ในการใช้งานและในท้ายสุดเมื่อต้องดำเนินการวิเคราะห์อันตรายในการใช้งาน
ตัวอย่างระบบปฏิบัติการที่ผ่านการรับรอง
จากหัวข้อที่ผ่านมาได้แสดงถึงรายละเอียดข้อดีและข้อเสียในการใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์กับเครื่องจักรต่าง ๆ หรืออุตสาหกรรมกระบวนการผลิต ตัวอย่างระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ในระบบการวัดและควบคุมทางอุตสาหกรรมสำหรับกระบวนการผลิตประเภทต่าง ๆ ที่รู้จักกันเป็นอย่างดีคือ ส่วนประมวลผลสำหรับระบบนิรภัยหรือ Safety PLC ซึ่งเป็นระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ที่ผ่านการรับรองจากบุคคลที่สามสำหรับการนำไปใช้งานในด้านความปลอดภัย ซึ่งจะใช้เทคนิคการตรวจสอบโปรแกรมการทำงานและมีการออกแบบอุปกรณ์ต่าง ๆ ที่แตกต่างออกไปจากส่วนประมวลผลทั่วไป ในหัวข้อนี้จะแสดงตัวอย่างเทคนิคของโปรแกรมสำหรับใช้ตรวจสอบความผิดพลาดที่เกิดขึ้น
“Flow Control” เป็นโปรแกรมการตรวจสอบความผิดพลาดที่มีประสิทธิภาพมาก โดยจะเป็นการตรวจสอบลำดับขั้นการประมวลผลของรายการคำสั่ง เพื่อให้แน่ใจว่าคำสั่งการทำงานที่สำคัญ ๆ ได้ถูกประมวลตามลำดับการทำงานอย่างถูกต้อง การทำงานหลัก ๆ จะเป็นการกำหนดสถานะและบันทึกเวลาบนตัวแปรหนึ่ง เมื่อระบบทำการประมวลผลในแต่ละคำสั่ง เมื่อจบการทำงานของรายการคำสั่ง ระบบก็จะทำการตรวจสอบสถานะจากตัวแปร ซึ่งควรจะมีลำดับที่ถูกต้อง ถ้ามีการบันทึกเวลา ซึ่งความแตกต่างของเวลาระหว่างการประมวลรายการคำสั่งสามารถนำไปเปรียบเทียบกับค่าอ้างอิงได้ จึงสามารถแสดงให้ทราบได้ว่าการประมวลผลรายการคำสั่งเหล่านี้มีการผิดพลาดหรือไม่ การตรวจสอบความผิดพลาดด้วย “Flow Control” แสดงดังรูปที่ 1
รูปที่ 1 การตรวจสอบความผิดพลาดของโปรแกรมด้วย “Flow Control”
อีกรูปแบบหนึ่งเป็นการตรวจสอบผลลัพธ์ที่ได้จากการประมวลผล เมื่อรู้ขอบเขตจำกัดของผลลัพธ์ก็สามารถทำการตรวจสอบได้ว่าผลลัพธ์จากการประมวลผลไม่มีความผิดพลาดและข้อมูลต่าง ๆ ที่อยู่ในส่วนประมวลผลจะต้องมีการป้องกันการสูญหายของข้อมูล ข้อมูลที่ถูกกำหนดว่าสำคัญจะถูกวิเคราะห์การไหลของข้อมูลในส่วนของโปรแกรมและข้อมูลสำคัญ ๆ เหล่านี้จะต้องเก็บอยู่ในส่วนที่ไม่มีผลกระทบอันเนื่องมาจากความผิดพลาดต่าง ๆ
รูปที่ 2 การตรวจสอบการไหลของข้อมูล
จากรูปที่ 2 เป็นรูปแสดงการไหลของข้อมูลและมีส่วนย้อนกลับในขั้นตอนที่ 8 เป็นการตรวจสอบข้อมูลของขั้นตอนในการประมวลผลจากขั้นตอนที่ 1 ไปยังขั้นตอนที่ 3 การประมวลผลที่ให้ค่าถูกต้องแม่นยำจะได้จากการประมวลผลปกติในขั้นตอนที่ 1 ไปยังขั้นตอนที่ 3 ส่วนในขั้นตอนที่ 8 จะเป็นการเปรียบเทียบค่าผลลัพธ์ที่ได้กับค่าผลลัพธ์อ้างอิงที่เป็นค่าปลอดภัย ซึ่งมีความถูกต้องแม่นยำน้อยกว่าขั้นตอนปกติ แต่ทำให้สามารถตรวจสอบความผิดพลาดของโปรแกรมได้
สำหรับตัวอย่างส่วนประกอบของด้านอินพุตในส่วนประมวลผลสำหรับระบบนิรภัยหรือ Safety PLC จะใช้วงจรอิเล็กทรอนิกส์แสดงได้ดังรูปที่ 3
รูปที่ 3 วงจรอิเล็กทรอนิกส์ของ Safety PLC
จากรูปที่ 3 เป็นวงจรที่ถูกออกแบบเพื่อให้มีความสามารถการวินิจฉัยความผิดพลาดได้สูง ความสามารถดังกล่าวมีความต้องการสำหรับระบบที่มีความนิรภัยและความเชื่อมั่นในการทำงานสูง วงจรถูกออกแบบโดยใช้วงจรเชื่อมต่อทางแสงจำนวน 2 ชุด ไมโครคอมพิวเตอร์จะอ่านค่าอินพุตได้ทั้ง 2 ชุด ภายใต้สภาวะการทำงานปกติ ค่าที่อ่านได้ทั้งสองต้องมีค่าเหมือนกัน นอกจากนั้นค่าอ่านได้ต้องมีค่าเป็น 4 เท่าของช่วงสัญญาณแรงดันกระแสสลับ ซึ่งจะให้ระบบอ่านค่าได้อย่างถูกต้อง เมื่อส่วนต่าง ๆ ทำงานอย่างถูกต้อง โลจิก 1 เป็นพัลส์แบบอนุกรม วงจรนี้ออกแบบให้เป็นลักษณะเกิดผิดพลาดนิรภัย (Fail-safe) ด้วยสภาวะปกติจ่ายพลังงานออกไป
สรุปแล้วประโยชน์ที่รู้จักกันดีหลายประการสำหรับการใช้ผลิตภัณฑ์ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์และการใช้งานในปัจจุบันนี้แพร่หลายเป็นอย่างมาก เมื่อมีการใช้ระบบปฏิบัติการบนเวลาจริงเชิงพาณิชย์ในด้านความปลอดภัยแบบวิกฤติ มีบางข้อได้เปรียบที่สำคัญและความท้าทายในการทำเช่นนั้น ระบบปฏิบัติการที่ดีจริงจะมีคุณสมบัติที่ทำให้มันง่ายมากที่จะใช้ทำหน้าที่ด้านความปลอดภัยและสามารถช่วยได้มากในการลดค่าใช้จ่ายของโครงการ อย่างไรก็ตามการใช้ระบบปฏิบัติการของบุคคลที่สามในพื้นที่เสี่ยงอาจจะออกนอกเหนือการควบคุม โชคดีที่มีระบบปฏิบัติการที่ผ่านการรับรองในตลาด ซึ่งช่วยลดความเสี่ยงเหล่านี้ได้มากที่สุดและสำหรับระบบที่ไม่ผ่านการรับรองก็มีการยอมรับวิธีการรับรอง ถ้ามีความจำเป็น
เอกสารอ้างอิง
[1] Mike Medoff,’’ Real Time Operating System for IEC 61508’’, www.exida.com
[2] Hermann, Debra S, Software Safety and Reliability, IEE Computer Society Press, Los Alamitos, CA, 1999.
[3] ทวิช ชูเมือง, ระบบวัดคุมนิรภัยในอุตสาหกรรมกระบวนการผลิต, ISBN 974-212-172-9, บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน), 2548.
สงวนลิขสิทธิ์ ตามพระราชบัญญัติลิขสิทธิ์ พ.ศ. 2539 www.thailandindustry.com
Copyright (C) 2009 www.thailandindustry.com All rights reserved.
ขอสงวนสิทธิ์ ข้อมูล เนื้อหา บทความ และรูปภาพ (ในส่วนที่ทำขึ้นเอง) ทั้งหมดที่ปรากฎอยู่ในเว็บไซต์ www.thailandindustry.com ห้ามมิให้บุคคลใด คัดลอก หรือ ทำสำเนา หรือ ดัดแปลง ข้อความหรือบทความใดๆ ของเว็บไซต์ หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของบทความนี้ไปใช้ ดัดแปลง โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฏหมายบัญญัติไว้สูงสุด