Wednesday, May 18, 2011

310200-Introduction to Computer Systems

เนื้อหาที่ใช้สอบ - ทุกเรื่องที่มีการสอนในชั้นเรียน เน้นที่เนื้อหาหลังสอบกลางภาค

ประกอบด้วย
... - การบีบอัดข้อมูลแบบต่างๆ
Compression :
Data1 -----Compression------>Data2
Data2 -----Discompression--->Data3
ถ้า Data3LZ77
-Triple ×××××× (x,y,z)
x : ตำแน่งที่นับจาขวาไปซ้าย
y : จำนวนตัวที่ต้องตัดมาเพิ่มข้างขวาข้อมูล โดยนับจากตำแน่งที่ได้นับช้ายไปขวา
z : ค่าตัวเดียวที่ต้องเพิ่มสุดทัายข้างขวาขัอมูล


- หน่วยเก็บข้อมูลความจุสูง (Mass storage) หรือหน่วยความจำรอง เน้นที่ HDD
HDD : Hard Disk Drive
-ความจุสูงมาก
-อยู่ใน Harddisk มีจากแม่เลข mixed by metal : Fe,Co,Ni,Sn ที่เก็บข้อมูลเป็น Sector และ Track
-Platter : จากแม่เลขใน HDD **ถ้ามี Platter มาก แล้วการคนหาข้อมูลจาก Sector และ Track ก็ได้เร็วขื้น
-Sector is the smallest area on platter which is 1 sector = 512 byte (HHD of standard PC)
-มีความรอบคงที่ Constance RPM (Round Per Minute)
-(รีม)Track อยู่ตรงกันของ Platter เป็นวงกลม หลายวง ที่มี่ปริมาตรไม่เหมือนกัน
-[รีมใน กับ รีมนอก] Track-in's round speed < Track-out's round speed -Track-in มีความหน้าแน่นสูง และ ความเสียหายขัอมูลสูง High Data lossing -การทำบันทึกขัอมูลไปอยู่ใน Sector ต้องมีห้ว อาน/เขียน เลือนมาบันทึกบน Track ที่มี Sector ว่าง -เลือน อาน/เขียน ข้าบ 1Track ใช้เวลา 10^-3 sec = 1ms ---> Seek time ดังนั้น ถ้าข้อมูลอยู่ใน Track
เดียวกัน และใกล้กัน ทำให้ประยัดเวลาในการคนหาข้อมูลนั้น
-ใช้โปรแกรม "Defragmentor" เพื่อ Repair sector และก่อนการทำวิธีนี้ต้อง Backup Data first for avoid losing data while Defragmentor if the electric was switched off .
-การคนหาข้อมูลจาก Sector อยู่ใน Track หนึ่งที่ห้วอาน/เขียนบน Track นั้นด้วย คือมีการเกิดกรณี 2อย่างคือ
Best case : หน้าที่วิงอยู่ชิ่ดข้างหลัง ห้วอาน/เขียน (sector)-----> |(ห้วอาน/เขียน)
Worst case : หน้าที่วิงอยู่ผ่าน หรือ บน อาจจะตรงกันเลย ห้วอาน/เขียน (sector)---|--> ----|>
-if RPM faster ---> Rotational delay slower
-ลัษณะของHHDที่ควรดู
+ มี Platter หลายชั้น ทำให้การใช้งายดีขื้น
+ความจุใหญ่ large of capacity
+Seek time (ms) เวลาที่ Track รอบได้หนึ่งรอบ
+Rotational delay
+Controller card [add more]
+Transfer rate : อัตราการรับส่งข้อมูล
+เส้นเชื่อมต่อ IDE , ATA , SATA -----> Cable connection

การแบ่ง Track & Sector
1* จัดจำนวนแม่เหล้า ---- Hard Format : [ HHD was done since factory ]
2*แบ่ง Partition แบ่งได้หลาย partitions -----> Logical drive for store Data.
-----> Primary drive for store OS.
3*each partition : create file system .
.MS --> FAT-32 , FAT-16 , NTFS{lose capacity high} <"format">
.Unix --> FAT-32 , FAT-16 , NTFS <"mkfs">

