วันเสาร์ที่ 31 สิงหาคม พ.ศ. 2556

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

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

ภาษาปาสคาลเป็นภาษาชั้นสูงที่มีรูปแบบโครงสร้างของภาษที่ชัดเจน บริษัทบอร์แลนด์ ซึ่งเป็นผู้คิดค้น บอร์แลนด์ปาสคาล ได้กำหนดรูปแบบโครงสร้างของภาษาปาสคาลไว้ ส่วน คือ

          1. ส่วนหัวของโปรแกรม
              โปรแกรมทุกโปรแกรมที่เขียนขึ้นมาจะต้องมีชื่อ เพื่อบอกว่าโปรแกรมนี้ชื่ออะไร โดยต้องเขียน ลงใน บรรทัดแรก ของ โปรแกรม การตั้งชื่อโปรแกรมจะต้องเป็นไปตาม กฏการตั้งชื่อ และชื่อโปรแกรมจะต้องไม่ตรงกับ คำสงวน (Reserved Words) ของปาสคาล

          2. ส่วนกำหนดข้อมูล
              ส่วนนี้บางตำราอาจจะเรียกว่าส่วนประกาศ ส่วนกำหนดข้อมูล นี้ ถ้าไม่มีก็ไม่ต้องกำหนด และการกำหนด ก็ไม่จำเป็น ต้องกำหนดทุกหัวข้อ หรือทุกชนิดข้อมูล แต่ถ้าส่วนใดมีจะต้องกำหนดเรียงตามลำดับดังนี้
                          USES                        VAR
                          CONST                      PROCEDURE
                          TYPE                         FUNCTION
                                                                               
           3. ส่วนประโยคคำสั่ง
                 เป็นส่วนที่สั่งให้โปรแกรมดำเนินการ ต่าง ๆ มีทั้งการกำหนดค่า การแสดงผล การรอรับข้อมูล การคำนวณ เปรียบเทียบ คำสั่งที่จะใช้กระทำการเหล่านี้ จะอยู่ในรูปของประโยคคำสั่ง (Statment) คือส่วนที่อยู่ ระหว่าง คำสงวน Begin และ End. ประโยคคำสั่งต่าง ๆ ในภาษาปาสคาล จะต้องปิด ด้วยเครื่องหมายSemicolon ( ; ) เสมอ ทั้งนี้เพื่อให้คอมไพเลอร์ รู้ว่า ประโยคคำสั่งนั้นได้สิ้นสุดแล้ว

โครงสร้างของภาษา C 
ในโปรแกรมที่พัฒนาด้วยภาษา ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน แบ่งออกเป็น ส่วน
1.  ส่วนของเฮดเดอร์ไฟล์ (Header File or Processing Directive) จะขึ้นต้นด้วยเครื่องหมาย #เสมอ   โดยใช้คำสั่ง   # include ซึ่งสามารถเขียนได้ 2 รูปแบบ คือ
                     รูปแบบที่ 1 : 
#include<HeaderName>
                     รูปแบบที่ 2 : 
#include “HeaderName”
2. ส่วนของฟังก์ชั่นหลัก   ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main()  การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย และจะสิ้นสุดที่เครื่องหมาย ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้
3.  คอมเมนต์ (comment) คือส่วนที่เป็นหมายเหตุของโปรแกรม มีไว้เพื่อให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายกำกับลงไปใน source code ซึ่งคอมไพเลอร์จะข้ามาการแปลผลในส่วนที่เป็นคอมเมนต์นี้ คอมเมนต์ในภาษาซีมี แบบคือ
                      คอมเมนต์แบบบรรทัดเดียว ใช้เครื่องหมาย //
                      คอมเมนต์แบบหลายบรรทัด ใช้เครื่องหมาย /* และ */

