วันอังคารที่ 17 มกราคม พ.ศ. 2555

ซอฟต์แวร์
ซอฟต์แวร์ หมายถึง ส่วนที่มนุษย์สัมผัสไม่ได้โดยตรง (นามธรรม) เป็นโปรแกรมหรือชุดคำสั่งที่ถูกเขียนขึ้นเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงเป็นเหมือนตัวเชื่อมระหว่างผู้ใช้เครื่องคอมพิวเตอร์และเครื่องคอมพิวเตอร์ ถ้าไม่มีซอฟต์แวร์เราก็ไม่สามารถใช้เครื่องคอมพิวเตอร์ทำอะไรได้เลย
ประเภทของซอฟต์แวร์
 ซอฟต์แวร์สามารถแบ่งออกได้เป็น2ประเภท
1. ซอฟต์แวร์สำหรับระบบ (System Software)
คือ ชุดของคำสั่งที่เขียนไว้เป็นคำสั่งสำเร็จรูป ซึ่งจะทำงานใกล้ชิดกับคอมพิวเตอร์มากที่สุด เพื่อคอยควบคุมการทำงานของฮาร์ดแวร์ทุกอย่าง และอำนวยความสะดวกให้กับผู้ใช้ในการใช้งาน ซอฟต์แวร์หรือโปรแกรมระบบที่รู้จักกันดีก็คือ DOS, Windows, Unix, Linux รวมทั้งโปรแกรมแปลคำสั่งที่เขียนในภาษาระดับสูง เช่น ภาษา Basic, Fortran, Pascal, Cobol, C เป็นต้น นอกจากนี้โปรแกรมที่ใช้ในการตรวจสอบระบบเช่น Norton’s Utilities ก็นับเป็นโปรแกรมสำหรับระบบด้วยเช่นกัน
2. ซอฟต์แวร์ประยุกต์ (Application Software)
คือ ซอฟต์แวร์หรือโปรแกรมที่มำให้คอมพิวเตอร์ทำงานต่างๆ ตามที่ผู้ใช้ต้องการ ไม่ว่าจะด้านเอกสาร บัญชี การจัดเก็บข้อมูล เป็นต้น ซอฟต์แวร์ประยุกต์สามารถจำแนกได้เป็น 2 ประเภท คือ
2.1 ซอฟต์แวร์สำหรับงานเฉพาะด้าน คือ โปรแกรมซึ่งเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ บางที่เรียกว่า User’s Program เช่น โปรแกรมการทำบัญชีจ่ายเงินเดือน โปรแกรมระบบเช่าซื้อ โปรแกรมการทำสินค้าคงคลัง เป็นต้น ซึ่งแต่ละโปรแกรมก็มักจะมีเงื่อนไข หรือแบบฟอร์มแตกต่างกันออกไปตามความต้องการ หรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมได้ เพื่อให้ตรงกับความต้องการของผู้ใช้ และซอฟต์แวร์ประยุกต์ที่เขียนขึ้นนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงเป็นตัวพัฒนา
2.3 ซอฟต์แวร์สำหรับงานทั่วไป เป็นโปรแกรมประยุกต์ที่มีผู้จัดทำไว้ เพื่อใช้ในการทำงานประเภทต่างๆ ทั่วไป โดยผู้ใช้คนอื่นๆ สามารถนำโปรแกรมนี้ไปประยุกต์ใช้กับข้อมูลของตนได้ แต่จะไม่สามารถทำการดัดแปลง หรือแก้ไขโปรแกรมได้ ผู้ใช้ไม่จำเป็นต้องเขียนโปรแกรมเอง ซึ่งเป็นการประหยัดเวลา แรงงาน และค่าใช้จ่ายในการเขียนโปรแกรม นอกจากนี้ ยังไม่ต้องเวลามากในการฝึกและปฏิบัติ ซึ่งโปรแกรมสำเร็จรูปนี้ มักจะมีการใช้งานในหน่วยงานมราขาดบุคลากรที่มีความชำนาญเป็นพิเศษในการเขียนโปรแกรม ดังนั้น การใช้โปรแกรมสำเร็จรูปจึงเป็นสิ่งที่อำนวยความสะดวกและเป็นประโยชน์อย่างยิ่ง ตัวอย่างโปรแกรมสำเร็จรูปที่นิยมใช้ได้แก่ MS-Office, Lotus, Adobe Photoshop, SPSS, Internet Explorer และ เกมส์ต่างๆ เป็นต้น
ความสำคัญของซอฟต์แวร์  

