วันอาทิตย์ที่ 1 กันยายน พ.ศ. 2556

โครงสร้างแอสแซมบลี



                                                                               .MODEL SMALL
                                                              .STACK 64
                                                              .DATA
                                                              CODE
                                                      MAIN PROC
                                                              MOV AX,@DATA
                                                              MOV DS,AX
                                                              MOV AH,2
                                                              MOV DL,'A'
                                                              INT 21H
                                                              MOV AH,4CH
                                                              INT 21H
                                                      MAIN ENDP
                                                              END MAIN

วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

โครงสร้างโปรแกรมภาษา


โครงสร้างของภาษาปาสคาล

ภาษาปาสคาลเป็นภาษาชั้นสูงที่มีรูปแบบโครงสร้างของภาษที่ชัดเจน บริษัทบอร์แลนด์ ซึ่งเป็นผู้คิดค้น บอร์แลนด์ปาสคาล 7 ได้กำหนดรูปแบบโครงสร้างของภาษาปาสคาลไว้ 3 ส่วน คือ
          1. ส่วนหัวของโปรแกรม
              โปรแกรมทุกโปรแกรมที่เขียนขึ้นมาจะต้องมีชื่อ เพื่อบอกว่าโปรแกรมนี้ชื่ออะไร โดยต้องเขียน ลงใน บรรทัดแรก ของ โปรแกรม การตั้งชื่อโปรแกรมจะต้องเป็นไปตาม กฏการตั้งชื่อ และชื่อโปรแกรมจะต้องไม่ตรงกับ คำสงวน (Reserved Words) ของปาสคาล
          2. ส่วนกำหนดข้อมูล
              ส่วนนี้บางตำราอาจจะเรียกว่าส่วนประกาศ ส่วนกำหนดข้อมูล นี้ ถ้าไม่มีก็ไม่ต้องกำหนด และการกำหนด ก็ไม่จำเป็น ต้องกำหนดทุกหัวข้อ หรือทุกชนิดข้อมูล แต่ถ้าส่วนใดมีจะต้องกำหนดเรียงตามลำดับดังนี้
                          USES                        VAR
                          CONST                      PROCEDURE
                          TYPE                         FUNCTION
                                                                               
           3. ส่วนประโยคคำสั่ง
                 เป็นส่วนที่สั่งให้โปรแกรมดำเนินการ ต่าง ๆ มีทั้งการกำหนดค่า การแสดงผล การรอรับข้อมูล การคำนวณ เปรียบเทียบ คำสั่งที่จะใช้กระทำการเหล่านี้ จะอยู่ในรูปของประโยคคำสั่ง (Statment) คือส่วนที่อยู่ ระหว่าง คำสงวน Begin และ End. ประโยคคำสั่งต่าง ๆ ในภาษาปาสคาล จะต้องปิด ด้วยเครื่องหมาย Semicolon ( ; ) เสมอ ทั้งนี้เพื่อให้คอมไพเลอร์ รู้ว่า ประโยคคำสั่งนั้นได้สิ้นสุดแล้ว
โครงสร้างของภาษา C 
ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน แบ่งออกเป็น 3 ส่วน
1.  ส่วนของเฮดเดอร์ไฟล์ (Header File or Processing Directive) จะขึ้นต้นด้วยเครื่องหมาย # เสมอ   โดยใช้คำสั่ง   # include ซึ่งสามารถเขียนได้ 2 รูปแบบ คือ
                     รูปแบบที่ 1 :
#include<HeaderName>
                     รูปแบบที่ 2 :
#include “HeaderName”
2. ส่วนของฟังก์ชั่นหลัก   ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main()  การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้
3.  คอมเมนต์ (comment) คือส่วนที่เป็นหมายเหตุของโปรแกรม มีไว้เพื่อให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายกำกับลงไปใน source code ซึ่งคอมไพเลอร์จะข้ามาการแปลผลในส่วนที่เป็นคอมเมนต์นี้ คอมเมนต์ในภาษาซีมี 2 แบบคือ
                      คอมเมนต์แบบบรรทัดเดียว ใช้เครื่องหมาย //
                      คอมเมนต์แบบหลายบรรทัด ใช้เครื่องหมาย /* และ */