โครงสร้างของภาษา Basic
ต้องเขียนด้วยตัวพิมพ์ใหญ่เสมอ ภาษา Basic นั้นเป็นโปรแกรมที่เป็นพื้นฐานสำหรับหัดเขียนโปรแกรมก็ว่าได้ เนื่องจากเป็นภาษาที่เป็นคำพูดของคนเราทั่วไป เช่น ดังนี้ การใช้คำสั่ง Print PRINT "Hello World!" เครื่องจะประมวลผลและแสดงผลออกมาเป็นข้อความ Hello world! ออกมาทางหน้าจอ ประเภทคำในภาษาเบสิก ! : Single-precision # : Double-precision $ : String % : Integer & : Long
           โครงสร้างหลักของโปรแกรม ซึ่งประกอบไปด้วย 3 ส่วน คือ
                       1. ต้องมีการกำหนดชื่อโปรแกรม
               2. ส่วนของการเขียนโค้ดโปรแกรม
             3. ส่วนจบการทำงานของโปรแกรม จากโครงสร้างหลักดังกล่าว ผู้เขียนโปรแกรมต้องเขียนโค้ดสั่งงานให้กับไมโครคอนโทรเลอร์  ทำงานภายใต้ชุดคำสั่งที mikroBasic PIC เตรียมไว้ให้ หรือเขียนขึ้นมาเอง

โครงสร้างของภาษาแอสเซมบลี
โปรแกรมภาษาแอสเซมบลีเป็นส่วนประกอบด้านซอฟต์แวร์ที่ใช้ในการควบคุมการทำงานของไมโครโพรเซสเซอร์ โปรแกรมเหล่านี้จะทำหน้าที่สั่งการให้ส่วนประกอบที่เรียกว่าฮาร์ดแวร์มีการทำงานตามที่ต้องการ ดังนั้นก่อนที่จะเริ่มทำการพัฒนาโปรแกรมจึงควรศึกษาโครงสร้างการทำงานของโปรแกรมก่อน
           โครงสร้างของโปรแกรมภาษาแอสเซมบลีแบ่งออกเป็น ลักษณะ คือ
                    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. แปลงเลขฐานอื่นๆ ให้เป็นฐานสิบ

     2.1. แปลงเลขฐานสอง 111100101 ให้เป็นฐานสิบ             
            ตอบ. 485

     2.2. แปลงเลขฐานสิบหก 2FBC ให้เป็นฐานสิบ            
            ตอบ. 12220

     2.3. แปลงเลขฐานแปด 286 ให้เป็นฐานสิบ             
            ตอบ. 198

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

     3.1 เลขฐาน 018 เป็นฐานสอง          
           ตอบ. 10010

     3.2 เลขฐาน 018 เป็นฐานแปด          
           ตอบ. 22

     3.3 เลขฐาน 018 เป็นฐานสิบหก          
           ตอบ. 12















































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

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

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

1. การขัดจังหวะ หรือการอินเตอร์รัปต์ หมายถึงอะไร จงอธิบาย
ทางเข้าโปรแกรมย่อยที่ BIOS หรือ DOS มีไว้บริการ เป็นการเข้าไปขัดจังหวะ เพื่อขอกระทำการบางอย่าง เช่น ขอพิมพ์ ขออ่านข้อมูลบางอย่าง เป็นต้น ผู้รู้บางท่านกล่าวว่า interrupt เหมือน call function ในภาษาคอมพิวเตอร์ คือ เข้าไปเรียกโปรแกรมบางอย่างมาทำงานจนเสร็จ แล้วย้อนกลับมาทำบรรทัดต่อไป อินเทอร์รัพท์ เป็นกระบวนการในการส่งสัญญาณบอกให้ซีพียูรับรู้แล้วหยุดงานที่ทำอยู่ และหันมาตอบสนองต่ออินเทอร์รัพ ที่ร้องขอ เป็นวิธีที่เหมาะสมที่สุด ในการติดต่อระหว่างอุปกรณ์และซีพียู มีลักษณะคล้ายการเรียกใช้ subroutine

2. จงเปรียบเทียบการอินเตอร์รัปต์ กับการดำเนินชีวิตของมนุษย์โดยทั่วไป ว่ามีความเกี่ยวข้องกันอย่างไร

