53
บทที1 องค์ประกอบของระบบคอมพิวเตอร์และระบบปฏิบัติการ 1.1 ระบบคอมพิวเตอร์พื้นฐาน วัตถุประสงค์ของระบบปฏิบัติการคือ 1. เตรียมสิ่งแวดล้อมเพื่อให้ผู้ใช้สามารถ execute โปรแกรมได้ 2. ทําให้ระบบคอมพิวเตอร์ใช้ง่ายขึ ้น 3. ใช้ฮาร์ดแวร์ให้เกิดประสิทธิภาพอย่างสูงสุด ระบบปฏิบัติการคืออะไร ระบบคอมพิวเตอร์แบ่งออกเป็น 4 ส่วน 1. ฮาร์ดแวร์ สนับสนุนปัจจัยในการคํานวณ เช่น CPU , หน่วยความจํา , อุปกรณ์รับส่งข้อมูล 2. ระบบปฏิบัติการ ควบคุมและบริหารการใช้ปัจจัยระหว่างโปรแกรม ต่าง สําหรับผู้ใช้ เช่น Dos , Unix , Windows 2000 , Windows NT ฯลฯ 3. โปรแกรมประยุกต์ กําหนดทิศทางในการใช้ปัจจัยสําหรับการแก้ปัญหาต่าง ของผู้ใช้ เช่น compilers , database systems , video games , business programs 4. ผู ้ใช้ เช่น บุคลากร (people) , เครื่องจักร (machines) , คอมพิวเตอร์เครื่องอื่น (other computers)

บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

บทท 1 องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ

1.1 ระบบคอมพวเตอรพนฐาน

วตถประสงคของระบบปฏบตการคอ

1. เตรยมสงแวดลอมเพอใหผใชสามารถ execute โปรแกรมได 2. ทาใหระบบคอมพวเตอรใชงายขน 3. ใชฮารดแวรใหเกดประสทธภาพอยางสงสด

ระบบปฏบตการคออะไร

ระบบคอมพวเตอรแบงออกเปน 4 สวน

1. ฮารดแวร สนบสนนปจจยในการคานวณ เชน CPU , หนวยความจา , อปกรณรบสงขอมล 2. ระบบปฏบตการ ควบคมและบรหารการใชปจจยระหวางโปรแกรม ตาง ๆ สาหรบผใช

เชน Dos , Unix , Windows 2000 , Windows NT ฯลฯ 3. โปรแกรมประยกต กาหนดทศทางในการใชปจจยสาหรบการแกปญหาตาง ๆ ของผใช เชน

compilers , database systems , video games , business programs 4. ผใช เชน บคลากร (people) , เครองจกร (machines) , คอมพวเตอรเครองอน ๆ (other

computers)

Page 2: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 2

รปท 1.1 สวนประกอบของระบบคอมพวเตอร

นยามของระบบปฏบตการ 1. Resource allocator – บรหารการจดสรรทรพยากร เชน การจดการ Harddisk , memory ,

printer ใหเกดประโยชนไดอยางเตมท 2. Control program – ควบคมการ execute โปรแกรมของผใช และการทางานของอปกรณ

รบสงขอมล 3. Kernel (แกนแท) – โปรแกรมททางานอยตลอดเวลาบนคอมพวเตอร

โดยทวไปแลวความหมายของระบบปฏบตการ คอกลมโปรแกรมซงไดรบการจดระเบยบให

เปนสวนเชอมโยงระหวางเครองและผใชเครอง โดยจะเอออานวยการพฒนาและการใชโปรแกรมตางๆ รวมถงการจดสรรทรพยากร (resource) ตางๆ ใหมประสทธผลทด หากจะกลาวใหเฉพาะเจาะจงกวาน หนาทของระบบปฏบตการ สามารถแบงไดเปนสองหนาทใหญๆ ดวยกนคอ

User1

User4

User3

User2

...

Compier Assembler Lex.edier ... Database system

Sys and Application Programs

Operating System

Computer Hardware

Page 3: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 3

1. ควบคมการทางานของโปรแกรมและอปกรณตางๆ โดยเฉพาะอปกรณรบขอมลและแสดงผล (input/output device) ความหมายนรวมถงการเอออานวยใหผใชสามารถใชอปกรณตางๆ อยางสะดวก หนาทนเปนหลกสาคญ ซงจะขาดเสยมไดในระบบปฏบตการทกรปแบบ ตงแคเครองเลกไปจนถงเครองใหญ สาหรบในเครองเลก (microcomputer) ระบบปฏบตการจะเปนแบบงายๆ และทาหนาทควบคมในลกษณะนแตเพยงอยางเดยว จงมกเรยกกนวาเปน โปรแกรมควบคม (Control program หรอ CP) จดประสงคของหนาทน คอการใหความสะดวกแกผใชเครอง 2. จดสรรทรพยากรทใชรวมกน (shared resources) ความหมายของหนาทนจะเหนไดชดในเครองระดบใหญ (mainframe) ซงจะมอปกรณตางๆ จาพวกหนวยประมวลผลกลาง หนวยความจา ฯลฯ ซงมสมรรถนะหรอขนาดใหญ เกนความจาเปนของงานแตละงาน จงมการใชทรพยากรเหลาน รวมกน ในลกษณะของระบบมลตโปรแกรมมง (multiprogramming) หนาทของระบบปฏบตการ จงตองครอบคลมถงการจดสรรทรพยากรเหลาน เพอขจดความชดแยง โดยคานงถงความยตธรรมตอผใชแตละคน และประสทธผลของเครองเปนหลกสาคญ 1.1.1 บอกระบบคอมพวเตอรยคเรมตน

ในสมยแรกเรมรวมป พ.ศ. 2483-2492 คอมพวเตอรมแตเครองเปลาๆ ไมมระบบปฏบต การใดๆเลย ผใชเครองตองเขยนโปรแกรมเปนภาษาเครองทงหมด รวมถงควบคมเครอง ตระเตรยมงาน ตรวจสอบและทาโปรแกรม แตลกษณะการใชเชนน ทาใหประโยชนใชสอย (utilization) ของเครองตามาก โดยเฉพาะเมอเครองในสมยกอนมราคาแพงมากเมอเทยบกบเครองในสมยน ซงมความสามารถทดเทยมกน ดงนน จงมการจางพนกงานคมเครอง (operator) เพอลดเวลาทเสยไปในการตระเตรยมงาน (set - up time) และเวลาทตองเกบกวาด (tear-down time) ซงนอกจากพนกงานคมเครองอาชพจะชานาญกวาผใชแลว ยงสามารถจดงานทมลกษณะคลายคลงกนไวพวกเดยวกน เชนงานทตองใชตวแปลภาษา (translator หรอ compiler) ตวเดยวกน ลกษณะนเรยกวา เปนการปอนงานแบบกลมดวยมอ (manual batch system) ระบบนกยงไมตองอาศยระบบปฏบตการแตอยางใด 1.1.1.1 การปอนงานแบบกลมโดยอตโนมต

แมวาจะมการใชพนกงานคมเครองมออาชพ แตเวลาของเครองกยงทงเสยเปลาในขณะท พนกงานตรวจสอบความตองการของงาน หางาน (ซงโดยปกตอยในรปของบตรเจาะร และเทปแมเหลก) และปอนงานเขาสเครอง (เชนใสบตรในเครองอานบตร หรอใสเทปในตเทป) รวมถงการนางานนนๆ ออกจากเครอง (เชน เกบเทป เกบบตร หรอฉกกระดาษผลลพธ เปนตน) ดงนนในชวงตนทศวรรษท 5 (พ.ศ. 2493 - 2497) General Motors Research Laboratories ไดพฒนาระบบปฏบตการรนแรกออกมาโดยใชกบเครอง IBM 701 ทใชกนอยในหองทดลองนน

Page 4: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 4

ระบบปฏบตการรนแรกน เรยกวาเปนการประมวลผลแบบกลมโดยอตโนมต (automatic batch processing) ระบบปฏบตการรนแรกน เปนเพยงโปรแกรมเลกๆ ซงจะอยในเครองตลอดเวลา (resident monitor) และจะสงมอบการควบคมเครองใหกบโปรแกรมของผใชทละโปรแกรมเรยงตามลาดบตามกนไป ซงในกรณน จะตองมขอมลปะหนาและทายโปรแกรม เพอแยกงานออกจากกน รวมทงบอกระบบปฏบตการถงลกษณะงาน เชนตวแปลภาษาทตองใช ตเทป และเลขหมายของมวนเทป เปนตน จงเกดเปนภาษาใหมขน คอ ภาษาคมงาน (job control language หรอ JCL) ปญหาทสาคญอกประการหนง คอความแตกตางของความเรว ระหวางหนวยประมวลผลกลาง (central processing unit หรอ cpu) กบอปกรณรบขอมลและแสดงผล แมวาจะไดมการพฒนาอปกรณรบขอมลและแสดงผลอยางไรกตาม แตขดจากดของเครองกลไกกยงทาใหอปกรณเหลาน ชากวาหนวยประมวลผลกลางซงทางานดวยความเรวของวงจรอเลกทรอนกสเปนหลายพนเทา ความแตกตางน ทาใหการใชประโยชนของหนวยประมวลผลกลางตามากตวอยางเชน การแปลภาษาเครองของงานหนง ใชเวลาของหนวยประมวลผลกลางเพยง 4.8 วนาท ขณะทการอานโปรแกรมนน (1579 บตร ดวยความเรว 1,200 บตรตอนาท) ใชเวลา 78.9 วนาท ดงนนหนวยประมวลผลกลางจะตองรอเครองอานบตร 74.1 วนาท หรอรอยละ 93.9 ของเวลาทใชในการทางานชนน เรยกไดวาการใชประโยชน (utilization) ของหนวยประมวลผลกลางเปนเพยงรอยละ 6.1 เทานน ซงหากรวมความลาชาในการแสดงผลเขาไปดวยแลว การใชประโยชนของหนวยประมวลผลกลางกยงต าลงไปอก วธแกปญหาน นบจากสมยแรกเรม ไดแกระบบ buffering ระบบ off-time และระบบ spooling การทางานแบบ buffering

แนวความคดนคอ ใหหนวยรบขอมลและแสดงผล ทางานขนานไปพรอมกนกบหนวยประมวลผลกลางมากทสดเทาทจะทาได วธการคอ ขณะทหนวยประมวลกลาง ประมวลผลขอมลจานวนหนง หนวยรบขอมลจะอานขอมลถดไปเขามาไวในหนวยความจา สวนทเตรยมไวเพอการน ซงเรยกวาบฟเฟอร (buffer) ซงหากการอานขอมล (หรอการพมพผลลพธ) สาหรบขอมลแตละหนวยพอด อปกรณทงสองประเภทกไมตองรอซงกนและกน ทาใหไดประโยชนใชสอยเตมทคอ รอยละรอย แตในความเปนจรงแลวจะเกดความเหลอมลา (mismatch) ของเวลาการทางานสาหรบขอมลแตละหนวย ความเหลอมลานขนกบสาเหตทสาคญสองประการคอ อตราความเรวของอปกรณตางๆ และประเภทของงานเนอหาสาหรบสาเหตแรกนน ไมวาเครองคอมพวเตอรประเภทใด หนวยประมวลผลกลางจะมความเรวสงกวาหนวยรบขอมลและแสดงผลมาก แมวาจะมบฟเฟอร แตละหนวยประมวลผลกยงตองรออยด สวนสาเหตประการทสองน หากงานเปนพวกท

Page 5: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 5

ใชหนวยรบขอมลและแสดงผลมากๆ (I/O bounded) หนวยประมวลผลกลางจาทางานนอย เพราะตองรอขอมลจากหนวยรบขอมล (หรอรอใหหนวยแสดงผลนาผลทไดไปแสดง) ในทานองกลบกน หากงานเปนประเภททใชหนวยประมวลผลกลางมากๆ (cpu bounded) ชวงเวลาทหนวยประมวลผลกลางจะวางกลดลงจนอาจถงกบไมตองรอเลย กลายเปนวา หนวยรบขอมลและแสดงผลตองเปนฝายรอหนวยประมวลผลกลาง ในเครองสมยแรกเรมนน (หรอแมแตในปจจบนเองกตาม) ความเหลอมลาระหวางหนวยประมวลผลกลางตามาก วธการแกทางหนงคอ เพมความเรวของหนวยรบขอมลและแสดงผลแตวธนทาไดยาก เพราะอปกรณเหลานน เปนเครองกลไกซงมขอจากดทางดานความเรวเปนธรรมดาอยแลว จงไดมการนาอปกรณทมความเรวสงขนอกระดบ เชน เทปและจานแมเหลกมาคนระหวางหนวยประมวลผลกลาง และหนวยรบขอมลและแสดงผล สวนอกวธหนงคอ การทางานหลายๆ งานพรอมกน เพอไมใหหนวยประมวลผลกลางตองอยเฉย ขณะรอการรบขอมลหรอแสดงผลของงานหนงงานใด ซงลกษณะน คอการทามลตโปรแกรมมง (multiprogramming) ซงจะกลาวถงตอไป การทางานแบบ off - line ปญหาความเหลมลาของความเรว สามารถผอนหนกใหเปนเบาไดวธหนงคอ การใชเทปแมเหลกมาแทนเครองอานบตรหรอเครองพมพทมความเรวตามาก วธการคอ การจาลองขอมลจากบตรลงบนเทปแมเหลก เมอโปรแกรมตองการอานบตร ระบบปฏบตการจะเปลยนไปอานเทปใหแทน สวนการพมพผลกทาทานองเดยวกน โดยการพมพลงเทปแมเหลกกอน แลวนาเทปนนไปถายออกเครองพมพอกท การถายเทขอมลผานเทปนกระทาไดสองวธคอ ใชเครองอานบตรและเครองพมพทออกแบบมาเปนพเศษ สามารถถายขอมลกบเครองอานเทปแมเหลกไดโดยตรง ไม ตองผานหนวยประมวลผลกลาง สวนอกวธหนงคอ ใชอปกรณมาตรฐานปกตแตใชเครองคอมพวเตอรขนาดเลก เปนตวถายเทขอมล แทนทจะใชเครองใหญ การทางานโดยอาศยเทปแมเหลกน จะตองไดรบความชวยเหลอจากระบบปฏบตการในอนทจะทาใหคาสงรบขอมลหรอแสดงผล (input / output operation) ในโปรแกรมของผใชสามารถเปลยนไปใชกบอปกรณใดกได ขนกบความเหมาะสมในการบรหารระบบ ลกษณะการทางานเชนนเรยกวา อสรภาพจากอปกรณ (device independence) ขอเสยของระบบ off-line คอ โปรแกรมจะตองผานขนตอนมากขน และในการเกบขอมลเทปแมเหลก ตองรอใหมหลายๆ โปรแกรมเสยกอน จงคอยนาเขาเครองคอมพวเตอรใหญเสยทหนง ทาใหผใชตองรอนานขน แมวาประโยชนใชสอยของหนวยประมวลผลกลางจะดขนกตาม การทางานแบบ spooling

Page 6: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 6

เมอเทคโนโลยของจานแมเหลกไดรบการพฒนามากขน ระบบปฏบตการกเรมหนมาใชจานแมเหลกแทนเทปแมเหลกดวยเหตผลสาคญประการหนงทเหนไดชดเจนคอ การทไมสามารถทาการประมวลผลขอมลในเทป ไปพรอมๆ กน กบทถายเทขอมลจากเครองอานบตร ลงเทปมวนเดยวกนนนได

หลกการใชจานแมเหลกมลกษณะคลายกบเทปแมเหลก ขอแตกตางทสาคญมดวยกนสองประการคอ 1. เนองจากการเขาถง (access) จานแมเหลกเปนแบบตรง (direct) ไมใชแบบเรยงลาดบ (sequential) อยางเทปแมเหลก จงทาใหสามรถแยกงานออกจากกนได โดยสรางตารางบงบอกวาขอมล (หรอผลลพธ) ของงานใดอยในสวนใดของจานบนทก 2. เมอการใชจานแมเหลกเปนแบบตามสาย หรอตอตรง (on-line) หนวยประมวลผลทใชในการถายเทขอมลระหวางจานแบะอปกรณรบขอมลและแสดงผล จงตองเปนตวเดยวกบทใชในการประมวลงานของผใช หรอกลาวอกนยหนงคอ ตองมโปรแกรมพเศษตวหนง ทางานคขนานไปกบโปรแกรมของผใช เพอทาการถานเทขอมลกบจานแมเหลก จงเกดเปนการทามลตโปรแกรมมงแบบพนฐานขน