การที่เราเห็นคอมพิวเตอร์ทำงานให้กับเราได้อย่างหลากหลาย เพราะมีซอฟต์แวร์ต่างๆ ช่วยสนับสนุนการทำงานเหล่านั้น เช่น ร้านค้าอาจใช้คอมพิวเตอร์ในการจัดทำบัญชีที่ยุ่งยากซับซ้อน บริษัทขายตั๋วเครื่องบินใช้คอมพิวเตอร์ช่วยในระบบการจองตั๋ว ธนาคารใช้คอมพิวเตอร์ช่วยในการจัดการข้อมูลต่างๆ ที่มีอยู่มากมาย ครูและนักเรียนใช้คอมพิวเตอร์ช่วยในการจัดพิมพ์เอกสาร ดังนั้นซอฟต์แวร์จึงหมายรวมถึง โปรแกรมคอมพิวเตอร์ทุกประเภทที่ทำให้คอมพิวเตอร์ทำงานได้
ซอฟต์แวร์และภาษาคอมพิวเตอร์
เมื่อมนุษย์ต้องการใช้คอมพิวเตอร์ช่วยในการทำงาน มนุษย์จะต้องบอกขั้นตอนวิธีการให้คอมพิวเตอร์ทราบ การที่บอกสิ่งที่มนุษย์เข้าใจให้คอมพิวเตอร์รับรู้ และทำงานได้อย่างถูกต้อง จำเป็นต้องมีสื่อกลาง ถ้าเปรียบเทียบกับชีวิตประจำวันแล้ว เรามีภาษาที่ใช้ในการติดต่อซึ่งกันและกัน เช่นเดียวกันถ้ามนุษย์ต้องการจะถ่ายทอดความต้องการให้คอมพิวเตอร์รับรู้และปฏิบัติตาม จะต้องมีสื่อกลางสำหรับการติดต่อเพื่อให้คอมพิวเตอร์รับรู้ เราเรียกสื่อกลางนี้ว่าภาษาคอมพิวเตอร์
เนื่องจากคอมพิวเตอร์ทำงานด้วยสัญญาณทางไฟฟ้า ใช้แทนด้วยตัวเลข 0 และ 1 ได้ ผู้ออกแบบคอมพิวเตอร์ใช้ตัวเลข 0 และ 1 นี้เป็นรหัสแทนคำสั่งในการสั่งงานคอมพิวเตอร์ รหัสแทนข้อมูลและคำสั่งโดยใช้ระบบเลขฐานสองนี้ คอมพิวเตอร์สามารถเข้าใจได้ เราเรียกเลขฐานสองที่ประกอบกันเป็นชุดคำสั่งและใช้สั่งงานคอมพิวเตอร์ว่าภาษาเครื่อง
การใช้ภาษาเครื่องนี้ถึงแม้คอมพิวเตอร์จะเข้าใจได้ทันที แต่มนุษย์ผู้ใช้จะมีข้อยุ่งยากมาก เพราะเข้าใจและจดจำได้ยาก จึงมีผู้สร้างภาษาคอมพิวเตอร์ในรูปแบบที่เป็นตัวอักษร เป็นประโยคข้อความ ภาษาในลักษณะดังกล่าวนี้เรียกว่า ภาษาคอมพิวเตอร์ระดับสูง ภาษาระดับสูงมีอยู่มากมาย บางภาษามีความเหมาะสมกับการใช้สั่งงานการคำนวณทางคณิตศาสตร์และวิทยาศาสตร์ บางภาษามีความเหมาะสมไว้ใช้สั่งงานทางด้านการจัดการข้อมูล
ในการทำงานของคอมพิวเตอร์ คอมพิวเตอร์จะแปลภาษาระดับสูงให้เป็นภาษาเครื่อง ดังนั้นจึงมีผู้พัฒนาโปรแกรมคอมพิวเตอร์สำหรับแปลภาษาคอมพิวเตอร์ระดับสูงให้เป็นภาษาเครื่อง โปรแกรมที่ใช้แปลภาษาคอมพิวเตอร์ระดับสูงให้เป็นภาษาเครื่องเรียกว่า คอมไพเลอร์ (compiler) หรืออินเทอร์พรีเตอร์ (interpreter)
คอมไพเลอร์จะทำการแปลโปรแกรมที่เขียนเป็นภาษาระดับสูงทั้งโปรแกรมให้เป็นภาษาเครื่องก่อน แล้วจึงให้คอมพิวเตอร์ทำงานตามภาษาเครื่องนั้น
ส่วนอินเทอร์พรีเตอร์จะทำการแปลทีละคำสั่ง แล้วให้คอมพิวเตอร์ทำตามคำสั่งนั้น เมื่อทำเสร็จแล้วจึงมาทำการแปลคำสั่งลำดับต่อไป ข้อแตกต่างระหว่างคอมไพเลอร์กับอินเทอร์พรีเตอร์จึงอยู่ที่การแปลทั้งโปรแกรมหรือแปลทีละคำสั่ง ตัวแปลภาษาที่รู้จักกันดี เช่น ตัวแปลภาษาเบสิก ตัวแปลภาษาโคบอล
ซอฟต์แวร์หรือโปรแกรมคอมพิวเตอร์จึงเป็นส่วนสำคัญที่ควบคุมการทำงานของคอมพิวเตอร์ให้ดำเนินการตามแนวความคิดที่ได้กำหนดไว้ล่วงหน้าแล้ว คอมพิวเตอร์ต้องทำงานตามโปรแกรมเท่านั้น ไม่สามารถทำงานที่นอกเหนือจากที่กำหนดไว้ในโปรแกรม
ระบบปฏิบัติการ (Operating System : OS)
ระบบคอมพิวเตอร์แทบทุกระบบถือว่าระบบปฏิบัติการเป็นส่วนสำคัญของระบบ โดยทั่วไประบบคอมพิวเตอร์แบ่งเป็น 4 ส่วน คือ ฮาร์ดแวร์ ระบบปฏิบัติการ โปรแกรมประยุกต์ และผู้ใช้
    1. ฮาร์ดแวร์ ประกอบด้วยทรัพยากรต่างๆ ที่มีในระบบ ได้แก่ อุปกรณ์นำข้อมูลเข้า/ออก หน่วยประมวลผลกลาง และหน่วยความจำ นอกจากนี้ยังหมายความรวมถึง โปรแกรมภาษาเครื่อง และไมโครโปรแกรม ซึ่งเป็นส่วนที่บริษัทผู้ผลิตสร้างขึ้นเพื่อใช้เป็นซอฟร์แวร์ในระดับพื้นฐาน (primitive level) โดยสามารถทำงานได้โดยตรงกับทรัพยากรระบบด้วยคำสั่งง่ายๆ เช่น ADD MOVE หรือ JUMP คำสั่งเหล่านี้จะถูกกำหนดเป็นขั้นตอน การทำงานของวงจรภายในเครื่องคอมพิวเตอร์ ชุดคำสั่งที่ไมโครโปรแกรมต้องแปลหรือตีความหมายจะอยู่ใน รูปแบบภาษาเครื่องและมักเป็นคำสั่งในการคำนวณ เปรียบเทียบ และการควบคุมอุปกรณ์นำข้อมูลเข้า/ออก
    2. ระบบปฏิบัติการ เป็นโปรแกรมที่ทำงานเป็นตัวกลางระหว่างผู้ใช้เครื่องและฮาร์ดแวร์ โดยมีวัตถุประสงค์เพื่อจัดสภาพแวดล้อมให้ผู้ใช้ระบบสามารถปฏิบัติงานบนเครื่องคอมพิวเตอร์ได้ โดยจะเอื้ออำนวยการพัฒนาและการใช้โปรแกรมต่างๆ รวมถึงการจัดสรรทรัพยากรต่างๆ ให้ได้อย่างมีประสิทธิภาพ
    3. โปรแกรมประยุกต์ คือซอฟต์แวร์หรือโปรแกรมที่ถูกเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ เช่น งานส่วนตัว งานทางด้านธุรกิจ งานทางด้านวิทยาศาสตร์ โปรแกรมทางธุรกิจ เกมส์ต่างๆ ระบบฐานข้อมูล ตลอดจนตัวแปลภาษา เราอาจเรียกโปรแกรมประเภทนี้ว่า User's Program โปรแกรมประเภทนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงในการพัฒนา เช่นภาษา C, C++, COBOL, PASCAL, BASIC ฯลฯ ตัวอย่างของโปรแกรมที่พัฒนาขึ้นใช้ในทางธุรกิจ เช่น โปรแกรมระบบบัญชีจ่ายเงินเดือน (Payroll Program) โปรแกรมระบบเช่าซื้อ (Hire Purchase) โปรแกรมระบบสินค้าคงหลัง (Stock Program) ฯลฯ ซึ่งแต่ละโปรแกรมก็จะมีเงื่อนไขหรือแบบฟอร์มที่แตกต่างกัน ตามความต้องการหรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งโปรแกรมประเภทนี้เราสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมเองได้ เพื่อให้ตรงกับความต้องการของผู้ใช้งานโปรแกรม
      โปรแกรมเหล่านี้เป็นตัวกำหนดแนวทางในการใช้ทรัพยากรระบบ เพื่อทำงานต่างๆ ให้แก่ผู้ใช้หลากหลายประเภท ซึ่งอาจเป็นได้ทั้งบุคคล โปรแกรม หรือเครื่องคอมพิวเตอร์ เช่นตัวแปรภาษาต้องใช้ทรัพยากรระบบในการแปลโปรแกรมภาษาระดับสูงให้เป็นภาษาเครื่องแก่โปรแกรมเมอร์ ดังนั้น ระบบปฏิบัติการต้องควบคุมและประสานงานในการใช้ทรัพยากรระบบของผู้ใช้ให้เป็นไปอย่างถูกต้อง
    4. ผู้ใช้ ถึงแม้ระบบคอมพิวเตอร์จะประกอบด้วยองค์ประกอบทั้งทางด้านฮาร์ดแวร์และซอฟต์แวร์ แต่ระบบคอมพิวเตอร์จะไม่สามารถทำงานได้ถ้าขาดอีกองค์ประกอบหนึ่ง ซึ่งได้แก่ องค์ประกอบทางด้านบุคลากรที่จะเป็นผู้จัดการและควบคุมระบบคอมพิวเตอร์ให้สามารถปฏิบัติงานได้อย่างราบรื่น คอยแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นกับระบบคอมพิวเตอร์ พัฒนาโปรแกรมประยุกต์ต่าง ๆ รวมไปถึงการใช้งานโปรแกรมประยุกต์ที่ถูกพัฒนาขึ้น