โครงสร้างของภาษา Basic
ต้องเขียนด้วยตัวพิมพ์ใหญ่เสมอ ภาษา Basic นั้นเป็นโปรแกรมที่เป็นพื้นฐานสำหรับหัดเขียนโปรแกรมก็ว่าได้ เนื่องจากเป็นภาษาที่เป็นคำพูดของคนเราทั่วไป เช่น ดังนี้ การใช้คำสั่ง Print PRINT "Hello World!" เครื่องจะประมวลผลและแสดงผลออกมาเป็นข้อความ Hello world! ออกมาทางหน้าจอ ประเภทคำในภาษาเบสิก ! : Single-precision # : Double-precision $ : String % : Integer & : Long
           โครงสร้างหลักของโปรแกรม ซึ่งประกอบไปด้วย 3 ส่วน คือ
                       1. ต้องมีการกำหนดชื่อโปรแกรม
               2. ส่วนของการเขียนโค้ดโปรแกรม
             3. ส่วนจบการทำงานของโปรแกรม จากโครงสร้างหลักดังกล่าว ผู้เขียนโปรแกรมต้องเขียนโค้ดสั่งงานให้กับไมโครคอนโทรเลอร์  ทำงานภายใต้ชุดคำสั่งที mikroBasic PIC เตรียมไว้ให้ หรือเขียนขึ้นมาเอง
โครงสร้างของภาษาแอสเซมบลี
โปรแกรมภาษาแอสเซมบลีเป็นส่วนประกอบด้านซอฟต์แวร์ที่ใช้ในการควบคุมการทำงานของไมโครโพรเซสเซอร์ โปรแกรมเหล่านี้จะทำหน้าที่สั่งการให้ส่วนประกอบที่เรียกว่าฮาร์ดแวร์มีการทำงานตามที่ต้องการ ดังนั้นก่อนที่จะเริ่มทำการพัฒนาโปรแกรมจึงควรศึกษาโครงสร้างการทำงานของโปรแกรมก่อน
           โครงสร้างของโปรแกรมภาษาแอสเซมบลีแบ่งออกเป็น 3 ลักษณะ คือ
                    SEQUENCE PROGRAMS : เครื่องคอมพิวเตอร์จะมีการทำงานตามลำดับของชุดคำสั่ง
                    CONDITIONAL PROGRAMS : สามารถกำหนดเงื่อนไขให้ตกลงใจว่าจะทำตามคำสั่งชุดใด
                    ITERATION PROGRAMS : ระบุให้ทำตามชุดคำสั่งเดิมซ้ำจนกว่าจะบรรลุตามเงื่อนไขที่กำหนด
จุดเริ่มต้นของโปรแกรมจะต้องกำหนดค่าเริ่มต้นของ Data Segment (DS) Register โดยใช้คำสั่ง MOV AX, DATA และ MOV DS, AX
โครงสร้างของภาษา Java
1. เครื่องหมาย ในการควบคุม Structure
               1.1 Comment คือข้อความที่แทรกเข้าไปในโปรแกรม แต่ไม่มีผลต่อการทำงานของโปรแกรม เช่นในกรณีที่เราต้องการอธิบาย Source code ไว้ใน โปรแกรม
               1.2 Keyword คือคำที่ถูกกำหนดไว้ใช้เองแล้วในภาษา Java ไม่สามารถนำมาใช้ในการตั้งชื่อภายใน โปรแกรมได้ ตัวอย่างเช่น class,boolean,char เป็นต้น
               1.3 Identifiers คือชื่อที่ผู้เขียนตั้งขึ้นมา เพื่อใช้แทนอะไรก็ได้ไม่ว่าจะเป็น method ,ตัวแปร หรือ class ชื่อที่ถูกต้องควรประกอบด้วย ตัวอักษร ,ตัวเลข ,_,$ และจะต้องขึ้นต้นด้วย ตัวอักษรเท่านั้น
                 1.4 Separators คือ อักษร หรือ เครื่องหมายที่ใช้แบ่งแยกคำในภาษา
                          - เครื่องหมาย () ใช้สำหรับต่อท้ายชื่อ method ไว้ให้ใส่ parameter  ระบุเงื่อนไขของ if ,while,for ,do และบุชื่อชนิดข้อมูลในการ ทำ casting
                       - เครื่องหมาย{ }ใช้สำหรับ กำหนดขอบเขตของ method แล class
                       - เครื่องหมาย [ ] ใช้สำหรับกำหนดตัวแปรแบบ Arrayและกำหนดค่า index ของตัวแปร array
                       - เครื่องหมาย ; ใช้เพื่อปิดประโยค
                       - เครื่องหมาย , ใช้สำหรับแยกชื่อตัวแปรในประโยค
                       - เครื่อง หมาย . ใช้สำหรับแยกชื่อ package,subpackage และชื่อ class  หรือใช้เพื่อเรียกใช้ ตัวแปร หรือ method ของ Object