- แฟ้มภาพและการบีบอัดแฟ้มภาพ
RGB : Red Green Blue ----> mixed = 16 Milion color ----> human's eye able to see !! :)
[BMP] Bit map :
- 3 byte(24bit)/px
- Size = (width * length) px * 3byte/px= ? byte
[Gif] Graphic Interchange Format
-Color palette has 256 color with using no mixed color
-1byte/px
-Size = (width * length) px*1byte/px +3*256 = ? byte
-Lossy Compression
[JPG] The Joint Photographic Expert Group {In Unix ==> JPEG}
-ISO color : Internetional Standard Organization
-Relative encoding compression used ==> variable-length code
-Loseless Compression
-Use as Set : 1Set = 6byte / 4px ; 1Set ===> Pixel brightness & Pixel color
-1 Set : compressed as 4 px there are : 4 value of px-brightness & 2 px-color = 6value
-Size = (width * length) px * 6byte / 4 px = ? byte

- สถาปัตยกรรมแบบ John Von Neumann
-แนวความคิด : ออกแบบคำสั่งให้เป็นรหัสในรูปของเลขฐานสอง and จัดเก็บในหน่วยความจำได้
-กำหนดให้คำสั่งในโปรแกรมที่จะใช้ในการประมวลผลมีลักษณะเช่นเดียวกับข้อมูลที่ต้องการประมวลผล
1.Fetch : จากนั้นจึงทำการออกแบบให้หน่วยควบคุมสามารถอ่านรหัสคำสั่งดังกล่าวนี้จากหน่วยความจำ
2.Decode : ถอดรหัส เพื่อเลือกวงจรที่จะใช้ดำเนินการกับข้อมูล and ดำเนินการกับข้อมูลนั้น
3.Execute : การเปลี่ยนแปลงวิธีการทำงานหรือโปรแกรมจะทำได้ง่ายขึ้นโดยการบรรจุโปรแกรมใหม่ลงแทนที่โปรแกรมเก่าในหน่วย ความจำ แทนที่จะใช้การเชื่อมต่อวงจรแบบเดิม
**Fetch , Decode ,Execode ====> Stored-program Concept [ for nowday computer ]
Stored-program Concept :
==> ชัดเจน
==> ตรงไปตรงมา
------->จนทำให้ผู้คนในยุคต่อมาสงสัยว่า เพราะเหตุใดผู้สร้างคอมพิวเตอร์ในสมัยก่อนหน้านี้จึงนึกไม่ถึง ที่เป็นเช่นนี้เพราะว่า ในระยะแรกๆทุกคนมีความคิดเหมือนกันว่า Program และ Data เป็น "อะไร" (entity)
Processing :
::::: Program ------> Control Unit "CU" :: หน่วยควบคุม
::::: Data-----------> RAM :: หน่วยความจำ