หลกการใชจานแมเหลกแทนอปกรณรบขอมล และแสดงผลน เรยกวา spooling ซงยอมาจาก Simultaneous Peripheral Operation On - Line

ขอดทสาคญของ spooling คอความจาเปนทตองพฒนาระบบมลตโปรแกรมมงแบบพนฐานขน ซงกอใหเกดความกาวหนาตอวงการ โดยเฉพาะทางศาสตรดานระบบปฏบตการระบบนทาใหสามารถเหลอมการประมวลผลของงานหนงกบการรบขอมลและแสดงผล (โดยผานโปรแกรม spool ) ของอกงานหนงได จดนตางกบการใชบฟเฟอร ตรงทการใชบฟเฟอรนนเปนการเหลอมกนระหวางการประมวลผล และการรบและแสดงขอมลของโปรแกรมเดยวกนซงกไมอาจทาไดมากเทาไรนก ดวยจากดอยทขนตอนการทางานของโปรแกรมนนๆ

ขอดอกประการหนงของ spooling คอ ลกษณะการเขาถงแบบตรงของจานแมเหลกงานทถกปอนเขามาแบบเรยงลาดบ สามารถถกจดแยกเปนอสระ เกดเปน job pool ซงระบบปฏบตการสามารถเลอกงานเขาประมวลผล ตามความเหมาะสมได เชนตามความสาคญของงานซงกาหนดโดยผใชหรอผบรหารระบบ หรอตามระดบและลกษณะการใชงานอปกรณตางๆ ในระบบ เชนเลอกงานทใชเทป เมอมตเทปวาง เปนตน ทาใหเกดเปนระบบคดเลอกงาน (job scheduling) แบบพนฐานขน 1.1.1.2 ระบบมลตโปรแกรมมง

แมวา spooling จะเปนการทางานแบบมลตโปรแรมมงอยางงายๆ โดยมโปรแกรมวง

Page 7: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 7

ขนานกนอยสองโปรแกรม คอโปรแกรม spool และโปรแกรมของผใช (ในลกษณะการประมวลผลแบบกลม) แตลกษณะของโปรแกรมทเกยวของ กยงไมอาจใชประโยชนองคประกอบตางๆ ของคอมพวเตอรไดเตมท เหตเพราะโปรแกรมของผใชไดเตมท เหตเพราะโปรแกรมของผใชอาจทางานรวมกบเทปแมเหลก ซงมความเหลอมลาทางความเรวกบหนวยประมวลผลกลางมากอยด ในสมยตอมาจงไดมการขยายการทามลตโปรแกรมมงออกไป เพอใหประโยชนใชสอยของระบบสงขน

หลกการของระบบมลตโปรแกรมมง คอการใหมโปรแกรมอยในหนวยความจาหลกพรอมทจะถกประมวลผลไดหลายๆ โปรแกรม ระบบปฏบตการจะเลอกโปรแกรมมาตวหนงใหหนวยประมวลกลางทาการประมวลผลไปเรอยๆ ในทสดโปรแกรมนนตองหยดคอยอะไรสกสงหนง เชน รอใหพนกงานคมเครองใสเทปแมเหลกเขาตเทป หรอรอใหเครองอานบตรอานขอมลชนถดไปเขามา ซงในลกษณะมลตโปรแกรมมงน หนวยประมวลผลกลางจะไมอยเฉยโดยระบบปฏบตการจะคดเลอกงานอนทพรอมจะถกประมวลผล มาใหหนวยประมวลผลกลางทาการดาเนนตอได หนวยประมวลผลกลางจะเปลยนไปทางานทพรอมจะใหทาเชนนเรอยๆ ไปและในทสด งานแรกทคางไวจะกลบมาพรอมใหทาอก เนองจากสงทรออยนนสาเรจลลวงแลวซงเมอหนวยประมวลผล วางกจะหนกลบมาทางานแรกนนตอไป

ลกษณะของมลตโปรแกรมมงน มตวอยางทเหนไดชดในชวตประจาวนโดยทวไป เชนผจดการบรษทสงเลขานการ ใหตดตอกบผจดการของอกบรษทหนง ขณะทเลขาฯ หมนโทรศพทตดตอ ผจดการผนนกสามารถหนไปทางานอน รอจนเลขาฯ ตดตอไดแลว จงหนกลองมาคยโทรศพท

อาจถอไดวา ระบบมลตโปรแกรมมง เปนตนกาเนดของศาสตรทางระบบปฏบตการกวาได เนองจากระบบมลตโปรแกรมมง ไมวาจะเปนแบบใดจะซบซอนมาก การทจะทางานหลายๆ งานพรอมๆ กน ระบบปฏบตการตองคอยควบคม และจดการองคประกอบตางๆ เชน การจดสรรเนอทในหนวยความจาหลกทมจากด ใหแกงานเหลานน ทงตองสบหลกงาน เมอมงานหลายๆ งาน พรอมทจะใหทาการประมวลผล และรวมถงการจดการอปกรณขางเคยงใหมประสทธภาพในการใชงานสง นอกจากนความตองการทรพยากรของงานตางๆ อาจเกดความขดแยง และสบสน ในลกษณะนเรยกวา deadlock ซงระบบปฏบตการจาเปนตองหาทางปองกนของงานแตละงานตางๆ เหลานเปนตน ซงจะเหนไดในหวขอตอๆ ไปวา หวขอตางๆ ในศาสตรดานระบบปฏบตการ จะเกยวพนกบจดประสงคของการทางานระบบมลตโปรแกรมมง 1.1.2 ลกษณะระบบคอมพวเตอรแบบแบทซ

Page 8: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 8

คอมพวเตอรยคแรก ๆ มขนาดใหญทาการรบจาก console อปกรณนาเขา (input) เปนพวก card reader และ tape drive อปกรณแสดงผล (output) เปนพวก line printer, tape drive และ บตรเจาะร ผใชจะไมไดตดตอกบระบบคอมพวเตอรโดยตรง วธการตดตอคอ ผใชไมไดตดตอกบระบบคอมพวเตอรโดยตรง วธตดตอคอ ผใชเตรยม job พวกโปรแกรม, ขอมล, และสารสนเทศเพอการควบคมเกยวกบธรรมชาตของงาน (control card) และนาไปให operator งานดงกลาวมกอยในรปบตรเจาะร (punched card) จงตองม card reader เพอประมวลผล ระบบปฏบตการในยคแรก งานหลกจะถก execute ทละงาน โดยระบบปฏบตการจะฝงในหนวยความจาตลอดเวลา ดงรป

รปท 1.2 ระบบคอมพวเตอรแบบแบทซ

เพอทจะใหกระบวนการเรวขน งานทคลาย ๆ กนกจะถกเอามารวมกน แลว run เปนกลม ดงนนโปรแกรมเมอรกจะเอาโปรแกรมของพวกเขาไปให operator operator จะเรยงโปรแกรมเหลานนเปนกลมทคลาย ๆ กน แลวใหคอมพวเตอร run ทละกลม (batch) ผลลพธ (output) ทไดโปรแกรมเมอรจะพอใจกวาแบบเดม ระบบปฏบตการแบบกลมจะอาน card reader ซงแตละ control card กจะทางานไป เมองานเสรจก print ออกมา จะเหนวาระบบแบบกลม (batch) จะไมมการปฏสมพนธ (interaction) ระหวางผใชและงาน (job) ในขณะ execute เพราะฉะนน delay ระหวางชวงทรงงานจนถงงานเสรจ จะเรยกวา turnaround time

จะเหนไดวา CPU จะวางบอยมาก เนองจาก speed ของเครองจกร อปกรณรบสงขอมลชากวาอปกรณอเลกทรอนกส ตวอยางเชน CPU ทางานชา ๆ กเปน ไมโครวนาท หรอทางานตามคาสงได 1000 ชดคาสงใน 1 วนาท แต card reader อยางเรวกทาไดเพยง 20 card ในวนาท ปญหานถกแกไขโดย disk technology แทนท card จะถกอานจากเครองอานเขาสหนวยความจา และงานจะถก process เราควรอาน card เขาส disk ตาแหนงของ card image จะถกบนทกไวเปน

operatingsystem

user programarea

Page 9: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 9

ตาราง โดยระบบปฏบตการ เมองานถก execute ระบบปฏบตการจะรองขอใหเครองอานทาการอานจาก disk เชนเดยวกบ output เมองานรองขอ printer ใหพมพ 1 บรรทด บรรทดนนจะถกคดลอกไปไวใน buffer และถกเขยนใน disk เมองานเสรจ output จะถก print จรง ๆ รปแบบของกระบวนการนเรยกวา spooling ดงรป

รปท 1.3 Spooling

Spooling ผาน remote site (ทางไกลได) CPU จะสงขอมลผานเสนทางตดตอสอสารไปส remote printer Spooling overlap ในระบบอยางงาย spooler อาจอาน input จากงานหนงในขณะกาลง print output ของอกงานหนง ในระหวางนนยงคงมอกงานหนง execute อย ประโยชนของ Spooling

1. Overlap job ได 2. ทาให CPU และ อปกรณรบสงขอมลทางานไดในอตราทสงขน

1.1.3 ลกษณะระบบคอมพวเตอรแบบไทมแชรรง ในสมยแรก ผใชคอมพวเตอรตองเขาจองและครอบครองเครอง ตลอดชวงเวลางานของเขา

เรยกไดวาเครองเปนของผใชคนนนๆ โดยสมบรณ ในชวงเวลานนเขาสามารถทาอะไร ๆ เกยวของกบงานไดตามใจประสงค เชนแกไขโปรแกรม ตรวจสอบดขอมลในหนวยความจาหลก ฯลฯ แตเมอมการผลกดนใหใชเครองอยางมประสทธภาพ เพราะเครองมราคาแพงมากเกนกวาจะปลอยใหผใชมานงขบคดแกไขโปรแกรมอยหนาเครองได ความสะดวกในการใชเครองของผใชกลดลงเรอยๆ ยงเมอมระบบปอนงานแบบกลมออกมาใชเปนทแพรหลาย ผใชสวนมากกแทบไมได

CPU line printercard reader

disk

I/O

Page 10: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 10

เหนเครองคอมพวเตอรเลย แตเมอการใชเครองแพรหลายขน ผนวกกบความกาวหนาของศาสตรดานโปรแกรมระบบ ทาใหเกดแรงผลกดนทจะใหผใชไดเปนเจาของเครองอก หรออยางนอยกเสมอนวา ผใชไดเปนเจาของเครองแตผเดยว

ระบบปฏบตการจะเกบงานหลาย ๆ งานไวในหนวยความจา ดงรป

รปท 1.4 การเกบงานไวในหนวยความจา

กลมของงานดงกลาวเปนเพยงสบเซตของงานทเกบไวในบองาน (pool job) ระบบปฏบตการจะนางานแรกมาทาในหนวยความจา จากนนอาจตองรอ tapes กาลงอานหรอรอการทางานของ I/O ในระบบแบบ multiprogram ระบบปฏบตการจะ switch ไปทางานอกงานเมองานท 2 ตองรอ CPU จะ switch ไปทางานอกงาน เมองานท 2 ตองรอ CPU จะ switch ไปอกงานไปเรอย ๆ จนวนมาถงควของงานแรก CPU กจะไมมทางวาง

ตวอยาง คนไขมาหาหมอหลายคน คนแรกหมอกคย คนอนกไปทาประวตหรออานหนงสอพมพ หรอนงรอเฉย ๆ เมอคนไขคนแรกตองไป x-ray หมอกเรยกคนไขอกคนมารกษา เชนนหมอกจะไมเสยเวลาไปโดยเปลาประโยชน 1. การทางานแบบโตตอบ ลกษณะการทางานแบบปอนงานเปนกลม (batch processing) นน ผใชและเครองตดตอกนโดยผานภาษาควบคมงาน และผานผลลพธทไดออกมาจากเครอง เรยกไดวาเปนการสอสารแบบไรสาย (off-line) คอไมไดทางานโดยตรงกบเครอง แตเปนลกษณะการทางานโตตอบ (interactive system) ผใชตดตอกบเครองในลกษณะตามสาย (on-line) โดยผใชไดรบผลสนองตอบจากเครอง หรอจากระบบปฏบตการหรอจากโปรแกรมของผใชเอง โดยทนทหรอเกอบจะทนท หลงจากผใชปอนคาสงใดๆ เขาไป ลกษณะการสอสารเชนน มกกระทาผาน

operating system

job1

job2

job3

job4

0 1

512k

Page 11: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 11

เทอรมนล (terminal) ซงประกอบดวยอปกรณรบขอมล คอแปนพมพดด (keyboard) และอปกรณแสดงผล คอจอภาพหรอเครองพมพ (display / printer) ผนวกรวมอยเปนอปกรณเดยวกน ในลกษณะนผใชสามารถแกไขโปรแกรมสกเลกนอย แลวสงใหระบบปฏบตการแปลโปรแกรม และลองประมวลผลด ซงจไดผลลพธของการแปลและการประมวลผลออกมาบนจอภาพทนททนใด (ในระบบจรง จะลาชาบาง ขนกบองคประกอบหลายประการ เชน ขนาดของงาน ขดความสามารถของเครอง ปรมาณงานในระบบ และลาดบความสาคญของงานทปอนเขาไป เปนตน) 2. ระบบโตตอบแบบมลตโปรแกรมมง

ลกษณะการทางานแบบโตตอบ จะเหนไดชดในระบบปฏบตการของเครองขนาดเลก (microcomputer) ซงปกตไมมการทางานแบบมลตโปรแกรมมงอยแลว เนองจากผใชเปนเจาของระบบทงหมด (ในขณะททางานอย) ความเรวในการตอบสนอง (response time) ทผใชรสกไดจะขนกบชนดและขนาดของงานททากบความเรวของอปกรณตางๆ ของเครองไมโครคอมพวเตอรเอง แตในการใชระบบตอบโตกบเครองใหญ ทเปนแบบมลตโปรแกรมมง เครองมไดเปนของผใดโดยเฉพาะ ทวาตองเฉลยการใชงานออกไป และยงอาจมการทางานแบบกลม รวมถงระบบ spooling อยดวย ดงนนหากจะใหผใชผใดผหนงไดรบการตอบสนองสงสด กเปนการปดกนผใชและงานอนๆ ไป ดงนนในระบบมลตโปรแกรมมง จะตองมการประนประนอมระหวางอตราการตอบสนองและความยตธรรม (ทงระหวางผใชระบบโตตอบดวยกนเอง และระหวางระบบโตตอบกบระบบทางานแบบอนๆ )

หลกการสรางความยตธรรมภายในกลมผใชระบบโตตอบคอ การแบงเวลา (timesharing) ของหนวยประมวลผลกลางออกเปนสวนๆ สาหรบผใชแตละคน เชน หากมหนวยประมวลผล กลางทสามารถประมวลผลไดหนงลานคาสงตอวนาท ในลกษณะนผใชแตละคนจะมความรสกวา กาลงทางานโตตอบกบเครองคอมพวเตอร ซงสามารถประมวลคาสงไดหนงแสนคาสงในแตละ วนาท หรอเปนเครองซงมขดความสามารถสง อตราการตอบสนองผใชจะสงตามไปดวย แตหากมจานวนผใชระบบโตตอบมาก อตราตอบสนองจะลดลง เพราะเครองตองถกแบงกระจายไปบรการผใชจานวนมาก 3. Personal Computer System PC เรมในยค 1970 ซงกคอ microcomputer ในชวงแรก ๆ CPU ยงขาดสวนทจะปองกนระบบจากโปรแกรมของผใช ระบบปฏบตการของ PC กเปน multiuser หรอไมก multitasking วตถประสงคของระบบปฏบตการของ PC คอ ทาใหผใชไดรบการตอบสนองและมความสะดวกมากทสด ระบบท run บน PC กเชน Microsoft Windows , Apple Macintosh ระบบปฏบตการของ microcomputer

Page 12: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 12

ไดรบการพฒนามาจาก Mainframe รปตอไปนเปนการทดสอบระบบปฏบตการเปรยบเทยบกนของ mainframe ,minicomputer และ microcomputer

รปท 1.5 การเปรยบเทยบกนของ mainframe ,minicomputer และ microcomputer ตวอยางทดของความเปลยนแปลงนคอระบบปฏบตการ MULTICS MULTICS ถกพฒนามาจาก ป 1965 – 1970 โดยสถาบน Massachusetts Institute of Technology (MIT) ซง run บน mainframe ทซบซอนและมขนาดใหญ (GE645) แนวความของคด MULTICS ถกพฒนาตอโดย Bell Laboratory จนเปน UNIX ระบบปฏบตการ UNIX ถกออกแบบในยค 1970 ใชบน PDP-11 minicomputer ในยค 1980 UNIX บน minicomputer ถกพฒนาเปน UNIX บน microcomputer ได ตอมาจงเรมเปน Windows NT, IBM OS/2 , และ Macintosh จะเหนวา ระบบปฏบตการจะถกพฒนามาจาก mainframe ขนาดใหญจนมาเปน microcomputer 1.1.4 ลกษณะระบบคอมพวเตอรแบบขนาน