ระบบปฏิบัติการมีหน้าที่อะไร
หน้าที่ของระบบปฏิบัติการ สามารถแบ่งได้ 2 หน้าที่ใหญ่ๆ ด้วยกัน คือ 

1. ควบคุมการทำงานของโปรแกรม และอุปกรณ์ต่างๆ โดยเฉพาะอุปกรณ์รับข้อมูลและแสดงผล (input/output device) รวมถึงการเอื้ออำนวยให้ผู้ใช้สามารถใช้อุปกรณ์ต่างๆ อย่างสะดวก หน้าที่นี้เป็นหลักสำคัญ ซึ่งจะขาดเสียมิได้ในระบบปฏิบัติการทุกรูปแบบ ตั้งแต่เครื่องเล็กไปจนถึงเครื่องใหญ่ สำหรับในเครื่องเล็ก (microcomputer) ระบบปฏิบัติการจะเป็นแบบง่ายๆ และทำหน้าที่ควบคุม ในลักษณะนี้เพียงอย่างเดียว จึงมักเรียกกันว่าเป็น โปรแกรมควบคุม (control programหรือ CP) จุดประสงค์ของหน้าที่นี้ คือ การให้ความสะดวกแก่ผู้ใช้เครื่อง 
2. จัดสรรทรัพยากรซึ่งใช้ร่วมกัน (shared resources) ความหมายของหน้าที่นี้จะเห็นได้ชัดในเครื่องระดับใหญ่ (mainframe) ซึ่ง่จะมีอุปกรณ์ต่างๆ จำพวกหน่วยประมวลผลกลาง หน่วยความจำ ฯลฯ ซึ่งมีสมรรถนะ หรือขนาดใหญ่ เกินความจำเป็นของงานแต่ละงาน จึงมีการใช้ทรัพยากรเหล่านี้ร่วมกัน ในลักษณะของระบบมัลติโปรแกรมมิ่ง (multiprogramming) หน้าที่ของระบบปฏิบิตการ จึงต้องครอบคลุม ถึงการจัดสรรทรัพยากรเหล่านี้ เพื่อขจัดความขัดแย้ง โดยคำนึงถึงความยุติธรรมต่อผู้ใช้แต่ละคน และประสิทธิผลของเครื่องเป็นหลักสำคัญ