ภาษา Assembly
เนื่องจากคำสั่งที่หน่วยประมวลผลสามารถดำเนินการได้ เป็นคำสั่งที่มีการเข้ารหัสในรูปของเลขฐานสอง หรือเรียกว่าคำสั่งภาษาเครื่อง คำสั่งในลักษณะนี้เป็นคำสั่งที่ยากต่อการจดจำ, ทำความเข้าใจ และเขียนโปรแกรม เช่นคำสั่งของหน่วยประมวลผลกลางในตระกูล 80x86 คำสั่งหนึ่งคือ
00000001 11010000
เป็นคำสั่งกำหนดให้หน่วยประมวลผลทำการบวกค่าในเรจิสเตอร์สองตัวที่ระบุ และเก็บผลบวกที่ได้ไว้ที่เรจิสเตอร์ตัวแรก คำสั่งเช่นนี้ถึงแม้ว่าจะใช้เลขฐานสิบหก คือ 01D016 แทนเลขฐานสองก็ไม่ช่วยให้เกิดความชัดเจนขึ้นได้แต่อย่างใด ดังนั้นเพื่อให้สามารถเขียนโปรแกรมได้ง่ายจึงมีการกำหนดสัญลักษณ์ในลักษณะเป็นชื่อย่อขึ้นใช้แทนคำสั่งและข้อมูล เรียกว่า Mnemonic โดยแยกเป็นสัญลักษณ์แทนคำสั่ง เรียกว่า Opcode, และกำหนดสัญลักษณ์แทนข้อมูล (เรจิสเตอร์และตำแหน่งในหน่วยความจำ) เพื่อใช้เป็น Operand ของคำสั่ง เช่น กำหนดให้ใช้สัญลักษณ์ ADD แทนคำสั่งบวก และกำหนดให้ใช้ชื่อ AX และ DX แทนชื่อเรจิสเตอร์ ดังนั้นคำสั่ง
00000001 11010000
จึงแทนได้ด้วยสัญลักษณ์
ADD AX, DX
คำสั่งในลักษณะนี้เรียกว่าคำสั่งภาษา Assembly โดยมีคำสั่ง ADD ทำหน้าที่เป็น Opcode ค่าในเรจิสเตอร์ AX เป็นตัวตั้ง และค่าในเรจิสเตอร์ DX เป็นตัวบวก กล่าวอีกนัยหนึ่งคือ AX และ DX ทำหน้าที่เป็น Operand ของคำสั่ง ADD เมื่อนำคำสั่งในลักษณะนี้มารวมกัน จะได้โปรแกรมภาษา Assembly โปรแกรมนี้หน่วยประมวลผลไม่สามารถทำงานได้โดยตรง จึงต้องมีการแปลโปรแกรมภาษา Assembly เป็นภาษาเครื่องที่สมนัยกันเสียก่อนโดยใช้ตัวแปลภาษา Assembly ซึ่งชื่อเรียกเฉพาะว่า Assembler และด้วยเหตุที่ชุดคำสั่งสำหรับหน่วยประมวลผลต่างรุ่นต่างยี่ห้อมีความแตกต่างกัน ดังนั้น Assembler ของหน่วยประมวลผลจึงแตกต่างกันออกไป และไม่สามารถใช้ทดแทนกันได้
ในการอธิบายในส่วนต่อไปจะใช้คำสั่งภาษา Assembly แทนคำสั่งภาษาเครื่อง และ

- หน่วยประมวลผลกลาง CPU
-คำสั่งภาษาเครื่องที่หน่วยประมวลผลกลางแต่ละตัวสามารถถอดรหัสได้มีจำนวนไม่มากนัก คำสั่งที่มีทั้งหมดของหน่วยประมวลตัวใดตัวหนึ่ง เรียกว่าชุดคำสั่ง (Instruction set)
-CISC : Complex Instruction Set Computing ====> Intel Company (Pentium)
+ดีควรสามารถทำงานกับคำสั่งได้เป็นจำนวนมาก Lots of intructions
+จะมีคำสั่งบางส่วนซ้ำซ้อนกัน Some intructions are complex
+นำคำสั่งมาเขียนเป็นโปรแกรมทำได้ง่ายกว่า bring instruction to write program easily
+Normal , Heat increasing faster than RISC
-RISC : Reduced Instruction Set Computing ====> IBM , Motorola , Apple Computer Company ============(PowerPC)==============
+คำสั่งภาษาเครื่องน้อย
+เฉพาะคำสั่งเท่าที่จำเป็นเท่านั้น
+ใช้งานได้ดี เร็ว และอย่างมีประสิทธิภาพ ใช้นานไม่ค่อยรอน ไม่ซ้ำซ้อน วงจรน้อย Good , Fast , Effectly , Cool ,
Machine Language ===> 3 part are : Data transfer , Arithmetic/Logic , Control
การทำงาน
----Fetch--->Decode---->Execute----->Fetch---............
คำสั่ง
-CISC
-RISC

- โปรแกรมและโพรเซส; โครงสร้างและการทำงาน
- ระบบปฏิบัติการ; ชนิด ความสำคัญ องค์ประกอบและการทำงาน