โครงสร้างของภาษาโคบอล
โปรแกรมภาษาโคบอลมี 4 Division
1. Identification division ทำ หน้าที่ คล้ายบทนำ ของโปรแกรม ใช้ระบุชื่อโปรแกรม ชื่อผู้เขียน การติดตั้ง วันที่เขียน วันที่แปล เป็นต้น
2. Environment division ทำ หน้าที่ ประกาศชื่อเครื่องที่เกี่ยวข้อง แฟ้มข้อมูลที่นำ มาใช้อุปกรณ์(Device) เป็นต้น ในกรณีที่ไม่ใช้แฟ้มข้อมูล ผู้เขียนสามารถละ Division นี้ไว้ได้
3. Data division ทำ หน้าที่ กำหนดตัวแปร(Variable) และอธิบายลักษณะข้อมูล หรือเขตข้อมูลที่นำ ไปใช้ประมวลผลใน procedure division ตัวแปรแต่ละตัวต้องกำหนดรูปแบบ ขนาดระดับของตัวแปร และสามารถกำหนดค่าเริ่มต้นของตัวแปรได้
4. Procedure division ทำ หน้าที่ รวมคำ สั่งควบคุม และสั่งงานคอมพิวเตอร์ให้ทำ งานอย่างเป็นขั้นตอนเช่น การใช้คำ สั่งคำนวณ อ่านแฟ้มข้อมูล เลือกเงื่อนไข หรือการวนซ้ำ อยู่ในส่วนนี้ทั้งหมดมักเป็น Division ที่ยาว และซับซ้อนที่สุดในการเขียนโปรแกรม



 
 
 


 
 

วันพฤหัสบดีที่ 15 สิงหาคม พ.ศ. 2556

การแปลงเลขฐาน

1. ตารางเลขฐาน

ตารางเลขฐาน
เลขฐานสิบ
เลขฐานสอง
เลขฐานแปด
เลขฐานสิบหก
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F

2. แปลงเลขฐานอื่นๆ เป็นเลขฐาน 10

    2.1 แปลงเลขฐาน 2 เป็นเลขฐาน 10
              
          111100101 = 485

    2.2 แปลงเลขฐาน 16 เป็นเลขฐาน 10

          2FBC = 12220

    2.3 แปลงเลขฐาน 8 เป็นเลขฐาน 10

          286 =  198

3. เลขฐาน 10 เป็นฐานอื่นๆ (ใช้รหัสนักศึกษา)

     3.1 เลขฐาน 10 เป็นฐาน 2

           01 =  0001

     3.2 เลขฐาน 10 เป็นฐาน 8

           01 = 1

     3.3 เลขฐาน 10 เป็นฐาน 16

           01 = 1








วันพฤหัสบดีที่ 1 สิงหาคม พ.ศ. 2556

ใบงานที่ 9 โครงสร้างระบบคอมพิวเตอร์ และโครงสร้างของระบบปฏิบัติการ


ใบงานที่ 9
โครงสร้างระบบคอมพิวเตอร์  และโครงสร้างของระบบปฏิบัติการ

