Powered By Blogger

วันจันทร์ที่ 4 กันยายน พ.ศ. 2560

ภาษาคอมพิวเตอร์และการจัดการหน่วยคอมพิวเตอร์

ภาษาคอมพิวเตอร์

ชนิดของภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์เริ่มมาจากในมหาวิทยาลัย หรือในหน่วยงานของรัฐบาลที่ต้องการทำงานบางอย่าง นอกจากนี้ บางภาษาเกิดขึ้นเพราะความต้องการด้านวิทยาศาสตร์ วิศวกรรมศาสตร์และอื่น ๆ อีกมากมาย ทำให้มีภาษาเกิดขึ้นเป็นจำนวนมาก
จากการที่มีภาษาจำนวนมากมายนั้น ทำให้ต้องกำหนดระดับของภาษาคอมพิวเตอร์ เพื่อช่วยในการแบ่งประเภทของภาษาเหล่านั้น การกำหนดว่าเป็นภาษาระดับต่ำหนือภาษาระดับสูง จะขึ้นอยู่กับภาษานั้นใกล้เคียงกับเครื่องคอมพิวเตอร์ (ใกล้เคียงกับรหัส 0 และ 1 เรียกว่า ภาษาระดับต่ำ) หรือว่าใกล้เคียงกับภาษาที่มนุษย์ใช้ (ใกล้เคียงกับภาษาอังกฤษ เรียกว่า ภาษาระดับสูง)
ภาษาเครื่อง (Machine Language)
ก่อนปีค.ศ. 1952 มีภาษาคอมพิวเตอร์เพียงภาษาเดียวเท่านั้นคือ ภาษาเครื่อง (Machine Language) ซึ่งเป็นภาษาระดับต่ำที่สุด เพราะใช้เลขฐานสองแทนข้อมูล และคำสั่งต่าง ๆ ทั้งหมดจะเป็นภาษาที่ขึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ หรือหน่วยประมวลผลที่ใช้ นั่นคือปต่ละเครื่องก็จะมีรูปแบบของคำสั่งเฉพาะของตนเอง ซึ่งนักคำนวณและนักเขียนโปรแกรมในสมัยก่อนต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งต่า ๆ ทำให้การเขียนโปรแกรมยุ่งยากมาก นักคอมพิวเตอร์จึงได้พัฒนาภาษาแอสเซมบลีขึ้นมาเพื่อให้สามารถเขียนโปรแกรมได้ง่ายขึ้น
ภาษาแอสเซมบลี (Assembly Language)
ต่อมาในปีค.ศ. 1952 ได้มีการพัฒนาโปรแกรมภาษาระดับต่ำตัวใหม่ ชื่อภาษาแอสเซมบลี (Assembly Language) โดยที่ภาษาแอสเซมบลีใช้รหัสเป็นคำแทนคำสั่งภาษาเครื่อง ทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้ง่ายขึ้น ถึงแม้ว่าการเขียนโปรแกรมจะยังไม่สะดวกเท่ากับการเขียนโปรแกรมภาษาอื่น ๆ ในสมัยนี้ แต่ถ้าเปรียบเทียบในสมัยนั้นก็ถือว่าเป็นการพัฒนาไปสู่ยุคของการเขียนโปรแกรมแบบใหม่ คือใช้สัญลักษณ์แทนเลข 0 และ 1 ของภาษาเครื่อง ซึ่งสัญลักษณ์ที่ใช้จะเป็นคำสั่งสั้น ๆ ที่จะได้ง่าย เรียกว่า นิมอนิกโคด (mnemonic code) เช่น
สัญลักษณ์นิวมอนิกโคด
ความหมาย
A
C
MP
STO
การบวก (Add)
การเปรียบเทียบ (Compare)
การคูณ (Muliply)
การเก็บข้อมูลในหน่วยความจำ (Store)
ตัวอย่างนิวมอนิกโคด
ถึงแม้ว่านิวมอนิกโคดที่ใช้จะไม่ใช้คำในภาษาอังกฤษ แต่ก็เป็นสัญลักษณ์ที่สื่อความหมายให้ผู้ใช้สามารถจดจำได้ง่ายกว่าสัญลักษณ์เลข 0 และ 1 ผู้เขียนโปรแกรมภาษาแอสเซมบลียังสามารถกำหนดชื่อของที่เก็บข้อมูลในหน่วยความจำเป็นคำในภาษาอังกฤษ แทนที่จะเป็นเลขที่ตำแหน่งในหน่วยความจำ เช่น TOTAL , INCOME เป็นต้น แต่ข้อจำกัดของภาษาภาษาแอสเซมบลี คือ จะแตกต่างกันไปในแต่ละเครื่องเช่นเดียวกับภาษาเครื่อง ผู้เขียนโปรแกรมภาษาแอสเซมบลีต้องใช้ แอสเซมเบลอ (Assembler) แปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง เพื่อให้คอมพิวเตอร์ทำงานตามต้องการ
ภาษาระดับสูง (High Level Language)
ในปีค.ศ. 1960 ได้มีการพัฒนา ภาษาระดับสูง (High Level Language) ขึ้น ภาษาระดับสูงจะใช้คำในภาษาอังกฤษแทนคำสั่งต่าง ๆ รวมทั้งสามารถใช้นิพจน์ทางคณิตศาสตร์ได้ด้วย ทำให้นักเขียนโปรแกรมสามารถใช้เวลามุ่งไปในการศึกษาถึงทางแก้ปัญหาเท่านั้น ไม่ต้องเป็นกังวลว่าคอมพิวเตอร์จะทำงานอย่างไรอีกต่อไป
ภาษาระดับสูงนี้ถือว่าเป็น ภาษายุคที่สาม (third-generation language) ซึ่ง ทำให้เกิดการประมวลผลข้อมูลเพิ่มมากขึ้นอย่างมหาศาลระหว่างปี ค.ศ. 1960 ถึง ค.ศ. 1970 และมีผู้หันมาใช้คอมพิวเตอร์กันมากขึ้น โดยสังเกตได้จามเครื่องเมนเฟรมจากจำนวนร้อยเครื่องเพิ่มขึ้นเป็นหมื่น เครื่อง อย่างไรก็ตาม ภาษาระดับสูงก็ยังคงต้องการตัวแปลภาษาให้เป็นภาษาเครื่องเพื่อสั่งให้ เครื่องทำงานต่อไป ตัวแปลภาษาที่นิยมใช้งานกันโดยทั่วไปจะเป็นแบบคอมไพเลอร์ ซึ่งแต่ละภาษาก็มีคอมไพเลอร์ไม่เหมือนกัน รวมทั้งคอมไพเลอร์แต่ละตัวก็จะต่างกันไปบนเครื่องแต่ละชนิดด้วย เช่น ถ้าเขียนโปรแกรมภาษา COBOL บนเครื่องไมโครคอมพิวเตอร์ ก็จะต้องเลือกใช้คอมไพเลอร์ภาษา COBOL ที่ทำงานบนเครื่องไมโครคอมพิวเตอร์ ซึ่งการเขียนโปรแกรมภาษาหนึ่งภาษาใดบนเครื่องที่ต่างกันอาจจะแตกต่างกันได้ เพราะคอมไพเลอร์ที่ใช้ต่างกันนั่นเอง
ภาษาคอมพิวเตอร์บางภาษาได้ถูออแบบมาให้ใช้แก้ปัญหางานเฉพาะบางอย่าง เช่น การควบคุมหุ่นยนต์ การสร้างภาพกราฟฟิก เป็นต้น แต่ภาษาคอมพิวเตอร์โดยมากจะมีความยืดหยุ่นให้ใช้งานทั่ว ๆ ไปได้ เช่น ภาษา BASIC ภาษา COBOL หรือภาษา FORTRAN เป็นต้น และนอกจากนี้ยังมีภาษา C ที่ได้รับความนิยมมากเช่นกัน
ภาษาระดับสูงมาก (Very high-level Language)
เป็นภาษายุคที่ 4 (fourth-generation language) หรือ 4GLs จะเป็นภาษาที่ใช้เขียนโปรแกรมได้สั้นกว่าภาษาในยุคก่อน ๆ การทำงานบางอย่างสามารถใช้เพียง 5 ถึง 10 บรรทัดเท่านั้น ในขณะที่ถ้าเขียนด้วยภาษา อาจต้องใช้ถึง 100 บรรทัด โดยพื้นฐานแล้ว ภาษาในยุคที่ 4 นี้มีคุณสมบัติที่แยกจากภาษาใยุคก่อน ๆ อย่างชัดเจน กล่าวคือภาษาในยุคก่อนนั้นใช้หลักการของ การเขียนโปรแกรมแบบโพรซีเยอร์ (procedurl language) ในขณะที่ภาษาในยุคที่ 4 จะเป็นแบบ ไม่ใช้โพรซีเยอร์ (nonprocedurl language) ผู้เขียนโปรแกรมเพียงแต่กำหนดว่าต้องการให้โปรแกรมทำอะไรบ้างก็สามารถเขียนโปรแกรมได้ทันที โดยไม่ต้องทราบว่าทำได้อย่างไร ทำให้การเขียนโปรแกรมสามารถทำได้ง่ายและรวดเร็ว