ลักษณะข้อสอบ
- เป็นข้อสอบอัตนัย ตอบคำถามโดยการอธิบาย จำนวน 20 ข้อ คะแนนเต็ม 60 คะแนน
คำแนะนำ - ก่อนตอบ ศึกษาความต้องการของคำถามให้ดี พยายามคิดถึงเรื่อง
ที่เกี่ยวข้อง เขียนทุกเรื่องที่นึกได้ พยายามจัดกลุ่ม เรียบเรียง แล้ว
ค่อยลงมือเขียนคำตอบจริง ริมกระดาษด้านซ้ายขวาของข้อสอบ
ใช้ทดได้

หมายเหตุ
คะแนนสอบกลางภาคยังไม่เสร็จ และคงไม่เสร็จจนถึงวันสอบ มีงานอื่นแทรกเข้ามามาก



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



1. ในกรณีที่ต้องการเขียนข้อมูลจำนวนมากลงในจานแม่เหล็กที่ใช้ประกอบด้วยด้วยจานหลายจาน ควรเขียนข้อมูล
ให้เต็มแผ่นหนึ่งก่อนแล้วค่อยเขียนลงในแผ่นต่อไป หรือควรเขียนให้เต็ม cylinder หนึ่งก่อนแล้วค่อยเขียนใน cylinder
ถัดไป จงอภิปราย พร้อมให้เหตุผลประกอบ
::การเขียนข้อมูลจำนวนมากลงในจานแม่เหล็กที่ใช้ประกอบด้วยหลายจาน ควรเขียนข้อมูลให้เต็ม cylinder หนึ่งก่อนแล้วค่อยเขียนใน cylinder ถัดไป
เพราะว่า ห้วอานห้วเขียนแต่ละจานเลือนมาอานข้อมูลตรงกัน​ cylinder ถ้าข้อมูลที่เขียนอยู่ใน cylinder เดียวกัน จะทำให้การอานมีการสะดวก และ เร็วขื้น

2. โปรแกรมประยุกต์สำหรับจองที่นั่งของสายการบินซึ่งต้องมีการปรับปรุงข้อมูลอยู่เสมอ
ควรใช้สื่อข้อมูลความจุสูงชนิดใดในการดำเนินการ จงอธิบายพร้อมให้เหตุผลประกอบอย่างชัดเจน ?????????????

3. ในบางครั้งเมื่อทำการพิมพ์เอกสารเพิ่มเติมอีกหนึ่งบรรทัดโดยใช้โปรแกรมประมวลคำ (word processor)
เมื่อทำการจัดเก็บปรากฏว่าขนาดของแฟ้มยังมีขนาดคงเดิม แต่ในบางครั้งการพิมพ์ตัวอักษรเพิ่มลงไปเพียงตัวเดียว ??????????????
กลับทำให้แฟ้มมีขนาดใหญ่ขึ้นมาก จงอธิบายปรากฏการณ์ที่เกิดขึ้นดังกล่าวนี้

4. รหัส ascii ของอักษรตัวพิมพ์ใหญ่ (uppercase) และอักษรตัวพิมพ์เล็ก (lowercase)
ในภาษาอังกฤษมีความสัมพันธ์กันหรือไม่ อย่างไร
ในรหัส ascii เป็นเลขฐานสอง
a = 01 0 00001 A = 01 1 00001
b = 01 0 00010 B = 01 1 00010
. .
. .
. .
. .
z = 01 0 11010 Z = 01 1 11010
สรุปว่า
ความสัมพันธ์ของ uppercase & lowercase คือมีความแตต่างกันตรงบิตตำแน่งที่ 6 คือ upercase มีค่าเป็น 1 & lowercase มีค่าเป็น 0

5. การจัดเก็บโดยใช้รหัส ascii ของตัวเลข และการจัดเก็บโดยใช้เลขฐานสอง (Binary notation)
สามารถจัดเก็บค่าของจำนวนได้สูงสุดเท่ากันหรือไม่ หากไม่เท่ากันแตกต่างกันอย่างไร จงอธิบาย