Page 13: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 13

คอระบบ multiprocessor ทม CPU มากกวา 1 ตว ในการตดตอสอสาร และเปน Tightly coupled system คอ processor มการ share memory และ clock การตดตอสอสารจะผานทาง share memory

ขอดของ Parallel System คอ

1. เพม throughput แตไมใชวาเราเพมจานวน processor ไป n ตว แลวจะทาใหอตรเรวทเพมขนเปน n เทาไปดวย ตวอยางเชน ถาเราโปรแกรมเมอร n คน ไมจาเปนวาจะไดผลลพธเปน n เทาของงานทจะเสรจ

2. ประหยด เพราะสามารถ share ทรพยากรกนได

3. เพมความนาเชอถอ เชน ถาเราม 10 processor แลวเสยไป 1 ทเหลอกยงคงทางานได แตอาจชาลงหนอย สงนเปนการชวยระดบของความอยรอดของฮารดแวรซงถกเรยกวา graceful degradating (การแตกตวอยางสวยงาม) ระบบทออกแบบมาสาหรบ graceful degradation เรยกวา fault-tolerant (ความทนทานตอความผดพลาด)

Symmetric-multiprocessing model

ใชระบบปฏบตการเดยวกนทก ๆ processor

Processor ทกตวทางานพรอมกนไดโดยไมมการลดประสทธภาพ (performance deterioration)

ระบบปฏบตการในปจจบนมการสนบสนน symmetric-multiprocessing model

Asymmetric-multiprocessing model

มการกาหนดงานแตละชนใหกบ processor ม processor ตวหลกคอยบรหารและจดสรรทรพยากร เปนคณสมบตแบบ master-slave

นยมใชในระบบขนาดใหญ

Page 14: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 14

1.1.5 ลกษณะระบบคอมพวเตอรแบบกระจายงาน

เปนการแจกจายงานใหกบ processors ทมอย เราเรยก Distributed Systems อกชอวา Loosely coupled system คอ processor แตละตวจะมหนวยความจาเปนของตวเอง การสอสารระหวาง processor กทาไดหลายวธ เชน ผานทาง high-speed buses หรอสายโทรศพท

ขอดของ Distributed system คอ

1. Resource Sharing เปนการลดคาใชจายในการซอเครองมอ เชน share กนใช printer รวมกน

2. Computation Speedup (การทางานทาไดเรวขน) หรออกชอคอ load sharing ถา site ทเราทางานอยมงานท overload อย กจะมการสงงานบางสวนไปยง site อน ท ไมคอยมงานหนก การยายงานแบบนเราเรยก load sharing

3. Reliability (ความนาเชอถอ) ถาเครอง A เสย เราสามารถโอนขอมลไปเครอง B เพอทางานตอโดยไมตองรอได

4. Communication ในการแลกเปลยนขอมล ไมวาการ share หรอ transfer ขอมล เรากทาไดโดยใช Electronic mail

1.1.6 ลกษณะระบบคอมพวเตอรแบบเรยวไทม

ใชสวนใหญในระบบเจาะจงพเศษ เชน งานทดลองทางวทยาศาสตร ระบบภาพทางการแพทย (Medical imaging systems), งานควบคมทางอตสาหกรรม , งานแสดงผลบางอยาง Real-time systems จะทางานไดด ถามขอกาหนดในเรอง fixed-time

ระบบ Real-time systems ม 2 ระบบดงน

1. Hard Real-Time System (ทางานไดเสรจตรงตามเวลา)

ไมม Harddisk หรอมขนาดเลก การเกบขอมลจะเกบใน short-term memory หรอ ROM ขอเสยคอ มปญหากบระบบ time-sharing และ ไมมการ support จากระบบปฏบตการทวไป

2. Soft Real-Time System (ขาด deadline)

Page 15: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 15

มการจากด utility และเสยงในการใชในอตสาหกรรมควบคมหรอหนยนต

มประโยชนในการประยกตใชใน multimedia , virtual reality และการสารวจใตนาหรอดาวเคราะห

ระบบนตองการ features ของระบบปฏบตการขนสง

ระบบ Real-time systems มกจะมเวลาในการทางานจากด ถาระบบไมใหผลลพธไดทนในชวงเวลานน ระบบกจะลมเหลว ซงตางจาก time sharing ซงตอบสนองไดทนทหรอระบบ Batch ซงไมมการจากดเวลาในการตอบสนองเลย

ในงานบางประเภท ความตองการในอตราตอบสนองจะสงมาก นนคอเมอมขอมลเขามา สเครอง จะตองคานวณประมวลผลใหเสรจสนและสงผลลพธออกไปใหรวดเรวทสดเทาทจะทาได เพราะงานทใชระบบประเภทนเปนงานทวกฤตในดานการตอบสนอง ซงโดยปกตจะเปนการควบคมเครองจกรกล เพราะการควบคมนตองกระทาใหทนกบสภาพทแปรผนไปในงานมเชนนนงานจะเสยหายได ตวอยางเชน การควบคมนาเขาถงเกบ ขอมลทเขามาจะเปนสญญาณจากอปกรณตรวจสอบระดบนา (เชนลกลอย) ซงหากนาเตมถง เครองคอมพวเตอรตองประมวลออกเปนผลลพธในลกษณะของสญญาณไฟฟาไปควบคมใหเครองสบนาเขาถงหยดทางาน

งานประเภทระบบตอบสนองฉบพลน (real - time system) น คานงถงอนตราตอบสนองเหนอสงอนใด ลกษณะการใชหนวยประมวลผลกลางจงมกจะมประสทธภาพตามาก เพราะหนวยประมวลกลางตองวางตลอดหรอเกอบตลอดเวลา เพอทจะไดประมวลงานไดทนทเมอมขอมลเขามาในลกษณะนหนวยงานทควบคมจะกนคอมพวเตอรทงระบบเอาไวสาหรบงานแบบตอบสนองฉบพลนนโดยเฉพาะ หรอหากผนวกเขากบระบบประมวลผลอนๆ จะกาหนดใหงานประเภทนมความสาคญสงสด ตวอยางของงานประเภทนไดแก การบนทกขอมลสาหรบการทดลองทางวทยาศาสตร การตรวจสอบดแลคนไข การควบคมระบบโรงงาน และการแสดงผลบางประเภท เชน real - time simulation เปนตน

Page 16: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 16

1.2 โครงสรางของระบบคอมพวเตอร (COMPUTER SYSTEM STRUCTURES) 1.2.1 ระบบการทางานของคอมพวเตอร (Computer-System Operation)

ระบบคอมพวเตอรยคใหมจะม CPU, device controller ซงเชอมโยงกนผาน common bus ซง share memory รวมกน ดงรป

รปท 1.6 ระบบคอมพวเตอร

Device controller แตละตวรบผดชอบ device ของตวเอง CPU และ device controller สามารถทางานพรอมกนได ม memory controller เพอจดลาดบการ share memory

เมอคอมพวเตอรเรม running ตวอยางเชน เมอเปดสวตช หรอ reboot กจาเปนทจะตอง run โปรแกรมเรมตน (initial program) หรอ boot strap program ซงเปนการนา register ของ CPU และ device controller เขาสหนวยความจา bootstrap program ตองถก load ไปไวใน kernel ของระบบปฏบตการ ระบบปฏบตการจงจะเรม execute โปรแกรมแรก เชน “init” และรอผลลพธ ผลท

CPU tape-drivecontroller

printercontroller

diskcontroller

memory controller

memory

disk disk

Page 17: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 17

ไดมกเปนสญญาณขดจงหวะ จากฮารดแวรหรอซอฟแวร ฮารดแวรอาจขดจงหวะโดยสงสญญาณผานทาง system bus มาท CPU โดยซอฟแวร ขดจงหวะโดยการปฏบตการบางอยางทพเศษเรยกวา system call หรอ monitor call

เมอ CPU ถกขดจงหวะ กจะหยดทางานทกาลงทาอย แลวหนไปทางานตามสญญาณขดจงหวะนนทนท โดยยายไปทางานยงตาแหนงในหนวยความจาทบรรจโปรแกรมสาหรบดาเนนการกบสญญาณนน (interrupt service routine) เมอดาเนนการเสรจ CPU กจะกลบไปทางานเดมทคางไวหนาทโดยทวไปของสญญาณขดจงหวะ

สญญาณขดจงหวะจะสงการควบคมไปยง interrupt service routine ผานทาง ตารางสญญาณขดจงหวะ (interrupt vector) (array ของ address ของ service routine ตาง ๆ)

สถาปตยกรรมของสญญาณขดจงหวะ จะตองบนทกตาแหนงของชดคาสงทถกขดจงหวะไว

สญญาณขดจงหวะทเขาสระบบจะถก disable ถามการทางานของสญญาณขดจงหวะตวอนอยกอนแลว เพอปองกนการสญหายของสญญาณขดจงหวะ (lost interrupt)

ในระบบทซบซอนขนอาจยอมใหมการขดจงหวะซอน ๆ กนไดโดยเรยงตามศกด(Priority) สญญาณทมศกดสงกวาอาจขดจงหวะสญญาณทมศกดต ากวา แตถามศกดเทากนตองรอ interrupt พรอมกนไมได

ระบบปฏบตการยคใหม ใช ตวขบสญญาณขดจงหวะ (interrupt driver) ถาไมมการ process ไมมการเรยกใชอปกรณรบสงขอมล ไมมการตอบสนองผใช ระบบปฏบตการกไมตองทาอะไร นนเปนสญญาณบอกเหตวาเกด interrupt หรอ trap (กบดก)

trap คอ software-generated interrupt (การเกดการขดจงหวะของซอฟแวร) ซงเกด error หรอไมกเกดจาก การรองขอของโปรแกรมของผใช

การจดการสญญาณขดจงหวะ

1. ระบบปฏบตการจะรกษาสถานภาพ (state) ของ CPU ดวยการเกบ registers และ program counter ไว

2. ตรวจสอบดวาเกดสญญาณขดจงหวะชนดไหน อาจเปน polling (การรองขอของอปกรณรบสงขอมล) หรอ vectored interrupt system (การระบตาแหนง (address) ผด)

3. แยกสวนของ code เพอกาหนดวาควรทาอะไรกบแตละชนดของการขดจงหวะนน

Page 18: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 18

1.2.2 ระบบอนพต-เอาตพต I/O Interrupts

เมอ I/O เรมทางาน CPU จะ load register ทจาเปนมาไวใน device controller ซง device controller จะทาการตรวจสอบ register เหลานน เพอกาหนดวาจะทางานอะไร เชน ถาพบรองขอใหอานขอมล controller จะเรมโอนยายขอมลจาก device ไปไวท local buffer เมอโอนยายขอมลเสรจ device controller จะบอก CPU วาทางานเสรจแลว การตดตอสอสารนจะสาเรจไดโดยสญญาณขดจงหวะ

Synchronous I/O เมอการรบสงขอมลเรมขน การจะโยกยายการควบคมใหกบโปรแกรมของผใช จะทาได

หลงจากเสรจสนการรบสงขอมลเทานน ในการรอรบสงขอมลเสรจ ม 2 วธ

1. คอมพวเตอรบางเครองมชดคาสง wait พเศษ ซงปลอยให CPU วาง จนกระทงเกดสญญาณขดจงหวะถดไป

2. เครองจกทไมมชดคาสงดงกลาวอาจจะม wait loop

loop : jmp loop

loop นจะวนรอบไปเรอย ๆ จนกระทงเกดสญญาณขดจงหวะกจะโอนยายการควบคมไปสวนอน ๆ ของระบบปฏบตการ

ถา CPU ตองรอใหรบสงขอมลเสรจงานกอนเสมอ แสดงวาตองมการรองขอของ I/O อยหนงตวทเดนอยตลอดเวลา ดงนนเมอเกดสญญาณการขดจงหวะการรบสงขอมล ระบบปฏบตการจะรทนทวา device กาลงถกขดจงหวะ แตไมสามารถประมวลผล I/O device หลาย ๆ ตวพรอมกนได

ตวอยางของระบบนคอ ระบบปฏบตการ MS-DOS เวลาสงพมพ ตองรอเสรจงานกอนถงจะทางานตอไปได

requesting process-------waiting--------

hardwaredata tranfer

interupt handler

divice driver

requesting process

hardwaredata tranfer

interupt handler

device driver

Synchronous Asynchronous

time time

User

Kernel

User

Kernel

(a) (b)

Page 19: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 19

รปท 1.7 Synchronous And Asynchronous

Asynchronous I/O เมอการรบสงขอมลเรมขนการโยกยายการควบคมใหกบโปรแกรมของผใชทาไดโดยไม

ตองรอใหการรบสงขอมลเสรจ System call (คาสงของระบบปฏบตการ) อนญาตใหโปรแกรมของผใชรอคอยใหรบสง

ขอมลเสรจ ตารางทระบบปฏบตการใชเกบบนทกของอปกรณรบสงขอมลแตละตว คอ device-status

table ซงใชแสดงชนดของอปกรณ ทอย(address) และ สถานภาพ(state) (วาง , กาลงทางาน หรอเสย) ดงรป

รปท 1.8 ตารางทระบบปฏบตการใชเกบบนทกของอปกรณรบสงขอมล

เมอเกดสญญาณขดจงหวะ ระบบปฏบตการจะตรวจสอบดวาสญญาณขดจงหวะมาจากอปกรณรบสงขอมลตวไหน แลวชไปยงตารางของอปกรณรบสงขอมลนนเพอตรวจสอบสถานะของอปกรณนน เพอปรบปรงคาในตารางใหถกตองตามสญญาณขดจงหวะนน ถามควของอปกรณอย ระบบปฏบตการกจะทางานตามการรองขอถดไป เมอเสรจกจะคนการควบคมไปทางานเดมทถกขดจงหวะ เชน โปรแกรมกาลงรอผลลพธจากอปกรณรบสงขอมลอยกจะทางานตอไปไดเลย - ขอดของ asynchronous I/O คอ การเพมประสทธภาพของระบบ ตวอยางของระบบน เชน Windows เวลากาลงพมพงาน เราจะทาการยกเลกงานทพมพอยทนทได

device :card reader 1status : idle

device :disk reader 1status : busy

device :disk unit2 1status : idle

device :disk unit1 1status : idle

device :line printer 3 1status : busy

request forline printeraddress: 38546length: 1372

request for diskunit 3

file :xxxopertion: readaddress : 43046length : 2000

request for diskunit 3

file : yyyopertion: writeaddress : 03458length : 500

Page 20: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 20

DMA Structure ถาผใชปอนขอมลผานทางแปนพมพซงมอตรารบ 9600 baud (9600 สญญาณตอวนาท) การสงอกษร 1 ตวจะใชเวลาประมาณ 1 มลลวนาท หรอ 1000 ไมโครวนาท โปรแกรมสาหรบดาเนนการกบสญญาณขดจงหวะ (interrupt service routine) จะอานอกษรไปเกบไวททพกขอมล (buffer) อาจใชเวลาทาการประมาณ 2 ไมโครวนาท/ตวอกษร ดงนนหนวยประมวลผลกลางเมอถกขดจงหวะดวยโปรแกรมนจะยงคงมเวลาเหลออก 1000 – 2 = 998 ไมโครวนาท ตอทก ๆ 1000 ไมโครวนาท (เวลาทเหลออาจใชทางานอน ๆ หรอตอบสนองการขดจงหวะอนได) สญญาณทมาจากอปกรณรบสงขอมลประเภทนจงมกถกกาหนดใหมศกด (priority) ตา เพอใหสญญาณประเภทอนไดมโอกาสทากอน สาหรบอปกรณรบสงขอมลทมความเรวสง (high-speed device) เชน เทป , จานแมเหลก (disk) หรอ ขายงานสอสาร (communication network) อาจมความเรวในการสงขอมลไดใกลเคยงกบความเรวของหนวยความจา CPU อาจตองใชเวลา 2 ไมโครวนาทในการตอบสนองสญญาณทมาขดจงหวะ 1 ครง แตสญญาณทมาถงอาจมความเรว 4 ไมโครวนาทตอครงกได ซงกจะเกดปญหาทนท จงมการใช Direct Memory Access (การเขาถงหนวยความจาโดยตรง) มาแกปญหาสาหรบอปกรณทมความเรวสงเหลาน ตวควบคมอปกรณจะสงขอมลจาก buffer ของตนมายงหนวยความจาหลกโดยตรงทละชด (ไมใชทละ 1 อกษร) โดยไมไดอาศยหนวยประมวลผลกลางเลย สญญาณกจะลดลงเหลอเพยง 1 ครงตอชด ไมเหมอนอปกรณความเรวตาทสงสญญาณ 1 ครง/อกษร การทางานกเหมอนเดม คอ เมอโปรแกรมของผใชตองการรบสงขอมลไปยงอปกรณเหลาน ระบบกจะจด buffer (อาจเปน empty buffer ในกรณรบ input หรอเปน full buffer ในกรณตองการสง output) ขนาดของ buffer โดยทวไปจะอยระหวาง 128 – 4096 ไบต ทงนขนอยกบชนดของอปกรณนน ๆ จากนนสวนของระบบปฏบตการทเรยกวา device driver จะ set ตวควบคมหนวยความจา (DAM controller) ใหเกบคาตาแหนงทรบ , สง และขนาดของขอมลไวใน register ของตน แลวสงสญญาณไปยงอปกรณทตองการผาน register ควบคม (โดยใชบตควบคม (control bit)) เพอใหอานขอมลเขามาท buffer ของตน แลวตวควบคมกจะสงขอมลตอไปทหนวยความจาหลก หลงจากสงขอมลเรยบรอยแลว ตวควบคมจะสงสญญาณไปยงหนวยประมวลผลกลาง 1.2.3 ระบบจดเกบขอมล (Storage Structures)