ตัวอย่างภาษาในยุคต่างๆ ดังนี้
Fortran : ภาษาระดับสูงภาษาแรก เป็นภาษาโปรแกรมที่ใช้งานด้านวิทยาศาสตร์ วิศวกรรมศาสตร์ และด้านคณิตศาสตร์ ภาษาฟอร์เทนจะประกอบด้วยข้อความ คำสั่ง ทีละบรรทัด
Colbol : ภาษาโปรแกรมสำหรับธุรกิจ ที่มีลักษณะคล้ายกับภาษาอังกฤษ และที่สำคัญคือ เป็นภาษาโปรแกรมที่อิสระจากเครื่อง หมายความว่า โปรแกรมที่เขียนขึ้นใช้งานบนคอมพิวเตอร์ชนิดหนึ่งเพียงแค่ปรับปรุงเล็กน้อยก็สามารถรันได้บนคอมพิวเตอร์อีกชนิดหนึ่ง
Basic : ภาษาโปรแกรมสำหรับผู้เริ่มต้น เป็นภาษาโปรแกรมที่เรียนรู้ง่าย ไม่ซับซ้อน เหมาะสำหรับใช้ในวงการศึกษา
Pascal : เป็นภาษาสำหรับการเรียนการสอนโดยเฉพาะ เป็นภาษาที่เขียนง่าย ใช้ถ้อยคำน้อย
Ada : ภาษามาตรฐาน ซึ่งพัฒนาขึ้นโดย โปรแกรมเมอร์คนแรก คือ เคาต์ Add Lovelace เป็นภาษาที่ประสบความเร็จกับงานด้านธุรกิจ
C : ภาษาสมับใหม่ เป็นภาษาที่ใช้สำหรับเขียนโปรแกรมระบบปฎิบัติการ เหมาะสำหรับโปรแกรมเมอร์ที่มีความสามารถสูง
ALGOL : เป็นภาษาที่ใช้เขียนโปรแกรมด้านวิทยาศาสตร์
LISP : เป็นภาษาที่ใช้เมื่อประมวลผลด้านสัญลักษณ์, อักขระ,หรือคำต่างๆ ซึ่งเป็นการได้ตอบระหว่างคนกับคอมพิวเตอร์ ภาษานี้นิยมใช้เขียนโปรแกรมด้านปัญญาประดิษฐ์
Prolog : เป็นภาษาโปรแกรมสำหรับงานด้านปัญญาประดิษฐ์ ซึ่งแทนการใช้ภาษาLISP
PL/1 : เป็นภาษาที่เรียนรู้ง่าย ใช้งานทั้งด้านวิทยาศาสตร์ และด้านธุรกิจ ดังนั้นภาษานี้จะมีขนาดใหญ่ มี option มาก
ALP : เป็นภาษที่เหมาะสมกับการทำตาราง มีสัญลักษณ์ต่างๆ มาก
Logo : เป็นภาษาย่อยของ lisp เป็นโปรแกรมสำหรับเด็ก มีการสนทนาโต้ตอบกับคอมพิวเตอร์ โดยใช้ “เต่า” เป็นสัญลักษณ์โต้ตอบกับคำสั่งง่ายเช่น forward, left
Pilot : เป็นภาษาโปรแกรมที่นิยมใช้มากที่สุดในการเขียนโปรแกรมบทเรียนคอมพิวเตอร์ช่วยสอน(CAI) เช่น งานเกี่ยวกับคำสั่ง ฝึกหัด การทดสอบ เป็นต้น
Smalltalk : เป็นภาษาเชิงโต้ตอบกับเครื่องคอมพิวเตอร์ประกอบด้วยการจำ และการพิมพ์ เป็นภาษาที่สนับสนุนระบบคอมพิวเตอร์ภาพ เป็นภาษาเชิงวัตถุไม่ใช่เชิงกระบวนการ
Forth : เป็นภาษาสำหรับงานควบคุมแบบทันที เช่นการแนะนำกล้องดาราศาสตร์ และเป็นภาษาโปรแกรมที่มีความเร็วสูง
Modula-2 : คล้ายคลึงกับภาษาปาสคาล ออกแบบมาเพื่อให้เขียนซอฟต์แวร์ระบบ
RPG : เป็นภาษาเชิงปัญหา ออกแบบมาเพื่อใช้แก้ปัญหาการทำรายงานเชิงธุรกิจ เช่น การปรับปรุงแฟ้มข้อมูล

