ระบบคอมพวิ เตอร์
ระบบคอมพวิ เตอร์ (Computer system)สาระการเรียนรู้1. ประเภทของเคร่ืองคอมพิวเตอร์2. องคป์ ระกอบของคอมพวิ เตอร์จุดประสงค์การสอน1. เขา้ ใจความแตกต่างของคอมพวิ เตอร์แต่ละประเภท2. เขา้ ใจองคป์ ระกอบของเคร่ืองคอมพิวเตอร์3. เขา้ ใจสัมพนั ธ์ระหวา่ งฮาร์ดแวร์ และซอฟตแ์ วร์4. สามารถถอด และประกอบคอมพวิ เตอร์อยา่ งง่าย ๆ ได้บทนาววิ ฒั นาการ และชนิดของระบบปฏบิ ัตกิ าร (โดย ดร.ยรรยง เตง็ อานวย เล่มเขียว) 1. การป้ อนงานแบบกลุ่มดว้ ยมือ (Manual batch system) 2. การป้ อนงานแบบกลุ่มโดยอตั โนมตั ิ (Automatic batch processing) - การทางานแบบ Buffering (พยายามทาให้ I และ O ทางานพร้อมหน่วยประมวลผลมาก สุด เช่น printer) - การทางานแบบ off-line (เช่น บตั รเจาะ หรือเทปกระดาษ) - การทางานแบบ spooling (เป็นหลกั การใชจ้ านแม่เหล็กแทนอุปกรณ์รับขอ้ มลู และ แสดงผลน้ีเรียกวา่ spooling : Simultaneous peripheral operation on-line) 3. ระบบมลั ติโปรแกรมมิ่ง (Multiprogramming system) 4. ระบบแบง่ เวลา (Time sharing system) - การทางานแบบโตต้ อบ - ระบบโตต้ อบแบบมลั ติโปรแกรมม่ิง 5. ระบบตอบสนองฉบั พลนั (Real-time system) ระบบต่าง ๆ ภายในคอมพวิ เตอร์ต้งั แต่อดีตถึงปัจจุบัน มี 11 ระบบ 1. ระบบทไ่ี ม่มรี ะบบปฏบิ ัติการ (Non operating system) ยคุ แรก ๆ คอมพิวเตอร์มีแตเ่ ครื่องเปล่า ๆ ผใู้ ชต้ อ้ งเขียนโปรแกรมสง่ั งาน ตรวจสอบการ ทางาน ป้ อนขอ้ มูล และควบคุมเอง ทาใหร้ ะยะแรกใชก้ นั อยใู่ นวงจากดั 2. ระบบงานแบ็ตซ์ (Batch system) ในอดีต คอมพิวเตอร์จะทางานไดค้ ร้ังละ 1 งาน การส่ังงานคอมพิวเตอร์ใหม้ ีมี ประสิทธิภาพยง่ิ ข้ึน ทาไดโ้ ดยการรวมงานท่ีคลา้ ยกนั เป็นกลุ่ม แลว้ ส่งให้
เครื่องประมวลผล โดยผทู้ าหนา้ ท่ีรวมงาน จะรับงานจากนกั พฒั นาโปรแกรม มาจดั เรียงตามความสาคญั และตามลกั ษณะของโปรแกรม จดั เป็ นกลุ่มงาน แลว้ ส่งใหค้ อมพวิ เตอร์ประมวลผล3. ระบบบฟั เฟอร์ (Buffering system)การทางานเพื่อขยายขีดความสามารถของระบบ ทาใหห้ น่วยรับ-แสดงผลสามารถทางานไปพร้อม ๆ กบั การประมวลผลของซีพยี ู ในขณะที่ประมวลผลคาสัง่ ท่ีถูกโหลดเขา้ ซีพยี นู ้นัจะมีการโหลดขอ้ มูลเขา้ ไปเก็บในหน่วยความจาก่อน เม่ือถึงเวลาประมวลผลจะสามารถทางานไดท้ นั ที และโหลดขอ้ มลู ตอ่ ไปเขา้ มาแทนท่ี หน่วยความจาที่ทาหนา้ ท่ีเก็บขอ้ มลู ที่เตรียมพร้อมน้ีเรียกวา่ บฟั เฟอร์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.html 1.1.1 ซุปเปอร์คอมพิวเตอร์ (Super computer)
คอมพิวเตอร์ขนาดใหญ่ มีกาลงั มากที่สุด ราคาแพงที่สุด สามารถประมวลผลคาสั่งไดน้ บัพนั ลา้ นคาสัง่ ในหน่ึงวนิ าที มกั ใชเ้ ก็บขอ้ มลู ขนาดใหญ่ และตอ้ งการความเร็วสูง เช่น สถิติประชากร การขดุ เจาะน้ามนั พยากรณ์อากาศ หรือวิจยั อาวธุ เป็นตน้ซูเปอร์คอมพวิ เตอร์ (Supercomputer) เป็นคอมพิวเตอร์ที่มีสมรรถนะในการทางานสูงกวา่คอมพิวเตอร์แบบอ่ืน ดงั น้นั จึงมีผเู้ รียกอีกชื่อหน่ึงวา่ คอมพวิ เตอร์สมรรถนะสูง (HighPerformance Computer) คอมพิวเตอร์ประเภทน้ี สามารถคานวนเลขที่มีจุดทศนิยม ดว้ ยความเร็วสูงมาก ขนาดหลายร้อยลา้ นจานวนตอ่ วนิ าที งานที่ใหค้ อมพิวเตอร์ประเภทน้ีทาแค่ 1 วนิ าที ถา้ หากเอามาใหค้ นอยา่ งเราคิด อาจจะตอ้ งใชเ้ วลานานกวา่ ร้อยปี ดว้ ยเหตุน้ี จึงเหมาะท่ีจะใชค้ อมพิวเตอร์ประเภทน้ี เมื่อตอ้ งมีการคานวนมากๆ อยา่ งเช่น งานวเิ คราะห์ภาพถ่าย จากดาวเทียมอุตุนิยมวทิ ยา หรือดาวเทียมสารวจทรัพยากร งานวเิ คราะห์พยากรณ์อากาศ งานทาแบบจาลองโมเลกลุ ของสารเคมี งานวเิ คราะห์โครงสร้างอาคาร ที่ซบั ซอ้ นคอมพวิ เตอร์ประเภทน้ี มีราคาคอ่ นขา้ งแพง ปัจจุบนั ประเทศไทย มีเคร่ืองซูเปอร์คอมพวิ เตอร์ Cray YMP ใชใ้ นงานวจิ ยั อยทู่ ่ีหอ้ งปฏิบตั ิการคอมพิวเตอร์สมรรถภาพสูง(HPCC) ศูนยเ์ ทคโนโลยอี ิเล็กทรอนิกส์ และคอมพวิ เตอร์แห่งชาติ ผใู้ ชเ้ ป็ นนกั วจิ ยั ดา้ นวศิ วกรรม และวทิ ยาศาสตร์ทว่ั ประเทศ บริษทั ผผู้ ลิตท่ีเด่นๆ ไดแ้ ก่ บริษทั เครย์ รีเสิร์ซ(Cray Research), บริษทั เอน็ อีซี (NEC) เป็นตน้[img]http://www.llnl.gov/str/October01/gifs/McCoy1.jpg[/img]1.1.2 เมนเฟรมคอมพิวเตอร์ (Mainframe computer)คอมพวิ เตอร์ขนาดใหญ่ แต่เล็กกวา่ super computer นิยมใชง้ านกบั ธุรกิจขนาดใหญ่ เช่นธนาคาร โรงแรม หรือ server ขององคก์ ารขนาดใหญ่คอมพิวเตอร์ท่ีมีสมรรถนะสูงมาก แตย่ งั ต่ากวา่ ซูเปอร์คอมพิวเตอร์ คือปกติสามารถทางานไดร้ วดเร็ว หลายสิบลา้ นคาส่ังต่อวินาที สาหรับสาเหตุที่ไดช้ ื่อวา่ เมนเฟรมคอมพวิ เตอร์ ก็เพราะคร้ังแรกท่ีสร้างคอมพวิ เตอร์ลกั ษณะน้ีไดส้ ร้างไวบ้ นฐานรองรับ ที่เรียกวา่ คสั ซี่(Chassis) โดยมีช่ือเรียกฐานรองรับน้ีวา่ เมนเฟรม นน่ั เองเหมาะกบั การใชง้ าน ท้งั ในดา้ นวศิ วกรรม วทิ ยาศาสตร์ และธุรกิจ โดยเฉพาะงานที่เก่ียวขอ้ งกบั ขอ้ มูลจานวนมากๆ เช่น งานธนาคาร ซ่ึงตอ้ งตรวจสอบบญั ชีลูกคา้ หลายคนงานของสานกั งานทะเบียนราษฎร์ ที่เกบ็ รายช่ือประชาชนประมาณ 60 ลา้ นคน พร้อมรายละเอียดต่างๆ งานจดั การบนั ทึกการส่งเงิน ของผปู้ ระกบั ตนหลายลา้ นคน ของสานกั งานประกนั สังคม กระทรวงแรงงาน คอมพิวเตอร์เมนเฟรม ที่มีชื่อเสียงมาก คือเครื่องของบริษทั IBMในปัจจุบนั ความนิยมใชเ้ คร่ืองเมนเฟรม ในหน่วยงานต่างๆ ไดล้ ดนอ้ ยลงมาก เพราะราคาเคร่ืองคอ่ นขา้ งแพง การใชง้ านค่อนขา้ งยาก และมีผรู้ ู้ดา้ นน้ีคอ่ นขา้ งนอ้ ย สถานศึกษาท่มี ี
เครื่องระดบั น้ีไวใ้ ชส้ อน กม็ ีเพยี งไม่ก่ีแห่ง เหตุผลสาคญั อีกประการหน่ึงคือ คอมพวิ เตอร์ขนาดเลก็ กวา่ ไดร้ ับการพฒั นาใหม้ ีสมรรถนะมากข้ึน จนสามารถทางานไดเ้ ทา่ กบั เคร่ืองเมนเฟรม แตร่ าคาถูกกวา่ อยา่ งไรกต็ ามเครื่องเมนเฟรม ยงั คงมีความจาเป็น ในงานที่ตอ้ งใช้ขอ้ มูลมากๆ พร้อมๆ กนั อยตู่ ่อไปอีก ท้งั น้ีเพราะ เครื่องเมนเฟรมสามารถพว่ งต่อ และควบคุมอุปกรณ์รอบขา้ ง (Peripheral) เช่น เคร่ืองพมิ พ์ เคร่ืองขบั เทปแม่เหล็ก เคร่ืองขบั จานแมเ่ หลก็ ฯลฯ ไดเ้ ป็นจานวนมากในเวลาเดียวกนั[img]http://www.nexconsulting.com/images/mainframe.gif[/img]1.1.3 มินิคอมพิวเตอร์ (Mini computer)คอมพิวเตอร์ที่ใชใ้ นธุรกิจขนาดกลาง และเล็ก ตอ้ งการความสามารถในการประมวลผลสูงและราคาไมส่ ูงเกินไป เช่น AS/400 เป็นตน้เป็นคอมพิวเตอร์ที่มีสมรรถนะนอ้ ยกวา่ เคร่ืองเมนเฟรม คือทางานไดช้ า้ กวา่ และควบคุมอุปกรณ์รอบขา้ งไดน้ อ้ ยกวา่ อยา่ งไรกต็ ามจุดเด่นสาคญั ของเครื่องมินิคอมพวิ เตอร์ กค็ ือราคายอ่ มเยากวา่ เมนเฟรม การใชง้ านก็ไม่ตอ้ งใช้ บุคลากรมากนกั นอกจากน้นั ยงั มีผทู้ ี่รู้วธิ ีใชม้ ากกวา่ ดว้ ย เพราะเคร่ืองประเภทน้ี มีใชต้ ามสถานศึกษา ระดบั อุดมศึกษาหลายแห่งมินิคอมพวิ เตอร์ เหมาะกบั งานหลากหลายประเภท คือใชไ้ ดท้ ้งั ในงานวศิ วกรรมวทิ ยาศาสตร์ อุตสาหกรรม เคร่ืองท่ีมีใชต้ ามหน่วยงานราชการระดบั กรมส่วนใหญ่ มกั จะเป็ นเคร่ื องประเภทน้ี[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) เป็นตน้1.1.5 โน๊ตบุค (Notebook computer)คอมพวิ เตอร์ส่วนบุคคล ที่สามารถพกพาไปในที่ต่าง ๆ เช่นบนรถ บนเครื่องบิน มีขนาดเท่าสมุดโน๊ต และมีราคาสูงกวา่ Personal computer เลก็ นอ้ ย1.1.6 พดี ีเอ (PDA: Personal Digital Assistant)คอมพวิ เตอร์ขนาดเล็กเทา่ ฝ่ ามือ ปัจจุบนั เป็นโทรศพั ทไ์ ดด้ ว้ ย ทาใหไ้ ม่ตอ้ งพกอุปกรณ์หลายชิ้น แต่ความสามารถดา้ นการประมวลผลยงั ไมส่ ามารถเทียบเท่า Personal computer
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 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 ปฏิบตั กิ ารสารวจข้อมูล และถอดประกอบเครื่อง - จดั คอมพวิ เตอร์ใหฝ้ ึกถอดประกอบคอมพิวเตอร์จากหอ้ งปฏิบตั ิการ - มอบหมายใหเ้ ดินสารวจการใชค้ อมพิวเตอร์ในสถาบนั - ใหค้ น้ ขอ้ มูลคอมพิวเตอร์ท่ีใชใ้ นองคก์ ารต่าง ๆ และยกตวั อยา่ งการใชป้ ระโยชน์ - คน้ ควา้ ขอ้ มูลเกี่ยวกบั ระบบคอมพวิ เตอร์ จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทน นาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://web.ku.ac.th/schoolnet/snet1
หน่วยท่ี 2. ความรู้เบ้ืองตน้ เกี่ยวกบั ระบบปฏิบตั ิการ (Operating system) สาระการเรียนรู้ 1. หนา้ ท่ีของระบบปฏิบตั ิการ 2. องคป์ ระกอบของระบบปฏิบตั ิการ 3. ววิ ฒั นาการของระบบปฏิบตั ิการ 4. โครงสร้างระบบปฏิบตั ิการ จุดประสงค์การสอน 1. เขา้ ใจหนา้ ท่ีของระบบปฏิบตั ิการ 2. สามารถยกตวั อยา่ งการทางานจริงเกี่ยวกบั องคป์ ระกอบของระบบปฎิบตั ิการได้ 3. เขา้ ใจทราบความเป็นมา หรือวิวฒั นาการของระบบปฏิบตั ิการ 4. สามารถบอกไดว้ า่ ส่ิงใดคือเซอร์วสิ ของระบบปฏิบตั ิการ และสิ่งใดไม่ใช่ 5. สามารถเขียนโครงสร้างของระบบปฏิบตั ิการออกมาได้ 6. สามารถติดต้งั ระบบปฏิบตั ิการไดอ้ ยา่ งนอ้ ย 1 ระบบบทนา แนะนาใหร้ ู้จกั คาวา่ ระบบปฏิบตั ิการ และระบบอื่น ๆ ท่ีเกี่ยวขอ้ ง เพ่อื ใหเ้ ห็นเน้ือหา โดยรวม สาหรับความหมายของระบบปฏิบตั ิการในเบ้ืองตน้ คือ โปรแกรม ที่จดั การ คอมพิวเตอร์ฮาร์ดแวร์ โดยทาหนา้ ท่ีใหก้ ารสนบั สนุนการประมวลผลในเบ้ืองตน้ และทา หนา้ ท่ีอานวยความสะดวกใหผ้ ใู้ ช้ และคอมพวิ เตอร์ฮาร์ดแวร์ทางานดว้ ยกนั อยา่ งราบรื่น จากความหมายขา้ งตน้ ทาใหท้ ราบวา่ คอมพิวเตอร์ทุกเคร่ืองตอ้ งมีระบบปฏิบตั ิการ ซ่ึงเป็น ส่วนประกอบสาคญั อีกส่วนหน่ึง โดยปกติคอมพิวเตอร์จะมีส่วนประกอบสาคญั แยกกนั ได้ 4 ส่วนคือ hardware, operating system, application program และ users 1. ฮาร์ดแวร์ (Hardware) ประกอบดว้ ยทรัพยากรตา่ งๆ ที่มีในระบบ ไดแ้ ก่ อุปกรณ์นา ขอ้ มลู เขา้ /ออก หน่วยประมวลผลกลาง และหน่วยความจา นอกจากน้ียงั หมายความรวมถึง โปรแกรมภาษาเคร่ือง และไมโครโปรแกรม ซ่ึงเป็นส่วนที่บริษทั ผผู้ ลิตสร้างข้ึนเพื่อใชเ้ ป็น ซอฟร์แวร์ในระดบั พ้ืนฐาน (primitive level) โดยสามารถทางานไดโ้ ดยตรงกบั ทรัพยากร ระบบดว้ ยคาสัง่ ง่ายๆ เช่น ADD MOVE หรือ JUMP คาสง่ั เหล่าน้ีจะถูกกาหนดเป็ นข้นั ตอน การทางานของวงจรภายในเคร่ืองคอมพวิ เตอร์ ชุดคาส่งั ที่ไมโครโปรแกรมตอ้ งแปลหรือ ตีความหมายจะอยใู่ น รูปแบบภาษาเครื่องและมกั เป็นคาสั่งในการคานวณ เปรียบเทียบ และการควบคุมอุปกรณ์นาขอ้ มูลเขา้ /ออก 2. ระบบปฏบิ ัตกิ าร (Operating system) เป็นโปรแกรมท่ีทางานเป็นตวั กลางระหวา่ ง ผใู้ ชเ้ ครื่องและฮาร์ดแวร์ โดยมีวตั ถุประสงคเ์ พือ่ จดั สภาพแวดลอ้ มใหผ้ ใู้ ชร้ ะบบสามารถ
ปฏิบตั ิงานบนเครื่องคอมพวิ เตอร์ได้ โดยจะเอ้ืออานวยการพฒั นาและการใชโ้ ปรแกรมตา่ งๆ รวมถึงการจดั สรรทรัพยากรตา่ งๆ ใหไ้ ดอ้ ยา่ งมีประสิทธิภาพ3. โปรแกรมประยกุ ต์ (Application program) คือซอฟตแ์ วร์หรือโปรแกรมท่ีถูกเขียนข้ึนเพ่ือการทางานเฉพาะอยา่ งที่เราตอ้ งการ เช่น งานส่วนตวั งานทางดา้ นธุรกิจ งานทางดา้ นวทิ ยาศาสตร์ โปรแกรมทางธุรกิจ เกมส์ต่างๆ ระบบฐานขอ้ มลู ตลอดจนตวั แปลภาษา เราอาจเรียกโปรแกรมประเภทน้ีวา่ User's Program โปรแกรมประเภทน้ีโดยส่วนใหญม่ กั ใช้ภาษาระดบั สูงในการพฒั นา เช่นภาษา C, C++, COBOL, PASCAL, BASIC ฯลฯ ตวั อยา่ งของโปรแกรมท่ีพฒั นาข้ึนใชใ้ นทางธุรกิจ เช่น โปรแกรมระบบบญั ชีจา่ ยเงินเดือน (PayrollProgram) โปรแกรมระบบเช่าซ้ือ (Hire Purchase) โปรแกรมระบบสินคา้ คงหลงั (StockProgram) ฯลฯ ซ่ึงแตล่ ะโปรแกรมกจ็ ะมีเงื่อนไขหรือแบบฟอร์มที่แตกตา่ งกนั ตามความตอ้ งการหรือกฏเกณฑข์ องแต่ละหน่วยงานที่ใช้ ซ่ึงโปรแกรมประเภทน้ีเราสามารถดดั แปลงแกไ้ ขเพ่มิ เติม (Modifications) ในบางส่วนของโปรแกรมเองได้ เพือ่ ใหต้ รงกบัความตอ้ งการของผใู้ ชง้ านโปรแกรม โปรแกรมเหล่าน้ีเป็ นตวั กาหนดแนวทางในการใช้ทรัพยากรระบบ เพื่อทางานต่างๆ ใหแ้ ก่ผใู้ ชห้ ลากหลายประเภท ซ่ึงอาจเป็ นไดท้ ้งั บุคคลโปรแกรม หรือเครื่องคอมพิวเตอร์ เช่นตวั แปรภาษาตอ้ งใชท้ รัพยากรระบบในการแปลโปรแกรมภาษาระดบั สูงใหเ้ ป็นภาษาเคร่ืองแก่โปรแกรมเมอร์ ดงั น้นั ระบบปฏิบตั ิการตอ้ งควบคุมและประสานงานในการใชท้ รัพยากรระบบของผใู้ ชใ้ หเ้ ป็นไปอยา่ งถูกตอ้ ง4. ผ้ใู ช้ (User) ถึงแมร้ ะบบคอมพวิ เตอร์จะประกอบดว้ ยองคป์ ระกอบท้งั ทางดา้ นฮาร์ดแวร์และซอฟตแ์ วร์ แต่ระบบคอมพวิ เตอร์จะไมส่ ามารถทางานไดถ้ า้ ขาดอีกองคป์ ระกอบหน่ึงซ่ึงไดแ้ ก่ องคป์ ระกอบทางดา้ นบุคลากรที่จะเป็นผจู้ ดั การและควบคุมระบบคอมพวิ เตอร์ให้สามารถปฏิบตั ิงานไดอ้ ยา่ งราบร่ืน คอยแกไ้ ขปัญหาตา่ ง ๆ ที่เกิดข้ึนกบั ระบบคอมพวิ เตอร์พฒั นาโปรแกรมประยกุ ตต์ า่ ง ๆ รวมไปถึงการใชง้ านโปรแกรมประยกุ ตท์ ่ีถูกพฒั นาข้ึน ความหมายของระบบปฏิบัติการ Milan MilenkovicAn operating system is an organized collection of software extensions of hardware,consisting of control routines for operating a computer and for providing an environmentfor execution of programs.H. M. DeitelOperating systems are primarily resource managers; the main resource they manage iscomputer hardware in the form of processors, storage, input/output devices,communication devices and data. Operating systems perform many functions such asimplementing the user interface, sharing hardware among users, allowing users to share
data among themselves, preventing users from interfering with one another, scheduling resources among users, facilitating input/output, recovering from errors, accounting for resource usage, facilitating parallel operations, organizing data for secure and rapid access, and handling network communications. A. Silberschatz , J. Peterson and P. Galvin An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware. An operating system is similar to a government. The components of a computer system are its hardware, software, and data. The operating system provides the means for the proper use of these resources in the operation of the computer system. Like a government, the operating system performs no useful function by itself. It simply provides an environment within which other programs can do useful work. William S. Davis The operating system is a set of software routines that sits between the application program and hardware. Because the operating system serves as a hardware/software interface (Fig. 1.2 ), application programmers and users rarely communicate directly with the hardware. ดร. ยรรยง เตง็ อานวย กลุ่มโปรแกรมซ่ึงไดร้ ับการจดั ระเบียบใหเ้ ป็ นส่วนเช่ือมโยงระหวา่ งเครื่อง และผใู้ ช้ โดยจะ เอ้ืออานวยการพฒั นาและการใชโ้ ปรแกรมตา่ ง ๆ รวมถึงการจดั สรรทรัพยากรต่าง ๆ ใหม้ ี ประสิทธิผลที่ดี มงคล อศั วโกวิทกรณ์ กลุ่มโปรแกรมงานท่ีมีความสามารถสูง เช่น ช่วยในการแบง่ ปันการใชท้ รัพยากรตา่ งๆ ใน ระบบ และควบคุมจงั หวะการทางานของโปรแกรมท่ีกาลงั รันอยเู่ พ่ือมิให้เกิดขอ้ ผิดพลาด และรวมถึงควบคุม System Software2.1 หน้าทข่ี องระบบปฏิบตั กิ าร 2.1.1 การติดตอ่ กบั ผใู้ ช้ หรือยเู ซอร์อินเทอร์เฟซ (User interface) ผใู้ ชส้ ามารถส่งั ใหค้ อมพวิ เตอร์ทางาน จึงเป็ นหนา้ ท่ีของระบบปฏิบตั ิการในเป็นตวั กลาง และเตรียมสภาพแวดลอ้ มต่าง ๆ ใหก้ บั ผใู้ ชใ้ นการส่งั งานคอมพิวเตอร์ หลงั จากน้นั จะใช้ คาสงั่ ผา่ นทาง System call เพ่ือปฏิบตั ิสิ่งท่ีผใู้ ชต้ อ้ งการ ใชส้ ามารถติดตอ่ หรือควบคุมการทางานของเคร่ืองคอมพวิ เตอร์ผา่ นทางระบบปฏิบตั ิการ ได้ โดยระบบปฏิบตั ิการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพอื่ รอรับคาสั่ง
จากผใู้ ชโ้ ดยตรง ตวั ระบบปฏิบตั ิการจึงเป็นตวั กลางท่ีทาหนา้ ที่เช่ือมโยงระหวา่ งผใู้ ชก้ บั ฮาร์ดแวร์ของเคร่ือง นอกจากน้ีผใู้ ชอ้ าจเขียนโปรแกรมเพื่อใชง้ านกรณีน้ีผใู้ ชก้ ส็ ามารถ ติดต่อกบั ระบบปฏิบตั ิการไดโ้ ดยผา่ นทาง System Call 2.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 และ timesharing2.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 - ช้ีการทางานแต่ละองคป์ ระกอบของระบบปฏิบตั ิการ - ฝึกใชโ้ ปรแกรมตรวจสอบประสิทธิภาพของระบบปฏิบตั ิการ หรืออุปกรณ์ต่าง ๆ - คน้ ควา้ ขอ้ มูลเก่ียวกบั ระบบปฏิบตั ิการ จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทน นาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://www.microsoft.com + http://www.redhat.com
หน่วยท่ี 3. การจดั การโปรเซส (Process management)สาระการเรียนรู้1. องคป์ ระกอบของโปรเซส2. สถานะของโปรเซส3. การจดั เวลาโปรเซส4. การปฏิบตั ิการบนโปรเซส5. โปรเซสส่ือประสาน6. การสื่อสารในโปรเซส7. แบบของการประมวลผลจุดประสงค์การสอน1. สามารถเขียนตารางแสดงองคป์ ระกอบของโปรเซสได้2. สามารถเขียนภาพแสดงสถานะของโปรเซสได้3. เขา้ ใจการจดั เวลาโปรเซส4. เขา้ ใจการปฏิบตั ิการบนโปรเซส5. สามารถบอกไดว้ า่ เหตุท่ีทาใหเ้ กิดโปรเซสส่ือประสานได้6. สามารถบอกไดว้ า่ เรื่องที่ตอ้ งพิจารณาเก่ียวกบั การสื่อสารในโปรเซสมีอะไรบา้ ง7. เขา้ ใจแบบของการประมวลผล8. สามารถเขียนภาพแสดงแบบของการประมวลผลแตล่ ะแบบบทนา การศึกษาเร่ืองโปรเซส เป็นหวั ใจของการทาความเขา้ ใจของระบบคอมพวิ เตอร์ที่มีผใู้ ช้ หลายคน ( multiuser computer system ) คาวา่ โปรเซสถูกใชค้ ร้ังแรกโดยผอู้ อกแบบ ระบบมลั ติกส์ ( multics ) ในทศวรรษ 1690 มีการใหค้ วามหมายของคาวา่ \"โปรเซส\" ไว้ หลายความหมายเช่น - โปรแกรมที่กาลงั ถูกเอก็ ซีคิ้ว - กิจกรรมท่ีมีการทางานสัมพนั ธ์กนั - สิ่งที่ถูกมอบหมายไปใหโ้ ปรเซสเซอร์ได้ - หน่วยซ่ึงถูกส่งต่อได้ ( dispatchable ) ยงั ไม่มีความหมายใดท่ีเป็นที่ยอมรับกนั ทุกคน แตค่ วามหมายที่วา่ โปรเซส คือ \"โปรแกรม ที่กาลงั ถูกเอก็ ซีคิว้ \" น้นั ถูกใชบ้ ่อยมากท่ีสุด ดงั น้นั จึงเอาความหมายน้ีเป็นความหมายของ คาวา่ โปรเซส เราอาจเปรียบเทียบโปรแกรมเหมือนกบั รถยนตท์ ่ีจอดนิ่งอยทู่ ี่พร้อมที่จะวง่ิ ไป ในระบบหลายโปรแกรม ( multiprogramming ) โปรเซสอาจเปรียบกบั รถยนตท์ ี่วง่ิ ออก จากจุดเริ่มตน้ ถา้ มีหลายโปรเซสอยใู่ นระบบก็เหมือนกบั การที่เรามีรถหลายคนั ท่ีจะตอ้ ง
ออกวง่ิ ไปพร้อม ๆ กนั ตวั ซีพยี เู ปรียบไดก้ บั คนขบั รถ ถา้ ซีพยี มู ีตวั เดียวกเ็ หมือนกบัคนขบั รถมีเพยี งคนเดียว ดงั น้นั เมื่อรถหลายคนั ออกวงิ่ การท่ีคนขบั คนเดียวจะพารถหลายๆคนั วง่ิ ไปตอ้ งขบั รถทีละคนั ใหว้ ง่ิ เดินหนา้ ไปทีละนิด เวยี นเปลี่ยนไปจนครบทุกคนั จนถึงจุดหมายปลายทาง ( โปรแกรมสิ้นสุดลง ) น้นั คือเราสามารถมีโปรเซสหลายๆ โปรเซสทางานไปพร้อมๆ กนั ไดโ้ ดยมีซีพยี เู พยี งตวั เดียว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) pointer process state process id process counter registers list 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) คือสถานะที่โปรเซสไม่มีการทางานใดๆ หยดุ น่ิงอยา่ ง สมบูรณ์ ไมม่ ีการรอการใชซ้ ีพียหู รือเหตุการณ์ใดๆ ใหเ้ กิดข้ึน 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 ท้งั หมดอีกคร้ัง 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 1. ไมม่ ี process อยใู่ น critical region พร้อมกนั 2. ไม่มีสมมติฐาน และขอ้ จากดั ดา้ นความเร็ว หรือจานวนซีพยี มู าเป็นปัจจยั 3. ไม่มี process นอก critical region ที่ block การทางานของ process อื่น 4. ไมม่ ี process ที่รอเขา้ ใจ critical region ตลอดเวลา การแก้ปัญหา Mutual exclusion with busy waiting 5. Disable interrupt 6. Lock variable 7. Strict alternation 8. Peterson's solution 9. TSL instruction3.4 การปฏิบัตกิ ารบนโปรเซส
ขณะคอมพวิ เตอร์ทางานตอ้ งการสร้าง และลบ process ตลอดเวลา จึงตอ้ งมีการควบคุมให้ระบบคงสภาพอยตู่ ลอดเวลา โปรเซสแม่ (Parent process) และโปรเซสลูก (Childrenprocess) ตอ้ งถูกสร้าง และหยดุ ทางานไดอ้ ยา่ งสอดคลอ้ ง เพ่ือใหเ้ ขา้ ใจเร่ืองของ process จึงขอแสดง tree of process on a typical UNIX system ประกอบการอธิบาย[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 -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1376 84 ? S Oct08 0:12 init root 1482 0.0 0.0 1440 156 ? S Oct08 0:32 syslogd -m 0 root 1486 0.0 0.0 1368 4 ? S Oct08 0:00 klogd -x rpc 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/sshd root 1649 0.0 0.1 2024 368 ? S Oct08 0:02 xinetd -stayalive root 1659 0.0 0.0 1596 88 ? S Oct08 0:00 /usr/sbin/vsftpd root 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/httpd apache 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) หมายถึง ส่งไปใหโ้ ปรเซส B receive(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)3.8 ปฏิบัติการฝึ กเขียนแผนภาพ - ฝึกเขียนแผนภาพการทางานของโปรเซส - ฝึกตรวจสอบโปรเซสท่ีกาลงั ประมวลผลในคอมพวิ เตอร์ดว้ ยระบบปฏิบตั ิการตา่ ง ๆ - คน้ ควา้ ขอ้ มลู เก่ียวกบั การจดั การโปรเซส จากอินเทอร์เน็ต แลว้ ทารายงาน และส่ง ตวั แทนนาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://www.netnam.vn/unescocourse/os/33.htm (Queue process concept) + http://jingwei.eng.hmc.edu/~rwang/e85/lectures/ + http://www.cs.jhu.edu/~yairamir/cs418/os2/
หน่วยที่ 4. เทรด (Threads)สาระการเรียนรู้1. ความหมายของ Threads2. Multithreading Models3. Threading Issues4. Pthreadsจุดประสงค์การสอน1. เขา้ ใจความหมายของ Threads2. สามารถเขียนแผนภาพแสดง Singlethread และ Multithread ได้3. เขา้ ใจความหมายของ Multithreading Models4. สามารถเขียนแผนภาพแสดง Multithreading models แตล่ ะแบบได้5. เขา้ ใจความหมายของ Threading Issues6. เขา้ ใจความหมายของ Pthreadsบทนา ในอดีตการประมวลผลเป็ นแบบ single thread ท่ี CPU ถูกครอบครองโดย process คร้ังละ 1 process เทา่ น้นั แตป่ ัจจุบนั ระบบปฏิบตั ิการยอมใหเ้ ป็นระบบ Multithreaded ซ่ึงในแตล่ ะ ระบบปฏิบตั ิการมีรูปแบบแตกตา่ งกนั ไปเช่น Java, Windows, Linux หรือ Unix ในบางคร้ัง เราเรียก thread วา่ LWP (Light Weight Process) ซ่ึงเป็นความสามารถพ้นื ฐานของ CPU ใน การจดั สรร Thread ID, Program counter, Register set และ Stack ใหก้ บั ทุก ๆ Thread ส่วน ในอดีตเราจะเรียกวา่ Heavy weight process เพราะเป็นแบบ Single thread of control 4.1 ความหมายของ Threads Thread แปลว่า ด้าย 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 ใน process 2. Program counter ใชน้ บั คาสั่งที่ประมวลผลอยา่ งเป็นลาดบั 3. Register set ใชเ้ ก็บค่าท่ีทางานอยู่ 4. Stack ใชเ้ กบ็ ประวตั ิการประมวลผล [img]thread.png[/img]4.2 Multithreading Models โปรแกรมในปัจจุบนั ออกแบบใหท้ างานแบบ 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)
1. การตอบสนอง (Responsiveness) 2. การแชร์รีซอร์ส (Resource sharing) 3. ความประหยดั (Economy) 4. การเอ้ือประโยชนข์ องสถาบตั ยกรรมมลั ติโปรเซสเซอร์ (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 Pthreads Pthreads อา้ งถึงมาตรฐาน POSIX (IEEE 1003.1c) เพ่ือกาหนด API(Application programming interface) สาหรับสร้าง และการซินโครไนซ์เซชนั นี่คือการกาหนด สภาพแวดลอ้ มของ thread ซ่ึง Thread specification น้ีถูกจากดั ใน Solaris2 แต่ Pthread ไม่ ถูกสนบั สนุนใน Windows แมจ้ ะมี shareware เผยแพร่แลว้ ก็ตาม Historically, hardware vendors have implemented their own proprietary versions of threads. These implementations differed substantially from each other making it difficult for programmers to develop portable threaded applications. In order to take full advantage of the capabilities provided by threads, a standardized programming interface was required. For UNIX systems, this interface has been specified by the IEEE POSIX 1003.1c standard (1995). Implementations which adhere to this standard are referred to as POSIX threads, or Pthreads. Most hardware vendors now offer Pthreads in addition to their proprietary API's. http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/samples/hello.c ================================ #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) {
printf(\"\n%d: Hello World!\n\", threadid); pthread_exit(NULL); } int main (int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc, t; for(t=0;t < NUM_THREADS;t++){ printf(\"Creating thread %d\n\", t); rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t); if (rc){ printf(\"ERROR; return code from pthread_create() is %d\n\", rc); exit(-1); } } pthread_exit(NULL); } ================================ Output : Creating thread 0 Creating thread 1 0: Hello World! 1: Hello World! Creating thread 2 Creating thread 3 2: Hello World! 3: Hello World! Creating thread 4 4: Hello World!4.5 ปฏิบัติการฝึ กเขียน threading model - ฝึกเขียนโปรแกรมดว้ ยภาษา C แสดงการทางานของ pthread - คน้ ควา้ ขอ้ มูลเกี่ยวกบั เทรด จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทนนาเสนอหนา้
ช้นัแนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน+ http://hpcnc.cpe.ku.ac.th/~thvo/tutorial/pthread.ppt+ http://csalpha.ist.unomaha.edu/~stanw/031/csci4510/+ http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html+ http://www.llnl.gov/computing/tutorials/pthreads/exercise.html+ http://www.socketsystems.co.uk/~dan/docs/pthread_8h.html+ http://www.frech.ch/man/man0p/pthread.h.0p.html
หน่วยท่ี 3. การจดั การหน่วยความจา (memory management)สาระการเรียนรู้1. กระบวนการจดั การหน่วยความจา2. หน่วยความจาหลกั3. การแบง่ เป็นหนา้4. การสบั เปลี่ยนหนา้5. การแบง่ เป็นเซ็กเมนต์จุดประสงค์การสอน1. เขา้ ใจกระบวนการจดั การหน่วยความจา2. สามารถบอกไดว้ า่ กระบวนการจดั การหน่วยความจามีอะไรบา้ ง3. เขา้ ใจหน่วยความจาหลกั4. เขา้ ใจการแบ่งเป็นหนา้5. เขา้ ใจการสบั เปล่ียนหนา้6. เขา้ ใจการแบ่งเป็นเซ็กเมนต์7. สามารถวาดภาพแสดงการสับเปลี่ยนหนา้ แตล่ ะแบบได้บทนา ระบบคอมพวิ เตอร์ถูกพฒั นาใหส้ ามารถรันโปรแกรมไดห้ ลาย ๆ โปรแกรมโดยแต่ละ โปรแกรมจะแยง่ กนั ใชห้ น่วยความจา ปัญหาที่ตามมาก็คือ ไมม่ ีหน่วยความจามากเพยี งพอ สาหรับโปรแกรม วธิ ีแกป้ ัญหาก็คือเพ่ิมหน่วยความจาเขา้ ไปในระบบ แตจ่ ะทาใหเ้ สีย คา่ ใชจ้ า่ ยมากการแกป้ ัญหาวิธีน้ีกค็ งยงั ไม่เพียงพอสาหรับการใชง้ าน นกั คอมพวิ เตอร์จึงหา วธิ ีอ่ืนที่จะแกป้ ัญญาหน่วยความจาไม่เพียงพอ วธิ ีที่นิยมใชก้ ็คือ การทาหน่วยความจา เสมือน (Virtual Memory) 5.1 กระบวนการจัดการหน่วยความจา 5.1.1 การยา้ ยตาแหน่ง (Relocation) ระบบปฏิบตั ิการในปัจจุบนั ยอมใหโ้ ปรแกรมทางานพร้อมกนั ไดห้ ลายงานแบบ multiprogramming ซ่ึงโปรเซสต่าง ๆ เขา้ ใชง้ านหน่วยความจาร่วมกนั จึงตอ้ งมีการสลบั โปรแกรมใหเ้ ขา้ ออกหน่วยความจาได้ รวมถึงการเปล่ียนแปลงค่าตาแหน่งใน หน่วยความจาท่ีอา้ งถึงในโปรแกรม ใหถ้ ูกตอ้ งตามตาแหน่งจริงในหน่วยความจา เช่น โปรแกรม a อา้ งถึงตาแหน่งที่ 1000 และโปรแกรม b กอ็ า้ งถึงตาแหน่งที่ 1000 เช่นกนั ค่า address แบ่งได้ 2 ค่า 1. Absolute address หมายถึง ตาแหน่งจริงของโปรเซสที่อยใู่ นหน่วยความจา
2. Relative address หมายถึง ตาแหน่งของคาสงั่ หรือโปรแกรมของโปรเซสหลงั จากการ compile 5.1.2 การป้ องกนั พ้นื ที่ (Protection) ระบบปฏิบตั ิการควรสามารถป้ องกนั โปรเซส จากการถูกรบกวน ท้งั ทางตรง และทางออ้ ม ดงั น้นั ก่อนใหโ้ ปรเซสใดเขา้ ครอบครองหน่วยความจา จะตอ้ งมีการตรวจสอบก่อน และใช้ เวลาคน้ หาเพื่อตรวจสอบตลอดเวลา 5.1.3 การใชพ้ ้นื ที่ร่วมกนั (Sharing) การป้ องกนั เพยี งอยา่ งเดียว อาจทาใหก้ ารใชท้ รัพยากรไม่คุม้ จึงตอ้ งมีการจดั สรรใหใ้ ชพ้ ้ืนท่ี ของหน่วยความจาร่วมกนั อยา่ งยดื หยนุ่ 5.1.4 การจดั การแบ่งโปรแกรมยอ่ ย (Logical organization) ระบบปฏิบตั ิการจะแบง่ โปรแกรมเป็นโปรแกรมหลกั และโปรแกรมยอ่ ย โดยนาเฉพาะ โปรแกรมหลกั ลงในหน่วยความจา แต่นาโปรแกรมยอ่ ยลงหน่วยความจาเฉพาะเม่ือมีการ เรียกใชเ้ ท่าน้นั ประโยชน์ทไี่ ด้จากการจัดการแบ่งโปรแกรมออกเป็ นโปรแกรมย่อย มีดงั น้ี 1. โปรแกรมยอ่ ยที่ไมไ่ ดใ้ ชง้ าน จะไม่นาลงหน่วยความจาหลกั 2. โปรแกรมยอ่ ยแต่ละตวั สามารถถูกเขียน และแปลแยกกนั ได้ 3. โปรแกรมยอ่ ยแต่ละตวั มีระดบั การป้ องกนั แตก่ ตา่ งกนั 4. โปรแกรมหลกั สามารถเรียกใชโ้ ปรแกรมยอ่ ยเหล่าน้ีร่วมกนั ได้ 5.1.5 การจดั การแบ่งทางกายภาพ (Physical organization) หน่วยความจาแบ่งเป็น 2 ส่วนคือ หน่วยความจาหลกั และหน่วยความจาสารอง ลกั ษณะ ของหน่วยความจาหลกั จะมีราคาแพง ทางานไดเ้ ร็ว แต่เลือนหายได้ ในการทางานจริง จึง ตอ้ งมีการเคลื่อนยา้ ยทางกายภาพระหวา่ งหน่วยความจาท้งั 2 ตลอดเวลา ซ่ึงเป็นหนา้ ที่ของ ระบบท่ีตอ้ งจดั สรรใหใ้ หส้ อดคลอ้ งกบั การทางานแบบ multiprogramming3.2 หน่วยความจาหลกั (Main memory) การจดั การหน่วยความจามีหลายระบบ เริ่มจากแบบไม่ซบั ซอ้ น ไปถึงซบั ซอ้ น ในบทน้ีจะ เรียนรู้แบบไม่ซบั ซอ้ น ซ่ึงไม่ถูกนามาใชง้ านในระบบปฏิบตั ิการปัจจุบนั แตอ่ าจใชใ้ น คอมพวิ เตอร์ขนาดเล็กอยู่ การเรียนรู้เรื่องน้ีอาจ นาไปประยกุ ตใ์ นการพฒั นางานดา้ น software อ่ืน ๆ ได้ 3.2.1 ระบบโปรแกรมเดียว (Monoprogramming) เป็นวธิ ีการจดั การที่ง่ายท่ีสุด โดยกาหนดเพียง 1 โปรแกรม ใหท้ างานในหน่วยความจาเพยี ง โปรแกรมเดียว
3.2.2 ระบบหลายโปรแกรมท่ีกาหนดขนาดพาร์ติชน่ั คงท่ี (Multiprogramming with fixed partition) ปัจจุบนั ระบบปฎิบตั ิการยอมใหม้ ีหลายโปรเซสทางานพร้อมกนั ได้ หมายความวา่ ขณะท่ี โปรเซสหน่ึงทาเสร็จ อีกโปรเซสที่รอ ก็เขา้ ใชห้ น่วยความจาทนั ที โดยแบง่ หน่วยความจา ออกเป็ น partition การแบง่ เห็นแตล่ ะ partition แบบตายตวั มีจุดบกพร่อง จึงมีการจดั การ หน่วยความจาแบบ FCFS : first come first serve การจดั การแบบน้ียอ่ มมีปัญหา จึงเป็น หนา้ ที่ของระบบปฏิบตั ิการ ท่ีตอ้ งจดั การ 3.2.3 ระบบท่ีกาหนดขนาดของพาร์ติชนั่ ใหเ้ ปล่ียนแปลงได้ (Dynamic partition) เพ่อื แกป้ ัญหาของการกาหนดแบบคงท่ี จึงออกแบบการกาหนด partition แบบเปลี่ยนแปลง ได้ ซ่ึงมีความซบั ซอ้ น มากข้ึน ตามโปรเซสที่เขา้ ใชห้ น่วยความจา 3.2.4 การจดั การแบบระบบบดั ด้ี (Buddy system) ระบบจดั การหน่วยความจาแบบคงที่ และเปลี่ยนแปลงได้ อาจมีขอ้ จากดั เรื่องการรองรับ จานวนโปรเซส และใชพ้ ้นื ที่ไม่เตม็ ประสิทธิภาพได้ ส่วนการแบง่ แบบเปลี่ยนแปลงไดก้ ็มี ความซบั ซอ้ นในทางปฏิบตั ิ และใชท้ รัพยากร จึงมีการผสมระหวา่ ง 2 ระบบน้ีเขา้ ดว้ ยกนั ระบบน้ีจะแบ่งพ้ืนที่เป็น 2 ส่วน และตรวจสอบวา่ พอจะแบง่ ใหก้ บั โปรเซสล่าสุดไดห้ รือไม่ ถา้ แบง่ แลว้ เขา้ ไม่ได้ ก็จะแบ่งขนาดเทา่ ก่อนหนา้ ท่ีถูกแบง่ และจดั เรียงพ้นื ท่ีเป็นแบบ link list ไวร้ อการเขา้ ใชข้ องโปรเซส3.3 การแบ่งเป็ นหน้า (Paging) ระบบท่ีใชห้ น่วยความจาเสมือน (Virtual memory) มกั ใชเ้ ทคนิคท่ีเรียกวา่ การแบ่งหนา้ หรือเพจจ่ิง(Paging) เพอื่ เชื่อมระหวา่ งตาแหน่งทางตรรก กบั เลขของเฟรมในหน่วยความจา หลกั 3.3.1 ตารางหนา้ (Page table) หมายถึงการรับคา่ ตาแหน่งทางตรรกเป็นค่านาเขา้ แลว้ หาเลขของเฟรมในหน่วยความจา หลกั ออกมา เทคนิคตารางหนา้ (Page table) มกั มีขนาดใหญ่ และตอ้ งทาดว้ ยความเร็วสูง หากสรุปแลว้ ตารางหนา้ กค็ ือตารางท่ีเก็บอาร์เรยข์ องรีจิสเตอร์นน่ั เอง 3.3.2 บฟั เฟอร์คน้ หาที่อยู่ (TLB : Translation lookaside buffer) ทุกคร้ังที่เรียกใชห้ น่วยความจาเสมือน ยอ่ มเรียกใชห้ น่วยความจาหลกั 2 คร้ัง คือ การอ่าน ตารางหนา้ และอ่านขอ้ มลู จริงจากหน่วยความจาหลกั ดงั น้นั การทางานแบบน้ีจึงใชเ้ วลาถึง 2 เท่า จึงมีการใช้ cach memory ซ่ึงทาหนา้ ท่ีเกบ็ ตารางหนา้ ท่ีเคยถูกเรียกใช้ หรือเรียกวา่ บฟั เฟอร์คน้ หาที่อยู่ (TLB : Translation Lookaside Buffer) ถา้ พบใน TLB จะเรียก TLB hit ถา้ ไม่พบเรียก TLB miss และเขา้ ไปอ่านตารางหนา้ เมื่ออ่านแลว้ กจ็ ะนามาเพ่มิ ใน TLB สาหรับโอกาสที่จะถูกเรียกในอนาคต
3.4 การสับเปลยี่ นหน้า (Page replacement algorithms) 3.4.1 วธิ ีสบั เปล่ียนแบบมาก่อน-ออกก่อน (FIFO : First in first out algorithm) 3.4.2 วธิ ีสับเปลี่ยนแบบใหโ้ อกาสคร้ังท่ีสอง (Second change page replacement algorithm) 3.4.3 วธิ ีสับเปล่ียนแบบวงรอบนาฬิกา (Clock page replacement algorithm) 3.4.4 วธิ ีสบั เปล่ียนแบบที่ด่ีสุด (Optimal page replacement 3.4.5 การสับเปลี่ยนแบบท่ีไม่ไดใ้ ชง้ านออกก่อน (NRU : Not recently used) 3.4.6 การสับเปลี่ยนแบบใชง้ านนอ้ ยท่ีสุดออกก่อน (LRU : Least recently used) ใชข้ อ้ มลู ในอดีตประมาณการณ์ 3.5 การแบ่งเป็ นเซ็กเมนต์ (Segmentation) การแบง่ หนา้ จะแบง่ ใหม้ ีขนาดเท่ากนั แตก่ ารแบ่งเป็นเซ็กเมนตจ์ ะแบง่ โปรแกรมออกเป็ น ส่วน ๆ ไมเ่ ทา่ กนั และมีการใชต้ าแหน่งทางตรรก อา้ งอิงตาแหน่งจริงเช่นกนั และมีการใช้ ขอ้ มูล 2 ส่วนคือ เลขท่ีเซ็กเมนต์ และระยะเริ่มตน้ ของเซก้ เมนต(์ Offset) สาหรับผลของการ แบง่ เซ็กเมนตท์ าใหเ้ กิดชิ้นส่วนไม่เท่ากนั (Dynamic partitioning) ซ่ึงลดปัญหาการสูญเสีย พ้ืนท่ี (Internal fragmentation) 3.5.1 การนาวธิ ีการแบง่ เป็นเซ็กเมนตม์ าใชใ้ นหน่วยความจาเสมือน 3.5.2 การรวมวธิ ีการแบ่งเป็นหนา้ กบั การแบง่ เป็ นเซ็กเมนตเ์ ขา้ ดว้ ยกนั 3.6 ปฏบิ ตั กิ ารฝึ กเขยี นแผนภาพ และฝึ กเปลย่ี น RAM - ฝึกเปลี่ยน RAM บน mainboard และศึกษารุ่นต่าง ๆ ท่ีมีในปัจจุบนั - ฝึกเขียนแผนภาพแสดงการสบั เปล่ียนแบบต่าง ๆ - คน้ ควา้ ขอ้ มูลเก่ียวกบั การจดั การหน่วยความจา จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทนนาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://www.sci.csuhayward.edu/~billard/cs4560/node15.html (Page replacement) + http://www.fareastern.ac.th/acad/bc/pichate/os_c9/chapter9.htm + http://www.pantipprice.com
หน่วยท่ี 6. การจดั เวลาซีพยี ู (CPU Scheduling)สาระการเรียนรู้1. Scheduling Criteria2. Scheduling Algorithms3. Algorithm Evaluationจุดประสงค์การสอน1. เขา้ ใจหลกั การของ Scheduling Criteria2. สามารถอธิบายลกั ษณะของ Scheduling Algorithms แต่ละแบบได้3. เขา้ ใจ Algorithm Evaluation4. สามารถแสดงการทางานของ Algorithms แต่ละแบบได้บทนา เม่ือมีหลายโปรเซสเขา้ ใชห้ น่วยประมวลผลพร้อมกนั แบบ multiprogramming จึงตอ้ งมี เทคนิคในการจดั การ หรือเขา้ ใชห้ น่วยประมวลผลใหเ้ กิดประสิทธิภาพสูงสุด จึงเป็นหนา้ ที่ ของระบบปฏิบตั ิการในการจดั การ 6.1 Scheduling Criteria 6.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 eachprocess becomes ready, it joins the ready queue. When the currently running processceases 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 longprocessed inherent in FCFS is the SPN. This is a non-preemptive algorithm in which theprocess with the shortest expected processing time is selected next. Thus a short processwill jump to the head of the queue past longer jobs.Shortest Remaining Time (SRT): SRT algorithm is a preemptive version of SPN. In thiscase, the scheduler always chooses the process that has the shortest expected remainingprocessing time. When a new process joins the ready queue, it may in fact have a shorterremaining time than the currently running process. SRT does not have the bias in favor oflong processes found in FCFS.6.2.3 การจดั เวลาตามลาดบั ความสาคญั (Priority Scheduling)การจดั คิวแบบลาดบั ความสาคญั (priority queue) คิวแบบลาดบั ความสาคญั มีลกั ษณะแตกต่างกบั คิวธรรมดา ภายในคิวจะมีการจดั เรียงลาดบั ของโปรเซสต่าง ๆ ตามลาดบัความสาคญั ของโปรเซสน้นั โปรเซสที่อยตู่ น้ คิวจะมีลาดบั ความสาคญั มากที่สุด และลดลงเร่ือย ๆ โปรเซสท่ีอยทู่ า้ ยคิวคือโปรเซสท่ีมีลาดบั ความสาคญั ต่าสุด การคดั เลือกโปรเซสจะเอาโปรเซสที่อยตู่ น้ คิว (มีลาดบั ความสาคญั สูงสุด) เขา้ ไปครอบครองซีพยี กู ่อน ดงั น้นัถึงแมว้ า่ โปรเซสที่เขา้ คิวทีหลงั แต่มีลาดบั ความสาคญั สูงกวา่ ก็อาจไดเ้ ขา้ ไปครอบครองซีพียกู ่อน โปรเซส E เขา้ คิวเป็นโปรเซสหลงั สุด แตจ่ ะไดค้ รอบครองซีพียกู ่อนโปรเซส Cและ D
6.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 และเป็นผลท่ีเกิดข้ึนจากการจดั คิวแบบ RR Round 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 วนิ าที [img]queuemodel.png[/img] 6.3.3 วธิ ีจาลองสถานการณ์ (Simulations) วธิ ีน้ีจะพฒั นาโปรแกรมคอมพิวเตอร์ข้ึนมา เสมือนเป็นหุ่นจาลอง พร้อมกาหนดสถาพ แวดลอ้ ม และตวั แปรคานวณเวลาใหอ้ ยใู่ นการควบคุม โดยเวลาของสถานการณ์กาหนดได้ 2 แบบคือ แบบสุ่ม หรือแบบขอ้ มลู จริง นอกจากน้นั ยงั ตอ้ งมี trace tape เกบ็ ขอ้ มูลใน ช่วงเวลาต่าง ๆ และนามาเปรียบเทียบ สาหรับวธิ ีการน้ีตอ้ งอาศยั เวลา และคา่ ใชจ้ ่าย เพอื่ ให้ ไดผ้ ลลพั ธ์ท่ีเที่ยงตรง 6.3.4 วธิ ีติดต้งั จริง (Implementation) วธิ ีน้ีไมน่ ิยมปฏิบตั ิ แมแ้ บบจาลองจะไมม่ ีทางเหมือนจริง จึงมีแนวคิดวา่ เขียนข้ึนมาใชจ้ ริง เพื่อใหไ้ ดข้ อ้ มลู จริง แต่วธิ ีน้ีตอ้ งลงทุนสูงมาก นอกจากตอ้ งเขียนโปรแกรมของอลั กอริทึม แต่ละตวั ยงั ตอ้ งใชเ้ วลา และแรงงานเปล่ียนการทางานของโปรแกรม การจดั การระบบ เพอ่ื ให้รองรับอลั กอริทึมแบบตา่ ง ๆที่จะนามาทดลอง ซ่ึงแตล่ ะอลั กอริทึมอาจตอ้ งการ ฮาร์ดแวร์ที่พิเศษ และคอมพิวเตอร์กม็ ิไดเ้ ปล่ียนอุปกรณ์กนั ไดง้ ่าย6.4 ปฏบิ ัติการเขยี นอลั กอริทมึ - ฝึกเขียน Scheduling แบบต่าง ๆ - คน้ ควา้ ขอ้ มูลเกี่ยวกบั การจดั เวลาซีพยี ู จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทน
นาเสนอหนา้ ช้นัแนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน+ http://gaia.ecs.csus.edu/~zhangd/oscal/pscheduling.html (Demo แสดงจาก .class)+ http://scitec.uwichill.edu.bb/cmp/online/cs31l/module3.ppt+ http://www.secs.oakland.edu/~srodawa/courseware/cse450/sp01/slides/ch06.ppt+ http://www.utdallas.edu/~ilyen/animation/cpu/program/manual.html (มี .java)+ http://www.fareastern.ac.th/acad/bc/pichate/os_c11/chapter11.htm
หน่วยท่ี 7. ระบบรับ และแสดงผล (Input/Output systems)สาระการเรียนรู้1. อุปกรณ์รับ และแสดงผล2. Application I/O Interface3. Kernel I/O Subsystemจุดประสงค์การสอน1. เขา้ ใจอุปกรณ์รับ และแสดงผล2. เขา้ ใจ Application I/O Interface3. เขา้ ใจ Kernel I/O Subsystem4. สามารถบอกไดว้ า่ อุปกรณ์ใดเป็นอุปกรณ์ input หรือ output5. สามารถติดต้งั อุปกรณ์ I/O ใหมไ่ ด้บทนา อุปกรณ์ท่ีปะติดกบั คอมพวิ เตอร์มีมากมายที่ผใู้ ชร้ ู้จกั และมีหนา้ ที่เชื่อมต่อแตกตา่ งกนั ไป เช่น ส่งเป็นตวั อกั ษร หรือเป็ นชุดตวั อกั ษร เขา้ ถึงแบบ Sequentially หรือ Randomly ส่ง ขอ้ มูลแบบ Synchronously หรือ Asynchronously บางอุปกรณ์ Dedicated หรือ Shared บาง อุปกรณ์ Read-only หรือ Read-write และทุกอุปกรณ์ความเร็วสูงต่าตา่ งกนั อปุ กรณ์เมื่อแยกตามชนิดข้อมูลสามารถแยกได้ 2 ประเภท 1. อุปกรณ์ชนิดขอ้ มลู เป็นสาย (stream) อุปกรณ์ประเภทน้ีขอ้ มลู ท่ีส่งเขา้ ออกจะเรียงมาเป็น ลาดบั ก่อน-หลงั การแบง่ แยกขอ้ มูลทาไดโ้ ดยตรวจสอบลาดบั ของขอ้ มลู อุปกรณ์ประเภทน้ี สามารถจดั การไดง้ ่าย เพียงแต่จดั การรับ-ส่งขอ้ มลู ใหถ้ ูกตอ้ งก็เพยี งพอแลว้ ตวั อยา่ งของ อุปกรณ์ชนิดน้ีไดแ้ ก่ คียบ์ อร์ด ซ่ึงขอ้ มูลท่ีส่งเขา้ มาในระบบจะเป็นไปตามลาดบั การกดคีย์ คียใ์ ดถูกกดก่อนกจ็ ะถูกส่งมาก่อน เครื่องพมิ พท์ ี่จดั อยใู่ นอุปกรณ์ประเภทน้ี ขอ้ มูลที่ถูก ส่งออกไปก่อนก็จะถูกพมิ พก์ ่อน ขอ้ มลู ท่ีถูกส่งไปทีหลงั จะถูกพิมพท์ ีหลงั 2. อุปกรณ์ชนิดขอ้ มูลไม่เป็ นสาย (non-stream) อุปกรณ์ประเภทน้ี ขอ้ มลู ท่ีส่งและรับไม่ ข้ึนอยกู่ บั ลาดบั การส่ง เราตอ้ งอาศยั ขอ้ มลู เพิม่ เติมเพื่อท่ีจะแยกแยะขอ้ มลู แต่ละตวั การ จดั การอุปกรณ์ประเภทน้ี ระบบปฏิบตั ิการจะตอ้ งมีวธิ ีจดั การโดยเฉพาะ ข้ึนอยกู่ บั ลกั ษณะ ของอุปกรณ์ชนิดน้นั ๆ ตวั อยา่ งอุปกรณ์ชนิดน้ี เช่น จอภาพ ขอ้ มูลหรือตวั อกั ษรท่ีส่งไปให้ จอภาพแสดงน้นั จะตอ้ งส่งไปในตาแหน่งท่ีถูกตอ้ ง ตาแหน่งของตวั อกั ษรที่แสดงอยบู่ น จอภาพแตล่ ะตวั จะมีแอดเดรสประจาตาแหน่งน้นั ๆ เม่ือเราส่งตวั อกั ษรไปยงั แอดเดรสใด ตวั อกั ษรก็จะปรากฎอยบู่ นจอภาพ ณ ตาแหน่งแอดเดรสน้นั ๆ ดงั น้นั จะเห็นไดว้ า่ การส่ง ตวั อกั ษรไปใหจ้ อภาพไม่จาเป็นตอ้ งลาดบั การส่งที่ถูกตอ้ ง แตต่ อ้ งการแอดเดรสที่ตรงกบั
ตาแหน่งเท่าน้นั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 transmissionbegins. Contrast with an interrupt-driven system, in which the terminal generates a signalwhen it has data to send.(2) A technique that continually interrogates a peripheral device to see if it has data totransfer. For example, if a mouse button was pressed or if data is available at acommunications port. Contrast with event-driven or interrupt-driven techniques, in whichthe 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/O 2. initiates I/O 3. input ready, output complete, or error generates interrupt signal 4. CPU receiving interrupt, transfers control to interrupt handler 5. interrupt handler processes data, returns from interrupt 6. CPU resumes processing of interrupted task 7. CPU executing checks for interrupts between instructions [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 1 DMA คือ วงจรพเิ ศษที่ออกแบบมาเพื่อส่งขอ้ มลู ระหวา่ ง หน่วยความจา ถึงหน่วยความจา โดยไม่ใชก้ ารทางานของ 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 X 2. device driver tells disk controller to transfer C bytes from disk to buffer at address X 3. disk controller initiates DMA transfer 4. disk controlelr sends each byte to DMA controller 5. DMA controller transfers bytes to buffer X, increasing memory address and decreasing c until c = 0 6. when c = 0, DMA interrupts CPU to signal transfer completetion [img]http://www.infocom.cqu.edu.au/Units/win2000/85349/Resources/Lectures/pics/12_ 7.gif[/img]
ความเร็วของอปุ กรณ์ต่าง ๆอุปกรณ์ ความเร็วคียบ์ อร์ด 10 Bpsเมาส์ 100 Bpsโมเดม็ 56 KB 7 KBpsแชนแนลโทรศพั ท์ 8 KBpsคูส่ าย ISDN 16 KBpsเครื่องพิมพเ์ ลเซอร์สแกนเนอร์ 100 KBpsอีเธอร์เน็ต (Classic) 400 KBpsUSB (Universal serial bus) 1.2 MBpsดิจิทอลแคมคอร์ดเดอร์ 1.5 MBpsดิสก์ IDEซีดีรอม 40X 4 MBpsอีเทอร์เน็ต (Fast) 5 MBpsบสั ISA 6 MBpsดิสก์ EIDE (ATA-2) 12.5 MBpsFireWire (IEEE 1394) 16.7 Bpsมอนิเตอร์ XGA 16.7 MBpsเน็ตเวริ ์ค SONET OC-12 50 MBpsดิสก์ SCSI Ultra 2 60 MBpsอีเธอร์เน็ต (Gigabit) 78 MBpsเทป Ultrium 80 MBpsบสั PCI 125 MBpsSUN Gigaplane XB backplane 320 MBps 528 MBps 20 GBps
7.2 Application I/O Interface 7.2.1 Block and character devices โดยปกติระบบปฏิบตั ิการจะคาดหวงั การเชื่อมตอ่ ผา่ น read() write() หรือ seek() ซ่ึงเป็ น อุปกรณ์ส่งขอ้ มูลแบบ simple linear array of block หรือ raw I/O ตวั อยา่ งอุปกรณ์แบบน้ีท่ี เห็นไดช้ ดั ท่ีสุดกค็ ือ keyboard 7.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 devicesaspect variation exampledata-transfer mode character terminal block diskaccess method sequential modem random CD-ROMtransfer schedule synchronous tape asynchronous keyboardsharing dedicated tape sharable keyboarddevice speed latency seek time
I/O direction transfer rate CD-ROM delay between operations graphics controller disk read only write only read-write7.3 Kernel I/O Subsystem Kernel คือแก่นของระบบ ที่ใหบ้ ริการตา่ ง ๆ มากมาย และสมั พนั ธ์กบั I/O ดา้ นตา่ ง ๆ หรือ กล่าวไดว้ า่ ท้งั 6 เร่ืองต่อไปน้ี คือระบบยอ่ ยของการจดั การภายใน kernel ที่เกี่ยวกบั I/O 7.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 structures [img]http://www.humblepie.com/graphics/diskcacheread1.jpg[/img] 7.4 ปฏบิ ัติการตดิ ต้งั อุปกรณ์เพมิ่ เติม - ฝึกติดต้งั อุปกรณ์ใหม่เพ่ิมเขา้ ไป - ฝึกตรวจสอบความเร็วของอุปกรณ์ input และ output ต่าง ๆ - ฝึกเขียนแผนภาพแสดงการเชื่อมต่อระหวา่ ง CPU กบั I/O controller - คน้ ควา้ ขอ้ มูลเกี่ยวกบั ระบบรับ และแสดงผล จากอินเทอร์เน็ต แลว้ ทา รายงาน และส่งตวั แทนนาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://infocom.cqu.edu.au/Courses/aut2001/85349/Resources/Lectures/1 2/allSlides.html (ภาพต่าง ๆ เกี่ยวกบั I/O) + http://www.techweb.com/encyclopedia/defineterm.jhtml?term=polling
หน่วยท่ี 8. ระบบแฟ้ ม (File system)สาระการเรียนรู้1. โครงสร้างระบบแฟ้ ม2. โครงสร้างไดเรกทอร่ี3. วธิ ีการเขา้ ถึง4. การอนุญาตให้เขา้ ถึงแฟ้ มจุดประสงค์การสอน1. เขา้ ใจโครงสร้างระบบแฟ้ ม2. สามารถจดั การกบั โครงสร้างไดเรกทอรี่ได้3. เขา้ ใจวธิ ีการเขา้ ถึง4. สามารถเขียนภาพแสดงการเขา้ ถึงได้5. เขา้ ใจการอนุญาตใหเ้ ขา้ ถึงแฟ้ ม6. สามารถบอกลกั ษณะการอนุญาตเขา้ ถึงแฟ้ มได้บทนา แฟ้ ม หรือไฟล์ (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 และระบบ Filesharingวธิ ีการจดั เก็บขอ้ มูลท่ีใชก้ นั ใน OS ทุกตวั คือ จดั เก็บขอ้ มูลเป็นแฟ้ มขอ้ มูลหรือไฟล์ (file)ไฟลค์ ือส่ิงท่ีบรรจุขอ้ มลู ,โปรแกรมหรืออะไรก็ไดท้ ่ีผใู้ ชต้ อ้ งการรวบรวมไวเ้ ป็ นชุดเดียวกนัการอา้ งถึงไฟลห์ รือขอ้ มลู ต่าง ๆ ภายในไฟลข์ องโปรแกรม จะไม่มีความเก่ียวขอ้ งกบัแอดเดรสของโปรแกรมใด ๆ ท้งั สิ้น OS มีโอเปอร์เรชนั่ พเิ ศษที่เรียกวา่ system call ไวใ้ ห้โปรแกรมเรียกใช้ เพ่ือใหส้ ามารถจดั การงานที่เก่ียวกบั ไฟลไ์ ด้วธิ ีการจัดเกบ็ ไฟล์ทใี่ ช้กนั อยู่ทว่ั ไปมี 3 วธิ ี1. เก็บเป็นไบตเ์ รียงกนั ไป UNIX เกบ็ ไฟลใ์ นลกั ษณะน้ี2. เก็บเป็นเรคคอร์ด เรคคอร์ดจะมีขนาดคงที่สามารถจะอ่านหรือเขียนที่เรคคอร์ดไหนกไ็ ด้แตไ่ มส่ ามารถเพม่ิ หรือลบเรคคอร์ดกลาง ๆ ได้ วธิ ีน้ีใชใ้ น CP/M3. เก็บแบบตน้ ไมห้ รือทรีของบล็อก (ในดิสก)์ แตล่ ะบล็อกจะสามารถมี ก เรคคอร์ด แต่ละเรคคอร์ดจะมีคีย์ (key) เอาไวช้ ่วยในการคน้ หาเรคคอร์ด เรคคอร์ดสามารถเพม่ิ หรือลบออกท่ีใดก็ได้ ถา้ มีเรคคอร์ดถูกเพิ่มเขา้ ไปในบลอ็ กท่ีเตม็ แลว้ บลอ็ กน้นั ก็จะแยกออกเป็ น 2บล็อกใหมใ่ นทรีและจดั เรียงตามลาดบั อกั ษร วธิ ีน้ีใชบ้ นเครื่องระดบั เมนเฟรมหลายเครื่องและเรียกวา่ ISAM (indexed sequential access method)Which File Systems Are There?http://www.linux-knowledge-portal.org/en/content.php?&content/desktop/filesystem.htmlIn Linux there is no such thing as the one and only file system. Linux can handle anumber of file systems. Here a short, by no means exhaustive overview: AFS : a distributed file system, often used in WAN autofs : for automatically mounting file systems/data media to the system, therefore not a real file system devpts : for pseudo-terminals (complies with UNIX'98 specification) ext2 : the standard in Linux ext3 : further development of ext2 (currently beta status), will be able to do journaling hpfs : OS/2 file system iso9960 : standard format for CD-ROMs and DVDs JFS : journaling file system originally developed by IBM for AIX (IBM UNIX); since February 2000 an Open-Source-licensed beta version is available as a
patch for Linux minix : file system from Minix, often used for Linux floppy disks msdos : file system for MS-DOS partitions and floppy disks (short file names) nfs : network file system for UNIX, for reading data on other computers nftfs : Windows NT/2000 file system (read-only access) nwfs : can read a NetWare disk file system proc : process management under /proc ReiserFS : Reiser file system, named after its creator Hans Reiser smbfs : Samba (network file system under Windows) swap : swap partitions or files udf : universal disk format (CD-RWs and DVDs) usbdevfs : for connecting and managing USB devices vfat : DOS/Windows 9x file system (long file names) XFS : journaling file system in UNIX; originally developed by SGI for IRIX, its custom-made UNIX; meanwhile a GPL beta version has become available as a patch for Linux8.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 driver8.2 โครงสร้างไดเรกทอร่ี(Directory structure)Directory หรือ Folder หมายถึง สารบญั ทาหนา้ ที่เก็บรายช่ือแฟ้ มไวใ้ นท่ีเดียวกนั เพื่อให้ผใู้ ชเ้ รียกใชไ้ ด้ และ Directory ก็ถือเป็นแฟ้ มประเภทหน่ึงที่ประกอบดว้ ยหน่วยยอ่ ยตา่ ง ๆเม่ือแบง่ ฮาร์ดดิสกอ์ อกเป็นหลาย partition แต่ละ partition ก็จะมีระบบ directory ของปฏบิ ตั ิการเกยี่ วกบั Directory
1. 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 directory8.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 ไม่มีการพจิ ารณาอ่ืน2. การจดั เวลาแบบเวลาส้นั สุดไดก้ ่อน (SSTF scheduling)นา process ใน queue มาพจิ ารณา และเลือกจุดที่เขา้ ถึงไดเ้ ร็ว จากจุดล่าสุด3. การจดั เวลาแบบ SCAN (SCAN scheduling)อา่ นจากดา้ นหน่ึงไปอีกดา้ นหน่ึงเป็นทิศทางเดียว เมื่อกลบั มาอีกดา้ นกย็ งั ทางานเช่นกนั4. การจดั เวลาแบบ C-SCAN (Circular-SCAN scheduling)อ่านจากดา้ นหน่ึง แต่เป็ นแบบทิศทางเดียวแทจ้ ริง คือการยอ้ นกลบั มาจะไม่บริการ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 totrack 150; move 10 tracks to track 160; etc.Parameter FD 360KB HD รุ่นหน่ึงจานวน cylinder 40 10601จานวน track / cylinder 2 12จานวน sector / track 9 281(ค่าเฉลี่ย)จานวน sector / disk 720 35742000จานวน byte / sector 512 512ความจุดิสก์ 360 KB 18.3 GBเวลาคน้ หา (ใน cylinder ที่ติดกนั ) 6 msec 0.8 msecเวลาคน้ หา (โดยเฉล่ีย) 77 msec 6.9 msecเวลาในการหมุน 200 msec 8.33 msecเวลาท่ีมอเตอร์หมุน และหยดุ 250 msec 20 secเวลาท่ีใชใ้ นการถ่ายโอน 1 sector 22 msec 17 นาโนเซคนั8.4 การอนุญาตให้เข้าถงึ แฟ้ ม (File sharing)1. None2. Knowledge3. Execution4. Reading5. Appending6. Updating7. Changing protection
8. Deletion8.5 ปฏิบัตกิ ารจัดการแฟ้ ม - ฝึกจดั การแฟ้ มในระบบปฏิบตั ิการ DOS - ฝึกจดั การแฟ้ มในระบบปฏิบตั ิการ Windows และการกาหนดสิทธ์ิ - ฝึกจดั การแฟ้ มในระบบปฏิบตั ิการ Linux และการกาหนดสิทธ์ิ - คน้ ควา้ ขอ้ มลู เกี่ยวกบั ระบบแฟ้ ม จากอินเทอร์เน็ต แลว้ ทารายงาน และส่งตวั แทน นาเสนอหนา้ ช้นั แนะนาเวบ็ ไซต์ประกอบการค้นคว้าบางส่วน + http://www.humblepie.com/cs572/cs572notesandimages.html + http://www.cs.wisc.edu/~bart/537/lecturenotes/s28.html + http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-OS/osn/week2.html + http://www.cs.cf.ac.uk/User/O.F.Rana/os/lectureos11/node24.html + http://www.cs.adfa.edu.au/~spike/CSA2/Lectures00/lecture.disk.htm + http://www.fareastern.ac.th/acad/bc/pichate/os_c11/chapter11.htm (ภาพชดั เจนมาก)หน่วยที่ 9. ระบบกระจาย (Distributed system)สาระการเรียนรู้1. ประโยชน์ของระบบกระจาย2. การเชื่อมต่อ (Topology)3. แบบของเครือข่าย (Network Types)4. อีเธอร์เน็ต (Ethernet)จุดประสงค์การสอน1. เขา้ ใจประโยชน์ของระบบกระจาย2. สามารถเขียนภาพแสดงการเช่ือมต่อ (Topology)3. สามารถเขียนภาพแสดงแบบของเครือข่าย (Network Types)4. เขา้ ใจอีเธอร์เน็ต (Ethernet)5. สามารถ share อุปกรณ์ หรือแฟ้ มในเครือขา่ ยได้บทนา การนาเอาเครื่องคอมพวิ เตอร์หลาย ๆ เครื่องมาเช่ือมต่อกนั เพอื่ ตอ้ งการให้ เครื่อง คอมพวิ เตอร์เหล่าน้นั สามารถที่จะส่ง หรือ แลกเปลี่ยนขอ้ มลู ระหวา่ งกนั ได้ แลว้ ทาไมเรา ตอ้ งใชร้ ะบบเครือขา่ ย ลองนึกดูวา่ แต่ก่อนเรามีเครื่องคอมพวิ เตอร์เคร่ืองหน่ึง การทางาน ต่าง ๆ อยบู่ นเคร่ืองเดียว แต่ในองคก์ รที่มีการเพิ่มเครื่องคอมพวิ เตอร์เครื่องท่ีสองข้ึนมา
ความตอ้ งการในการ ที่จะตอ้ งมีการนาขอ้ มูลจากเคร่ืองหน่ึง ไปยงั อีกเครื่องหน่ึงคงหนีไม่ พน้ ที่ตอ้ งใช้ Diskette แลกเปลี่ยนขอ้ มูลระหวา่ งเครื่องคอมพิวเตอร์ท้งั สองเคร่ือง แต่ถา้ เป็น ระบบเครือขา่ ยจะแลกเปล่ียนขอ้ มลู ระหวา่ งเครื่องคอมพิวเตอร์ไดง้ ่ายมาก ระบบเครือขา่ ย ท่ีกระจายหนา้ ท่ี กระจายการเป็นศูนยบ์ ริการ และเชื่อมตอ่ เขา้ ดว้ ยกนั ดว้ ย จุดประสงคต์ า่ ง ๆ กนั ในมาตรฐาน TCP/IP ซ่ึงเป็นที่ยอมรับท้งั Windows, Linux, Unix และ Mac ทาใหท้ ้งั หมดสามารถส่ือสารกนั รู้เร่ืองเขา้ ใจ และก่อใหเ้ กิดประโยชนร์ ่วมกนั Distrubuted systems depend on networking for their functionality. By being able to communicate, distrubuted systems are able to share computational tasks and provide a rish set of features to users. 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.htm9.3 แบบของเครือข่าย (Network Types) เครื่อข่ายที่พจิ ารณาจาก distance แบง่ ได้ 3 ประเภท 1. LAN (Local Area Network)
Search