3. สาเหตุที่การป้องฮาร์ดแวร์ มีบทบาทสำคัญต่อระบบปฏิบัติการที่รองรับหลายๆ งาน อยากทราบว่าเป็นเพราะอะไร จงอธิบาย
ข้อผิดพลาดหลายอย่างมักจะตรวจสอบได้โดยฮาร์ดแวร์ ซึ่งสามารถควบคุมได้โดยระบบปฏิบัติการ ซึ่งจะทำการจัดการข้อผิดพลาด
การป้องกันข้อผิดพลาดของอุปกรณ์รับ-ส่งข้อมูล (I/O Protection) เพื่อป้องกันการเรียกใช้อุปกรณ์รับ-ส่งข้อมูลแบบผิด ๆ หรืออ้างอิงตำแหน่งในหน่วยความจำที่อยู่ในส่วนของระบบปฏิบัติการ หรือไม่คืน การควบคุมซีพียูให้ระบบซึ่งมีการกำหนดว่าคำสั่งเรียกใช้อุปกรณ์รับ-ส่งข้อมูลเป็นคำสั่งสงวน (Privileged Instruction) ผู้ใช้ไม่สาม  รถเรียกใช้อุปกรณ์เองได้ ต้องให้ระบบปฏิบัติการเป็นผู้จัดการให้
 การป้องกันข้อผิดพลาด เนื่องจาการเข้าถึงข้อมูลผิดตำแหน่ง
การป้องกันการเข้าถึงข้อมูลผิดตำแหน่ง มีความสำคัญโดยเฉพาะ ถ้าตำแหน่งที่ถูกอ้างถึงอย่างผิด ๆ เป็นตำแหน่งของโปรแกรมสำหรับสัญญาณ (Interrupt ServiceRoutine) อาจทำให้ผู้ใช้สามารถเปลี่ยนแปลงโปรแกรมได้ ซึ่งก่อให้เกิดความผิดพลาดตามมาหรือแม้กระทั่งเป็นโปรแกรมธรรมดาก็ตาม ถ้าถูกอ้างถึงอย่างผิด ๆ จะทำให้โปรแกรมนั้นเกิดข้อผูดพลาดตามไปด้วย
 การป้องกันข้อผิดพลาดของหน่วยประมวลผลกลาง
ในกรณีที่เกิดการทำงานของโปรแกรมอย่างไม่มีที่สิ้นสุด (Infinite Looop) ทำให้มีโปรแกรมอยู่โปรแกรมเดียวที่ใช้หน่วยประมวลผลกลาง โปรแกรมอื่นต้องรอคอยอย่างไม่มีที่สิ้นสุด (Starvation) เช่น ในกรณีที่ผุ้ใช้ใช้โปรแกรมสร้างงานนี้อย่งไม่มีที่สิ้นสุด ดังนั้น งานอื่น ๆ จึงต้องรอให้หน่วยประมวลผลกลางทำงานนั้น ๆ ให้เสร็จเสียก่อน ประสิทธิภาพของระบบจึงลดลง เพื่อไม่ให้เกิดเหตุการณ์เช่นนี้

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