การจัดการหน่วยคอมพิวเตอร์

การจัดการไฟล์ (File Management)
ความหมายของไฟล์ (Files) เป็นหน่วยเก็บข้อมูลในคอมพิวเตอร์ ซึ่งอาจจะเก็บอยู่ในสื่อเก็บบันทึกข้อมูลต่างๆ เช่น HDD CD-ROM FLOPPYDISK อ้างอิงชื่อ และส่วนขยายตามกติกาต่อไปนี้- ชื่อไฟล์ (file name) ตั้งได้มากสุด 256 อักขระ
– ส่วนขยาย (extensions) เป็นส่วนที่ช่วยให้ระบบปฏิบัติการเข้าใจรูปแบบหรือชนิดของไฟล์ได้ง่ายมากยิ่งขึ้น ประกอบด้วยอักขระ 3-4 ตัว เขียนต่อจากชื่อไฟล์คั่นด้วยเครื่องหมาย “.” เทียบได้กับนามสกุลของไฟล์ บางระบบซ่อนไว้ ต้องตั้งค่าเพิ่ม
– ลำดับโครงสร้างไฟล์ (Hierarchical File System) ปกติระบบปฏิบัติการจะจัดเก็บข้อมูลที่มีโครงสร้างแบบลำดับชั้น แบ่งออกเป็น 2 ส่วนย่อยคือ Directory เป็นโฟลเดอร์หลักบางครั้งเรียกว่า root directory ส่วน Sub-Directory เป็นโฟลเดอร์ย่อยลงไปอีก