6. จงเปรียบเทียบจุดเด่น และ จุดด้อย ของการแทนภาพแบบ Bit map และ vector
Bit map :
-ทำให้รูปภาพไม่ชัดเหมือนเดิม เมือมีการ​ Zooming image หรือ การ Increassing size of image
Vector :
-รักษาความส้วยและชัดของรูปภาพ เมือมีการ​ Zooming image หรือ การ Increassing size of image

7. จงเข้าหรัสของข้อมูลนี้ด้วยวิธีการ LZ77 (ให้ถือว่าข้อความที่ต้องการให้เข้ารหัส มีตัวอักษรต่องเนื่องกันไป
ไม่มีวรรค เครื่องหมายเว้นวรรคที่แทรกไว้ทุก 4 ตัวอักษร เพื่อให้อ่านและตรวจสอบได้ง่าย
bbab bbaa baba abab aaba baa a
==>bbab bbaa baba aba(10,8,a)
==>bbab bbaa ba(5,4,a) (10,8,a)
==>bbab bba (5,2,a)(5,4,a) (10,8,a)
==>bbab (4,2,a) (5,2,a)(5,4,a) (10,8,a)

8. ภาพขนาด 1024*1024 จุดภาพ ทำการบีบอัดโดยใช้วิธีการ GIF จะได้ภาพที่มีขนาดเท่าใด
[GIF] ==> Size = 1024*1024 px * 1byte /px + 3*256byte =2^20+768 byte ~ 1.001MB
และในกรณีที่ใช้วิธีการ JPEG จะได้ภาพที่มีขนาดเท่าใด จงแสดงวิธีการคำนวนโดยชัดเจน
[JPEG] Size = 1024*1024 px * 6 byte / 4 px = 1.5*2^20 byte =1.5 MB

9. จงอธิบายหลักการทั่วไปของการบีบอัดข้อมูลโดยใช้วิธีการตามมาตรฐานของ JPEG baseline standard มาพอเข้าใจ ?????????????


แบบฝึกหัดเรื่อง Hamming code
1. ตัวอักษร c มีรหัส ascii เป็น 0110 0011 (ฐานสอง) หรือ 63 (ฐานสิบหก)หากนำข้อมูลเฉพาะ
7 บิตล่างคือ 110 0011 มาเข้ารหัสสร้างเป็น frame ข้อมูลขนาด 11 บิต โดยใช้ Hamming code
ชนิด 7/11 จงแสดง frame ข้อมูลที่ได้จากการเข้ารหัส
::: Hamming code ชนิด 7/11 คือมีการเพิ่มให้ 4 บิตอยู่ในตำแน่ง 1 2 4 8
==> 110 _ 001_1 _ _
---->บีตที่มีค่าเป็น1 คือ ตำแน่งที่
3 = 0011
5 = 0101
10 = 1010 [ XOR ]
11 = 1011
------------
0111 ====>เอาไปแทนตำแน่งที่ว่าง ได้ 110[0]001[1]1[1][1] = 1100 0011 111

2. ผู้รับได้รับ frame ข้อมูลที่มีการเข้ารหัสแบบ Hamming code ชนิด 7/11 เป็น 110 0010 1100
frame ข้อมูลดังกล่าวถูกต้องหรือไม่ หากไม่ถูกต้องผิดที่บิตใด และข้อมูลที่ได้รับเป็นตัวอักษร
ใด
::: Hamming code ชนิด 7/11 เป็น 110 0010 1100 frame
คือ 110[0]011[1]1[0][0] เอาตำแน่งบิตที่มีค่าเป็น 1 เช่ร
3 = 0011
4 = 0100
5 = 0101 [XOR]
6 = 0110
10 = 1010
11 = 1011
-----------
0101 แสดงว่ามีการผิดผลาด บีตตรงตำแน่งที่ 0101ฐานสอง คือ ตำแน่งที่ 5 ต้องเปลียน 1 ไป 0
ดังนั้น frame ข้อมูลที่ถูกต้องมีรหัล 110[0]010[1]1[0][0] และ ข้อมูลที่ได้รับคือ 0110 0101ขนาด 8 บีต เป็นอักษร e อยู่ในรหัด ASCII

3. ผู้รับได้รับ frame ข้อมูลที่มีการเข้ารหัสแบบ Hamming code ชนิด 7/11 เป็น 101 0011 1101
frame ข้อมูลดังกล่าวถูกต้องหรือไม่ หากไม่ถูกต้องผิดที่บิตใด และข้อมูลที่ถูกต้องเป็นอย่างไร
::: Hamming code ชนิด 7/11 เป็น 101 001 1101 frame
คือ 101 [0]011 [1]1[0][1] เอาตำแน่งบิตที่มีค่าเป็น 1 เช่ร
1 = 0001
3 = 0011
4 = 0100 [XOR]
5 = 0101
6 = 0110
9 = 1001
11 = 1011
-----------
0111 แสดงว่ามีการผิดผลาด บีตตรงตำแน่งที่ 0111ฐานสอง คือ ตำแน่งที่ 7 ต้องเปลียน 0 ไป 1
ดังนั้น frame ข้อมูลที่ถูกต้องมีรหัล 101 0111 1101 และ ข้อมูลที่ได้รับคือ 101 1111 ขนาด 7 บีต

1. หน่วยความจำหลัก หน่วยความจำลอง (สื่อเก็บข้อมูลความจุสูง) และ รีจิสเตอร์ ต่างก็ทำหน้าที่เป็นหน่วยความจำ
เช่นเดียวกัน หน่วยความจำทั้งสามแบบนี้มีที่ใช้งานแตกต่างกันอย่างไร
::: +หน่วยความจำหลัก Main Memory ทำหน้าที่เก็บข้อมูล และ โปรแกรมที่กำลังจะต้องใช้ในเวลาต่อมา
หลักการของมันคือขัอมูลหาย เมือไฟดับ
+หน่วยความจำรอง Second Storage มีหน้าที่เก็บข้อมูล ข้อมูลและโปรแกรมที่ยังไม่ได้ใช้ในขณะปัจจุบันไว้ แต่ข้อมูลไม่หายเมือไฟดับ
+เรจิสเตอร์ Register มีหน้าที่จัดเก็บหน่วยประมวลผลจาก CPU ที่กำลัง executed หรือ decoded

2.คำกล่าวที่ว่า "คำสั่งเคลื่อนย้ายข้อมูลไม่ตรงกับการทำงานจริง" เป็นคำกล่าวที่ถูกต้องหรือไม่ อย่างไร
จงอภิปรายพร้อมทั้งให้เหตุผลประกอบอย่างชัดเจน

3. จงอธิบายความแตกต่างที่สำคัญระหว่างการประมวลผลแบบ Real-sharing
และการประมวลผลชนิดโต้ตอบกับผู้ใช้(Interactive)

4. จงอธิบายความแตกต่างที่สำคัญระหว่างระบบ Time-shareing และ Multitasking

5. โปรแกรมประยุกต์ (Applications) และโปรแกรมอรรถประโยชน์ (Utiltties) มีความแตกต่างที่สำคัญอย่างไร
จงอธิบายโดยสังเขป พร้อมยกตัวอย่างประกอบ
+ โปรแกรมประยุกต์ เป็นโปรแกรมมีคุณสัมบัติทั้วไปกับผู้ใช้ทุกประเภท และทำให้ผู้ใช้ได้งายและงายเข้าใจ เช่ร MS-word , Ms-excel , Note pad ,.....

7. Virtual memory คืออะไร และมีความสำคัญอย่างไรต่อระบบ


8. จงสรุปกระบวนการ Bootstrapping ให้ได้ใจความสมบูรณ์

9. จงสรุปความแตกต่างระหว่างโปรแกรมและโพรเซส

10. เมื่อเกิสัญญาณขัดจังหวะ (Interrupt) ขึ้น หน่วยประมวลผลกลางมีขั้นตอนในการดำเนินการอย่างไร
จงสรุปเขียนเป็นขั้นตอนวิธีที่ชัดเจน



No comments:

Post a Comment