5. ระบบปฏิบัติการจะมีการป้องกันอินพุต และเอาท์พุตอย่างไร จงอธิบาย
    สำหรับระบบอินพุต/เอาต์พุต( I/O ) ของ Linux มีความใกล้เคียงกับระบบอินพุต/เอาต์พุตใน UNIX เป็นอย่างมากนั่นคือดีไวซ์ไดร์เวอร์ทั้งหมดปรากฏตัวเป็นไฟล์ธรรมดา ผู้ใช้สามารถแอ็กเซสดีไวซ์ได้เหมือนกับการเปิดไฟล์โดยดีไวซ์เป็นเสมือนออปเจ็กต์ในระบบไฟล์ ผู้บริหารระบบสามารถสร้างไฟล์พิเศษภายในระบบไฟล์ที่ประกอบด้วยการอ้างถึงดีไวซ์ไดร์เวอร์ที่ให้ผู้ใช้สามารถเปิดไฟล์เพื่ออ่าน หรือเขียนลงดีไวซ์ที่อ้างอิงนี้ได้ ผู้บริหารระบบยังสามารถกำหนดสิทธิการเข้าถึงดีไวซ์โดยอาศัยหลักการเข้าถึงไฟล์ที่มีการป้องกันโดยพิจารณาบุคคลที่สามารถใช้งานได้
          Linux แบ่งดีไวซ์เป็น 3 กลุ่ม บล็อกดีไวซ์( Bloch Device ) คาแรกเตอร์ดีไวซ์ ( Character Device ) และเน็ตเวิร์คดีไวซ์( Network Devices) รูป 14.4 แสดงสถาปัตยากรรมของดีไวซ์ โดยบล็อกดีไวซ์( Block Devices ) จะรวมถึงทุกดีไวซ์ที่แอกแซสแบบสุ่ม บล็อกข้อมูลมีขนาดคงที่ ทั้งฮาดดิสก์ ฟล็อปปีดิสก์ และซีดีรอม ปกติบล็อกดีไวซ์ จะใช้ในการเก็บระบบไฟล์ แต่ก็ยอมระบให้มีการแอ็กแซสโดยตรงกับบล็อกดีไวซ์ ดังนันโปรแกรมจึงสามารถสร้างและซ่อมแซมระบบไฟล์ที่มีดีไวซ์เป็นส่วนประกอบได้ ส่วนแอปพิเคชันก็สามารถแอ็กแซสบล็อกดีไวซ์โดยตรงเช่นกัน สำหรับคาแรกเตอร์ดีไวซ์ ( Charcter Device ) เป็นดีไวซ์ส่วนมใหญ่ที่ไม่รวมเน็ตเวิร์คดีไวซ์ ( Network )ดีไวซ์ประเภทนี้ไม่จำเป็นต้องสนับสนุนไฟล์ธรรมดา เช่น ดีไวซ์ที่เป็นลำโพงที่ยอมให้เขียนข้อมูลบนดีไวซ์แต่อ่านจากดีไวซ์ไม่ได้ แช่นเดียวกับการค้นหาตำแหน่งที่แน่นอนในไฟล์ที่สนับสนุนในเทปแม่เหล็ก สำหรับเน็ตเวิร์คดีไวซ์ ( Network Device ) จะมีความแตกต่างจากบล็อกดีไวซ์ และคาแร็กเตอร์ดีไวซ์ ผู้ใช้ไม่สามารถถ่ายโอนข้อมูลโดยตรงกับเน็ตเวิร์คดีไวซ์ แต่ติดต่อทางอ้อมกับระบบย่อยด้านเน็ตเวิร์คของ Kernel
6. ระบบปฏิบัติการจะมีการป้องกันหน่วยความจำอย่างไร จงอธิบาย
 1. การย้ายตำแหน่ง (Relocation) ระบบปฏิบัติการในปัจจุบัน ยอมให้โปรแกรมทำงานพร้อมกันได้หลายงานแบบ multiprogramming ซึ่งโปรเซสต่าง ๆ เข้าใช้งานหน่วยความจำร่วมกัน จึงต้องมีการสลับโปรแกรมให้เข้าออกหน่วยความจำได้ รวมถึงการเปลี่ยนแปลงค่าตำแหน่งในหน่วยความจำที่อ้างถึงในโปรแกรม ให้ถูกต้องตามตำแหน่งจริงในหน่วยความจำ เช่นโปรแกรม a อ้างถึงตำแหน่งที่ 1000 และโปรแกรม b ก็อ้างถึงตำแหน่งที่ 1000 เช่นกัน
2. การป้องกันพื้นที่ (Protection) ระบบปฏิบัติการควรสามารถป้องกันโปรเซส จากการถูกรบกวน ทั้งทางตรง และทางอ้อม ดังนั้นก่อนให้โปรเซสใดเข้าครอบครองหน่วยความจำ จะต้องมีการตรวจสอบก่อน และใช้เวลาค้นหาเพื่อตรวจสอบตลอดเวลา
3. การใช้พื้นที่ร่วมกัน (Sharing) การป้องกันเพียงอย่างเดียว อาจทำให้การใช้ทรัพยากรไม่คุ้ม จึงต้องมีการจัดสรรให้ใช้พื้นที่ของหน่วยความจำร่วมกันอย่างยืดหยุ่น
4. การจัดการแบ่งโปรแกรมย่อย (Logical organization)

7. ระบบปฏิบัติการจะมีการป้องกันซีพียูอย่างไร จงอธิบาย
                ซีพียู (cpu Scheduling) เป็นหลักการทำงานหนึ่งของระบบปฏิบัติการที่ทำให้คอมพิวเตอร์มีความสามารถในการรันโปรแกรมหลายๆ โปรแกรมในเวลาเดียวกัน ซึ่งการแบ่งเวลาการเข้าใช้ซีพียูให้กับโปรเซสที่อาจถูกส่งมาหลายๆ โปรเซสพร้อมๆกัน ในขณะที่ซีพียูอาจมีจำนวนน้อยกว่าโปรเซส หรืออาจมีซีพียูเพียงตัวเดียว จะทำให้คอมพิวเตอร์สามารถทำงานได้ปริมาณงานที่มากขึ้นกว่าการที่ให้ซีพียูทำงานให้เสร็จทีละโปรเซส ในบทนี้ เราจะมาพูดถึงอัลกอริทึมพื้นฐานของการจัดเวลาซีพียูนี้ โดยจะพูดถึงวิธีการหลักๆ ที่แต่ละอัลกอริทึมมีแตกต่างกัน ข้อดีข้อเสีย และความเหมาะสมต่อระบบงานแบบต่างๆ เพื่อการเลือกใช้อย่างถูกต้อง

8. โครงสร้างของระบบปฏิบัติการประกอบด้วยกี่ส่วน อะไรบ้าง
                ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (kernel) เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการเท่านั้น
                ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager) มีหน้าที่จัดการเกี่ยวกับหน่วยความจำของระบบ เช่น การทำหน่วยความจำเหมือนระบบหน้า เป็นต้น เนื่องจากการจัดการหน่วยความจำบางส่วนต้องยุ่งเกี่ยวกับโครงสร้างทางฮาร์ดแวร์ของเครื่อง ดังนั้น ในส่วนของผู้จัดการหน่วยความจำจึงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์ด้วยเช่นเดียวกัน บางครั้งการทำงานในชั้นนี้ก็อาศัยรูทีนบางอย่างของเคอร์เนลด้วย
                ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ IOCS จะมีหน้าที่จัดการงานทางด้านอินพุตเอาพุตของระบบ ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์อยู่บ้าง เพราะการติดต่อกับอุปกรณ์อินพุต-เอาต์พุตต้องทราบโครงสร้างและการทำงานของอุปกรณ์นั้นๆด้วย ซึ่งส่วนนี้เป็นหน้าที่ของตัวขับอุปกรณ์ (device driver) นอกจากนี้ IOCS ยังต้องอาศัยรูทีนบางอย่างทั้งจากเคอร์เนล และผู้จัดการหน่วยความจำในการทำงานของมันอีกด้วย ตัวอย่างเช่น เคอร์เนลจัดหารูทีนที่เหมาะสมกับการเกิดอินเตอร์รัพต์จากอุปกรณ์อินพุต-เอาต์พุต ให้IOCS ทำงานหรือ IOCS เรียกใช้รูทีนผู้จัดการหน่วยความจำให้ช่วยหาเนื้อที่ในหน่วยความจำเพื่อใช้ทำบัฟเฟอร์ของอุปกรณ์ต่างๆ 
                ชั้นที่ 4 ผู้จัดการไฟล์ (file manager) มีหน้าที่จัดการงานต่างๆ ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลงดิสก์ การหาไฟล์ การอ่านข้องมูลของไฟล์ เป็นต้น ผู้จัดการไฟล์นี้สามารถถูกออกแบบให้ไม่ขึ้นกับฮาร์ดแวร์ (hardware independent) ผู้จัดการไฟล์จะจะติดต่อกับฮาร์ดแวร์โดยเรียกผ่านรูทีนต่างๆของ เคอร์เนล ผู้จัดการหน่วยความจำและ IOCS รูปที่ 8.6 แสดงระดับชั้นของระบบปฏิบัติการเมื่อเพิ่มระดับชั้นของ ผู้จัดการไฟล์เข้าไป
ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler) เป็นระดับชั้นแรกที่มีลักษณะไม่ขึ้นอยู่กับฮาร์ดแวร์โดยสมบูรณ์ มีหน้าที่จัดคิวของโปรเซสในสถานะพร้อม (ready state) เมื่อใดที่ส่วนนี้ทำงานมันจะคัดเลือกเอาโปรซสที่เหมาะที่สุดในคิวของสถานะพร้อม เพื่อให้โปรเซสนั้นเข้าไปครอบครองซีพียูที่ว่างอยู่ โดยเรียกใช้ตัวส่งในส่วนของเคอร์เนล รูปที่ 8.7 แสดงระดับชั้นของตัวจัดคิดระยะสั้น
        ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager) เป็นระดับชั้นของส่วนที่หน้าที่จัดสรรหาทรัพยากรอื่นๆในระบบ ดังแสดงในรูปที่ 8.8 บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กัน (ดังแสดงในรูปที่8.9 ) ทั้งนี้เพราะหลังจากที่ตัวจัดคิวระยะสั้นส่งโปรเซสเข้าไปในสถานะรันแล้ว โปรเซสนั้นอาจต้องการทรัพยากรอื่นๆ ในระบบ ดังนั้นจึงต้องเรียกใช้รูทีนในชั้นผู้จัดการทรัพยากร
        ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler) เป็นชั้นของระบบปฏิบัติที่เริ่มมีความใกล้ชิดกับผู้ใช้และห่างไกลกับฮาร์ดแวร์ของเครื่องมากขึ้น มีหน้าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่นสร้างโปรเซสต่าง ๆ ใหม่เข้ามาในระบบและยุติโปรเซสเมื่อโปรเซสทำงานเสร็จสิ้นลง การทำงานของตัวจัดคิวระยะยาวต้องใช้รูทีนต่างๆ ในชั้นที่ 1 ถึง 6 ช่วยในการทำงาน (รูปที่ 8.10 แสดงตำแหน่งของตัวจัดคิวระยะยาว)