ผังแสดงการเก็บโฟลเดอร์
ที่มา : http://learners.in.th/file/handyman/view/116379
การจัดการหน่วยความจำ (Memory Management)
ถ้าหน่วยความจำไม่พอ ในกรณีที่มีข้อมูลปริมาณมาก หรือทำงานหลายๆโปรแกรมพร้อมกัน จะแก้ปัญหาโดยวิธีการที่เรียกว่า หน่วยความจำเสมือน (VM-Virtual memory) โดยใช้เนื้อที่ของหน่วยเก็บข้อมูลสำรอง เช่น HDD การเก็บข้อมูลที่ทำงานอยู่ในขณะนั้นเอาไว้เป็นไฟล์ในฮาร์ดดิสก์เรียกกว่า Swap file และแบ่งหน้าเหล่านั้นเป็น page จากนั้น OS จะเลือกเฉพาะข้อมูลในเพจที่กำลังจะใช้นั้นเข้าสู่หน่วยความจำ RAM
การจัดการอุปกรณ์นำเข้าและแสดงผลข้อมูล (I/O Device Management)
อัตราการส่งข้อมูลของอุปกรณ์ช้ากว่า CPU ดังนั้น OS จึงต้องเตรียมพื้นที่ส่วนหนึ่ง Buffer เพื่อเป็นที่พักรอของข้อมูลที่อ่านเข้ามาหรือเตรียมส่งออกไปยังอุปกรณ์แสดงผลต่างๆ กรณีของเครื่องพิมพ์ ข้อมูลที่ส่งไปพิมพ์มีขนาดใหญ่มาก หรือในกรณีที่สั่งพิมพ์หลายๆงานพร้อมๆกัน ดังนั้นต้องทำตามลำดับงาน จะสลับหรือผสมกันไม่ได้ ดังนั้นต้องเก็บไว้ใน HDD ก่อนเพราะเร็วกว่าการเขียนข้อมูลไปที่เครื่องพิมพ์ เรียกระบบนี้ว่า spooling ทำให้สามารถยกเลิกงานที่ต้องการในคิวได้อีกด้วย OS จะเรียกใช้ดีไวซ์ไดรเวอร์ (device driver) เพื่อควบคุมอุปกรณ์ชนิดนั้นๆและให้เครื่องคอมพิวเตอร์สามารถติดต่อสื่อสารรวมถึงสั่งงานบางอย่างได้ ซึ่งมีความจำเป็นอย่างมาก เนื่องจากอุปกรณ์ต่างรูปแบบต่างยี่ห้อก็มีวิธีการสั่งงานต่างกัน เป็นการยากที่จะเก็บวิธีการติดต่ออุปกรณ์เหล่านั้นไว้ทั้งหมดผู้ผลิต OS จึงต้องให้ผู้ผลิตอุปกรณ์ต้องให้ไดร์เวอร์ด้วย เพื่อให้ผู้ใช้นำมาติดตั้ง OS ใหม่ๆมีระบบ plug & play ทำให้เชื่อมต่ออุปกรณ์แล้วใช้งานได้เลย โดย OS จะติดตั้งไดร์เวอร์ให้อัตโนมัติ
การจัดการกับหน่วยประมวลผลกลาง (CPU Management)
ในระบบที่มี Multi-tasking ตัว OS จะทำการแบ่งเวลาให้กับงานแต่ละงาน เร็วมากจนเหมือนว่าทำได้หลายๆงานพร้อมกัน ในระบบที่มี Multi-user ก็เช่นเดียวกัน OS จะทำการแบ่งเวลาให้แต่ละคน ดูเหมือนว่าทำงานได้หลายๆคนพร้อมกัน Multi-processing ทำงานได้หลายๆคำสั่งในเวลาเดียวกัน ข้อดีคือ ถ้า ซีพียูตัวใดตัวหนึ่งเสียก็สามารถยังทำงานได้อยู่ แต่ต้องก็ยอมรับว่าจะมีเวลาบางส่วนหายไปเพราะต้องใช้ในการประสานงาน และมีงานบางงานที่ไม่สามารถทำพร้อมๆกันได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

ความหมายของซอฟต์แวร์และประเภทของซอฟต์แวร์

ความหมายของซอฟต์แวร์ ซอฟต์แวร์ (software) หมายถึงชุดคำสั่งหรือโปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงหมายถึงลำดับขั้น...