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

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


โครงสร้างของโปรแกรม1 โปรแกรมปาสคาล
   ปรแกรมในภาษาปาสคาล แบ่งเป็น 3 ส่วนคือ
1. ส่วนหัว (Heading) เป็นการประกาศชื่อของโปรแกรม ขึ้นต้นด้วยคำว่า PROGRAM ตามด้วยชื่อของโปรแกรม และจบบรรทัดด้วย ;
รูปแบบ
1. ส่วนหัว (Heading) เป็นการประกาศชื่อของโปรแกรม ขึ้นต้นด้วยคำว่า PROGRAM ตามด้วยชื่อของโปรแกรม และจบบรรทัดด้วย ;รูปแบบPROGRAM ชื่อโปรแกรม (รายชื่ออุปกรณ์);ตัวอย่าง PROGRAM EXAM1; PROGRAM EXAM1(INPUT,OUTPUT);ข้อสังเกต ชื่ออุปกรณ์ คือ INPUT, OUTPUT หรือชื่อของไฟล์ที่เกี่ยวข้องภายในโปรแกรมถ้าไม่ระบุจะถือว่า INPUT เข้าทาง keyboard และ OUTPUT ออกทางจอภาพ
2. ส่วนข้อกำหนด (Declaration part) คือส่วนตั้งแต่ส่วนหัวไปจนถึงคำว่า BEGIN ของโปรแกรมหลัก และเป็นส่วนที่เรากำหนดค่าต่าง ๆ ดังนี้
2.1 VAR เป็นการกำหนดแบบของข้อมูลให้แก่ตัวแปร
รูปแบบ
VAR รายชื่อตัวแปร : ประเภทของข้อมูล;
ตัวอย่าง
VAR I,J,K : INTEGER;
NAME : STRING;
SALARY : REAL;
2.2 TYPE เป็นการกำหนดแบบของข้อมูลขึ้นใหม่
รูปแบบ
TYPE ชื่อของแบบ = ประเภทหรือค่าของข้อมูล;
ตัวอย่าง
TYPE SCORE = INTEGER;
WEEK = (MON, TUE, WED, THU, FRI);
VAR TEST, MIDTERM, FINAL : SCORE;
DAY : WEEK;