ในอดมคต เราตองการใหโปรแกรมและขอมลอาศยอยใน main memory อยางถาวร แตทาไมไดดวยเหตผล 2 ประการ

1. Main Memory เลกเกนไปทจะเกบโปรแกรมและขอมลทจาเปนทงหมดอยางถาวร 2. Main Memory เปนอปกรณทใชเกบขอมลแบบชวขณะ เพราะเมอปดเครองขอมลกหาย

ดงนนคอมพวเตอรจงตองม secondary storage (หนวยเกบขอมลสารอง) เพอเกบขอมลมาก ๆ ไดอยางถาวร

Page 21: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 21

ในเรอง storage structures เราจะพดถง main memory, จานแมเหลก (magnetic disk) และ magnetic tape

Main Memory เปนสอทใชเกบขอมลขนาดใหญทอยใน CPU ซง CPU สามารถจะเขาถงไดโดยตรง คาสงและขอมลตองอยใน memory กอนทจะทางาน ถาขอมลไมอยใน memory จะตองยาย

เขามากอนท CPU จะดาเนนการกบขอมลเหลานน Memory-mapped I/O (ใชเพออานวยความสะดวกในการเขาถง I/O device) คอชวงของท

อย(address) ของ memory ทใช map ไปยง device register การอาน/เขยน address ของ memory เปนเหตใหขอมลถกโยกยายไป/กลบจาก device register วธนใชไดดกบอปกรณทตอบสนองไดรวดเรว เชน video controller

Magnetic Disks คอโลหะแขงหรอ แผนเสยงแกว (platter) ทปกคลมไปดวยสารแมเหลก (ดรปประกอบ)

Page 22: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 22

รปท 1.8 Magnetic Disks

แตละจานแผนเสยงมรปรางกลมแบนเหมอน CD เสนผานศนยกลางประมาณ 1.8 – 5.25 นว พนผวทง 2 หนา ปกคลมไปดวยสารแมเหลก เหมอนเทปแมเหลก (magnetic tape) เราเกบขอมลขาวสาร (Information) โดยบนทกบน platter

หวอาน-เขยนอยเหนอแตละพนผวของทก ๆ platter และ หวอาน-เขยนอยบน disk arm เราแบงพนผวของ platter เปนวงกลมเรยกวา track ซงแบงเปนสวน ๆ เรยกวา sector ตง (กลม) ของ track ซงตรงกบตาแหนง arm เดยวกน เรยกวา cylinder หนวยความจของ disk drive คอ gigabyte 1 kilobyte = 1024 bytes 1 megabyte = 10242 bytes 1 gigabyte = 10243 bytesแตโรงงานมกปดเศษทงดงนน 1 megabyte = 1 ลานไบต 1 gigabyte = 1 พนลานไบต ความเรวในการหมนประมาณ 60 – 150 รอบ/วนาท ความเรวของ disk ม 2 สวน transfer rate คอ อตราการไหลของขอมลระหวาง drive และ คอมพวเตอร positioning time (เวลาในการระบตาแหนง) บางครงเรยกวา random access time (เวลาใน

การเขาถงขอมลอยางสม) ประกอบไปดวยเวลาในการเคลอน disk arm ไปส cylinder ทตองการ ซงเรยกวา seek time และเวลาทใชในการหมน sector ทตองการไปสหวอาน-เขยน เรยกวา rotational latency

head crash คอ อบตเหตทเกดจากหวอาน-เขยนไปถกพนผวของ disk disk controller เปนตวประสานระหวาง device กบคอมพวเตอร

Magnetic Tapes เกบขอมลไดมาก ถาวร เวลาในการเขาถงขอมลชาเมอเทยบกบเวลาท main memory ใช random access time ชากวา magnetic disk มกใช back up information ทใชไมคอยบอย ความจของเทปมากกวา disk 20 เทา ความกวางของเทปมหลายขนาด คอ 4 , 8 , 9 มลลเมตร และ ¼ , ½ นว

Page 23: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 23

1.2.4 ระบบจดลาดบการทางานของอปกรณ แบงตาม speed ราคา และ Volatility (ความเปลยนแปลงไดงาย) ระดบบนสดกแพงแตทางาน

ไดรวดเรว ขอมลในหนวยเกบขอมลแบบชวขณะ (volatile storage) จะหายไปเมอปดเครอง main memory , cache และ registers คอ volatile storage แต magnetic disk , optical disk ,magnetic tapes เปน nonvolatile storage (หนวยเกบขอมลแบบถาวร)สวน electronic disk เปนแบบชวขณะและถาวร

ในการปฏบตการปกต electronic disk จะเกบขอมลใน array ของ DRAM ซงเปนแบบชวขณะ แต electronic disk device จะม magnetic hard disk ซอนอยและม battery สาหรบ backup power ถาไฟดบ disk controller จะคดลอกขอมลจาก RAM ไปไวใน magnetic disk เมอไฟมา controller จะคดลอกขอมลกลบไปยง RAM

รปท 1.9 ลาดบขนของหนวยเกบขอมล

Caching ปกต information จะถกเกบไวใน storage (เชน main memory) เมอถกเรยกใช มนจะถกคดลอกไปไวใน storage ทเรวกวา นนคอ cache เมอเราตองการ information ซกชน เรมตนเราควรหาใน cache ถาเจอเรากจะใชมนไดเลย จาก cache ถาไมเจอ คอยไปหาจาก main storage แลวเกบสาเนาไวใน cache ภายใตสมมตฐานทวา มความนาจะเปนสงทมนจาเปนจะตองนามาใชอก Main memory ก

Page 24: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 24

เหมอนเปน cache อยางเรวสาหรบหนวยความจาสารอง เพราะขอมลตองถกคดลอกจากหนวยเกบขอมลสารองไปยง main memory เพอใช และขอมลตองอยใน main memory กอนจะถกยายไปยงหนวยเกบขอมลสารองเพอเกบ Coherency and Consistency ถาตองการเพมคาของ A ซงอยในไฟล B อก 1 ซงไฟล B อยในเทปแมเหลก การเพมคานทาไดโดยเรมจากการปฏบตการของ I/O จะคดลอก disk block ท A อยไปไวใน main memory และทาสาเนาของ A ไปยง cache และยงไวใน internal register อก ดงนน สาเนาของ A กมอยหลายท เมอเพมคาของ A ใน internal register คาของ A กจะแตกตางกนในอกหลาย ๆ ท คาของ A จะมาเหมอนกนหลงจากคาใหมของ A ถกเขยนกลบไปยง magnetic disk ในสงแวดลอมแบบม 1 งาน ในเวลาหนง การทางานกไมยาก เพราะการเขาถง A กเพยงทาสาเนาไปยงระดบทสงทสดของ hierarchy แตในสงแวดลอมแบบ multitasking ซง CPU ตอง switch ไป switch มา 4 งาน ตองระวง ถาหลาย ๆ กระบวนการตางตองการเขาถง A ซงแตละ process จะไดรบคาของ A ท update ทสด

ในสงแวดลอมของ multiprocessor สาเนาของ A อาจมในหลาย ๆ cache ซง CPU หลายตวสามารถทางานไดพรอมกน เราตองทาใหมนใจวา คาของ A ท update ใน 1 cache จะสะทอนไปทก ๆ caches ท A อยอยางทนท ปญหานเรยกวา cache coherency

ในสงแวดลอมของ distributed สาเนาของไฟลเดยวกนสามารถเกบในคอมพวเตอรตาง ๆ สาเนาเหลานนอาจถก access และ update ไดในเวลาเดยวกน เราตองทาใหแนใจวาเมอสาเนาถก update ในทหนง ในทอน ๆ ทงหมดกตอง update ดวย ในทนท การปองกนอปกรณ(Hardware Protection)

ขอผดพลาดหลายอยางมกจะตรวจสอบไดโดยฮารดแวร ซงสามารถควบคมไดโดยระบบปฏบตการ เชน ถางานหนงอานหรอเขยนขอมลออกนอกขอบเขตของตน หรอรองขอคาสงทไมถกตอง ฮารดแวรกจะสงสญญาณไปขดจงหวะ แลวยายการควบคมไปทระบบปฏบตการ ซงจะทาการจดการขอผดพลาดเหลานน ระบบอาจหยดการทางานของโปรแกรมทมขอผดพลาดนนไปเลย และแสดงขอความบอกความผดพลาด พรอมกบพมพคาตาง ๆ ในหนวยความจาใหด ขอผดพลาดทอยในหนวยความจามกเกบไวเปนไฟล เพอใหผใชตรวจสอบหรอแกไขเพอเรมโปรแกรมใหม Dual-Mode Operation (การทางานแบบ 2 ชวง)

ระบบทดตองสามารถปองกนตวระบบเอง โปรแกรมอนและขอมลจากโปรแกรมอน ๆ ไมใหเกดขอผดพลาด การปองกนนตองอาศยฮารดแวรใหสามารถแยกความแตกตางของ ชวงการ

Page 25: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 25

ทางาน (mode of operation) ออกเปน 2 ชวง คอ user mode และ monitor mode (บางทเรยกวา supervisor mode, system mode หรอ privileged mode (ชวงสงวน)) อาจกาหนดบตขนมา 1 บต เรยกวา บตแสดงชวง (mode bit) ในฮารดแวร เพอใหทราบวาขณะนเปนการทางานใน mode ใด monitor(bit=0) หรอ user (bit=1)

รปท 1.10 การทางานแบบ 2 ชวง เมอเรม boot เครอง ฮารดแวรจะเรมดวย monitor mode ระบบปฏบตการจะถก load มา และ

เรมการทางานของผใชใน user mode เมอเกดสญญาณ interrupt ฮารดแวรจะ switch จาก user mode มาเปน monitor mode (bit จาก 1 เปน 0) ดงนนเมอระบบปฏบตการไดการควบคมมาจากคอมพวเตอร มนกอยใน monitor mode และกอนทจะยายการควบคมไปใหผใชหรอโปรแกรม ระบบกจะสงใหฮารดแวรเปลยนเปน user mode (bit เปน 1)

การทางานแบบ Dual-Mode น สามารถปองกนระบบหรองานอน ๆ จากงานบางงานซงมขอผดพลาดได โดยการกาหนดใหคาสงฮารดแวร (machine instruction) บางคาสงเปนคาสงสงวน (privileged instruction) ซงฮารดแวรจะยอมใหทางานตามคาสงสงวนนได เมออยใน monitor mode เทานน ถามการใชคาสงสงวนนใน user mode ฮารดแวรกจะไมปฏบตตามและถอวาเปนขอผดพลาด ซงจะทาใหเกดการสงสญญาณขดจงหวะไปยงระบบปฏบตการ

I/O Protection

โปรแกรมของผใชบางคนอาจกอกวนระบบโดยใชคาสงรองขออปกรณอยางผดๆ หรอ อางองตาแหนงในหนวยความจาทอยในสวนของระบบปฏบตการ หรอ ไมยอมคนการควบคม CPU มาสระบบ เพอปองกนอปกรณรบสงขอมล (I/O) ตางๆ เรากาหนดใหคาสงสาหรบรองขออปกรณทกชนดเปนคาสงสงวน (Privileged instruction) ดงนนผใชจะไมสามารถสงไปยงอปกรณไดโดยตรง แตตองรองขอผานระบบปฏบตการเสมอตองทาใหแนใจวา โปรแกรมของผใชจะไมมทาง

monitor user

Interrupt/fault

set user mode

Page 26: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 26

ทางานใน monitor mode ได ขณะทโปรแกรมของผใชทางานอยใน user mode เมอเกดขอผดพลาด ระบบจะเปลยนบต เปน monitor mode แลวยายการทางานไป ณ ตาแหนงทกาหนดจากตารางสญญาณ (interrupt vector) สมมตวาผใชแกไขคาในตารางสญญาณเพอใหชไปทตาแหนงใหม ซงเปนโปรแกรมของผใชเอง แลวปลอยใหเกดขอผดพลาด เพอใหระบบเปลยนเปน monitor mode แลวยายการทางานไป ณ ตาแหนงในตาราง (ซงขณะนชไปทโปรแกรมของผใช) ดงนนโปรแกรมของผใชจะสามารถทางานใน monitor mode ได Memory Protection

เราตองปองกนตารางสญญาณ (interrupt vector) ไมใหผใชเขามาแกไขได รวมทงโปรแกรมของระบบปฏบตการ (interrupt service routine) กตองมการปองกนดวย วธการปองกนหนวยความจา คอ ตองแบงแยกหนวยความจาสาหรบงานแตละงาน และปองกนไมใหงานหนงเขาไปอานหรอแกไขขอมลในสวนของงานอนได การปองกนนทาไดโดย register 2 ตว เรยกวา ฐาน (base) และ ขอบเขต (limit) ดงรปประกอบ

รปท 1.11 การแบงแยกหนวยความจาสาหรบงานแตละงาน

Page 27: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 27

- Base register จะเกบคาตาแหนงสดทายทยอมใหใชไดใน memory - Limit register จะเกบขนาดของเนอททงหมดของงาน ตวอยางเชน ถา base register เกบคา 300040 และ limit register เกบคา 120900 โปรแกรมสามารถใชหนวยความจาในตาแหนงตงแต 300040 ถง 420940 วธการปองกนแบบน ฮารดแวรของ CPU จะตองตรวจสอบคาตาแหนงทกครงทมการอางองหนวยความจา เมออยใน user mode ถามการอางองนอกขอบเขตทกาหนด กจะเกดการสงสญญาณขดจงหวะไปสระบบปฏบตการ ซงถอวาเปนขอผดพลาดอยางรนแรง (fatal error) ดงรป

รปท 1.12 ขอบเขตและการปองกนอปกรณขนพนฐาน CPU Protection ในการประกนวา การควบคมจะยายกลบมายงระบบเสมอ แมวาจะมงานบางงานทางานวนรอบอยางไมมทสนสด (infinite loop) เราสามารถทาไดโดยการใชนาฬกาจบเวลา (timer) นาฬกานจะสงสญญาณไปขดจงหวะฮารดแวร เมอถงชวงเวลาทกาหนด ซงอาจมคาคงท (เชน 1/60 วนาท) หรอมคาเปลยนแปลงได (เชน จาก 1 มลลวนาท ถง 1 วนาท โดยเพมทละ 1 มลลวนาท) โดยปกตแลวเราใชนาฬกาจรง (ในฮารดแวร) รวมกบตวนบ (counter) เพอสรางนาฬกาจบเวลา ระบบปฏบตการจะเปนผกาหนดคาใหกบตวนบ เมอนาฬกาจรงเดนไป 1 ตก ตวนบกจะนบถอยหลงลง 1 จนกระทงตวนบมคาเปน 0 กจะสงสญญาณไปขดจงหวะฮารดแวร กอนทระบบจะสงการควบคมไปยงโปรแกรมของผใช ระบบกจะตงนาฬกาจบเวลาไว เมอถงชวงเวลาทกาหนด นาฬกาจบเวลาจะสงสญญาณมาขดจงหวะฮารดแวร ทาใหการควบคมยายกลบมาทระบบปฏบตการ ซงระบบอาจจะ

Page 28: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 28

แกไขขอผดพลาด (fatal error) หรอตอเวลาใหกบโปรแกรมผใชอกกได คาสงในการกาหนดคานาฬกาจบเวลานตองเปนคาสงสงวนดวย จะเหนวา นาฬกาจบเวลาสามารถปองกนเวลาสามารถปองกนไมใหโปรแกรมของผใชทางานหรอใช CPU นานเกนไปได วธงาย ๆ กคอ กาหนดตวนบเปนคาเวลาสงสดทงานนน ๆ ตองการใช เชน โปรแกรมงานซงมกาหนดเวลาไมเกน 7 นาท เราอาจตงตวนบใหเทากบ 420 และนาฬกาจบเวลากตงไวท 1 วนาท ดงนนทก ๆ 1 วนาท นาฬกาจบเวลาจะสงสญญาณไปขดจงหวะการทางานของโปรแกรม เรากเพยงแตนบถอยหลงไป 1 ตราบใดทคาตวนบยงเปนบวก การควบคมกจะถกสงกลบใหโปรแกรมผใช เมอตวนบมคาตดลบ การควบคมจะไมถกสงไป แตระบบจะหยดการทางานของโปรแกรมผใช เนองจากทางานเกนกวาเวลาทไดรบอนญาต ปกตแลวนาฬกาจบเวลา จะใชระบบปนสวน (time sharing) โดยอาจกาหนดใหสงสญญาณทก ๆ N มลลวนาท N คอ คาสวนแบงเวลา (time slice) ทใหผใชแตละคนทางานกอนคนอน ระบบปฏบตการจะไดการควบคมทกครงทนาฬกาจบเวลานสงสญญาณไปขดจงหวะการทางาน ระบบกจะจด , เกบ กาหนดคาใน register , buffer , ตวแปรภายใน , ปรบคาอน ๆ ทจาเปนสาหรบการยายใหงานอนไดมาใช CPU บาง โดยทางานตอจากจดทหยด (ถก interrupt เพราะหมดเวลาตามสวนแบง (time slice)) ครงกอน

รปท 1.13 การใชของการเรยกระบบเพอกระทา I/O

Page 29: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 29

1.3 โครงสรางของระบบปฏบตการ 1.3.1 องคประกอบของระบบปฏบตการ 1. การจดการโปรเซส (Process Management)

โปรเซส คอ โปรแกรมทกาลงทางานอย ไดแก งานแบบกลม (batch job) โปรแกรมของผใชในระบบปนสวน (time-shared user program) งาน spooling เปนตน

โปรเซส ตองใชทรพยากรตาง ๆ ในการทางานหนง ๆ เชน เวลาประมวลผล , หนวยความจา , แฟมขอมล และอปกรณรบสงขอมล ซงการโปรเซส อาจไดรบทรพยากรเหลานตงแตตอนทถกสรางขน หรอไดมาระหวางทางาน ทงยงสามารถสงผานทรพยากรไปสโปรเซส อนไดอกดวย เชน โปรเซส หนงมหนาทแสดงสถานะของแฟมขอมลหนง บนจอภาพ กจะไดรบขอมลเขาเปนชอแฟมขอมล และกจะทาคาสงบางอยางเพอใหไดขอมลสถานะของแฟมนนมาเพอแสดงตอไป

โปรเซสเปนหนวยยอยของงานในระบบ ระบบประกอบไปดวยโปรเซส หลาย ๆ โปรเซส โปรเซส บางอนเปนของระบบปฏบตการเอง บางอนเปนของผใชระบบ โปรเซส เหลานสามารถทางานไปเสมอนพรอมกน (concurrent) ได โดยการสลบกนใชหนวยประมวลผลกลาง

ระบบปฏบตการมหนาทในการจดการโปรเซส ดงตอไปน 1. สราง และ ทาลายโปรเซสทงของระบบและผใช 2. ใหโปรเซสหยดชวคราว (suspension) หรอ กลบคนสภาพ (resumption) 3. จดกลไกในการประสานงานระหวางโปรเซส (process synchronization) 4. จดกลไกในการจดการปญหาวงจรอบ (deadlock handling)

2. การจดการหนวยความจาหลก (Main-Memory Management)

หนวยความจา คอ array of words or bytes ซงมตาแหนง (address) เฉพาะ หนวยความจาเปนทพกขอมล (ซงสามารถเรยกใชไดอยางรวดเรว) ระหวางหนวยประมวลผลกลาง และ อปกรณรบสงขอมล หนวยประมวลผลกลางอานคาสงจากหนวยความจาหลกใน “ชวงเวลาอานคาสง” (the instruction – fetch cycle) การรบสงขอมลโดยใชตวควบคมหนวยความจา (DMA) จะอานหรอเขยนขอมลจากหนวยคามจาหลกเชนกน

การทจะทาใหโปรแกรมทางาน เรมจากการนาโปรแกรมลงสตาแหนงสมบรณ (Absolute address) ในหนวยความจาหลก แลวใหหนวยประมวลผลกลางอานคาสง และดาเนนการตามคาสง

Page 30: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 30

ของโปรแกรมในหนวยความจาหลก เมอโปรแกรมสนสด หนวยความจาหลกจะถกคนสระบบ ระบบกจะนาโปรแกรมตอไปมาทางานไดอก

ระบบปฏบตการมหนาทในการจดการหนวยความจา ดงน 1. บนทกขอมล วาโปรแกรมใดอยในหนวยความจาตาแหนงใด 2. เลอกโปรเซสทจะนาลงหนวยความจาตอไป เมอมหนวยความจาวาง 3. จดสรร และ คน หนวยความจาตามทระบบขอรอง

3. การบรหารแฟมขอมล (File Management)

แฟมขอมล คอ ทเกบรวบรวมขอมลทเกยวของกน โดยผสรางเปนผกาหนดขน ตวอยางเชน แฟมขอมลสาหรบโปรแกรม ขอมลดบ ขอมลดบอาจเปนตวเลข , อกษร หรอ อกขระ แฟมขอมลอาจจะไมมโครงสราง (free – form) เชน แฟมขอความ (text files) หรอมโครงสรางอยางซบซอน แฟมขอมลประกอบดวย บท , ไบท , เรคคอรด ซงผสรางเปนผกาหนดความหมาย ระบบปฏบตการมหนาทบรหารแฟมขอมล ดงน

1. สราง และ ทาลายแฟมขอมล 2. สราง และ ทาลายไดเรคทอร 3. ใหบรการการใชงานแฟมขอมลและไดเรคทอร ขนพนฐาน 4. อางองขอมลจากแฟมกบขอมลจรงในหนวยความจาสารอง 5. ทาสาเนาแฟมขอมลลงในหนวยความจาถาวร (ไมลบเมอไฟดบ)

4. การบรหารระบบรบสงขอมล (I/O System Management)

หนาทสาคญอนหนงของระบบปฏบตการคอ การซอนรายละเอยดของอปกรณเฉพาะอยางจากผใช เชน ในระบบปฏบตการ UNIX รายละเอยดตาง ๆ ของอปกรณรบสงขอมลจะถกเกบไวในระบบรบสงขอมลเอง แยกตางหากจากระบบปฏบตการหลก ระบบรบสงขอมลประกอบไปดวย

1. องคประกอบการจดการหนวยความจาประกอบดวย buffering , caching และ spooling 2. วธการเรยกใชตวควบคมอปกรณ (A general device – driver interface) 3. ตวควบคมอปกรณพเศษ (drivers for specific hardware devices)

ตวควบคมอปกรณ (device drivers) เทานนททราบรายละเอยดของอปกรณทมนควบคมอย 5. การจดการหนวยเกบขอมลสารอง (Secondary – Storage Management)

จดประสงคหลกของระบบคอมพวเตอร คอ การทางานตามโปรแกรมผใช ซงโปรแกรมเหลาน รวมทงขอมลทใชจะตองอยในหนวยความจาหลกในขณะทางาน แตเนองจากหนวยความจาหลกมขนาดจากด จงจาเปนตองมทเกบขอมลสารอง คอมพวเตอรสมยใหมนยมใชจานบนทก

Page 31: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 31

(disk) เปนหนวยเกบขอมลสารองดานแรก สาหรบเกบทงโปรแกรมและขอมล โปรแกรมสวนมาก เชน ตวแปลภาษา (compilers) ตวแปรภาษาเอสแซมบล (assemblers) โปรแกรมจดเรยง (sort routines) ตวแกไขขอมล (editors) และ ตวจดรปแบบขอมล (formatters) ถกเกบไวในจานบนทก จนกระทงมการนาลงสหนวยความจาหลก ทงยงใชจานบนทกเปนแหลงขอมล และ ทเกบผลลพธในการทางานอกดวย ดงนน การจดการหนวยเกบขอมลสารองจงเปนสงสาคญยงสาหรบระบบคอมพวเตอรเชนกน ระบบปฏบตการมหนาทบรหารจานบนทก ดงน 1. การบรหารพนทวาง 2. การจดหาเนอทเกบขอมล 3. การจดตารางการใชจานบนทก

6. เครอขาย (Networking)

ในระบบกระจายอานาจ (distributed system) หนวยประมวลผลแตละตวจะมหนวยความจาและนาฬกาของตนเอง การตดตอระหวางหนวยประมวลผลจะทาไดโดยผานทางเครอขายการสอสาร เชน บสความเรวสง , สายโทรศพท เปนตน หนวยประมวลผลแตละแหงอาจมขนาดและหนาทแตกตางกนมาก เชน คอมพวเตอรสวนบคคล , สถานงาน (work station) คอมพวเตอรขนาดกลาง และ คอมพวเตอรขนาดใหญ เปนตน

เครอขายการสอสารระหวางหนวยประมวลผลเหลาน อาจปรบเปลยนวธการตอเชอมไดหลายแบบ เชน แบบตอเชอมสมบรณแบบ หรอ บางสวน การออกแบบตองคานงถง การหาเสนทาง และ วธการตดตอ ตลอดจนปญหาคอขวด และปญหาดานความปลอดภย

ระบบกระจายอานาจ ทาใหผใชสามารถใชทรพยากรตาง ๆ ไดมากมาย ซงเปนผลใหสามารถทางานไดเรวขน , เขาถงขอมลไดมากขน , และระบบมความนาเชอถอมากขน ระบบปฏบตการแบบน มกแปลงการตดตอผานเครอขายใหอยในรปการใชแฟมขอมล ซงจะชวยซอนรายละเอยดในการตดตอไวในตวควบคมอปกรณเครอขาย

7. ระบบปองกน หรอ ระบบความปลอดภย (Protection System)

ระบบตองมการปองกน ความผดพลาดทเกดจากโปรเซสหนงไปกระทบอกโปรเซสหนง โดยสรางกลไกบางอยางเพอปองกนแฟมขอมล , หนวยความจาสวนหนง, หนวยประมวลผลกลาง และทรพยากรตาง ๆ ในระบบใหสามารถใชไดโดยโปรเซสทมสทธจะใชไดเทานน

ตวอยางเชน กลไกในการอางองหนวยความจาหลก ปองกนโปรเซสใหใชหนวยความจาหลกไดแตในสวนของโปรเซสนนเทานน การใชนาฬกาจบเวลาเพอควบคมไมใหโปรเซสใดทางานใน

Page 32: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 32

หนวยประมวลผลตลอดไป (ไมยอมคนการควบคมกลบมาทระบบ) การไมอนญาตใหผใชระบบทาการรบสงขอมลเองโดยตรง เพอปองกนความผดพลาดในการใชงานของอปกรณรบสงขอมล การปองกน คอ กลไกการควบคมโปรแกรม , โปรเซส หรอ ผใชระบบ ในการใชทรพยากรของระบบคอมพวเตอร โดยทกลไกเหลานตองกาหนดวธการใชงานทรพยากรตาง ๆ และวธการบงคบใหผใชปฏบตตาม

การปองกนชวยใหระบบมความเชอมนสงขน โดยการตรวจจบขอผดพลาดทอาจเกดขนในการตดตอระหวางระบบยอย การตรวจจบแตเนนๆ สามารถชวยปองกนระบบยอยทดจากระบบยอยทเสยได ทรพยากรทไมมการปองกน อาจเสยหายจากการใชงานทผดพลาด หรอ จงใจจากผใชทไมมสทธ หรอ ไมรเรองได ระบบทมการปองกนดจะสามารถแบงแยกไดวา การใชงานเปนไปตามสทธ (authorized) หรอไมมสทธ (unauthorized)

8. ระบบแปลคาสง (Command – Interpreter System)

โปรแกรมระบบทสาคญทสดอนหนง คอ ตวแปลคาสง (Command Interpreter) ซงเปน interface ระหวางผใชกบระบบปฏบตการ ระบบปฏบตการบางระบบ ไดรวมเอาตวแปลคาสงไวในแกนกลางของระบบ (kernel) ระบบปฏบตการอน เชน MS-DOS และ UNIX ถอวา ตวแปลคาสงเปนเพยงโปรแกรมพเศษอนหนงซงจะทางานเมอมงานเขาในระบบ หรอ เมอผใชเรมเขาสระบบ (log on) (บนระบบ time-sharing)

คาสงสวนใหญเปนประโยคควบคม (Control statements) เมอมงานใหมเรมทางานในระบบการทางานแบบกลม (batch) หรอ เมอผใชเขาสระบบในระบบการทางานแบบปนสวน (time-sharing) จะมโปรแกรมหนงคอยอานคาสง และ ทางานตามคาสงเหลานนโดยอตโนมต โปรแกรมนมชอเรยกไดหลายอยาง เชน ตวแปลบตรควบคม ตวแปรบรรทดคาสง เชลล (shell in UNIX) เปนตน มนมหนาทงาย ๆ คอ อานคาสงและทางานตามคาสง

ระบบปฏบตการอาจถกแบงตามลกษณะของตวแปลคาสงได เชน มตวแปรคาสงทใชงาย (user – friendly) พรอมคาแนะนาในตว อยางในระบบ Macintosh ตวแปรคาสงทมระบบหนาตาง (Windows) และรายการใหเลอก (Menu system) ตลอดจนใชตวช หรอ เมาส ไดดวย ผใชเพยงแตใชตวชตาแหนงไปทรปภาพบนจอ ซงมทงรปของแฟมขอมล , โปรแกรมตาง ๆ และกดปมบนตวช โปรแกรมทถกชกจะทางานทนท หรอใหตารางรายการเลอกคาสงดวยตวช สวนอกระบบหนง อาจมตวแปลคาสงทซบซอน และใชงานไดมากมาย แตเรยนรไดยาก ซงเหมาะสาหรบผใชทมความเชยวชาญเทานน ผใชตองพมพคาสงทางแปนพมพ และกดแปนสงคาสง (Enter key) เพอทจะสงคาสงเขาระบบ ระบบนไดแก MS-DOS , Shell in UNIX

Page 33: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 33

1.3.2 การใหบรการของระบบปฏบตการ (Operating – System Service) ระบบปฏบตการ เปนผจดสภาพแวดลอมใหโปรแกรมทางาน โดยใหบรการตาง ๆ แก

โปรแกรม และผใชระบบ ระบบปฏบตการตาง ๆ มกมการใหบรการทแตกตางกน แตจะมสวนหนงทเหมอนกน เพอใหความสะดวกตอผใช หรอ ผเขยนโปรแกรม ในการทางานตาง ๆ ใหงายและรวดเรว บรการเหลาน ไดแก

การใหโปรแกรมทางาน (Program Execution) ระบบตองสามารถนาโปรแกรมลงสหนวยความจาหลก และใหโปรแกรมทางาน โดยทการทางานตองมวนสนสด ไมวาจะเปนปกตหรอไมปกตกตาม

การรบสงขอมล (I/O Operation) โปรแกรมของผใชอาจตองการรบสงขอมล โดยผานแฟมขอมล หรอ อปกรณรบสงขอมล อปกรณรบสงขอมลบางชนดตองการคาสงชวยพเศษ เชน เครองขบเทป ตองการการถอยหลงกลบเมอเตม หรอจอภาพตองการคาสงลางจอเมอเรมตนทางาน เนองจากผใชไมสามารถใชอปกรณรบสงขอมลไดโดยตรง ดงนน ระบบจงตองจดหาวธการเพอเปนตวกลางใชแทน

การใชระบบแฟมขอมล (File – system Manipulation) ระบบแฟมขอมลเปนสงจาเปนอยางยง โปรแกรมตองการอาน หรอ เขยนขอมลลงในแฟมขอมล นอกจากน ยงตองการสราง หรอ ลบแฟมขอมลดวยการใชชอแฟม

การตดตอสอสาร (Communications) บางครงโปรเซสหนงอาจตองการสงขอมลใหอกโปรเซสหนง โดยทโปรเซสทงสองนน อาจอยในเครองคอมพวเตอรเดยวกนหรอคนละเครองกน แตตดตอผานเครอขายคอมพวเตอร การตดตอสอสารนอาจทาไดโดยใช หนวยความจารวม (share memory) หรอ การสงผานขอความ (message passing) โดยมระบบปฏบตการเปนตวกลาง

การตรวจจบขอผดพลาด (Error detection) ระบบปฏบตการจาเปนตองมกลไกในการตรวจจบขอผดพลาดทอาจจะเกดขนได เชน ในหนวยประมวลผลกลาง (เครองเสย , ไฟดบ) ในอปกรณรบสงขอมล (เทปเสย , การตดตอผานเครอขายลมเหลว , หรอกระดาษพมพหมด) หรอในโปรแกรมของผใช (เชน คานวณผด , ระบตาแหนงในหนวยความจาผด หรอ ใช CPU time มากไป) สาหรบขอผดพลาดแตละชนด ระบบปฏบตการจะจดการดวยวธทเหมาะสมเพอแกขอผดพลาดเหลานน

Page 34: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 34

นอกจากระบบปฏบตการจะมหนาทอานวยความสะดวกใหแกผใช ยงตองประกนประสทธภาพในการปฏบตการของระบบเองอกดวย ในระบบผใชหลายคน เราสามารถเพมประสทธภาพไดโดยใชทรพยากรรวมกน

การจดสรรทรพยากร (Resource allocation) เมอมผใชหลายคนหรองานหลายงานทางานพรอมกนในชวงเวลาหนง ทรพยากรตาง ๆ กตองถกจดสรรใหกบคนหรองานเหลานน ชนดของทรพยากรตาง ๆ จะถกจดการดวยระบบปฏบตการ ทรพยากรบางอยาง (เชน รอบการใช CPU , หนวยความจาหลก และ ทเกบแฟมขอมล) อาจจะมรหสในการจดสรรพเศษ โดยททรพยากรอยางอน (เชน อปกรณรบสงขอมล) อาจจะมรหสรองขอ และปลดปลอยพเศษ การทาบญช (Accounting) เราตองเกบรวบรวมการทางานของผใช โดยเกบบนทกไวเปนบญชหรอทาเปนสถตการใชทรพยากรตางๆ แบบสะสม สถตการใชเหลานจะเปนเครองมอทมคาสาหรบนกวจยซงหวงจะ reconfigure ระบบเพอปรบปรงบรการในดานการคานวณ การปองกน (Protection) information ทเกบในระบบคอมพวเตอรทมผใชหลายคนอาจจะตองการควบคมการใชงานดวยตวมนเอง เมอมโปรเซสหลาย ๆ โปรเซสทางานพรอมกน เราตองไมใหโปรเซสหนงไปแทรกแซงโปรเซสอน ๆ หรอ แมแตตวระบบปฏบตการเอง การปองกนเปนการประกนวา การเขาถงทรพยากรของระบบทงหมดตองถกควบคม การรกษาความปลอดภยของระบบจากภายนอกเปนสงสาคญ การรกษาความปลอดภยเรมดวย ผใชแตละคนตองไดรบการรบรองตวเองตอระบบ โดยทวไปกจะหมายถงรหสผาน เพออนญาตใหใชทรพยากรตาง ๆ ซงรวมไปถงการปองกนอปกรณรบสงขอมล ซงประกอบไปดวย โมเดมและการดเครอขาย (network adapters) ถาระบบถกปองกนและรกษาความปลอดภยกเทากบวาเปนการปองกนไวกอน

1.3.3 การตดตอระหวางโปรแกรมกบระบบปฏบตการ 1. System Calls (การเรยกระบบ) การทางานของคาสง “เรยกระบบ”

System Call จดเตรยมสวนตอประสาน (interface) ระหวางโปรเซสหนงกบระบบปฏบตการ การเรยกระบบมกเปนคาสงภาษา assembly บางระบบอาจอนญาตใหเรยกระบบไดโดยตรงจากโปรแกรมภาษาระดบสง ซงกรณนการเรยกระบบจะถกกาหนดเปนหนาท หรอ subroutine call (การเรยกระบบยอย) ภาษาหลาย ๆ ภาษา เชน C , Bliss , BCPL , PL/360 , และ PERL ถกนามาใชแทน assembly สาหรบการเขยนโปรแกรมระบบ

Page 35: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 35

ตวอยางการเรยกระบบ ลองดการโปรแกรมซงอานขอมลจากแฟมขอมลหนงแลวเขยนลอกลงในอกแฟมหนง ขนแรกโปรแกรมตองทราบชอของแฟมขอมลทงสองนนเสยกอน (input file และ output file) ถาเปนระบบทใชสญลกษณภาพ และตวช (icon –based และ mouse – based) มกมรายชอแฟมบนจอภาพใหผใชเลอก โดยใชตวช และ กดปมบนตวช เพอกาหนดแฟมรบ และ แฟมสงขอมล

เมอไดชอแฟมทงสองแลว โปรแกรมกตองเรยกระบบ เพอใหเปดแฟมสงขอมล และ สรางแฟมรบขอมล อาจมขอผดพลาดเกดขนในการเรยกระบบน เชน ไมมแฟมขอมลทผใชขอเปดเปนแฟมสงขอมล (หาชอไมพบ) หรอ ผใชไมมสทธใชแฟมขอมลดงกลาว (protected) ซงโปรแกรมตองแสดงขอความทางจอภาพ (โดยการเรยกระบบอกคาสงหนง) หรอ สงหยดการทางาน (โดยเรยกระบบอกคาสงหนง) โดยมขอผดพลาด ถาพบแฟมสงขอมล และ สามารถเปดได ตอไปกเปนการสรางแฟมรบขอมลใหม (เรยกระบบเชนกน) อาจมขอผดพลาดไดเหมอนกน เชน ชอแฟมซากบแฟมทมอยแลว ซงอาจจะทาใหโปรแกรมตองหยดการทางาน (โดยการเรยกระบบ) หรอ ลบแฟมเกาทงไป (โดยการเรยกระบบอก) แลวสรางแฟมใหมขน (เรยกระบบอก) หรอ (ในระบบโตตอบ) แสดงขอความถามผใช (เรยกระบบเพอแสดงขอความ เรยกระบบเพอรบคาสงจากแปนพมพ) วาจะเขยนทบหรอยกเลกการทางาน

หลงจากทจดเตรยมแฟมทงสองแลว โปรแกรมกตองวนเวยนอานจากแฟมสงขอมล (เรยกระบบ) แลวเขยนลงในแฟมรบขอมล (เรยกระบบอก) ในการอาน และ เขยนน ระบบตองสงสถานะไปใหโปรแกรมดวยวาทางานเสรจ หรอ มขอผดพลาดเกดขน ในการอานอาจพบวาอปกรณผดพลาด หรอสนสดแฟมขอมล ในการเขยนอาจพบวา เนอทเตมแลว หรอ กระดาษหมดแลว หรอ ถงสดหางเทปแลว เปนตน (ทงนขนอยกบอปกรณรบขอมลนน)

เมอคดลอกแฟมขอมลจนหมดแลว โปรแกรมจะปดแฟมทงสอง (เรยกระบบอก) และ แสดงขอความบนจอภาพ (เรยกระบบอก) วาเสรจแลว และสดทายหยดโปรแกรม (เรยกระบบเปนครงสดทายเชนกน) จากตวอยางน จะเหนวาโปรแกรมหนง ๆ อาจเรยกระบบบอยครงมาก การตดตอระหวางโปรแกรมกบสงแวดลอม จาเปนตองทาผานระบบปฏบตการทงสน

การสงตวแปรไปใหระบบม 3 วธ คอ 1. สงผานทางรจสเตอร วธนงายและเรวทสด 2. ถามตวแปรมากกวาจานวนรจสเตอรของคอมพวเตอร อาจสงผานทางหนวยความจาหลก

โดยสงขอมลเปนชดหรอตารางไวในหนวยความจาหลก และสงตาแหนงทอยไปทางรจสเตอร ดงรป

Page 36: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 36

รปท 1.14 การสงตวแปรผาน รจสเตอร

3. สงโดยการใช stack โปรแกรมจะดน (push) ขอมลเขาใน stack ของหนวยความจา และให ระบบดง (pop) ขอมลออกมาเอง

2 วธหลงนเปนทนยมมากกวา เพราะสามารถสงตวแปรไดไมจากดจานวน เราสามารถจดคาสงเรยกระบบไดเปน 5 กลมใหญ ๆ คอ การควบคมโปรเซส (process control) การใชงานแฟมขอมล (file manipulation) การใชงานอปกรณ (device manipulation) การใชงานขอมลของระบบ (Information maintenance) และ การสอสาร (communication) ตารางตอไปน แสดงสรปคาสงเรยกระบบแตละกลม ในระบบปฏบตการทวไป

ตารางแสดงประเภทของคาสงเรยกระบบ (Types of system calls) การควบคมโปรเซส

หยด , ยกเลก (End , Abort) นาเขาในหนวยความจา , ใหทางาน (load , execute) สรางและทาลายโปรเซส (Create and Terminate Process) อานและเขยนขอมลจาเพาะของโปรเซส (Get and Set Process Attributes) รอจนถงเวลาทกาหนด (Wait for Time)

X : parameters for cal

load address Xsystem call 13

user parameters

X

register

codefor

systemcall 13

user program operatingsystem

Page 37: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 37

รอคอยสญญาณ , สงสญญาณ (Wait Event , Signal Event) ขอ และ คน หนวยความจา (Allocate and Free Memory)

การใชงานแฟมขอมล (File Manipulation) สราง และ ลบ แฟมขอมล (Create and Delete File) เปด , ปด (Open , Close) อาน , เขยน , ยายตาแหนง (Read , Write , Reposition) อาน และ เขยนขอมลจาเพาะของแฟมขอมล (Get and Set File Attributes)

การใชงานอปกรณ (Device Manipulation) การรองขอ และ การคนอปกรณ (Request and Release Device) อาน , เขยน , ยายตาแหนง (Read , Write , Reposition) อาน และ เขยนขอมลจาเพาะของอปกรณ (Get and Set Device Attributes) การตอเชอม หรอ ตดขาดทางตรรกะจากอปกรณ (logically Attach or Detach

Devices) การใชงานขอมลของระบบ (Information Maintenance)

การอาน และ การกาหนดเวลาหรอวนท การอาน และ เขยน ขอมลจาเพาะของระบบ (System Data) การอาน และ เขยน ขอมลจาเพาะของโปรเซส , แฟมขอมล , อปกรณ

2. การควบคมโปรเซสและงาน (Process and Job Control) ระบบปฏบตการแตละระบบ มระบบยอยในการควบคมโปรเซสแตกตางกน ตวอยางเชน MS-DOS ซงเปนระบบปฏบตการแบบทางานเดยว (single – tasking) เมอเรมเปดเครอง ระบบจะเรยกตวแปลคาสงขนมาเตรยมพรอมรบคาสงจากผใช (รป a)

free memory

commandinterpreter

kernel

free memory

process

commandinterpreter

kernel

At System Start-up Running a Program

(a) (b)

Page 38: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 38

รปท 1.15 ระบบปฏบตการแบบทางานเดยว (single – tasking) เมอผใชสงใหโปรแกรมทางาน ระบบจะไมสรางโปรเซสใหม เพยงแตนาโปรแกรมท

ตองการลงสหนวยความจา โดยเขยนทบตวแปลคาสงเองจนเกอบหมด เพอใหผใชมพนทใชงานมากทสด (รป b) และกาหนดคาตวชคาสงไปทบรรทดแรกในโปรแกรมนน เมอโปรแกรมนนทางานเสรจ หรอ เกดขอผดพลาด ระบบกจะเกบคาระดบความผดพลาดใชหนวยความจาของระบบ และระบบจะยายการควบคมไปทตวแปลคาสงสวนทยงเหลออยในหนวยความจา ตวแปลคาสงกจะนาสวนของตวเองทถกเขยนทบไปกลบมาลงในหนวยความจาใหมอกครง (อานมาจากจานบนทก) แลวแสดงคาระดบความผดพลาด ตอผใชหรอโปรแกรมตอไป

สวนระบบปฏบตการ Berkeley UNIX ซงเปนแบบหลายโปรแกรม (multitasking) เมอผใชเขามาในระบบ (log on) ตวแปลคาสง หรอ shell กจะเรมทางาน shell โปรแกรมนกเหมอนกนตวแปลคาสงใน MS-DOS (ทจรงแลว MS-DOS ออกแบบมาจาก UNIX) คอจะรบคาสงจากผใช และทางานตามคาสงนน แตเนองจาก UNIX เปนระบบหลายโปรแกรม ดงนน shell อาจทางานไปพรอม ๆ กบโปรแกรมทผใชสงกได ดงรป

รปท 1.16 ระบบปฏบตการ แบบหลายโปรแกรม (multitasking)

process D

free memory

process C

interpreter

process B

kernel

Page 39: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 39

Shell จะเรยกระบบเพอสรางโปรเซสใหม และนาโปรแกรมทตองการลงสหนวยความจา

เพอใหทางาน (โดยการเรยกระบบ) การทางานจะเปนแบบใดขนกบคาสงของผใชวาจะให shell คอย หรอใหโปรเซสใหมทางานอยเบองหลงขนานกนไปเลย (background mode) ถาเปนการทางานแบบขนาน shell กจะกลบมาคอยคาสงจากผใชตอไปทนทโดยไมรอใหโปรเซสใหมทางานเสรจ โปรเซสใหมจงไมสามารถใชจอภาพเดมเปนทรบหรอสงขอมลได แตจะผานทางแฟมขอมลแทน ผใชกสามารถสงใหทางานโปรแกรมอน ๆ ได หรอคอยตดตามตรวจดการทางานา ของโปรแกรมเดม เชน เปลยนแปลงศกด เปนตน เมอโปรเซสททางานอยเบองหลงทางานเสรจมนกจะเรยกระบบเพอหยดการทางานและสงคาระดบความผดพลาด (error code) เปน 0 หรอเลขอน ๆ ซง shell โปรแกรมนหรอโปรแกรมอน ๆ กจะนาไปใชได

3. การใชงานแฟมขอมล (File Manipulation)

ในหวขอนจะอธบายโดยกวาง ๆ เทานน เรมจากการสราง (create) และการลบ (delete) แฟมขอมล โดยการเรยกระบบพรอมสงตวแปรชอแฟม กบขอมลจาเพาะอน ๆ (file attribute) เมอมแฟมขอมลแลวกตองมการเปด (open) ขนมาใช โดยการอาน (read) เขยน (write) ยายตาแหนง (reposition) และสดทายคอการปด (close) แฟมขอมลเมอไมตองการใชอก

4. การบรหารอปกรณ (Device Management)

โปรแกรมหนง ๆ อาจตองการทรพยากรเพมเตมขณะทางานเพอใหสามารถทางานตอไปได เชน หนวยความจาเพม , เครองขบเทป , การใชแฟมขอมล เปนตน ถามทรพยากรวางอย โปรแกรมอาจไดทรพยากรตามทรองขอ และทางานตอไปได ถาไมม โปรแกรมจะตองรอจนกวาจะมแฟมขอมลสามารถนบอปกรณทางตรรกแบบหนง ดงนนคาสงเรยกระบบสาหรบแฟมขอมลกจะตองมสาหรบอปกรณดวย และสงคน (release) เมอใชเสรจ คาสงนคลายกบคาสงเปดและปดแฟมขอมล

เมอผใชไดรบอปกรณ (หลงจากทรองขอแลว) กสามารถอาน , เขยน , ยายตาแหนงอปกรณ เหมอนในแฟมขอมลได จะเหนไดวาอปกรณและแฟมขอมลมลกษณะคลายกนมากจนระบบปฏบตการหลายอนรวมทงสองสงไวเปนระบบยอยเดยวกน โดยกาหนดชอแฟมพเศษสาหรบอปกรณแตละชนด

5. การใชงานขอมลของระบบ (Information Maintenance)

Page 40: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 40

ยงมคาสงเรยกระบบหลายคาสงทเปนเพยงการสงขอมลระหวางโปรแกรมผใชกบระบบปฏบตการเทานน เชน จานวนผใชรนปจจบน , รน (version) ของระบบ , จานวนหนวยความจาทยงวางอย , พนทในจานบนทกทยงวางอย เปนตน

ระบบปฏบตการมขอมลของงานทงหมดในระบบ รวมทงโปรเซสทกโปรเซสดวยและผลกมคาสงเรยกระบบเพอดขอมลเหลานดวย (อานขอมลจาเพาะของโปรเซส (get process attribute) และกาหนดขอมลจาเพาะของโปรเซส (set process attributes))

6. การสอสาร (Communication)

การสอสารระหวางโปรเซสม 2 วธคอ การสงผานขอความ (message passing) ขอมลจะถกสงผานระบบสงขอมลใน

ระบบปฏบตการ กอนทจะสงขอมลไดจะตองมมการตอเชอม (connection) และตองทราบชอของโปรเซสทจะตดตอดวย รวมทงชอเครองคอมพวเตอรทโปรเซสนนทางานอย (ในกรณทอยตางเครองกน) คอมพวเตอรแตละเครองในเครอขายจะมชอเครอง (host name) โปรเซสแตละอนกจะมชอโปรเซส (process name) เชนกน ชอนอาจเปนตวเลขกไดมคาสงเรยกระบบขอชอเครอง (get hostid) และคาสงขอชอโปรเซส (get processid) เพอใหผใชทราบชอ และใชคาสงเรยกระบบเปดและปด (ในกรณทใชระบบแฟมขอมลแทนการตดตอดวย) หรอคาสงตอเชอม (open connection) และตดสาย (close connection) โปรเซสทเปนผรบจะตองเตรยมรบขอความ โดยใชคาสงรบสาย (accept connection) ระบบมกสรางโปรเซสพเศษขนเปนตวแทน (daemons) ในการรบสายนซงจะเรยกคาสง “รอคอยการตดตอ” (wait for connection) รอจนมสญญาณตดตอมาถงผทเรมตดตอหรอ เรยกวา client และผรบการตดตอหรอเรยกวา server เมอตอเชอมกนแลว จะสงขอมลกนโดยคาสงเรยกระบบอานขอความ (read message) และเขยนขอความ (write message) จนสดทายคาสงตดสาย (close connection) เพอสนสดการตดตอ

การใชหนวยความจารวม (share memory) โปรเซสหนงใชคาสงเรยกระบบ map-memory เพอทจะสามารถใชเนอทในหนวยความจาสวนทเปนของอกโปรเซสหนง (โดยปกตระบบจะปองกนไมใหโปรเซสแตละอนใชหนวยความจาซากน) หลงจากนโปรเซสกสามารถตดตอไดทางหนวยความจารวมสวนน รปแบบของขอมล และตาแหนงตาง ๆ เหลานอยนอกเหนอการควบคมของระบบปฏบตการ ดงนนโปรเซสทตดตอกนตองรบผดชอบในการอานเขยนขอมลเองวาไมมการเขยนขอมลลงไปในทเดยวกนพรอมกน

Page 41: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 41

ระบบปฏบตการสวนใหญใชวธหนงใน 2 วธขางตนน บางระบบอาจมใหทง 2 วธ วธสงผานขอความเหมาะกบเมอมขอมลจานวนนอยทตองการสง เพราะไมตองกงวลเรองปญหาการใชขอมลพรอมกน ทงยงเหมาะกบกรณทเปนการตดตอระหวางคอมพวเตอรดวย สวนวธใชหนวยความจารวมสามารถสงขอมลไดรวดเรว และสะดวกมากเนองจากเปนการอานเขยนจาก หนวยความจาโดยตรง แตกมปญหาในการปองกนการซ าซอน และการประสานความเรวในการใช

รปท 1.17 การสงผานขอความ และ การใชหนวยความจารวม

1.3.3.2 โปรแกรมระบบ (System Programs)

โปรแกรมระบบชวยใหการพฒนาและการทางานของโปรแกรมอนๆงายและสะดวกเราสามารถแบงไดหลายประเภทดงน

การใชงานแฟมขอมล (File manipulation) โปรแกรมเหลานทาหนาทสราง , ลบ , ทาสาเนา , เปลยนชอ , พมพ , แสดงรายชอ , พมพขอมลทงหมด และทาการอนๆเกยวกบแฟมขอมลและสารบญ

ขอมลสถานะของระบบ (Status Information) โปรแกรมบางตวเพยงตองการขอมลจากระบบเชน วนท , เวลา , จานวนหนวยความจาทเหลอ , เนอทวางบนจานบนทก ,จานวนผใช เปนตน โปรแกรมระบบเหลานจะแสดงขอมลทตองการในรปแบบทเหมาะสมบนจอภาพ หรอแฟมขอมลหรออปกรณแสดงขอมลอน

process A

process B

kernel

process A

process B

kernel

share memory

M s g P a s s in g S h a re d M e m o ry

M

M

M

2 1

1

2

Page 42: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 42

การแกไขแฟมขอมล (File Modification) อาจม “ตวแกไขแฟมขอความ” (บรรณาธการ หรอ editor) หลาย ๆ โปรแกรมในระบบเพอใหผใชใช

ตวแปลภาษา (Programming-language Support) ตวแปลภาษาแบบ Compilers ตวแปลภาษา assembly ตวแปรภาษาแบบ Interpreter อาจนบเปนสวนหนงของโปรแกรม บางระบบ อาจแยกโปรแกรมเหลานขายตางหาก

ตวนาโปรแกรมลงหนวยความจาและทางาน (Program loading and Execution) เมอโปรแกรมภาษาตนฉบบ (ฟอรแทรน , เบสก , ซ , โคบอล , ปาสคาล , ลสป เปนตน) ถกแปลเปนภาษาเครองแลว ยงตองมตวเชอม (linkage editor) ตวนาโปรแกรมลงหนวยความจา (absolute or relocatable loader or overlay loader) และอาจมตวชวยแกไขโปรแกรม (Debugger) ทงในภาษาเครองดวย

การสอสาร (Communication) เชนการตดตอระหวางผใชแตละคน (electronic mail) หรอ การสงแฟมขอมลขามเครอง (File transfer) หรอการตดตอระหวางโปรเซสตาง ๆ ในระบบ

โปรแกรมระบบทดเหมอนจะสาคญทสดนาจะเปนตวแปลคาสง (Command interpreter) ซงมหนาทอานคาสงตอไปของผใช และทางานตามคาสงนน

1.3.3.3 โครงสรางของระบบ (System Structure) 1. โครงสรางอยางงาย (Simple Structure) MS-DOS ถกออกแบบใหสามารถทางานไดมากทสดในเนอททนอยทสด ดงนนจงไมมการแบงเปนโมดล (modules) อยางระมดระวง โครงสรางของ MS-DOS ในปจจบนแสดงไดดงรป

Page 43: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 43

รปท 1.18 โครงสรางของ MS-DOS แมวา MS-DOS จะมโครงสรางแตสวนเชอมตอ (interface) และหนาทตาง ๆ ไมมการแบงแยกชดเจน ตวอยางเชน โปรแกรมประยกตสามารถใชโปรแกรมรบสงขอมลพนฐาน (basic I/O routine) เพอทจะเขยนขอมลโดยตรงไปทจอภาพหรอจานบนทก ซงการยอมใหโปรแกรมอน ๆ ทาไดดงน ระบบอาจเสยหาย หรอขอมลในจานบนทกอาจถกลบได ทเปนเชนนเพราะ MS-DOS ไมมฮารดแวรชวยในการปองกน หรอการทางานแบบ 2 ชวง

อกตวอยางหนงคอ ระบบยนกซรนแรก ยนกซกถกจากดโดยฮารดแวรสมยแรก ๆ เชนกน ระบบประกอบดวย 2 สวนคอ แกนกลางของระบบ (kernel) และโปรแกรมระบบ แกนกลางของระบบถกแบงออกเปน สวนตอเชอมและตวควบคมอปกรณ ดงรป

รปท 1.19 โครงสรางของ UNIX

Page 44: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 44

จะเหนไดวาทกสงทกอยางอยใตสวนตอเชอมในการเรยกระบบ (system-call interface) และอยเหนอฮารดแวร คอ แกนกลางของระบบ ซงมระบบแฟมขอมล , การจดตารางการใชหนวยประมวลผลกลาง , การบรหารหนวยความจาหลก และหนาทอน ๆ อก โดยผานทางคาสงเรยกระบบ เหนไดชดวามงานมากมายรวมกนอยใน 1 ระดบชนเทานน โปรแกรมระบบทอยเหนอขนไปทาหนาทใหบรการตาง ๆ ตอโปรแกรมอนไดแก การแปลภาษา การใชงานแฟมขอมล เปนตน

ตวเชอมตอกบผเขยนโปรแกรม (programmer interface) ในระบบยนกซกคอคาสงเรยกระบบ (system call) สวนตวเชอตอกบผใชระบบ (user interface) กคอโปรแกรมระบบ (system program) ทงโปรแกรมระบบ และ คาสงเรยกระบบเปนตวกาหนดบรการของแกนกลางระบบยนกซรนตอๆ มา 2. แนวคดในการแบงชน (Layer Approach)

ยนกซรนใหม ๆ ไดรบการออกแบบใหสามารถใชฮารดแวรใหม ๆ ไดโดยใชแนวคดแบบบนลงลาง (Top-down Approach) เราสามารถกาหนดหนาทตาง ๆ แบงเปนระบบยอยไดอยางสมบรณ การซอนรายละเอยด (Information Hiding) เปนสงสาคญอยางยงในการออกแบบ ทาใหผเขยนโปรแกรมสามารถทางานไดตามทแจงไว

การแบงระบบเปนระบบยอย (modular) อาจทาไดหลายวธ แตวธหนงทนาสนใจทสดคอ แนวคดในการแบงชน (Layered Approach) ซงแบงระบบออกเปนชน ๆ แตละชนสรางอยบนชนลาง ชนลางสด (ชนท 0) คอ ฮารดแวร ชนบนสด (ชนท N) คอผใช

ชนตาง ๆ ของระบบเปนการสรางขนโดยใชหลกการของ object (abstract object) ซงหอหมขอมล (encapsulation) และการทางานเกยวกบขอมลนนไว ดงรป

รปท 1.20 แนวคดในการแบงชน (Layered Approach)

Page 45: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 45

แสดงแนวความคดในการแบงชนของชนท M ภายในชนจะมโครงสรางขอมล และ

โปรแกรมยอยซงเอาใหชนทสงขนไปเรยกใช ชนท M กสามารถเรยกโปรแกรมยอยของชนลางลงไปได ขอดของหลกการแบงชนนคอ การเปนระบบยอย (Modularity) ชนตาง ๆ ถกแบงโดยหลกการทวา ชนนน ๆ ตองใชคาสง หรอบรการเฉพาะจากชนตากวาเทานน ซงวธนจะชวยใหการหาขอผดพลาดหรอตรวจสอบระบบทาไดงายมากขน เราอาจแกไขขอผดพลาดตางๆ ของชนท 1 ไดโดยไมตองคานงถงชนอน ๆ เลย เพราะชนท 1 ใชคาสงจากชนท 0 หรอฮารดแวรเทานน (สมมตวาไมมขอผดพลาดในฮารดแวร) เมอตรวจสอบชนท 1 แลว ชนท 2 กสามารถทาไดในทานองเดยวกน และเรอยๆ ขนไป ถามขอผดพลาดเกดขนทชนใด เราจะทราบไดทนทวา ขอผดพลาดเกดจากชนนน ๆ เพราะชนลาง ๆ ลงไปไดตรวจสอบแลว ดงนนการออกแบบและสรางระบบปฏบตการจะงายขนเมอระบบถกแบงเปนชนๆ มการใชแนวคดในการแบงชนน ครงแรกในระบบปฏบตการ (THE – Technische Hogeschool Eindhouen) ซงแบงเปน 6 ชน (ดงรป) ชนลางสดเปนฮารดแวร

ชนท 5 : โปรแกรมผใช (user programs)

ชนท 4 : ทพกขอมลสาหรบอปกรณรบสงขอมล (buffering for I/O device)

ชนท 3 : ตวควบคมอปกรณของหนาปทมของผควบคมเครอง (operator-console device driver)

ชนท 2 : การบรหารหนวยความจา (memory management)

ชนท 1 : การจดตารางการทางานของหนวยประมวลผลกลาง (CPU Scheduling)

ชนท 0 : ตวเครอง (Hardware)

รปท 1.21 THE – Technische Hogeschool Eindhouen

ชนท 1 เปนการจดตารางการใชหนวยประมวลผลกลาง (CPU Scheduling) ชนท 2 เปนการจดการหนวยความจาหลก ซงใชระบบหนวยความจาเสมอน (Virtual Memory) ชนท 3 เปนตวควบคมอปกรณหนาปทมของผควบคมเครอง (Operator-console device driver) ชนท 4 เปนทพกขอมลใน

Page 46: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 46

การรบสงขอมล เนองจากทพกขอมลในชนน และทพกขอมลของอปกรณในชนท 3 อยเหนอชนท 2 เราจงสามารถใหเนอทพกขอมลเกบในหนวยความจาเสมอน ขอผดพลาดทเกดขนในทพกขอมล สามารถแสดงในหนาปทมของผควบคมเครองได เพราะอยในชนทสงกวา

แนวคดนสามารถนาไปใชไดหลายแบบ เชน ระบบปฏบตการวนส (Venus) ซงใชแนวคดการแบงชนเชนกน ชนท 0 ถง 4 เปนการจดตารางการใชหนวยประมวลผลกลาง และการจดการหนวยความจาหลก ถกโปรแกรมลงในฮารดแวร ซงทาใหความเรวในการประมวลผลสงขนทงยงเปนการออกแบบทสมบรณ เนองจากใชวธการแบงชน ดงรป

ชนท 6 : โปรแกรมผใช (user programs)

ชนท 5 : ตวควบคมอปกรณ และ ตวจดตาราง (device drivers and schedulers)

ชนท 4 : หนวยความจาเสมอน (virtual memory)

ชนท 3 : ชองรบ-สง ขอมล (I/O channel)

ชนท 2 : การจดตารางการทางานของหนวยประมวลผลกลาง (CPU scheduling)

ชนท 1 : ตวแปรคาสงภาษาเครอง (instruction interpreter)

ชนท 0 : ตวเครอง (Hardware)

รปท 1.22 ระบบปฏบตการวนส (Venus)

ปญหาหลกสาหรบแนวคดในการแบงชนคอ การกาหนดชน เพราะแตละชนสามารถใชคาสง

ของชนลางลงไปเทานน จงตองมการกาหนดอยางรอบคอบ เชน ตวควบคมอปกรณจานบนทก

Page 47: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 47

(สาหรบเปนหนวยความจาสารองในระบบหนวยความจาเสมอน) ตองอยในชนตากวาชนของการจดการหนวยความหลก เพราะการจดการหนวยความจาหลกตองใชหนวยความจาสารอง

การจดชนบนหรอลางกเปนปญหาเชนกน เชน ตวควบคมอปกรณจานบนทกอยเหนอตวจดตารางหนวยประมวลผลกลาง เพราะตวควบคมตองมการคอย เพอรบสงขอมล และหนวยประมวลผลกจะยายไปทางานอนกอน แตในระบบใหญ ๆ ตวจดตารางหนวยประมวลผลกลางอาจตองเกบขอมลจาเพาะเกยวกบโปรเซสเปนจานวนมาก ซงไมสามารถเกบไวในหนวยความจาหลกทงหมดไดจาเปนตองยายออกไปเกบไวในหนวยความจาสารองบาง ดงนนตวควบคมหนวยความจาสารองจะตองอยใตชนของตวจดตาราง

การออกแบบระบบใหม ๆ จงพยายามลดจานวนชนลง (แตตองการใหมบรการมากขน) เพอหลกเลยงปญหาในการกาหนดชน ระบบปฏบตการ OS/2 ไดเพมการทางานแบบหลายโปรแกรม และการทางานแบบ 2 ชวง เขาไปพรอมทงบรการใหม ๆ ดวย ทาใหระบบมความซบซอนมากขน และตองการฮารดแวรชวยมากขนดวย ดงรป

รปท 1.23 โครงสรางของ ระบบปฏบตการ OS/2

Page 48: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 48

จะเหนไดวา ผใชไมอาจเขาถงอปกรณในชนลาง ๆ ได ทาใหระบบสามารถควบคมฮารดแวรไดด และรความเปนไปของผใชโดยละเอยด

1.3.4 ลกษณะของ เครองจกรเสมอน (Virtual Machines)

ระบบคอมพวเตอรอาจแบงไดเปนชน ๆ ชนลางสดเปนฮารดแวร ซงตอมาเปนแกนกลางของระบบ (kernel) ซงใชฮารดแวรสาหรบสรางคาสงเรยกระบบใหผใชในชนตอไปเรยกใช โปรแกรมระบบ ซงอยเหนอชนของแกนกลางจงสามารถใชทงคาสงเรยกระบบ หรอคาสงในฮารดแวร โดยไมเหนความแตกตางของคาสงทง 2 ประเภท และถงแมวาจะถกเรยกใชตาง ๆ กน แตตางกทางานไดดเทากน สาหรบโปรแกรมระบบแลวฮารดแวรกบคาสงเรยกระบบจงเสมอนอยในชนเดยวกน (ดงรป a)

บางระบบยงใชแนวคดนในช นทสงขนไปอกโดยใหโปรแกรมประยกตสามารถเรยกโปรแกรมระบบไดโดยงาย ทง ๆ ทโปรแกรมอาจอยในชนทสงกวาคาสงเรยกระบบ หรอคาสงในฮารดแวรแตโปรแกรมประยกตกจะเหนวาคาสงทสามารถใชไดทงหมดเปนสวนหนงของเครองคอมพวเตอร แนวคดเรองการแบงชนนาไปสแนวคดของเครองจกรเสมอน (Virtual Machine) IBM เปนผรเรมนาแนวคดนมาใชในระบบปฏบตการ VM

โดยใชการจดตารางหนวยประมวลผลกลาง และหนวยความจาเสมอน ระบบปฏบตการหนงสามารถสรางสภาพการทางานแบบหลายโปรเซส แตละโปรเซสทางานบนหนวยประมวลผลของตน และมหนวยความจาเสมอนของตน ทงยงมระบบยอยอน ๆ อกเชน คาสงเรยกระบบ (system call) และระบบแฟมขอมล (file system) ซงไมสามารถทาไดดวยฮารดแวรเพยงอยางเดยว ในทางตรงกนขาม แนวคดของเครองจกรเสมอน ไมไดชวยใหมระบบยอย ๆ หรอฟงกชนเพมขนเลยเพยงแตจดใหทก ๆ โปรเซสเสมอนมฮารดแวรเปนของตนเอง (ดงรป b)

Page 49: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 49

รปท 1.24 โครงสรางของ OS ทม Virtual Machines

ทรพยากรตาง ๆ ทเปนฮารดแวรในระบบจะถกใชรวมกน ใหผใชแตละคนรสกเสมอนมหนวยประมวลผลของตนเอง การทา Spooling และระบบแฟมขอมลจะสราง เครองพมพเสมอน (Virtual Line Printer) และ เครองอานบตรเสมอน (Virtual Card Readers) หนาจอของผใชแตละคนในระบบปนสวนจะทาหนาทเปนหนาปทมเสมอนของผควบคม (Virtual-operator’s console) ตวอยางเชน การแบง partition ของ Harddisk

โปรแกรมเครองจกรเสมอน (virtual-machine software) มหนาทจดการ การทางานแบบหลายโปรแกรมบนเครองจกรเสมอนหลายเครองใหทางานไดบนเครองจกรจรงเครองเดยวโดยไมตองคานงถงโปรแกรมชวยเหลอผใชอนใด (user-support software)

1.3.4.1 การนาไปใช (Implementation) แมวาแนวคดของเครองจกรเสมอนจะมประโยชน แตกสรางไดคอนขางยาก ตองใชความพยายามอยางมากในการทาใหเสมอนวามเครองจกรจรงเหมอนกนหลาย ๆ เครอง เชน การทฮารดแวรสามารถทางานแบบ 2 ชวงได คอ ชวงของผใช และ ชวงของผควบคม โปรแกรมเครองจกรเสมอน (virtual-machine software) สามารถจะทางานในชวงของผ ควบคม เพราะเปนโปรแกรมในระบบปฏบตการ แตตวเครองจกรเสมอน (virtual machine) ทสรางขนจะทางานไดในชวงผใชเทานน เพราะเปนเสมอนผใชระบบ เพอใหเครองจกรเสมอนทางานได 2 ชวงเหมอนเครองจกรจรง เราจงตองสรางชวงผใชเสมอน (virtual user mode) และ ชวงผควบคมเสมอน (virtual monitor mode) ดวย ซงทง 2 ชวงนจะทางานอยในขวงผใชตวจรง การทางานใด ๆ ทเกดการยายชวงจากชวงผใช ไปสชวงผควบคม ในเครองจกรจรง (เชน การเรยกระบบ หรอ การพยายามใชคาสงสงวน) จะตองทาใหเกดการยายชวง จากชวงผใชเสมอน (virtual user mode) ไปสชวงผควบคมเสมอน (virtual monitor mode) ในเครองจกรเสมอนดวย 1.3.4.2 คณประโยชน (Benefits) แนวคดของเครองจกรเสมอนน ยงมขอดขอเสยหลายขอ เชน

- ไมมปญหาดานความปลอดภย ในระบบทตองการความปลอดภยโดยสมบรณ ระบบเครอง

- จกรเสมอน จะทางานเสมอนมเครองจกรแยกเปนอสระหลาย ๆ เครอง - ชวยใหงานวจยและพฒนาระบบปฏบตการทางานไดสะดวกขน - ผเขยนโปรแกรมระบบสามารถใชเครองจกรเสมอนของตนแกไขงานระบบสวนใหญ

Page 50: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 50

เสมอนวาทาบนเครองจรง ผใชระบบทวไปกสามารถใชงานระบบไดตามปกต - ใชแกปญหาการเขากนไมไดของระบบ (system compatibility problems) เชน โปรแกรม

ในระบบ MS-DOS มกใชบนระบบ CPU ของ Intel แต SUN และ DEC ใชระบบปฏบตการอน แตบรษทเหลานกตองการ support ลกคาใหสามารถใชงานโปรแกรมบน MS-DOS ไดดวย จงมการใชเครองจกรเสมอนเขามาชวย 1.3.4.3 จาวา (Java)

ภาษาจาวา ทนยมกนมากถกออกแบบโดย Sun Microsystems เวลา compile compiler จะสรางผลลพธออกมาเปน bytecode bytecode เหลานเปนชดคาสงซง run บน Java Virtual Machine (JVM) เพราะฉะนนถาจะเขยนโปรแกรมโดยใช JAVA ตองม JVM run อยกอนแลว JVM สามารถ run บน IBM , Macintosh , Unix , IBM minicomputer และ mainframe นอกจากนบน Internet Explore และ Netscape Communicator กม

การทางานของ JVM จะใชกลมคาสง stack พนฐาน ซงประกอบไปดวยการคานวณทางคณตศาสตร , ตรรกะศาสตร , การเคลอนยายขอมล , และชดคาสงควบคมการไหลของขอมล (flow control) เพราะวามนเปนเครองจกรเสมอน (Virtual Machine) ดงนนจงดซบซอนเกนไปในการทจะนาคาสงตาง ๆ นนไปทาเปนฮารดแวร

ขอดในการออกแบบของจาวา คอ ทาใหการใชงานของเครองจกรเสมอนอยในสภาพทสมบรณ ตวอยางเชน bytecodes จะถกตรวจสอบเพอเปนการรกษาความปลอดภยหรอความนาเชอถอของเครองจกร โดยโปรแกรมภาษาจาวาจะ run ไมไดถาไมผานการตรวจสอบน

1.3.5 การออกแบบระบบปฏบตการ (System Design) 1.3.5.1 จดมงหมายของการออกแบบ (Design Goals)

ปญหาแรกในการออกแบบระบบ คอ การกาหนดจดประสงค และ คณลกษณะเฉพาะของระบบ ในขนแรก การออกแบบขนอยกบฮารดแวรทใช และประเภทของระบบทตองการสราง ไดแก ระบบทางานแบบกลม , ระบบปนสวน , ระบบผใชคนเดยว , ระบบหลายผใช , ระบบกระจายอานาจ , ระบบโตตอบทนท หรอ ระบบใชงานทวไป

กอนหนานน การกาหนดความตองการยงยากขนไปอก เราอาจแบงความตองการเปน 2 พวก คอ ความตองการของผใช (user goals) และความตองการของระบบ (system goals) ความตองการของผใชไดแก

ระบบควรจะใชสะดวก เรยนงาย ใชงาย มความนาเชอถอ

Page 51: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 51

ปลอดภยและทางานไดเรว เปนตน ความตองการเหลานไมคอยมประโยชน ในการออกแบบเทาไรนก เพราะไมมมาตราฐานการวดทแนนอนวาเทาใดถงจะเพยงพอ บคคลอกกลมหนง นอกจากผใช คอ ผออกแบบ , ผสราง , ผควบคม และ ผดแลรกษาระบบ อาจมความตองการคลาย ๆ กน ไดแก

ระบบควรจะออกแบบไดงาย สรางงาย ดแลรกษางาย เชอถอได ไมมขอผดพลาด และมประสทธภาพสง

เชนเดยวกนความตองการเหลาน ยงคลมเคลอ และไมมขอกาหนดทแนนอนไมมวธการทแนนอนในการกาหนดความตองการของระบบปฏบตการ ระบบปฏบตการทแตกตางกนมากยอมมความตองการทแตกตางกน และ การแกปญหากแตกตางกนมากดวย เชน ความตองการในระบบ MS-DOS ซงเปนระบบผใชคนเดยวบนเครองคอมพวเตอรสวนบคคล ยอมแตกตางอยางมากกบระบบ Windows ซงเปนระบบทางานหลายโปรแกรม 1.3.5.2 วธการและนโยบาย (Mechanisms and Polices)

หลกการสาคญอนหนง คอ การแยกนโยบาย (policy) ออกจากวธการ (mechanism) วธการอธบายวาจะทาคาสงอยางไร สวนนโยบายเปนตวกาหนดวาควรจะทาอยางไร ตวอยาง เชน วธการปองกนการใชหนวยประมวลผลกลางนานเกนไป คอ การใชนาฬกาจบเวลา แตการกาหนดวาผใชคนหนงควรจะมเวลาทางานนานเทาใดเปนเรองของนโยบาย

การแยกนโยบายออกจากวธการ เปนเรองสาคญตอความยดหยนของระบบ เพราะนโยบายอาจเปลยนแปลงได ตามสถานทและเวลา ในกรณทแยทสด การเปลยนแปลงนโยบายแตละครง อาจทาใหตองเปลยนเครองจกรไปดวย วธการแบบทวไปนาจะนามาพจารณาได เพราะเมอมการเปลยนแปลงนโยบาย อาจปรบเปลยนตวแปรเพยงบางตว แตใชวธการเดมได ตวอยางเชน ในระบบคอมพวเตอรหนงตองการให โปรแกรมทมการรบสงขอมลมาก (I/O - Intensive) มศกดสงกวาโปรแกรมทใชหนวยประมวลผลกลางมาก (CPU – Intensive) สวนอกระบบหนง ตองการตรงกนขาม การแยกนโยบายออกจากวธการ จะทาใหสามารถใชวธการเดยวกนไดกบระบบทงสองน (โดยปรบปรงเลกนอย) 1.3.5.3 การสรางระบบ (Implementation)

สมยแรก ๆ เราจะใชภาษา assembly ในการเขยนระบบปฏบตการ แตปจจบนเราอาจใชภาษาขนสงเขยนแทน ประโยชนของการใชภาษาชนสงในการเขยน (สราง) ระบบปฏบตการเหนไดชดเจน คอ สามารถเขยนไดเรวกวา , กะทดรดกวา , เขาใจงายกวา และงายตอการแกไขกวาดวย

Page 52: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

ระบบปฏบตการ 52

ขอดอกอยางคอ ทาใหงายในการยาย (port) ระบบปฏบตการไปทางาน บนเครองคอมพวเตอรแบบอน (ถาเราเขยนดวยภาษาขนสง) ตวอยางเชน ระบบ MS-DOS รนแรก ใชภาษา assembly ของ Intel 8088 เขยน MS-DOS รนตอ ๆ มา กมใชเพยงบนเครองคอมพวเตอรระบบ Intel เทานน ตางจากระบบยนกซ ใชภาษา C เขยน จงมการใชคอมพวเตอรหลายแบบ เชน Intel , Motorola , sparc

ขอเสย คอ อาจทางานไดชากวา ใชหนวยประมวลผลกลางมากกวา และมความตองการพนทในการใชงานมากขน

ในระบบปฏบตการ กเหมอนกบโปรแกรมอน ๆ ทประสทธผลของโปรแกรมขนอยกบโครงสรางขอมลทดและขนตอนวธทถกตอง มากกวาการเขยนโปรแกรมทรอบคอบรดกม เพอทจะหาสวนทเปนจดวกฤตหรอ คอขวด (bottlenecks) ของระบบ เราตองมวธการสงเกตประสทธภาพของระบบ โดยการแทรกคาสงบางอยางเขาไปในโปรแกรม เพอคานวณและแสดงขอมลภายในระบบ ขอมลทสาคญจะถกบนทกพรอมกบเวลาทใชลงในแฟมขอมล (log file) ซงขอมลเหลานสามารถนาไปวเคราะหตอได เราอาจแสดงผลการบนทกในขณะทางานจรง (โดยไมตองเกบไวในแฟมขอมล) ซงจะชวยใหผควบคมระบบ เขาใจการทางานของระบบไดดขนและอาจสามารถแกไขระบบไดในขณะทางานเลย

1.3.6 การนาระบบปฏบตการไปใชงาน การตดตงระบบ (System Generation) ขอมลในการตดตงระบบ ควรมดงน

ใชหนวยประมวลผลอะไร ? มสวนประกอบพเศษหรอไม ? มหนวยประมวลผลกตว ? อะไรบาง ? (ในกรณเปนระบบหลายหนวยประมวลผล)

ขนาดหนวยความจาหลกทม ? บางระบบอาจหาขนาดไดเองโดยการทดลองเขยนและอานขอมลลงไปทตาแหนงตางๆ จนกระทงเกดขอผดพลาด ซงตาแหนงผดพลาดจะทาใหเราทราบถงตาแหนงสงสดทสามารถใชได ซงกนาจะเทากบขนาดของหนวยความจาหลก

มอปกรณอะไรบาง ? ระบบปฏบตการจาเปนตองรจกอปกรณตาง ๆ ทงหมดทมอย ขอมลตาง ๆ เกยวกบอปกรณ เชน หมายเลขอปกรณ , ตาแหนงอางอง , หมายเลขสญญาณ , ชนดและรน ตลอดจนคณสมบตพเศษอน ๆ ถาม

ขอกาหนดพเศษมอะไรบาง ? หรอตวแปรตาง ๆ ของระบบมคาเทาใด ? ขอมลเหลานไดแกจานวน , ขนาดของทพกขอมล , เลอกวธการจดตารางการทางานของหนวยประมวลผลกลาง , จานวนโปรเซสสงสดทยอมใหมในขณะหนง ๆ เปนตน

เราสามารถตดตงระบบไดหลายวธ วธหนงคอ ใชขอมลเหลานแกไขปรบเปลยนโปรแกรมตนฉบบ (source code) ของระบบปฏบตการโดยตรง เชน การประกาศขอมล , คาคงท , คาเรมตน ,

Page 53: บทที่ 1บทท 1 องค ประกอบของระบบคอมพ วเตอร และระบบปฏ บ ต การ 1.1 ระบบคอมพ

องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 53

การแปลอยางมเงอนไข (condition compilation) เปนตน แลวแปลเปนภาษาเครองชดใหม ผลทไดจะเปนระบบปฏบตการ (ในภาษาเครอง) ทมการปรบแตงใหเหมาะแกการตดต ง ณ ททกาหนดขอมลขางตน

อกวธหนง (งานนอยลงกวาวธแรก) คอ ขอมลขางตนทาใหเกดตาราง และการเลอกโปรแกรมยอย ๆ (ในภาษาเครอง) จากหองสมดโปรแกรม (library) ซงสามารถนามาเชอมตอกนกบโปรแกรมหลกเปนผลลพธรวม การเลอกโปรแกรมยอย ๆ นอาจเปนการเลอกเฉพาะตวควบคมอปกรณทมในระบบนเทานน เพอมาเชอมตอกนเปนระบบปฏบตการสาหรบสถานทน วธนเรวกวาวธแรก แตโปรแกรมทไดอาจมขนาด และการทางานเปนกลาง ๆ มากกวาวธแรก (วธแรกจะใหผลลพธทดกวา)

อกวธหนง คอ สรางระบบปฏบตการทมลกษณะเปนระบบขบเคลอนดวยตาราง (table driven) ทงระบบ โปรแกรมทกแบบจะอยในระบบทงหมด การเลอกแบบเกดขนในขณะทางานจรง (execution time) ไมไดเกดขนในขณะแปลโปรแกรม (compile time) หรอขณะเชอมตอโปรแกรม (link time) การตดตงระบบทาโดยการสรางตารางเกบขอมลตาง ๆ ของระบบทตองการ