1.  การขัดจังหวะ หรือการอินเตอร์รัปต์ หมายถึงอะไร จงอธิบาย
การอินเตอร์รัพต์ หมายถึง ทางเข้าโปรแกรมย่อยที่ BIOS หรือ DOS มีไว้บริการ เป็นการเข้าไป ขัดจังหวะเพื่อขอกระทำการบางอย่าง เช่น ขอพิมพ์ ขออ่านข้อมูลบางอย่าง เป็นต้น อินเตอร์รัปต์เป็นกระบวนการในการส่งสัญญาณบอกให้ซีพียูรับรู้แล้วหยุดงานที่ทำอยู่ และหันมาตอบสนองต่ออินเตอร์รัปต์ที่ร้องขอ เป็นวิธีที่เหมาะสมที่สุด ในการติดต่อระหว่างอุปกรณ์และซีพียู มีลักษณะคล้ายการเรียกใช้ subroutine
 
2.  จงเปรียบเทียบการอินเตอร์รัปต์ กับการดำเนินชีวิตของมนุษย์โดยทั่วไป ว่ามีความเกี่ยวข้องกันอย่างไร
ซีพียูใช้เวลาส่วนใหญ่ในการทำโปรแกรมหลัก และหันมาสนใจอุปกรณ์ภายนอกก็ต่อเมื่ออุปกรณ์ ภายนอกส่งสัญญาณ เข้ามาขัดจังหวะการทำงานที่ซีพียูทำอยู่ในขณะนั้น ซึ่งซีพียูมีสิทธิที่จะยอมรับหรือปฏิเสธการขัดจังหวะนั้นก็ได้ อาจเปรียบได้ว่า    เรากำลังเขียนรายงานอยู่ แล้วมีเสียงโทรศัพท์ดังขึ้นมา เราก็จะต้องตัดสินใจว่าสิ่งใดมีความสำคัญ มากกว่ากัน หากคิดว่าโทรศัพท์สำคัญกว่า ก็หยุดการ เขียนรายงานและไปรับโทรศัพท์ก่อน แล้วจึงกลับมาเขียนรายงานต่อ
 
3.  สาเหตุที่การป้องฮาร์ดแวร์ มีบทบาทสำคัญต่อระบบปฏิบัติการที่รองรับหลายๆ งาน อยากทราบว่าเป็นเพราะอะไร จงอธิบาย
ข้อผิดพลาดหลายอย่างมักจะตรวจสอบได้โดยฮาร์ดแวร์ ซึ่งสามารถควบคุมได้โดยระบบปฏิบัติการ ซึ่งจะทำการจัดการข้อผิดพลาดนั้นไปเล
 
4.  จงเปรียบเทียบความแตกต่างระหว่างโหมดการทำงานของผู้ใช้ กับโหมดการทำงานของระบบมาให้พอเข้าใจ
ผู้ใช้ คือ บุคคลที่มีปฏิกิริยาโต้ตอบกับระบบ เพื่อทำให้เกิดการดำเนินการ หรือเพื่อใช้การทำงานให้เป็นประโยชน์ ส่วนการทำงานของระบบระบบ หมายถึง การทำงานร่วมกันของส่วนประกอบแต่ละส่วนอย่างมีความสัมพันธ์กันอย่างต่อเนื่องเพื่อนำไปสู่ความสำเร็จตามเป้าหมายที่ได้วางไว้
 
5.  ระบบปฏิบัติการจะมีการป้องกันอินพุต และเอาท์พุตอย่างไร จงอธิบาย
ส่วนนี้เป็นการตอบสนองการเอ็กซิคิวต์โปรแกรมแล้ว ระบบอาจจะความต้องการติดติดต่อหรือต้องการใช้งานอินพุต / เอาต์พุตหรือถ้าต้องการใช้ดีไวซ์พิเศษก็จำเป็นต้องใช้ฟังก์ชันพิเศษ รวมไปถึงการป้องกันระบบ ทั้งนี้เนื่องจากผู้ใช้ไม่สามารถควบคุมดีไวซ์อยู่แล้ว ระบบปฏิบัติการจึงต้องมีฟังก์ชันเพื่อการควบคุมอินพุต / เอาต์พุตด้วย
 
 6.  ระบบปฏิบัติการจะมีการป้องกันหน่วยความจำอย่างไร จงอธิบาย