จากตัวอย่างต้องประกาศชื่อแบบของตัวแปรก่อนแล้วจึงประกาศชื่อตัวแปรที่เป็นแบบ
2.3 CONST เป็นการกำหนดค่าคงที่ 
รูปแบบที่ 1
CONST รายชื่อค่าคงที่ = ค่าที่กำหนด;
รูปแบบที่ 2
CONST รายชื่อค่าคงที่ : ประเภทของข้อมูล = ค่าที่กำหนด;
ตัวอย่าง
CONST HEAD = ‘EXAMINATION’;
CONST A = 15;
CONST SALARY : REAL = 8000.00;
2.4 LABEL ใช้คู่กับคำสั่ง GOTO ภายในโปรแกรม
รูปแบบ
LABEL รายชื่อของ LABEL;
ตัวอย่าง
LABEL 256,XXX;
เช่น GOTO 256; GOTO XXX;
3. ส่วนคำสั่งต่าง ๆ (Statement Part) เป็นส่วนสุดท้ายของโปรแกรม ขึ้นต้นด้วย “BEGIN” และปิดท้ายด้วย “END.”
ตัวอย่าง
BEGIN
Statement หรือคำสั่งต่าง ๆ ;
END.
2. ส่วนข้อกำหนด (Declaration part) คือส่วนตั้งแต่ส่วนหัวไปจนถึงคำว่า BEGIN ของโปรแกรมหลัก และเป็นส่วนที่เรากำหนดค่าต่าง ๆ ดังนี้ 2.1 VAR เป็นการกำหนดแบบของข้อมูลให้แก่ตัวแปรรูปแบบ VAR รายชื่อตัวแปร : ประเภทของข้อมูล;ตัวอย่าง VAR I,J,K : INTEGER; NAME : STRING; SALARY : REAL; 2.2 TYPE เป็นการกำหนดแบบของข้อมูลขึ้นใหม่รูปแบบ TYPE ชื่อของแบบ = ประเภทหรือค่าของข้อมูล;ตัวอย่าง TYPE SCORE = INTEGER; WEEK = (MON, TUE, WED, THU, FRI); VAR TEST, MIDTERM, FINAL : SCORE; DAY : WEEK;
จากตัวอย่างต้องประกาศชื่อแบบของตัวแปรก่อนแล้วจึงประกาศชื่อตัวแปรที่เป็นแบบ 2.3 CONST เป็นการกำหนดค่าคงที่ รูปแบบที่ 1 CONST รายชื่อค่าคงที่ = ค่าที่กำหนด;รูปแบบที่ 2 CONST รายชื่อค่าคงที่ : ประเภทของข้อมูล = ค่าที่กำหนด;ตัวอย่าง CONST HEAD = ‘EXAMINATION’; CONST A = 15; CONST SALARY : REAL = 8000.00; 2.4 LABEL ใช้คู่กับคำสั่ง GOTO ภายในโปรแกรมรูปแบบ  LABEL รายชื่อของ LABEL;ตัวอย่าง LABEL 256,XXX;เช่น GOTO 256; GOTO XXX; 3. ส่วนคำสั่งต่าง ๆ (Statement Part) เป็นส่วนสุดท้ายของโปรแกรม ขึ้นต้นด้วย “BEGIN” และปิดท้ายด้วย “END.”ตัวอย่าง BEGIN Statement หรือคำสั่งต่าง ๆ ; END.     2 โปรแกรมภาษา Cโครงสร้างของภาษา C
ทุกโปรแกรมของภาษา C มีโครงสร้างเป็นลักษณะดังรูป
ทุกโปรแกรมของภาษา C มีโครงสร้างเป็นลักษณะดังรูปhttp://itd.htc.ac.th/st_it50/it5016/nidz/Web_C/imgs/clip_image001_0001.gif 3 Basic
โดรงสร้างในการเขียนโปรแกรมด้วย Visual Basic
  • แบบ
  • Implicit
  • แบบ
  • Explicit
  • การตั้งชื่อคอนโทรลและอ๊อบเจ็กต์ ตามคำแนะนำของไมโครซอฟท์
  • ตัวแปรแบบ
  • Local
  • ตัวแปรแบบ
  • Public
  • แบบสแตติก
  • แบบไดนามิก
  • ด้านคณิตศาสตร์
  • ด้านตรรกะ
  • ด้านการเปรียบเทียบ
  • ด้านเชื่อมข้อความ
  4 Assembly       โปรแกรม จะถูกเก็บไว้ในหน่วยความจำ ซึ่งอยู่ในรูปแบบของเลขไบนารี่ที่เรียกว่าภาษา Machine ซึ่งเป็นภาษาที่สามารถ ติดต่อให้คอมพิวเตอร์ เข้าใจได้ ภาษา Machine นี้จะจัดให้อยู่ในรูปแบบที่เป็นเลขฐานสิบหก (HEX) เช่น คำสั่ง 8 บิต 11101011B (B-ไบนารี่) เขียนได้เป็น 0EBH(H-ฐานสิบหก) แต่ก็เป็นการที่จะเข้าใจความหมาย ได้ยากในการใช้งาน การที่จะทำความเข้าใจภาษา Machine จะมีการใช้สัญลักษณ์ (Symbols) ที่เรียกว่า Mnemonics เพื่อแทนความหมายของคำสั่ง เช่น MOV A,#67H หมายความว่านำข้อมูลค่าคงที่ 67H ไปเก็บไว้ใน reg. A) โปรแกรมที่เขียนด้วยรหัส Mnemonics เรียกว่า ภาษา Assembly และก่อนที่จะให้ CPU ทำงานตามโปรแกรมที่เขียนด้วยภาษา Assembly ได้ แต่ต้องเปลี่ยนให้เป็นภาษา Machine ก่อน โดยใช้ โปรแกรมแอสเซมเบลอ   5 Jawaโครงสร้างโปรแกรมภาษาจาวา 
public class ชื่อคลาส {       public static void main(String[] agrs)      {           ประโยคคำสั่งต่างๆ ของโปรแกรม;          ..................................................;      } }
ตัวอย่างโปรแกรมภาษาจาวาไฟล์ Example.java class Example {      public static void main(String[] args)     {           String dataname = “Java Language“;           System.out.println(“My name is OAK“);           System.out.println(“OAK is a “ + dataname +“. “);      } }หมายเหตุ Compile : javac Example.java จะได้ไฟล์ Example.classRun         : java ExampleOutput    : My name is OAK                  OAK is a Java Language
คำอธิบาย- method main( ) จะเป็น method หลักที่ใช้ในการ run program ดังนั้นการกระทำต่าง ๆ ที่ต้องการให้เกิดขึ้น ในการ run program จะต้องทำการเขียนคำสั่งไว้ใน method นี้- การแสดงผลทางจอภาพ (Console Output) ใช้ method ชื่อ "println" ซึ่งอยู่ใน System.outคำสั่งนี้จะรับข้อมูลที่เป็น String เพื่อนำมาแสดงผลทางจอภาพ6 Cobolภาษาโคบอล (COBOL programming language) เป็นภาษาโปรแกรมระดับสูงภาษาหนึ่งที่อยู่มาอย่างยาวนาน COBOL ย่อมาจาก Common Business Oriented Language เป็นภาษาที่นิยมนำไปใช้ทางธุรกิจ ถูกพัฒนาขึ้นเมื่อ ค.ศ. 1959 โดยนักคอมพิวเตอร์กลุ่มหนึ่งที่เรียกตัวเองว่า Conference on Data Systems Languages (CODASYL) และตั้งแต่ปี ค.ศ. 1959 ภาษาโคบอลมีการแก้ไขและปรับปรุงอยู่ตลอด ดังนั้น เพื่อขจัดปัญหาความแตกต่างของตัวภาษาโคบอลในแต่ละเวอร์ชัน สถาบันมาตรฐานแห่งชาติอเมริกัน (ANSI) จึงได้พัฒนามาตรฐานกลางขึ้นมาในปี ค.ศ. 1968 เป็นที่รู้จักกันในนามของ ANS COBOL ต่อมาเมื่อ ปี ค.ศ. 1974 ทาง ANSI ได้นำเสนอ ANS COBOL รุ่นใหม่ที่มีคุณสมบัติที่ดีกว่ารุ่น 1968 และในปี ค.ศ. 1985 ANSI ก็นำเสนออีกรุ่นหนึ่งที่มีคุณสมบัติมากกว่ารุ่นปี 1974
รูปแบบภาษาโคบอลแบ่งออกเป็น 4 ดิวิชั่น คือ1.             Identification division การกำหนดชื่อโปรแกรมและชื่อผู้เขียน2.             Environment division การอธิบายเกี่ยวกับคอมพิวเตอร์3.             Data division การอธิบายเกี่ยวกับการประมวลผลข้อมูล4.             Procedure division การอธิบายเกี่ยวกับขั้นตอนการประมวลผล     


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

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

ใบงานที่ 9
โครงสร้างระบบคอมพิวเตอร์  และโครงสร้างของระบบปฏิบัติการ
1.             การขัดจังหวะ หรือการอินเตอร์รัปต์ หมายถึงอะไร จงอธิบาย
ตอบ  การอินเตอร์รัพท์ คือ การติดต่อเพื่อรับส่งข้อมูลกันระหว่างอุปกรณ์ภายนอกต่างๆของคอมพิวเตอร์ เช่น จอภาพ, แป้นพิมพ์, เครื่องพิมพ์, เม้าส์ และอื่ นๆ กับ ไมโครโปรเซสเซอร์ ซึ่งจะมีการติดต่อกันอยู่เสมอๆ การที่จะทำให้ระบบมีประสิทธิภาพมากที่สุดนั้นก็คือ การมีการติด ต่อหรือการอินเทอร์รัพท์ที่ดีนั่นเอง
2.             จงเปรียบเทียบการอินเตอร์รัปต์ กับการดำเนินชีวิตของมนุษย์โดยทั่วไป ว่ามีความเกี่ยวข้องกันอย่างไร
ตอบ  Interrupt คือ ความสามารถในการทำให้ไมโครโปรเซสเซอร์หยุดพักจากงานที่กระทำอยู่ในปัจจุบัน แล้วกระโดดไปทำงานอีกงานหนึ่งจนเสร็จแล้ว จึงกระโดดกลับมาทำงานชิ้นเดิมที่หยุดพักไว้ต่อไป
การดำเนินชีวิต (หรือเรียกทับศัพท์ว่า ไลฟ์สไตล์) หมายถึง วิถีการดำเนินชีวิตของบุคคล โดยที่ลักษณะของพฤติกรรมต่างๆจะเป็นตัวบ่งบอกถึง รูปแบบการดำเนินชีวิต แต่ละแบบพฤติกรรมในการเข้าสังคม ในการบริโภค ในการหาความบันเทิง การพักผ่อนหย่อนใจใช้เวลาว่าง และการแต่งตัว ล้วนเป็นส่วนประกอบของรูปแบบการดำเนินชีวิต รูปแบบการดำเนินชีวิตจะถูกดำเนินเป็น อุปนิสัย เป็นวิธีประจำที่กระทำสิ่งต่างๆ
3.             สาเหตุที่การป้องฮาร์ดแวร์ มีบทบาทสำคัญต่อระบบปฏิบัติการที่รองรับหลายๆ งาน อยากทราบว่าเป็นเพราะอะไร จงอธิบาย
ตอบ  การป้องกันของฮาร์ดแวร์ (Hardware Protection)
 การป้องกันข้อผิดพลาดของอุปกรณ์รับ-ส่งข้อมูล (I/O Protection)
 การป้องกันข้อผิดพลาด เนื่องจาการเข้าถึงข้อมูลผิดตำแหน่ง
 การป้องกันข้อผิดพลาดของหน่วยประมวลผลกลาง
4.             จงเปรียบเทียบความแตกต่างระหว่างโหมดการทำงานของผู้ใช้ กับโหมดการทำงานของระบบมาให้พอเข้าใจ
ตอบ     การใช้งานเครือข่ายไร้สายนั้น นอกจากเราจะใช้มันเป็นตัวเชื่อมต่อเข้ากับเครือข่ายหลักแบบมีสาย หรือที่เราเรียกว่า Infrastructure Mode หรือการทำงานที่ Access Point ธรรมดาๆทั่วไปทำงานได้เป็นพื้นฐานอยู่แล้ว แต่ด้วยแต่ละพื้นที่ ที่จำเป็นต้องการใช้เครือข่าย wireless อาจจะประสบปัญหาเช่น ความแรงไม่พอ ต้องการต่อ Outdoor Wi-Fi Hotspot ที่อยู่ในระยะไกล, ต้องการแชร์อินเตอร์เน็ตที่มาจากผู้ให้บริการ, ต้องการขยายพื้นที่ใช้งาน, ต้องการแชร์อินเตอร์เน็ตบอร์ดแบนด์ หรือแม้แต่การเชื่อมต่อแบบ Point to Point
โหมดการทำงานของระบบคือ การนำเสนอหรือการจำลองลักษณะของระบบอื่นๆตลอดช่วงเวลาที่สนใจ ซึ่ง   ในกรณีที่กล่าวถึง Computer simulation จะหมายถึงโปรแกรมคอมพิวเตอร์ที่จำลองการทำงานของระบบที่สนใจ
5.             ระบบปฏิบัติการจะมีการป้องกันอินพุต และเอาท์พุตอย่างไร จงอธิบาย
ตอบ   สำหรับระบบอินพุต/เอาต์พุต( I/O ) ของ Linux มีความใกล้เคียงกับระบบอินพุต/เอาต์พุตใน UNIX เป็น    อย่างมากนั่นคือดีไวซ์ไดร์เวอร์ทั้งหมดปรากฏตัวเป็นไฟล์ธรรมดา ผู้ใช้สามารถแอ็กเซสดีไวซ์ได้เหมือนกับการเปิดไฟล์โดยดีไวซ์เป็นเสมือนออปเจ็กต์ในระบบไฟล์ ผู้บริหารระบบสามารถสร้างไฟล์พิเศษภายในระบบไฟล์ที่ประกอบด้วยการอ้างถึงดีไวซ์ไดร์เวอร์ที่ให้ผู้ใช้สามารถเปิดไฟล์เพื่ออ่าน หรือเขียนลงดีไวซ์ที่อ้างอิงนี้ได้ ผู้บริหารระบบยังสามารถกำหนดสิทธิการเข้าถึงดีไวซ์โดยอาศัยหลักการเข้าถึงไฟล์ที่มีการป้องกันโดยพิจารณาบุคคลที่สามารถใช้งานได้
6.             ระบบปฏิบัติการจะมีการป้องกันหน่วยความจำอย่างไร จงอธิบาย
ตอบ  โดยปกติจำนวนบิต (Bits) ที่เก็บอยู่ในตารางเพจ (Page Table) เราสามารถกำหนดบิตเพื่อใช้การตรวจสอบและกำหนดเพจในการ อ่าน-เขียน (Read-Write) หรืออ่านข้อมูลเท่านั้น (Read-Only) ซึ่งเรียกบิตพิเศษนี้ว่า กลุ่มบิตป้องกัน (Associating Protection Bits)ให้กับทุกๆ เฟรม ที่อยู่ในหน่วยความจำ (Main Memory)
7.             ระบบปฏิบัติการจะมีการป้องกันซีพียูอย่างไร จงอธิบาย
ตอบ  ซีพียู (CPU: Central Processing Unit) หรือหน่วยประมวลผล นับเป็นหัวใจของคอมพิวเตอร์ ทำหน้าที่ประมวลผลต่าง ๆ ตามที่โปรแกรมไว้ โดยปกติซีพียูเป็นอุปกรณ์/ชิ้นส่วนที่เสียหายยากมากจากการใช้งานปกติ ซึ่งซีพียูอาจจะทำงานได้นานมากจนเราเลิกใช้เครื่องไปเลย แต่ถ้าเราโชคร้ายโดยถูกผู้ผลิตนำซีพียูทีมีความเร็วต่ำมาหลอกขายว่าเป็นซีพียูความเร็วสูง (CPU Remark) หรือทำการ PUSH ให้ซีพียูทำงานเร็วกว่าความเร็วที่กำหนดให้ ทำให้อายุการใช้งานของซีพียูสั้นลงกว่าปกติ อีกสาเหตุหนึ่งที่ทำให้อายุการใช้งานซีพียูสั้นลงก็คือ พัดลมระบายอากาศ (Ventilation Fan) ที่ติดตั้งอยู่ที่ชุดจ่ายไฟฟ้า (Power Supply) ของคอมพิวเตอร์เสีย ทำให้ซีพียูต้องทำงานที่ความร้อนสูงตลอดเวลา ถ้าซีพียูเสียก็ต้องซื้อใหม่อย่างเดียว ไม่สามารถทำการซ่อมหรือแก้ไขได้
8.             โครงสร้างของระบบปฏิบัติการประกอบด้วยกี่ส่วน อะไรบ้าง
ตอบ   3 ส่วน คือ
ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆ
ตัวควบคุมมอนิเตอร์ (monitor control) มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ

9.             ในการจัดการกับโปรเซส ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ตอบ  ระบบปฏิบัติการบางระบบ   เช่น ระบบปฏิบัติการดอสหรือเอ็มเอสดอล (MS-DOS)มีการจัดการโปรเซสที่ค่อนข้างง่าย เนื่องจากจัดการโปรเซสแบบผู้ใช้คนเดียว (Sing User)ทำให้การใช้งานซีพียูอาจไม่ได้รับความคุ้มค่านัก แต่ก็เป็นระบบปฎิบัติการที่ออกแบบง่ายเพราะไม่ค่อยมีความสลับซับซ้อน   อีกทั้งยังใช้ทรัพยากรค่อนข้างน้อย
10.      ในการจัดการกับหน่วยความจำ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ตอบ  การจัดการหน่วยความจำ เป็นกระบวนการในการจัดการหน่วยความจำคอมพิวเตอร์ นั่นคือการที่สามารถจองหน่วยความจำ เมื่อมีการร้องขอ และคืนหน่วยความจำไปเมื่อไม่มีการใช้งานวิธีการจัดการหน่วยความจำได้พัฒนาเรื่อยมาเพื่อให้มีประสิทธิภาพในการจัดการหน่วยความจำเพิ่มขึ้น โดยเฉพาะอย่างยิ่งวิธีการใช้หน่วยความจำเสมือน ซึ่งเป็นวิธีการที่นำพื้นที่ของหน่วยความจำรองมาทำหน้าที่ในลักษณะเดียวกับหน่วยความจำหลัก ทำให้ปริมาณหน่วยความจำมีมากขึ้น ดังนั้นประสิทธิภาพของตัวจัดการหน่วยความจำเสมือนจึงมีผลต่อประสิทธิภาพระบบเป็นอย่างมาก

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

12.      ในการจัดการกับอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ตอบ  ติดตามสถานะของอุปกรณ์ทุกชิ้น
     กำหนดอุปกรณ์ให้ใช้งาน
    การยกให้ (Dedicated Device)
     การแบ่งปัน (Shared Device)
การจำลอง (Virtual Device)
การจัดสรรอุปกรณ์ (Allocate)
การเรียกคืน (Deallocate)
13.      ในการจัดการกับหน่วยความจำสำรอง เช่น ดิสก์ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ตอบ  ชิ้นส่วนที่ทำงานช้าที่สุดของคอมพิวเตอร์คือ  ดิสก์ไดรฟ์  มีวิธีการแก้ปัญหาคือ  การสร้างไฟล์ให้อยู่บริเวณต่อเนื่องกันทั้งไฟล์  วิธีสองคือ การหันไปใช้แรมดิสก์แทนไดรฟ์จริง  ซึ่งแรมดิสก์เป็นส่วนหนึ่งของหน่วยความจำของคอมพิวเตอร์ แต่ก็ยังไม่สามารถลดหรือจำกัดการอ่านเขียนดิสก์ได้ทั้งหมด  เพื่อการเพิ่มประสิทธิภาพการเข้าอ่านเขียนดิสก์  อาจแก้ไขปัญหาโดยการใช้ดิสก์แคช  โดยความหมายของดิสก์แคชก็คือ  หน่วยความจำชนิดหนึ่งที่เก็บข้อมูลชั่วคราวที่เราใช้บ่อยๆ ถี่ๆ  หรือเก็บข้อมูลที่โปรแกรมแอพพลิเคชันมักร้องขอใช้มากครั้ง  ผลก็คือ  การอ่านเขียนดิสก์ครั้งต่อไป  ก็ไม่จำเป็นต้องเข้าอ่านดิสก์  แต่ไปอ่านที่หน่วยความจำแคชแทน 
14.      จงสรุปงานบริการของระบบปฏิบัติการมาพอเข้าใจ
ตอบ ระบบปฏิบัติการ (operating system) หรือ โอเอส (OS) เป็นซอฟต์แวร์ที่ทำหน้าที่เป็นตัวกลาง ระหว่างฮาร์ดแวร์และซอฟต์แวร์ประยุกต์ทั่วไป บางครั้งเราอาจะเห็นระบบปฏิบัติการเป็นเฟิร์มแวร์ก็ได้ระบบปฏิบัติการมีหน้าที่หลัก ๆ คือ การจัดสรรทรัพยากรในเครื่องคอมพิวเตอร์ เพื่อให้บริการซอฟต์แวร์ประยุกต์ ในเรื่องการรับส่งและจัดเก็บข้อมูลกับฮาร์ดแวร์ เช่น การส่งข้อมูลภาพไปแสดงผลที่จอภาพ การส่งข้อมูลไปเก็บหรืออ่านจากฮาร์ดดิสก์ การรับส่งข้อมูลในระบบเครือข่าย การส่งสัญญานเสียงไปออกลำโพง หรือจัดสรรพื้นที่ในหน่วยความจำ ตามที่ซอฟต์แวร์ประยุกต์ร้องขอ รวมทั้งทำหน้าที่จัดสรรเวลาการใช้หน่วยประมวลผลกลาง ในกรณีที่อนุญาตให้ซอฟต์แวร์ประยุกต์หลายๆ ตัวทำงานพร้อมๆ กันระบบปฏิบัติการ ช่วยให้ตัวซอฟต์แวร์ประยุกต์ ไม่ต้องจัดการเรื่องเหล่านั้นด้วยตนเอง เพียงแค่เรียกใช้บริการจากระบบปฏิบัติการก็พอ ทำให้พัฒนาซอฟต์แวร์ประยุกต์ได้ง่ายขึ้น
15.      ในการติดต่อระหว่างโปรเซสกับระบบปฏิบัติการ จะเกี่ยวข้องกับกลุ่มงานใดบ้าง จงอธิบาย
ตอบ  หน้าที่อันสำคัญอีกประการหนึ่งของระบบปฏิบัติการก็คือ จัดสรรการใช้ทรัพยากรของระบบเพื่อให้เกิดประโยชน์สูงสุด ถ้าระบบปฏิบัติการจัดสรรทรัพยากรได้อย่างมี ประสิทธิภาพระบบก็สามารถรันโปรแกรมได้รวดเร็ว และได้งานเพิ่มขึ้น เนื่องจากหน้าที่ความรับผิดชอบของระบบปฏิบัติการในการควบคุมดูแลการทำงานของระบบเครื่องคอมพิวเตอร์มีมากมาย จึงทำให้โครงสร้างทางโปรแกรมของระบบปฏิบัติ-การ มีความสลับซับซ้อนมาก เพื่อความสะดวกในการออกแบบ