ชั้นที่ 8 เชลล์ (shell) หรือผู้แปลคำสั่ง (command interpreter) เป็นชั้นสุดท้ายซึ่งเป็นชั้นที่ใกล้ชิดกับผู้ใช้มากที่สุด มีหน้าที่ติดต่อกับผู้ใช้โดยตรง เช่น ส่งเครื่องหมายพร้อมต์ (prompt) แสดงออกทางจอภาพ รับคำสั่งต่างๆ ของผู้ใช้มาตีความคำสั่งและเรียกรูทีนต่างๆของชั้นล่างๆ เพื่อให้ได้งานตามคำสั่งที่ได้รับ 
               
9. ในการจัดการกับโปรเซส ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ระบบปฏิบัติการบางระบบ   เช่น ระบบปฏิบัติการดอสหรือเอ็มเอสดอล (MS-DOS)มีการจัดการโปรเซสที่ค่อนข้างง่าย เนื่องจากจัดการโปรเซสแบบผู้ใช้คนเดียว (Sing User)ทำให้การใช้งานซีพียูอาจไม่ได้รับความคุ้มค่านัก แต่ก็เป็นระบบปฏิบัติการที่ออกแบบง่ายเพราะไม่ค่อยมีความสลับซับซ้อน   อีกทั้งยังใช้ทรัพยากรค่อนข้างน้อย
แต่ในระบบปฏิบัติการที่ออกแบบมาใช้งานกับระบบใหญ่ ๆ นั้นจะถูกออกแบบมาเพื่อรองรับการใช้งานหลายๆ คน ( Multiuser)  ซึ่งอาจมีซีพียูหนึ่งตัวหรือมากกว่า (Multiprocessor) ก็เป็นได้  ดังนั้นระบบปฏิบัติการที่ใช้กับระบบคอมพิงเตอร์ดังกล่าว  จำเป็นต้องได้รับการออกแบบที่ดี  และที่สำคัญย่อมมีความสลับซับซ้อนยิ่งขึ้นด้วย
สำหรับระบบคอมพิวเตอร์ที่ส่วนใหญ่มักมีเพียงซีพียูเดียว  และใช้ระบบปฏิบัติการที่รองรับการใช้งานหลายๆโปรแกรมนั้น   ในความเป็นจริง ซีพียูจะทำงานได้ทีละงานเท่านั้นซึ่งเป็นลักษณะแบบ  Sequential  Execution  ดังที่นอยมานน์ได้กล่าวไว้   แต่เนื่องด้วยการทำงานของซีพียูมีความรวดเร็วมาก  เกิดสายตามนุษย์ที่จะจับผิดว่าซีพียูทำงานที่ละงานอยู่   ดังนั้นจึงดูเหมือนว่าซีพียูสามารถทำงานได้หลายๆ งานในขณะเดียวกัน งานที่ส่งไปประมวลผลในซีพียู  จะเรียกว่าโปรเซส  โดยโปรเซสคือโปรแกรมที่กำลังถูกประมวลหรือถูกเอ็กซคิวต์ หรือ อาจกล่าวอีกนัยหนึ่งว่า โปรแกรมนั้นทำการครอบครองซีพียูในขณะนั้นอยู่  ซึ่งกระบวนการดังกล่าว  ซีพียูก็ต้องมีการบวนการจัดการโปรเซสที่ครอบครองรวมถึงการจัดการกับโปรเซสอื่น ๆ ที่ต้องการขอใช้บริการซีพียู

10. ในการจัดการกับหน่วยความจำ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ

การจัดสรรหน่วยความจำ

การจัดการอุปกรณ์

การจัดการข้อมูล

11. ในการจัดการกับแฟ้มข้อมูล ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
                การสร้างแฟ้มข้อมูล (file creating) คือ การสร้างแฟ้มข้อมูลเพื่อนำมาใช้ในการประมวลผล ส่วนใหญ่จะสร้างจากเอกสารเบื้องต้น (source document) การสร้างแฟ้มข้อมูลจะต้องเริ่มจากการพิจารณากำหนดสื่อข้อมูลการออกแบบฟอร์มของระเบียน การกำหนดโครงสร้างการจัดเก็บแฟ้มข้อมูล (file organization) บนสื่ออุปกรณ์
การปรับปรุงรักษาแฟ้มข้อมูลแบ่งออกได้ 2 ประเภท คือ
                1) การค้นคืนระเบียนในแฟ้มข้อมูล (retrieving) คือ การค้นหาข้อมูลที่ต้องการหรือเลือกข้อมูลบางระเบียนมาใช้เพื่องานใดงานหนึ่ง การค้นหาระเบียนจะทำได้ ด้วยการเลือกคีย์ฟิลด์ เป็นตัวกำหนดเพื่อที่จะนำไปค้นหาระเบียนที่ต้องการในแฟ้มข้อมูล ซึ่งอาจจะมีการกำหนเงื่อนไขของการค้นหา เช่น ต้องการหาว่า พนักงานที่ชื่อสมชายมีอยู่กี่คน
                2) การปรับเปลี่ยนข้อมูล (updating) เมื่อมีแฟ้มข้อมูลที่จะนำมาใช้ในการประมวลผลก็จำเป็นที่จะต้องทำหรือรักษาแฟ้มข้อมูลนั้นให้ทันสมัยอยู่เสมอ อาจจะต้องมีการเพิ่มบางระเบียนเข้าไป (adding) แก้ไขเปลี่ยนแปลงค่าฟิลด์ใดฟิลด์หนึ่ง (changing) หรือลบบางระเบียนออกไป (deleting)

12. ในการจัดการกับอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
                ติดตามสถานะของอุปกรณ์ทุกชิ้น
                กำหนดอุปกรณ์ให้ใช้งาน
                การยกให้ (Dedicated Device)
                การแบ่งปัน (Shared Device)
                การจำลอง (Virtual Device)
                การจัดสรรอุปกรณ์ (Allocate)
                การเรียกคืน (Deallocate)

13. ในการจัดการกับหน่วยความจำสำรอง เช่น ดิสก์ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=ระบบปฏิบัติการทำหน้าที่โอนถ่ายข้อมูลไปจัดเก็บในอุปกรณ์บันทึกข้อมูล

14. จงสรุปงานบริการของระบบปฏิบัติการมาพอเข้าใจ
=ระบบปฏิบัติการจะเป็นเหมือนตัวกลางที่เชื่อมต่อระหว่างคอมพิวเตอร์กับผู้ใช้งาน จะรับข้อมูลทางเมาส์หรือคีย์บอร์ด จากนั้นจะส่งไปยัง CPU เพื่อให้ประมวลผลออกมา แสดงผลจะอยู่ในรูปของเสียงหรือภาพ

15 ในการติดต่อระหว่างโปรเซสกับระบบปฏิบัติการ จะเกี่ยวข้องกับกลุ่มงานใดบ้าง จงอธิบาย
=สถานะของโปรเซส (Process Status) ก็จะมี  สถานะเริ่มต้น (New Status) ,สถานะพร้อม (Ready Status) ,สถานะรัน (Running Status),สถานะรอ (Wait Status),สถานะบล็อก (Block Status)และสถานะสิ้นสุด (Terminate Status)