การจัดการหน่วยความจำจัดเป็นหน้าที่หนึ่งของระบบปฏิบัติการ หน่วยความจำนี้เป็นองค์ประกอบหนึ่งในการพิจารณาขีดความสามารถของเครื่องคอมพิวเตอร์ด้วย  กล่าวคือถ้าหากคอมพิวเตอร์มีความจำมาก  นั้นหมายถึงขีดความสามารถในการทำงานก็จะเพิ่มขึ้นโปรแกรมที่มีสลับซับซ้อนและมีสมรรถนะสูง มักจะเป็นโปรแกรมที่ต้องการหน่วยความจำสูง แต่ก็เป็นที่ทราบแล้วว่าหน่วยความจำมีราคาแพง (เปรียบเทียบราคาฮาร์ดดิสก์ประมาณ 5,000 บาท สามารถได้ความจุถึง 10 GB ขึ้นไป แต่ถ้าเป็นแรมได้ความจุเพียงหน่วย MBเท่านั้น) ดังนั้นระบบปฏิบัติการที่ดีจะต้องมีการจัดการหน่วยความจำที่มีอยู่จำกัด ให้สามารถรองรับงานต่างๆ ที่จำเป็นต้องใช้หน่วยความจำจำนวนมากได้
7.  ระบบปฏิบัติการจะมีการป้องกันซีพียูอย่างไร จงอธิบาย
ต้องแบ่งแยกหน่วยความจำสำหรับงานแต่ละงาน และป้องกันไม่ให้งานหนึ่งเข้าไปอ่านหรือแก้ไขข้อมูลในส่วนของงานอื่นได้ การป้องกันนี้ทำได้โดย register 2 ตัว เรียกว่า ฐาน (base) และ ขอบเขต (limit) Base register จะเก็บค่าตำแหน่งสุดท้ายที่ยอมให้ใช้ได้ใน memory  Limit register จะเก็บขนาดของเนื้อที่ทั้งหมดของงาน
 
8.  โครงสร้างของระบบปฏิบัติการประกอบด้วยกี่ส่วน อะไรบ้าง
ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (kernel) เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการเท่านั้น เคอร์เนลประกอบด้วยส่วนย่อย ๆ 
ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager) มีหน้าที่จัดการเกี่ยวกับหน่วยความจำของระบบ
ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ IOCS จะมีหน้าที่จัดการงานทางด้านอินพุตเอาพุตของระบบ ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์อยู่บ้าง เพราะการติดต่อกับอุปกรณ์อินพุต-เอาต์พุตต้องทราบโครงสร้างและการทำงานของอุปกรณ์นั้นๆด้วย 
ชั้นที่ 4 ผู้จัดการไฟล์ (file manager) มีหน้าที่จัดการงานต่างๆ ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลงดิสก์ การหาไฟล์ การอ่านข้องมูลของไฟล์ เป็นต้น ผู้จัดการไฟล์นี้สามารถถูกออกแบบให้ไม่ขึ้นกับฮาร์ดแวร์ (hardware independent) ผู้จัดการไฟล์จะจะติดต่อกับฮาร์ดแวร์โดยเรียกผ่านรูทีนต่างๆ
ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler) เป็นระดับชั้นแรกที่มีลักษณะไม่ขึ้นอยู่กับฮาร์ดแวร์โดยสมบูรณ์ มีหน้าที่จัดคิวของโปรเซสในสถานะพร้อม (ready state) เมื่อใดที่ส่วนนี้ทำงานมันจะคัดเลือกเอาโปรซสที่เหมาะที่สุดในคิวของสถานะพร้อม เพื่อให้โปรเซสนั้นเข้าไปครอบครองซีพียูที่ว่างอยู่ โดยเรียกใช้ตัวส่งในส่วนของเคอร์เนล 
ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager) เป็นระดับชั้นของส่วนที่หน้าที่จัดสรรหาทรัพยากรอื่นๆในระบบ ดังแสดงในรูปที่ 8.8 บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กัน
ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler) เป็นชั้นของระบบปฏิบัติที่เริ่มมีความใกล้ชิดกับผู้ใช้และห่างไกลกับฮาร์ดแวร์ของเครื่องมากขึ้น มีหน้าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่นสร้างโปรเซส ต่าง ๆ ใหม่เข้ามาในระบบและยุติโปรเซสเมื่อโปรเซสทำงานเสร็จสิ้นลง การทำงานของตัวจัดคิวระยะยาวต้องใช้รูทีนต่างๆ ในชั้นที่ 1 ถึง 6 ช่วยในการทำงาน 
ชั้นที่ 8 เชลล์ (shell) หรือผู้แปลคำสั่ง (command interpreter) เป็นชั้นสุดท้ายซึ่งเป็นชั้นที่ใกล้ชิดกับผู้ใช้มากที่สุด มีหน้าที่ติดต่อกับผู้ใช้โดยตรง เช่น ส่งเครื่องหมายพร้อมต์ (prompt) แสดงออกทางจอภาพ รับคำสั่งต่างๆ ของผู้ใช้มาตีความคำสั่งและเรียกรูทีนต่างๆของชั้นล่างๆ เพื่อให้ได้งานตามคำสั่งที่ได้รับ
 
