1. ระบบที่ไม่มีระบบปฏิบัติการ (Non operating system)ยุคแรก ๆ คอมพิวเตอร์มีแต่เครื่องเปล่า ๆ ผู้ใช้ต้องเขียนโปรแกรมสั่งงาน ตรวจสอบการทำงาน ป้อนข้อมูล และควบคุมเอง ทำให้ระยะแรกใช้กันอยู่ในวงจำกัด
2. ระบบงานแบ็ตซ์ (Batch system)ในอดีต คอมพิวเตอร์จะทำงานได้ครั้งละ 1 งาน การสั่งงานคอมพิวเตอร์ให้มีมีประสิทธิภาพยิ่งขึ้น ทำได้โดยการรวมงานที่คล้ายกัน เป็นกลุ่ม แล้วส่งให้เครื่องประมวลผล โดยผู้ทำหน้าที่รวมงาน จะรับงานจากนักพัฒนาโปรแกรม มาจัดเรียงตามความสำคัญ และตามลักษณะของโปรแกรม จัดเป็นกลุ่มงาน แล้วส่งให้คอมพิวเตอร์ประมวลผล 3. ระบบบัฟเฟอร์ (Buffering system)การทำงานเพื่อขยายขีดความสามารถของระบบ ทำให้หน่วยรับ-แสดงผลสามารถทำงานไปพร้อม ๆ กับการประมวลผลของซีพียู ในขณะที่ประมวลผลคำสั่งที่ถูกโหลดเข้าซีพียูนั้น จะมีการโหลดข้อมูลเข้าไปเก็บในหน่วยความจำก่อน เมื่อถึงเวลาประมวลผลจะสามารถทำงานได้ทันที และโหลดข้อมูลต่อไปเข้ามาแทนที่ หน่วยความจำที่ทำหน้าที่เก็บข้อมูลที่เตรียมพร้อมนี้เรียกว่า บัฟเฟอร์ (buffer)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img]');}[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img] 4. ระบบสพูลลิ่ง (Spooling)Simultaneous Peripheral Operating On-Line เป็น multiprogramming พื้นฐาน ทำให้ซีพียูทำงานเต็มประสิทธิภาพ เพราะทำให้สามารถทำงานได้ 2 งานพร้อมกัน งานแรกคือประมวลผลในส่วนของซีพียู งานที่สองคือการรับ-แสดงผลข้อมูล ซึ่งต่างกับ buffer ที่ซีพียู และหน่วยรับ-แสดงผลทำงานร่วมกัน และ spooling มี job pool ทำให้สามารถเลือกการประมวลผลตามลำดับก่อนหลังได้ โดยคำนึงถึง priority เป็นสำคัญ 5. ระบบมัลติโปรแกรมมิ่ง (Multiprogramming)การทำงานที่โหลดโปรแกรมไปไว้ในหน่วยความจำหลัก และพร้อมที่จะประมวลผลได้ทันที ระบบปฏิบัติการจะเลือกงานเข้าไปประมวลผลจนกว่าจะหยุดคอยงานบางอย่าง ในช่วงที่หยุดรอจะดึงงานเข้าไปประมวลผลต่อทันที ทำให้มีการใช้ซีพียูได้อย่างมีประสิทธิภาพ 6. ระบบแบ่งเวลา (Time-sharing หรือ Multitasking)เป็นการขยายระบบ multiprogramming ทำให้สามารถสับเปลี่ยนงานของคนหลาย ๆ คนเข้าสู่ซีพียู ซึ่งการสับเปลี่ยนที่ทำด้วยความเร็วสูงจะทำให้ผู้ใช้รู้สึกเหมือนครอบครองซีพียูอยู่เพียงผู้เดียว 7. ระบบเรียลไทม์ (Real-time system)จุดประสงค์อีกอย่างหนึ่งของ ระบบปฏิบัติการ คือ ระบบเวลาจริง(Real-time system) หมายถึงการตอบสนองทันที เช่นระบบ Sensor ที่ส่งข้อมูลให้คอมพิวเตอร์ เครื่องมือทดลองทางวิทยาศาสตร์ ระบบภาพทางการแพทย์ ระบบควบคุมในโรงงานอุตสาหกรรม ระบบหัวฉีดในรถยนต์ ระบบควบคุมการยิง ระบบแขนกล และเครื่องใช้ในครัวเรือนทั้งหมดReal-time แบ่งได้ 2 ระบบ1. Hard real-time system เป็นระบบที่ถูกรับรองว่าจะได้รับการตอบสนองตรงเวลา และหยุดรอไม่ได้2. Soft real-time system เป็นระบบ less restrictive type ที่สามารถรอให้งานอื่นทำให้เสร็จก่อนได้ 8. ระบบคอมพิวเตอร์ส่วนบุคคล (Personal Computer System)ปัจจุบันคอมพิวเตอร์ราคาถูกลง มีการพัฒนาอุปกรณ์ต่าง ๆ อย่างต่อเนื่อง ทั้งแป้นพิมพ์ เมาส์ จอภาพ หน่วยความจำ หน่วยประมวลผล เป็นต้น และการใช้คอมพิวเตอร์ไม่ได้มุ่งเน้นด้านธุรกิจเพียงอย่างเดียว แต่นำไปใช้เพื่อความบันเทิงในบ้านมากขึ้น และกลายเป็นสิ่งจำเป็นสำหรับทุกองค์กร นอกจากคอมพิวเตอร์แบบตั้งโต๊ะ(Desktop) ยังมีคอมพิวเตอร์แบบสมุดโน๊ต(Notebook) และคอมพิวเตอร์มือถือ (PDA) ปัจจุบันมีโทรศัพท์มือถือที่ทำงานแบบคอมพิวเตอร์ และใช้ดูหนังฟังเพลง หรือประมวลผลต่าง ๆ ที่ซับซ้อนมากขึ้น ใกล้เคียงกับคอมพิวเตอร์แบบตั้งโต๊ะยิ่งขึ้น 9. ระบบเวอร์ชวลแมชีน (Virtual machine)เครื่องเสมือน ทำให้ผู้ใช้คอมพิวเตอร์รู้สึกเหมือนใช้คอมพิวเตอร์เพียงคนเดียว แต่ในความเป็นจริงจะบริการให้ผู้ใช้หลายคน ในหลายโปรเซส โดยใช้เทคโนโลยี Virtual machine บริการงานต่าง ๆ ให้กับผู้ใช้ได้หลาย ๆ งานพร้อมกัน 10. ระบบมัลติโปรเซสเซอร์ (Multiprocessor system)Symmetric-multiprocessingการประมวลผลแบบสมมาตร หมายถึงการประมวลผลหลายโปรเซสเซอร์ที่ไม่มีโปรเซสเซอร์ตัวใดรับโหลดมากกว่าตัวอื่นAsymmetric-multiprocessingการประมวลผลแบบไม่สมมาตร หมายถึงการมีโปรเซสเซอร์ตัวหนึ่งเป็นตัวควบคุม และแบ่งงานแต่ละแบบให้โปรเซสเซอร์แต่ละตัวตามความเหมาะสม 11. ระบบแบบกระจาย (Distributed system)ระบบเครือข่าย ที่กระจายหน้าที่ กระจายการเป็นศูนย์บริการ และเชื่อมต่อเข้าด้วยกัน ด้วยจุดประสงค์ต่าง ๆ กัน ในมาตรฐาน TCP/IP ซึ่งเป็นที่ยอมรับทั้ง Windows, Linux, Unix และ Mac ทำให้ทั้งหมดสามารถสื่อสารกันรู้เรื่องเข้าใจ และก่อให้เกิดประโยชน์ร่วมกัน 1.1 ประเภทของเครื่องคอมพิวเตอร์ อ้างอิงจาก http://www.nectec.or.th/courseware/computer/comp-using/index.html1.1.1 ซุปเปอร์คอมพิวเตอร์ (Super computer)คอมพิวเตอร์ขนาดใหญ่ มีกำลังมากที่สุด ราคาแพงที่สุด สามารถประมวลผลคำสั่งได้นับพันล้านคำสั่งในหนึ่งวินาที มักใช้เก็บข้อมูลขนาดใหญ่ และต้องการความเร็วสูง เช่น สถิติประชากร การขุดเจาะน้ำมัน พยากรณ์อากาศ หรือวิจัยอาวุธ เป็นต้นซูเปอร์คอมพิวเตอร์ (Supercomputer) เป็นคอมพิวเตอร์ที่มีสมรรถนะในการทำงานสูงกว่า คอมพิวเตอร์แบบอื่น ดังนั้นจึงมีผู้เรียกอีกชื่อหนึ่งว่า คอมพิวเตอร์สมรรถนะสูง (High Performance Computer) คอมพิวเตอร์ประเภทนี้ สามารถคำนวนเลขที่มีจุดทศนิยม ด้วยความเร็วสูงมาก ขนาดหลายร้อยล้านจำนวนต่อวินาที งานที่ให้คอมพิวเตอร์ประเภทนี้ทำแค่ 1 วินาที ถ้าหากเอามาให้คนอย่างเราคิด อาจจะต้องใช้เวลานานกว่าร้อยปี ด้วยเหตุนี้ จึงเหมาะที่จะใช้คอมพิวเตอร์ประเภทนี้ เมื่อต้องมีการคำนวนมากๆ อย่างเช่น งานวิเคราะห์ภาพถ่าย จากดาวเทียมอุตุนิยมวิทยา หรือดาวเทียมสำรวจทรัพยากร งานวิเคราะห์พยากรณ์อากาศ งานทำแบบจำลองโมเลกุล ของสารเคมี งานวิเคราะห์โครงสร้างอาคาร ที่ซับซ้อน คอมพิวเตอร์ประเภทนี้ มีราคาค่อนข้างแพง ปัจจุบันประเทศไทย มีเครื่องซูเปอร์คอมพิวเตอร์ Cray YMP ใช้ในงานวิจัย อยู่ที่ห้องปฏิบัติการคอมพิวเตอร์สมรรถภาพสูง (HPCC) ศูนย์เทคโนโลยีอิเล็กทรอนิกส์ และคอมพิวเตอร์แห่งชาติ ผู้ใช้เป็นนักวิจัยด้านวิศวกรรม และวิทยาศาสตร์ทั่วประเทศ บริษัทผู้ผลิตที่เด่นๆ ได้แก่ บริษัทเครย์ รีเสิร์ซ (Cray Research), บริษัท เอ็นอีซี (NEC) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]');}[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]1.1.2 เมนเฟรมคอมพิวเตอร์ (Mainframe computer)คอมพิวเตอร์ขนาดใหญ่ แต่เล็กกว่า super computer นิยมใช้งานกับธุรกิจขนาดใหญ่ เช่น ธนาคาร โรงแรม หรือ server ขององค์การขนาดใหญ่คอมพิวเตอร์ที่มีสมรรถนะสูงมาก แต่ยังต่ำกว่าซูเปอร์คอมพิวเตอร์ คือปกติสามารถทำงานได้รวดเร็ว หลายสิบล้านคำสั่งต่อวินาที สำหรับสาเหตุที่ได้ชื่อว่า เมนเฟรมคอมพิวเตอร์ ก็เพราะครั้งแรกที่สร้างคอมพิวเตอร์ลักษณะนี้ได้สร้างไว้บนฐานรองรับ ที่เรียกว่า คัสซี่ (Chassis) โดยมีชื่อเรียกฐานรองรับนี้ว่า เมนเฟรม นั่นเองเหมาะกับการใช้งาน ทั้งในด้านวิศวกรรม วิทยาศาสตร์ และธุรกิจ โดยเฉพาะงานที่เกี่ยวข้องกับข้อมูลจำนวนมากๆ เช่น งานธนาคาร ซึ่งต้องตรวจสอบบัญชีลูกค้าหลายคน งานของสำนักงานทะเบียนราษฎร์ ที่เก็บรายชื่อประชาชนประมาณ 60 ล้านคน พร้อมรายละเอียดต่างๆ งานจัดการบันทึกการส่งเงิน ของผู้ประกับตนหลายล้านคน ของสำนักงานประกันสังคม กระทรวงแรงงาน คอมพิวเตอร์เมนเฟรม ที่มีชื่อเสียงมาก คือ เครื่องของบริษัท IBMในปัจจุบัน ความนิยมใช้เครื่องเมนเฟรม ในหน่วยงานต่างๆ ได้ลดน้อยลงมาก เพราะราคาเครื่องค่อนข้างแพง การใช้งานค่อนข้างยาก และมีผู้รู้ด้านนี้ค่อนข้างน้อย สถานศึกษาที่มีเครื่องระดับนี้ไว้ใช้สอน ก็มีเพียงไม่กี่แห่ง เหตุผลสำคัญอีกประการหนึ่งคือ คอมพิวเตอร์ขนาดเล็กกว่า ได้รับการพัฒนาให้มีสมรรถนะมากขึ้น จนสามารถทำงานได้เท่ากับเครื่องเมนเฟรม แต่ราคาถูกกว่า อย่างไรก็ตามเครื่องเมนเฟรม ยังคงมีความจำเป็น ในงานที่ต้องใช้ข้อมูลมากๆ พร้อมๆ กันอยู่ต่อไปอีก ทั้งนี้เพราะ เครื่องเมนเฟรมสามารถพ่วงต่อ และควบคุมอุปกรณ์รอบข้าง (Peripheral) เช่น เครื่องพิมพ์ เครื่องขับเทปแม่เหล็ก เครื่องขับจานแม่เหล็ก ฯลฯ ได้เป็นจำนวนมากในเวลาเดียวกันif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.nexconsulting.com/images/mainframe.gif[/img]');}[img]http://www.nexconsulting.com/images/mainframe.gif[/img]1.1.3 มินิคอมพิวเตอร์ (Mini computer)คอมพิวเตอร์ที่ใช้ในธุรกิจขนาดกลาง และเล็ก ต้องการความสามารถในการประมวลผลสูง และราคาไม่สูงเกินไป เช่น AS/400 เป็นต้นเป็นคอมพิวเตอร์ที่มีสมรรถนะน้อยกว่าเครื่องเมนเฟรม คือทำงานได้ช้ากว่า และควบคุมอุปกรณ์รอบข้างได้น้อยกว่า อย่างไรก็ตามจุดเด่นสำคัญ ของเครื่องมินิคอมพิวเตอร์ ก็คือ ราคาย่อมเยากว่าเมนเฟรม การใช้งานก็ไม่ต้องใช้ บุคลากรมากนัก นอกจากนั้น ยังมีผู้ที่รู้วิธีใช้มากกว่าด้วย เพราะเครื่องประเภทนี้ มีใช้ตามสถานศึกษา ระดับอุดมศึกษาหลายแห่งมินิคอมพิวเตอร์ เหมาะกับงานหลากหลายประเภท คือใช้ได้ทั้งในงานวิศวกรรม วิทยาศาสตร์ อุตสาหกรรม เครื่องที่มีใช้ตามหน่วยงานราชการระดับกรมส่วนใหญ่ มักจะเป็นเครื่องประเภทนี้if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]');}[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]1.1.4 คอมพิวเตอร์ส่วนบุคคล (Personal computer)คอมพิวเตอร์แบบตั้งโต๊ะ(Desktop computer) หาซื้อได้ง่าย ราคาไม่แพง ใช้งานได้หลายประเภทเป็นคอมพิวเตอร์ขนาดเล็ก และใช้ทำงานคนเดียว จึงนิยมเรียกอีกชื่อหนึ่งว่าคอมพิวเตอร์ส่วนบุคคล (Personal Computer) เป็นคอมพิวเตอร์ใช้งานที่พบได้อย่างแพร่หลาย จัดว่าเป็นเครื่องคอมพิวเตอร์ขนาดเล็ก ทั้งระบบใช้งานครั้งล่ะคนเดียว หรือใช้งานในลักษณะเครือข่าย แบ่งได้หลายลักษณะตามขนาด เช่นเครื่องคอมพิวเตอร์ส่วนบุคคลแบบตั้งโต๊ะ (Personal Computer) หรือแบบพกพา (Portable Computer) หรือแบ่งตามผู้ผลิต ได้แก่ เครื่องกลุ่ม IBM, IBM Compatible และแมคอินทอช (Macintosh) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]1.1.5 โน๊ตบุค (Notebook computer)คอมพิวเตอร์ส่วนบุคคล ที่สามารถพกพาไปในที่ต่าง ๆ เช่นบนรถ บนเครื่องบิน มีขนาดเท่าสมุดโน๊ต และมีราคาสูงกว่า Personal computer เล็กน้อยif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]1.1.6 พีดีเอ (PDA: Personal Digital Assistant)คอมพิวเตอร์ขนาดเล็กเท่าฝ่ามือ ปัจจุบันเป็นโทรศัพท์ได้ด้วย ทำให้ไม่ต้องพกอุปกรณ์หลายชิ้น แต่ความสามารถด้านการประมวลผลยังไม่สามารถเทียบเท่า Personal computerif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]p900.jpg[/img]');}[img]p900.jpg[/img]1.1.7 คอมพิวเตอร์เครือข่าย (Network computer)คอมพิวเตอร์ที่นำมาประยุกต์ให้เชื่อมต่อคอมพิวเตอร์หลาย ๆ เครื่อง เข้าด้วยกัน และนำมาใช้ประมวลผลให้เกิดประสิทธิภาพสูงสุด เช่น การ share ข้อมูลในระบบอินเทอร์เน็ต เป็นต้นการจำแนกคอมพิวเตอร์ ตามลักษณะวิธีการทำงานภายในเครื่องคอมพิวเตอร์แอนะล็อกคอมพิวเตอร์ (Analog computer) เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ไม่ได้ใช้ค่าตัวเลขเป็นหลักของการคำนวณ แต่จะใช้ค่าระดับแรงดันไฟฟ้าแทน ไม้บรรทัดคำนวณ อาจถือเป็นตัวอย่างหนึ่งของแอนะล็อกคอมพิวเตอร์ ที่ใช้ค่าตัวเลขตามแนวความยาวไม้บรรทัดเป็นหลักของการคำนวณ โดยไม้บรรทัดคำนวณจะมีขีดตัวเลขกำกับอยู่ เมื่อไม้บรรทัดหลายอันมรประกบรวมกัน การคำนวณผล เช่น การคูณ จะเป็นการเลื่อนไม้บรรทัดหนึ่งไปตรงตามตัวเลขของตัวตั้งและตัวคูณของขีดตัวเลขชุดหนึ่ง แล้วไปอ่านผลคูณของขีดตัวเลขอีกชุดหนึ่งแอนะล็อกคอมพิวเตอร์แบบอิเล็กทรอนิกส์จะใช้หลักการทำนองเดียวกัน โดยแรงดันไฟฟ้าจะแทนขีดตัวเลขตามแนวยาวของไม้บรรทัด แอนะล็อกคอมพิวเตอร์จะมีลักษณะเป็นวงจรอิเล็กทรอนิกส์ที่แยกส่วนทำหน้าที่เป็นตัวกระทำและเป็นฟังก์ชันทางคณิตศาสตร์ จึงเหมาะสำหรับงานคำนวณทางวิทยาศาสตร์และวิศวกรรมที่อยู่ในรูปของสมการคณิตศาสตร์ เช่น การจำลองการบิน การศึกษาการสั่งสะเทือนของตึกเนื่องจากแผ่นดินไหว ข้อมูลตัวแปรนำเข้าอาจเป็นอุณหภูมิความเร็วหรือความดันอากาศ ซึ่งจะต้องแปลงให้เป็นค่าแรงดันไฟฟ้า เพื่อนำเข้าแอนะล็อกคอมพิวเตอร์ผลลัพธ์ที่ได้ออกมาเป็นแรงดันไฟฟ้าแปรกับเวลาซึ่งต้องแปลงกลับไปเป็นค่าของตัวแปรที่กำลังศึกษา ในปัจจุบันไม่ค่อยพบเห็นแอนะล็อกคอมพิวเตอร์เท่าไรนักเพราะผลการคำนวณมีความละเอียดน้อย ทำให้มีขีดจำกัดใช้ได้กับงานเฉพาะบางอย่างเท่านั้นดิจิทัลคอมพิวเตอร์ (Digital computer) คอมพิวเตอร์ที่พบเห็นทั่วไปในปัจจุบัน จัดเป็นดิจิทัลคอมพิวเตอร์แทบทั้งหมด ดิจิทัลคอมพิวเตอร์เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ใช้งานเกี่ยวกับตัวเลข มีหลักการคำนวณที่ไม่ใช่แบบไม้บรรทัดคำนวณ แต่เป็นแบบลูกคิด โดยแต่และหลักของลูกคิดคือ หลักหน่วย หลักร้อย และสูงขึ้นไปเรื่อย ๆ เป็นระบบเลขฐานสินที่แทนตัวเลขจากศูนย์ถ้าเก้าไปสิบตัวตามระบบตัวเลขที่ใช้ในชีวิตประจำวัน ค่าตัวเลขของการคำนวณในดิจิทัลคอมพิวเตอร์จะแสดงเป็นหลักเช่นเดียวกัน แต่จะเป็นระบบเลขฐานสองที่มีสัญลักษณ์ตัวเลขเพียงสองตัว คือเลขศูนย์กับเลขหนึ่งเท่านั้น โดยสัญลักษณ์ตัวเลขทั้งสองตัวนี้ จะแทนลักษณะการทำงานภายในซึ่งเป็นสัญญาณไฟฟ้าที่ต่างกัน การคำนวณภายในดิจิทัลคอมพิวเตอร์จะเป็นการประมวลผลด้วยระบบเลขฐานสองทั้งหมด ดังนั้นเลขฐานสิบที่เราใช้และคุ้นเคยจะถูกแปลงไปเป็นระบบเลขฐานสองเพื่อการคำนวณภายในคอมพิวเตอร์ ผลลัพธ์ที่ได้ก็ยังเป็นเลขฐานสองอยู่ ซึ่งคอมพิวเตอร์จะแปลงเป็นเลขฐานสิบเพื่อแสดงผลให้ผู้ใช้เข้าใจได้ง่าย 1.2 องค์ประกอบของคอมพิวเตอร์1.2.1 ฮาร์ดแวร์ (Hardware)องค์ประกอบของคอมพิวเตอร์ที่จับต้องได้ แบ่งเป็น 4 หน่วย คือ Input unit, CPU(Central Processing Unit), Storage และ Output unitif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]');}[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]1.2.2 ซอฟต์แวร์ (Software)คือ โปรแกรม หรือชุดคำสั่งที่เขียนขึ้น เพื่อสั่งให้คอมพิวเตอร์ทำงาน เป็นตัวเชื่อมระหว่าง Hardware กับผู้ใช้ ให้สามารถสื่อสารกันได้1.2.3 บุคลากร (Peopleware)บุคคลผู้สั่งให้คอมพิวเตอร์ โดยใช้ซอฟต์แวร์ ซึ่งเป็นภาษาที่คอมพิวเตอร์เข้าใจ ซึ่งบุคคลจะมีหลายบทบาทในการเข้าใช้คอมพิวเตอร์- นักวิเคราะห์ และออกแบบระบบ (System analyst and design)- โปรแกรมเมอร์ (Programmer)- ผู้บริหารฐานข้อมูล (Database administrator)- ผู้ปฏิบัติการ (Operator)- ผู้ใช้ (User)- ผู้บริหาร (Administrator)1.2.4 ข้อมูล (Data)องค์ประกอบสำคัญที่ทำให้คอมพิวเตอร์มีค่า เพราะข้อมูลที่เก็บในคอมพิวเตอร์ จะนำไปใช้ในการประกอบการตัดสินใจ หรือช่วยการแสดงผล หรือนำเสนอในรูปแบบต่าง ๆ ข้อมูลบางอย่างอาจมีค่ามากกว่า hardware เสียอีก1.2.5 กระบวนการทำงาน (Procedure)การทำงานให้ได้ผลตามต้องการต้องมีลำดับการทำงาน หรือขั้นตอนที่เป็นไปได้ในทางปฏิบัติ จึงต้องมีคู่มือผู้ใช้ หรือคู่มือระบบ ให้ผู้ใช้จัดการกับคอมพิวเตอร์ และใช้งานคอมพิวเตอร์ได้อย่างมีประสิทธิภาพที่สุด 1.3 ปฏิบัติการสำรวจข้อมูล และถอดประกอบเครื่อง- จัดคอมพิวเตอร์ให้ฝึกถอดประกอบคอมพิวเตอร์จากห้องปฏิบัติการ - มอบหมายให้เดินสำรวจการใช้คอมพิวเตอร์ในสถาบัน - ให้ค้นข้อมูลคอมพิวเตอร์ที่ใช้ในองค์การต่าง ๆ และยกตัวอย่างการใช้ประโยชน์ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบคอมพิวเตอร์ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการค้นคว้าบางส่วน
ระบบต่าง ๆ ภายในคอมพิวเตอร์ตั้งแต่อดีตถึงปัจจุบัน มี 11 ระบบ1. ระบบที่ไม่มีระบบปฏิบัติการ (Non operating system)ยุคแรก ๆ คอมพิวเตอร์มีแต่เครื่องเปล่า ๆ ผู้ใช้ต้องเขียนโปรแกรมสั่งงาน ตรวจสอบการทำงาน ป้อนข้อมูล และควบคุมเอง ทำให้ระยะแรกใช้กันอยู่ในวงจำกัด 2. ระบบงานแบ็ตซ์ (Batch system)ในอดีต คอมพิวเตอร์จะทำงานได้ครั้งละ 1 งาน การสั่งงานคอมพิวเตอร์ให้มีมีประสิทธิภาพยิ่งขึ้น ทำได้โดยการรวมงานที่คล้ายกัน เป็นกลุ่ม แล้วส่งให้เครื่องประมวลผล โดยผู้ทำหน้าที่รวมงาน จะรับงานจากนักพัฒนาโปรแกรม มาจัดเรียงตามความสำคัญ และตามลักษณะของโปรแกรม จัดเป็นกลุ่มงาน แล้วส่งให้คอมพิวเตอร์ประมวลผล 3. ระบบบัฟเฟอร์ (Buffering system)การทำงานเพื่อขยายขีดความสามารถของระบบ ทำให้หน่วยรับ-แสดงผลสามารถทำงานไปพร้อม ๆ กับการประมวลผลของซีพียู ในขณะที่ประมวลผลคำสั่งที่ถูกโหลดเข้าซีพียูนั้น จะมีการโหลดข้อมูลเข้าไปเก็บในหน่วยความจำก่อน เมื่อถึงเวลาประมวลผลจะสามารถทำงานได้ทันที และโหลดข้อมูลต่อไปเข้ามาแทนที่ หน่วยความจำที่ทำหน้าที่เก็บข้อมูลที่เตรียมพร้อมนี้เรียกว่า บัฟเฟอร์ (buffer)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img]');}[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img] 4. ระบบสพูลลิ่ง (Spooling)Simultaneous Peripheral Operating On-Line เป็น multiprogramming พื้นฐาน ทำให้ซีพียูทำงานเต็มประสิทธิภาพ เพราะทำให้สามารถทำงานได้ 2 งานพร้อมกัน งานแรกคือประมวลผลในส่วนของซีพียู งานที่สองคือการรับ-แสดงผลข้อมูล ซึ่งต่างกับ buffer ที่ซีพียู และหน่วยรับ-แสดงผลทำงานร่วมกัน และ spooling มี job pool ทำให้สามารถเลือกการประมวลผลตามลำดับก่อนหลังได้ โดยคำนึงถึง priority เป็นสำคัญ 5. ระบบมัลติโปรแกรมมิ่ง (Multiprogramming)การทำงานที่โหลดโปรแกรมไปไว้ในหน่วยความจำหลัก และพร้อมที่จะประมวลผลได้ทันที ระบบปฏิบัติการจะเลือกงานเข้าไปประมวลผลจนกว่าจะหยุดคอยงานบางอย่าง ในช่วงที่หยุดรอจะดึงงานเข้าไปประมวลผลต่อทันที ทำให้มีการใช้ซีพียูได้อย่างมีประสิทธิภาพ 6. ระบบแบ่งเวลา (Time-sharing หรือ Multitasking)เป็นการขยายระบบ multiprogramming ทำให้สามารถสับเปลี่ยนงานของคนหลาย ๆ คนเข้าสู่ซีพียู ซึ่งการสับเปลี่ยนที่ทำด้วยความเร็วสูงจะทำให้ผู้ใช้รู้สึกเหมือนครอบครองซีพียูอยู่เพียงผู้เดียว 7. ระบบเรียลไทม์ (Real-time system)จุดประสงค์อีกอย่างหนึ่งของ ระบบปฏิบัติการ คือ ระบบเวลาจริง(Real-time system) หมายถึงการตอบสนองทันที เช่นระบบ Sensor ที่ส่งข้อมูลให้คอมพิวเตอร์ เครื่องมือทดลองทางวิทยาศาสตร์ ระบบภาพทางการแพทย์ ระบบควบคุมในโรงงานอุตสาหกรรม ระบบหัวฉีดในรถยนต์ ระบบควบคุมการยิง ระบบแขนกล และเครื่องใช้ในครัวเรือนทั้งหมดReal-time แบ่งได้ 2 ระบบ1. Hard real-time system เป็นระบบที่ถูกรับรองว่าจะได้รับการตอบสนองตรงเวลา และหยุดรอไม่ได้2. Soft real-time system เป็นระบบ less restrictive type ที่สามารถรอให้งานอื่นทำให้เสร็จก่อนได้ 8. ระบบคอมพิวเตอร์ส่วนบุคคล (Personal Computer System)ปัจจุบันคอมพิวเตอร์ราคาถูกลง มีการพัฒนาอุปกรณ์ต่าง ๆ อย่างต่อเนื่อง ทั้งแป้นพิมพ์ เมาส์ จอภาพ หน่วยความจำ หน่วยประมวลผล เป็นต้น และการใช้คอมพิวเตอร์ไม่ได้มุ่งเน้นด้านธุรกิจเพียงอย่างเดียว แต่นำไปใช้เพื่อความบันเทิงในบ้านมากขึ้น และกลายเป็นสิ่งจำเป็นสำหรับทุกองค์กร นอกจากคอมพิวเตอร์แบบตั้งโต๊ะ(Desktop) ยังมีคอมพิวเตอร์แบบสมุดโน๊ต(Notebook) และคอมพิวเตอร์มือถือ (PDA) ปัจจุบันมีโทรศัพท์มือถือที่ทำงานแบบคอมพิวเตอร์ และใช้ดูหนังฟังเพลง หรือประมวลผลต่าง ๆ ที่ซับซ้อนมากขึ้น ใกล้เคียงกับคอมพิวเตอร์แบบตั้งโต๊ะยิ่งขึ้น 9. ระบบเวอร์ชวลแมชีน (Virtual machine)เครื่องเสมือน ทำให้ผู้ใช้คอมพิวเตอร์รู้สึกเหมือนใช้คอมพิวเตอร์เพียงคนเดียว แต่ในความเป็นจริงจะบริการให้ผู้ใช้หลายคน ในหลายโปรเซส โดยใช้เทคโนโลยี Virtual machine บริการงานต่าง ๆ ให้กับผู้ใช้ได้หลาย ๆ งานพร้อมกัน 10. ระบบมัลติโปรเซสเซอร์ (Multiprocessor system)Symmetric-multiprocessingการประมวลผลแบบสมมาตร หมายถึงการประมวลผลหลายโปรเซสเซอร์ที่ไม่มีโปรเซสเซอร์ตัวใดรับโหลดมากกว่าตัวอื่นAsymmetric-multiprocessingการประมวลผลแบบไม่สมมาตร หมายถึงการมีโปรเซสเซอร์ตัวหนึ่งเป็นตัวควบคุม และแบ่งงานแต่ละแบบให้โปรเซสเซอร์แต่ละตัวตามความเหมาะสม 11. ระบบแบบกระจาย (Distributed system)ระบบเครือข่าย ที่กระจายหน้าที่ กระจายการเป็นศูนย์บริการ และเชื่อมต่อเข้าด้วยกัน ด้วยจุดประสงค์ต่าง ๆ กัน ในมาตรฐาน TCP/IP ซึ่งเป็นที่ยอมรับทั้ง Windows, Linux, Unix และ Mac ทำให้ทั้งหมดสามารถสื่อสารกันรู้เรื่องเข้าใจ และก่อให้เกิดประโยชน์ร่วมกัน 1.1 ประเภทของเครื่องคอมพิวเตอร์ อ้างอิงจาก http://www.nectec.or.th/courseware/computer/comp-using/index.html1.1.1 ซุปเปอร์คอมพิวเตอร์ (Super computer)คอมพิวเตอร์ขนาดใหญ่ มีกำลังมากที่สุด ราคาแพงที่สุด สามารถประมวลผลคำสั่งได้นับพันล้านคำสั่งในหนึ่งวินาที มักใช้เก็บข้อมูลขนาดใหญ่ และต้องการความเร็วสูง เช่น สถิติประชากร การขุดเจาะน้ำมัน พยากรณ์อากาศ หรือวิจัยอาวุธ เป็นต้นซูเปอร์คอมพิวเตอร์ (Supercomputer) เป็นคอมพิวเตอร์ที่มีสมรรถนะในการทำงานสูงกว่า คอมพิวเตอร์แบบอื่น ดังนั้นจึงมีผู้เรียกอีกชื่อหนึ่งว่า คอมพิวเตอร์สมรรถนะสูง (High Performance Computer) คอมพิวเตอร์ประเภทนี้ สามารถคำนวนเลขที่มีจุดทศนิยม ด้วยความเร็วสูงมาก ขนาดหลายร้อยล้านจำนวนต่อวินาที งานที่ให้คอมพิวเตอร์ประเภทนี้ทำแค่ 1 วินาที ถ้าหากเอามาให้คนอย่างเราคิด อาจจะต้องใช้เวลานานกว่าร้อยปี ด้วยเหตุนี้ จึงเหมาะที่จะใช้คอมพิวเตอร์ประเภทนี้ เมื่อต้องมีการคำนวนมากๆ อย่างเช่น งานวิเคราะห์ภาพถ่าย จากดาวเทียมอุตุนิยมวิทยา หรือดาวเทียมสำรวจทรัพยากร งานวิเคราะห์พยากรณ์อากาศ งานทำแบบจำลองโมเลกุล ของสารเคมี งานวิเคราะห์โครงสร้างอาคาร ที่ซับซ้อน คอมพิวเตอร์ประเภทนี้ มีราคาค่อนข้างแพง ปัจจุบันประเทศไทย มีเครื่องซูเปอร์คอมพิวเตอร์ Cray YMP ใช้ในงานวิจัย อยู่ที่ห้องปฏิบัติการคอมพิวเตอร์สมรรถภาพสูง (HPCC) ศูนย์เทคโนโลยีอิเล็กทรอนิกส์ และคอมพิวเตอร์แห่งชาติ ผู้ใช้เป็นนักวิจัยด้านวิศวกรรม และวิทยาศาสตร์ทั่วประเทศ บริษัทผู้ผลิตที่เด่นๆ ได้แก่ บริษัทเครย์ รีเสิร์ซ (Cray Research), บริษัท เอ็นอีซี (NEC) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]');}[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]1.1.2 เมนเฟรมคอมพิวเตอร์ (Mainframe computer)คอมพิวเตอร์ขนาดใหญ่ แต่เล็กกว่า super computer นิยมใช้งานกับธุรกิจขนาดใหญ่ เช่น ธนาคาร โรงแรม หรือ server ขององค์การขนาดใหญ่คอมพิวเตอร์ที่มีสมรรถนะสูงมาก แต่ยังต่ำกว่าซูเปอร์คอมพิวเตอร์ คือปกติสามารถทำงานได้รวดเร็ว หลายสิบล้านคำสั่งต่อวินาที สำหรับสาเหตุที่ได้ชื่อว่า เมนเฟรมคอมพิวเตอร์ ก็เพราะครั้งแรกที่สร้างคอมพิวเตอร์ลักษณะนี้ได้สร้างไว้บนฐานรองรับ ที่เรียกว่า คัสซี่ (Chassis) โดยมีชื่อเรียกฐานรองรับนี้ว่า เมนเฟรม นั่นเองเหมาะกับการใช้งาน ทั้งในด้านวิศวกรรม วิทยาศาสตร์ และธุรกิจ โดยเฉพาะงานที่เกี่ยวข้องกับข้อมูลจำนวนมากๆ เช่น งานธนาคาร ซึ่งต้องตรวจสอบบัญชีลูกค้าหลายคน งานของสำนักงานทะเบียนราษฎร์ ที่เก็บรายชื่อประชาชนประมาณ 60 ล้านคน พร้อมรายละเอียดต่างๆ งานจัดการบันทึกการส่งเงิน ของผู้ประกับตนหลายล้านคน ของสำนักงานประกันสังคม กระทรวงแรงงาน คอมพิวเตอร์เมนเฟรม ที่มีชื่อเสียงมาก คือ เครื่องของบริษัท IBMในปัจจุบัน ความนิยมใช้เครื่องเมนเฟรม ในหน่วยงานต่างๆ ได้ลดน้อยลงมาก เพราะราคาเครื่องค่อนข้างแพง การใช้งานค่อนข้างยาก และมีผู้รู้ด้านนี้ค่อนข้างน้อย สถานศึกษาที่มีเครื่องระดับนี้ไว้ใช้สอน ก็มีเพียงไม่กี่แห่ง เหตุผลสำคัญอีกประการหนึ่งคือ คอมพิวเตอร์ขนาดเล็กกว่า ได้รับการพัฒนาให้มีสมรรถนะมากขึ้น จนสามารถทำงานได้เท่ากับเครื่องเมนเฟรม แต่ราคาถูกกว่า อย่างไรก็ตามเครื่องเมนเฟรม ยังคงมีความจำเป็น ในงานที่ต้องใช้ข้อมูลมากๆ พร้อมๆ กันอยู่ต่อไปอีก ทั้งนี้เพราะ เครื่องเมนเฟรมสามารถพ่วงต่อ และควบคุมอุปกรณ์รอบข้าง (Peripheral) เช่น เครื่องพิมพ์ เครื่องขับเทปแม่เหล็ก เครื่องขับจานแม่เหล็ก ฯลฯ ได้เป็นจำนวนมากในเวลาเดียวกันif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.nexconsulting.com/images/mainframe.gif[/img]');}[img]http://www.nexconsulting.com/images/mainframe.gif[/img]1.1.3 มินิคอมพิวเตอร์ (Mini computer)คอมพิวเตอร์ที่ใช้ในธุรกิจขนาดกลาง และเล็ก ต้องการความสามารถในการประมวลผลสูง และราคาไม่สูงเกินไป เช่น AS/400 เป็นต้นเป็นคอมพิวเตอร์ที่มีสมรรถนะน้อยกว่าเครื่องเมนเฟรม คือทำงานได้ช้ากว่า และควบคุมอุปกรณ์รอบข้างได้น้อยกว่า อย่างไรก็ตามจุดเด่นสำคัญ ของเครื่องมินิคอมพิวเตอร์ ก็คือ ราคาย่อมเยากว่าเมนเฟรม การใช้งานก็ไม่ต้องใช้ บุคลากรมากนัก นอกจากนั้น ยังมีผู้ที่รู้วิธีใช้มากกว่าด้วย เพราะเครื่องประเภทนี้ มีใช้ตามสถานศึกษา ระดับอุดมศึกษาหลายแห่งมินิคอมพิวเตอร์ เหมาะกับงานหลากหลายประเภท คือใช้ได้ทั้งในงานวิศวกรรม วิทยาศาสตร์ อุตสาหกรรม เครื่องที่มีใช้ตามหน่วยงานราชการระดับกรมส่วนใหญ่ มักจะเป็นเครื่องประเภทนี้if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]');}[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]1.1.4 คอมพิวเตอร์ส่วนบุคคล (Personal computer)คอมพิวเตอร์แบบตั้งโต๊ะ(Desktop computer) หาซื้อได้ง่าย ราคาไม่แพง ใช้งานได้หลายประเภทเป็นคอมพิวเตอร์ขนาดเล็ก และใช้ทำงานคนเดียว จึงนิยมเรียกอีกชื่อหนึ่งว่าคอมพิวเตอร์ส่วนบุคคล (Personal Computer) เป็นคอมพิวเตอร์ใช้งานที่พบได้อย่างแพร่หลาย จัดว่าเป็นเครื่องคอมพิวเตอร์ขนาดเล็ก ทั้งระบบใช้งานครั้งล่ะคนเดียว หรือใช้งานในลักษณะเครือข่าย แบ่งได้หลายลักษณะตามขนาด เช่นเครื่องคอมพิวเตอร์ส่วนบุคคลแบบตั้งโต๊ะ (Personal Computer) หรือแบบพกพา (Portable Computer) หรือแบ่งตามผู้ผลิต ได้แก่ เครื่องกลุ่ม IBM, IBM Compatible และแมคอินทอช (Macintosh) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]1.1.5 โน๊ตบุค (Notebook computer)คอมพิวเตอร์ส่วนบุคคล ที่สามารถพกพาไปในที่ต่าง ๆ เช่นบนรถ บนเครื่องบิน มีขนาดเท่าสมุดโน๊ต และมีราคาสูงกว่า Personal computer เล็กน้อยif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]1.1.6 พีดีเอ (PDA: Personal Digital Assistant)คอมพิวเตอร์ขนาดเล็กเท่าฝ่ามือ ปัจจุบันเป็นโทรศัพท์ได้ด้วย ทำให้ไม่ต้องพกอุปกรณ์หลายชิ้น แต่ความสามารถด้านการประมวลผลยังไม่สามารถเทียบเท่า Personal computerif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]p900.jpg[/img]');}[img]p900.jpg[/img]1.1.7 คอมพิวเตอร์เครือข่าย (Network computer)คอมพิวเตอร์ที่นำมาประยุกต์ให้เชื่อมต่อคอมพิวเตอร์หลาย ๆ เครื่อง เข้าด้วยกัน และนำมาใช้ประมวลผลให้เกิดประสิทธิภาพสูงสุด เช่น การ share ข้อมูลในระบบอินเทอร์เน็ต เป็นต้นการจำแนกคอมพิวเตอร์ ตามลักษณะวิธีการทำงานภายในเครื่องคอมพิวเตอร์แอนะล็อกคอมพิวเตอร์ (Analog computer) เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ไม่ได้ใช้ค่าตัวเลขเป็นหลักของการคำนวณ แต่จะใช้ค่าระดับแรงดันไฟฟ้าแทน ไม้บรรทัดคำนวณ อาจถือเป็นตัวอย่างหนึ่งของแอนะล็อกคอมพิวเตอร์ ที่ใช้ค่าตัวเลขตามแนวความยาวไม้บรรทัดเป็นหลักของการคำนวณ โดยไม้บรรทัดคำนวณจะมีขีดตัวเลขกำกับอยู่ เมื่อไม้บรรทัดหลายอันมรประกบรวมกัน การคำนวณผล เช่น การคูณ จะเป็นการเลื่อนไม้บรรทัดหนึ่งไปตรงตามตัวเลขของตัวตั้งและตัวคูณของขีดตัวเลขชุดหนึ่ง แล้วไปอ่านผลคูณของขีดตัวเลขอีกชุดหนึ่งแอนะล็อกคอมพิวเตอร์แบบอิเล็กทรอนิกส์จะใช้หลักการทำนองเดียวกัน โดยแรงดันไฟฟ้าจะแทนขีดตัวเลขตามแนวยาวของไม้บรรทัด แอนะล็อกคอมพิวเตอร์จะมีลักษณะเป็นวงจรอิเล็กทรอนิกส์ที่แยกส่วนทำหน้าที่เป็นตัวกระทำและเป็นฟังก์ชันทางคณิตศาสตร์ จึงเหมาะสำหรับงานคำนวณทางวิทยาศาสตร์และวิศวกรรมที่อยู่ในรูปของสมการคณิตศาสตร์ เช่น การจำลองการบิน การศึกษาการสั่งสะเทือนของตึกเนื่องจากแผ่นดินไหว ข้อมูลตัวแปรนำเข้าอาจเป็นอุณหภูมิความเร็วหรือความดันอากาศ ซึ่งจะต้องแปลงให้เป็นค่าแรงดันไฟฟ้า เพื่อนำเข้าแอนะล็อกคอมพิวเตอร์ผลลัพธ์ที่ได้ออกมาเป็นแรงดันไฟฟ้าแปรกับเวลาซึ่งต้องแปลงกลับไปเป็นค่าของตัวแปรที่กำลังศึกษา ในปัจจุบันไม่ค่อยพบเห็นแอนะล็อกคอมพิวเตอร์เท่าไรนักเพราะผลการคำนวณมีความละเอียดน้อย ทำให้มีขีดจำกัดใช้ได้กับงานเฉพาะบางอย่างเท่านั้นดิจิทัลคอมพิวเตอร์ (Digital computer) คอมพิวเตอร์ที่พบเห็นทั่วไปในปัจจุบัน จัดเป็นดิจิทัลคอมพิวเตอร์แทบทั้งหมด ดิจิทัลคอมพิวเตอร์เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ใช้งานเกี่ยวกับตัวเลข มีหลักการคำนวณที่ไม่ใช่แบบไม้บรรทัดคำนวณ แต่เป็นแบบลูกคิด โดยแต่และหลักของลูกคิดคือ หลักหน่วย หลักร้อย และสูงขึ้นไปเรื่อย ๆ เป็นระบบเลขฐานสินที่แทนตัวเลขจากศูนย์ถ้าเก้าไปสิบตัวตามระบบตัวเลขที่ใช้ในชีวิตประจำวัน ค่าตัวเลขของการคำนวณในดิจิทัลคอมพิวเตอร์จะแสดงเป็นหลักเช่นเดียวกัน แต่จะเป็นระบบเลขฐานสองที่มีสัญลักษณ์ตัวเลขเพียงสองตัว คือเลขศูนย์กับเลขหนึ่งเท่านั้น โดยสัญลักษณ์ตัวเลขทั้งสองตัวนี้ จะแทนลักษณะการทำงานภายในซึ่งเป็นสัญญาณไฟฟ้าที่ต่างกัน การคำนวณภายในดิจิทัลคอมพิวเตอร์จะเป็นการประมวลผลด้วยระบบเลขฐานสองทั้งหมด ดังนั้นเลขฐานสิบที่เราใช้และคุ้นเคยจะถูกแปลงไปเป็นระบบเลขฐานสองเพื่อการคำนวณภายในคอมพิวเตอร์ ผลลัพธ์ที่ได้ก็ยังเป็นเลขฐานสองอยู่ ซึ่งคอมพิวเตอร์จะแปลงเป็นเลขฐานสิบเพื่อแสดงผลให้ผู้ใช้เข้าใจได้ง่าย 1.2 องค์ประกอบของคอมพิวเตอร์1.2.1 ฮาร์ดแวร์ (Hardware)องค์ประกอบของคอมพิวเตอร์ที่จับต้องได้ แบ่งเป็น 4 หน่วย คือ Input unit, CPU(Central Processing Unit), Storage และ Output unitif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]');}[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]1.2.2 ซอฟต์แวร์ (Software)คือ โปรแกรม หรือชุดคำสั่งที่เขียนขึ้น เพื่อสั่งให้คอมพิวเตอร์ทำงาน เป็นตัวเชื่อมระหว่าง Hardware กับผู้ใช้ ให้สามารถสื่อสารกันได้1.2.3 บุคลากร (Peopleware)บุคคลผู้สั่งให้คอมพิวเตอร์ โดยใช้ซอฟต์แวร์ ซึ่งเป็นภาษาที่คอมพิวเตอร์เข้าใจ ซึ่งบุคคลจะมีหลายบทบาทในการเข้าใช้คอมพิวเตอร์- นักวิเคราะห์ และออกแบบระบบ (System analyst and design)- โปรแกรมเมอร์ (Programmer)- ผู้บริหารฐานข้อมูล (Database administrator)- ผู้ปฏิบัติการ (Operator)- ผู้ใช้ (User)- ผู้บริหาร (Administrator)1.2.4 ข้อมูล (Data)องค์ประกอบสำคัญที่ทำให้คอมพิวเตอร์มีค่า เพราะข้อมูลที่เก็บในคอมพิวเตอร์ จะนำไปใช้ในการประกอบการตัดสินใจ หรือช่วยการแสดงผล หรือนำเสนอในรูปแบบต่าง ๆ ข้อมูลบางอย่างอาจมีค่ามากกว่า hardware เสียอีก1.2.5 กระบวนการทำงาน (Procedure)การทำงานให้ได้ผลตามต้องการต้องมีลำดับการทำงาน หรือขั้นตอนที่เป็นไปได้ในทางปฏิบัติ จึงต้องมีคู่มือผู้ใช้ หรือคู่มือระบบ ให้ผู้ใช้จัดการกับคอมพิวเตอร์ และใช้งานคอมพิวเตอร์ได้อย่างมีประสิทธิภาพที่สุด
1.3 ปฏิบัติการสำรวจข้อมูล และถอดประกอบเครื่อง- จัดคอมพิวเตอร์ให้ฝึกถอดประกอบคอมพิวเตอร์จากห้องปฏิบัติการ - มอบหมายให้เดินสำรวจการใช้คอมพิวเตอร์ในสถาบัน - ให้ค้นข้อมูลคอมพิวเตอร์ที่ใช้ในองค์การต่าง ๆ และยกตัวอย่างการใช้ประโยชน์ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบคอมพิวเตอร์ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
2. ระบบปฏิบัติการ(Operating System)
2.1 หน้าที่ของระบบปฏิบัติการ2.1.1 การติดต่อกับผู้ใช้ หรือยูเซอร์อินเทอร์เฟซ (User interface)ผู้ใช้สามารถสั่งให้คอมพิวเตอร์ทำงาน จึงเป็นหน้าที่ของระบบปฏิบัติการในเป็นตัวกลาง และเตรียมสภาพแวดล้อมต่าง ๆ ให้กับผู้ใช้ในการสั่งงานคอมพิวเตอร์ หลังจากนั้นจะใช้คำสั่งผ่านทาง System call เพื่อปฏิบัติสิ่งที่ผู้ใช้ต้องการใช้สามารถติดต่อหรือควบคุมการทำงานของเครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการได้ โดยระบบปฏิบัติการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพื่อรอรับคำสั่งจากผู้ใช้โดยตรง ตัวระบบปฏิบัติการจึงเป็นตัวกลางที่ทำหน้าที่เชื่อมโยงระหว่างผู้ใช้กับฮาร์ดแวร์ของเครื่อง นอกจากนี้ผู้ใช้อาจเขียนโปรแกรมเพื่อใช้งานกรณีนี้ผู้ใช้ก็สามารถติดต่อกับระบบปฏิบัติการได้โดยผ่านทาง System Call2.1.2 ควบุคมดูแลอุปกรณ์ (Control devices)ระบบปฏิบัติการมีหน้าที่ควบคุมอุปกรณ์ต่าง ๆ ให้ทำงานสอดคล้องกับความต้องการ โดยไม่เกิดข้อผิดพลาด เช่นการควบคุมดิสก์ จอภาพ หรือซีดีรอม เป็นต้น ระบบปฏิบัติการจะรับคำสั่งจากผู้ใช้ และเรียกใช้ System call ขึ้นมาทำงาน ให้ได้ผลตามต้องการให้ความสะดวกแก่ผู้ใช้ในการใช้งานอุปกรณ์ต่างๆ ได้ง่าย เช่น การเข้าถึงข้อมูลในแฟ้มหรือติดต่อกับอุปกรณ์รับ/แสดงผลข้อมูล จึงทำให้ผู้พัฒนาโปรแกรมไม่จำเป็นต้องเขียนโปรแกรมเพื่อควบคุมตัวขับดิสก์เพราะระบบปฏิบัติการจัดบริการให้มีคำสั่งสำหรับติดต่อกับอุปกรณ์เหล่านี้ได้อย่างง่ายๆเนื่องจากผู้ใช้เครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการ อาจไม่มีความจำเป็นต้องมีความรู้ความเข้าใจถึงหลักการทำงานภายในของเครื่องดังนั้น ระบบปฏิบัติการจึงมีหน้าที่ควบคุมการทำงานของโปรแกรม การทำงานของอุปกรณ์ต่างๆ เพื่อให้การทำงานของระบบเป็นไปอย่างถูกต้องและสอดคล้องกัน ระบบปฏิบัติการจึงมีส่วนประกอบของหน้าที่ต่างๆ ที่ควบคุมอุปกรณ์แต่ละชนิดที่มีหน้าที่แตกต่างกันไป โดยผู้ใช้อาจเรียกใช้ผ่านทาง System Call หรือเขียนโปรแกรมขึ้นมาควบคุมอุปกรณ์เหล่านั้น2.1.3 จัดสรรทรัพยากร หรือรีซอร์สระบบ (Resources management)เพราะทรัพยากรของระบบมีจำกัด และมีหลายประเภท ระบบปฏิบัติการต้องบริการให้ผู้ใช้ ได้ใช้ทรัพยากรต่าง ๆ ให้เป็นไปอย่างต่อเนื่อง ตัวอย่างทรัพยากร ที่ระบบปฏิบัติการต้องจัดการ เช่น ซีพียู หน่วยความจำ ซีดีรอม เครื่องพิมพ์ เป็นต้นทรัพยากรหลักที่ต้องมีการจัดสรร ได้แก่ หน่วยประมวลผลกลาง หน่วยความจำหลัก อุปกรณ์รับ/แสดงผลข้อมูล และแฟ้มข้อมูล เช่น การจัดลำดับให้บริการใช้เครื่องพิมพ์การสับหลีกงานหลายงานในหน่วยความจำหลักและการจัดสรรหน่วยความจำหลักให้กับโปรแกรมทั้งหลาย ทรัพยากร คือสิ่งที่ซึ่งถูกใช้ไปเพื่อให้โปรแกรมดำเนินไป 2.2 องค์ประกอบของระบบปฏิบัติการ2.2.1 การจัดการโปรเซส (Process management)2.2.2 การจัดการหน่วยความจำ (Memory management)2.2.3 การจัดการไฟล์ (File management)2.2.4 การจัดการอินพุต / เอาต์พุต (I/O system management)2.2.5 การจัดการสื่อจัดเก็บข้อมูล (Storage managment)2.2.6 เน็ตเวิร์ค (Networking)2.2.7 ระบบป้องกัน (Protection system)2.2.8 ระบบตัวแปลคำสั่ง (Command-interpreter system) 2.3 วิวัฒนาการของระบบปฏิบัติการ2.3.1 ยุคแรก (ค.ศ.1945 - 1954)ใช้หลอดสูญญากาศ ยังไม่มี OS และใช้ CARD I/O รับ-ส่งข้อมูล2.3.2 ยุคที่ 2 (ค.ศ.1955 - 1964)ใช้ทรานซิสเตอร์ เป็น Mainframe เริ่มใช้ Fortran, Cobol โดยใช้ Batch processing ควบคุม2.3.3 ยุคที่ 3 (ค.ศ.1965 - 1979)ใช้ IC(Integrated circuit) เริ่มใช้ Basic, Pascal เริ่มใช้ Multiprogramming และ time sharing2.3.4 ยุคที่ 4 (ค.ศ.1980 - ปัจจุบัน)ใช้ Multi-mode และ Virtual machine เริ่มสื่อสารระหว่างเครือข่าย (Internet) 2.4 โครงสร้างระบบปฏิบัติการ2.4.1 องค์ประกอบของระบบ หรือคอมโพแนนต์ของระบบ (System component)ระบบแบ่งงานออกเป็นส่วนย่อยต่าง ๆ เรียกว่า component เช่น input, output หรือ function ซึ่งหน้าที่ของระบบ คือจัดการส่วนย่อยต่าง ๆ ให้ทำงานร่วมกันได้อย่างมีประสิทธิภาพ ซึ่งมีงานหลาย ๆ อย่างที่ต้องจัดการ ดังนี้2.4.1.1 การจัดการโปรเซส (Process management)2.4.1.2 การจัดการหน่วยความจำ (Memory management)2.4.1.3 การจัดการไฟล์ (File management)2.4.1.4 การจัดการอินพุต / เอาต์พุต (Input/Output management)2.4.1.5 การจัดการสื่อจัดเก็บข้อมูล (Storage management)2.4.1.6 เน็ตเวิร์ค (Networking)2.4.1.7 ระบบป้องกัน (Protection system)2.4.1.8 ระบบตัวแปลคำสั่ง (Interpreter system)2.4.2 เซอร์วิสของระบบปฏิบัติการ (Operating system services)บริการพื้นฐานที่ระบบปฏิบัติการต้องมีให้กับผู้ใช้ ที่น่าสนใจมีดังนี้2.4.2.1 การเอ็กซิคิวต์โปรแกรม2.4.2.2 การปฏิบัติกับอินพุต/เอาต์พุต2.4.2.3 การจัดการกับระบบไฟล์2.4.2.4 การติดต่อสื่อสาร2.4.2.5 การตรวจจับข้อผิดพลาด2.4.2.6 การแชร์รีซอร์ส2.4.2.7 การป้องกัน2.4.3 System callsทำหน้าที่ กำหนดอินเทอร์เฟสระหว่าง process กับ operating system เพื่อการควบคุม และจัดการระบบ โดยแบ่งออกเป็น 5 กลุ่ม2.4.3.1 การควบคุมโปรเซส2.4.3.2 การจัดการกับไฟล์2.4.3.3 การจัดการดีไวซ์2.4.3.4 การบำรุงรักษาข้อมูล2.4.3.5 การติดต่อสื่อสาร 2.5 ปฏิบัติการตรวจสอบประสิทธิภาพ- ให้นักศึกษาฝึกติดตั้ง และใช้งานระบบปฏิบัติการต่าง ๆ เช่น DOS, Windows และ Linux - ชี้การทำงานแต่ละองค์ประกอบของระบบปฏิบัติการ - ฝึกใช้โปรแกรมตรวจสอบประสิทธิภาพของระบบปฏิบัติการ หรืออุปกรณ์ต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบปฏิบัติการ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
3. การจัดการโปรเซส(Process Management)
3.1 องค์ประกอบของโปรเซส1. หมายเลขโปรเซส (Process id)2. โค้ดโปรแกรม (Program code)3. ข้อมูล (Data)4. บล็อกควบคุมโปรเซส (Process control block)4.1 พอยเตอร์ (Pointer)4.2 สถานะของโปรเซส (Process state)4.3 หมายเลขโปรเซส (Program id)4.4 ตัวนับจำนวน (Program counter)4.5 รีจิสเตอร์ (Register)4.6 ข้อมูลการจัดเวลาของซีพียู (CPU scheduling information)4.7 ข้อมูลการจัดการหน่วยความจำ (Memory management information)4.8 ข้อมูลแอ็กเคาต์ (Account information)4.9 ข้อมูลสถานะอินพุต/เอาต์พุต (I/O status information)pointerprocess stateprocess idprocess counterregisterslist of open files::::::5. PSW (Program status word)6. คุณสมบัติของโปรเซส (Properties of process)6.1 ลำดับความสำคัญของโปรเซส (Priority)6.2 อำนาจหน้าที่ของโปรเซส (Authority)6.3 คุณสมบัติอื่นที่ระบบปฏิบัติการกำหนดให้มี 3.2 สถานะของโปรเซสสถานะของโปรเซสแบ่งได้ 6 สถานะ1. สถานะเริ่มต้น (New : The process is being created.)2. สถานะพร้อม (Ready : The process is waiting to be assigned to a processor.)3. สถานะรัน (Running : Instructions are being executed.)4. สถานะรอ (Wait : The process is waiting for some event to occur.)5. สถานะบล็อก (Block : The process is blocked for some event to occur.)6. สถานะสิ้นสุด (Terminate : The process has finished execution.)สถานะของโปรเซสแบ่งได้อีกแบบมี 4 สถานะ1. สถานะพร้อม (ready state) คือสถานะที่โปรเซสพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการรันของโปรเซส2. สถานะรัน (running state) คือสถานะที่โปรเซสกำลังครอบครองซีพียูอยู่ มีการรันของโปรเซสจริงๆ เพราะโปรเซสใช้ซีพียูเอ็กซีคิ้วคำสั่ง หรือโค้ดโปรแกรมของโปรเซสนั้น3. สถานะติดขัด (blocked state) คือสถานะที่โปรเซสหยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสไม่จำเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู ซึ่งจะทำให้โปรเซสอื่นเข้ามาครอบครองซีพียูในช่วงนี้ได้4. สถานะพัก (suspend state) คือสถานะที่โปรเซสไม่มีการทำงานใดๆ หยุดนิ่งอย่างสมบูรณ์ ไม่มีการรอการใช้ซีพียูหรือเหตุการณ์ใดๆ ให้เกิดขึ้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]img005.gif[/img]');}[img]img005.gif[/img] 3.3 การจัดเวลาโปรเซสระบบมัลติโปรแกรมมิ่ง คือ การจัดให้ process สามารถเข้าประมวลผลได้ตลอดเวลา ระบบแบ่งเวลา คือ การสลับ process เข้าใช้ CPU บ่อย เท่าที่ผู้ใช้รู้สึกว่าทุก process ตอบสนองได้ตลอดเวลา 1. Device queue คือ การจัดคิวของโปรเซสต่าง ๆ เช่น คิวของ I/O คิวของการรอ child process หรือคิวของอินเทอร์รัพต์ เป็นต้นเมื่อกระบวนการเข้าไปในระบบ จะถูกส่งเข้า job queue ซึ่ง queue จะรวบรวม process ทั้งหมดในระบบ และมีคำหลาย ๆ คำเกี่ยวกับการเข้าคิว เช่น ready, blocked และ running แต่ถ้า process รอเข้า I/O devices จะเรียกว่า device queue ซึ่งทุกอุปกรณ์จะมี device queue ของตนเองprocesses จะย้ายไปมาระหว่าง queue ต่าง ๆ โดยระบบปฏิบัติการมีหน้าที่เลือกตามวัตถุประสงค์ และความเหมาะสม ซึ่งถูกจัดการโดย scheduler สำหรับแต่ละ Device queue ต่างก็มี scheduler ของตนเอง และมี scheduler ส่วนกลาง ควบคุมการทำงานของ process ทั้งหมดอีกครั้งหนึ่งif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]devicequeue.png[/img]');}[img]devicequeue.png[/img] 2. Contect switch คือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบหลังประมวลผล Process หนึ่งเรียบร้อย ต้องย้ายไปยัง Process ใหม่ หรือ การย้ายจากหน่วยประมวลผลไปยังอีกกระบวนการหนึ่ง ต้องการ saving the stat of the old process and loading the saved state for the new process ซึ่งงานนี้ถูกเรียกว่า context switch สำหรับคำว่า context of process อาจแทนด้วย PCB of a process Mutual exclusionคือ การกีดกั้น ในบริเวณ หรือส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่ ๆ เป็น Critical region ซึ่งมีคุณสมบัติอยู่ 4 ประการคุณสมบัติของ mutual exclusionไม่มี process อยู่ใน critical region พร้อมกันไม่มีสมมติฐาน และข้อจำกัด ด้านความเร็ว หรือจำนวนซีพียูมาเป็นปัจจัยไม่มี process นอก critical region ที่ block การทำงานของ process อื่นไม่มี process ที่รอเข้าใจ critical region ตลอดเวลา การแก้ปัญหา Mutual exclusion with busy waitingDisable interruptLock variableStrict alternationPeterson's solutionTSL instruction 3.4 การปฏิบัติการบนโปรเซสขณะคอมพิวเตอร์ทำงานต้องการสร้าง และลบ process ตลอดเวลา จึงต้องมีการควบคุมให้ระบบคงสภาพอยู่ตลอดเวลา โปรเซสแม่ (Parent process) และโปรเซสลูก (Children process) ต้องถูกสร้าง และหยุดทำงานได้อย่างสอดคล้อง เพื่อให้เข้าใจเรื่องของ process จึงขอแสดง tree of process on a typical UNIX system ประกอบการอธิบายif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]unixfilesystem.png[/img]');}[img]unixfilesystem.png[/img] 1. การสร้างโปรเซส (Process creation)ถ้า process สร้าง process ขึ้นใหม่ เมื่อพิจารณาการ execute1. โปรเซสแม่ยังประมวลผลต่อไป พร้อมโปรเซสลูก(The parent continues to execute concurrently with its children.)2. โปรเซสแม่ต้องรอให้โปรเซสลูกบางตัว หรือโปรเซสลูกทั้งหมดสิ้งสุด จึงจะเริ่มประมวลผลได้ใหม่(The parent waits until some or all of its children have terminated.)ถ้า process สร้าง process ขึ้นใหม่ เมื่อพิจารณา address ของโปรเซสใหม่1. โปรเซสลูกเป็นสำเนาของโปรเซสแม่ คือใช้ address เดียวกับแม่(The child process is a duplicate of the parent process.)2. โปรเซสลูกมีตำแหน่งของ load address ของตนเอง(The child process has a program loaded into it.) 2. การสิ้นสุดของโปรเซส (Process termination)3 เหตุผลที่ โปรเซสแม่จะหยุดการประมวลผลของโปรเซสลูก1. โปรเซสลูกใช้ resource มากกว่าที่กำหนดไว้2. ไม่มีความจำเป็นต้องใช้โปรเซสนั้นอีกแล้ว3. โปรเซสแม่สิ้นสุด และ OS ไม่ยอมให้โปรเซสลูกทำงานต่อไป ตัวอย่าง process ที่ประมวลผลใน Linux[root@yn1 root]# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 1376 84 ? S Oct08 0:12 initroot 1482 0.0 0.0 1440 156 ? S Oct08 0:32 syslogd -m 0root 1486 0.0 0.0 1368 4 ? S Oct08 0:00 klogd -xrpc 1504 0.0 0.0 1540 0 ? SW Oct08 0:00 [portmap]rpcuser 1523 0.0 0.0 1680 0 ? SW Oct08 0:00 [rpc.statd]named 1620 0.0 1.9 41836 5040 ? S Oct08 6:16 [named]root 1635 0.0 0.1 3508 300 ? S Oct08 0:05 /usr/sbin/sshdroot 1649 0.0 0.1 2024 368 ? S Oct08 0:02 xinetd -stayaliveroot 1659 0.0 0.0 1596 88 ? S Oct08 0:00 /usr/sbin/vsftpdroot 1680 0.0 0.2 5920 548 ? S Oct08 0:52 [sendmail]smmsp 1689 0.0 0.1 5716 316 ? S Oct08 0:00 [sendmail]apache 9825 99.9 0.0 0 0 ? RW Oct08 15286:48 [httpd]root 10719 0.0 0.0 17200 96 ? S Oct18 0:02 /usr/sbin/httpdapache 15017 0.0 3.0 22708 7860 ? S Oct18 0:07 [httpd]apache 15018 0.0 2.8 23940 7312 ? S Oct18 0:06 [httpd]apache 18350 0.0 3.3 27072 8604 ? S 08:23 0:06 [httpd]root 22018 0.0 0.8 6268 2108 ? S 13:16 0:00 [sendmail]3.5 โปรเซสสื่อประสาน (Cooperating process)โปรเซสที่ประมวลผลในระบบอาจเป็นได้มีได้ 2 แบบคือโปรเซสอิสระ (Independent process) ซึ่งทำงานโดยไม่มีผลกระทบ หรือได้รับผลกระทบจากโปรเซสอื่น เป็นอิสระที่ไม่มีการแบ่งปันทรัพยากรร่วมกับใคร ส่วนโปรเซสสื่อประสาน (Cooperating process) อาจได้รับผลกระทบ หรือส่งผลกระทบต่อโปรเซสอื่น หรือกล่าวได้ว่ามีการใช้ทรัพยากรร่วมกับโปรเซสอื่น และเหตุที่ทำให้เกิดโปรเซสสื่อประสานอาจมีได้ดังนี้1. การแบ่งปันข่าวสารข้อมูลร่วมกัน (Information sharing)2. เพิ่มความเร็วในการคำนวณ (Computation speedup)3. แบ่งงานตามหน้าที่เป็นโมดูล (Modularity)4. ความสะดวก (Convenience) 3.6 การสื่อสารในโปรเซส (Interprocess communication : IPC)การสื่อสารในโปรเซส หรือระหว่างโปรเซสมีเรื่องที่ต้องพิจารณาหลายเรื่อง 3.6.1 ระบบการผ่านข่าวสาร (Message-passing system)การอำนวยความสะดวกของ IPC มีอย่างน้อย 2 กระบวนการคือ การส่งข่าวสาร Send(message) หรือ การรับข่าวสาร Receive(message) นอกจากนี้การบ่งบอกถึงการเชื่อมโยงข่าวสาร และการรับ-ส่งข่าว มีหลายวิธีดังนี้- Direct or indirect communication (ทางตรง)- Symmetric or asymmetric communication (สมมาตร)- Automatic or explicit buffering (Explicit = แน่นอน)- Send by copy or send by reference- Fixed-sized or variable-sized messages 3.6.2 การตั้งชื่อ (Naming) 3.6.2.1 Direct communicationทุกโปรเซสที่ติดต่อกันต้องมีการอ้างชื่ออย่างชัดเจน และแน่นอน เช่นการส่งข่าวสารจากโปรเซส A ไปโปรเซส B ก็ต้องระบุให้ชัดเจนว่าส่งจากไหนไปไหนsend(B,message) หมายถึง ส่งไปให้โปรเซส Breceive(A,message) หมายถึง รับจากโปรเซส A 3.6.2.2 Indirect communicationการติดต่อสื่อสารทางอ้อม เป็นการติดต่อผ่าน mailbox หรือ port ซึ่งทำหน้าที่เก็บโปรเซส แล้วส่งให้อีกโปรเซสหนึ่ง วิธีนี้ทำให้โปรเซสหนึ่งติดต่อโปรเซสอื่นผ่าน mail box ได้หลาย mail box เมื่อ share mail box ก็จะทำให้การสื่อสารมีประสิทธิภาพจากแนวคิดเรื่องการใช้ mail box ทำให้มีแบบของ mail box ขึ้น 3 แบบ1. Queue mailbox มาก่อนออกก่อน แต่มีขนาด block คงที่ ใส่มากเกินไปก็จะเต็ม (First In First Out)2. Pipe mailbox มีขนาดยืดหยุ่น ใส่ข้อมูบได้เท่าที่ต้องการ3. Stack mailbox มาก่อนออกหลัง (First In Last Out) 3.6.3 การซิงโครไนซ์ (Synchronization)การส่งข้อมูลระหว่างโปรเซสต้องใช้พื้นที่ในการเรียก send และ receive จึงต้องออกแบบให้การเรียกเป็นไปอย่างมีประสิทธิภาพ ซึ่งใช้ความรู้เรื่องการเข้า blocking และ nonblocking ไม่ให้เกิด deadlock ขึ้น จึงมีเรื่องต้องพิจารณา 4 เรื่องดังนี้- Blocking send : The sending process is blocked until the message is received by the receiving process or by the mailbox.- Nonblocking send : The sending process sends the message and resumes operation.- Blocking receive : The receiver blocks until a message is available.- Nonblocking receive: The receiver retrieves either a valid message or a null. 3.6.4 บัฟเฟอร์ (Buffering)โดยพื้นฐานแล้วการส่งข่าวสารผ่านคิว จะมีลักษณะคิวอยู่ 3 แบบ- Zero capacity ไม่มีคิวอยู่ คือไม่มีการคอย ผู้ส่งต้องหยุดรอจนกระทั่งผู้รับได้รับ- Bounded capacity คิวที่มีความยาวจำกัด หรือมีขอบเขตแน่นอน- Unbounded capacity คิวที่มีความยาวไม่จำกัด ผู้ส่งจะไม่ถูกปฏิเสธ 3.7 แบบของการประมวลผล1. การประมวลผลแบบเดี่ยว (Single processing) หรือ Sequential processing (one result / m cycles) 2. การประมวลผลแบบพหุ (Multi processing) หรือ Pipelining (one result / cycle) 3. การประมวลผลแบบขนาน (Parallel processing) หรือ Parallel processing (n results / m cycles)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]parallel_processing.gif[/img]');}[img]parallel_processing.gif[/img] 3.8 ปฏิบัติการฝึกเขียนแผนภาพ- ฝึกเขียนแผนภาพการทำงานของโปรเซส - ฝึกตรวจสอบโปรเซสที่กำลังประมวลผลในคอมพิวเตอร์ด้วยระบบปฏิบัติการต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดการโปรเซส จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
4. เทรด(Threads)
4.1 ความหมายของ ThreadsThread แปลว่า ด้ายThread คือ ส่วนประกอบย่อยของโปรเซส ถ้า thread ที่เป็นส่วนประกอบย่อยจะเรียกว่า Lightweight process(LWP) แต่ถ้าโปรเซสดั่งเดิมที่มีการควบคุมเพียง 1 thread แสดงว่าทำงานได้เพียง 1 งานจะเรียกว่า Heavyweight processโดยปกติ Process ที่มี 1 thread จะเรียกว่า Single thread แต่ถ้า 1 process มีหลาย thread จะเรียกว่า Multithread เพราะ ใน Process หนึ่งอาจมีได้หลาย Thread เช่น Web browser 1 หน้า อาจมีทั้งการ download ข้อมูลพร้อมกับการแสดง text แสดงรูปภาพ หรือ java มาแสดงในหน้าเดียวกันThread มี 2 ส่วนที่สัมพันธ์กัน1. User thread ง่ายที่จะถูกสร้าง และอาจถูกยกเลิกก่อนเข้า kernel thread ได้2. Kernel thread รองรับ user thread และปฏิบัติงานแต่ละ Thread ประกอบไปด้วย1. Thread ID หมายเลข Thread ใน process2. Program counter ใช้นับคำสั่งที่ประมวลผลอย่างเป็นลำดับ3. Register set ใช้เก็บค่าที่ทำงานอยู่4. Stack ใช้เก็บประวัติการประมวลผลโปรแกรมในปัจจุบันออกแบบให้ทำงานแบบ Multithread เช่น web browser ซึ่งควบคุมรูปภาพ การดึงข้อมูลจากเครือข่าย หรือ Word ที่แสดงภาพ ในขณะที่รอรับคำสั่งจากแป้นพิมพ์ และตรวจสอบไวยกรณ์ เป็นต้น1. Many-to-one modelหมายถึง Kernel thread 1 หน่วย กับ User thread หลายหน่วย เป็นการออกแบบที่จะยอมให้เพียง thread เดียวที่เข้าถึง kernel ในกรณีที่ thread ไป block system call จะทำให้ process ทั้งหมดถูก block ไปด้วย โดยโมเดลนี้ยอมให้สร้าง user thread ได้ตามต้องการ แต่ไม่สามารถประมวลผลได้พร้อมกัน เพราะยอมให้เข้าใช้ kernel thread ได้ครั้งละ thread เท่านั้น2. One-to-one modelหมายถึง Kernel thread 1 หน่วย กับ User thread 1 หน่วย ซึ่งระบบปฏิบัติการจะยอมให้ thread อื่นประมวลผลได้เป็นระบบขนาน ที่ทำงานแบบมัลติโปรเซสเซอร์ มีการใช้หลักการนี้อยู่ในระบบปฏิบัติการ Windows ในปัจจุบัน โดยโมเดลนี้ต้องไม่ยอมให้สร้าง user thread มากเกินไป3. Many-to-many modelหมายถึง โมเดลที่ลดข้อจำกัดของ 2 แบบแรก ผู้ใช้สามารถสร้าง user thread เท่าที่จำเป็น และสัมพันธ์กับ kernel thread ที่รับการทำงานแบบขนานในแบบมัลติโปรเซสเซอร์ เมื่อมี thread ที่ block system call ทาง kernel จะจัดเวลาให้ thread อื่นเข้ามาประมวลผลก่อนได้ข้อได้เปรียบ หรือประโยชน์ของ multithreaded (Benefits)การตอบสนอง (Responsiveness)การแชร์รีซอร์ส (Resource sharing)ความประหยัด (Economy)การเอื้อประโยชน์ของสถาบัตยกรรมมัลติโปรเซสเซอร์ (Utilization of multiprocessor architectures) 4.3 Threading Issuesเรื่องราวเกี่ยวกับ thread มีหลายอย่างที่ต้องพิจารณา การยกเลิก (Cancellation) thread เป็นเรื่องที่ต้องทำความเข้าใจ เพราะการยกเลิกหมายถึงการทำให้ thread เป้าหมายจบการทำงาน ก่อนที่จะทำงานจนเสร็จสมบูรณ์ การยกเลิกนี้มี 2 วิธี1.1 Asynchronous cancellation การยกเลิกที่ thread อื่น สั่งให้ thread เป้าหมายหยุดทำงาน1.2 Defered cancellation การยกเลิก thread เป้าหมาย โดยใช้ตรวจสอบตนเอง ว่าตนเองต้องถูกยกเลิกด้วยหรือไม่ 4.4 PthreadsPthreads อ้างถึงมาตรฐาน POSIX (IEEE 1003.1c) เพื่อกำหนด API(Application programming interface) สำหรับสร้าง และการซินโครไนซ์เซชัน นี่คือการกำหนดสภาพแวดล้อมของ thread ซึ่ง Thread specification นี้ถูกจำกัดใน Solaris2 แต่ Pthread ไม่ถูกสนับสนุนใน Windows แม้จะมี shareware เผยแพร่แล้วก็ตามOutput :Creating thread 0Creating thread 10: Hello World!1: Hello World!Creating thread 2Creating thread 32: Hello World!3: Hello World!Creating thread 44: Hello World!4.5 ปฏิบัติการฝึกเขียน threading model- ฝึกเขียนโปรแกรมด้วยภาษา C แสดงการทำงานของ pthread - ค้นคว้าข้อมูลเกี่ยวกับ เทรด จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการค้นคว้าบางส่วน + http://hpcnc.cpe.ku.ac.th/~thvo/tutorial/pthread.ppt + โครงสร้างพื้นฐานการซิงโครไนซ์ (Synchronization)(sync. การทำให้งาน 2 งาน ทำร่วมกันอย่างราบรื่น แต่ async. คือการทำงานของงานที่ไม่เกี่ยวเนื่องกัน)1. Race Condition สภาพที่โปรเซสสามารถเข้าถึงทรัพยากรได้พร้อมกัน2. Mutual Exclusion (MuTex) and Critical Region ซึ่งกันและกัน กันไม่ให้เข้า วิกฤต อนาเขต3. วิธีแก้ปัญหา Mutual Exclusion with busi waiting 5 วิธี- Disable Interrupt ยกเลิกการขัดจังหวะ- Lock Variable สร้างตัวแปรล็อก โดยใช้ software และตัวแปร Global อาจทำให้ lock กันเอง- Strict Alternation กำหนดทางเลือกอื่น เพื่อสลับกันเข้า Critical Region เหมาะกับ 2 process- Peterson's Solution ใช้จัดการ 2 กระบวนการ เพื่อเข้าครอบครองทรัพยากร6. Event Counter เกี่ยวข้องกับ 3 ปฏิบัติการคือ read() advance() เพื่อเพิ่มค่า await() เพื่อsleep7. Monitor คือชุดของ procedure, variable, data structure รวมเป็น package เพื่อควบคุมการ sync.The Dinning Philosophers Problem คือปัญหาที่ตกลงกันไม่ได้ของนักปราชญ์ในโต๊ะอาหารอาจทำให้คนใดคนหนึ่งต้องอดตายจากเงื่อนไขการใช้ส้อมทานอาหาร แต่ไม่มีโอกาสนั้นสำหรับบางคนซึ่งแก้ปัญหาด้วยแนวคิดของ semaphore ได้
5. การจัดการหน่วยความจำ(Memory Management)
.1 กระบวนการจัดการหน่วยความจำ5.1.1 การย้ายตำแหน่ง (Relocation)ระบบปฏิบัติการในปัจจุบัน ยอมให้โปรแกรมทำงานพร้อมกันได้หลายงานแบบ multiprogramming ซึ่งโปรเซสต่าง ๆ เข้าใช้งานหน่วยความจำร่วมกัน จึงต้องมีการสลับโปรแกรมให้เข้าออกหน่วยความจำได้ รวมถึงการเปลี่ยนแปลงค่าตำแหน่งในหน่วยความจำที่อ้างถึงในโปรแกรม ให้ถูกต้องตามตำแหน่งจริงในหน่วยความจำ เช่นโปรแกรม a อ้างถึงตำแหน่งที่ 1000 และโปรแกรม b ก็อ้างถึงตำแหน่งที่ 1000 เช่นกันค่า address แบ่งได้ 2 ค่า1. Absolute address หมายถึง ตำแหน่งจริงของโปรเซสที่อยู่ในหน่วยความจำ2. Relative address หมายถึง ตำแหน่งของคำสั่ง หรือโปรแกรมของโปรเซสหลังจากการ compile5.1.2 การป้องกันพื้นที่ (Protection)ระบบปฏิบัติการควรสามารถป้องกันโปรเซส จากการถูกรบกวน ทั้งทางตรง และทางอ้อม ดังนั้นก่อนให้โปรเซสใดเข้าครอบครองหน่วยความจำ จะต้องมีการตรวจสอบก่อน และใช้เวลาค้นหาเพื่อตรวจสอบตลอดเวลา5.1.3 การใช้พื้นที่ร่วมกัน (Sharing)การป้องกันเพียงอย่างเดียว อาจทำให้การใช้ทรัพยากรไม่คุ้ม จึงต้องมีการจัดสรรให้ใช้พื้นที่ของหน่วยความจำร่วมกันอย่างยืดหยุ่น5.1.4 การจัดการแบ่งโปรแกรมย่อย (Logical organization)ระบบปฏิบัติการจะแบ่งโปรแกรมเป็นโปรแกรมหลัก และโปรแกรมย่อย โดยนำเฉพาะโปรแกรมหลักลงในหน่วยความจำ แต่นำโปรแกรมย่อยลงหน่วยความจำเฉพาะเมื่อมีการเรียกใช้เท่านั้นประโยชน์ที่ได้จากการจัดการแบ่งโปรแกรมออกเป็นโปรแกรมย่อย มีดังนี้1. โปรแกรมย่อยที่ไม่ได้ใช้งาน จะไม่นำลงหน่วยความจำหลัก2. โปรแกรมย่อยแต่ละตัวสามารถถูกเขียน และแปลแยกกันได้3. โปรแกรมย่อยแต่ละตัวมีระดับการป้องกันแต่กต่างกัน4. โปรแกรมหลักสามารถเรียกใช้โปรแกรมย่อยเหล่านี้ร่วมกันได้5.1.5 การจัดการแบ่งทางกายภาพ (Physical organization)หน่วยความจำแบ่งเป็น 2 ส่วนคือ หน่วยความจำหลัก และหน่วยความจำสำรอง ลักษณะของหน่วยความจำหลักจะมีราคาแพง ทำงานได้เร็ว แต่เลือนหายได้ ในการทำงานจริง จึงต้องมีการเคลื่อนย้ายทางกายภาพระหว่างหน่วยความจำทั้ง 2 ตลอดเวลา ซึ่งเป็นหน้าที่ของระบบที่ต้องจัดสรรให้ให้สอดคล้องกับการทำงานแบบ multiprogramming 5.2 หน่วยความจำหลัก (Main memory)การจัดการหน่วยความจำมีหลายระบบ เริ่มจากแบบไม่ซับซ้อน ไปถึงซับซ้อน ในบทนี้จะเรียนรู้แบบไม่ซับซ้อน ซึ่งไม่ถูกนำมาใช้งานในระบบปฏิบัติการปัจจุบัน แต่อาจใช้ในคอมพิวเตอร์ขนาดเล็กอยู่ การเรียนรู้เรื่องนี้อาจ นำไปประยุกต์ในการพัฒนางานด้าน software อื่น ๆ ได้5.2.1 ระบบโปรแกรมเดียว (Monoprogramming)เป็นวิธีการจัดการที่ง่ายที่สุด โดยกำหนดเพียง 1 โปรแกรม ให้ทำงานในหน่วยความจำเพียงโปรแกรมเดียว5.2.2 ระบบหลายโปรแกรมที่กำหนดขนาดพาร์ติชั่นคงที่ (Multiprogramming with fixed partition)ปัจจุบันระบบปฎิบัติการยอมให้มีหลายโปรเซสทำงานพร้อมกันได้ หมายความว่าขณะที่โปรเซสหนึ่งทำเสร็จ อีกโปรเซสที่รอ ก็เข้าใช้หน่วยความจำทันที โดยแบ่งหน่วยความจำออกเป็น partition การแบ่งเห็นแต่ละ partition แบบตายตัว มีจุดบกพร่อง จึงมีการจัดการหน่วยความจำแบบ FCFS : first come first serve การจัดการแบบนี้ย่อมมีปัญหา จึงเป็นหน้าที่ของระบบปฏิบัติการ ที่ต้องจัดการ5.2.3 ระบบที่กำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้ (Dynamic partition)เพื่อแก้ปัญหาของการกำหนดแบบคงที่ จึงออกแบบการกำหนด partition แบบเปลี่ยนแปลงได้ ซึ่งมีความซับซ้อน มากขึ้น ตามโปรเซสที่เข้าใช้หน่วยความจำ5.2.4 การจัดการแบบระบบบัดดี้ (Buddy system)ระบบจัดการหน่วยความจำแบบคงที่ และเปลี่ยนแปลงได้ อาจมีข้อจำกัดเรื่องการรองรับจำนวนโปรเซส และใช้พื้นที่ไม่เต็มประสิทธิภาพได้ ส่วนการแบ่งแบบเปลี่ยนแปลงได้ก็มีความซับซ้อนในทางปฏิบัติ และใช้ทรัพยากร จึงมีการผสมระหว่าง 2 ระบบนี้เข้าด้วยกัน ระบบนี้จะแบ่งพื้นที่เป็น 2 ส่วน และตรวจสอบว่าพอจะแบ่งให้กับโปรเซสล่าสุดได้หรือไม่ ถ้าแบ่งแล้วเข้าไม่ได้ ก็จะแบ่งขนาดเท่าก่อนหน้าที่ถูกแบ่ง และจัดเรียงพื้นที่เป็นแบบ link list ไว้รอการเข้าใช้ของโปรเซส 5.3 การแบ่งเป็นหน้า (Paging)ระบบที่ใช้หน่วยความจำเสมือน (Virtual memory) มักใช้เทคนิคที่เรียกว่า การแบ่งหน้า หรือเพจจิ่ง(Paging) เพื่อเชื่อมระหว่างตำแหน่งทางตรรก กับเลขของเฟรมในหน่วยความจำหลัก5.3.1 ตารางหน้า (Page table)หมายถึงการรับค่าตำแหน่งทางตรรกเป็นค่านำเข้า แล้วหาเลขของเฟรมในหน่วยความจำหลักออกมา เทคนิคตารางหน้า(Page table) มักมีขนาดใหญ่ และต้องทำด้วยความเร็วสูง หากสรุปแล้วตารางหน้า ก็คือตารางที่เก็บอาร์เรย์ของรีจิสเตอร์นั่นเอง5.3.2 บัฟเฟอร์ค้นหาที่อยู่ (TLB : Translation lookaside buffer)ทุกครั้งที่เรียกใช้หน่วยความจำเสมือน ย่อมเรียกใช้หน่วยความจำหลัก 2 ครั้ง คือ การอ่านตารางหน้า และอ่านข้อมูลจริงจากหน่วยความจำหลัก ดังนั้นการทำงานแบบนี้จึงใช้เวลาถึง 2 เท่า จึงมีการใช้ cach memory ซึ่งทำหน้าที่เก็บตารางหน้าที่เคยถูกเรียกใช้ หรือเรียกว่า บัฟเฟอร์ค้นหาที่อยู่ (TLB : Translation Lookaside Buffer) ถ้าพบใน TLB จะเรียก TLB hit ถ้าไม่พบเรียก TLB miss และเข้าไปอ่านตารางหน้า เมื่ออ่านแล้วก็จะนำมาเพิ่มใน TLB สำหรับโอกาสที่จะถูกเรียกในอนาคต 5.4 การสับเปลี่ยนหน้า (Page replacement algorithms)5.4.1 วิธีสับเปลี่ยนแบบมาก่อน-ออกก่อน (FIFO : First in first out algorithm)5.4.2 วิธีสับเปลี่ยนแบบให้โอกาสครั้งที่สอง (Second change page replacement algorithm)5.4.3 วิธีสับเปลี่ยนแบบวงรอบนาฬิกา (Clock page replacement algorithm)5.4.4 วิธีสับเปลี่ยนแบบที่ดี่สุด (Optimal page replacement algorithm)5.4.5 การสับเปลี่ยนแบบที่ไม่ได้ใช้งานออกก่อน (NRU : Not recently used)5.4.6 การสับเปลี่ยนแบบใช้งานน้อยที่สุดออกก่อน (LRU : Least recently used)ใช้ข้อมูลในอดีตประมาณการณ์อนาคต5.5 การแบ่งเป็นเซ็กเมนต์ (Segmentation)การแบ่งหน้าจะแบ่งให้มีขนาดเท่ากัน แต่การแบ่งเป็นเซ็กเมนต์จะแบ่งโปรแกรมออกเป็นส่วน ๆ ไม่เท่ากัน และมีการใช้ตำแหน่งทางตรรก อ้างอิงตำแหน่งจริงเช่นกัน และมีการใช้ข้อมูล 2 ส่วนคือ เลขที่เซ็กเมนต์ และระยะเริ่มต้นของเซ้กเมนต์(Offset) สำหรับผลของการแบ่งเซ็กเมนต์ทำให้เกิดชิ้นส่วนไม่เท่ากัน (Dynamic partitioning) ซึ่งลดปัญหาการสูญเสียพื้นที่ (Internal fragmentation)5.5.1 การนำวิธีการแบ่งเป็นเซ็กเมนต์มาใช้ในหน่วยความจำเสมือน5.5.2 การรวมวิธีการแบ่งเป็นหน้ากับการแบ่งเป็นเซ็กเมนต์เข้าด้วยกัน 5.6 ปฏิบัติการฝึกเขียนแผนภาพ และฝึกเปลี่ยน RAM- ฝึกเปลี่ยน RAM บน mainboard และศึกษารุ่นต่าง ๆ ที่มีในปัจจุบัน - ฝึกเขียนแผนภาพแสดงการสับเปลี่ยนแบบต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดการหน่วยความจำ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้า
6. การจัดการเวลซีพียู(CPU Scheduling)
6.1 Scheduling Criteria6.1.1 การใช้ประโยชน์หน่วยประมวลผลกลาง (CPU utilization)6.1.2 ประมาณงาน (Throughput)6.1.3 เวลาโดยรวม (Turnaround time)6.1.4 เวลาคอย (Waiting time)6.1.5 เวลาตอบสนอง (Response time) 6.2 Scheduling Algorithmsหน้าที่ของตัวจัดคิวคือ คัดเลือกโปรเซสซึ่งรออยู่ในสถานะพร้อมที่เหมาะสมที่สุดให้เข้าไปอยู่ในสถานะรัน (ได้ครอบครองซีพียู) โดยแท้จริงแล้วการส่งโปรเซสที่ถูกเลือกแล้วให้เข้าไปอยู่ในสถานะรัน เป็นหน้าที่ของโปรเซสของ OS ที่ชื่อตัวส่ง (dispatcher) ในแง่การทำงานแล้วตัวจัดคิวจะเป็นผู้คัดเลือกโปรเซสและเรียกให้ตัวส่งส่งโปรเซสที่ถูกเลือกแล้วเข้าไปในสถานะรันเป็นความรับผิดชอบของตัวจัดคิว6.2.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS : First-come First-served Scheduling)การจัดคิวแบบ FCFS (first-come-first-served) วิธีการคัดเลือกแบบ FCFS นี้เป็นวิธีที่ง่ายที่สุด คือ โปรเซสไหนเข้ามารอในคิวก่อนจะได้ครอบครองซีพียูก่อน ตามลำดับเวลาของการเข้ามาอยู่ในคิว คือ "มาก่อนได้ก่อน" โปรเซสที่ได้ครอบครองซีพียูจะทำงานไปจนเสร็จ ไม่มีระยะเวลาควอนตัมซึ่งจำกัดเวลาการครอบครองซีพียู แต่ถ้าโปรเซสมีการเรียกใช้งานอุปกรณ์อินพุต-เอาต์พุต หรือรอเหตุการณ์บางอย่าง โปรเซสนั้นต้องปลดปล่อยซีพียู และออกจากสถานะรันไปอยู่ในสถานะติดขัด เมื่อใดที่งานเสร็จสิ้นลงหรือเกิดเหตุการณ์ที่กำลังรออยู่ โปรเซสนั้นจึงค่อยกลับเข้าไปอยู่ต่อท้ายคิวของสถานะพร้อมใหม่อีกครั้งเราอาจแสดงการเปลี่ยนสถานะของโปรเซสโดยใช้การจัดคิวแบบ FCFS ซึ่งจะเห็นว่าแตกต่างกับรูปแสดงการเปลี่ยนสถานะของโปรเซสที่เคยกล่าวมาคือ ไม่มีการเปลี่ยนสถานะของโปรเซสจากสถานะรันมายังสถานะพร้อมโดยตรงFirst Come First Served (FCFS): The simplest scheduling algorithm is FCFS. As each process becomes ready, it joins the ready queue. When the currently running process ceases to execute, the oldest process in the ready queue is selected for running.6.2.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF : Short-Job-First Scheduling)การจัดคิวแบบ SJN (shortest job next) การคัดเลือกโปรเซสด้วยวิธีนี้ จะคัดเลือกเอาโปรเซสที่ต้องการเวลาในการทำงานน้อยที่สุด ทำให้โปรเซสที่ต้องการเวลาในการทำงานน้อยจบออกไปได้เร็วขึ้น จำนวนโปรเซสในระบบที่รออยู่ในคิวมีก็จะมีจำนวนลดลง และทำให้เวลาโดยเฉลี่ยในการทำงาน 1 งานเสร็จหรือเวลาครบงาน (turnaround time) น้อยลงแต่การจัดคิวแบบนี้เป็นผลเสียต่อโปรเซสที่ต้องการเวลาในการทำงานนานShortest Process Next (SPN): Another approach to reducing the bias in favor of long processed inherent in FCFS is the SPN. This is a non-preemptive algorithm in which the process with the shortest expected processing time is selected next. Thus a short process will jump to the head of the queue past longer jobs.Shortest Remaining Time (SRT): SRT algorithm is a preemptive version of SPN. In this case, the scheduler always chooses the process that has the shortest expected remaining processing time. When a new process joins the ready queue, it may in fact have a shorter remaining time than the currently running process. SRT does not have the bias in favor of long processes found in FCFS.6.2.3 การจัดเวลาตามลำดับความสำคัญ (Priority Scheduling)การจัดคิวแบบลำดับความสำคัญ (priority queue) คิวแบบลำดับความสำคัญมีลักษณะแตกต่างกับคิวธรรมดา ภายในคิวจะมีการจัดเรียงลำดับของโปรเซสต่าง ๆ ตามลำดับความสำคัญของโปรเซสนั้น โปรเซสที่อยู่ต้นคิวจะมีลำดับความสำคัญมากที่สุด และลดลงเรื่อย ๆ โปรเซสที่อยู่ท้ายคิวคือโปรเซสที่มีลำดับความสำคัญต่ำสุด การคัดเลือกโปรเซสจะเอาโปรเซสที่อยู่ต้นคิว (มีลำดับความสำคัญสูงสุด) เข้าไปครอบครองซีพียูก่อน ดังนั้นถึงแม้ว่าโปรเซสที่เข้าคิวทีหลังแต่มีลำดับความสำคัญสูงกว่าก็อาจได้เข้าไปครอบครองซีพียูก่อน โปรเซส E เข้าคิวเป็นโปรเซสหลังสุด แต่จะได้ครอบครองซีพียูก่อนโปรเซส C และ D6.2.4 การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling)การจัดคิวแบบ RR (round-robin) การจัดคิวแบบ RR อาจเรียกว่าเป็นการจัดคิวแบบมีการวนรอบ ลักษณะการคัดเลือก โปรเซสในคิวจะเป็นแบบ FCFS คือ "มาก่อนได้ก่อน" แต่ต่างกันนิดหน่อยตรงที่การครอบครองซีพียูของโปรเซสในสถานะรันจะถูกจำกัดเวลาไว้ด้วยระยะเวลาควอนตัม ทำให้โปรเซสที่ต้องการเวลาในการทำงานนานจะต้องเปลี่ยนสถานะหมุนระหว่างสถานะพร้อมและสถานะรันการจัดคิวแบบ RR สามารถแก้ปัญหาการคอยนานของโปรเซสที่ต้องการเวลาทำงานน้อย ๆ ได้ลองกลับไปพิจารณาเหตุการณ์สมมติซึ่งกล่าวไว้ในหัวข้อที่แล้ว ถ้าระบบกำหนดเวลาควอนตัมเป็น 1 วินาที โปรเซส A ต้องมีการวนรอบเปลี่ยนสถานะระหว่างสถานะรันและสถานะพร้อม 15 ครั้ง โปรเซส B 1 ครั้ว โปรเซส C 10 ครั้ง เมื่อโปรเซส A เข้าไปอยู่ในสถานะรันครั้งแรกและกลับออกมา โปรเซส B จะได้ครอบครองซีพียูได้และ ทำงานเสร็จโปรเซส B จบและออกจากระบบไปเลยเหลือเพียง 2 โปรเซสที่อยู่ในคิวของสถานะพร้อม โปรเซสถัดไปที่จัดได้ครอบครองซีพียูคือ C โปรเซส C และ A จะสลับกันครอบครองซีพียูกันโปรเซสละ 1 วินาที จนกระทั่งโปรเซส C จบ เหลือโปรเซส A เพียงโปรเซสเดียว เป็นแผนภาพแสดงการสลับกันทำงานของโปรเซสทั้ง 3 และเป็นผลที่เกิดขึ้นจากการจัดคิวแบบ RRRound Robin (RR): A straightforward way to reduce the penalty that short jobs suffer with FCFS is to use preemption based on a clock. The simplest such algorithm is round robin. A clock interrupt is generated at periodic intervals. When the interrupt occurs, the currently running process is placed in the ready queue, and the next ready job is selected on an FCFS basis. In the current project RR is implemented with time intervals of 1 and 4.6.2.5 การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)เพื่อให้การจัดคิวเป็นไปอย่างมีประสิทธิภาพ จึงมีการนำหลาย ๆ เทคนิคมาประยุกต์เข้าด้วยกัน เป็นการจัดคำแบบวนรอบ ที่คำนึงถึงความสำคัญของงาน ทำให้งานที่มีความสำคัญเหมือนกันอยู่ในคิวเดียวกัน และให้งานสำคัญน้อย ๆ อยู่ในคิวที่สำคัญน้อยเช่นกัน 6.3 การประเมินอัลกอริทึม (Algorithm Evaluation)จากที่ได้ศึกษาอัลกอริทึมทั้ง 5 แบบ สำหรับการจัดเวลาซีพียูมาแล้ว ก็ต้องเลือกอัลกอริทึมที่จะใช้งาน สำหรับเลือกงานเข้าประมวลผล มีหลาย ๆ วิธีในการพิจารณาอัลกอริทึม ที่ต้องคำนึงถึง CPU utilization, Response time และ Throughput เพื่อให้ได้ผลออกมาดีที่สุดหลักเกณฑ์การพิจารณาอัลกอริทึมเข้าประมวลผล1. ให้ใช้ซีพียูสูงสุด โดยช่วงเวลาตอบสนองต่ำสุด2. ให้มีเวลารวม หรือวนรอบที่เหมาะสม กับเวลาที่ต้องใช้ประมวลผลทั้งหมด6.3.1 วิธีกำหนดโมเดล (Deterministic modeling)วิธีนี้มีข้อจำกัดมากเกินไปสำหรับการนำมาใช้ในปัจจุบัน เพราะวิธีนี้จะเป็นวิธีที่ง่าย ได้ตัวเลขออกมาแน่นอน จากตัวอย่างข้อมูลจำนวนหนึ่งที่ป้อนเข้าไป แต่ผลลัพธ์ไม่มีความน่าเชื่อถือมากพอ เพราะในสถานการณ์จริงจะมีข้อมูลที่ซับซ้อนกว่ามาก เช่นเลือกอัลกอริทึมมาพิจารณา 3 แบบ คือ FCFS, SJF และ RR ซึ่งผลของการพิจารณาแต่ละอัลกอริทึมจะออกเป็นตัวเลขให้เลือก การเลือกเป็นสิ่งที่ตัดสินใจได้ง่าย แต่ไม่อาจไม่เหมาะที่จะใช้งานจริง6.3.2 วิธีจัดเมเดลของคิว (Queueing models)วิธีนี้มีปัญหาการคำนวณค่าเฉลี่ยของการกระจายในระบบที่มีความซับซ้อน เมื่อพิจารณาในระบบเครือข่ายที่แบ่งกลุ่มงานออกเป็นสถานี หรือสายการผลิตที่มีคิวของตนเอง ถ้าทราบเวลาที่ให้บริการของแต่ละสายการผลิต และรู้เวลาที่แต่ละงานเข้าคิว ก็จะหาค่าต่าง ๆ ได้ตามต้องการ วิธีนี้เรียกว่า queueing network analysisจากตัวอย่างข้างต้นอาจใช้สูตร al = at * w (ค่าเฉลี่ยความยาวของคิว = ค่าเฉลี่ยของงานใหม่เข้ามา * ค่าเฉลี่ยการรอคอย) เช่น เวลาเฉลี่ยในคิวคือ 10 วินาที ถ้างานใหม่ต้องรอเข้าคิวประมาณ 2 วินาที และแต่ละงานต้องคอยเข้าหน่วยประมวลผล 5 วินาที6.3.3 วิธีจำลองสถานการณ์ (Simulations)วิธีนี้จะพัฒนาโปรแกรมคอมพิวเตอร์ขึ้นมา เสมือนเป็นหุ่นจำลอง พร้อมกำหนดสถาพแวดล้อม และตัวแปรคำนวณเวลาให้อยู่ในการควบคุม โดยเวลาของสถานการณ์กำหนดได้ 2 แบบคือ แบบสุ่ม หรือแบบข้อมูลจริง นอกจากนั้นยังต้องมี trace tape เก็บข้อมูลในช่วงเวลาต่าง ๆ และนำมาเปรียบเทียบ สำหรับวิธีการนี้ต้องอาศัยเวลา และค่าใช้จ่าย เพื่อให้ได้ผลลัพธ์ที่เที่ยงตรง6.3.4 วิธีติดตั้งจริง (Implementation)วิธีนี้ไม่นิยมปฏิบัติ แม้แบบจำลองจะไม่มีทางเหมือนจริง จึงมีแนวคิดว่าเขียนขึ้นมาใช้จริงเพื่อให้ได้ข้อมูลจริง แต่วิธีนี้ต้องลงทุนสูงมาก นอกจากต้องเขียนโปรแกรมของอัลกอริทึมแต่ละตัว ยังต้องใช้เวลา และแรงงานเปลี่ยนการทำงานของโปรแกรม การจัดการระบบเพื่อให้รองรับอัลกอริทึมแบบต่าง ๆที่จะนำมาทดลอง ซึ่งแต่ละอัลกอริทึมอาจต้องการฮาร์ดแวร์ที่พิเศษ และคอมพิวเตอร์ก็มิได้เปลี่ยนอุปกรณ์กันได้ง่าย 6.4 ปฏิบัติการเขียนอัลกอริทึม- ฝึกเขียน Scheduling แบบต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดเวลาซีพียู จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
7. ระบบรับ และแสดงผล(Input/Output Systems)
7.1 อุปกรณ์รับ และแสดงผลอุปกรณ์อินพุต (Input device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่าง ๆ จากโลก ภายนอกได้ ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ อุปกรณ์นำข้อมูลเข้า คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่างๆ จากภายนอกเครื่องได้ อันได้แก่ โปรแกรมหรือชุดคำสั่งที่เขียนสั่งงาน ให้คอมพิวเตอร์ทำงานตามขั้นตอน และข้อมูลที่ต้องใส่เข้าไปพร้อมกับโปรแกรม เพื่อส่งไปให้หน่วยประมวลผลกลางทำการประมวลผล และผลิตผลลัพธ์ที่ต้องการออกมา ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ จอยสติก จอสัมผัส ปากกาแสง กล้องดิจิตอล สแกนเนอร์ เป็นต้นอุปกรณ์เอาต์พุต (Output device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่โลกภายนอกได้ ตัวอย่างเช่น เครื่องเจาะบัตร จอภาพ เครื่องพิมพ์ อุปกรณ์นำข้อมูลออก หรืออุปกรณ์แสดงผล คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่ภายนอกตัวเครื่องได้ หลังจากที่คอมพิวเตอร์ได้ทำการประมวลผลแล้ว ก็จะต้องมีวิธีในการนำผลลัพธ์ออกมาแสดง ซึ่งสามารถแบ่งอุปกรณ์แสดงผลนี้ ออกได้เป็น 3 ประเภทคือ อุปกรณ์แสดงผลลัพธ์ชั่วคราว เช่น จอภาพ (Monitor) อุปกรณ์แสดงผลลัพธ์ถาวร เช่น เครื่องพิมพ์ (Printer) และอุปกรณ์แสดงผลลัพธ์ถาวรทางด้านกราฟิก เช่น พลอตเตอร์ (Plotter) เป็นต้น 7.1.1 การลงคะแนน (Polling)(1) A communications technique that determines when a terminal is ready to send data. The computer continually interrogates its connected terminals in a round robin sequence. If a terminal has data to send, it sends back an acknowledgment and the transmission begins. Contrast with an interrupt-driven system, in which the terminal generates a signal when it has data to send.(2) A technique that continually interrogates a peripheral device to see if it has data to transfer. For example, if a mouse button was pressed or if data is available at a communications port. Contrast with event-driven or interrupt-driven techniques, in which the operating system generates a signal and interrupts the system. (Techweb.com)ระเบียบวิธีการที่สมบูรณ์ ในการเชื่อมต่อระหว่าง host และ ตัวควบคุม มีการทำ handshaking เป็นพื้นฐาน โดยสมมติให้มี 2 bits เชื่อมประสาน producer และ consumer หรือ controller และ host โดยมีการบ่งบอกสถานะขณะทำงาน 7.1.2 ขัดจังหวะ (Interrupts)การขัดจังหวะจะทำงานอย่างต่อเนื่องร่วมกับ CPU จึงถูกเรียกว่า Interrupt-request line โดยทำงานเป็น Interrupt-driven I/O cycle สำหรับ 7 องค์ประกอบ1. device driver initialtes I/O2. initiates I/O3. input ready, output complete, or error generates interrupt signal4. CPU receiving interrupt, transfers control to interrupt handler5. interrupt handler processes data, returns from interrupt6. CPU resumes processing of interrupted task7. CPU executing checks for interrupts between instructionsif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]interruptcycle.png[/img]');}[img]interruptcycle.png[/img] 7.1.3 เข้าถึงหน่วยความจำโดยตรง (Direct memory access)(Direct Memory Access) Specialized circuitry or a dedicated microprocessor that transfers data from memory to memory without using the CPU. Although DMA may periodically steal cycles from the CPU, data are transferred much faster than using the CPU for every byte of transfer. On PCs, there are eight DMA channels commonly used as follows. Most sound cards are set to use DMA channel 1DMA คือ วงจรพิเศษที่ออกแบบมาเพื่อส่งข้อมูลระหว่าง หน่วยความจำ ถึงหน่วยความจำโดยไม่ใช้การทำงานของ CPU และเป็นการทำงานที่คาดหวัง หรือทำนายข้อมูลล่วงหน้า ในการเรียกข้อมูลที่ต้องการใช้ แทนที่จะให้ CPU เป็นคนสั่งงานให้เรียกข้อมูลโดยตรงภาพแสดงขั้นตอนการทำงานร่วมกันของ CPU, Cache, CPU memory bus, DMA, PCI bus, IDE disk controller และ Disk มีขั้นตอนต่าง ๆ 6 ขั้นตอน1. device driver is told to transfer disk data to buffer at address X2. device driver tells disk controller to transfer C bytes from disk to buffer at address X3. disk controller initiates DMA transfer4. disk controlelr sends each byte to DMA controller5. DMA controller transfers bytes to buffer X, increasing memory address and decreasing c until c = 06. when c = 0, DMA interrupts CPU to signal transfer completetionif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.infocom.cqu.edu.au/Units/win2000/85349/Resources/Lectures/pics/12_7.gif[/img]');}[img]http://www.infocom.cqu.edu.au/Units/win2000/85349/Resources/Lectures/pics/12_7.gif[/img]ความเร็วของอุปกรณ์ต่าง ๆอุปกรณ์ความเร็วคีย์บอร์ด10 Bpsเมาส์100 Bpsโมเด็ม 56 KB7 KBpsแชนแนลโทรศัพท์8 KBpsคู่สาย ISDN16 KBpsเครื่องพิมพ์เลเซอร์100 KBpsสแกนเนอร์400 KBpsอีเธอร์เน็ต (Classic)1.2 MBpsUSB (Universal serial bus)1.5 MBpsดิจิทอลแคมคอร์ดเดอร์4 MBpsดิสก์ IDE5 MBpsซีดีรอม 40X6 MBpsอีเทอร์เน็ต (Fast)12.5 MBpsบัส ISA16.7 Bpsดิสก์ EIDE (ATA-2)16.7 MBpsFireWire (IEEE 1394)50 MBpsมอนิเตอร์ XGA60 MBpsเน็ตเวิร์ค SONET OC-1278 MBpsดิสก์ SCSI Ultra 280 MBpsอีเธอร์เน็ต (Gigabit)125 MBpsเทป Ultrium320 MBpsบัส PCI528 MBpsSUN Gigaplane XB backplane20 GBps 7.2 Application I/O Interface7.2.1 Block and character devicesโดยปกติระบบปฏิบัติการจะคาดหวังการเชื่อมต่อผ่าน read() write() หรือ seek() ซึ่งเป็นอุปกรณ์ส่งข้อมูลแบบ simple linear array of block หรือ raw I/O ตัวอย่างอุปกรณ์แบบนี้ที่เห็นได้ชัดที่สุดก็คือ keyboard7.2.2 Network devicesในระบบเครือข่ายจะมีการติดต่อสื่อสารกันผ่าน socket interface นอกจากการติดต่อแบบ read() write() และ seek() ยังมีการใช้อุปกรณ์ในเครือข่ายเชื่อมต่อเข้ามาผ่าน socket ได้อีกทางหนึ่ง โดยไม่ได้คำนึงถึงระบบปฏิบัติการว่าจะเป็น UNIX หรือ Windows แต่สนใจเฉพาะสิ่งที่ส่งเข้ามาว่าเข้ามาทางใด7.2.3 Clocks and timersคอมพิวเตอร์ส่วนใหญ่มี hardware clock และ timer ให้ข้อมูลพื้นฐานเกี่ยวกับเวลา 3 อย่าง- บอกเวลาปัจจุบัน (Current time)- บอกเวลาที่ผ่านไป (Elapsed time)- ตั้ง trigger ที่จะปฏิบัติการต่อเวลา7.2.4 Blocking and nonblocking I/Oการมี system-call interface รองรับ I/O ที่มาจาก blocking และ nonblocking เพราะผู้ใช้อาจใช้ทั้ง mouse และ keyboard ส่งข้อมูลพร้อมกัน ในขณะที่กำลังเปิดภาพยนต์จากแผ่น CD จึงต้องรอบรับข้อมูลต่าง ๆ ที่เข้ามาCharacteristics of I/O devicesaspectvariationexampledata-transfer modecharacterblockterminaldiskaccess methodsequentialrandommodemCD-ROMtransfer schedulesynchronousasynchronoustapekeyboardsharingdedicatedsharabletapekeyboarddevice speedlatencyseek timetransfer ratedelay between operationsI/O directionread onlywrite onlyread-writeCD-ROMgraphics controllerdisk 7.3 Kernel I/O SubsystemKernel คือแก่นของระบบ ที่ให้บริการต่าง ๆ มากมาย และสัมพันธ์กับ I/O ด้านต่าง ๆ หรือกล่าวได้ว่าทั้ง 6 เรื่องต่อไปนี้ คือระบบย่อยของการจัดการภายใน kernel ที่เกี่ยวกับ I/O7.3.1 I/O scheduling 7.3.2 Buffering (เก็บข้อมูลที่ปรากฎ) 7.3.3 Caching (เก็บข้อมูลที่เรียกใช้บ่อย และทำให้การเรียกใช้เร็วกว่า) 7.3.4 Spooling and device reservation (เป็น buffer ที่เก็บผลลัพธ์ของอุปกรณ์ เช่น printer) 7.3.5 Error handling 7.3.6 Kernel data structures7.4 ปฏิบัติการติดตั้งอุปกรณ์เพิ่มเติม- ฝึกติดตั้งอุปกรณ์ใหม่เพิ่มเข้าไป- ฝึกตรวจสอบความเร็วของอุปกรณ์ input และ output ต่าง ๆ - ฝึกเขียนแผนภาพแสดงการเชื่อมต่อระหว่าง CPU กับ I/O controller - ค้นคว้าข้อมูลเกี่ยวกับ ระบบรับ และแสดงผล จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
8. ระบบแฟ้ม(File System)
8.1 โครงสร้างระบบแฟ้ม (File-system structure)ระบบแฟ้มแบ่งได้เป็น 6 ชั้น (Layer) 1. Application programs โปรแกรมที่นำไปใช้ เช่น เกม หรือ word เป็นต้น 2. Logical file system มีหน้าที่เชื่อม OS กับผู้ใช้ เพราะผู้ใช้เห็นแฟ้มเดียว แต่อาจเก็บข้อมูลจริงไว้แยกกัน ซึ่งเป็นหน้าที่ของ OS 3. File-organization module ทำหน้าที่ เชื่อมระหว่าง Logical block และ Physical block ให้เป็นเรื่องเดียวกัน 4. Basic file system ทำหน้าที่เข้าไปอ่าน และเขียนในส่วนของ Physical block 5. I/O control ประกอบด้วย Device driver ควบคุมอุปกรณ์ให้ใช้งานได้ 6. Devices อุปกรณ์ที่เก็บข้อมูลหรือแฟ้ม ถูกควบคุมโดย Device driverif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.humblepie.com/graphics/directory_fat.jpg[/img]');}[img]http://www.humblepie.com/graphics/directory_fat.jpg[/img] 8.2 โครงสร้างไดเรกทอรี่(Directory structure)Directory หรือ Folder หมายถึง สารบัญ ทำหน้าที่เก็บรายชื่อแฟ้มไว้ในที่เดียวกัน เพื่อให้ผู้ใช้เรียกใช้ได้ และ Directory ก็ถือเป็นแฟ้มประเภทหนึ่งที่ประกอบด้วยหน่วยย่อยต่าง ๆ เมื่อแบ่งฮาร์ดดิสก์ออกเป็นหลาย partition แต่ละ partition ก็จะมีระบบ directory ของตนเองif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]pardisk.png[/img]');}[img]pardisk.png[/img]ปฏิบัติการเกี่ยวกับ Directory1. Search for a file2. Create a file3. Delete a file4. List a directory แสดงรายชื่อแฟ้มใน 1 directory5. Rename a file6. Traverse the file system แสดง หรือเก็บรายชื่อแฟ้มในทุก directory ได้โครงสร้างไดเรกทรอรี่เชิงตรรก (Logical structure of the directory)1. Single-level directory2. Two-level directory3. Tree-structured directory4. Acylic-graph directory5. General graph directoryif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]acylicgraph.png + generalgraph.png[/img]');}[img]acylicgraph.png + generalgraph.png[/img] 8.3 วิธีการเข้าถึง (Access methods)แฟ้มถูกใช้เก็บข้อมูลสารสนเทศ เมื่อถูกใช้ย่อมมีการเข้าถึง เพื่ออ่านข้อมูลหลายวิธี8.3.1 วิธีการเข้าถึง1. Sequential access methodการอ่านข้อมูลต้องเป็นไปตามลำดับ ไม่สามารถข้ามไปยังจุดที่ต้องการได้2. Direct access method or Relative access methodจากการที่แฟ้มมีการแบ่งเป็นกล่อง (Block) จึงทำให้สามารถวิ่งเข้าไปอ่านใน block ที่ต้องการได้โดยตรง3. Other access methodเช่น index and relative files จะมีตัวบ่งชี้ในการเข้าถึงระเบียนที่ต้องการ8.3.2 การเข้าถึงดิสก์1. การจัดเวลาแบบมาก่อนได้ก่อน (FCFS scheduling)เมื่ออยู่ใน queue ก็จะทำเรียงตามลำดับใน queue ไม่มีการพิจารณาอื่นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image010.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image010.gif[/img]2. การจัดเวลาแบบเวลาสั้นสุดได้ก่อน (SSTF scheduling)นำ process ใน queue มาพิจารณา และเลือกจุดที่เข้าถึงได้เร็ว จากจุดล่าสุดif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image013.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image013.gif[/img]3. การจัดเวลาแบบ SCAN (SCAN scheduling)อ่านจากด้านหนึ่งไปอีกด้านหนึ่งเป็นทิศทางเดียว เมื่อกลับมาอีกด้านก็ยังทำงานเช่นกันif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image016.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image016.gif[/img]4. การจัดเวลาแบบ C-SCAN (Circular-SCAN scheduling)อ่านจากด้านหนึ่ง แต่เป็นแบบทิศทางเดียวแท้จริง คือการย้อนกลับมาจะไม่บริการif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image019.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image019.gif[/img]5. การจัดเวลาแบบ (Look scheduling)คล้ายกับ scan แต่ scan หรือ c-scan จะไม่มีการนำไปใช้จริง เพราะหัวอ่าน จะพิจารณาไปยังจุดที่ต้องอ่านจริงของอีกด้านหนึ่ง ไม่ได้ มิได้ไปยังขอบของจานบันทึกตัวอย่าง disk scheduling :จาก http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week2.htmlCurrent position: track 100Requested tracks, in order received: 55, 58, 39, 18, 90, 160, 150, 38, 184FIFO: move 45 tracks to track 55; move 3 tracks to track 58; etc.SSTF: move 10 tracks to track 90; move 32 tracks to track 58; etc.SCAN, C-SCAN (moving in direction of increasing track number): move 50 tracks to track 150; move 10 tracks to track 160; etc.if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week207.gif[/img]');}[img]http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week207.gif[/img]ParameterFD 360KBHD รุ่นหนึ่งจำนวน cylinder4010601จำนวน track / cylinder212จำนวน sector / track9281(ค่าเฉลี่ย)จำนวน sector / disk72035742000จำนวน byte / sector512512ความจุดิสก์360 KB18.3 GBเวลาค้นหา (ใน cylinder ที่ติดกัน)6 msec0.8 msecเวลาค้นหา (โดยเฉลี่ย)77 msec6.9 msecเวลาในการหมุน200 msec8.33 msecเวลาที่มอเตอร์หมุน และหยุด250 msec20 secเวลาที่ใช้ในการถ่ายโอน 1 sector22 msec17 นาโนเซคัน8.4 การอนุญาตให้เข้าถึงแฟ้ม (File sharing)1. None2. Knowledge3. Execution4. Reading5. Appending6. Updating7. Changing protection8. Deletion 8.5 ปฏิบัติการจัดการแฟ้ม- ฝึกจัดการแฟ้มในระบบปฏิบัติการ DOS - ฝึกจัดการแฟ้มในระบบปฏิบัติการ Windows และการกำหนดสิทธิ์ - ฝึกจัดการแฟ้มในระบบปฏิบัติการ Linux และการกำหนดสิทธิ์ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบแฟ้ม จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการ
9. ระบบกระจาย(Distributed Systems)
9.1 ประโยชน์ของระบบกระจายปัจจุบันนำคอมพิวเตอร์ไปใช้งานในหน่วยงานต่าง ๆ มากมาย มีผลให้การทำงานในองค์กร หรือหน่วยงาน สามารถทำงานได้เป็นระบบ และพัฒนาการทำงานอย่างต่อเนื่อง การนำคอมพิวเตอร์มาใช้ในหน่วยงาน ก็เริ่มมีการพัฒนาขึ้นแทนที่จะใช้หนึ่งเครื่องต่อหนึ่งคน ก็ให้มีการนำเครื่องคอมพิวเตอร์ และอุปกรณ์ต่าง ๆ มาเชื่อมต่อกัน เป็นระบบเครือข่ายคอมพิวเตอร์ 1. การแชร์ทรัพยากร 2. เพิ่มความเร็วในการคำนวณ 3. ความน่าเชื่อถือของระบบ 4. การติดต่อสื่อสาร 9.2 การเชื่อมต่อ (Topology)ภาษาเทคนิคเรียกว่า(Topology) เป็นลักษณะการเชื่อมต่อทางกายภาพระหว่างเครืองคอมพิวเตอร์ในระบบเครือข่าย ซึ่งแบ่งออกตามหลักวิชาการตั้งแต่สมัยก่อนนั้น แบ่งได้เป็น 4 แบบ คือ 1. โครงสร้างแบบบัส (Bus Network)ลักษณะการเชื่อมต่อแบบนี้จะเป็นแบบอนุกรม โดยใช้สายเคเบิลเส้นเดียว ลากต่อกันไป ทำให้โครงสร้างแบบนี้มีจุดอ่อนก็คือเมื่อคอมพิวเตอร์ตัวใดตัวหนึ่งมีปัญหากับสายเคเบิล ก็จะทำให้เครื่องรวนไปทั้งระบบ ข้อดีของโครงสร้างแบบนี้ก็คือไม่ต้องมีอุปกรณ์อย่างเช่น ฮับ/สวิทช์ ใช้สายเพียงเส้นเดียวก็เพียงพอแล้ว โครงสร้างแบบนี้จึงเหมาะกับเครือข่ายที่มีขนาดเล็กที่มีจำนวนเครื่องไม่มาก และในปัจจุบันไม่นิยมใช้กันแล้ว เนื่องจากไม่ได้มีการพัฒนาอะไรเพิ่มเติมเลย ความเร็วก็เพียง 10 Mbps 2. โครงสร้างแบบสตาร์ (Star Network)ลักษณะการเชื่อมต่อของโครงสร้างแบบสตาร์นี้ ดูไปแล้วจะคล้ายๆ ดาวกระจาย คือจะมีอุปกรณ์เช่น ฮับ หรือสวิทช์ เป็นศูนย์กลาง ซึ่งการเชื่อมต่อแบบี้มีประโยชน์คือ ถ้ามีสายเส้นใดเส้นหนึ่งหลุดหรือเสียก็จะไม่มีผลกระทบต่อการทำงานของระบบ นอกจากนี้ถ้าหากเราเพิ่มเครื่องคอมพิวเตอร์เข้าไปอีกในเครือข่ายก็สามารถทำได้ทันที การต่อแบบนี้เป็นที่นิยมมากในปัจจุบัน เนื่องจากอุปกรณ์ที่ใช้เป็นศูนย์กลางคือ ฮับ/สวิทช์ ราคาได้ถูกลงอย่างมากแล้วในขณะที่ประสิทธิภาพก็ได้เพิ่มสูงขึ้นเรื่อยๆ จนในปัจจุบันเป็นความเร็วขนาดกิกาบิตแล้ว 3. โครงสร้างแบบริง (Ring Network)ลักษณะการเชื่อมต่อจะเป็นลักษณะวงแหวน การส่งข้อมูลจะเป็นแบบทิศทางเดียว ซึ่งถ้าส่งไปแล้วไม่ตรงกับคอมพิวเตอร์เครื่องรับตามที่เครื่องต้นทางระบุมา ก็จะส่งไปยังเครื่องถัดไป จนกว่าจะถึงปลายทางคือตรงกับเครื่องใครก็จะรับ ไม่ส่งต่อ จุดอ่อนของระบบก็คล้ายๆแบบบัส ปัจจุบันผมยังเห็นใช้อยู่ในธนาคาร พวก Mainfram IBM AS/400 เป็นต้น 4. โครงสร้างแบบผสม (Hybird Network)ลักษณะสุดท้ายของของโครงสร้างแบบนี้ก็คือการนำเครือข่ายๆ ย่อยๆ ที่มีโครงข่ายตามแบบที่ผมกล่าวข้างต้นทั้ง สามแบบมารวมกัน หรือ เชื่อมต่อกันให้มีขนาดใหญ่ขึ้น ลักษณะแบบนี้ยังมีชื่อเรียกเฉพาะอีกด้วย เช่น โครงสร้างแบบต้นไม้ (Tree หรือ Hierachical หรือ Mesh) ก็คือเครือข่ายผสมที่เกิดจากการนำเอาเครือข่ายที่มีโครงสร้างแบบบัสและแบบสตาร์มาผสมกัน หรือโครงสร้างแบบไร้รูปแบบ (Mesh) ซึ้งก็คือโครงสร้างแบบสตาร์ผสมกับบัสที่เชื่อมต่อกันแบบไม่มีโครงสร้างแน่นอน 5. โครงสร้างเครือข่ายแบบไร้สาย(Wireless Network)ที่กล่าวมาทั้งหมดเกี่ยวกับโครงข่ายข้างต้นนั้น เป็นโครงสร้างที่ใช้กันสำหรับเครือข่ายแบบใช้สายแต่เนื่องจากปัจจุบันนี้มีเทคโนโลยีเครือข่ายแบบใหม่เกิดขึ้นมา ที่เรียกว่าเครือข่ายแบบไร้สาย(Wireless) จะใช้คลื่นวิทยุในการรับส่งข้อมูล จึงทำให้แตกต่างกันออกไป และโครงสร้างแบบนี้ได้แบ่งเป็น 2 แบบ คือ Peer-to-Peer และ Client Server นอกจากนี้ยังมีเครือข่ายของโทรศัพท์มือถือหรือ Cellular Network ซึ่งจัดอยู่ในรูปแบบโครงสร้างแบบไร้สายด้วย ลักษณะจะคล้ายๆเป็นรูปรังผึ้ง http://www.personal.psu.edu/users/l/q/lq4/wmover/Lesson3C.htmif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]topology_star.gif + topology_bus.gif + topology_ring.gif[/img]');}[img]topology_star.gif + topology_bus.gif + topology_ring.gif[/img] 9.3 แบบของเครือข่าย (Network Types)เครื่อข่ายที่พิจารณาจาก distance แบ่งได้ 3 ประเภท1. LAN (Local Area Network)เครือข่ายระยะใกล้ ที่ใช้กันอยู่ในบริเวณไม่กว้างนัก มักพบเห็นกัน ในองค์กรเดียวกัน โดยส่วนใหญ่ลักษณะของการเชื่อมต่อคอมพิวเตอร์เป็นวง LAN จะอยู่ในพื้นที่ใกล้ ๆ กัน เช่น อยู่ภายในอาคาร หรือตึกเดียวกัน เดียวกัน เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://asuult.net/images/eldew/networking-NIC.gif[/img]');}[img]http://asuult.net/images/eldew/networking-NIC.gif[/img]2. MAN (Metropolitan area network)เครือข่ายขนาดกลาง กลุ่มของเครือข่าย LAN ที่นำมาเชื่อมต่อกันเป็นวงที่ใหญ่ขึ้น ภายในบริเวณ พื้นที่ใกล้เคียง เช่น ในเมืองเดียวกัน หรือจังหวัดใกล้เคียงกัน เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.crema.unimi.it/didattica/Labsistemi/matagg/Tutorial%20Networking_files/Tutorial-1.jpg[/img]');}[img]http://www.crema.unimi.it/didattica/Labsistemi/matagg/Tutorial%20Networking_files/Tutorial-1.jpg[/img]3. WAN (Wide Area network)เครือข่ายขนาดใหญ่โดยเป็นการรวมเครือข่ายทั้ง LAN และ MAN มาเชื่อมต่อกันเป็นเครือข่ายเดียว ดังนั้นเครือข่ายนี้จึงครอบคลุมพื้นที่กว้าง บางครั้งครอบคลุมไปทั่วประเทศ หรือ ทั่วโลก อย่างเช่น อินเทอร์เน็ต ก็จัดว่าเป็นเครือข่าย WAN ประเภทหนึ่ง แต่เป็นเครือข่ายสาธารณะที่ไม่มีใครเป็นเจ้าของif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://asuult.net/images/eldew/networking-lan-man-wan.gif[/img]');}[img]http://asuult.net/images/eldew/networking-lan-man-wan.gif[/img] เครื่อข่ายที่พิจารณาจาก performance and reliability แบ่งได้ 2 ประเภท1. Client-server systems :: หลักการ Centralized system ที่มีเครื่องบริการ และรับบริการ2. Peer-to-peer systems :: ระบบที่กำลังเติบโตในปัจจุบัน เช่น internet นี่เอง การเชื่อมต่อ internet จากที่บ้าน ไป ISP มี 5 วิธี 1. Dial-up56 Kbps ผ่านสายโทรศัพท์ธรรมดา และใช้ Modem ในการเชื่อมต่อวิธีนี้เป็นวิธีที่นิยมมากที่สุดในไทย เพราะใช้งานง่าย เพียงแต่ซื้อคอมพิวเตอร์ที่มี modem เมื่อนำคอมพิวเตอร์ไปวางที่บ้าน ก็หาสายโทรศัพท์ เสียบเข้าช่อง modem ก็สามารถใช้คอมพิวเตอร์เชื่อมต่อ internet ได้แล้ว ถ้าไม่มีเงินซื้อ package ของ ISP ก็สามารถใช้ free internet ของ TOT ได้ โดยเสียค่าโทรศัพท์ครั้งละ 3 บาท ใช้ได้นาน 2 ชั่วโมงต่อครั้ง เมื่อหลุดก็ต่อใหม่ แต่หลาย ๆ คน บอกว่าติดยาก และช้า ซึ่งผมให้ข้อมูลเลยว่า แล้วแต่บ้าน และผู้ให้บริการโทรศัพท์ของท่าน เพราะของผมเร็วระดับหนึ่ง และติดทุกครั้งเมื่อ connect โดยหมุนไปที่เบอร์ 1222Username : U89$0y)9@totonline.netPassword : j4**9c+p 2. ISDN (Integrated Services Digital Network)128 Kbps ผ่านสายโทรศัพท์ดิจิทัล ISDN และใช้ ISDN Modem ในการเชื่อมต่อให้บริการโดยบริษัทผู้ให้บริการโทรศัพท์ เช่น TOT TT&T หรือ TA ถ้าแถวบ้านท่านไม่มีบริการ ISDN ก็หมดสิทธิ์ใช้บริการนี้ เพราะผู้ให้บริการต้องต่อสายโทรศัพท์แบบพิเศษนี้เข้าบ้านท่าน แต่จะใช้สายโทรศัพท์แบบเก่าไม่ได้ สำหรับความเร็วของ ISDN จะได้ค่อนข้างแน่นอน ที่ 128 Kbps และไม่ได้รับผลกระทบจากสัญญาณรบกวนภายนอกมากนัก เพราะระบบ ISDN มีส่วนประกอบ 3 สาย หรือ 3 Channels คือ B-Channels 2 สาย และ D-Channels 1 สาย สำหรับ B-Channels มีความเร็วสายละ 64 Kbps เมื่อนำมารวมกันก็จะได้ 128 Kbps แต่ D-Channels มีความเร็ว 16 Kbps ซึ่งไม่ใช้รับส่งข้อมูล 3. DSL (Digital Subscriber Line)สูงกว่าแบบ ISDN แต่ระบุไม่ได้ และใช้ Modem ในการเชื่อมต่อความเร็วของ DSL ขึ้นกับผู้ให้บริการโทรศัพท์ และข้อตกลงที่จะเลือกใช้การเชื่อมต่อ DSL แบบใด การเชื่อมต่อ DSL จะให้บริการผ่านสายโทรศัพท์ธรรมดา เช่นในลำปางจะมี TT&T เป็นผู้ให้บริการ DSL เพราะผมเห็นร้าน net หลายแห่งใช้ และมีความเร็วที่สูงมาก โดยต่อสายจาก DSL modem เข้ากับ Hub ก็จะทำให้เครื่องในเครือข่ายต่อ internet ได้อย่างรวดเร็วเทคโนโลยี DSL มีหลายเทคโนโลยี1. ADSL (Asymmetric Digital Subscriber Line)2. HDSL (High-bit-rate Digital Subscriber Line)3. RADSL (Rate Adaptive Asymmetric Digital Subscriber Line)4. SDSL (Symmetric Digital Subscriber Line)5. VDSL (Very high-bit-rate Digital Subscriber Line)4. Cableต้อง share ร่วมกับคนอื่น ความเร็วจึงไม่แน่นอน ผ่านสาย CABLE TV (ในอเมริกาเป็นเรื่องปกติ)เชื่อมต่อแบบนี้จะใช้ Coaxial cable ซึ่งเป็นสาย CABLE TV ซึ่งให้บริการทั้งโทรศัพท์ และชมทีวีร่วมกัน หากต้องการใช้อินเทอร์เน็ต ก็เพียงแต่หา Cable modem มาเชื่อมต่อเพิ่ม และเสียบสายเข้ากับ LAN card ในเครื่องของเรา 5. Satelliteความเร็วขึ้นกับแบบของจานดาวเทียม ผ่านจานดาวเทียมปัจจุบัน CS internet คือผู้ให้บริการการเชื่อมต่อแบบจานดาวเทียม ซึ่งมีหลาย ๆ แบบ ตั้งแต่ใช้จานดาวเทียมร่วมกับ modem โดยใช้จานเป็นฝ่ายรับ และ modem เป็นฝ่ายส่งข้อมูล หรือใช้จานดาวเทียมทำหน้าที่ทั้งรับ และส่งข้อมูล สำหรับระบบดาวเทียมในปัจจุบันจะเรียกว่า DBS (Direct Broadcast Satellites) การเชื่อมต่อแบบนี้นิยมมากในพื้นที่ ๆ สายโทรศัพท์เข้าไปไม่ถึง เช่น หมู่บ้านบนภูเขา หรือ อบต. ในพื้นที่ห่างไกลเป็นต้นDeviceSpeedDistanceReliabilityCostRemarksRepeater + UTP10/100/1000 Mbps100 MHighMediumติดตั้งได้ยากสำหรับงาน Outdoor56K Modem56 KbpsUnlimitedVery LowLowความเร็วและความน่าเชื่อถือต่ำFiber Optic10/100/1000 Mbps15 KMHighVery Highความเร็วสูง ต้นทุนสูงWireless LAN11 Mbps300 M, 15 KMVery LowVery Highติดตั้งยาก ต้นทุนสูงVDSL17/10 Mbps1.2/1.5 KMHigh Lowติดตั้งง่ายต้นทุนต่ำG.SHDSL2.3 Mbps6 KMHigh Mediumติดตั้งง่ายต้นทุนต่ำ 9.4 อีเธอร์เน็ต (Ethernet)Ethernet คือชื่อวิธีการสื่อสาร หรือ ระเบียบวิธีการ(Protocal) ของระบบ LAN ชนิดหนึ่งที่พัฒนาโดย Xerox corporation, Digital equipment corporation(DEC) และ Intel ตั้งแต่ปี ค.ศ.1976 เป็นไปตามมาตรฐาน IEEE 802.3 ในช่วงแรก Ethernet มีความเร็วเพียง 10 Mbps แต่ปัจจุบันพัฒนาเป็น Fast ethernet(100 Mbps) และ Gigabit ethernet(1000 Mbps)Ethernet ใช้เทคนิครับส่งข้อมูล CSMA/CD (Carrier sense multiple access/collision detection) หมายถึง การรับส่งข้อมูลที่ทำได้ครั้งละ 1 คน แต่จะมีการตรวจสอบ หากมีใครใช้สายก็จะไม่ส่ง และถ้าชนก็จะสุ่ม เพื่อไม่ให้เกิดปัญหา- CS : Carrier sense หมายถึง การมี sense ในการถือครอง มีคนใช้อยู่ก็จะไม่แย่ง- MA : Multiple access หมายถึง อุปกรณ์ต่าง ๆ ใช้สื่อชุดเดียวกันในการรับส่งข้อมูล- CD : Collision detection หมายถึง เมื่อส่งพร้อม ๆ กันอาจชน จึงมีการตรวจสอบ ไม่ให้ชนHub หรือ Switch ต่างเป็นอุปกรณ์ศูนย์กลาง สำหรับเชื่อมต่อคอมพิวเตอร์ หลายเครื่องเข้าด้วยกันด้วยอุปกรณ์ 3 อย่าง คือ สาย UTP(Unshieled Twisted Pair แบบ Category 5(CAT5)) หัว RJ45 สำหรับเข้าหัวท้ายของสาย และ Network adapter cardHub เป็นอุปกรณ์ในสมัยแรก ที่ทำงานแบบ broadcast เมื่อเครื่องหนึ่งต้องการส่งสัญญาณไปอีกเครื่องหนึ่ง ตัว hub จะทำหน้าที่ส่งออกไปให้กับทุกเครื่อง ถ้าเครื่องเป็นผู้รับ ก็จะรับข้อมูลไป ถ้าไม่ใช้ก็จะไม่รับ ดังนั้นเมื่อซื้อ hub ขนาด 10 port ที่มีความเร็ว 10 Mbps(Mega Bit Per Second) ความเร็วที่ได้ก็ต้องหาร 10 เหลือเพียง 1 Mbps เมื่อใช้งานจริง หากมีผู้ใช้คนหนึ่งใช้โปรแกรม sniffer คอยดักจับ package ที่ส่งจาก hub ก็จะทราบข้อมูลต่าง ๆ ที่อยู่ในเครือข่ายนั้นทั้งหมด เช่น เนื้อความในจดหมาย เลขบัตรเครดิต username หรือ password ของผู้ใช้คนอื่น ๆ เป็นต้น สำหรับ Hub บางรุ่นจะมีช่อง Uplink สำหรับเชื่อมต่อ Hub อีกตัวหนึ่ง เพื่อขยายช่องสัญญาณ โดยใช้สาย Cross link ในการเชื่อม hub ผ่าน Uplink port โดยปกติ Hub แบบเดิมจะเป็นการเชื่อมเครือข่ายแบบ Ethernet 10BaseT หรือมีความเร็วที่ 10 Mbps นั่นเองSwitch เป็นอุปกรณ์ที่พัฒนาขึ้น โดยเลือกส่งข้อมูลถึงผู้รับเท่าที่จำเป็นเท่านั้น ทำให้เครือข่ายที่ใช้ switch มีความเร็วสูงกว่าเครือข่ายที่ใช้ hub และมีความปลอดภัยสูงกว่า มีการพัฒนา switch ให้ทำงานใน Layer 3 ของ OSI ได้ ซึ่งมีความสามารถเป็น IP switching ทีเดียว 9.5 ปฏิบัติการฝึกเชื่อมต่อเครือข่าย- ฝึกต่อเครือข่ายด้วย LAN card, Wireless ผ่าน Hub หรือ Switch - ฝึกแชร์อุปกรณ์ หรือแฟ้มในเครือข่าย - ฝึกตรวจสอบจุดบกพร่องภายในเครือข่าย - ค้นคว้าข้อมูลเกี่ยวกับ ระบบกระจาย จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการค้นคว้าบางส่วน
10. การป้องกัน +ระบบความมั่นคง(Protection and Security)
10.1 การป้องกัน (Protection)คอมพิวเตอร์มีการทำงานที่ซับซ้อนเพิ่มขึ้นทุกวัน ความน่าเชื่อถือจึงเป็นหัวข้อที่ถูกหยิบยก ขึ้นมากล่าวถึงอยู่เสมอ โดยเฉพาะระบบมัลติโปรแกรมมิ่ง (Multiprogramming) ที่มีผู้เข้าใช้ระบบจำนวนมาก จึงต้องปกป้องคอมพิวเตอร์ให้พ้นจากผู้ไม่ประสงค์ดีกฎการป้องกันของระบบคอมพิวเตอร์คือ การสร้างกลไกที่บังคับให้ผู้ใช้ทรัพยากรปฏิบัติตามข้อกำหนด ที่ได้สร้างไว้ เพื่อการใช้ทรัพยากรเป็นไปอย่างถูกต้อง และป้องกับข้อมูลของผู้ใช้ให้มีความปลอดภัยนั่นเองDomain of protection คือ การนิยามความสัมพันธ์ของ object และ right ที่สัมพันธ์กัน ความสัมพันธ์ของ domain อาจยอมให้ object ถูกเรียกใช้ได้หลาย ๆ domain เช่น object เกี่ยวกับการพิมพ์ บาง domain จะมี object ในการดูแลมากมาย และมี right ที่เฉพาะเจาะจงเช่น อ่าน เขียน หรือประมวลผลACL (Access control list) คือ ตารางความสัมพันธ์ของ object และ domain ที่สามารถเรียกใช้แต่ละ object โดยไม่เกิดปัญหา บางระบบปฏิบัติการจะมีระบบ ACL ที่สนับสนุนระบบกลุ่มผู้ใช้(GID) และผู้ใช้(UID) P.239 น.ท.ไพศาลจุดประสงค์หลักของความปลอดภัยทางข้อมูล1. การรักษาความลับ (Confidentiality) คือการรับรองว่าจะมีการเก็บข้อมูลไว้เป็นความลับ และผู้มีสิทธิเท่านั้นจึงจะเข้าถึงข้อมูลนั้นได้2. การรักษาความสมบูรณ์ (Integrity) คือการรับรองว่าข้อมูลจะไม่ถูกเปลี่ยนแปลงหรือทำลายไม่ว่าจะเป็นโดย อุบัติเหตุหรือโดยเจตนา3. ความพร้อมใช้ (Availability) คือการรับรองว่าข้อมูลและบริการการสื่อสารต่าง ๆ พร้อมที่จะใช้ได้ในเวลาที่ต้องการใช้งาน4. การห้ามปฏิเสธความรับผิดชอบ (Non-Repudiation) คือวิธีการสื่อสารซึ่งผู้ส่งข้อมูลได้รับหลักฐานว่าได้มีการส่งข้อมูลแล้วและผู้รับก็ได้รับการยืนยันว่าผู้ส่งเป็นใคร ดังนั้นทั้งผู้ส่งและผู้รับจะไม่สามารถปฏิเสธได้ว่าไม่มีความเกี่ยวข้องกับข้อมูลดังกล่าวในภายหลังเรียบเรียงโดย : สิริพร จิตต์เจริญธรรม, เสาวภา ปานจันทร์ และ เลอศักดิ์ ลิ้มวิวัฒน์กุลกำหนดลักษณะของการควบคุมความมั่นคงปลอดภัย (Security Controls) ได้ 5 ระดับ1. Audit (Who done it?)2. Integrity (Who can change it?)3. Encryption (Who can see it?)4. Authorization (Who can access it?)5. Authentication (Who's who?)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.thaicert.nectec.or.th/paper/authen/authentication_guide/layer.png[/img]');}[img]http://www.thaicert.nectec.or.th/paper/authen/authentication_guide/layer.png[/img] 10.2 สภาพแวดล้อมของความปลอดภัยการรักษาความปลอดภัย คือ อ้างการป้องกันปัญหาทั้งหมด แต่การป้องกัน จะอ้างถึงกลไกเฉพาะด้านของโปรแกรมระบบที่ใช้ป้องกันข้อมูล สำหรับการรักษาความปลอดภัย (Security) มีประเด็นอยู่ 3 ด้านคือ 1. ภัยคุกคาม(Threat) 1.1 นำความลับไปเปิดเผย(Data confidentiality) 1.2 เปลี่ยนแปลงข้อมูล(Data integrity) 1.3 ทำให้หยุดบริการ(System availability) 2. ผู้ประสงค์ร้าย(Intruder) 2.1 พวกชอบสอดรู้สอดเห็น 2.2 พวกชอบทดลอง 2.3 พวกพยายามหารายได้ให้ตนเอง 2.4 พวกจารกรรมข้อมูล 3. ข้อมูลสูญหายโดยเหตุสุดวิสัย(Accidental data loss) 3.1 ปรากฎการณ์ทางธรรมชาติ 3.2 hardware หรือ software ทำงานผิดพลาด 3.3 ความผิดพลาดของมนุษย์ 10.3 ภัยคุกคาม (Threats)ภัยคุกคาม หรือการสร้างความเสียหายในระบบคอมพิวเตอร์ มี 3 ประการคือ นำความลับไปเปิดเผย(Data confidentiality) เปลี่ยนแปลงข้อมูล(Data integrity) และทำให้หยุดบริการ(System availability) เปรียบเทียบเป้าหมายการป้องกัน และการสร้างความเสียหายมาเปรียบเทียบได้ดังนี้เป้าหมายของการป้องกันเป้าหมายการคุกคาม หรือสร้างความเสียหายรักษาความลับนำความลับไปเปิดเผย(Data confidentiality)รักษาความสมบูรณ์เปลี่ยนแปลงข้อมูล(Data integrity)พร้อมใช้ตลอดเวลาทำให้หยุดบริการ(System availability) แอดแวร์ (Adware)โปรแกรมสนับสนุนโฆษณา (Advertising Supported Software) เกิดจากบริษัทต่าง ๆ จะพยายามโฆษณาสินค้าของตน จึงแอบติดตั้งโปรแกรมในเครื่องของผู้ใช้ให้แสดงป้ายโฆษณา เพื่อชวนผู้ใช้ไปซื้อสินค้าเหล่านั้น สปายแวร์ (Sypware)เป็นซอฟต์แวร์ที่เขียนมาเพื่อส่งข้อมูลส่วนบุคคลของคุณไปยังคน หรือสิ่งที่ได้กำหนดไว้ ลักษณะจะคล้ายกับ Cookies แต่ว่า spyware นี้จะเป็น third-party cookies ปกติแล้ว Cookies นั้นจะเป็นเครื่องมือที่อำนวยความสะดวกให้กับผู้ใช้งานอินเทอร์เน็ตหรือโปรแกรมบางอย่าง เช่นเมื่อใช้อินเทอร์เน็ต และเข้าเว็บที่คุณได้ติดตั้ง Cookies ไว้จะแสดงผลได้อย่างรวดเร็ว หรือจะช่วยจำค่าที่คุณได้ปรับแต่งโปรแกรมเอาไว้ และ ในบาง Cookies จะส่งผลการใช้งานโปรแกรมกลับไปยังผู้พัฒนาเพื่อดูผลการใช้งานจะได้นำมาปรับปรุงต่อไป แต่ว่า spyware จะเป็น Cookies ที่แอบแฝงเข้ามา โดยที่คุณไม่รู้ตัวเพื่อวัตถุประสงค์เพื่อการโฆษณาหรือแอบนำข้อมูลส่วนตัวของคุณส่งออกไป ผู้ผลิตส่วนใหญ่จะแจ้งเรื่องการส่งการ รายงานผลกลับในระหว่างการลงโปรแกรมอยู่แล้ว ผู้ใช้งานควรอ่านเงื่อนไขให้ดีก่อนตอบตกลง 10.4 การรับรองผู้ใช้ (User authentication)การรักษาความปลอดภัยให้กับระบบที่สำคัญมาก คือการพิสูจน์ว่าผู้ใช้ที่กำลังใช้งานอยู่คือใคร มีสิทธิ์เข้าใช้ระบบเพียงใด โดยผ่านการ login เข้าสู่ระบบ ซึ่งคอมพิวเตอร์ในยุคแรก ๆ ไม่ระบบนี้ สำหรับการรับรองสิทธิ์นั้นมี 4 วิธีในการรับรองสิทธิ์ คือ 1. รหัสผ่าน (ความจำ ให้แทนกันได้) 2. ตอบคำถามให้ถูกต้อง (ความจำ ให้แทนกันได้) 3. กุญแจ หรือบัตรผ่าน (วัตถุ ให้แทนกันได้) 4. ลายนิ้วมือ ม่านตา หรือลายเซ็นต์ (ลักษณะเฉพาะ ให้แทนกันไม่ได้)การพิสูจน์ตัวตน คือขั้นตอนการยืนยันความถูกต้องของหลักฐาน (Identity) ที่แสดงว่าเป็นบุคคลที่กล่าวอ้างจริง ในทางปฏิบัติจะแบ่งออกเป็น 2 ขั้นตอน คือการระบุตัวตน (Identification) คือขั้นตอนที่ผู้ใช้แสดงหลักฐานว่าตนเองคือใครเช่น ชื่อผู้ใช้ (username)การพิสูจน์ตัวตน (Authentication) คือขั้นตอนที่ตรวจสอบหลักฐานเพื่อแสดงว่าเป็นบุคคลที่กล่าวอ้างจริง10.5 การเข้ารหัส (Encryption)ปัจจุบันระบบเครือข่ายเชื่อมต่อกันไปทั่วโลก ข้อมูลที่อยู่ในคอมพิวเตอร์มีความสำคัญที่จะต้องปกป้อง จึงมีเทคนิคการเข้ารหัสข้อมูล เพื่อป้องกันการอ่านข้อมูล สำหรับกลไกพื้นฐานในการเข้ารหัสข้อมูลคือ 1. ข้อมูลถูกเข้ารหัส(encode) จากข้อมูลธรรมดา(Plain text) ให้อยู่ในรูปที่อ่านไม่ออก(Cipher text) 2. ข้อมูลที่ถูกเข้ารหัสแล้ว(Cipher text) ถูกส่งไปในอินเทอร์เน็ต 3. ผู้รับข้อมูลทำการถอดรหัส (Decode) ให้กลับมาเป็นข้อมูลธรรมดา (Plain text)สำหรับการเข้ารหัสที่นิยมกันมี 2 วิธีคือการใช้ Secret-key encryption เป็นการเข้ารหัสที่รู้กันระหว่าคอมพิวเตอร์ 2 เครื่อง หรือผู้ใช้ 2 คน ส่วน Public-key encryption เป็นการเข้ารหัสที่มี key 2 ส่วนคือ public key และ private key เช่นระบบ SSL ที่นิยมใช้กันในปัจจุบัน Secure Sockets Layer (SSL) คืออะไรSecure Sockets Layer (SSL) คือ โปรโตคอลความปลอดภัย ที่ถูกใช้เป็นมาตรฐาน ในการเพิ่มความปลอดภัย ในการสื่อสารหรือส่งข้อมูลบนเครือข่ายอินเทอร์เน็ต ในปัจจุบันเทคโนโลยี SSL ได้ถูกทำการติดตั้งลงบนบราวเซอร์ อาทิ IE, Netscape และอื่นๆมากมายอยู่เรียบร้อยแล้วโปรโตคอล SSL จะใช้ Digital Certificate ในการสร้างท่อสื่อสาร ที่มีความปลอดภัยสูง สำหรับตรวจสอบ และเข้ารหัสลับการติดต่อสื่อสารระหว่าง client และ server หน้าที่ของ SSL จะแบ่งออกเป็น 3 ส่วนใหญ่ๆคือ1. การตรวจสอบ server ว่าเป็นตัวจริง ตัวโปรแกรม client ที่มีขีดความสามารถในการสื่อสารแบบ SSL จะสามารถตรวจสอบเครื่อง server ที่ตนกำลังจะไปเชื่อมต่อได้ว่า server นั้นเป็น server ตัวจริงหรือไม่ หน้าที่นี้ของ SSL เป็นหน้าที่ที่สำคัญ โดยเฉพาะอย่างยิ่งในกรณีที่ client ต้องการที่จะส่งข้อมูลที่เป็นความลับ (เช่น หมายเลข credit card) ให้กับ server ซึ่ง client จะต้องตรวจสอบก่อนว่า server เป็นตัวจริงหรือไม่2. การตรวจสอบว่า client เป็นตัวจริง server ที่มีขีดความสามารถในการสื่อสารแบบ SSL จะตรวจสอบ client หรือผู้ใช้ว่าเป็นตัวจริงหรือไม่ หน้าที่นี้ของ SSL จะมีประโยชน์ในกรณีเช่น ธนาคารต้องการที่จะส่งข้อมูลลับทางการเงินให้แก่ลูกค้าของตนผ่านทางเครือข่าย Internet (server ก็จะต้องตรวจสอบ client ก่อนว่าเป็น client นั้นจริง)3. การเข้ารหัสลับการเชื่อมต่อ ในกรณีนี้ ข้อมูลทั้งหมดที่ถูกส่งระหว่าง client และ server จะถูกเข้ารหัสลับ โดยโปรแกรมที่ส่งข้อมูลเป็นผู้เข้ารหัสและโปรแกรมที่รับข้อมูลเป็นผู้ถอดรหัส (โดยใช้วิธี public key) นอกจากการเข้ารหัสลับในลักษณะนี้แล้ว SSL ยังสามารถปกป้องความถูกต้องสมบูรณ์ของข้อมูลได้อีกด้วย กล่าวคือ ตัวโปรแกรมรับข้อมูลจะทราบได้หากข้อมูลถูกเปลี่ยนแปลงไปในขณะกำลังเดินทางจากผู้ส่งไปยังผู้รับ 10.6 ปฏิบัติการฝึกป้องกัน และรักษา- ฝึกส่งข้อมูลระหว่างคอมพิวเตอร์ เช่น email หรือ telnet หรือ secure sheel - ฝึกตรวจสอบบริการของ server เช่น scan port, nmap เป็นต้น - ฝึกลับลอบข้อมูลที่ไม่มีการเข้ารหัส และหาทางป้องกัน เช่น sniffer และตรวจสอบ log file - ฝึกฆ่าไวรัส และ spyware - ค้นคว้าข้อมูลเกี่ยวกับ การป้องกัน และระบบความปลอดภัย จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
ระบบต่าง ๆ ภายในคอมพิวเตอร์ตั้งแต่อดีตถึงปัจจุบัน มี 11 ระบบ1. ระบบที่ไม่มีระบบปฏิบัติการ (Non operating system)ยุคแรก ๆ คอมพิวเตอร์มีแต่เครื่องเปล่า ๆ ผู้ใช้ต้องเขียนโปรแกรมสั่งงาน ตรวจสอบการทำงาน ป้อนข้อมูล และควบคุมเอง ทำให้ระยะแรกใช้กันอยู่ในวงจำกัด 2. ระบบงานแบ็ตซ์ (Batch system)ในอดีต คอมพิวเตอร์จะทำงานได้ครั้งละ 1 งาน การสั่งงานคอมพิวเตอร์ให้มีมีประสิทธิภาพยิ่งขึ้น ทำได้โดยการรวมงานที่คล้ายกัน เป็นกลุ่ม แล้วส่งให้เครื่องประมวลผล โดยผู้ทำหน้าที่รวมงาน จะรับงานจากนักพัฒนาโปรแกรม มาจัดเรียงตามความสำคัญ และตามลักษณะของโปรแกรม จัดเป็นกลุ่มงาน แล้วส่งให้คอมพิวเตอร์ประมวลผล 3. ระบบบัฟเฟอร์ (Buffering system)การทำงานเพื่อขยายขีดความสามารถของระบบ ทำให้หน่วยรับ-แสดงผลสามารถทำงานไปพร้อม ๆ กับการประมวลผลของซีพียู ในขณะที่ประมวลผลคำสั่งที่ถูกโหลดเข้าซีพียูนั้น จะมีการโหลดข้อมูลเข้าไปเก็บในหน่วยความจำก่อน เมื่อถึงเวลาประมวลผลจะสามารถทำงานได้ทันที และโหลดข้อมูลต่อไปเข้ามาแทนที่ หน่วยความจำที่ทำหน้าที่เก็บข้อมูลที่เตรียมพร้อมนี้เรียกว่า บัฟเฟอร์ (buffer)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img]');}[img]http://img.cmpnet.com/tw/encyclopedia/img/_STRMBUF.GIF[/img] 4. ระบบสพูลลิ่ง (Spooling)Simultaneous Peripheral Operating On-Line เป็น multiprogramming พื้นฐาน ทำให้ซีพียูทำงานเต็มประสิทธิภาพ เพราะทำให้สามารถทำงานได้ 2 งานพร้อมกัน งานแรกคือประมวลผลในส่วนของซีพียู งานที่สองคือการรับ-แสดงผลข้อมูล ซึ่งต่างกับ buffer ที่ซีพียู และหน่วยรับ-แสดงผลทำงานร่วมกัน และ spooling มี job pool ทำให้สามารถเลือกการประมวลผลตามลำดับก่อนหลังได้ โดยคำนึงถึง priority เป็นสำคัญ 5. ระบบมัลติโปรแกรมมิ่ง (Multiprogramming)การทำงานที่โหลดโปรแกรมไปไว้ในหน่วยความจำหลัก และพร้อมที่จะประมวลผลได้ทันที ระบบปฏิบัติการจะเลือกงานเข้าไปประมวลผลจนกว่าจะหยุดคอยงานบางอย่าง ในช่วงที่หยุดรอจะดึงงานเข้าไปประมวลผลต่อทันที ทำให้มีการใช้ซีพียูได้อย่างมีประสิทธิภาพ 6. ระบบแบ่งเวลา (Time-sharing หรือ Multitasking)เป็นการขยายระบบ multiprogramming ทำให้สามารถสับเปลี่ยนงานของคนหลาย ๆ คนเข้าสู่ซีพียู ซึ่งการสับเปลี่ยนที่ทำด้วยความเร็วสูงจะทำให้ผู้ใช้รู้สึกเหมือนครอบครองซีพียูอยู่เพียงผู้เดียว 7. ระบบเรียลไทม์ (Real-time system)จุดประสงค์อีกอย่างหนึ่งของ ระบบปฏิบัติการ คือ ระบบเวลาจริง(Real-time system) หมายถึงการตอบสนองทันที เช่นระบบ Sensor ที่ส่งข้อมูลให้คอมพิวเตอร์ เครื่องมือทดลองทางวิทยาศาสตร์ ระบบภาพทางการแพทย์ ระบบควบคุมในโรงงานอุตสาหกรรม ระบบหัวฉีดในรถยนต์ ระบบควบคุมการยิง ระบบแขนกล และเครื่องใช้ในครัวเรือนทั้งหมดReal-time แบ่งได้ 2 ระบบ1. Hard real-time system เป็นระบบที่ถูกรับรองว่าจะได้รับการตอบสนองตรงเวลา และหยุดรอไม่ได้2. Soft real-time system เป็นระบบ less restrictive type ที่สามารถรอให้งานอื่นทำให้เสร็จก่อนได้ 8. ระบบคอมพิวเตอร์ส่วนบุคคล (Personal Computer System)ปัจจุบันคอมพิวเตอร์ราคาถูกลง มีการพัฒนาอุปกรณ์ต่าง ๆ อย่างต่อเนื่อง ทั้งแป้นพิมพ์ เมาส์ จอภาพ หน่วยความจำ หน่วยประมวลผล เป็นต้น และการใช้คอมพิวเตอร์ไม่ได้มุ่งเน้นด้านธุรกิจเพียงอย่างเดียว แต่นำไปใช้เพื่อความบันเทิงในบ้านมากขึ้น และกลายเป็นสิ่งจำเป็นสำหรับทุกองค์กร นอกจากคอมพิวเตอร์แบบตั้งโต๊ะ(Desktop) ยังมีคอมพิวเตอร์แบบสมุดโน๊ต(Notebook) และคอมพิวเตอร์มือถือ (PDA) ปัจจุบันมีโทรศัพท์มือถือที่ทำงานแบบคอมพิวเตอร์ และใช้ดูหนังฟังเพลง หรือประมวลผลต่าง ๆ ที่ซับซ้อนมากขึ้น ใกล้เคียงกับคอมพิวเตอร์แบบตั้งโต๊ะยิ่งขึ้น 9. ระบบเวอร์ชวลแมชีน (Virtual machine)เครื่องเสมือน ทำให้ผู้ใช้คอมพิวเตอร์รู้สึกเหมือนใช้คอมพิวเตอร์เพียงคนเดียว แต่ในความเป็นจริงจะบริการให้ผู้ใช้หลายคน ในหลายโปรเซส โดยใช้เทคโนโลยี Virtual machine บริการงานต่าง ๆ ให้กับผู้ใช้ได้หลาย ๆ งานพร้อมกัน 10. ระบบมัลติโปรเซสเซอร์ (Multiprocessor system)Symmetric-multiprocessingการประมวลผลแบบสมมาตร หมายถึงการประมวลผลหลายโปรเซสเซอร์ที่ไม่มีโปรเซสเซอร์ตัวใดรับโหลดมากกว่าตัวอื่นAsymmetric-multiprocessingการประมวลผลแบบไม่สมมาตร หมายถึงการมีโปรเซสเซอร์ตัวหนึ่งเป็นตัวควบคุม และแบ่งงานแต่ละแบบให้โปรเซสเซอร์แต่ละตัวตามความเหมาะสม 11. ระบบแบบกระจาย (Distributed system)ระบบเครือข่าย ที่กระจายหน้าที่ กระจายการเป็นศูนย์บริการ และเชื่อมต่อเข้าด้วยกัน ด้วยจุดประสงค์ต่าง ๆ กัน ในมาตรฐาน TCP/IP ซึ่งเป็นที่ยอมรับทั้ง Windows, Linux, Unix และ Mac ทำให้ทั้งหมดสามารถสื่อสารกันรู้เรื่องเข้าใจ และก่อให้เกิดประโยชน์ร่วมกัน 1.1 ประเภทของเครื่องคอมพิวเตอร์ อ้างอิงจาก http://www.nectec.or.th/courseware/computer/comp-using/index.html1.1.1 ซุปเปอร์คอมพิวเตอร์ (Super computer)คอมพิวเตอร์ขนาดใหญ่ มีกำลังมากที่สุด ราคาแพงที่สุด สามารถประมวลผลคำสั่งได้นับพันล้านคำสั่งในหนึ่งวินาที มักใช้เก็บข้อมูลขนาดใหญ่ และต้องการความเร็วสูง เช่น สถิติประชากร การขุดเจาะน้ำมัน พยากรณ์อากาศ หรือวิจัยอาวุธ เป็นต้นซูเปอร์คอมพิวเตอร์ (Supercomputer) เป็นคอมพิวเตอร์ที่มีสมรรถนะในการทำงานสูงกว่า คอมพิวเตอร์แบบอื่น ดังนั้นจึงมีผู้เรียกอีกชื่อหนึ่งว่า คอมพิวเตอร์สมรรถนะสูง (High Performance Computer) คอมพิวเตอร์ประเภทนี้ สามารถคำนวนเลขที่มีจุดทศนิยม ด้วยความเร็วสูงมาก ขนาดหลายร้อยล้านจำนวนต่อวินาที งานที่ให้คอมพิวเตอร์ประเภทนี้ทำแค่ 1 วินาที ถ้าหากเอามาให้คนอย่างเราคิด อาจจะต้องใช้เวลานานกว่าร้อยปี ด้วยเหตุนี้ จึงเหมาะที่จะใช้คอมพิวเตอร์ประเภทนี้ เมื่อต้องมีการคำนวนมากๆ อย่างเช่น งานวิเคราะห์ภาพถ่าย จากดาวเทียมอุตุนิยมวิทยา หรือดาวเทียมสำรวจทรัพยากร งานวิเคราะห์พยากรณ์อากาศ งานทำแบบจำลองโมเลกุล ของสารเคมี งานวิเคราะห์โครงสร้างอาคาร ที่ซับซ้อน คอมพิวเตอร์ประเภทนี้ มีราคาค่อนข้างแพง ปัจจุบันประเทศไทย มีเครื่องซูเปอร์คอมพิวเตอร์ Cray YMP ใช้ในงานวิจัย อยู่ที่ห้องปฏิบัติการคอมพิวเตอร์สมรรถภาพสูง (HPCC) ศูนย์เทคโนโลยีอิเล็กทรอนิกส์ และคอมพิวเตอร์แห่งชาติ ผู้ใช้เป็นนักวิจัยด้านวิศวกรรม และวิทยาศาสตร์ทั่วประเทศ บริษัทผู้ผลิตที่เด่นๆ ได้แก่ บริษัทเครย์ รีเสิร์ซ (Cray Research), บริษัท เอ็นอีซี (NEC) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]');}[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]1.1.2 เมนเฟรมคอมพิวเตอร์ (Mainframe computer)คอมพิวเตอร์ขนาดใหญ่ แต่เล็กกว่า super computer นิยมใช้งานกับธุรกิจขนาดใหญ่ เช่น ธนาคาร โรงแรม หรือ server ขององค์การขนาดใหญ่คอมพิวเตอร์ที่มีสมรรถนะสูงมาก แต่ยังต่ำกว่าซูเปอร์คอมพิวเตอร์ คือปกติสามารถทำงานได้รวดเร็ว หลายสิบล้านคำสั่งต่อวินาที สำหรับสาเหตุที่ได้ชื่อว่า เมนเฟรมคอมพิวเตอร์ ก็เพราะครั้งแรกที่สร้างคอมพิวเตอร์ลักษณะนี้ได้สร้างไว้บนฐานรองรับ ที่เรียกว่า คัสซี่ (Chassis) โดยมีชื่อเรียกฐานรองรับนี้ว่า เมนเฟรม นั่นเองเหมาะกับการใช้งาน ทั้งในด้านวิศวกรรม วิทยาศาสตร์ และธุรกิจ โดยเฉพาะงานที่เกี่ยวข้องกับข้อมูลจำนวนมากๆ เช่น งานธนาคาร ซึ่งต้องตรวจสอบบัญชีลูกค้าหลายคน งานของสำนักงานทะเบียนราษฎร์ ที่เก็บรายชื่อประชาชนประมาณ 60 ล้านคน พร้อมรายละเอียดต่างๆ งานจัดการบันทึกการส่งเงิน ของผู้ประกับตนหลายล้านคน ของสำนักงานประกันสังคม กระทรวงแรงงาน คอมพิวเตอร์เมนเฟรม ที่มีชื่อเสียงมาก คือ เครื่องของบริษัท IBMในปัจจุบัน ความนิยมใช้เครื่องเมนเฟรม ในหน่วยงานต่างๆ ได้ลดน้อยลงมาก เพราะราคาเครื่องค่อนข้างแพง การใช้งานค่อนข้างยาก และมีผู้รู้ด้านนี้ค่อนข้างน้อย สถานศึกษาที่มีเครื่องระดับนี้ไว้ใช้สอน ก็มีเพียงไม่กี่แห่ง เหตุผลสำคัญอีกประการหนึ่งคือ คอมพิวเตอร์ขนาดเล็กกว่า ได้รับการพัฒนาให้มีสมรรถนะมากขึ้น จนสามารถทำงานได้เท่ากับเครื่องเมนเฟรม แต่ราคาถูกกว่า อย่างไรก็ตามเครื่องเมนเฟรม ยังคงมีความจำเป็น ในงานที่ต้องใช้ข้อมูลมากๆ พร้อมๆ กันอยู่ต่อไปอีก ทั้งนี้เพราะ เครื่องเมนเฟรมสามารถพ่วงต่อ และควบคุมอุปกรณ์รอบข้าง (Peripheral) เช่น เครื่องพิมพ์ เครื่องขับเทปแม่เหล็ก เครื่องขับจานแม่เหล็ก ฯลฯ ได้เป็นจำนวนมากในเวลาเดียวกันif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.nexconsulting.com/images/mainframe.gif[/img]');}[img]http://www.nexconsulting.com/images/mainframe.gif[/img]1.1.3 มินิคอมพิวเตอร์ (Mini computer)คอมพิวเตอร์ที่ใช้ในธุรกิจขนาดกลาง และเล็ก ต้องการความสามารถในการประมวลผลสูง และราคาไม่สูงเกินไป เช่น AS/400 เป็นต้นเป็นคอมพิวเตอร์ที่มีสมรรถนะน้อยกว่าเครื่องเมนเฟรม คือทำงานได้ช้ากว่า และควบคุมอุปกรณ์รอบข้างได้น้อยกว่า อย่างไรก็ตามจุดเด่นสำคัญ ของเครื่องมินิคอมพิวเตอร์ ก็คือ ราคาย่อมเยากว่าเมนเฟรม การใช้งานก็ไม่ต้องใช้ บุคลากรมากนัก นอกจากนั้น ยังมีผู้ที่รู้วิธีใช้มากกว่าด้วย เพราะเครื่องประเภทนี้ มีใช้ตามสถานศึกษา ระดับอุดมศึกษาหลายแห่งมินิคอมพิวเตอร์ เหมาะกับงานหลากหลายประเภท คือใช้ได้ทั้งในงานวิศวกรรม วิทยาศาสตร์ อุตสาหกรรม เครื่องที่มีใช้ตามหน่วยงานราชการระดับกรมส่วนใหญ่ มักจะเป็นเครื่องประเภทนี้if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]');}[img]http://www-1.ibm.com/ibm/history/exhibits/logo/images/920913.jpg[/img]1.1.4 คอมพิวเตอร์ส่วนบุคคล (Personal computer)คอมพิวเตอร์แบบตั้งโต๊ะ(Desktop computer) หาซื้อได้ง่าย ราคาไม่แพง ใช้งานได้หลายประเภทเป็นคอมพิวเตอร์ขนาดเล็ก และใช้ทำงานคนเดียว จึงนิยมเรียกอีกชื่อหนึ่งว่าคอมพิวเตอร์ส่วนบุคคล (Personal Computer) เป็นคอมพิวเตอร์ใช้งานที่พบได้อย่างแพร่หลาย จัดว่าเป็นเครื่องคอมพิวเตอร์ขนาดเล็ก ทั้งระบบใช้งานครั้งล่ะคนเดียว หรือใช้งานในลักษณะเครือข่าย แบ่งได้หลายลักษณะตามขนาด เช่นเครื่องคอมพิวเตอร์ส่วนบุคคลแบบตั้งโต๊ะ (Personal Computer) หรือแบบพกพา (Portable Computer) หรือแบ่งตามผู้ผลิต ได้แก่ เครื่องกลุ่ม IBM, IBM Compatible และแมคอินทอช (Macintosh) เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/istylex_c800.gif[/img]1.1.5 โน๊ตบุค (Notebook computer)คอมพิวเตอร์ส่วนบุคคล ที่สามารถพกพาไปในที่ต่าง ๆ เช่นบนรถ บนเครื่องบิน มีขนาดเท่าสมุดโน๊ต และมีราคาสูงกว่า Personal computer เล็กน้อยif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]');}[img]http://www.belta.com/2003/admin/editor/upload/mody.gif[/img]1.1.6 พีดีเอ (PDA: Personal Digital Assistant)คอมพิวเตอร์ขนาดเล็กเท่าฝ่ามือ ปัจจุบันเป็นโทรศัพท์ได้ด้วย ทำให้ไม่ต้องพกอุปกรณ์หลายชิ้น แต่ความสามารถด้านการประมวลผลยังไม่สามารถเทียบเท่า Personal computerif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]p900.jpg[/img]');}[img]p900.jpg[/img]1.1.7 คอมพิวเตอร์เครือข่าย (Network computer)คอมพิวเตอร์ที่นำมาประยุกต์ให้เชื่อมต่อคอมพิวเตอร์หลาย ๆ เครื่อง เข้าด้วยกัน และนำมาใช้ประมวลผลให้เกิดประสิทธิภาพสูงสุด เช่น การ share ข้อมูลในระบบอินเทอร์เน็ต เป็นต้นการจำแนกคอมพิวเตอร์ ตามลักษณะวิธีการทำงานภายในเครื่องคอมพิวเตอร์แอนะล็อกคอมพิวเตอร์ (Analog computer) เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ไม่ได้ใช้ค่าตัวเลขเป็นหลักของการคำนวณ แต่จะใช้ค่าระดับแรงดันไฟฟ้าแทน ไม้บรรทัดคำนวณ อาจถือเป็นตัวอย่างหนึ่งของแอนะล็อกคอมพิวเตอร์ ที่ใช้ค่าตัวเลขตามแนวความยาวไม้บรรทัดเป็นหลักของการคำนวณ โดยไม้บรรทัดคำนวณจะมีขีดตัวเลขกำกับอยู่ เมื่อไม้บรรทัดหลายอันมรประกบรวมกัน การคำนวณผล เช่น การคูณ จะเป็นการเลื่อนไม้บรรทัดหนึ่งไปตรงตามตัวเลขของตัวตั้งและตัวคูณของขีดตัวเลขชุดหนึ่ง แล้วไปอ่านผลคูณของขีดตัวเลขอีกชุดหนึ่งแอนะล็อกคอมพิวเตอร์แบบอิเล็กทรอนิกส์จะใช้หลักการทำนองเดียวกัน โดยแรงดันไฟฟ้าจะแทนขีดตัวเลขตามแนวยาวของไม้บรรทัด แอนะล็อกคอมพิวเตอร์จะมีลักษณะเป็นวงจรอิเล็กทรอนิกส์ที่แยกส่วนทำหน้าที่เป็นตัวกระทำและเป็นฟังก์ชันทางคณิตศาสตร์ จึงเหมาะสำหรับงานคำนวณทางวิทยาศาสตร์และวิศวกรรมที่อยู่ในรูปของสมการคณิตศาสตร์ เช่น การจำลองการบิน การศึกษาการสั่งสะเทือนของตึกเนื่องจากแผ่นดินไหว ข้อมูลตัวแปรนำเข้าอาจเป็นอุณหภูมิความเร็วหรือความดันอากาศ ซึ่งจะต้องแปลงให้เป็นค่าแรงดันไฟฟ้า เพื่อนำเข้าแอนะล็อกคอมพิวเตอร์ผลลัพธ์ที่ได้ออกมาเป็นแรงดันไฟฟ้าแปรกับเวลาซึ่งต้องแปลงกลับไปเป็นค่าของตัวแปรที่กำลังศึกษา ในปัจจุบันไม่ค่อยพบเห็นแอนะล็อกคอมพิวเตอร์เท่าไรนักเพราะผลการคำนวณมีความละเอียดน้อย ทำให้มีขีดจำกัดใช้ได้กับงานเฉพาะบางอย่างเท่านั้นดิจิทัลคอมพิวเตอร์ (Digital computer) คอมพิวเตอร์ที่พบเห็นทั่วไปในปัจจุบัน จัดเป็นดิจิทัลคอมพิวเตอร์แทบทั้งหมด ดิจิทัลคอมพิวเตอร์เป็นเครื่องคำนวณอิเล็กทรอนิกส์ที่ใช้งานเกี่ยวกับตัวเลข มีหลักการคำนวณที่ไม่ใช่แบบไม้บรรทัดคำนวณ แต่เป็นแบบลูกคิด โดยแต่และหลักของลูกคิดคือ หลักหน่วย หลักร้อย และสูงขึ้นไปเรื่อย ๆ เป็นระบบเลขฐานสินที่แทนตัวเลขจากศูนย์ถ้าเก้าไปสิบตัวตามระบบตัวเลขที่ใช้ในชีวิตประจำวัน ค่าตัวเลขของการคำนวณในดิจิทัลคอมพิวเตอร์จะแสดงเป็นหลักเช่นเดียวกัน แต่จะเป็นระบบเลขฐานสองที่มีสัญลักษณ์ตัวเลขเพียงสองตัว คือเลขศูนย์กับเลขหนึ่งเท่านั้น โดยสัญลักษณ์ตัวเลขทั้งสองตัวนี้ จะแทนลักษณะการทำงานภายในซึ่งเป็นสัญญาณไฟฟ้าที่ต่างกัน การคำนวณภายในดิจิทัลคอมพิวเตอร์จะเป็นการประมวลผลด้วยระบบเลขฐานสองทั้งหมด ดังนั้นเลขฐานสิบที่เราใช้และคุ้นเคยจะถูกแปลงไปเป็นระบบเลขฐานสองเพื่อการคำนวณภายในคอมพิวเตอร์ ผลลัพธ์ที่ได้ก็ยังเป็นเลขฐานสองอยู่ ซึ่งคอมพิวเตอร์จะแปลงเป็นเลขฐานสิบเพื่อแสดงผลให้ผู้ใช้เข้าใจได้ง่าย 1.2 องค์ประกอบของคอมพิวเตอร์1.2.1 ฮาร์ดแวร์ (Hardware)องค์ประกอบของคอมพิวเตอร์ที่จับต้องได้ แบ่งเป็น 4 หน่วย คือ Input unit, CPU(Central Processing Unit), Storage และ Output unitif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]');}[img]http://www.school.net.th/library/snet1/hardware/computer.gif[/img]1.2.2 ซอฟต์แวร์ (Software)คือ โปรแกรม หรือชุดคำสั่งที่เขียนขึ้น เพื่อสั่งให้คอมพิวเตอร์ทำงาน เป็นตัวเชื่อมระหว่าง Hardware กับผู้ใช้ ให้สามารถสื่อสารกันได้1.2.3 บุคลากร (Peopleware)บุคคลผู้สั่งให้คอมพิวเตอร์ โดยใช้ซอฟต์แวร์ ซึ่งเป็นภาษาที่คอมพิวเตอร์เข้าใจ ซึ่งบุคคลจะมีหลายบทบาทในการเข้าใช้คอมพิวเตอร์- นักวิเคราะห์ และออกแบบระบบ (System analyst and design)- โปรแกรมเมอร์ (Programmer)- ผู้บริหารฐานข้อมูล (Database administrator)- ผู้ปฏิบัติการ (Operator)- ผู้ใช้ (User)- ผู้บริหาร (Administrator)1.2.4 ข้อมูล (Data)องค์ประกอบสำคัญที่ทำให้คอมพิวเตอร์มีค่า เพราะข้อมูลที่เก็บในคอมพิวเตอร์ จะนำไปใช้ในการประกอบการตัดสินใจ หรือช่วยการแสดงผล หรือนำเสนอในรูปแบบต่าง ๆ ข้อมูลบางอย่างอาจมีค่ามากกว่า hardware เสียอีก1.2.5 กระบวนการทำงาน (Procedure)การทำงานให้ได้ผลตามต้องการต้องมีลำดับการทำงาน หรือขั้นตอนที่เป็นไปได้ในทางปฏิบัติ จึงต้องมีคู่มือผู้ใช้ หรือคู่มือระบบ ให้ผู้ใช้จัดการกับคอมพิวเตอร์ และใช้งานคอมพิวเตอร์ได้อย่างมีประสิทธิภาพที่สุด
1.3 ปฏิบัติการสำรวจข้อมูล และถอดประกอบเครื่อง- จัดคอมพิวเตอร์ให้ฝึกถอดประกอบคอมพิวเตอร์จากห้องปฏิบัติการ - มอบหมายให้เดินสำรวจการใช้คอมพิวเตอร์ในสถาบัน - ให้ค้นข้อมูลคอมพิวเตอร์ที่ใช้ในองค์การต่าง ๆ และยกตัวอย่างการใช้ประโยชน์ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบคอมพิวเตอร์ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
2. ระบบปฏิบัติการ(Operating System)
2.1 หน้าที่ของระบบปฏิบัติการ2.1.1 การติดต่อกับผู้ใช้ หรือยูเซอร์อินเทอร์เฟซ (User interface)ผู้ใช้สามารถสั่งให้คอมพิวเตอร์ทำงาน จึงเป็นหน้าที่ของระบบปฏิบัติการในเป็นตัวกลาง และเตรียมสภาพแวดล้อมต่าง ๆ ให้กับผู้ใช้ในการสั่งงานคอมพิวเตอร์ หลังจากนั้นจะใช้คำสั่งผ่านทาง System call เพื่อปฏิบัติสิ่งที่ผู้ใช้ต้องการใช้สามารถติดต่อหรือควบคุมการทำงานของเครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการได้ โดยระบบปฏิบัติการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพื่อรอรับคำสั่งจากผู้ใช้โดยตรง ตัวระบบปฏิบัติการจึงเป็นตัวกลางที่ทำหน้าที่เชื่อมโยงระหว่างผู้ใช้กับฮาร์ดแวร์ของเครื่อง นอกจากนี้ผู้ใช้อาจเขียนโปรแกรมเพื่อใช้งานกรณีนี้ผู้ใช้ก็สามารถติดต่อกับระบบปฏิบัติการได้โดยผ่านทาง System Call2.1.2 ควบุคมดูแลอุปกรณ์ (Control devices)ระบบปฏิบัติการมีหน้าที่ควบคุมอุปกรณ์ต่าง ๆ ให้ทำงานสอดคล้องกับความต้องการ โดยไม่เกิดข้อผิดพลาด เช่นการควบคุมดิสก์ จอภาพ หรือซีดีรอม เป็นต้น ระบบปฏิบัติการจะรับคำสั่งจากผู้ใช้ และเรียกใช้ System call ขึ้นมาทำงาน ให้ได้ผลตามต้องการให้ความสะดวกแก่ผู้ใช้ในการใช้งานอุปกรณ์ต่างๆ ได้ง่าย เช่น การเข้าถึงข้อมูลในแฟ้มหรือติดต่อกับอุปกรณ์รับ/แสดงผลข้อมูล จึงทำให้ผู้พัฒนาโปรแกรมไม่จำเป็นต้องเขียนโปรแกรมเพื่อควบคุมตัวขับดิสก์เพราะระบบปฏิบัติการจัดบริการให้มีคำสั่งสำหรับติดต่อกับอุปกรณ์เหล่านี้ได้อย่างง่ายๆเนื่องจากผู้ใช้เครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการ อาจไม่มีความจำเป็นต้องมีความรู้ความเข้าใจถึงหลักการทำงานภายในของเครื่องดังนั้น ระบบปฏิบัติการจึงมีหน้าที่ควบคุมการทำงานของโปรแกรม การทำงานของอุปกรณ์ต่างๆ เพื่อให้การทำงานของระบบเป็นไปอย่างถูกต้องและสอดคล้องกัน ระบบปฏิบัติการจึงมีส่วนประกอบของหน้าที่ต่างๆ ที่ควบคุมอุปกรณ์แต่ละชนิดที่มีหน้าที่แตกต่างกันไป โดยผู้ใช้อาจเรียกใช้ผ่านทาง System Call หรือเขียนโปรแกรมขึ้นมาควบคุมอุปกรณ์เหล่านั้น2.1.3 จัดสรรทรัพยากร หรือรีซอร์สระบบ (Resources management)เพราะทรัพยากรของระบบมีจำกัด และมีหลายประเภท ระบบปฏิบัติการต้องบริการให้ผู้ใช้ ได้ใช้ทรัพยากรต่าง ๆ ให้เป็นไปอย่างต่อเนื่อง ตัวอย่างทรัพยากร ที่ระบบปฏิบัติการต้องจัดการ เช่น ซีพียู หน่วยความจำ ซีดีรอม เครื่องพิมพ์ เป็นต้นทรัพยากรหลักที่ต้องมีการจัดสรร ได้แก่ หน่วยประมวลผลกลาง หน่วยความจำหลัก อุปกรณ์รับ/แสดงผลข้อมูล และแฟ้มข้อมูล เช่น การจัดลำดับให้บริการใช้เครื่องพิมพ์การสับหลีกงานหลายงานในหน่วยความจำหลักและการจัดสรรหน่วยความจำหลักให้กับโปรแกรมทั้งหลาย ทรัพยากร คือสิ่งที่ซึ่งถูกใช้ไปเพื่อให้โปรแกรมดำเนินไป 2.2 องค์ประกอบของระบบปฏิบัติการ2.2.1 การจัดการโปรเซส (Process management)2.2.2 การจัดการหน่วยความจำ (Memory management)2.2.3 การจัดการไฟล์ (File management)2.2.4 การจัดการอินพุต / เอาต์พุต (I/O system management)2.2.5 การจัดการสื่อจัดเก็บข้อมูล (Storage managment)2.2.6 เน็ตเวิร์ค (Networking)2.2.7 ระบบป้องกัน (Protection system)2.2.8 ระบบตัวแปลคำสั่ง (Command-interpreter system) 2.3 วิวัฒนาการของระบบปฏิบัติการ2.3.1 ยุคแรก (ค.ศ.1945 - 1954)ใช้หลอดสูญญากาศ ยังไม่มี OS และใช้ CARD I/O รับ-ส่งข้อมูล2.3.2 ยุคที่ 2 (ค.ศ.1955 - 1964)ใช้ทรานซิสเตอร์ เป็น Mainframe เริ่มใช้ Fortran, Cobol โดยใช้ Batch processing ควบคุม2.3.3 ยุคที่ 3 (ค.ศ.1965 - 1979)ใช้ IC(Integrated circuit) เริ่มใช้ Basic, Pascal เริ่มใช้ Multiprogramming และ time sharing2.3.4 ยุคที่ 4 (ค.ศ.1980 - ปัจจุบัน)ใช้ Multi-mode และ Virtual machine เริ่มสื่อสารระหว่างเครือข่าย (Internet) 2.4 โครงสร้างระบบปฏิบัติการ2.4.1 องค์ประกอบของระบบ หรือคอมโพแนนต์ของระบบ (System component)ระบบแบ่งงานออกเป็นส่วนย่อยต่าง ๆ เรียกว่า component เช่น input, output หรือ function ซึ่งหน้าที่ของระบบ คือจัดการส่วนย่อยต่าง ๆ ให้ทำงานร่วมกันได้อย่างมีประสิทธิภาพ ซึ่งมีงานหลาย ๆ อย่างที่ต้องจัดการ ดังนี้2.4.1.1 การจัดการโปรเซส (Process management)2.4.1.2 การจัดการหน่วยความจำ (Memory management)2.4.1.3 การจัดการไฟล์ (File management)2.4.1.4 การจัดการอินพุต / เอาต์พุต (Input/Output management)2.4.1.5 การจัดการสื่อจัดเก็บข้อมูล (Storage management)2.4.1.6 เน็ตเวิร์ค (Networking)2.4.1.7 ระบบป้องกัน (Protection system)2.4.1.8 ระบบตัวแปลคำสั่ง (Interpreter system)2.4.2 เซอร์วิสของระบบปฏิบัติการ (Operating system services)บริการพื้นฐานที่ระบบปฏิบัติการต้องมีให้กับผู้ใช้ ที่น่าสนใจมีดังนี้2.4.2.1 การเอ็กซิคิวต์โปรแกรม2.4.2.2 การปฏิบัติกับอินพุต/เอาต์พุต2.4.2.3 การจัดการกับระบบไฟล์2.4.2.4 การติดต่อสื่อสาร2.4.2.5 การตรวจจับข้อผิดพลาด2.4.2.6 การแชร์รีซอร์ส2.4.2.7 การป้องกัน2.4.3 System callsทำหน้าที่ กำหนดอินเทอร์เฟสระหว่าง process กับ operating system เพื่อการควบคุม และจัดการระบบ โดยแบ่งออกเป็น 5 กลุ่ม2.4.3.1 การควบคุมโปรเซส2.4.3.2 การจัดการกับไฟล์2.4.3.3 การจัดการดีไวซ์2.4.3.4 การบำรุงรักษาข้อมูล2.4.3.5 การติดต่อสื่อสาร 2.5 ปฏิบัติการตรวจสอบประสิทธิภาพ- ให้นักศึกษาฝึกติดตั้ง และใช้งานระบบปฏิบัติการต่าง ๆ เช่น DOS, Windows และ Linux - ชี้การทำงานแต่ละองค์ประกอบของระบบปฏิบัติการ - ฝึกใช้โปรแกรมตรวจสอบประสิทธิภาพของระบบปฏิบัติการ หรืออุปกรณ์ต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบปฏิบัติการ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
3. การจัดการโปรเซส(Process Management)
3.1 องค์ประกอบของโปรเซส1. หมายเลขโปรเซส (Process id)2. โค้ดโปรแกรม (Program code)3. ข้อมูล (Data)4. บล็อกควบคุมโปรเซส (Process control block)4.1 พอยเตอร์ (Pointer)4.2 สถานะของโปรเซส (Process state)4.3 หมายเลขโปรเซส (Program id)4.4 ตัวนับจำนวน (Program counter)4.5 รีจิสเตอร์ (Register)4.6 ข้อมูลการจัดเวลาของซีพียู (CPU scheduling information)4.7 ข้อมูลการจัดการหน่วยความจำ (Memory management information)4.8 ข้อมูลแอ็กเคาต์ (Account information)4.9 ข้อมูลสถานะอินพุต/เอาต์พุต (I/O status information)pointerprocess stateprocess idprocess counterregisterslist of open files::::::5. PSW (Program status word)6. คุณสมบัติของโปรเซส (Properties of process)6.1 ลำดับความสำคัญของโปรเซส (Priority)6.2 อำนาจหน้าที่ของโปรเซส (Authority)6.3 คุณสมบัติอื่นที่ระบบปฏิบัติการกำหนดให้มี 3.2 สถานะของโปรเซสสถานะของโปรเซสแบ่งได้ 6 สถานะ1. สถานะเริ่มต้น (New : The process is being created.)2. สถานะพร้อม (Ready : The process is waiting to be assigned to a processor.)3. สถานะรัน (Running : Instructions are being executed.)4. สถานะรอ (Wait : The process is waiting for some event to occur.)5. สถานะบล็อก (Block : The process is blocked for some event to occur.)6. สถานะสิ้นสุด (Terminate : The process has finished execution.)สถานะของโปรเซสแบ่งได้อีกแบบมี 4 สถานะ1. สถานะพร้อม (ready state) คือสถานะที่โปรเซสพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการรันของโปรเซส2. สถานะรัน (running state) คือสถานะที่โปรเซสกำลังครอบครองซีพียูอยู่ มีการรันของโปรเซสจริงๆ เพราะโปรเซสใช้ซีพียูเอ็กซีคิ้วคำสั่ง หรือโค้ดโปรแกรมของโปรเซสนั้น3. สถานะติดขัด (blocked state) คือสถานะที่โปรเซสหยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสไม่จำเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู ซึ่งจะทำให้โปรเซสอื่นเข้ามาครอบครองซีพียูในช่วงนี้ได้4. สถานะพัก (suspend state) คือสถานะที่โปรเซสไม่มีการทำงานใดๆ หยุดนิ่งอย่างสมบูรณ์ ไม่มีการรอการใช้ซีพียูหรือเหตุการณ์ใดๆ ให้เกิดขึ้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]img005.gif[/img]');}[img]img005.gif[/img] 3.3 การจัดเวลาโปรเซสระบบมัลติโปรแกรมมิ่ง คือ การจัดให้ process สามารถเข้าประมวลผลได้ตลอดเวลา ระบบแบ่งเวลา คือ การสลับ process เข้าใช้ CPU บ่อย เท่าที่ผู้ใช้รู้สึกว่าทุก process ตอบสนองได้ตลอดเวลา 1. Device queue คือ การจัดคิวของโปรเซสต่าง ๆ เช่น คิวของ I/O คิวของการรอ child process หรือคิวของอินเทอร์รัพต์ เป็นต้นเมื่อกระบวนการเข้าไปในระบบ จะถูกส่งเข้า job queue ซึ่ง queue จะรวบรวม process ทั้งหมดในระบบ และมีคำหลาย ๆ คำเกี่ยวกับการเข้าคิว เช่น ready, blocked และ running แต่ถ้า process รอเข้า I/O devices จะเรียกว่า device queue ซึ่งทุกอุปกรณ์จะมี device queue ของตนเองprocesses จะย้ายไปมาระหว่าง queue ต่าง ๆ โดยระบบปฏิบัติการมีหน้าที่เลือกตามวัตถุประสงค์ และความเหมาะสม ซึ่งถูกจัดการโดย scheduler สำหรับแต่ละ Device queue ต่างก็มี scheduler ของตนเอง และมี scheduler ส่วนกลาง ควบคุมการทำงานของ process ทั้งหมดอีกครั้งหนึ่งif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]devicequeue.png[/img]');}[img]devicequeue.png[/img] 2. Contect switch คือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบหลังประมวลผล Process หนึ่งเรียบร้อย ต้องย้ายไปยัง Process ใหม่ หรือ การย้ายจากหน่วยประมวลผลไปยังอีกกระบวนการหนึ่ง ต้องการ saving the stat of the old process and loading the saved state for the new process ซึ่งงานนี้ถูกเรียกว่า context switch สำหรับคำว่า context of process อาจแทนด้วย PCB of a process Mutual exclusionคือ การกีดกั้น ในบริเวณ หรือส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่ ๆ เป็น Critical region ซึ่งมีคุณสมบัติอยู่ 4 ประการคุณสมบัติของ mutual exclusionไม่มี process อยู่ใน critical region พร้อมกันไม่มีสมมติฐาน และข้อจำกัด ด้านความเร็ว หรือจำนวนซีพียูมาเป็นปัจจัยไม่มี process นอก critical region ที่ block การทำงานของ process อื่นไม่มี process ที่รอเข้าใจ critical region ตลอดเวลา การแก้ปัญหา Mutual exclusion with busy waitingDisable interruptLock variableStrict alternationPeterson's solutionTSL instruction 3.4 การปฏิบัติการบนโปรเซสขณะคอมพิวเตอร์ทำงานต้องการสร้าง และลบ process ตลอดเวลา จึงต้องมีการควบคุมให้ระบบคงสภาพอยู่ตลอดเวลา โปรเซสแม่ (Parent process) และโปรเซสลูก (Children process) ต้องถูกสร้าง และหยุดทำงานได้อย่างสอดคล้อง เพื่อให้เข้าใจเรื่องของ process จึงขอแสดง tree of process on a typical UNIX system ประกอบการอธิบายif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]unixfilesystem.png[/img]');}[img]unixfilesystem.png[/img] 1. การสร้างโปรเซส (Process creation)ถ้า process สร้าง process ขึ้นใหม่ เมื่อพิจารณาการ execute1. โปรเซสแม่ยังประมวลผลต่อไป พร้อมโปรเซสลูก(The parent continues to execute concurrently with its children.)2. โปรเซสแม่ต้องรอให้โปรเซสลูกบางตัว หรือโปรเซสลูกทั้งหมดสิ้งสุด จึงจะเริ่มประมวลผลได้ใหม่(The parent waits until some or all of its children have terminated.)ถ้า process สร้าง process ขึ้นใหม่ เมื่อพิจารณา address ของโปรเซสใหม่1. โปรเซสลูกเป็นสำเนาของโปรเซสแม่ คือใช้ address เดียวกับแม่(The child process is a duplicate of the parent process.)2. โปรเซสลูกมีตำแหน่งของ load address ของตนเอง(The child process has a program loaded into it.) 2. การสิ้นสุดของโปรเซส (Process termination)3 เหตุผลที่ โปรเซสแม่จะหยุดการประมวลผลของโปรเซสลูก1. โปรเซสลูกใช้ resource มากกว่าที่กำหนดไว้2. ไม่มีความจำเป็นต้องใช้โปรเซสนั้นอีกแล้ว3. โปรเซสแม่สิ้นสุด และ OS ไม่ยอมให้โปรเซสลูกทำงานต่อไป ตัวอย่าง process ที่ประมวลผลใน Linux[root@yn1 root]# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 1376 84 ? S Oct08 0:12 initroot 1482 0.0 0.0 1440 156 ? S Oct08 0:32 syslogd -m 0root 1486 0.0 0.0 1368 4 ? S Oct08 0:00 klogd -xrpc 1504 0.0 0.0 1540 0 ? SW Oct08 0:00 [portmap]rpcuser 1523 0.0 0.0 1680 0 ? SW Oct08 0:00 [rpc.statd]named 1620 0.0 1.9 41836 5040 ? S Oct08 6:16 [named]root 1635 0.0 0.1 3508 300 ? S Oct08 0:05 /usr/sbin/sshdroot 1649 0.0 0.1 2024 368 ? S Oct08 0:02 xinetd -stayaliveroot 1659 0.0 0.0 1596 88 ? S Oct08 0:00 /usr/sbin/vsftpdroot 1680 0.0 0.2 5920 548 ? S Oct08 0:52 [sendmail]smmsp 1689 0.0 0.1 5716 316 ? S Oct08 0:00 [sendmail]apache 9825 99.9 0.0 0 0 ? RW Oct08 15286:48 [httpd]root 10719 0.0 0.0 17200 96 ? S Oct18 0:02 /usr/sbin/httpdapache 15017 0.0 3.0 22708 7860 ? S Oct18 0:07 [httpd]apache 15018 0.0 2.8 23940 7312 ? S Oct18 0:06 [httpd]apache 18350 0.0 3.3 27072 8604 ? S 08:23 0:06 [httpd]root 22018 0.0 0.8 6268 2108 ? S 13:16 0:00 [sendmail]3.5 โปรเซสสื่อประสาน (Cooperating process)โปรเซสที่ประมวลผลในระบบอาจเป็นได้มีได้ 2 แบบคือโปรเซสอิสระ (Independent process) ซึ่งทำงานโดยไม่มีผลกระทบ หรือได้รับผลกระทบจากโปรเซสอื่น เป็นอิสระที่ไม่มีการแบ่งปันทรัพยากรร่วมกับใคร ส่วนโปรเซสสื่อประสาน (Cooperating process) อาจได้รับผลกระทบ หรือส่งผลกระทบต่อโปรเซสอื่น หรือกล่าวได้ว่ามีการใช้ทรัพยากรร่วมกับโปรเซสอื่น และเหตุที่ทำให้เกิดโปรเซสสื่อประสานอาจมีได้ดังนี้1. การแบ่งปันข่าวสารข้อมูลร่วมกัน (Information sharing)2. เพิ่มความเร็วในการคำนวณ (Computation speedup)3. แบ่งงานตามหน้าที่เป็นโมดูล (Modularity)4. ความสะดวก (Convenience) 3.6 การสื่อสารในโปรเซส (Interprocess communication : IPC)การสื่อสารในโปรเซส หรือระหว่างโปรเซสมีเรื่องที่ต้องพิจารณาหลายเรื่อง 3.6.1 ระบบการผ่านข่าวสาร (Message-passing system)การอำนวยความสะดวกของ IPC มีอย่างน้อย 2 กระบวนการคือ การส่งข่าวสาร Send(message) หรือ การรับข่าวสาร Receive(message) นอกจากนี้การบ่งบอกถึงการเชื่อมโยงข่าวสาร และการรับ-ส่งข่าว มีหลายวิธีดังนี้- Direct or indirect communication (ทางตรง)- Symmetric or asymmetric communication (สมมาตร)- Automatic or explicit buffering (Explicit = แน่นอน)- Send by copy or send by reference- Fixed-sized or variable-sized messages 3.6.2 การตั้งชื่อ (Naming) 3.6.2.1 Direct communicationทุกโปรเซสที่ติดต่อกันต้องมีการอ้างชื่ออย่างชัดเจน และแน่นอน เช่นการส่งข่าวสารจากโปรเซส A ไปโปรเซส B ก็ต้องระบุให้ชัดเจนว่าส่งจากไหนไปไหนsend(B,message) หมายถึง ส่งไปให้โปรเซส Breceive(A,message) หมายถึง รับจากโปรเซส A 3.6.2.2 Indirect communicationการติดต่อสื่อสารทางอ้อม เป็นการติดต่อผ่าน mailbox หรือ port ซึ่งทำหน้าที่เก็บโปรเซส แล้วส่งให้อีกโปรเซสหนึ่ง วิธีนี้ทำให้โปรเซสหนึ่งติดต่อโปรเซสอื่นผ่าน mail box ได้หลาย mail box เมื่อ share mail box ก็จะทำให้การสื่อสารมีประสิทธิภาพจากแนวคิดเรื่องการใช้ mail box ทำให้มีแบบของ mail box ขึ้น 3 แบบ1. Queue mailbox มาก่อนออกก่อน แต่มีขนาด block คงที่ ใส่มากเกินไปก็จะเต็ม (First In First Out)2. Pipe mailbox มีขนาดยืดหยุ่น ใส่ข้อมูบได้เท่าที่ต้องการ3. Stack mailbox มาก่อนออกหลัง (First In Last Out) 3.6.3 การซิงโครไนซ์ (Synchronization)การส่งข้อมูลระหว่างโปรเซสต้องใช้พื้นที่ในการเรียก send และ receive จึงต้องออกแบบให้การเรียกเป็นไปอย่างมีประสิทธิภาพ ซึ่งใช้ความรู้เรื่องการเข้า blocking และ nonblocking ไม่ให้เกิด deadlock ขึ้น จึงมีเรื่องต้องพิจารณา 4 เรื่องดังนี้- Blocking send : The sending process is blocked until the message is received by the receiving process or by the mailbox.- Nonblocking send : The sending process sends the message and resumes operation.- Blocking receive : The receiver blocks until a message is available.- Nonblocking receive: The receiver retrieves either a valid message or a null. 3.6.4 บัฟเฟอร์ (Buffering)โดยพื้นฐานแล้วการส่งข่าวสารผ่านคิว จะมีลักษณะคิวอยู่ 3 แบบ- Zero capacity ไม่มีคิวอยู่ คือไม่มีการคอย ผู้ส่งต้องหยุดรอจนกระทั่งผู้รับได้รับ- Bounded capacity คิวที่มีความยาวจำกัด หรือมีขอบเขตแน่นอน- Unbounded capacity คิวที่มีความยาวไม่จำกัด ผู้ส่งจะไม่ถูกปฏิเสธ 3.7 แบบของการประมวลผล1. การประมวลผลแบบเดี่ยว (Single processing) หรือ Sequential processing (one result / m cycles) 2. การประมวลผลแบบพหุ (Multi processing) หรือ Pipelining (one result / cycle) 3. การประมวลผลแบบขนาน (Parallel processing) หรือ Parallel processing (n results / m cycles)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]parallel_processing.gif[/img]');}[img]parallel_processing.gif[/img] 3.8 ปฏิบัติการฝึกเขียนแผนภาพ- ฝึกเขียนแผนภาพการทำงานของโปรเซส - ฝึกตรวจสอบโปรเซสที่กำลังประมวลผลในคอมพิวเตอร์ด้วยระบบปฏิบัติการต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดการโปรเซส จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
4. เทรด(Threads)
4.1 ความหมายของ ThreadsThread แปลว่า ด้ายThread คือ ส่วนประกอบย่อยของโปรเซส ถ้า thread ที่เป็นส่วนประกอบย่อยจะเรียกว่า Lightweight process(LWP) แต่ถ้าโปรเซสดั่งเดิมที่มีการควบคุมเพียง 1 thread แสดงว่าทำงานได้เพียง 1 งานจะเรียกว่า Heavyweight processโดยปกติ Process ที่มี 1 thread จะเรียกว่า Single thread แต่ถ้า 1 process มีหลาย thread จะเรียกว่า Multithread เพราะ ใน Process หนึ่งอาจมีได้หลาย Thread เช่น Web browser 1 หน้า อาจมีทั้งการ download ข้อมูลพร้อมกับการแสดง text แสดงรูปภาพ หรือ java มาแสดงในหน้าเดียวกันThread มี 2 ส่วนที่สัมพันธ์กัน1. User thread ง่ายที่จะถูกสร้าง และอาจถูกยกเลิกก่อนเข้า kernel thread ได้2. Kernel thread รองรับ user thread และปฏิบัติงานแต่ละ Thread ประกอบไปด้วย1. Thread ID หมายเลข Thread ใน process2. Program counter ใช้นับคำสั่งที่ประมวลผลอย่างเป็นลำดับ3. Register set ใช้เก็บค่าที่ทำงานอยู่4. Stack ใช้เก็บประวัติการประมวลผลโปรแกรมในปัจจุบันออกแบบให้ทำงานแบบ Multithread เช่น web browser ซึ่งควบคุมรูปภาพ การดึงข้อมูลจากเครือข่าย หรือ Word ที่แสดงภาพ ในขณะที่รอรับคำสั่งจากแป้นพิมพ์ และตรวจสอบไวยกรณ์ เป็นต้น1. Many-to-one modelหมายถึง Kernel thread 1 หน่วย กับ User thread หลายหน่วย เป็นการออกแบบที่จะยอมให้เพียง thread เดียวที่เข้าถึง kernel ในกรณีที่ thread ไป block system call จะทำให้ process ทั้งหมดถูก block ไปด้วย โดยโมเดลนี้ยอมให้สร้าง user thread ได้ตามต้องการ แต่ไม่สามารถประมวลผลได้พร้อมกัน เพราะยอมให้เข้าใช้ kernel thread ได้ครั้งละ thread เท่านั้น2. One-to-one modelหมายถึง Kernel thread 1 หน่วย กับ User thread 1 หน่วย ซึ่งระบบปฏิบัติการจะยอมให้ thread อื่นประมวลผลได้เป็นระบบขนาน ที่ทำงานแบบมัลติโปรเซสเซอร์ มีการใช้หลักการนี้อยู่ในระบบปฏิบัติการ Windows ในปัจจุบัน โดยโมเดลนี้ต้องไม่ยอมให้สร้าง user thread มากเกินไป3. Many-to-many modelหมายถึง โมเดลที่ลดข้อจำกัดของ 2 แบบแรก ผู้ใช้สามารถสร้าง user thread เท่าที่จำเป็น และสัมพันธ์กับ kernel thread ที่รับการทำงานแบบขนานในแบบมัลติโปรเซสเซอร์ เมื่อมี thread ที่ block system call ทาง kernel จะจัดเวลาให้ thread อื่นเข้ามาประมวลผลก่อนได้ข้อได้เปรียบ หรือประโยชน์ของ multithreaded (Benefits)การตอบสนอง (Responsiveness)การแชร์รีซอร์ส (Resource sharing)ความประหยัด (Economy)การเอื้อประโยชน์ของสถาบัตยกรรมมัลติโปรเซสเซอร์ (Utilization of multiprocessor architectures) 4.3 Threading Issuesเรื่องราวเกี่ยวกับ thread มีหลายอย่างที่ต้องพิจารณา การยกเลิก (Cancellation) thread เป็นเรื่องที่ต้องทำความเข้าใจ เพราะการยกเลิกหมายถึงการทำให้ thread เป้าหมายจบการทำงาน ก่อนที่จะทำงานจนเสร็จสมบูรณ์ การยกเลิกนี้มี 2 วิธี1.1 Asynchronous cancellation การยกเลิกที่ thread อื่น สั่งให้ thread เป้าหมายหยุดทำงาน1.2 Defered cancellation การยกเลิก thread เป้าหมาย โดยใช้ตรวจสอบตนเอง ว่าตนเองต้องถูกยกเลิกด้วยหรือไม่ 4.4 PthreadsPthreads อ้างถึงมาตรฐาน POSIX (IEEE 1003.1c) เพื่อกำหนด API(Application programming interface) สำหรับสร้าง และการซินโครไนซ์เซชัน นี่คือการกำหนดสภาพแวดล้อมของ thread ซึ่ง Thread specification นี้ถูกจำกัดใน Solaris2 แต่ Pthread ไม่ถูกสนับสนุนใน Windows แม้จะมี shareware เผยแพร่แล้วก็ตามOutput :Creating thread 0Creating thread 10: Hello World!1: Hello World!Creating thread 2Creating thread 32: Hello World!3: Hello World!Creating thread 44: Hello World!4.5 ปฏิบัติการฝึกเขียน threading model- ฝึกเขียนโปรแกรมด้วยภาษา C แสดงการทำงานของ pthread - ค้นคว้าข้อมูลเกี่ยวกับ เทรด จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการค้นคว้าบางส่วน + http://hpcnc.cpe.ku.ac.th/~thvo/tutorial/pthread.ppt + โครงสร้างพื้นฐานการซิงโครไนซ์ (Synchronization)(sync. การทำให้งาน 2 งาน ทำร่วมกันอย่างราบรื่น แต่ async. คือการทำงานของงานที่ไม่เกี่ยวเนื่องกัน)1. Race Condition สภาพที่โปรเซสสามารถเข้าถึงทรัพยากรได้พร้อมกัน2. Mutual Exclusion (MuTex) and Critical Region ซึ่งกันและกัน กันไม่ให้เข้า วิกฤต อนาเขต3. วิธีแก้ปัญหา Mutual Exclusion with busi waiting 5 วิธี- Disable Interrupt ยกเลิกการขัดจังหวะ- Lock Variable สร้างตัวแปรล็อก โดยใช้ software และตัวแปร Global อาจทำให้ lock กันเอง- Strict Alternation กำหนดทางเลือกอื่น เพื่อสลับกันเข้า Critical Region เหมาะกับ 2 process- Peterson's Solution ใช้จัดการ 2 กระบวนการ เพื่อเข้าครอบครองทรัพยากร6. Event Counter เกี่ยวข้องกับ 3 ปฏิบัติการคือ read() advance() เพื่อเพิ่มค่า await() เพื่อsleep7. Monitor คือชุดของ procedure, variable, data structure รวมเป็น package เพื่อควบคุมการ sync.The Dinning Philosophers Problem คือปัญหาที่ตกลงกันไม่ได้ของนักปราชญ์ในโต๊ะอาหารอาจทำให้คนใดคนหนึ่งต้องอดตายจากเงื่อนไขการใช้ส้อมทานอาหาร แต่ไม่มีโอกาสนั้นสำหรับบางคนซึ่งแก้ปัญหาด้วยแนวคิดของ semaphore ได้
5. การจัดการหน่วยความจำ(Memory Management)
.1 กระบวนการจัดการหน่วยความจำ5.1.1 การย้ายตำแหน่ง (Relocation)ระบบปฏิบัติการในปัจจุบัน ยอมให้โปรแกรมทำงานพร้อมกันได้หลายงานแบบ multiprogramming ซึ่งโปรเซสต่าง ๆ เข้าใช้งานหน่วยความจำร่วมกัน จึงต้องมีการสลับโปรแกรมให้เข้าออกหน่วยความจำได้ รวมถึงการเปลี่ยนแปลงค่าตำแหน่งในหน่วยความจำที่อ้างถึงในโปรแกรม ให้ถูกต้องตามตำแหน่งจริงในหน่วยความจำ เช่นโปรแกรม a อ้างถึงตำแหน่งที่ 1000 และโปรแกรม b ก็อ้างถึงตำแหน่งที่ 1000 เช่นกันค่า address แบ่งได้ 2 ค่า1. Absolute address หมายถึง ตำแหน่งจริงของโปรเซสที่อยู่ในหน่วยความจำ2. Relative address หมายถึง ตำแหน่งของคำสั่ง หรือโปรแกรมของโปรเซสหลังจากการ compile5.1.2 การป้องกันพื้นที่ (Protection)ระบบปฏิบัติการควรสามารถป้องกันโปรเซส จากการถูกรบกวน ทั้งทางตรง และทางอ้อม ดังนั้นก่อนให้โปรเซสใดเข้าครอบครองหน่วยความจำ จะต้องมีการตรวจสอบก่อน และใช้เวลาค้นหาเพื่อตรวจสอบตลอดเวลา5.1.3 การใช้พื้นที่ร่วมกัน (Sharing)การป้องกันเพียงอย่างเดียว อาจทำให้การใช้ทรัพยากรไม่คุ้ม จึงต้องมีการจัดสรรให้ใช้พื้นที่ของหน่วยความจำร่วมกันอย่างยืดหยุ่น5.1.4 การจัดการแบ่งโปรแกรมย่อย (Logical organization)ระบบปฏิบัติการจะแบ่งโปรแกรมเป็นโปรแกรมหลัก และโปรแกรมย่อย โดยนำเฉพาะโปรแกรมหลักลงในหน่วยความจำ แต่นำโปรแกรมย่อยลงหน่วยความจำเฉพาะเมื่อมีการเรียกใช้เท่านั้นประโยชน์ที่ได้จากการจัดการแบ่งโปรแกรมออกเป็นโปรแกรมย่อย มีดังนี้1. โปรแกรมย่อยที่ไม่ได้ใช้งาน จะไม่นำลงหน่วยความจำหลัก2. โปรแกรมย่อยแต่ละตัวสามารถถูกเขียน และแปลแยกกันได้3. โปรแกรมย่อยแต่ละตัวมีระดับการป้องกันแต่กต่างกัน4. โปรแกรมหลักสามารถเรียกใช้โปรแกรมย่อยเหล่านี้ร่วมกันได้5.1.5 การจัดการแบ่งทางกายภาพ (Physical organization)หน่วยความจำแบ่งเป็น 2 ส่วนคือ หน่วยความจำหลัก และหน่วยความจำสำรอง ลักษณะของหน่วยความจำหลักจะมีราคาแพง ทำงานได้เร็ว แต่เลือนหายได้ ในการทำงานจริง จึงต้องมีการเคลื่อนย้ายทางกายภาพระหว่างหน่วยความจำทั้ง 2 ตลอดเวลา ซึ่งเป็นหน้าที่ของระบบที่ต้องจัดสรรให้ให้สอดคล้องกับการทำงานแบบ multiprogramming 5.2 หน่วยความจำหลัก (Main memory)การจัดการหน่วยความจำมีหลายระบบ เริ่มจากแบบไม่ซับซ้อน ไปถึงซับซ้อน ในบทนี้จะเรียนรู้แบบไม่ซับซ้อน ซึ่งไม่ถูกนำมาใช้งานในระบบปฏิบัติการปัจจุบัน แต่อาจใช้ในคอมพิวเตอร์ขนาดเล็กอยู่ การเรียนรู้เรื่องนี้อาจ นำไปประยุกต์ในการพัฒนางานด้าน software อื่น ๆ ได้5.2.1 ระบบโปรแกรมเดียว (Monoprogramming)เป็นวิธีการจัดการที่ง่ายที่สุด โดยกำหนดเพียง 1 โปรแกรม ให้ทำงานในหน่วยความจำเพียงโปรแกรมเดียว5.2.2 ระบบหลายโปรแกรมที่กำหนดขนาดพาร์ติชั่นคงที่ (Multiprogramming with fixed partition)ปัจจุบันระบบปฎิบัติการยอมให้มีหลายโปรเซสทำงานพร้อมกันได้ หมายความว่าขณะที่โปรเซสหนึ่งทำเสร็จ อีกโปรเซสที่รอ ก็เข้าใช้หน่วยความจำทันที โดยแบ่งหน่วยความจำออกเป็น partition การแบ่งเห็นแต่ละ partition แบบตายตัว มีจุดบกพร่อง จึงมีการจัดการหน่วยความจำแบบ FCFS : first come first serve การจัดการแบบนี้ย่อมมีปัญหา จึงเป็นหน้าที่ของระบบปฏิบัติการ ที่ต้องจัดการ5.2.3 ระบบที่กำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้ (Dynamic partition)เพื่อแก้ปัญหาของการกำหนดแบบคงที่ จึงออกแบบการกำหนด partition แบบเปลี่ยนแปลงได้ ซึ่งมีความซับซ้อน มากขึ้น ตามโปรเซสที่เข้าใช้หน่วยความจำ5.2.4 การจัดการแบบระบบบัดดี้ (Buddy system)ระบบจัดการหน่วยความจำแบบคงที่ และเปลี่ยนแปลงได้ อาจมีข้อจำกัดเรื่องการรองรับจำนวนโปรเซส และใช้พื้นที่ไม่เต็มประสิทธิภาพได้ ส่วนการแบ่งแบบเปลี่ยนแปลงได้ก็มีความซับซ้อนในทางปฏิบัติ และใช้ทรัพยากร จึงมีการผสมระหว่าง 2 ระบบนี้เข้าด้วยกัน ระบบนี้จะแบ่งพื้นที่เป็น 2 ส่วน และตรวจสอบว่าพอจะแบ่งให้กับโปรเซสล่าสุดได้หรือไม่ ถ้าแบ่งแล้วเข้าไม่ได้ ก็จะแบ่งขนาดเท่าก่อนหน้าที่ถูกแบ่ง และจัดเรียงพื้นที่เป็นแบบ link list ไว้รอการเข้าใช้ของโปรเซส 5.3 การแบ่งเป็นหน้า (Paging)ระบบที่ใช้หน่วยความจำเสมือน (Virtual memory) มักใช้เทคนิคที่เรียกว่า การแบ่งหน้า หรือเพจจิ่ง(Paging) เพื่อเชื่อมระหว่างตำแหน่งทางตรรก กับเลขของเฟรมในหน่วยความจำหลัก5.3.1 ตารางหน้า (Page table)หมายถึงการรับค่าตำแหน่งทางตรรกเป็นค่านำเข้า แล้วหาเลขของเฟรมในหน่วยความจำหลักออกมา เทคนิคตารางหน้า(Page table) มักมีขนาดใหญ่ และต้องทำด้วยความเร็วสูง หากสรุปแล้วตารางหน้า ก็คือตารางที่เก็บอาร์เรย์ของรีจิสเตอร์นั่นเอง5.3.2 บัฟเฟอร์ค้นหาที่อยู่ (TLB : Translation lookaside buffer)ทุกครั้งที่เรียกใช้หน่วยความจำเสมือน ย่อมเรียกใช้หน่วยความจำหลัก 2 ครั้ง คือ การอ่านตารางหน้า และอ่านข้อมูลจริงจากหน่วยความจำหลัก ดังนั้นการทำงานแบบนี้จึงใช้เวลาถึง 2 เท่า จึงมีการใช้ cach memory ซึ่งทำหน้าที่เก็บตารางหน้าที่เคยถูกเรียกใช้ หรือเรียกว่า บัฟเฟอร์ค้นหาที่อยู่ (TLB : Translation Lookaside Buffer) ถ้าพบใน TLB จะเรียก TLB hit ถ้าไม่พบเรียก TLB miss และเข้าไปอ่านตารางหน้า เมื่ออ่านแล้วก็จะนำมาเพิ่มใน TLB สำหรับโอกาสที่จะถูกเรียกในอนาคต 5.4 การสับเปลี่ยนหน้า (Page replacement algorithms)5.4.1 วิธีสับเปลี่ยนแบบมาก่อน-ออกก่อน (FIFO : First in first out algorithm)5.4.2 วิธีสับเปลี่ยนแบบให้โอกาสครั้งที่สอง (Second change page replacement algorithm)5.4.3 วิธีสับเปลี่ยนแบบวงรอบนาฬิกา (Clock page replacement algorithm)5.4.4 วิธีสับเปลี่ยนแบบที่ดี่สุด (Optimal page replacement algorithm)5.4.5 การสับเปลี่ยนแบบที่ไม่ได้ใช้งานออกก่อน (NRU : Not recently used)5.4.6 การสับเปลี่ยนแบบใช้งานน้อยที่สุดออกก่อน (LRU : Least recently used)ใช้ข้อมูลในอดีตประมาณการณ์อนาคต5.5 การแบ่งเป็นเซ็กเมนต์ (Segmentation)การแบ่งหน้าจะแบ่งให้มีขนาดเท่ากัน แต่การแบ่งเป็นเซ็กเมนต์จะแบ่งโปรแกรมออกเป็นส่วน ๆ ไม่เท่ากัน และมีการใช้ตำแหน่งทางตรรก อ้างอิงตำแหน่งจริงเช่นกัน และมีการใช้ข้อมูล 2 ส่วนคือ เลขที่เซ็กเมนต์ และระยะเริ่มต้นของเซ้กเมนต์(Offset) สำหรับผลของการแบ่งเซ็กเมนต์ทำให้เกิดชิ้นส่วนไม่เท่ากัน (Dynamic partitioning) ซึ่งลดปัญหาการสูญเสียพื้นที่ (Internal fragmentation)5.5.1 การนำวิธีการแบ่งเป็นเซ็กเมนต์มาใช้ในหน่วยความจำเสมือน5.5.2 การรวมวิธีการแบ่งเป็นหน้ากับการแบ่งเป็นเซ็กเมนต์เข้าด้วยกัน 5.6 ปฏิบัติการฝึกเขียนแผนภาพ และฝึกเปลี่ยน RAM- ฝึกเปลี่ยน RAM บน mainboard และศึกษารุ่นต่าง ๆ ที่มีในปัจจุบัน - ฝึกเขียนแผนภาพแสดงการสับเปลี่ยนแบบต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดการหน่วยความจำ จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้า
6. การจัดการเวลซีพียู(CPU Scheduling)
6.1 Scheduling Criteria6.1.1 การใช้ประโยชน์หน่วยประมวลผลกลาง (CPU utilization)6.1.2 ประมาณงาน (Throughput)6.1.3 เวลาโดยรวม (Turnaround time)6.1.4 เวลาคอย (Waiting time)6.1.5 เวลาตอบสนอง (Response time) 6.2 Scheduling Algorithmsหน้าที่ของตัวจัดคิวคือ คัดเลือกโปรเซสซึ่งรออยู่ในสถานะพร้อมที่เหมาะสมที่สุดให้เข้าไปอยู่ในสถานะรัน (ได้ครอบครองซีพียู) โดยแท้จริงแล้วการส่งโปรเซสที่ถูกเลือกแล้วให้เข้าไปอยู่ในสถานะรัน เป็นหน้าที่ของโปรเซสของ OS ที่ชื่อตัวส่ง (dispatcher) ในแง่การทำงานแล้วตัวจัดคิวจะเป็นผู้คัดเลือกโปรเซสและเรียกให้ตัวส่งส่งโปรเซสที่ถูกเลือกแล้วเข้าไปในสถานะรันเป็นความรับผิดชอบของตัวจัดคิว6.2.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS : First-come First-served Scheduling)การจัดคิวแบบ FCFS (first-come-first-served) วิธีการคัดเลือกแบบ FCFS นี้เป็นวิธีที่ง่ายที่สุด คือ โปรเซสไหนเข้ามารอในคิวก่อนจะได้ครอบครองซีพียูก่อน ตามลำดับเวลาของการเข้ามาอยู่ในคิว คือ "มาก่อนได้ก่อน" โปรเซสที่ได้ครอบครองซีพียูจะทำงานไปจนเสร็จ ไม่มีระยะเวลาควอนตัมซึ่งจำกัดเวลาการครอบครองซีพียู แต่ถ้าโปรเซสมีการเรียกใช้งานอุปกรณ์อินพุต-เอาต์พุต หรือรอเหตุการณ์บางอย่าง โปรเซสนั้นต้องปลดปล่อยซีพียู และออกจากสถานะรันไปอยู่ในสถานะติดขัด เมื่อใดที่งานเสร็จสิ้นลงหรือเกิดเหตุการณ์ที่กำลังรออยู่ โปรเซสนั้นจึงค่อยกลับเข้าไปอยู่ต่อท้ายคิวของสถานะพร้อมใหม่อีกครั้งเราอาจแสดงการเปลี่ยนสถานะของโปรเซสโดยใช้การจัดคิวแบบ FCFS ซึ่งจะเห็นว่าแตกต่างกับรูปแสดงการเปลี่ยนสถานะของโปรเซสที่เคยกล่าวมาคือ ไม่มีการเปลี่ยนสถานะของโปรเซสจากสถานะรันมายังสถานะพร้อมโดยตรงFirst Come First Served (FCFS): The simplest scheduling algorithm is FCFS. As each process becomes ready, it joins the ready queue. When the currently running process ceases to execute, the oldest process in the ready queue is selected for running.6.2.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF : Short-Job-First Scheduling)การจัดคิวแบบ SJN (shortest job next) การคัดเลือกโปรเซสด้วยวิธีนี้ จะคัดเลือกเอาโปรเซสที่ต้องการเวลาในการทำงานน้อยที่สุด ทำให้โปรเซสที่ต้องการเวลาในการทำงานน้อยจบออกไปได้เร็วขึ้น จำนวนโปรเซสในระบบที่รออยู่ในคิวมีก็จะมีจำนวนลดลง และทำให้เวลาโดยเฉลี่ยในการทำงาน 1 งานเสร็จหรือเวลาครบงาน (turnaround time) น้อยลงแต่การจัดคิวแบบนี้เป็นผลเสียต่อโปรเซสที่ต้องการเวลาในการทำงานนานShortest Process Next (SPN): Another approach to reducing the bias in favor of long processed inherent in FCFS is the SPN. This is a non-preemptive algorithm in which the process with the shortest expected processing time is selected next. Thus a short process will jump to the head of the queue past longer jobs.Shortest Remaining Time (SRT): SRT algorithm is a preemptive version of SPN. In this case, the scheduler always chooses the process that has the shortest expected remaining processing time. When a new process joins the ready queue, it may in fact have a shorter remaining time than the currently running process. SRT does not have the bias in favor of long processes found in FCFS.6.2.3 การจัดเวลาตามลำดับความสำคัญ (Priority Scheduling)การจัดคิวแบบลำดับความสำคัญ (priority queue) คิวแบบลำดับความสำคัญมีลักษณะแตกต่างกับคิวธรรมดา ภายในคิวจะมีการจัดเรียงลำดับของโปรเซสต่าง ๆ ตามลำดับความสำคัญของโปรเซสนั้น โปรเซสที่อยู่ต้นคิวจะมีลำดับความสำคัญมากที่สุด และลดลงเรื่อย ๆ โปรเซสที่อยู่ท้ายคิวคือโปรเซสที่มีลำดับความสำคัญต่ำสุด การคัดเลือกโปรเซสจะเอาโปรเซสที่อยู่ต้นคิว (มีลำดับความสำคัญสูงสุด) เข้าไปครอบครองซีพียูก่อน ดังนั้นถึงแม้ว่าโปรเซสที่เข้าคิวทีหลังแต่มีลำดับความสำคัญสูงกว่าก็อาจได้เข้าไปครอบครองซีพียูก่อน โปรเซส E เข้าคิวเป็นโปรเซสหลังสุด แต่จะได้ครอบครองซีพียูก่อนโปรเซส C และ D6.2.4 การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling)การจัดคิวแบบ RR (round-robin) การจัดคิวแบบ RR อาจเรียกว่าเป็นการจัดคิวแบบมีการวนรอบ ลักษณะการคัดเลือก โปรเซสในคิวจะเป็นแบบ FCFS คือ "มาก่อนได้ก่อน" แต่ต่างกันนิดหน่อยตรงที่การครอบครองซีพียูของโปรเซสในสถานะรันจะถูกจำกัดเวลาไว้ด้วยระยะเวลาควอนตัม ทำให้โปรเซสที่ต้องการเวลาในการทำงานนานจะต้องเปลี่ยนสถานะหมุนระหว่างสถานะพร้อมและสถานะรันการจัดคิวแบบ RR สามารถแก้ปัญหาการคอยนานของโปรเซสที่ต้องการเวลาทำงานน้อย ๆ ได้ลองกลับไปพิจารณาเหตุการณ์สมมติซึ่งกล่าวไว้ในหัวข้อที่แล้ว ถ้าระบบกำหนดเวลาควอนตัมเป็น 1 วินาที โปรเซส A ต้องมีการวนรอบเปลี่ยนสถานะระหว่างสถานะรันและสถานะพร้อม 15 ครั้ง โปรเซส B 1 ครั้ว โปรเซส C 10 ครั้ง เมื่อโปรเซส A เข้าไปอยู่ในสถานะรันครั้งแรกและกลับออกมา โปรเซส B จะได้ครอบครองซีพียูได้และ ทำงานเสร็จโปรเซส B จบและออกจากระบบไปเลยเหลือเพียง 2 โปรเซสที่อยู่ในคิวของสถานะพร้อม โปรเซสถัดไปที่จัดได้ครอบครองซีพียูคือ C โปรเซส C และ A จะสลับกันครอบครองซีพียูกันโปรเซสละ 1 วินาที จนกระทั่งโปรเซส C จบ เหลือโปรเซส A เพียงโปรเซสเดียว เป็นแผนภาพแสดงการสลับกันทำงานของโปรเซสทั้ง 3 และเป็นผลที่เกิดขึ้นจากการจัดคิวแบบ RRRound Robin (RR): A straightforward way to reduce the penalty that short jobs suffer with FCFS is to use preemption based on a clock. The simplest such algorithm is round robin. A clock interrupt is generated at periodic intervals. When the interrupt occurs, the currently running process is placed in the ready queue, and the next ready job is selected on an FCFS basis. In the current project RR is implemented with time intervals of 1 and 4.6.2.5 การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)เพื่อให้การจัดคิวเป็นไปอย่างมีประสิทธิภาพ จึงมีการนำหลาย ๆ เทคนิคมาประยุกต์เข้าด้วยกัน เป็นการจัดคำแบบวนรอบ ที่คำนึงถึงความสำคัญของงาน ทำให้งานที่มีความสำคัญเหมือนกันอยู่ในคิวเดียวกัน และให้งานสำคัญน้อย ๆ อยู่ในคิวที่สำคัญน้อยเช่นกัน 6.3 การประเมินอัลกอริทึม (Algorithm Evaluation)จากที่ได้ศึกษาอัลกอริทึมทั้ง 5 แบบ สำหรับการจัดเวลาซีพียูมาแล้ว ก็ต้องเลือกอัลกอริทึมที่จะใช้งาน สำหรับเลือกงานเข้าประมวลผล มีหลาย ๆ วิธีในการพิจารณาอัลกอริทึม ที่ต้องคำนึงถึง CPU utilization, Response time และ Throughput เพื่อให้ได้ผลออกมาดีที่สุดหลักเกณฑ์การพิจารณาอัลกอริทึมเข้าประมวลผล1. ให้ใช้ซีพียูสูงสุด โดยช่วงเวลาตอบสนองต่ำสุด2. ให้มีเวลารวม หรือวนรอบที่เหมาะสม กับเวลาที่ต้องใช้ประมวลผลทั้งหมด6.3.1 วิธีกำหนดโมเดล (Deterministic modeling)วิธีนี้มีข้อจำกัดมากเกินไปสำหรับการนำมาใช้ในปัจจุบัน เพราะวิธีนี้จะเป็นวิธีที่ง่าย ได้ตัวเลขออกมาแน่นอน จากตัวอย่างข้อมูลจำนวนหนึ่งที่ป้อนเข้าไป แต่ผลลัพธ์ไม่มีความน่าเชื่อถือมากพอ เพราะในสถานการณ์จริงจะมีข้อมูลที่ซับซ้อนกว่ามาก เช่นเลือกอัลกอริทึมมาพิจารณา 3 แบบ คือ FCFS, SJF และ RR ซึ่งผลของการพิจารณาแต่ละอัลกอริทึมจะออกเป็นตัวเลขให้เลือก การเลือกเป็นสิ่งที่ตัดสินใจได้ง่าย แต่ไม่อาจไม่เหมาะที่จะใช้งานจริง6.3.2 วิธีจัดเมเดลของคิว (Queueing models)วิธีนี้มีปัญหาการคำนวณค่าเฉลี่ยของการกระจายในระบบที่มีความซับซ้อน เมื่อพิจารณาในระบบเครือข่ายที่แบ่งกลุ่มงานออกเป็นสถานี หรือสายการผลิตที่มีคิวของตนเอง ถ้าทราบเวลาที่ให้บริการของแต่ละสายการผลิต และรู้เวลาที่แต่ละงานเข้าคิว ก็จะหาค่าต่าง ๆ ได้ตามต้องการ วิธีนี้เรียกว่า queueing network analysisจากตัวอย่างข้างต้นอาจใช้สูตร al = at * w (ค่าเฉลี่ยความยาวของคิว = ค่าเฉลี่ยของงานใหม่เข้ามา * ค่าเฉลี่ยการรอคอย) เช่น เวลาเฉลี่ยในคิวคือ 10 วินาที ถ้างานใหม่ต้องรอเข้าคิวประมาณ 2 วินาที และแต่ละงานต้องคอยเข้าหน่วยประมวลผล 5 วินาที6.3.3 วิธีจำลองสถานการณ์ (Simulations)วิธีนี้จะพัฒนาโปรแกรมคอมพิวเตอร์ขึ้นมา เสมือนเป็นหุ่นจำลอง พร้อมกำหนดสถาพแวดล้อม และตัวแปรคำนวณเวลาให้อยู่ในการควบคุม โดยเวลาของสถานการณ์กำหนดได้ 2 แบบคือ แบบสุ่ม หรือแบบข้อมูลจริง นอกจากนั้นยังต้องมี trace tape เก็บข้อมูลในช่วงเวลาต่าง ๆ และนำมาเปรียบเทียบ สำหรับวิธีการนี้ต้องอาศัยเวลา และค่าใช้จ่าย เพื่อให้ได้ผลลัพธ์ที่เที่ยงตรง6.3.4 วิธีติดตั้งจริง (Implementation)วิธีนี้ไม่นิยมปฏิบัติ แม้แบบจำลองจะไม่มีทางเหมือนจริง จึงมีแนวคิดว่าเขียนขึ้นมาใช้จริงเพื่อให้ได้ข้อมูลจริง แต่วิธีนี้ต้องลงทุนสูงมาก นอกจากต้องเขียนโปรแกรมของอัลกอริทึมแต่ละตัว ยังต้องใช้เวลา และแรงงานเปลี่ยนการทำงานของโปรแกรม การจัดการระบบเพื่อให้รองรับอัลกอริทึมแบบต่าง ๆที่จะนำมาทดลอง ซึ่งแต่ละอัลกอริทึมอาจต้องการฮาร์ดแวร์ที่พิเศษ และคอมพิวเตอร์ก็มิได้เปลี่ยนอุปกรณ์กันได้ง่าย 6.4 ปฏิบัติการเขียนอัลกอริทึม- ฝึกเขียน Scheduling แบบต่าง ๆ - ค้นคว้าข้อมูลเกี่ยวกับ การจัดเวลาซีพียู จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
7. ระบบรับ และแสดงผล(Input/Output Systems)
7.1 อุปกรณ์รับ และแสดงผลอุปกรณ์อินพุต (Input device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่าง ๆ จากโลก ภายนอกได้ ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ อุปกรณ์นำข้อมูลเข้า คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่างๆ จากภายนอกเครื่องได้ อันได้แก่ โปรแกรมหรือชุดคำสั่งที่เขียนสั่งงาน ให้คอมพิวเตอร์ทำงานตามขั้นตอน และข้อมูลที่ต้องใส่เข้าไปพร้อมกับโปรแกรม เพื่อส่งไปให้หน่วยประมวลผลกลางทำการประมวลผล และผลิตผลลัพธ์ที่ต้องการออกมา ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ จอยสติก จอสัมผัส ปากกาแสง กล้องดิจิตอล สแกนเนอร์ เป็นต้นอุปกรณ์เอาต์พุต (Output device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่โลกภายนอกได้ ตัวอย่างเช่น เครื่องเจาะบัตร จอภาพ เครื่องพิมพ์ อุปกรณ์นำข้อมูลออก หรืออุปกรณ์แสดงผล คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่ภายนอกตัวเครื่องได้ หลังจากที่คอมพิวเตอร์ได้ทำการประมวลผลแล้ว ก็จะต้องมีวิธีในการนำผลลัพธ์ออกมาแสดง ซึ่งสามารถแบ่งอุปกรณ์แสดงผลนี้ ออกได้เป็น 3 ประเภทคือ อุปกรณ์แสดงผลลัพธ์ชั่วคราว เช่น จอภาพ (Monitor) อุปกรณ์แสดงผลลัพธ์ถาวร เช่น เครื่องพิมพ์ (Printer) และอุปกรณ์แสดงผลลัพธ์ถาวรทางด้านกราฟิก เช่น พลอตเตอร์ (Plotter) เป็นต้น 7.1.1 การลงคะแนน (Polling)(1) A communications technique that determines when a terminal is ready to send data. The computer continually interrogates its connected terminals in a round robin sequence. If a terminal has data to send, it sends back an acknowledgment and the transmission begins. Contrast with an interrupt-driven system, in which the terminal generates a signal when it has data to send.(2) A technique that continually interrogates a peripheral device to see if it has data to transfer. For example, if a mouse button was pressed or if data is available at a communications port. Contrast with event-driven or interrupt-driven techniques, in which the operating system generates a signal and interrupts the system. (Techweb.com)ระเบียบวิธีการที่สมบูรณ์ ในการเชื่อมต่อระหว่าง host และ ตัวควบคุม มีการทำ handshaking เป็นพื้นฐาน โดยสมมติให้มี 2 bits เชื่อมประสาน producer และ consumer หรือ controller และ host โดยมีการบ่งบอกสถานะขณะทำงาน 7.1.2 ขัดจังหวะ (Interrupts)การขัดจังหวะจะทำงานอย่างต่อเนื่องร่วมกับ CPU จึงถูกเรียกว่า Interrupt-request line โดยทำงานเป็น Interrupt-driven I/O cycle สำหรับ 7 องค์ประกอบ1. device driver initialtes I/O2. initiates I/O3. input ready, output complete, or error generates interrupt signal4. CPU receiving interrupt, transfers control to interrupt handler5. interrupt handler processes data, returns from interrupt6. CPU resumes processing of interrupted task7. CPU executing checks for interrupts between instructionsif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]interruptcycle.png[/img]');}[img]interruptcycle.png[/img] 7.1.3 เข้าถึงหน่วยความจำโดยตรง (Direct memory access)(Direct Memory Access) Specialized circuitry or a dedicated microprocessor that transfers data from memory to memory without using the CPU. Although DMA may periodically steal cycles from the CPU, data are transferred much faster than using the CPU for every byte of transfer. On PCs, there are eight DMA channels commonly used as follows. Most sound cards are set to use DMA channel 1DMA คือ วงจรพิเศษที่ออกแบบมาเพื่อส่งข้อมูลระหว่าง หน่วยความจำ ถึงหน่วยความจำโดยไม่ใช้การทำงานของ CPU และเป็นการทำงานที่คาดหวัง หรือทำนายข้อมูลล่วงหน้า ในการเรียกข้อมูลที่ต้องการใช้ แทนที่จะให้ CPU เป็นคนสั่งงานให้เรียกข้อมูลโดยตรงภาพแสดงขั้นตอนการทำงานร่วมกันของ CPU, Cache, CPU memory bus, DMA, PCI bus, IDE disk controller และ Disk มีขั้นตอนต่าง ๆ 6 ขั้นตอน1. device driver is told to transfer disk data to buffer at address X2. device driver tells disk controller to transfer C bytes from disk to buffer at address X3. disk controller initiates DMA transfer4. disk controlelr sends each byte to DMA controller5. DMA controller transfers bytes to buffer X, increasing memory address and decreasing c until c = 06. when c = 0, DMA interrupts CPU to signal transfer completetionif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.infocom.cqu.edu.au/Units/win2000/85349/Resources/Lectures/pics/12_7.gif[/img]');}[img]http://www.infocom.cqu.edu.au/Units/win2000/85349/Resources/Lectures/pics/12_7.gif[/img]ความเร็วของอุปกรณ์ต่าง ๆอุปกรณ์ความเร็วคีย์บอร์ด10 Bpsเมาส์100 Bpsโมเด็ม 56 KB7 KBpsแชนแนลโทรศัพท์8 KBpsคู่สาย ISDN16 KBpsเครื่องพิมพ์เลเซอร์100 KBpsสแกนเนอร์400 KBpsอีเธอร์เน็ต (Classic)1.2 MBpsUSB (Universal serial bus)1.5 MBpsดิจิทอลแคมคอร์ดเดอร์4 MBpsดิสก์ IDE5 MBpsซีดีรอม 40X6 MBpsอีเทอร์เน็ต (Fast)12.5 MBpsบัส ISA16.7 Bpsดิสก์ EIDE (ATA-2)16.7 MBpsFireWire (IEEE 1394)50 MBpsมอนิเตอร์ XGA60 MBpsเน็ตเวิร์ค SONET OC-1278 MBpsดิสก์ SCSI Ultra 280 MBpsอีเธอร์เน็ต (Gigabit)125 MBpsเทป Ultrium320 MBpsบัส PCI528 MBpsSUN Gigaplane XB backplane20 GBps 7.2 Application I/O Interface7.2.1 Block and character devicesโดยปกติระบบปฏิบัติการจะคาดหวังการเชื่อมต่อผ่าน read() write() หรือ seek() ซึ่งเป็นอุปกรณ์ส่งข้อมูลแบบ simple linear array of block หรือ raw I/O ตัวอย่างอุปกรณ์แบบนี้ที่เห็นได้ชัดที่สุดก็คือ keyboard7.2.2 Network devicesในระบบเครือข่ายจะมีการติดต่อสื่อสารกันผ่าน socket interface นอกจากการติดต่อแบบ read() write() และ seek() ยังมีการใช้อุปกรณ์ในเครือข่ายเชื่อมต่อเข้ามาผ่าน socket ได้อีกทางหนึ่ง โดยไม่ได้คำนึงถึงระบบปฏิบัติการว่าจะเป็น UNIX หรือ Windows แต่สนใจเฉพาะสิ่งที่ส่งเข้ามาว่าเข้ามาทางใด7.2.3 Clocks and timersคอมพิวเตอร์ส่วนใหญ่มี hardware clock และ timer ให้ข้อมูลพื้นฐานเกี่ยวกับเวลา 3 อย่าง- บอกเวลาปัจจุบัน (Current time)- บอกเวลาที่ผ่านไป (Elapsed time)- ตั้ง trigger ที่จะปฏิบัติการต่อเวลา7.2.4 Blocking and nonblocking I/Oการมี system-call interface รองรับ I/O ที่มาจาก blocking และ nonblocking เพราะผู้ใช้อาจใช้ทั้ง mouse และ keyboard ส่งข้อมูลพร้อมกัน ในขณะที่กำลังเปิดภาพยนต์จากแผ่น CD จึงต้องรอบรับข้อมูลต่าง ๆ ที่เข้ามาCharacteristics of I/O devicesaspectvariationexampledata-transfer modecharacterblockterminaldiskaccess methodsequentialrandommodemCD-ROMtransfer schedulesynchronousasynchronoustapekeyboardsharingdedicatedsharabletapekeyboarddevice speedlatencyseek timetransfer ratedelay between operationsI/O directionread onlywrite onlyread-writeCD-ROMgraphics controllerdisk 7.3 Kernel I/O SubsystemKernel คือแก่นของระบบ ที่ให้บริการต่าง ๆ มากมาย และสัมพันธ์กับ I/O ด้านต่าง ๆ หรือกล่าวได้ว่าทั้ง 6 เรื่องต่อไปนี้ คือระบบย่อยของการจัดการภายใน kernel ที่เกี่ยวกับ I/O7.3.1 I/O scheduling 7.3.2 Buffering (เก็บข้อมูลที่ปรากฎ) 7.3.3 Caching (เก็บข้อมูลที่เรียกใช้บ่อย และทำให้การเรียกใช้เร็วกว่า) 7.3.4 Spooling and device reservation (เป็น buffer ที่เก็บผลลัพธ์ของอุปกรณ์ เช่น printer) 7.3.5 Error handling 7.3.6 Kernel data structures7.4 ปฏิบัติการติดตั้งอุปกรณ์เพิ่มเติม- ฝึกติดตั้งอุปกรณ์ใหม่เพิ่มเข้าไป- ฝึกตรวจสอบความเร็วของอุปกรณ์ input และ output ต่าง ๆ - ฝึกเขียนแผนภาพแสดงการเชื่อมต่อระหว่าง CPU กับ I/O controller - ค้นคว้าข้อมูลเกี่ยวกับ ระบบรับ และแสดงผล จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
8. ระบบแฟ้ม(File System)
8.1 โครงสร้างระบบแฟ้ม (File-system structure)ระบบแฟ้มแบ่งได้เป็น 6 ชั้น (Layer) 1. Application programs โปรแกรมที่นำไปใช้ เช่น เกม หรือ word เป็นต้น 2. Logical file system มีหน้าที่เชื่อม OS กับผู้ใช้ เพราะผู้ใช้เห็นแฟ้มเดียว แต่อาจเก็บข้อมูลจริงไว้แยกกัน ซึ่งเป็นหน้าที่ของ OS 3. File-organization module ทำหน้าที่ เชื่อมระหว่าง Logical block และ Physical block ให้เป็นเรื่องเดียวกัน 4. Basic file system ทำหน้าที่เข้าไปอ่าน และเขียนในส่วนของ Physical block 5. I/O control ประกอบด้วย Device driver ควบคุมอุปกรณ์ให้ใช้งานได้ 6. Devices อุปกรณ์ที่เก็บข้อมูลหรือแฟ้ม ถูกควบคุมโดย Device driverif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.humblepie.com/graphics/directory_fat.jpg[/img]');}[img]http://www.humblepie.com/graphics/directory_fat.jpg[/img] 8.2 โครงสร้างไดเรกทอรี่(Directory structure)Directory หรือ Folder หมายถึง สารบัญ ทำหน้าที่เก็บรายชื่อแฟ้มไว้ในที่เดียวกัน เพื่อให้ผู้ใช้เรียกใช้ได้ และ Directory ก็ถือเป็นแฟ้มประเภทหนึ่งที่ประกอบด้วยหน่วยย่อยต่าง ๆ เมื่อแบ่งฮาร์ดดิสก์ออกเป็นหลาย partition แต่ละ partition ก็จะมีระบบ directory ของตนเองif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]pardisk.png[/img]');}[img]pardisk.png[/img]ปฏิบัติการเกี่ยวกับ Directory1. Search for a file2. Create a file3. Delete a file4. List a directory แสดงรายชื่อแฟ้มใน 1 directory5. Rename a file6. Traverse the file system แสดง หรือเก็บรายชื่อแฟ้มในทุก directory ได้โครงสร้างไดเรกทรอรี่เชิงตรรก (Logical structure of the directory)1. Single-level directory2. Two-level directory3. Tree-structured directory4. Acylic-graph directory5. General graph directoryif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]acylicgraph.png + generalgraph.png[/img]');}[img]acylicgraph.png + generalgraph.png[/img] 8.3 วิธีการเข้าถึง (Access methods)แฟ้มถูกใช้เก็บข้อมูลสารสนเทศ เมื่อถูกใช้ย่อมมีการเข้าถึง เพื่ออ่านข้อมูลหลายวิธี8.3.1 วิธีการเข้าถึง1. Sequential access methodการอ่านข้อมูลต้องเป็นไปตามลำดับ ไม่สามารถข้ามไปยังจุดที่ต้องการได้2. Direct access method or Relative access methodจากการที่แฟ้มมีการแบ่งเป็นกล่อง (Block) จึงทำให้สามารถวิ่งเข้าไปอ่านใน block ที่ต้องการได้โดยตรง3. Other access methodเช่น index and relative files จะมีตัวบ่งชี้ในการเข้าถึงระเบียนที่ต้องการ8.3.2 การเข้าถึงดิสก์1. การจัดเวลาแบบมาก่อนได้ก่อน (FCFS scheduling)เมื่ออยู่ใน queue ก็จะทำเรียงตามลำดับใน queue ไม่มีการพิจารณาอื่นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image010.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image010.gif[/img]2. การจัดเวลาแบบเวลาสั้นสุดได้ก่อน (SSTF scheduling)นำ process ใน queue มาพิจารณา และเลือกจุดที่เข้าถึงได้เร็ว จากจุดล่าสุดif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image013.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image013.gif[/img]3. การจัดเวลาแบบ SCAN (SCAN scheduling)อ่านจากด้านหนึ่งไปอีกด้านหนึ่งเป็นทิศทางเดียว เมื่อกลับมาอีกด้านก็ยังทำงานเช่นกันif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image016.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image016.gif[/img]4. การจัดเวลาแบบ C-SCAN (Circular-SCAN scheduling)อ่านจากด้านหนึ่ง แต่เป็นแบบทิศทางเดียวแท้จริง คือการย้อนกลับมาจะไม่บริการif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image019.gif[/img]');}[img]http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk_files/image019.gif[/img]5. การจัดเวลาแบบ (Look scheduling)คล้ายกับ scan แต่ scan หรือ c-scan จะไม่มีการนำไปใช้จริง เพราะหัวอ่าน จะพิจารณาไปยังจุดที่ต้องอ่านจริงของอีกด้านหนึ่ง ไม่ได้ มิได้ไปยังขอบของจานบันทึกตัวอย่าง disk scheduling :จาก http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week2.htmlCurrent position: track 100Requested tracks, in order received: 55, 58, 39, 18, 90, 160, 150, 38, 184FIFO: move 45 tracks to track 55; move 3 tracks to track 58; etc.SSTF: move 10 tracks to track 90; move 32 tracks to track 58; etc.SCAN, C-SCAN (moving in direction of increasing track number): move 50 tracks to track 150; move 10 tracks to track 160; etc.if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week207.gif[/img]');}[img]http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week207.gif[/img]ParameterFD 360KBHD รุ่นหนึ่งจำนวน cylinder4010601จำนวน track / cylinder212จำนวน sector / track9281(ค่าเฉลี่ย)จำนวน sector / disk72035742000จำนวน byte / sector512512ความจุดิสก์360 KB18.3 GBเวลาค้นหา (ใน cylinder ที่ติดกัน)6 msec0.8 msecเวลาค้นหา (โดยเฉลี่ย)77 msec6.9 msecเวลาในการหมุน200 msec8.33 msecเวลาที่มอเตอร์หมุน และหยุด250 msec20 secเวลาที่ใช้ในการถ่ายโอน 1 sector22 msec17 นาโนเซคัน8.4 การอนุญาตให้เข้าถึงแฟ้ม (File sharing)1. None2. Knowledge3. Execution4. Reading5. Appending6. Updating7. Changing protection8. Deletion 8.5 ปฏิบัติการจัดการแฟ้ม- ฝึกจัดการแฟ้มในระบบปฏิบัติการ DOS - ฝึกจัดการแฟ้มในระบบปฏิบัติการ Windows และการกำหนดสิทธิ์ - ฝึกจัดการแฟ้มในระบบปฏิบัติการ Linux และการกำหนดสิทธิ์ - ค้นคว้าข้อมูลเกี่ยวกับ ระบบแฟ้ม จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการ
9. ระบบกระจาย(Distributed Systems)
9.1 ประโยชน์ของระบบกระจายปัจจุบันนำคอมพิวเตอร์ไปใช้งานในหน่วยงานต่าง ๆ มากมาย มีผลให้การทำงานในองค์กร หรือหน่วยงาน สามารถทำงานได้เป็นระบบ และพัฒนาการทำงานอย่างต่อเนื่อง การนำคอมพิวเตอร์มาใช้ในหน่วยงาน ก็เริ่มมีการพัฒนาขึ้นแทนที่จะใช้หนึ่งเครื่องต่อหนึ่งคน ก็ให้มีการนำเครื่องคอมพิวเตอร์ และอุปกรณ์ต่าง ๆ มาเชื่อมต่อกัน เป็นระบบเครือข่ายคอมพิวเตอร์ 1. การแชร์ทรัพยากร 2. เพิ่มความเร็วในการคำนวณ 3. ความน่าเชื่อถือของระบบ 4. การติดต่อสื่อสาร 9.2 การเชื่อมต่อ (Topology)ภาษาเทคนิคเรียกว่า(Topology) เป็นลักษณะการเชื่อมต่อทางกายภาพระหว่างเครืองคอมพิวเตอร์ในระบบเครือข่าย ซึ่งแบ่งออกตามหลักวิชาการตั้งแต่สมัยก่อนนั้น แบ่งได้เป็น 4 แบบ คือ 1. โครงสร้างแบบบัส (Bus Network)ลักษณะการเชื่อมต่อแบบนี้จะเป็นแบบอนุกรม โดยใช้สายเคเบิลเส้นเดียว ลากต่อกันไป ทำให้โครงสร้างแบบนี้มีจุดอ่อนก็คือเมื่อคอมพิวเตอร์ตัวใดตัวหนึ่งมีปัญหากับสายเคเบิล ก็จะทำให้เครื่องรวนไปทั้งระบบ ข้อดีของโครงสร้างแบบนี้ก็คือไม่ต้องมีอุปกรณ์อย่างเช่น ฮับ/สวิทช์ ใช้สายเพียงเส้นเดียวก็เพียงพอแล้ว โครงสร้างแบบนี้จึงเหมาะกับเครือข่ายที่มีขนาดเล็กที่มีจำนวนเครื่องไม่มาก และในปัจจุบันไม่นิยมใช้กันแล้ว เนื่องจากไม่ได้มีการพัฒนาอะไรเพิ่มเติมเลย ความเร็วก็เพียง 10 Mbps 2. โครงสร้างแบบสตาร์ (Star Network)ลักษณะการเชื่อมต่อของโครงสร้างแบบสตาร์นี้ ดูไปแล้วจะคล้ายๆ ดาวกระจาย คือจะมีอุปกรณ์เช่น ฮับ หรือสวิทช์ เป็นศูนย์กลาง ซึ่งการเชื่อมต่อแบบี้มีประโยชน์คือ ถ้ามีสายเส้นใดเส้นหนึ่งหลุดหรือเสียก็จะไม่มีผลกระทบต่อการทำงานของระบบ นอกจากนี้ถ้าหากเราเพิ่มเครื่องคอมพิวเตอร์เข้าไปอีกในเครือข่ายก็สามารถทำได้ทันที การต่อแบบนี้เป็นที่นิยมมากในปัจจุบัน เนื่องจากอุปกรณ์ที่ใช้เป็นศูนย์กลางคือ ฮับ/สวิทช์ ราคาได้ถูกลงอย่างมากแล้วในขณะที่ประสิทธิภาพก็ได้เพิ่มสูงขึ้นเรื่อยๆ จนในปัจจุบันเป็นความเร็วขนาดกิกาบิตแล้ว 3. โครงสร้างแบบริง (Ring Network)ลักษณะการเชื่อมต่อจะเป็นลักษณะวงแหวน การส่งข้อมูลจะเป็นแบบทิศทางเดียว ซึ่งถ้าส่งไปแล้วไม่ตรงกับคอมพิวเตอร์เครื่องรับตามที่เครื่องต้นทางระบุมา ก็จะส่งไปยังเครื่องถัดไป จนกว่าจะถึงปลายทางคือตรงกับเครื่องใครก็จะรับ ไม่ส่งต่อ จุดอ่อนของระบบก็คล้ายๆแบบบัส ปัจจุบันผมยังเห็นใช้อยู่ในธนาคาร พวก Mainfram IBM AS/400 เป็นต้น 4. โครงสร้างแบบผสม (Hybird Network)ลักษณะสุดท้ายของของโครงสร้างแบบนี้ก็คือการนำเครือข่ายๆ ย่อยๆ ที่มีโครงข่ายตามแบบที่ผมกล่าวข้างต้นทั้ง สามแบบมารวมกัน หรือ เชื่อมต่อกันให้มีขนาดใหญ่ขึ้น ลักษณะแบบนี้ยังมีชื่อเรียกเฉพาะอีกด้วย เช่น โครงสร้างแบบต้นไม้ (Tree หรือ Hierachical หรือ Mesh) ก็คือเครือข่ายผสมที่เกิดจากการนำเอาเครือข่ายที่มีโครงสร้างแบบบัสและแบบสตาร์มาผสมกัน หรือโครงสร้างแบบไร้รูปแบบ (Mesh) ซึ้งก็คือโครงสร้างแบบสตาร์ผสมกับบัสที่เชื่อมต่อกันแบบไม่มีโครงสร้างแน่นอน 5. โครงสร้างเครือข่ายแบบไร้สาย(Wireless Network)ที่กล่าวมาทั้งหมดเกี่ยวกับโครงข่ายข้างต้นนั้น เป็นโครงสร้างที่ใช้กันสำหรับเครือข่ายแบบใช้สายแต่เนื่องจากปัจจุบันนี้มีเทคโนโลยีเครือข่ายแบบใหม่เกิดขึ้นมา ที่เรียกว่าเครือข่ายแบบไร้สาย(Wireless) จะใช้คลื่นวิทยุในการรับส่งข้อมูล จึงทำให้แตกต่างกันออกไป และโครงสร้างแบบนี้ได้แบ่งเป็น 2 แบบ คือ Peer-to-Peer และ Client Server นอกจากนี้ยังมีเครือข่ายของโทรศัพท์มือถือหรือ Cellular Network ซึ่งจัดอยู่ในรูปแบบโครงสร้างแบบไร้สายด้วย ลักษณะจะคล้ายๆเป็นรูปรังผึ้ง http://www.personal.psu.edu/users/l/q/lq4/wmover/Lesson3C.htmif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]topology_star.gif + topology_bus.gif + topology_ring.gif[/img]');}[img]topology_star.gif + topology_bus.gif + topology_ring.gif[/img] 9.3 แบบของเครือข่าย (Network Types)เครื่อข่ายที่พิจารณาจาก distance แบ่งได้ 3 ประเภท1. LAN (Local Area Network)เครือข่ายระยะใกล้ ที่ใช้กันอยู่ในบริเวณไม่กว้างนัก มักพบเห็นกัน ในองค์กรเดียวกัน โดยส่วนใหญ่ลักษณะของการเชื่อมต่อคอมพิวเตอร์เป็นวง LAN จะอยู่ในพื้นที่ใกล้ ๆ กัน เช่น อยู่ภายในอาคาร หรือตึกเดียวกัน เดียวกัน เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://asuult.net/images/eldew/networking-NIC.gif[/img]');}[img]http://asuult.net/images/eldew/networking-NIC.gif[/img]2. MAN (Metropolitan area network)เครือข่ายขนาดกลาง กลุ่มของเครือข่าย LAN ที่นำมาเชื่อมต่อกันเป็นวงที่ใหญ่ขึ้น ภายในบริเวณ พื้นที่ใกล้เคียง เช่น ในเมืองเดียวกัน หรือจังหวัดใกล้เคียงกัน เป็นต้นif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.crema.unimi.it/didattica/Labsistemi/matagg/Tutorial%20Networking_files/Tutorial-1.jpg[/img]');}[img]http://www.crema.unimi.it/didattica/Labsistemi/matagg/Tutorial%20Networking_files/Tutorial-1.jpg[/img]3. WAN (Wide Area network)เครือข่ายขนาดใหญ่โดยเป็นการรวมเครือข่ายทั้ง LAN และ MAN มาเชื่อมต่อกันเป็นเครือข่ายเดียว ดังนั้นเครือข่ายนี้จึงครอบคลุมพื้นที่กว้าง บางครั้งครอบคลุมไปทั่วประเทศ หรือ ทั่วโลก อย่างเช่น อินเทอร์เน็ต ก็จัดว่าเป็นเครือข่าย WAN ประเภทหนึ่ง แต่เป็นเครือข่ายสาธารณะที่ไม่มีใครเป็นเจ้าของif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://asuult.net/images/eldew/networking-lan-man-wan.gif[/img]');}[img]http://asuult.net/images/eldew/networking-lan-man-wan.gif[/img] เครื่อข่ายที่พิจารณาจาก performance and reliability แบ่งได้ 2 ประเภท1. Client-server systems :: หลักการ Centralized system ที่มีเครื่องบริการ และรับบริการ2. Peer-to-peer systems :: ระบบที่กำลังเติบโตในปัจจุบัน เช่น internet นี่เอง การเชื่อมต่อ internet จากที่บ้าน ไป ISP มี 5 วิธี 1. Dial-up56 Kbps ผ่านสายโทรศัพท์ธรรมดา และใช้ Modem ในการเชื่อมต่อวิธีนี้เป็นวิธีที่นิยมมากที่สุดในไทย เพราะใช้งานง่าย เพียงแต่ซื้อคอมพิวเตอร์ที่มี modem เมื่อนำคอมพิวเตอร์ไปวางที่บ้าน ก็หาสายโทรศัพท์ เสียบเข้าช่อง modem ก็สามารถใช้คอมพิวเตอร์เชื่อมต่อ internet ได้แล้ว ถ้าไม่มีเงินซื้อ package ของ ISP ก็สามารถใช้ free internet ของ TOT ได้ โดยเสียค่าโทรศัพท์ครั้งละ 3 บาท ใช้ได้นาน 2 ชั่วโมงต่อครั้ง เมื่อหลุดก็ต่อใหม่ แต่หลาย ๆ คน บอกว่าติดยาก และช้า ซึ่งผมให้ข้อมูลเลยว่า แล้วแต่บ้าน และผู้ให้บริการโทรศัพท์ของท่าน เพราะของผมเร็วระดับหนึ่ง และติดทุกครั้งเมื่อ connect โดยหมุนไปที่เบอร์ 1222Username : U89$0y)9@totonline.netPassword : j4**9c+p 2. ISDN (Integrated Services Digital Network)128 Kbps ผ่านสายโทรศัพท์ดิจิทัล ISDN และใช้ ISDN Modem ในการเชื่อมต่อให้บริการโดยบริษัทผู้ให้บริการโทรศัพท์ เช่น TOT TT&T หรือ TA ถ้าแถวบ้านท่านไม่มีบริการ ISDN ก็หมดสิทธิ์ใช้บริการนี้ เพราะผู้ให้บริการต้องต่อสายโทรศัพท์แบบพิเศษนี้เข้าบ้านท่าน แต่จะใช้สายโทรศัพท์แบบเก่าไม่ได้ สำหรับความเร็วของ ISDN จะได้ค่อนข้างแน่นอน ที่ 128 Kbps และไม่ได้รับผลกระทบจากสัญญาณรบกวนภายนอกมากนัก เพราะระบบ ISDN มีส่วนประกอบ 3 สาย หรือ 3 Channels คือ B-Channels 2 สาย และ D-Channels 1 สาย สำหรับ B-Channels มีความเร็วสายละ 64 Kbps เมื่อนำมารวมกันก็จะได้ 128 Kbps แต่ D-Channels มีความเร็ว 16 Kbps ซึ่งไม่ใช้รับส่งข้อมูล 3. DSL (Digital Subscriber Line)สูงกว่าแบบ ISDN แต่ระบุไม่ได้ และใช้ Modem ในการเชื่อมต่อความเร็วของ DSL ขึ้นกับผู้ให้บริการโทรศัพท์ และข้อตกลงที่จะเลือกใช้การเชื่อมต่อ DSL แบบใด การเชื่อมต่อ DSL จะให้บริการผ่านสายโทรศัพท์ธรรมดา เช่นในลำปางจะมี TT&T เป็นผู้ให้บริการ DSL เพราะผมเห็นร้าน net หลายแห่งใช้ และมีความเร็วที่สูงมาก โดยต่อสายจาก DSL modem เข้ากับ Hub ก็จะทำให้เครื่องในเครือข่ายต่อ internet ได้อย่างรวดเร็วเทคโนโลยี DSL มีหลายเทคโนโลยี1. ADSL (Asymmetric Digital Subscriber Line)2. HDSL (High-bit-rate Digital Subscriber Line)3. RADSL (Rate Adaptive Asymmetric Digital Subscriber Line)4. SDSL (Symmetric Digital Subscriber Line)5. VDSL (Very high-bit-rate Digital Subscriber Line)4. Cableต้อง share ร่วมกับคนอื่น ความเร็วจึงไม่แน่นอน ผ่านสาย CABLE TV (ในอเมริกาเป็นเรื่องปกติ)เชื่อมต่อแบบนี้จะใช้ Coaxial cable ซึ่งเป็นสาย CABLE TV ซึ่งให้บริการทั้งโทรศัพท์ และชมทีวีร่วมกัน หากต้องการใช้อินเทอร์เน็ต ก็เพียงแต่หา Cable modem มาเชื่อมต่อเพิ่ม และเสียบสายเข้ากับ LAN card ในเครื่องของเรา 5. Satelliteความเร็วขึ้นกับแบบของจานดาวเทียม ผ่านจานดาวเทียมปัจจุบัน CS internet คือผู้ให้บริการการเชื่อมต่อแบบจานดาวเทียม ซึ่งมีหลาย ๆ แบบ ตั้งแต่ใช้จานดาวเทียมร่วมกับ modem โดยใช้จานเป็นฝ่ายรับ และ modem เป็นฝ่ายส่งข้อมูล หรือใช้จานดาวเทียมทำหน้าที่ทั้งรับ และส่งข้อมูล สำหรับระบบดาวเทียมในปัจจุบันจะเรียกว่า DBS (Direct Broadcast Satellites) การเชื่อมต่อแบบนี้นิยมมากในพื้นที่ ๆ สายโทรศัพท์เข้าไปไม่ถึง เช่น หมู่บ้านบนภูเขา หรือ อบต. ในพื้นที่ห่างไกลเป็นต้นDeviceSpeedDistanceReliabilityCostRemarksRepeater + UTP10/100/1000 Mbps100 MHighMediumติดตั้งได้ยากสำหรับงาน Outdoor56K Modem56 KbpsUnlimitedVery LowLowความเร็วและความน่าเชื่อถือต่ำFiber Optic10/100/1000 Mbps15 KMHighVery Highความเร็วสูง ต้นทุนสูงWireless LAN11 Mbps300 M, 15 KMVery LowVery Highติดตั้งยาก ต้นทุนสูงVDSL17/10 Mbps1.2/1.5 KMHigh Lowติดตั้งง่ายต้นทุนต่ำG.SHDSL2.3 Mbps6 KMHigh Mediumติดตั้งง่ายต้นทุนต่ำ 9.4 อีเธอร์เน็ต (Ethernet)Ethernet คือชื่อวิธีการสื่อสาร หรือ ระเบียบวิธีการ(Protocal) ของระบบ LAN ชนิดหนึ่งที่พัฒนาโดย Xerox corporation, Digital equipment corporation(DEC) และ Intel ตั้งแต่ปี ค.ศ.1976 เป็นไปตามมาตรฐาน IEEE 802.3 ในช่วงแรก Ethernet มีความเร็วเพียง 10 Mbps แต่ปัจจุบันพัฒนาเป็น Fast ethernet(100 Mbps) และ Gigabit ethernet(1000 Mbps)Ethernet ใช้เทคนิครับส่งข้อมูล CSMA/CD (Carrier sense multiple access/collision detection) หมายถึง การรับส่งข้อมูลที่ทำได้ครั้งละ 1 คน แต่จะมีการตรวจสอบ หากมีใครใช้สายก็จะไม่ส่ง และถ้าชนก็จะสุ่ม เพื่อไม่ให้เกิดปัญหา- CS : Carrier sense หมายถึง การมี sense ในการถือครอง มีคนใช้อยู่ก็จะไม่แย่ง- MA : Multiple access หมายถึง อุปกรณ์ต่าง ๆ ใช้สื่อชุดเดียวกันในการรับส่งข้อมูล- CD : Collision detection หมายถึง เมื่อส่งพร้อม ๆ กันอาจชน จึงมีการตรวจสอบ ไม่ให้ชนHub หรือ Switch ต่างเป็นอุปกรณ์ศูนย์กลาง สำหรับเชื่อมต่อคอมพิวเตอร์ หลายเครื่องเข้าด้วยกันด้วยอุปกรณ์ 3 อย่าง คือ สาย UTP(Unshieled Twisted Pair แบบ Category 5(CAT5)) หัว RJ45 สำหรับเข้าหัวท้ายของสาย และ Network adapter cardHub เป็นอุปกรณ์ในสมัยแรก ที่ทำงานแบบ broadcast เมื่อเครื่องหนึ่งต้องการส่งสัญญาณไปอีกเครื่องหนึ่ง ตัว hub จะทำหน้าที่ส่งออกไปให้กับทุกเครื่อง ถ้าเครื่องเป็นผู้รับ ก็จะรับข้อมูลไป ถ้าไม่ใช้ก็จะไม่รับ ดังนั้นเมื่อซื้อ hub ขนาด 10 port ที่มีความเร็ว 10 Mbps(Mega Bit Per Second) ความเร็วที่ได้ก็ต้องหาร 10 เหลือเพียง 1 Mbps เมื่อใช้งานจริง หากมีผู้ใช้คนหนึ่งใช้โปรแกรม sniffer คอยดักจับ package ที่ส่งจาก hub ก็จะทราบข้อมูลต่าง ๆ ที่อยู่ในเครือข่ายนั้นทั้งหมด เช่น เนื้อความในจดหมาย เลขบัตรเครดิต username หรือ password ของผู้ใช้คนอื่น ๆ เป็นต้น สำหรับ Hub บางรุ่นจะมีช่อง Uplink สำหรับเชื่อมต่อ Hub อีกตัวหนึ่ง เพื่อขยายช่องสัญญาณ โดยใช้สาย Cross link ในการเชื่อม hub ผ่าน Uplink port โดยปกติ Hub แบบเดิมจะเป็นการเชื่อมเครือข่ายแบบ Ethernet 10BaseT หรือมีความเร็วที่ 10 Mbps นั่นเองSwitch เป็นอุปกรณ์ที่พัฒนาขึ้น โดยเลือกส่งข้อมูลถึงผู้รับเท่าที่จำเป็นเท่านั้น ทำให้เครือข่ายที่ใช้ switch มีความเร็วสูงกว่าเครือข่ายที่ใช้ hub และมีความปลอดภัยสูงกว่า มีการพัฒนา switch ให้ทำงานใน Layer 3 ของ OSI ได้ ซึ่งมีความสามารถเป็น IP switching ทีเดียว 9.5 ปฏิบัติการฝึกเชื่อมต่อเครือข่าย- ฝึกต่อเครือข่ายด้วย LAN card, Wireless ผ่าน Hub หรือ Switch - ฝึกแชร์อุปกรณ์ หรือแฟ้มในเครือข่าย - ฝึกตรวจสอบจุดบกพร่องภายในเครือข่าย - ค้นคว้าข้อมูลเกี่ยวกับ ระบบกระจาย จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น แนะนำเว็บไซต์ประกอบการค้นคว้าบางส่วน
10. การป้องกัน +ระบบความมั่นคง(Protection and Security)
10.1 การป้องกัน (Protection)คอมพิวเตอร์มีการทำงานที่ซับซ้อนเพิ่มขึ้นทุกวัน ความน่าเชื่อถือจึงเป็นหัวข้อที่ถูกหยิบยก ขึ้นมากล่าวถึงอยู่เสมอ โดยเฉพาะระบบมัลติโปรแกรมมิ่ง (Multiprogramming) ที่มีผู้เข้าใช้ระบบจำนวนมาก จึงต้องปกป้องคอมพิวเตอร์ให้พ้นจากผู้ไม่ประสงค์ดีกฎการป้องกันของระบบคอมพิวเตอร์คือ การสร้างกลไกที่บังคับให้ผู้ใช้ทรัพยากรปฏิบัติตามข้อกำหนด ที่ได้สร้างไว้ เพื่อการใช้ทรัพยากรเป็นไปอย่างถูกต้อง และป้องกับข้อมูลของผู้ใช้ให้มีความปลอดภัยนั่นเองDomain of protection คือ การนิยามความสัมพันธ์ของ object และ right ที่สัมพันธ์กัน ความสัมพันธ์ของ domain อาจยอมให้ object ถูกเรียกใช้ได้หลาย ๆ domain เช่น object เกี่ยวกับการพิมพ์ บาง domain จะมี object ในการดูแลมากมาย และมี right ที่เฉพาะเจาะจงเช่น อ่าน เขียน หรือประมวลผลACL (Access control list) คือ ตารางความสัมพันธ์ของ object และ domain ที่สามารถเรียกใช้แต่ละ object โดยไม่เกิดปัญหา บางระบบปฏิบัติการจะมีระบบ ACL ที่สนับสนุนระบบกลุ่มผู้ใช้(GID) และผู้ใช้(UID) P.239 น.ท.ไพศาลจุดประสงค์หลักของความปลอดภัยทางข้อมูล1. การรักษาความลับ (Confidentiality) คือการรับรองว่าจะมีการเก็บข้อมูลไว้เป็นความลับ และผู้มีสิทธิเท่านั้นจึงจะเข้าถึงข้อมูลนั้นได้2. การรักษาความสมบูรณ์ (Integrity) คือการรับรองว่าข้อมูลจะไม่ถูกเปลี่ยนแปลงหรือทำลายไม่ว่าจะเป็นโดย อุบัติเหตุหรือโดยเจตนา3. ความพร้อมใช้ (Availability) คือการรับรองว่าข้อมูลและบริการการสื่อสารต่าง ๆ พร้อมที่จะใช้ได้ในเวลาที่ต้องการใช้งาน4. การห้ามปฏิเสธความรับผิดชอบ (Non-Repudiation) คือวิธีการสื่อสารซึ่งผู้ส่งข้อมูลได้รับหลักฐานว่าได้มีการส่งข้อมูลแล้วและผู้รับก็ได้รับการยืนยันว่าผู้ส่งเป็นใคร ดังนั้นทั้งผู้ส่งและผู้รับจะไม่สามารถปฏิเสธได้ว่าไม่มีความเกี่ยวข้องกับข้อมูลดังกล่าวในภายหลังเรียบเรียงโดย : สิริพร จิตต์เจริญธรรม, เสาวภา ปานจันทร์ และ เลอศักดิ์ ลิ้มวิวัฒน์กุลกำหนดลักษณะของการควบคุมความมั่นคงปลอดภัย (Security Controls) ได้ 5 ระดับ1. Audit (Who done it?)2. Integrity (Who can change it?)3. Encryption (Who can see it?)4. Authorization (Who can access it?)5. Authentication (Who's who?)if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.thaicert.nectec.or.th/paper/authen/authentication_guide/layer.png[/img]');}[img]http://www.thaicert.nectec.or.th/paper/authen/authentication_guide/layer.png[/img] 10.2 สภาพแวดล้อมของความปลอดภัยการรักษาความปลอดภัย คือ อ้างการป้องกันปัญหาทั้งหมด แต่การป้องกัน จะอ้างถึงกลไกเฉพาะด้านของโปรแกรมระบบที่ใช้ป้องกันข้อมูล สำหรับการรักษาความปลอดภัย (Security) มีประเด็นอยู่ 3 ด้านคือ 1. ภัยคุกคาม(Threat) 1.1 นำความลับไปเปิดเผย(Data confidentiality) 1.2 เปลี่ยนแปลงข้อมูล(Data integrity) 1.3 ทำให้หยุดบริการ(System availability) 2. ผู้ประสงค์ร้าย(Intruder) 2.1 พวกชอบสอดรู้สอดเห็น 2.2 พวกชอบทดลอง 2.3 พวกพยายามหารายได้ให้ตนเอง 2.4 พวกจารกรรมข้อมูล 3. ข้อมูลสูญหายโดยเหตุสุดวิสัย(Accidental data loss) 3.1 ปรากฎการณ์ทางธรรมชาติ 3.2 hardware หรือ software ทำงานผิดพลาด 3.3 ความผิดพลาดของมนุษย์ 10.3 ภัยคุกคาม (Threats)ภัยคุกคาม หรือการสร้างความเสียหายในระบบคอมพิวเตอร์ มี 3 ประการคือ นำความลับไปเปิดเผย(Data confidentiality) เปลี่ยนแปลงข้อมูล(Data integrity) และทำให้หยุดบริการ(System availability) เปรียบเทียบเป้าหมายการป้องกัน และการสร้างความเสียหายมาเปรียบเทียบได้ดังนี้เป้าหมายของการป้องกันเป้าหมายการคุกคาม หรือสร้างความเสียหายรักษาความลับนำความลับไปเปิดเผย(Data confidentiality)รักษาความสมบูรณ์เปลี่ยนแปลงข้อมูล(Data integrity)พร้อมใช้ตลอดเวลาทำให้หยุดบริการ(System availability) แอดแวร์ (Adware)โปรแกรมสนับสนุนโฆษณา (Advertising Supported Software) เกิดจากบริษัทต่าง ๆ จะพยายามโฆษณาสินค้าของตน จึงแอบติดตั้งโปรแกรมในเครื่องของผู้ใช้ให้แสดงป้ายโฆษณา เพื่อชวนผู้ใช้ไปซื้อสินค้าเหล่านั้น สปายแวร์ (Sypware)เป็นซอฟต์แวร์ที่เขียนมาเพื่อส่งข้อมูลส่วนบุคคลของคุณไปยังคน หรือสิ่งที่ได้กำหนดไว้ ลักษณะจะคล้ายกับ Cookies แต่ว่า spyware นี้จะเป็น third-party cookies ปกติแล้ว Cookies นั้นจะเป็นเครื่องมือที่อำนวยความสะดวกให้กับผู้ใช้งานอินเทอร์เน็ตหรือโปรแกรมบางอย่าง เช่นเมื่อใช้อินเทอร์เน็ต และเข้าเว็บที่คุณได้ติดตั้ง Cookies ไว้จะแสดงผลได้อย่างรวดเร็ว หรือจะช่วยจำค่าที่คุณได้ปรับแต่งโปรแกรมเอาไว้ และ ในบาง Cookies จะส่งผลการใช้งานโปรแกรมกลับไปยังผู้พัฒนาเพื่อดูผลการใช้งานจะได้นำมาปรับปรุงต่อไป แต่ว่า spyware จะเป็น Cookies ที่แอบแฝงเข้ามา โดยที่คุณไม่รู้ตัวเพื่อวัตถุประสงค์เพื่อการโฆษณาหรือแอบนำข้อมูลส่วนตัวของคุณส่งออกไป ผู้ผลิตส่วนใหญ่จะแจ้งเรื่องการส่งการ รายงานผลกลับในระหว่างการลงโปรแกรมอยู่แล้ว ผู้ใช้งานควรอ่านเงื่อนไขให้ดีก่อนตอบตกลง 10.4 การรับรองผู้ใช้ (User authentication)การรักษาความปลอดภัยให้กับระบบที่สำคัญมาก คือการพิสูจน์ว่าผู้ใช้ที่กำลังใช้งานอยู่คือใคร มีสิทธิ์เข้าใช้ระบบเพียงใด โดยผ่านการ login เข้าสู่ระบบ ซึ่งคอมพิวเตอร์ในยุคแรก ๆ ไม่ระบบนี้ สำหรับการรับรองสิทธิ์นั้นมี 4 วิธีในการรับรองสิทธิ์ คือ 1. รหัสผ่าน (ความจำ ให้แทนกันได้) 2. ตอบคำถามให้ถูกต้อง (ความจำ ให้แทนกันได้) 3. กุญแจ หรือบัตรผ่าน (วัตถุ ให้แทนกันได้) 4. ลายนิ้วมือ ม่านตา หรือลายเซ็นต์ (ลักษณะเฉพาะ ให้แทนกันไม่ได้)การพิสูจน์ตัวตน คือขั้นตอนการยืนยันความถูกต้องของหลักฐาน (Identity) ที่แสดงว่าเป็นบุคคลที่กล่าวอ้างจริง ในทางปฏิบัติจะแบ่งออกเป็น 2 ขั้นตอน คือการระบุตัวตน (Identification) คือขั้นตอนที่ผู้ใช้แสดงหลักฐานว่าตนเองคือใครเช่น ชื่อผู้ใช้ (username)การพิสูจน์ตัวตน (Authentication) คือขั้นตอนที่ตรวจสอบหลักฐานเพื่อแสดงว่าเป็นบุคคลที่กล่าวอ้างจริง10.5 การเข้ารหัส (Encryption)ปัจจุบันระบบเครือข่ายเชื่อมต่อกันไปทั่วโลก ข้อมูลที่อยู่ในคอมพิวเตอร์มีความสำคัญที่จะต้องปกป้อง จึงมีเทคนิคการเข้ารหัสข้อมูล เพื่อป้องกันการอ่านข้อมูล สำหรับกลไกพื้นฐานในการเข้ารหัสข้อมูลคือ 1. ข้อมูลถูกเข้ารหัส(encode) จากข้อมูลธรรมดา(Plain text) ให้อยู่ในรูปที่อ่านไม่ออก(Cipher text) 2. ข้อมูลที่ถูกเข้ารหัสแล้ว(Cipher text) ถูกส่งไปในอินเทอร์เน็ต 3. ผู้รับข้อมูลทำการถอดรหัส (Decode) ให้กลับมาเป็นข้อมูลธรรมดา (Plain text)สำหรับการเข้ารหัสที่นิยมกันมี 2 วิธีคือการใช้ Secret-key encryption เป็นการเข้ารหัสที่รู้กันระหว่าคอมพิวเตอร์ 2 เครื่อง หรือผู้ใช้ 2 คน ส่วน Public-key encryption เป็นการเข้ารหัสที่มี key 2 ส่วนคือ public key และ private key เช่นระบบ SSL ที่นิยมใช้กันในปัจจุบัน Secure Sockets Layer (SSL) คืออะไรSecure Sockets Layer (SSL) คือ โปรโตคอลความปลอดภัย ที่ถูกใช้เป็นมาตรฐาน ในการเพิ่มความปลอดภัย ในการสื่อสารหรือส่งข้อมูลบนเครือข่ายอินเทอร์เน็ต ในปัจจุบันเทคโนโลยี SSL ได้ถูกทำการติดตั้งลงบนบราวเซอร์ อาทิ IE, Netscape และอื่นๆมากมายอยู่เรียบร้อยแล้วโปรโตคอล SSL จะใช้ Digital Certificate ในการสร้างท่อสื่อสาร ที่มีความปลอดภัยสูง สำหรับตรวจสอบ และเข้ารหัสลับการติดต่อสื่อสารระหว่าง client และ server หน้าที่ของ SSL จะแบ่งออกเป็น 3 ส่วนใหญ่ๆคือ1. การตรวจสอบ server ว่าเป็นตัวจริง ตัวโปรแกรม client ที่มีขีดความสามารถในการสื่อสารแบบ SSL จะสามารถตรวจสอบเครื่อง server ที่ตนกำลังจะไปเชื่อมต่อได้ว่า server นั้นเป็น server ตัวจริงหรือไม่ หน้าที่นี้ของ SSL เป็นหน้าที่ที่สำคัญ โดยเฉพาะอย่างยิ่งในกรณีที่ client ต้องการที่จะส่งข้อมูลที่เป็นความลับ (เช่น หมายเลข credit card) ให้กับ server ซึ่ง client จะต้องตรวจสอบก่อนว่า server เป็นตัวจริงหรือไม่2. การตรวจสอบว่า client เป็นตัวจริง server ที่มีขีดความสามารถในการสื่อสารแบบ SSL จะตรวจสอบ client หรือผู้ใช้ว่าเป็นตัวจริงหรือไม่ หน้าที่นี้ของ SSL จะมีประโยชน์ในกรณีเช่น ธนาคารต้องการที่จะส่งข้อมูลลับทางการเงินให้แก่ลูกค้าของตนผ่านทางเครือข่าย Internet (server ก็จะต้องตรวจสอบ client ก่อนว่าเป็น client นั้นจริง)3. การเข้ารหัสลับการเชื่อมต่อ ในกรณีนี้ ข้อมูลทั้งหมดที่ถูกส่งระหว่าง client และ server จะถูกเข้ารหัสลับ โดยโปรแกรมที่ส่งข้อมูลเป็นผู้เข้ารหัสและโปรแกรมที่รับข้อมูลเป็นผู้ถอดรหัส (โดยใช้วิธี public key) นอกจากการเข้ารหัสลับในลักษณะนี้แล้ว SSL ยังสามารถปกป้องความถูกต้องสมบูรณ์ของข้อมูลได้อีกด้วย กล่าวคือ ตัวโปรแกรมรับข้อมูลจะทราบได้หากข้อมูลถูกเปลี่ยนแปลงไปในขณะกำลังเดินทางจากผู้ส่งไปยังผู้รับ 10.6 ปฏิบัติการฝึกป้องกัน และรักษา- ฝึกส่งข้อมูลระหว่างคอมพิวเตอร์ เช่น email หรือ telnet หรือ secure sheel - ฝึกตรวจสอบบริการของ server เช่น scan port, nmap เป็นต้น - ฝึกลับลอบข้อมูลที่ไม่มีการเข้ารหัส และหาทางป้องกัน เช่น sniffer และตรวจสอบ log file - ฝึกฆ่าไวรัส และ spyware - ค้นคว้าข้อมูลเกี่ยวกับ การป้องกัน และระบบความปลอดภัย จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
บทที่11ระบบปฏิบัติการ Linux
1.1 ประวัติความเป็นมา (History) ระบบปฏิบัติการเก่าแก่ที่ถูกพัฒนาขึ้นในปี 1969 โดยบริษัทเอทีแอนด์ที (AT&T หรือ American Telephone & Telegraph) เพื่อใช้กับเครื่องมินิคอมพิวเตอร์ โดยแรกเริ่มจะถูกใช้เพื่องานวิจัยหรือเพื่อการศึกษาในมหาวิทยาลัยเท่านั้น ต่อมาได้ถูกนำมาใช้ในทางธุรกิจและเป็นที่นิยมแพร่หลายมาจนถึงปัจจุบัน เนื่องจากยูนิกซ์เป็นระบบปฏิบัติการสำหรับผู้ใช้หลายคน(Multi-User) และสนับสนุนการทำงานแบบหลายงาน (Multi-task) ที่เปิดโอกาสผู้ใช้สามารถรันงานได้มากกว่าหนึ่งงานในเวลาเดียวกัน และเนื่องจากเป็นระบบปฏิบัติการที่ถูกพัฒนาขึ้นด้วยภาษาซี ไม่ใช่แอสเซมบลี ดังนั้นจึงมีคุณสมบัติที่เด่นกว่าระบบปฏิบัติการอื่น ๆ คือ การไม่ยึดติดอยู่กับฮาร์ดแวร์ (Hardware independent) ดังนั้นจึงสามารถใช้งานยูนิกซ์ได้กับเครื่องคอมพิวเตอร์เกือบทุกแบบทุกประเภทตั้งแต่ไมโครคอมพิวเตอร์ มินิคอมพิวเตอร์ไปจนถึงเมนเฟรมคอมพิวเตอร์ และนอกจากนี้ยังมีการเพิ่มเติมความสามารถทางด้านการเชื่อมต่อเข้ากับระบบเครือข่ายอีกด้วย หลายบริษัทได้หันมาสนใจยูนิกซ์ AT&T จึงได้ออกใบอนุญาตให้กับบริษัทผู้ผลิตมินิคอมพิวเตอร์และเครื่องเวอร์กสเตชันทั้งหลาย เป็นผลให้ยูนิกซ์ได้รับการปรับปรุงแก้ไขและถูกขายให้กับบริษัทอื่น ๆ อีกหลายบริษัท ซึ่งก็ได้มีการพัฒนายูนิกซ์เวอร์ชันใหม่ ๆ ออกมามากมาย ตัวอย่างเช่น ยูนิกซ์เวอร์ชัน AIX จากบริษัทไอบีเอ็ม Solaris จากบริษัทซันไมโครซิสเต็ม NextStep จากบริษัท Next หรือ Motif จากบริษัทไอบีเอ็ม ดิจิตัลอีควิบเมนท์ และฮิวเลทท์แพ็คการ์ด (Hewlett-Packard) ที่ร่วมกันพัฒนา Motif ขึ้นมา หรือแม้แต่ในปัจจุบันที่มีกลุ่มผู้คนจากทั่วโลกได้ร่วมกันพัฒนายูนิกซ์เวอร์ชันสำหรับไมโครคอมพิวเตอร์ที่เรียกว่า ไลนักซ์หรือลีนุกซ์ (Linux) ออกมา ซึ่งเกิดจากการแลกเปลี่ยนความเห็นกันบนอินเตอร์เน็ตที่ต้องการจะพัฒนายูนิกซ์สำหรับเครื่องไมโครคอมพิวเตอร์ ที่มีประสิทธิภาพเท่ากับเครื่องขนาดใหญ่ ซึ่งจะเป็นการลดต้นทุนและค่าใช้จ่ายกว่าการใช้ยูนิกซ์สำหรับเครื่องขนาดใหญ่ ยูนิกซ์ยังเป็นระบบปฏิบัติการที่มีเครื่องมือ (tools) หรือโปรแกรมอำนวยความสะดวก (utilities) และเซลล์ (shell) ที่ช่วยนักเขียนโปรแกรมสามารถพัฒนาโปรแกรมประยุกต์บนยูนิกซ์ได้อย่างมีประสิทธิภาพ นอกจากนี้ โครงสร้างระบบไฟล์ยังเหมือนกับระบบปฏิบัติการดอส แต่คำสั่งอาจแตกต่างกันไปบ้าง ข้อด้อยของยูนิกซ์คือ ผู้ใช้ส่วนใหญ่จะต้องจดจำคำสั่งต่าง ๆ ของยูนิกซ์ ซึ่งค่อนข้างยากต่อการจดจำ แต่ในปัจจุบันผู้ผลิตเครื่องที่ใช้ระบบปฏิบัติการยูนิกซ์ ก็ได้พัฒนาโปรแกรมที่มีลักษณะเป็น GUI (Graphic User Interface) จึงช่วยให้การใช้งานยูนิกซ์ง่ายขึ้น นอกจากนี้การที่ยูนิกซ์ถูกพัฒนาเป็นหลายเวอร์ชันจากหลายบริษัท ซึ่งแต่ละเวอร์ชันอาจมีข้อแตกต่างกันบ้างเล็กน้อย จึงทำให้มีผู้มองว่ายูนิกซ์ไม่มีความเป็นมาตรฐานเดียวกัน แต่เนื่องจากยูนิกซ์เป็นระบบปฏิบัติการที่สามารถใช้งานได้กับเครื่องคอมพิวเตอร์หลายประเภทหลายแบบ ดังนั้นจึงเป็นระบบปฏิบัติการที่นิยมใช้มากในระบบเครือข่ายขนาดใหญ่ที่มีการเชื่อมเครื่องคอมพิวเตอร์ แต่ละประเภทเข้าด้วยกันในลักษณะของเครือข่ายอินเตอร์เน็ต จุดเด่นของ LINUX 1. เป็นระบบที่ใช้ได้ฟรี 2. เป็นระบบปฏิบัติการแบบเปิด 3. คอมแพติเบิลกับ Unix 4. ทำงานได้บน PC ทั่วไป 5. ทำงานร่วมกับ DOS และ Windows ได้ 6. ใช้แฟ้มร่วมกับระบบปฏิบัติการอื่นได้ 7. มีความสามารถด้าน network หลายรูปแบบ 8. มีประสิทธิภาพสูงในการใช้ Hardware 9. Kernel มีประสิทธิภาพสูง 10. มีการใช้ Dynamic linked shared libraries 11. การช่วยเหลือเมื่อเกิดปัญหา 11.2 หลักการออกแบบ 1. Direct blocks 2. Indirect blocks 3. Double indirect blocks 4. Triple indirect blocksif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.bb-zone.com/SLGFG/figures/Inode.gif + demos-fs.gif>[/img]');}[img]http://www.bb-zone.com/SLGFG/figures/Inode.gif + demos-fs.gif>[/img] 11.3 ระบบแฟ้ม (File System) http://www.cs.wisc.edu/~bart/537/lecturenotes/s24.html The file descriptor information has to be stored on disk, so it will stay around even when the OS does not. - In Unix, all the descriptors are stored in a fixed size array on disk. The descriptors also contain protection and accounting information. - A special area of disk is used for this (disk contains two parts: the fixed-size descriptor array, and the remainder, which is allocated for data and indirect blocks). - The size of the descriptor array is determined when the disk is initialized, and cannot be changed. In Unix, the descriptor is called an i-node, and its index in the array is called its i-number. Internally, the OS uses the i-number to refer to the file. - When a file is open, its descriptor is kept in main memory. When the file is closed, the descriptor is stored back to disk.if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.cs.wisc.edu/~bart/537/lecturenotes/figures/s26.unix.gif + inode.gif + demos-fs.gif[/img]');}[img]http://www.cs.wisc.edu/~bart/537/lecturenotes/figures/s26.unix.gif + inode.gif + demos-fs.gif[/img] ext2 : the standard in Linux ext3 : further development of ext2 (currently beta status), will be able to do journaling General overview of the Linux file system http://www.faqs.org/docs/linux_intro/sect_03_01.html ls -l แสดงจำนวน folder ในแต่ละห้อง ls -i แสดง inode ของแต่ละแฟ้ม df -h แสดงพื้นที่แต่ละ partitionif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.faqs.org/docs/linux_intro/images/FS-layout.png[/img]');}[img]http://www.faqs.org/docs/linux_intro/images/FS-layout.png[/img] ภาพแสดงระบบแฟ้มของ ext2 ในระบบปฏิบัติการ linux http://www.bb-zone.com/SLGFG/chapter1.html http://www.cs.wisc.edu/~bart/537/lecturenotes/s24.html http://www.csie.ntu.edu.tw/~pangfeng/System%20Programming/Lecture_Note_2.htm http://vandali.org/DanieleMasini/sorgentiinfolinux.php รวมภาพเกี่ยวกับ linux เพียบ 1. Direct blocks 2. Indirect blocks 3. Double indirect blocks 4. Triple indirect blocksif (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img] web Inode.gif + demos-fs.gif[/img]');}[img] web Inode.gif + demos-fs.gif[/img] 11.4 คำสั่ง (Command) คำสั่งน่ารู้ในระบบปฏิบัติการ Unix หรือ Linux man แสดงคำอธิบายคำสั่ง เพื่อช่วยในการนำไปใช้ ls แสดงรายชื่อแฟ้มใน directory ปัจจุบัน id แสดงชื่อผู้ใช้คนปัจจุบัน who แสดงชื่อผู้ใช้ที่กำลัง online อยู่ pwd แสดงชื่อ directory ปัจจุบัน date แสดงวันที่ และเวลาปัจจุบัน banner (คำสั่งนี้ใช้งานไม่ได้ใน RedHat 9) ps แสดงกระบวนการที่กำลังทำงานอยู่ kill ยกเลิกกระบวนการที่กำลังทำงานอยู่ mail ส่งอีเมล sort จัดเรียงข้อมูลใน text file clear ล้างจอภาพ more แสดงข้อมูลจาก text file แบบแยกหน้า passwd เปลี่ยนรหัสผ่าน cal แสดงปฏิทิน echo แสดงตัวอักษร talk สนทนากับผู้ใช้ในระบบ grep ค้นหาตัวอักษรจาก text file Process handling commands from http://www.linuxforum.com/linux/sect_04_05.htmlat Queue jobs for later execution.atq Lists the user's pending jobs.atrm Deletes jobs, determined by their job number.batch Executes commands when system load level permits.crontab Maintain crontab files for individual users.halt Stop the system.init runlevel Process control initialization.jobs Lists currently executing jobs.kill Terminate a process.mesg Control write access to your terminal.netstat Display network connections, routing tables, interface statistics,masquerade connections and multicast memberships.nice Run a program with modified scheduling priority.ps Report process status.pstree Display a tree of processes.reboot Stop the system.renice Alter priority of running processes.shutdown Bring the system down.sleep Delay for a specified time.time Time a command or report resource usage.top Display top CPU processes.uptime Show how long the system has been running.vmstat Report virtual memory statistics.w Show who is logged on and what they are doing.wall Send a message to everybody's terminals.who Show who is logged on.write Send a message to another user.11.5 การรักษาความปลอดภัย (Security) 1. Firewall Firewall คือ ฮาร์ดแวร์และซอฟต์แวร์ที่องค์กรต่างๆมีไว้เพื่อป้องกันเครือข่ายคอมพิวเตอร์ภายในของตนจากอันตรายที่มาจากเครือข่ายคอมพิวเตอร์ภายนอก เช่น ผู้บุกรุก หรือ Hacker Firewall จะอนุญาตให้เฉพาะข้อมูลที่มีคุณลักษณะตรงกับเงื่อนไขที่กำหนดไว้ผ่านเข้าออกระบบเครือข่ายภายในเท่านั้น อย่างไรก็ดี Firewall นั้นไม่สามารถป้องกันอันตรายที่มาจากอินเทอร์เน็ตได้ทุกรูปแบบ ไวรัสก็เป็นหนึ่งในนั้น ดังนั้นจึงไม่สามารถรับรองได้ว่าความปลอดภัยหรือความลับของข้อมูลจะมีอยู่ร้อยเปอร์เซนต์ถึงแม้ว่าจะมีการใช้ Firewall แล้วก็ตาม เครื่องบริการรักษาความปลอดภัยของข้อมูล มีหลายที่หลายด้าน เช่น กรองแพ็กเกจ เฝ้าตรวจ ตรวจสอบการใช้ bandwidth หรือเก็บข้อมูลที่ local host ใช้งานบ่อย ไว้ให้ local host อื่น ๆ เรียกใช้ด้วยความเร็ว ซึ่งหลักการของ firewall ที่สำคัญมีดังนี้ 1. ให้บริการเฉพาะที่ต้องการเปิด 2. ให้บริการใครบ้าง 3. ให้สมาชิกในแต่ละกลุ่ม สามารถใช้ได้เฉพาะที่เหมาะสม 4. กำหนดความปลอดภัยอย่างไร ให้แต่ละบริการ Firewall ประกอบด้วย 1. Package filters เป็นหน้าที่ของ router ทำหน้าที่กรอง IP(Internet Protocol) TCP(Transmission Control Protocol) และ UDP(User Datagram Protocol) ถ้าข้อมูลที่ส่งมาไม่เป็นไปตามกฎ ก็จะเข้าเครือข่ายไม่ได้ 2. Proxy server ทำให้เครื่องภายนอกทั้งหมดไม่รู้จักเครื่องภายในเครือข่าย เพราะทุกกิจกรรมต้องผ่านการแปลง IP ของ Proxy server A firewall is a set of related programs, located at a network gateway server, that protects the resources of a private network from users from other networks. (The term also implies the security policy that is used with the programs.) An enterprise with an intranet that allows its workers access to the wider Internet installs a firewall to prevent outsiders from accessing its own private data resources and for controlling what outside resources its own users have access to. Basically, a firewall, working closely with a router program, filter all network packet to determine whether to forward them toward their destination. A firewall also includes or works with a proxy server that makes network requests on behalf of workstation users. A firewall is often installed in a specially designated computer separate from the rest of the network so that no incoming request can get directly at private network resources. There are a number of firewall screening methods. A simple one is to screen requests to make sure they come from acceptable (previously identified) domain name and Internet Protocol addresses. For mobile users, firewalls allow remote access in to the private network by the use of secure logon procedures and authentication certificates. 2. IDS (Intrusion Detection Systems) IDS คือระบบตรวจสอบการบุกรุกเข้าสู่ระบบ ตรวจสอบมักวางไว้ทั้งหน้า firewall และหลัง firewall เพื่อตรวจสอบการบุกรุก และตรวจสอบผลการใช้ firewall ว่ากรองได้มากน้อยเพียงใด ตัวอย่างการบุกรุกเช่น DoS, Port scan หรือ Code red เป็นต้น สำหรับโปรแกรมที่นิยมนำมาใช้ศึกษาคือ BlackIce ซึ่งหา download ได้ไม่ยากนัก 3. Crack คือ การเปลี่ยนการทำงานของโปรแกรม ให้ผิดไปจากที่ผู้สร้างโปรแกรมสร้างขึ้น เช่น ผู้สร้างโปรแกรมใส่รหัสผ่าน ผู้ใช้ต้องซื้อรหัสผ่านมาใช้ แต่ cracker จะแก้โปรแกรมโดยการยกเลิกการตรวจสอบรหัสผ่านนั้น สำหรับโปรแกรมที่ถูกนำมาใช้ เช่น WinHex และ SoftICE เป็นต้น 4. Hack คือ การเข้าไปในระบบที่ผู้ทำการ hack ไม่มีสิทธิ์ การเข้าไปในเครื่องบริการที่มีระบบรักษาความปลอดภัย เป็นเป้าหมายสำคัญของ hacker เมื่อเข้าไปได้แล้วอาจกระทำการใด ๆ ทั้งที่เป็นประโยชน์ หรือโทษ กับระบบ ก็ขึ้นอยู่กับ hacker แต่ละคน ตัวอย่าง URL ที่ใช้ hack IIS บน Win 2000 คือ http://localhost/scripts/..%255c../winnt/system32/cmd.exe?/c%20dir%20c:\ ผลการ hack ครั้งนี้คือการแสดงรายชื่อแฟ้มใน drive C ของ web server หรือหาโปรแกรม xperl.sh จากเว็บเผยแพร่ข้อมูลการ hack มาทดสอบใน Redhat 6.2 ซึ่งผลการ run xperl.sh จะทำให้ user ธรรมดา กลายเป็น root ทันที ความปลอดภัยบนเครือข่าย (จาก doothai.com) เช้ามืดวันหนึ่งของฤดูหนาว ในขณะที่ผู้คนกำลัง หลับไหลใต้ผ้าห่มผืนอุ่นอย่างสบาย อากาศในกรุงเทพฯ เวลานี้ช่างน่านอนเสียจริง แต่สำหรับเด็กชายอ๊อด เขากลับนั่งอยู่หน้าจอคอมพิวเตอร์ ที่ต่อเข้ากับอินเตอร์เน็ต ท่ามกลางความมืด ก็มีเพียงแสงจากมอนิเตอร์ ที่ฉาดฉายให้เห็นรอยยิ้มน้อยๆ ของเด็กชาย ในวัยซุกซนคนนี้ เมื่อมองไปยังหน้าจอคอมพิวเตอร์ เด็กน้อยกำลังพยายามล็อกอิน เข้าไปยัง เครื่องคอมพิวเตอร์ของ บริษัทไฟแนนซ์แห่งหนึ่ง ที่ถูกทางการปิดไป เด็กน้อยกำลังพยายามเข้าไป แก้ไขไฟล์การผ่อนชำระรถยนต์ เพื่อที่จะทำให้ข้อมูลรถของพ่อเขา หายไปจากระบบ รถที่ค้างชำระมากว่า 6 เดือน และรอโดนยึด จะได้ปราศจากตัวตนอีกต่อไป การกระทำของหนูน้อยคนนี้ คนทั่วๆไป มักจะคิดว่า และขนานนามเขาว่า Hacker แท้จริงแล้ว ชีวิตของ Hacker นั้นเป็นอย่างไร อันที่จริงแล้ว ความเข้าใจของคนทั่วไป ที่มีต่อ Hacker นั้น ไม่ค่อยจะถูกต้องเท่าไรนัก แท้จริงแล้วในหมู่ของ Hacker เองนั้น กลับไม่ยอมรับ การกระทำแบบเจ้าหนูคนนี้ Hacker นิยามคนแบบนี้ว่า Cracker เพราะ Hacker นั้นไม่นิยม การหาประโยชน์ บนความเดือดร้อนของคนอื่น ในขณะที่ Cracker นั้น ใช้ประโยชน์จากความชาญฉลาด ของตนเอง เพื่อให้ได้มา ซึ่งสิ่งที่ตนเองต้องการ Hacker ต้องการทำในสิ่งที่เป็นการ ปลดโซ่ตรวน และพันธนาการ เพื่อความเป็นอิสระของตนเอง และผู้อื่น จากสิ่งที่พวกเขาคิดว่าไม่ถูกต้อง ทั้งหลาย Hacker เชื่อในเรื่องของ พลังและอำนาจ ที่เขาสามารถควบคุม Cyberspace ได้ พวกเขาชอบที่จะค้นหา ความคิด วิธีการใหม่ๆ ที่จะปลดพันธนาการทั้งหลาย ที่ผูกมัดพวกเขาอยู่ เช่น พวกเขาเชื่อว่า ค่าโทรศัพท์ไปต่างประเทศ หรือต่างจังหวัด แพงเกินไป เนื่องจาก พวกผูกขาด (monopoly) อย่างองค์การโทรศัพท์ หรือ บริษัทเอกชน ขูดเลือดจากประชาชน คิดกำไรเกินควร พวกเขาจะคิดหาวิธีที่จะใช้โทรศัพท์ทางไกลฟรี เช่นการหา access code ที่ทำให้ควบคุมชุมสายได้ การต่อ oscillator เข้ากับสายโทรศัพท์เพื่อสร้างสัญญาณ Hacker ยินดีจ่ายค่าโทรศัพท์ท้องถิ่น ซึ่งมีราคาถูก แต่ไม่ยินยอมจ่ายค่าทางไกล เพราะพวกเขา คิดว่าราคาไม่ยุติธรรม และหากพวกเขาทำสำเร็จ พวกเขาจะไม่รีรอที่จะแพร่ขยาย ภูมิความรู้นี้ ไปสู่ Hacker คนอื่นๆ พวก Hacker จึงมีสังคมที่ค่อนข้างจะแข็งแกร่ง บางคนที่ไม่ ค่อยรู้เรื่องเกี่ยวกับ Hacker ก็มักจะ เสียดสีว่าเป็นพวก Digital Hippy บ้าง เป็น พวก Cyberpunk บ้าง ความจริง Hacker แตกต่างจากคนเหล่านั้น โดยสิ้นเชิง Hacker เป็นคนที่มีความอุตสาหะ ใฝ่รู้ เป็นพื้นฐาน นอกจากนั้น เขายังเป็นคนที่ รักสันติ รังเกียจความรุนแรง และความเห็นแก่ตัว Hacker ชอบความท้าทาย พวกเขาชอบ ที่จะได้มาซึ่งความสามารถในการควบคุม ทั้งตัวเขาเอง และ Cyberspace ที่เขาอยู่ เขาพยายามชี้นำ Cyberspace เช่น ถ้าเขาเห็นว่า รัฐบาลอินโดนีเซีย ทำไม่ถูกในเรื่อง ติมอร์ตะวันออก เขาก็เข้าไปแก้ Homepage ของรัฐบาลอินโดนีเซียให้ มีข้อมูลที่ถูกต้อง Hacker ต่อต้านการละเมิดสิทธิมนุษยชน เขาเจาะเข้าไปใน computer ของรัฐบาล อินโดนีเซีย เพื่อลงโทษที่อินโดนีเซียทำไม่ถูกในเรื่องนี้ Hacker ทำตัวเหมือน Robinhood เช่น เข้าไปโอนเงินของ บริษัทน้ำมัน เพื่อไปยังกองทุนเด็ก Hacker เชื่อว่า การรวมตัวของพวกเขา จะนำเสรีภาพมาสู่คนที่ไร้โอกาสได้ เขารวมตัวกันเพื่อกดดันกลุ่มที่เขาคิดว่า เห็นแก่ตัว และทำไม่ถูกต้อง ดังนั้นเราจึงไม่ค่อยเห็น Hacker เจาะระบบขององค์กร ที่เป็นสาธารณะอย่างสถาบันศึกษานัก ในขณะที่ องค์กรรัฐบาล องค์กรทหาร หรือ บริษัทขนาดใหญ่ ล้วนตกเป็นเป้าหมายของบรรดา Hacker ความสนุก เป็นสิ่งที่ Hacker ต้องการนอกเหนือ จากการที่ได้ต่อต้าน การผูกมัด หรือความเห็นแก่ตัวของผู้ที่มั่งคั่ง Hacker อาจจะเพลิดเพลิน จากการที่เขาสามารถแกะ เลขบัตรเครดิต ทั้งที่เขาจะไม่เคยนำมันไปใช้เลย Hacker เป็นผู้ที่เห็นใจผู้อื่น เขาจึงไม่อาจนำ เลขบัตรเครดิตไปใช้ประโยชน์ เขาเพียงแต่สนุกที่สามารถแกะ หรือ ถอดรหัสให้ได้มันมา 5. Law และ License การปฏิรูปกฎหมายเทคโนโลยีสารสนเทศ (Information Technology Law) มีกฎหมายบังคับใช้ 6 ฉบับ 1. กฎหมายธุรกรรมอิเล็กทรอนิกส์ (Electronic Transaction Law) 2. กฎหมายลายมือชื่อทางอิเล็กทรอนิกส์ (Electronic Signatures Law) 3. กฎหมายอาชญกรรมทางคอมพิวเตอร์ (Computer Crime Law) 4. กฎหมายการโอนเงินทางอิเล็กทรอนิกส์ (Electronic Fund Transfer Law) 5. กฎหมายการคุ้มครองข้อมูลส่วนบุคคล (Data Protection Law) 6. กฎหมายลำดับรองของรัญธรรมนูณมาตรา 78 เกี่ยวกับการจัดโครงสร้างพื้นฐานสารสนเทศให้ทั่วถึง และเท่าเทียมกัน (Universal Access Law) 11.6 ระบบเครื่องบริการ 1. Web server คือ บริการ HTTP(HyperText Transfer Protocol) เพื่อให้ผู้ใช้สามารถอ่านข้อมูล ทั้งภาพ และเสียง จากเครื่องบริการ ผ่าน Browser เช่นบริการ http://www.thaiall.com หรือ http://localhost เป็นต้น เครื่องบริการ ที่รอรับคำร้องขอจาก web browser ข้อมูลที่จะส่งไปอาจเป็นเว็บเพจ ภาพ หรือเสียง เป็นต้น สำหรับโปรแกรมที่ได้รับความนิยม ให้นำมาเปิดบริการ web คือ Apache web server หรือ Microsoft web server DNS server คืออะไร Domain Name System server เป็นเครื่องบริการแปลงชื่อเว็บเป็นหมายเลข IP ซึ่งการแปลงชื่อนี้อาจเกิดในเครื่อง local เอง จาก cache ในเครื่อง local หรือจากเครื่องบริการของผู้ให้บริการ 2. FTP server FTP(File Transfer Protocol) คือ เครื่องบริการการรับ-ส่งข้อมูล ซึ่งเปิดให้ผู้ใช้ที่เป็นสมาชิกเข้าใช้ แต่บางเครื่องอาจเป็นให้ผู้ใช้ทั่วไปเข้าใช้ โดยใช้รหัสสมาชิก anonymous ซึ่งเป็นที่รู้กันทั่วโลกว่าเป็นรหัสผู้ใช้สำหรับผู้ที่ไม่ประสงค์ออกนาม FTP คือโปรโตคอลสำหรับถ่ายโอนข้อมูล โดยเครื่องที่เปิดบริการ FTP จะเปิด TCP port 21 ไว้ การเชื่อมต่อของ FTP มี 2 mode 1. FTP standard mode คือ การเชื่อมต่อที่ server เชื่อมต่อกับ client ผ่าน port 20 เป็น Out going port ส่วน port ฝั่ง client จะแล้วแต่ตกลงกัน แต่ถ้า client มี firewall ที่ไม่บริการ ftp ก็จะติดต่อไม่ได้ 2. FTP passive mode คือ การเชื่อมต่อที่ client เป็นผู้เชื่อมต่อไปยัง server เพื่อใช้หมายเลข port ที่แล้วแต่จะตกลงในการส่งข้อมูล 3. Mail server คือ เครื่องบริการรับ-ส่งจดหมายสำหรับสมาชิก บริการที่มีให้ใช้เช่น ส่งจดหมาย รับจดหมาย ส่ง attach file หรือการมี address book เป็นต้น ตัวอย่าง mail server ที่เป็นที่รู้จักทั่วไป เช่น hotmail.com หรือ thaimail.com เป็นต้น SMTP server คืออะไร Simple mail transfer protocol server คือเครื่องบริการส่ง e-mail ไปยังเครื่องบริการอื่น ๆ สำหรับ SMTP ส่วนใหญ่จะไม่ยอมให้คนนอกองค์กร หรือ IP ที่อยู่นอกองค์กรใช้งาน SMTP เพราะอาจมีคนในโลกใบนี้มาแอบใช้ ทำให้บริการ SMTP ทำงานหนักให้กับคนภายนอกโดยไม่เกิดประโยชน์ใด ๆ หากเครื่องของท่านบริการ SMTP แก่คนนอก แสดงว่าไม่ได้กำหนด RELAY ไว้ เพราะชาวโลกอาจใช้เครื่องมือค้นหา "OPEN RELAY" แล้วพบว่าเครื่องของท่านเป็นเครื่องหนึ่งที่ไม่ได้ทำ RELAY ไว้ก็ได้ และที่อันตรายคือ อาจมีชาวโลกบางคนใช้โปรแกรม MOBI+ กำหนดให้เครื่อง SMTP ของท่าน bomb mail ไปยัง mail box ของเป้าหมาย และหมายเลขเครื่องที่โจมตี ก็คือ เครื่อง SMTP ของท่านนั่นเอง POP server คืออะไร Post office protocol server คือบริการรับ-ส่งเมลจาก mail server กับเครื่องของสมาชิก บริการนี้ ทำให้สามารถอ่าน mail ด้วยมือถือ หรือ PDA แต่ถ้าท่านใช้ mail ของ thaimail.com จะเป็น web-based mail ที่เปิดอ่าน e-mail ได้จาก web เท่านั้น จะเปิดด้วย outlook หรือ pda ไม่ได้ 4. Database server คือ เครื่องบริการข้อมูล ที่เปิดให้ผู้ใช้เพิ่มข้อมูล ลบ หรือแก้ไข สำหรับโปรแกรมบริการระบบฐานข้อมูลที่นิยมใช้ ได้แก่ MYSQL หรือ Microsoft Access เป็นต้น โดยผู้ใช้ต้องเขียนโปรแกรมสั่งประมวลผล ปรับปรุงข้อมูล หรือนำข้อมูลในส่วนที่ตนเองมีสิทธิ์ ไปใช้ตามต้องการ 5. Proxy หรือ NAT server พร็อกซี่ เซิร์ฟเวอร์(Proxy server) คือ เครื่องที่อยู่ตรงกลางระหว่างเครื่องลูกกับอินเทอร์เน็ต เพราะเครื่องลูกในเครือข่ายทั้งหมดจะไม่ติดต่อกับอินเทอร์เน็ตโดยตรง เมื่อเครื่องลูกเรียกดูข้อมูล จะส่งคำขอให้เครื่อง Proxy server และค้นหาข้อมูลนั้นใน เครื่อง Proxy server ว่ามีหรือไม่ หากมีก็จะส่งกลับไปให้เครื่องลูก โดยไม่ออกไปหาจากแหล่งข้อมูลจริง เพราะข้อมูลนั้นถูกเก็บในหน่วยความจำของเครื่อง Proxy server แล้ว จึงเป็นการลดภาระของระบบเครือข่าย ที่จะออกไปนอกเครือข่ายโดยไม่จำเป็น จะเห็นว่า Proxy server ทำหน้าที่เป็น Cache server ทำหน้าที่เก็บข้อมูลที่ผู้ใช้เคยร้องขอ หากมีการร้องขอข้อมูลที่ไม่มีใน proxy ก็จะออกไปหาในอินเทอร์เน็ต แล้วนำกลับมาเก็บใน cache เมื่อผู้ใช้ท่านอื่นต้องการ ก็จะนำจาก cache ไปใช้ได้ทันที สำหรับ Proxy server ที่นิยมใช้ใน Linux เช่น Squid มักให้บริการที่ port 3128 เป็นต้น Proxy server คือ เครื่องบริการที่ทำหน้าที่แปลง address ของเครื่องต้นทางเมื่อมี package ส่งไปยัง local host หรือแปลง address ปลายทาง เมื่อมี package ส่งไปยัง localhost โดยลักษณะที่ชัดเจนของ proxy server คือการทำ caching ทำให้ local host เข้าถึงข้อมูล ซ้ำ ๆ กันได้โดยตรงจากเครื่องบริการ ใน local network ไม่ต้องออกไปนอกเครือข่ายโดยไม่จำเป็น NAT (Network Address Translation) คือ คุณสมบัติหนึ่งของการแจก IP หรือการทำ IP Sharing เพราะในเครือข่ายขนาดใหญ่จะใช้ Local IP หรือ Fake IP แต่จะมี Real IP อยู่บางส่วน โปรแกรมเครื่องบริการบางโปรแกรมมีหน้าที่กำหนด Local IP ให้เครื่องลูก เมื่อเครื่องลูกต้องการออกไปอ่านข้อมูลจากอินเทอร์เน็ต ก็จะใช้ Real IP ออกไป จากลักษณะดังกล่าง อาจทำให้เครื่องที่เป็น NAT server ทำหน้าที่เป็น Firewall ปกป้องเครื่องลูก เพราะจะไม่มีใครทราบ Local IP ของเครื่องในองค์กรได้ เนื่องจากการออกไปสู่อินเทอร์เน็ตจะใช้ IP ของ NAT server เสมอ จึงไม่มีใครเจาะเข้าสู่เครื่องลูกได้โดยตรง การเป็น NAT server อาจไม่จำเป็นต้องใช้คุณสมบัติ Cache server ก็ได้ เพราะเครื่องที่เป็น Proxy server ที่มีศักยภาพต่ำ จะล่มได้เร็วกว่าเครื่องที่ทำหน้าที่เป็น NAT เพียงอย่างเดียว สำหรับโปรแกรมที่ทำหน้าที่เป็น NAT server เช่น WinGate, WinRoute, WinProxy หรือ ICS(Internet Connection Sharing) เป็นต้น 6. DHCP server DHCP(Dynamic Host Configuration Protocol) คือ โปรโตคอลที่ใช้ในการกำหนด IP Address อัตโนมัติแก่เครื่องลูกข่ายบนระบบ ที่ติดตั้ง TCP/IP สำหรับ DHCP server มีหน้าที่แจก IP ในเครือข่ายไม่ให้ซ้ำ เป็นการลดความซ้ำซ้อน เมื่อเครื่องลูกเริ่ม boot ก็จะขอ IP address, Subnet mark, หมายเลข DNS และ Default gateway ขั้นตอนการเชื่อมต่อของเครื่องลูกกับ DHCP server 1. เครื่องลูกค้นหาเครื่อง DHCP server ในเครือข่าย โดยส่ง DHCP discover เพื่อร้องขอ IP address 2. DHCP server จะค้นหา IP ที่ว่างอยู่ในฐานข้อมูล แล้วส่ง DHCP offer กลังไปให้เครื่องลูก 3. เมื่อเครื่องลูกได้รับ IP ก็จะส่งสัญญาณตอบกลับ DHCP Request ให้เครื่องแม่ทราบ 4. DHCP server ส่งสัญญาณ DHCP Ack กลับไปให้เครื่องลูก เพื่อแจ้งว่าเริ่มใช้งานได้ 11.7 ปฏิบัติการฝึกใช้คำสั่งในระบบปฏิบัติการ Redhat Linux - ฝึกติดตั้งระบบปฏิบัติการ linux และให้บริการแบบต่าง ๆ - ฝึกใช้งานคำสั่งต่อไปนี้ จากหนังสือ Korn shell โดย john valley แปลโดย ชนินทร์ เชาวมิตร 2538 ar at atq atrm awk banner basenamebatch bdiff bfs cal calendar cancel cat chgrp chmod chown clear cmp col comm compress cp cpio crontab crypt csh csplit ct ctags cu cutdate dc dd deroff df diff dircmp dirname disable du echo ed edit egrep enable env ex expr exstr face factor false fgrep file find finger fmli fmt fmtmsg fold ftp gcore gencat getopt getoptcvt gettxt grep group hashcheck hashmake head iconv id ipcrm ipcs ismpx join jterm jwin kill ksh last layers line listusers ln login logname lp lpstat ls mail mailalias mailx makekey mesg mkdir mkmsgs more mv nawk newform newgrp news nice nl nohup notify od pack page pcat passwd paste pg pr printf priocntl ps pwd rcp relogin rlogin rm rmdir rsh ruptime rwho sag sar script sdiff sed sh shl sleep sort spell spellin split srchtxt strchg strconf strings stty su sum sync tabs tail talk tar tee telnet test tftp timex touch tputtr true truss tty uname uncompress uniq units unpack vacation vi wc who whois write xargs zcat - ค้นคว้าข้อมูลเกี่ยวกับ ระบบปฏิบัติการ Linux จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้า
บทที่12ระบบปฏิบัติการwindows
บทที่12ระบบปฏิบัติการwindows
12.1 ประวัติความเป็นมา (History) วินโดวส์ที่ถูกพัฒนาโดยไมโครซอฟต์ในรุ่นแรก ๆ จะใช้กับเครื่องไอบีเอ็ม และไอบีเอ็มคอมแพททิเบิล ที่มีซีพียูเบอร์ 80286 80386 และ 80486 และในปี 1990 ไมโครซอฟต์ได้ออกวินโดวส์เวอร์ชัน 3.0 ออกมา เพื่อทำการโปรโมทผู้ใช้ไม่ให้หันไปนิยมใช้แมคอินทอชโอเอสแทนดอส อย่างไรก็ตามถึงแม้ว่าวินโดวส์จะง่ายต่อการใช้งานมากกว่าดอส แต่ในเวอร์ชันแรก ๆ การใช้งานก็ยังไม่ง่ายเท่าของแมคโอเอส และนอกจากนี้การติดตั้งอุปกรณ์รอบข้างอื่น ๆ ก็ยังทำได้ยาก วินโดวส์ได้มีการพัฒนามาอย่างต่อเนื่อง จากวินโดวส์เวอร์ชัน 3 มาเป็น 4.0 วินโดวส์ 95 และวินโดวส์ 98 ในปัจจุบัน วินโดวส์ 95 และ วินโดวส์ 98 ถือว่าเป็นระบบปฏิบัติการอย่างแท้จริง เนื่องจากมันไม่ต้องอยู่ภายใต้ การควบคุมของดอส การติดตั้งจะแยกออกจากดอสอย่างเด็ดขาดไม่จำเป็นต้องติดตั้งดอสก่อน นอกจากความง่ายและสะดวกต่อการใช้งานแล้ว วินโดวส์เวอร์ชันใหม่นี้ยังรวมซอฟต์แวร์ที่ทำให้ผู้ใช้สามารถติดตั้งเครื่องคอมพิวเตอร์ของตนเองเข้ากับระบบเครือข่ายได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่งเครือข่ายอินเตอร์เน็ตและยังเอื้ออำนวยความสะดวกในการโอนถ่ายซอฟต์แวร์หรือที่เรียกว่าดาวน์โหลด(Download) โปรแกรมเป็นอย่างมาก นอกจากนี้วินโดวส์เวอร์ชันใหม่นี้ยังมีความสามารถทางด้าน Plug–and-Play ซึ่งเป็นการเปิดโอกาสให้ผู้ใช้สามารถนำอุปกรณ์ มาตรฐานต่าง ๆ เช่น ซีดีรอมไดรฟ์ ซาวน์การ์ด โมเด็ม ฮาร์ดดิสก์ไดรฟ์ ฯลฯ ที่สนับสนุน Plug-and-Play มาต่อเข้ากับเครื่องคอมพิวเตอร์ของตนเอง และเมื่อเปิดเครื่องคอมพิวเตอร์ระบบปฏิบัติการวินโดวส์ 95 หรือ 98 จะทำหน้าที่ติดตั้งอุปกรณ์เหล่านี้และทำให้เครื่องคอมพิวเตอร์รู้จักอุปกรณ์เหล่านี้เอง โดยที่ผู้ใช้ไม่ต้องทำอะไรเพิ่ม ในปัจจุบันตลาดพีซีเกือบทั้งหมดถูกครองครองโดยระบบปฏิบัติการวินโดวส์ รวมทั้งมีการผลิตซอฟต์แวร์ที่รันอยู่บนระบบปฏิบัติการประเภทนี้ออกมาสู่ตลาดอย่างมากมาย ดังนั้นจึงมีผู้ใช้เป็นจำนวนมากที่นิยมใช้งานระบบปฏิบัติการวินโดวส์โดยเฉพาะอย่างยิ่ง วินโดวส์ 95 และ วินโดวส์ 98if (getQueryVariable("img") == 'yes') {document.write('');document.write('');}else{document.write('[img]win10.png - winxp.jpg[/img]');}[img]win10.png - winxp.jpg[/img] Microsoft Windows ตั้งแต่อดีต - ปัจจุบัน ปี รายละเอียด ตุลาคม 2524 IBM เปิดตัวเครื่องคอมพิวเตอร์ส่วนบุคคลครั้งแรก พร้อมด้วยระบบปฏิบัติการ PC-DOS 1.0 ของไมโครซอฟท์ มีนาคม 2526 ไมโครซอฟท์เปิดตัว MS-DOS 2.0 ที่สนับสนุนการใช้งานฮาร์ดดิสก์และระบบจัดการไฟล์แบบใหม่ พฤศจิกายน 2526 ไมโครซอฟท์แนะนำระบบปฏิบัติการ Windows ที่ทำงานบน MS-DOS โดยเริ่มแรกที่ใช้ชื่อว่า Interface Manager พฤศจิกายน 2528 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows1.0 เมษายน 2530 IBM และไมโครซอฟท์ร่วมกันเปิดตัว OS/2 1.0 ระบบปฏิบัติการยุคใหม่ที่มีระบบการทำงานตามคำสั่งคอมมานต์ไลน์เหมือนกับ DOS ธันวาคม 2530 ไมโครซอฟท์จำหน่ายระบบปฏิบัติการ Windows 2.0 ที่หน้าต่างสามารถวางซ้อนทับกันได้ และทำงานได้กับไมโครโปรเซสเซอร์ 80286 ของอินเทล ธันวาคม 2530 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows/386 ซึ่งอาศัยคุณสมบัติ Virtual Machine ของไมโครโปรเซสเซอร์ 80386 ซึ่งสามารถเรียกใช้งานโปรแกรม DOS ได้แบบหลายงานพร้อมกัน (Multitasking) มิถุนายน 2531 ไมโครซอฟท์จำหน่ายระบบปฏิบัติการ Windows 2.0 Version 2 มีชื่อว่า Windows-286 ตุลาคม 2531 IBM และไมโครซอฟท์ร่วมกันพัฒนาและออก OS/2 1.1 ซึ่งมีหน้าตาแบบกราฟฟิคคล้ายกับวินโดวส์ โดยมีชื่อว่า Presentation Manager ต่อมาภายหลังภายหลังทั้งสองบริษัทได้หยุดความร่วมมือในการพัฒนา OS/2 พฤศจิกายน 2531 เปิดตัว MS-DOS 4.1 ออกสู่ตลาด พฤษภาคม 2533 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 3.0 และได้รับการตอบรับอย่างดี โดยในช่วงปลายปี ไมโครซอฟท์ขยายซอฟต์แวร์ Windows ได้มากกว่า 1 ล้านชุดต่อเดือน เมษายน 2534 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 3.1ด้วยเทคโนโลยีแสดงตัวอักษรแบบใหม่ และแก้ปัญหาบั๊กต่างๆ มิถุนายน 2534 เปิดตัว MS-DOS 5.0 ออกสู่ตลาด ตุลาคม 2534 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows for Workgroup 3.1 โดยความสามารถด้านเครือข่าย มีนาคม 2535 เปิดตัว MS-DOS 6.0 ออกสู่ตลาด พฤษภาคม 2535 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows NT 3.1 เวอร์ชั่นของสายผลิตภัณฑ์ Windows NT ซึ่งมองโดยรวมแล้วมีลักษณะคล้าย Windows 3.1 แต่ทำงานบนเครื่อง 32 บิต พฤศจิกายน 2536 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows for Workgroup 3.11 พร้อมกับ MS-DOS 6.2 มีนาคม 2537 เปิดตัว MS-DOS 6.21 ออกสู่ตลาด พฤษภาคม 2537 เวอร์ชันสุดท้ายของ DOS ออกสู่ตลาด คือ MS-DOS 6.22 ด้วยความสามารถในการบีบอัดข้อมูลบนฮาร์ดดิสก์ DriveSpace กันยายน 2537 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows NT เวอร์ชัน 2 ออกสู่ตลาด (Windows NT 3.5) มิถุนายน 2538 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows NT3.51 สิงหาคม 2538 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 95 (Windows 4.0) ออกสู่ตลาด ด้วยความสำเร็จสูงสุดในประวัติศาสตร์ของอุตสาหกรรมคอมพิวเตอร์ Windows 95 สนับสนุนชื่อไฟล์แบบยาว แอพพลิเคชัน 32 บิต และมีคุณสมบัติ Plug and Play พร้อมกับหน้าจออินเทอร์เฟซใหม่ ที่มีการใช้ปุ่ม Start Menu เป็นครั้งแรก กรกฎาคม 2539 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows NT 4.0 ซึ่งมีหน้าจออินเทอร์เฟซแบบเดียวกับ Windows 95 และเป็นระบบปฏิบัติการสาย NT ตัวแรกที่ประสบผลสำเร็จ ตุลาคม 2539 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ OEM Service Release 2 ของ Windows 95 หรือที่เรียกว่า OSR2 และเป็นผลิตภัณฑ์ตัวแรกของ Windows 95 ที่สนับสนุนการใช้งานระบบไฟล์แบบ FAT32 มิถุนายน 2540 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 95 OSR2.1 ซึ่งสนับสนุนตัวประมวลผลทางด้านกราฟฟิค AGP และพอร์ต USB มิถุนายน 2541 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 98 ออกสู่ตลาด พร้อมด้วย Internet Explorer 4.0 ไดร์เวอร์ฮาร์แวร์ใหม่ ระบบจัดการพลังงานด้วย ACPI นับเป็นวินโดวส์อีกรุ่นที่ประสบความสำเร็จ พฤษภาคม 2542 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 98 Second Edition (SE) ออกสู่ตลาด พร้อมด้วย Internet Explorer 5.0 และ Internet Connection Sharing (ICS) กุมภาพันธุ์ 2543 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows 2000 (Windows NT 5.0) โดยสนับสนุนคุณสมบัติ Plug and Play, DirectX, USB และเทคโนโลยีอื่นๆ ที่มีอยู่ใน Windows 9x กันยายน 2543 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows Millenium Edition (Me) ซึ่งถือเป็นผลิตภัณฑ์สุดท้ายในสายผลิตภัณฑ์ Windows 9x ตุลาคม 2544 ไมโครซอฟท์เปิดตัวระบบปฏิบัติการ Windows eXPerience หรือ Windows XP ซึ่งถือเป็นผลิตภัณฑ์ที่รวมสายผลิตภัณฑ์ Windows 9x และWindows NT/2000 เข้าไว้ด้วยกัน และสนับสนุนงานทางด้าน Multimedia Windows 95 เป็นระบบปฏิบัติการอย่างแท้จริง สร้างขึ้นมาเพื่อแทน DOS และ Windows 3.1 เลข 95 บอกถึงปีที่ออกจำหน่าย (ค.ศ. 1995) ส่วน Windows 98 ออกจำหน่าย ค.ศ. 1998 เป็นเพียงการปรับปรุง Windows 95 ไม่ใช่ระบบปฏิบัติการใหม่ Windows NT พัฒนาขึ้นมาต่างหากจาก Windows 95 กล่าวคือไม่ได้ใช้ Windows 95 เป็นฐาน ถือได้ว่าเป็นระบบปฏิบัติการคนละอย่างกับ Windows 95 ถึงแม้จะมีหน้าตาเหมือนกัน มีวิธีใช้อย่างเดียวกัน คำว่า NT ย่อมาจาก New Technology เมื่อบริษัทไมโครซอฟท์คิดสร้าง OS ตระกูลนี้ขึ้นมา ก็เพราะต้องการจะแยกระหว่าง OS ที่ใช้ในสำนักงานซึ่งโยงกันเป็นเครือข่ายประเภทที่มีแม่ข่าย กับ OS ที่ใช้ในคอมพิวเตอร์ที่ใช้ตามบ้านซึ่งไม่เชื่อมต่อกับเครือข่ายแบบ LAN ไมโครซอฟท์ตั้งใจให้ใช้ระบบปฏิบัติการนี้ในระบบเครือข่ายในวงการธุรกิจ Windows NT แบ่งเป็น Windows NT Server ใช้ในเครื่องที่เป็นแม่ข่าย และ Windows NT Client ใช้ในเครื่องที่เป็นลูกข่าย เราสามารถใช้ Windows NT Client เดี่ยว ๆ แทน Windows 95/98 ก็ได้ แต่เนื่องจากต้องการทรัพยากรของเครื่องมากกว่า จึงอาจจะไม่เหมาะสม Windows 2000 สืบเชื้อสายจาก Windows NT ไม่ใช่จาก Windows 95/98 ก่อนที่จะมีรุ่นนี้ Windows NT พัฒนามาถึง Windows NT 4 แต่แทนที่จะเรียกรุ่นต่อไปว่า Windows NT 5 กลับเปลี่ยนชื่อเป็น Windows 2000 ใช้ปี ค.ศ. ที่ออกจำหน่ายเป็นชื่อ ทำให้เกิดความเข้าใจผิดกันว่า สืบเชื้อสายจาก Windows 95/98 อนึ่ง Windows 2000 ที่ใช้ในเครื่องที่เป็นลูกข่าย ใช้ชื่อว่า Windows 2000 Professional ไม่ใช่ Windows 2000 Client Windows Millennium เป็นชื่อที่ชวนให้สับสนมากที่สุด เนื่องจากคำว่า Millennium บอกถึงสหัสวรรษใหม่ คนจำนวนมากจึงคิดว่าเป็นอีกชื่อหนึ่งของ Windows 2000 (ซึ่งเป็นผลมาจากการที่มักเข้าใจผิดกันว่าปี 2000 คือปีแรกของสหัสวรรษใหม่) แต่ที่จริง Windows Millennium คือวินโดวส์ตระกูล Windows 95/98 รุ่นสุดท้าย หลังจากนี้บริษัทไมโครซอฟท์เลิกพัฒนาวินโดวส์ตระกูลนี้ Windows XP เป็นวินโดวส์รุ่นล่าสุด เป็นสายพันธุ์ Windows NT แต่เพิ่มฉบับที่สำหรับให้ใช้ตามบ้านได้ด้วย เรียกว่า Windows XP Home Edition ซึ่งมาใช้แทนสายพันธุ์ Windows 95 12.2 หลักการออกแบบ 1. Kernel 2. Hardware Abstraction Laywer(HAL) 3. System services I/O manager Object manager Security Reference monitor Process manager Local procedure call facility Virtual memory manager 4. Security subsystem 5. OS/2 subsystem 6. Win32 subsystem 7. POSIX subsystemif (getQueryVariable("img") == 'yes') document.write('');}else{document.write('[img]win_block_diagram.gif[/img]');}[img]win_block_diagram.gif[/img] http://www.u-aizu.ac.jp/~vilb/os/win03.html 12.3 โครงสร้างระบบ (Structure System) When the original IBM PC was launched in 1981, it came equipped with a 16-bit real-mode, single-user, command-line oriented operating system called MS-DOS 1.0. This operating system consisted of 8 KB of memory resident code. Two years later, a much more powerful 24-KB system, MS-DOS 2.0, appeared. It contained a command line processor (shell), with a number of features borrowed from UNIX. When IBM released the 286-based PC/AT in 1984, it came equipped with MS-DOS 3.0, by now 36 KB. Over the years, MS-DOS continued to acquire new features, but it was still a command-line oriented system. Inspired by the success of the Apple Macintosh, Microsoft decided to give MS-DOS a graphical user interface that it called Windows. The first three versions of Windows, culminating in Windows 3.x, were not true operating systems, but graphical user interfaces on top of MS-DOS, which was still in control of the machine. All programs ran in the same address space and a bug in anyone of them could bring the whole system to a grinding halt. The release of Windows 95 in 1995 still did not eliminate MS-DOS, although it introduced a new version, 7.0. Together, Windows 95 and MS-DOS 7.0 contained most of the features of a full-blown operating system, including virtual memory, process management, and multiprogramming. However, Windows 95 was not a full 32-bit program. It contained large chunks of old 16-bit code (as well as some 32-bit code) and still used the MS-DOS file system, with nearly all its limitations. The only major change to the file system was the addition of long file names in place of the 8 + 3 character file names allowed in MS-DOS. Even with the release of Windows 98 in 1998, MS-DOS was still there (now called version 7.1) and running 16-bit code. Although a bit more functionality migrated from the MS-DOS part to the Windows part, and a disk layout suitable for larger disks was now standard, under the hood, Windows 98 was not very different from Windows 95. The main difference was the user interface, which integrated the desktop, the Internet, and television more closely. It was precisely this integration that attracted the attention of the U.S. Dept. of Justice, which then sued Microsoft claiming that it was an illegal monopoly. While all these developments were going on, Microsoft was also busy with a completely new 32-bit operating system being written from the ground up. This new system was called Windows New Technology, or Windows NT. It was initially hyped as the replacement for all other operating systems for Intel-based PCs, but it was somewhat slow to catch on and was later redirected to the upper end of the market, where it found a niche. It is gradually becoming more popular at the low end as well. NT is sold in two versions: server and workstation. These two versions are nearly identical and are generated from the same source code. The server version is intended for machines that run as LAN-based file and print servers and has more elaborate management features than the workstation version, which is intended for desktop computing for a single user. The server version has a variant (enterprise) intended for large sites. The various versions are tuned differently, each one optimized for its expected environment. Other than these minor differences, all the versions are essentially the same. In fact, nearly all the executable files are identical for all versions. NT itself discovers which version it is by looking at a variable in an internal data structure (the registry). Users are forbidden by the license from changing this variable and thus converting the (inexpensive) workstation version into the (much more expensive) server or enterprise versions. We will not make any further distinction between these versions. MS-DOS and all previous versions of Windows were single-user systems. NT, however, supports multiprogramming, so several users can work on the same machine at the same time. For example, a network server may have multiple users logged in simultaneously over a network, each accessing its own files in a protected way. NT is a true 32-bit multiprogramming operating system. It supports multiple user processes, each of which has a full 32-bit demand-paged virtual address space. In addition, the system itself is written as 32-bit code everywhere. One of NT's original improvements over Windows 95 was its modular structure. It consisted of a moderately small kernel that ran in kernel mode, plus a number of server processes that ran in user mode. User processes interacted with the server processes using the client-server model: a client sent a request message to a server, and the server did the work and returned the result to the client via a second message. This modular structure made it easier to port it to several computers besides the Intel line, including the DEC Alpha, IBM PowerPC, and SGI MIPS. However, for performance reasons, starting with NT 4.0, pretty much all of the system was put back into the kernel. One could go on for a long time both about how NT is structured internally and what its system call interface is like. Since our primary interest here is the virtual machine presented by various operating systems (i.e., the system calls), we will give a brief summary of the system structure and then move on to the system call interface. Item Windows 95/98 NT Win32 API? Yes Yes Full 32-bit system? No Yes Security? No Yes Protected file mappings? No Yes Private address space for each MS-DOS program? No Yes Plug and play? Yes Yes Unicode? No Yes Runs on Intel 80x86 80x86, Alpha Multiprocessor support? No Yes Re-entrant code inside aS? No Yes Some critical as data writable by user? Yes No From : Andrew S. Tanenbaum, Structured Computer Organization, Fourth Ed., Prentice-Hall, 1999. (ISBN 0-13-095990-1) 12.4 ระบบแฟ้ม (File System) แฟ้ม หรือไฟล์ (File) หมายถึง กลุ่มของสารสนเทศที่สัมพันธ์กัน ซึ่งความสัมพันธ์เหล่านั้นกำหนดโดยผู้สร้างแฟ้ม และอาจใช้เก็บอะไรก็ได้ หมายถึง กลุ่มของระเบียนที่สัมพันธ์กัน เป็นเรื่องเดียวกัน หมายถึง สิ่งที่บรรจุข้อมูลต่าง ๆ ไว้ในที่เดียวกัน หมายถึง A named collection of related information that is recorded on secondary storage. หมายถึง A collection of bytes stored as an individual entity. All data on disk is stored as a file with an assigned file name that is unique within the folder (directory) it resides in. To the computer, a file is nothing more than a string of bytes. The structure of a file is known to the software that manipulates it. For example, database files are made up of a series of records. Word processing files contain a continuous flow of text. [techweb.com] ระบบแฟ้ม (File system) หมายถึง สิ่งที่ผู้ใช้พบเห็นมากที่สุด เพราะเป็นที่เก็บทั้งโปรแกรม และข้อมูล ของระบบปฏิบัติการ ที่ผู้ใช้ทุกคนต้องพบ ระบบแฟ้มประกอบด้วย 2 ส่วน คือ Collection of files ซึ่งเก็บข้อมูลที่สัมพันธ์กัน และ Directory structure สำหรับจัดการ และให้ข้อมูลแฟ้มทั้งหมดในระบบ บางระบบปฏิบัติการมีส่วนที่ 3 คือ Partitions ซึ่งแยก Physically หรือ Logically ของระบบ directory โดยเนื้อหาในบทนี้จะกล่าวถึงแฟ้ม และโครงสร้างไดเรกทรอรี่ รวมถึงการป้องกันแฟ้ม จากการเข้าถึงในระบบ Multiple users และระบบ File sharing 12.5 ระบบ DOS ระบบปฏิบัติการสำหรับ Personal comptuer ในยุคแรก ต่อมาคอมพิวเตอร์มีพัฒนาการด้าน hardware อย่างรวดเร็ว ในคอมพิวเตอร์รุ่น 286 สามารถใช้ Windows ได้ ทำให้บทบาทของ DOS ลดลงเป็นลำดับ คำสั่งภายใน(internal command) และคำสั่งภายนอก(External command) 1. เกี่ยวกับ disk และ file dir : แสดงรายชื่อแฟ้มใน directory rename : เปลี่ยนชื่อแฟ้ม copy : คัดลอกแฟ้ม xcopy : คัดลอก directory diskcopy : คัดลอกดิสก์ chkdsk : เช็คดิสก์ attrib : จัดการเกี่ยวกับ attibute ของแฟ้ม label : เปลี่ยน label 2. เกี่ยวกับ directory structure cd : เปลี่ยน directory md : สร้าง directory rd : ลบ directory tree : แสดงโครงสร้าง directory path : กำหนดเส้นทาง 3. เกี่ยวกับ batch processing call : เรียก batch file อื่น echo : แสดงข้อความ if : เลือกทำตามเงื่อนไข goto : ไปยัง label rem : หมายเหตุ pause : หยุดรอ for : ทำซ้ำ shift : เลื่อนสำหรับ %0 ถึง %9 4. ทั่วไป date : ตั้งวันที่ time : ตั้งเวลา prompt : ตั้งเครื่องหมาย prompt ใหม่ cls : ลบจอภาพ type : แสดงข้อมูลใน text file set : กำหนดตัวแปร ver : แสดงเลขรุ่นของระบบปฏิบัติการ http://www.thaiall.com/assembly/internalcmd.htm 12.6 โปรแกรมประยุกต์ Microsoft Office Microsoft's primary desktop applications for Windows and Mac. Depending on the package, it includes some combination of Word, Excel, PowerPoint, Access and Outlook along with a host of Internet and other related utilities. The applications share common functions such as spell checking and graphing, and objects can be dragged and dropped between applications. Microsoft Office is the leading application suite on the market. Microsoft Office 2003, introduced in late 2003, provides extensive support for XML and data collaboration. Office files can be saved as native XML for easier integration with other applications, and Microsoft's SharePoint portal turns Office into a groupware system that is administered on a Web server. Designed to be a front end to Microsoft's .NET initiative, Office 2003 applications run under XP and 2000 only. Microsoft no longer refers to Office as a "suite," rather it became the Microsoft Office System. Office XP, introduced in 2001, added document sharing over the Web, a significant document recovery feature and also integrated Microsoft's Web-based Hotmail e-mail service. Office 2000 was a major upgrade with numerous enhancements and changes. More integrated with the Web, it added collaboration features and support for opening and saving HTML documents, even doubling as an HTML editor. Office 2000 is a software suite that consists of different applications that complete different activities. MS Office 2000 is by far the most widely recognized software suite in the world. Office 95 was the first 32-bit version of Office, followed by Office 97, which added Internet integration and Outlook. The formats in Excel 97, PowerPoint 97 and Word 97 were changed, but files could be saved in a dual 95/97 format for backward compatibility. Access 97 files were not backward compatible. The last 16-bit versions of Office were Office 4.x. Microsoft word is the word processing program of the Microsoft Office suite that allows you to create documents and reports. Microsoft Word 2000 provides powerful tools for creating and sharing professional word processing documents. Click here for help on Microsoft Word. Take a Virtual Tour on Microsoft's website by clicking Microsoft Word 2000 Virtual Tour. Microsoft Excel lets you develop spreadsheets that display data in various tabular and visual formats. Microsoft Excel 2000 With Microsoft Excel 2000, you can create detailed spreadsheets for viewing and collaboration. Create customized formulas for your data and analyze it with the easy to construct charts. Click here for help on Microsoft Excel. Take a Virtual Tour on Microsoft's website by clicking Microsoft Excel 2000 Virtual Tour. Microsoft PowerPoint creates multimedia presentations to display information in a graphical format. Microsoft PowerPoint 2000 provides a complete set of tools for creating powerful presentations. Organize and format your material easily, illustrate your points with your own images or clip art, and even broadcast your presentations over the web. Click here for help on Microsoft PowerPoint. Take a Virtual Tour on Microsoft's website by clicking Microsoft PowerPoint 2000 Virtual Tour. Microsoft Access is a database program that stores information that can be manipulated, sorted, and filtered to meet your specific needs. Microsoft Access 2000 gives you powerful new tools for managing your databases. Share your database with co-workers over a network, find and retrieve information quickly, and take advantage of automated, pre-packaged wizards and solutions to quickly create databases. Click here for help on Microsoft Access. Take a Virtual Tour on Microsoft's website by clicking Microsoft Access 2000 Virtual Tour. Microsoft Frontpage allows you to create professional-looking web pages for the Internet. Microsoft Publlisher Microsoft Publisher 2000 helps you easily create, customize, and publish materials such as newsletters, brochures, flyers, catalogs, and Web sites. Publish easily on your desktop printer. Click here for help on Microsoft Publisher. Take a Virtual Tour on Microsoft's website by clicking Microsoft Publisher 2000 Virtual Tour. Microsoft Outlook Microsoft Internet Explorer Microsoft Paint if (getQueryVariable("img") == 'yes') {document.write('');}else{document.write('[img]http://www.bcschools.net/staff/images/OfficePic1.jpg[/img]');}[img]http://www.bcschools.net/staff/images/OfficePic1.jpg[/img] http://www.microsoft.com/thailand/office/system/ Microsoft Office System ถูกออกแบบมาเพื่อเป็นแพล็ตฟอร์มโซลูชั่นสำหรับองค์กรธุรกิจ โดยมีผลิตภัณฑ์ Microsoft Office 2003 รุ่นต่างๆ เช่น Microsoft Office Professional Edition 2003 เป็นองค์ประกอบหลักที่สำคัญในการทำงานสำหรับเดสก์ท็อปร่วมกันกับผลิตภัณฑ์เซิร์ฟเวอร์อื่นๆ เช่น Microsoft Exchange Server 2003 ที่ช่วยขยายขอบเขตความสามารถด้านสื่อสารให้มากขึ้น, บริการต่างๆ และผลิตภัณฑ์ เช่น OneNote, Publisher และ Visio ซึ่งคุณสมบัติใหม่ๆ ของโปรแกรมในชุด Microsoft Office 2003 จะช่วยให้ผู้ใช้ทำงานร่วมกับผู้อื่น หรือแม้แต่ทำงานกับคู่ค้าและลูกค้าได้อย่างมีประสิทธิภาพ ครอบคลุมความต้องการที่แตกต่างกันของแต่ละธุรกิจ ตั้งแต่การจัดการและเพิ่มประสิทธิผลส่วนบุคคลไปจนถึงการบริหารโครงการที่ซับซ้อน Office Editions - Access - Excel - FrontPage - InfoPath - OneNote - Outlook - PowerPoint - Project - Visio - Word Services - Live Meeting Servers - Live Communications Server - Sharepoint Portal Server Related Products - Exchange Server - Windows Server 12.7 ปฏิบัติการฝึกใช้ติดตั้ง และใช้งาน - ฝึกติดตั้งระบบปฏิบัติการ windows และให้บริการแบบต่าง ๆ - ฝึกติดตั้งระบบปฏิบัติการ windows 2 ระบบในเครื่องเดียวกัน - ค้นคว้าข้อมูลเกี่ยวกับ ระบบปฏิบัติการ Windows จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น