9.  ในการจัดการกับโปรเซส ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
1.  การสร้างและลบทั้งโปรเซสของระบบและของผู้ใช้
2.  การหยุดและทำโปรเซสต่อไป
3.  การจัดเตรียมกลไกรสำหรับการซิลโครไนซ์โปรเซส
4.  การเตรียมกลไกรสำหรับการติดต่อสื่อสารโปรเซส
5.  การจัดเตรีมกลไกรการแก้ไข deadiock
 
10.  ในการจัดการกับหน่วยความจำ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
1.  ติดตามการใช้งานหน่วยความจำส่วนต่าง ๆ ว่าทำอะไร และของใคร
2.  ตัดสินใจว่าโปรเซสใดจะโหลดเข้าสู่หน่วยความจำเมื่อมีหน่วยความจำว่าง
3.  จัดสรรการใช้หน่วยความจำเมื่อจำเป็นต้องใช้หน่วยความจำ
4.  การจัดการไฟล์ (File Managerent
 
11.  ในการจัดการกับแฟ้มข้อมูล ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
1.  สร้าง และ ทำลายแฟ้มข้อมูล
2.  สร้าง และ ทำลายไดเรคทอรี่
3.  ให้บริการการใช้งานแฟ้มข้อมูลและไดเรคทอรี่ ขั้นพื้นฐาน
4.  อ้างอิงข้อมูลจากแฟ้มกับข้อมูลจริงในหน่วยความจำสำรอง
5.  ทำสำเนาแฟ้มข้อมูลลงในหน่วยความจำถาวร (ไม่ลบเมื่อไฟดับ)
 
12.  ในการจัดการกับอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
1.  การจัดการหน่วยความจำที่รวมทั้งบัพเพอร์ ,แคช และสพูล
2.  อินเทอร์เฟซพื้นฐานของดีไวซ์ไดร์เวอร์
3.  ไดร์เวอร์สำหรับดีไวซ์ที่มีรูปเฉพาะ
 
13.  ในการจัดการกับหน่วยความจำสำรอง เช่น ดิสก์ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
1.  สร้างและการลบไฟล์
2.  สร้างและการลบไดเรกทอรี
3.  สนับสนุนการจัดการไฟล์ในรูปแบบเดิม ๆ ที่ผ่านมา
4.  แมพไฟล์ไปยังสิ่งที่ใช้จัดเก็บข้อมูล
5.  แบ็คอัพหรือสร้างไฟล์สำรอง
6.  การจัดการอินพุต / เอาท์พุต (I/O System Management)
 
14.  จงสรุปงานบริการของระบบปฏิบัติการมาพอเข้าใจ
ระบบปฏิบัติการ เป็นผู้จัดสภาพแวดล้อมให้โปรแกรมทำงาน โดยให้บริการต่าง ๆ แก่โปรแกรม และผู้ใช้ระบบ ระบบปฏิบัติการต่าง ๆ มักมีการให้บริการที่แตกต่างกัน แต่จะมีส่วนหนึ่งที่เหมือนกัน เพื่อให้ความสะดวกต่อผู้ใช้ หรือ ผู้เขียนโปรแกรม ในการทำงานต่าง ๆ ให้ง่ายและรวดเร็ว บริการเหล่านี้ ได้แก่
การให้โปรแกรมทำงาน (Program Execution) ระบบต้องสามารถนำโปรแกรมลงสู่หน่วยความจำหลัก และให้โปรแกรมทำงาน โดยที่การทำงานต้องมีวันสิ้นสุด ไม่ว่าจะเป็นปกติหรือไม่ปกติก็ตาม
การรับส่งข้อมูล (I/O Operation) โปรแกรมของผู้ใช้อาจต้องการรับส่งข้อมูล โดยผ่านแฟ้มข้อมูล หรือ อุปกรณ์รับส่งข้อมูล อุปกรณ์รับส่งข้อมูลบางชนิดต้องการคำสั่งช่วยพิเศษ เช่น เครื่องขับเทป ต้องการการถอยหลังกลับเมื่อเต็ม หรือจอภาพต้องการคำสั่งล้างจอเมื่อเริ่มต้นทำงาน เนื่องจากผู้ใช้ไม่สามารถใช้อุปกรณ์รับส่งข้อมูลได้โดยตรง ดังนั้น ระบบจึงต้องจัดหาวิธีการเพื่อเป็นตัวกลางใช้แทน
การใช้ระบบแฟ้มข้อมูล (File – system Manipulation) ระบบแฟ้มข้อมูลเป็นสิ่งจำเป็นอย่างยิ่ง โปรแกรมต้องการอ่าน หรือ เขียนข้อมูลลงในแฟ้มข้อมูล นอกจากนี้ ยังต้องการสร้าง หรือ ลบแฟ้มข้อมูลด้วยการใช้ชื่อแฟ้ม
การติดต่อสื่อสาร (Communications) บางครั้งกระบวนการหนึ่งอาจต้องการส่งข้อมูลให้อีกกระบวนการหนึ่ง โดยที่กระบวนการทั้งสองนั้น อาจอยู่ในเครื่องคอมพิวเตอร์เดียวกันหรือคนละเครื่องกัน แต่ติดต่อผ่านเครือข่ายคอมพิวเตอร์ การติดต่อสื่อสารนี้อาจทำได้โดยใช้ หน่วยความจำร่วม (share memory) หรือ การส่งผ่านข้อความ (message passing) โดยมีระบบปฏิบัติการเป็นตัวกลาง
การตรวจจับข้อผิดพลาด (Error detection) ระบบปฏิบัติการจำเป็นต้องมีกลไกในการตรวจจับข้อผิดพลาดที่อาจจะเกิดขึ้นได้ เช่น ในหน่วยประมวลผลกลาง (เครื่องเสีย , ไฟดับ) ในอุปกรณ์รับส่งข้อมูล (เทปเสีย , การติดต่อผ่านเครือข่ายล้มเหลว , หรือกระดาษพิมพ์หมด) หรือในโปรแกรมของผู้ใช้ (เช่น คำนวณผิด , ระบุตำแหน่งในหน่วยความจำผิด หรือ ใช้ CPU time มากไป) สำหรับข้อผิดพลาดแต่ละชนิด ระบบปฏิบัติการจะจัดการด้วยวิธีที่เหมาะสมเพื่อแก้ข้อผิดพลาดเหล่านั้น
นอกจากระบบปฏิบัติการจะมีหน้าที่อำนวยความสะดวกให้แก่ผู้ใช้ ยังต้องประกันประสิทธิภาพในการปฏิบัติการของระบบเองอีกด้วย ในระบบผู้ใช้หลายคน เราสามารถเพิ่มประสิทธิภาพได้โดยใช้ทรัพยากรร่วมกัน
การจัดสรรทรัพยากร (Resource allocation) เมื่อมีผู้ใช้หลายคนหรืองานหลายงานทำงานพร้อมกันในช่วงเวลาหนึ่ง ทรัพยากรต่าง ๆ ก็ต้องถูกจัดสรรให้กับคนหรืองานเหล่านั้น ชนิดของทรัพยากรต่าง ๆ จะถูกจัดการด้วยระบบปฏิบัติการ ทรัพยากรบางอย่าง (เช่น รอบการใช้ CPU , หน่วยความจำหลัก และ ที่เก็บแฟ้มข้อมูล) อาจจะมีรหัสในการจัดสรรพิเศษ โดยที่ทรัพยากรอย่างอื่น (เช่น อุปกรณ์รับส่งข้อมูล) อาจจะมีรหัสร้องขอ และปลดปล่อยพิเศษ
การทำบัญชี (Accounting) เราต้องเก็บรวบรวมการทำงานของผู้ใช้ โดยเก็บบันทึกไว้เป็นบัญชีหรือทำเป็นสถิติการใช้ทรัพยากรต่าง ๆ แบบสะสม สถิติการใช้เหล่านี้จะเป็นเครื่องมือที่มีค่าสำหรับนักวิจัยซึ่งหวังจะ reconfigure ระบบเพื่อปรับปรุงบริการในด้านการคำนวณ
การป้องกัน (Protection) information ที่เก็บในระบบคอมพิวเตอร์ที่มีผู้ใช้หลายคนอาจจะต้องการควบคุมการใช้งานด้วยตัวมันเอง เมื่อมีกระบวนการหลาย ๆ กระบวนการทำงานพร้อมกัน เราต้องไม่ให้กระบวนการหนึ่งไปแทรกแซงกระบวนการอื่น ๆ หรือ แม้แต่ตัวระบบปฏิบัติการเอง การป้องกันเป็นการประกันว่า การเข้าถึงทรัพยากรของระบบทั้งหมดต้องถูกควบคุม การรักษาความปลอดภัยของระบบจากภายนอกเป็นสิ่งสำคัญ การรักษาความปลอดภัยเริ่มด้วย ผู้ใช้แต่ละคนต้องได้รับการรับรองตัวเองต่อระบบ โดยทั่วไปก็จะหมายถึงรหัสผ่าน เพื่ออนุญาตให้ใช้ทรัพยากรต่าง ๆ ซึ่งรวมไปถึงการป้องกันอุปกรณ์รับส่งข้อมูล ซึ่งประกอบไปด้วย โมเด็มและการ์ดเครือข่าย (network adapters) ถ้าระบบถูกป้องกันและรักษาความปลอดภัยก็เท่ากับว่าเป็นการป้องกันไว้ก่อน
15.  ในการติดต่อระหว่างโปรเซสกับระบบปฏิบัติการ จะเกี่ยวข้องกับกลุ่มงานใดบ้าง จงอธิบาย
ระบบคอมพิวเตอร์แบบหลายโปรแกรม (Multiprogramming)และแบบผู้ใช้หลายคน (Multiuser)จะมีกระบวนการที่ทำงานอยู่ในระบบหลายกระบวนการพร้อมๆกันโดยที่บางกระบวนการกำลังขอเข้าใช้งานหน่วยประมวลผลกลาง (CPU)บางกระบวนการกำลังใช้งานหน่วยประมวลผลกลางอยู่บางกระบวนการกำลังร้องขออุปกรณ์รับ-ส่งข้อมูลอยู่พฤติกรรมของกระบวนการเหล่านี้เรียกอีกอย่างว่า "สถานะกระบวนการ"(State of Process)กระบวนการ(Process)หมายถึงคำสั่งในโปรแกรมที่ถูกประมวลผลด้วยหน่วยประมวลผลกลางหรืออีกในหนึ่ง ณ เวลาใดๆจะมีเพียงอย่างมาหนึ่งคำสั่งที่ดำเนินการอยู่สถานะของกระบวนการ(Processtate)กระบวนการต่างๆที่กำลังทำงานอยู่ในระบบเดียวกันจะมีการเปลี่ยนแปลงสถานะของกระบวนการถึง5 สถานะด้วยกัน ซึ่งสถานะดังกล่าวจะถูกกำหนดขึ้นโดยกิจกรรม ณ เวลาปัจจุบันที่กระบวนการนั้นๆกำลังกระทำอยู่โดยที่แต่ละกระบวนการจะตกอยู่ในสถานะใดสถานะหนึ่งจากสถานะทั้ง5 ต่อไปนี้
New กระบวนการใหม่กำลังถูกสร้างขึ้น
Running กระบวนการกำลังทำงานตามคำสั่งในโปรแกรม
Waiting กระบวนการกำลังรอคอยให้เหตุการณ์บางอย่างเกิดขึ้น
Ready กระบวนการกำลังรอคอยที่จะเข้าใช้หน่วยประมวลผล
Terminate กระบวนการเสร็จสิ้นการทำงาน