บทท 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)
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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 ทใชกนอยในหองทดลองนน
ระบบปฏบตการ 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) ของเวลาการทางานสาหรบขอมลแตละหนวย ความเหลอมลานขนกบสาเหตทสาคญสองประการคอ อตราความเรวของอปกรณตางๆ และประเภทของงานเนอหาสาหรบสาเหตแรกนน ไมวาเครองคอมพวเตอรประเภทใด หนวยประมวลผลกลางจะมความเรวสงกวาหนวยรบขอมลและแสดงผลมาก แมวาจะมบฟเฟอร แตละหนวยประมวลผลกยงตองรออยด สวนสาเหตประการทสองน หากงานเปนพวกท
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 5
ใชหนวยรบขอมลและแสดงผลมากๆ (I/O bounded) หนวยประมวลผลกลางจาทางานนอย เพราะตองรอขอมลจากหนวยรบขอมล (หรอรอใหหนวยแสดงผลนาผลทไดไปแสดง) ในทานองกลบกน หากงานเปนประเภททใชหนวยประมวลผลกลางมากๆ (cpu bounded) ชวงเวลาทหนวยประมวลผลกลางจะวางกลดลงจนอาจถงกบไมตองรอเลย กลายเปนวา หนวยรบขอมลและแสดงผลตองเปนฝายรอหนวยประมวลผลกลาง ในเครองสมยแรกเรมนน (หรอแมแตในปจจบนเองกตาม) ความเหลอมลาระหวางหนวยประมวลผลกลางตามาก วธการแกทางหนงคอ เพมความเรวของหนวยรบขอมลและแสดงผลแตวธนทาไดยาก เพราะอปกรณเหลานน เปนเครองกลไกซงมขอจากดทางดานความเรวเปนธรรมดาอยแลว จงไดมการนาอปกรณทมความเรวสงขนอกระดบ เชน เทปและจานแมเหลกมาคนระหวางหนวยประมวลผลกลาง และหนวยรบขอมลและแสดงผล สวนอกวธหนงคอ การทางานหลายๆ งานพรอมกน เพอไมใหหนวยประมวลผลกลางตองอยเฉย ขณะรอการรบขอมลหรอแสดงผลของงานหนงงานใด ซงลกษณะน คอการทามลตโปรแกรมมง (multiprogramming) ซงจะกลาวถงตอไป การทางานแบบ off - line ปญหาความเหลมลาของความเรว สามารถผอนหนกใหเปนเบาไดวธหนงคอ การใชเทปแมเหลกมาแทนเครองอานบตรหรอเครองพมพทมความเรวตามาก วธการคอ การจาลองขอมลจากบตรลงบนเทปแมเหลก เมอโปรแกรมตองการอานบตร ระบบปฏบตการจะเปลยนไปอานเทปใหแทน สวนการพมพผลกทาทานองเดยวกน โดยการพมพลงเทปแมเหลกกอน แลวนาเทปนนไปถายออกเครองพมพอกท การถายเทขอมลผานเทปนกระทาไดสองวธคอ ใชเครองอานบตรและเครองพมพทออกแบบมาเปนพเศษ สามารถถายขอมลกบเครองอานเทปแมเหลกไดโดยตรง ไม ตองผานหนวยประมวลผลกลาง สวนอกวธหนงคอ ใชอปกรณมาตรฐานปกตแตใชเครองคอมพวเตอรขนาดเลก เปนตวถายเทขอมล แทนทจะใชเครองใหญ การทางานโดยอาศยเทปแมเหลกน จะตองไดรบความชวยเหลอจากระบบปฏบตการในอนทจะทาใหคาสงรบขอมลหรอแสดงผล (input / output operation) ในโปรแกรมของผใชสามารถเปลยนไปใชกบอปกรณใดกได ขนกบความเหมาะสมในการบรหารระบบ ลกษณะการทางานเชนนเรยกวา อสรภาพจากอปกรณ (device independence) ขอเสยของระบบ off-line คอ โปรแกรมจะตองผานขนตอนมากขน และในการเกบขอมลเทปแมเหลก ตองรอใหมหลายๆ โปรแกรมเสยกอน จงคอยนาเขาเครองคอมพวเตอรใหญเสยทหนง ทาใหผใชตองรอนานขน แมวาประโยชนใชสอยของหนวยประมวลผลกลางจะดขนกตาม การทางานแบบ spooling
ระบบปฏบตการ 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 จะเปนการทางานแบบมลตโปรแรมมงอยางงายๆ โดยมโปรแกรมวง
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 7
ขนานกนอยสองโปรแกรม คอโปรแกรม spool และโปรแกรมของผใช (ในลกษณะการประมวลผลแบบกลม) แตลกษณะของโปรแกรมทเกยวของ กยงไมอาจใชประโยชนองคประกอบตางๆ ของคอมพวเตอรไดเตมท เหตเพราะโปรแกรมของผใชไดเตมท เหตเพราะโปรแกรมของผใชอาจทางานรวมกบเทปแมเหลก ซงมความเหลอมลาทางความเรวกบหนวยประมวลผลกลางมากอยด ในสมยตอมาจงไดมการขยายการทามลตโปรแกรมมงออกไป เพอใหประโยชนใชสอยของระบบสงขน
หลกการของระบบมลตโปรแกรมมง คอการใหมโปรแกรมอยในหนวยความจาหลกพรอมทจะถกประมวลผลไดหลายๆ โปรแกรม ระบบปฏบตการจะเลอกโปรแกรมมาตวหนงใหหนวยประมวลกลางทาการประมวลผลไปเรอยๆ ในทสดโปรแกรมนนตองหยดคอยอะไรสกสงหนง เชน รอใหพนกงานคมเครองใสเทปแมเหลกเขาตเทป หรอรอใหเครองอานบตรอานขอมลชนถดไปเขามา ซงในลกษณะมลตโปรแกรมมงน หนวยประมวลผลกลางจะไมอยเฉยโดยระบบปฏบตการจะคดเลอกงานอนทพรอมจะถกประมวลผล มาใหหนวยประมวลผลกลางทาการดาเนนตอได หนวยประมวลผลกลางจะเปลยนไปทางานทพรอมจะใหทาเชนนเรอยๆ ไปและในทสด งานแรกทคางไวจะกลบมาพรอมใหทาอก เนองจากสงทรออยนนสาเรจลลวงแลวซงเมอหนวยประมวลผล วางกจะหนกลบมาทางานแรกนนตอไป
ลกษณะของมลตโปรแกรมมงน มตวอยางทเหนไดชดในชวตประจาวนโดยทวไป เชนผจดการบรษทสงเลขานการ ใหตดตอกบผจดการของอกบรษทหนง ขณะทเลขาฯ หมนโทรศพทตดตอ ผจดการผนนกสามารถหนไปทางานอน รอจนเลขาฯ ตดตอไดแลว จงหนกลองมาคยโทรศพท
อาจถอไดวา ระบบมลตโปรแกรมมง เปนตนกาเนดของศาสตรทางระบบปฏบตการกวาได เนองจากระบบมลตโปรแกรมมง ไมวาจะเปนแบบใดจะซบซอนมาก การทจะทางานหลายๆ งานพรอมๆ กน ระบบปฏบตการตองคอยควบคม และจดการองคประกอบตางๆ เชน การจดสรรเนอทในหนวยความจาหลกทมจากด ใหแกงานเหลานน ทงตองสบหลกงาน เมอมงานหลายๆ งาน พรอมทจะใหทาการประมวลผล และรวมถงการจดการอปกรณขางเคยงใหมประสทธภาพในการใชงานสง นอกจากนความตองการทรพยากรของงานตางๆ อาจเกดความขดแยง และสบสน ในลกษณะนเรยกวา deadlock ซงระบบปฏบตการจาเปนตองหาทางปองกนของงานแตละงานตางๆ เหลานเปนตน ซงจะเหนไดในหวขอตอๆ ไปวา หวขอตางๆ ในศาสตรดานระบบปฏบตการ จะเกยวพนกบจดประสงคของการทางานระบบมลตโปรแกรมมง 1.1.2 ลกษณะระบบคอมพวเตอรแบบแบทซ
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
ระบบปฏบตการ 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 ลกษณะระบบคอมพวเตอรแบบขนาน
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
นยมใชในระบบขนาดใหญ
ระบบปฏบตการ 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)
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 15
มการจากด utility และเสยงในการใชในอตสาหกรรมควบคมหรอหนยนต
มประโยชนในการประยกตใชใน multimedia , virtual reality และการสารวจใตนาหรอดาวเคราะห
ระบบนตองการ features ของระบบปฏบตการขนสง
ระบบ Real-time systems มกจะมเวลาในการทางานจากด ถาระบบไมใหผลลพธไดทนในชวงเวลานน ระบบกจะลมเหลว ซงตางจาก time sharing ซงตอบสนองไดทนทหรอระบบ Batch ซงไมมการจากดเวลาในการตอบสนองเลย
ในงานบางประเภท ความตองการในอตราตอบสนองจะสงมาก นนคอเมอมขอมลเขามา สเครอง จะตองคานวณประมวลผลใหเสรจสนและสงผลลพธออกไปใหรวดเรวทสดเทาทจะทาได เพราะงานทใชระบบประเภทนเปนงานทวกฤตในดานการตอบสนอง ซงโดยปกตจะเปนการควบคมเครองจกรกล เพราะการควบคมนตองกระทาใหทนกบสภาพทแปรผนไปในงานมเชนนนงานจะเสยหายได ตวอยางเชน การควบคมนาเขาถงเกบ ขอมลทเขามาจะเปนสญญาณจากอปกรณตรวจสอบระดบนา (เชนลกลอย) ซงหากนาเตมถง เครองคอมพวเตอรตองประมวลออกเปนผลลพธในลกษณะของสญญาณไฟฟาไปควบคมใหเครองสบนาเขาถงหยดทางาน
งานประเภทระบบตอบสนองฉบพลน (real - time system) น คานงถงอนตราตอบสนองเหนอสงอนใด ลกษณะการใชหนวยประมวลผลกลางจงมกจะมประสทธภาพตามาก เพราะหนวยประมวลกลางตองวางตลอดหรอเกอบตลอดเวลา เพอทจะไดประมวลงานไดทนทเมอมขอมลเขามาในลกษณะนหนวยงานทควบคมจะกนคอมพวเตอรทงระบบเอาไวสาหรบงานแบบตอบสนองฉบพลนนโดยเฉพาะ หรอหากผนวกเขากบระบบประมวลผลอนๆ จะกาหนดใหงานประเภทนมความสาคญสงสด ตวอยางของงานประเภทนไดแก การบนทกขอมลสาหรบการทดลองทางวทยาศาสตร การตรวจสอบดแลคนไข การควบคมระบบโรงงาน และการแสดงผลบางประเภท เชน real - time simulation เปนตน
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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 เพอกาหนดวาควรทาอะไรกบแตละชนดของการขดจงหวะนน
ระบบปฏบตการ 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)
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
ระบบปฏบตการ 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 (หนวยเกบขอมลสารอง) เพอเกบขอมลมาก ๆ ไดอยางถาวร
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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) ทปกคลมไปดวยสารแมเหลก (ดรปประกอบ)
ระบบปฏบตการ 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 มลลเมตร และ ¼ , ½ นว
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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 ก
ระบบปฏบตการ 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 ชวง)
ระบบทดตองสามารถปองกนตวระบบเอง โปรแกรมอนและขอมลจากโปรแกรมอน ๆ ไมใหเกดขอผดพลาด การปองกนนตองอาศยฮารดแวรใหสามารถแยกความแตกตางของ ชวงการ
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
ระบบปฏบตการ 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 การแบงแยกหนวยความจาสาหรบงานแตละงาน
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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 กจะสงสญญาณไปขดจงหวะฮารดแวร กอนทระบบจะสงการควบคมไปยงโปรแกรมของผใช ระบบกจะตงนาฬกาจบเวลาไว เมอถงชวงเวลาทกาหนด นาฬกาจบเวลาจะสงสญญาณมาขดจงหวะฮารดแวร ทาใหการควบคมยายกลบมาทระบบปฏบตการ ซงระบบอาจจะ
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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) ในหนวยความจาหลก แลวใหหนวยประมวลผลกลางอานคาสง และดาเนนการตามคาสง
ระบบปฏบตการ 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)
จดประสงคหลกของระบบคอมพวเตอร คอ การทางานตามโปรแกรมผใช ซงโปรแกรมเหลาน รวมทงขอมลทใชจะตองอยในหนวยความจาหลกในขณะทางาน แตเนองจากหนวยความจาหลกมขนาดจากด จงจาเปนตองมทเกบขอมลสารอง คอมพวเตอรสมยใหมนยมใชจานบนทก
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 31
(disk) เปนหนวยเกบขอมลสารองดานแรก สาหรบเกบทงโปรแกรมและขอมล โปรแกรมสวนมาก เชน ตวแปลภาษา (compilers) ตวแปรภาษาเอสแซมบล (assemblers) โปรแกรมจดเรยง (sort routines) ตวแกไขขอมล (editors) และ ตวจดรปแบบขอมล (formatters) ถกเกบไวในจานบนทก จนกระทงมการนาลงสหนวยความจาหลก ทงยงใชจานบนทกเปนแหลงขอมล และ ทเกบผลลพธในการทางานอกดวย ดงนน การจดการหนวยเกบขอมลสารองจงเปนสงสาคญยงสาหรบระบบคอมพวเตอรเชนกน ระบบปฏบตการมหนาทบรหารจานบนทก ดงน 1. การบรหารพนทวาง 2. การจดหาเนอทเกบขอมล 3. การจดตารางการใชจานบนทก
6. เครอขาย (Networking)
ในระบบกระจายอานาจ (distributed system) หนวยประมวลผลแตละตวจะมหนวยความจาและนาฬกาของตนเอง การตดตอระหวางหนวยประมวลผลจะทาไดโดยผานทางเครอขายการสอสาร เชน บสความเรวสง , สายโทรศพท เปนตน หนวยประมวลผลแตละแหงอาจมขนาดและหนาทแตกตางกนมาก เชน คอมพวเตอรสวนบคคล , สถานงาน (work station) คอมพวเตอรขนาดกลาง และ คอมพวเตอรขนาดใหญ เปนตน
เครอขายการสอสารระหวางหนวยประมวลผลเหลาน อาจปรบเปลยนวธการตอเชอมไดหลายแบบ เชน แบบตอเชอมสมบรณแบบ หรอ บางสวน การออกแบบตองคานงถง การหาเสนทาง และ วธการตดตอ ตลอดจนปญหาคอขวด และปญหาดานความปลอดภย
ระบบกระจายอานาจ ทาใหผใชสามารถใชทรพยากรตาง ๆ ไดมากมาย ซงเปนผลใหสามารถทางานไดเรวขน , เขาถงขอมลไดมากขน , และระบบมความนาเชอถอมากขน ระบบปฏบตการแบบน มกแปลงการตดตอผานเครอขายใหอยในรปการใชแฟมขอมล ซงจะชวยซอนรายละเอยดในการตดตอไวในตวควบคมอปกรณเครอขาย
7. ระบบปองกน หรอ ระบบความปลอดภย (Protection System)
ระบบตองมการปองกน ความผดพลาดทเกดจากโปรเซสหนงไปกระทบอกโปรเซสหนง โดยสรางกลไกบางอยางเพอปองกนแฟมขอมล , หนวยความจาสวนหนง, หนวยประมวลผลกลาง และทรพยากรตาง ๆ ในระบบใหสามารถใชไดโดยโปรเซสทมสทธจะใชไดเทานน
ตวอยางเชน กลไกในการอางองหนวยความจาหลก ปองกนโปรเซสใหใชหนวยความจาหลกไดแตในสวนของโปรเซสนนเทานน การใชนาฬกาจบเวลาเพอควบคมไมใหโปรเซสใดทางานใน
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 33
1.3.2 การใหบรการของระบบปฏบตการ (Operating – System Service) ระบบปฏบตการ เปนผจดสภาพแวดลอมใหโปรแกรมทางาน โดยใหบรการตาง ๆ แก
โปรแกรม และผใชระบบ ระบบปฏบตการตาง ๆ มกมการใหบรการทแตกตางกน แตจะมสวนหนงทเหมอนกน เพอใหความสะดวกตอผใช หรอ ผเขยนโปรแกรม ในการทางานตาง ๆ ใหงายและรวดเรว บรการเหลาน ไดแก
การใหโปรแกรมทางาน (Program Execution) ระบบตองสามารถนาโปรแกรมลงสหนวยความจาหลก และใหโปรแกรมทางาน โดยทการทางานตองมวนสนสด ไมวาจะเปนปกตหรอไมปกตกตาม
การรบสงขอมล (I/O Operation) โปรแกรมของผใชอาจตองการรบสงขอมล โดยผานแฟมขอมล หรอ อปกรณรบสงขอมล อปกรณรบสงขอมลบางชนดตองการคาสงชวยพเศษ เชน เครองขบเทป ตองการการถอยหลงกลบเมอเตม หรอจอภาพตองการคาสงลางจอเมอเรมตนทางาน เนองจากผใชไมสามารถใชอปกรณรบสงขอมลไดโดยตรง ดงนน ระบบจงตองจดหาวธการเพอเปนตวกลางใชแทน
การใชระบบแฟมขอมล (File – system Manipulation) ระบบแฟมขอมลเปนสงจาเปนอยางยง โปรแกรมตองการอาน หรอ เขยนขอมลลงในแฟมขอมล นอกจากน ยงตองการสราง หรอ ลบแฟมขอมลดวยการใชชอแฟม
การตดตอสอสาร (Communications) บางครงโปรเซสหนงอาจตองการสงขอมลใหอกโปรเซสหนง โดยทโปรเซสทงสองนน อาจอยในเครองคอมพวเตอรเดยวกนหรอคนละเครองกน แตตดตอผานเครอขายคอมพวเตอร การตดตอสอสารนอาจทาไดโดยใช หนวยความจารวม (share memory) หรอ การสงผานขอความ (message passing) โดยมระบบปฏบตการเปนตวกลาง
การตรวจจบขอผดพลาด (Error detection) ระบบปฏบตการจาเปนตองมกลไกในการตรวจจบขอผดพลาดทอาจจะเกดขนได เชน ในหนวยประมวลผลกลาง (เครองเสย , ไฟดบ) ในอปกรณรบสงขอมล (เทปเสย , การตดตอผานเครอขายลมเหลว , หรอกระดาษพมพหมด) หรอในโปรแกรมของผใช (เชน คานวณผด , ระบตาแหนงในหนวยความจาผด หรอ ใช CPU time มากไป) สาหรบขอผดพลาดแตละชนด ระบบปฏบตการจะจดการดวยวธทเหมาะสมเพอแกขอผดพลาดเหลานน
ระบบปฏบตการ 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 สาหรบการเขยนโปรแกรมระบบ
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 35
ตวอยางการเรยกระบบ ลองดการโปรแกรมซงอานขอมลจากแฟมขอมลหนงแลวเขยนลอกลงในอกแฟมหนง ขนแรกโปรแกรมตองทราบชอของแฟมขอมลทงสองนนเสยกอน (input file และ output file) ถาเปนระบบทใชสญลกษณภาพ และตวช (icon –based และ mouse – based) มกมรายชอแฟมบนจอภาพใหผใชเลอก โดยใชตวช และ กดปมบนตวช เพอกาหนดแฟมรบ และ แฟมสงขอมล
เมอไดชอแฟมทงสองแลว โปรแกรมกตองเรยกระบบ เพอใหเปดแฟมสงขอมล และ สรางแฟมรบขอมล อาจมขอผดพลาดเกดขนในการเรยกระบบน เชน ไมมแฟมขอมลทผใชขอเปดเปนแฟมสงขอมล (หาชอไมพบ) หรอ ผใชไมมสทธใชแฟมขอมลดงกลาว (protected) ซงโปรแกรมตองแสดงขอความทางจอภาพ (โดยการเรยกระบบอกคาสงหนง) หรอ สงหยดการทางาน (โดยเรยกระบบอกคาสงหนง) โดยมขอผดพลาด ถาพบแฟมสงขอมล และ สามารถเปดได ตอไปกเปนการสรางแฟมรบขอมลใหม (เรยกระบบเชนกน) อาจมขอผดพลาดไดเหมอนกน เชน ชอแฟมซากบแฟมทมอยแลว ซงอาจจะทาใหโปรแกรมตองหยดการทางาน (โดยการเรยกระบบ) หรอ ลบแฟมเกาทงไป (โดยการเรยกระบบอก) แลวสรางแฟมใหมขน (เรยกระบบอก) หรอ (ในระบบโตตอบ) แสดงขอความถามผใช (เรยกระบบเพอแสดงขอความ เรยกระบบเพอรบคาสงจากแปนพมพ) วาจะเขยนทบหรอยกเลกการทางาน
หลงจากทจดเตรยมแฟมทงสองแลว โปรแกรมกตองวนเวยนอานจากแฟมสงขอมล (เรยกระบบ) แลวเขยนลงในแฟมรบขอมล (เรยกระบบอก) ในการอาน และ เขยนน ระบบตองสงสถานะไปใหโปรแกรมดวยวาทางานเสรจ หรอ มขอผดพลาดเกดขน ในการอานอาจพบวาอปกรณผดพลาด หรอสนสดแฟมขอมล ในการเขยนอาจพบวา เนอทเตมแลว หรอ กระดาษหมดแลว หรอ ถงสดหางเทปแลว เปนตน (ทงนขนอยกบอปกรณรบขอมลนน)
เมอคดลอกแฟมขอมลจนหมดแลว โปรแกรมจะปดแฟมทงสอง (เรยกระบบอก) และ แสดงขอความบนจอภาพ (เรยกระบบอก) วาเสรจแลว และสดทายหยดโปรแกรม (เรยกระบบเปนครงสดทายเชนกน) จากตวอยางน จะเหนวาโปรแกรมหนง ๆ อาจเรยกระบบบอยครงมาก การตดตอระหวางโปรแกรมกบสงแวดลอม จาเปนตองทาผานระบบปฏบตการทงสน
การสงตวแปรไปใหระบบม 3 วธ คอ 1. สงผานทางรจสเตอร วธนงายและเรวทสด 2. ถามตวแปรมากกวาจานวนรจสเตอรของคอมพวเตอร อาจสงผานทางหนวยความจาหลก
โดยสงขอมลเปนชดหรอตารางไวในหนวยความจาหลก และสงตาแหนงทอยไปทางรจสเตอร ดงรป
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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)
ระบบปฏบตการ 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
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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)
ระบบปฏบตการ 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 เพอทจะสามารถใชเนอทในหนวยความจาสวนทเปนของอกโปรเซสหนง (โดยปกตระบบจะปองกนไมใหโปรเซสแตละอนใชหนวยความจาซากน) หลงจากนโปรเซสกสามารถตดตอไดทางหนวยความจารวมสวนน รปแบบของขอมล และตาแหนงตาง ๆ เหลานอยนอกเหนอการควบคมของระบบปฏบตการ ดงนนโปรเซสทตดตอกนตองรบผดชอบในการอานเขยนขอมลเองวาไมมการเขยนขอมลลงไปในทเดยวกนพรอมกน
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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
ระบบปฏบตการ 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 ในปจจบนแสดงไดดงรป
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 43
รปท 1.18 โครงสรางของ MS-DOS แมวา MS-DOS จะมโครงสรางแตสวนเชอมตอ (interface) และหนาทตาง ๆ ไมมการแบงแยกชดเจน ตวอยางเชน โปรแกรมประยกตสามารถใชโปรแกรมรบสงขอมลพนฐาน (basic I/O routine) เพอทจะเขยนขอมลโดยตรงไปทจอภาพหรอจานบนทก ซงการยอมใหโปรแกรมอน ๆ ทาไดดงน ระบบอาจเสยหาย หรอขอมลในจานบนทกอาจถกลบได ทเปนเชนนเพราะ MS-DOS ไมมฮารดแวรชวยในการปองกน หรอการทางานแบบ 2 ชวง
อกตวอยางหนงคอ ระบบยนกซรนแรก ยนกซกถกจากดโดยฮารดแวรสมยแรก ๆ เชนกน ระบบประกอบดวย 2 สวนคอ แกนกลางของระบบ (kernel) และโปรแกรมระบบ แกนกลางของระบบถกแบงออกเปน สวนตอเชอมและตวควบคมอปกรณ ดงรป
รปท 1.19 โครงสรางของ UNIX
ระบบปฏบตการ 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)
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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 เปนทพกขอมลใน
ระบบปฏบตการ 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)
ปญหาหลกสาหรบแนวคดในการแบงชนคอ การกาหนดชน เพราะแตละชนสามารถใชคาสง
ของชนลางลงไปเทานน จงตองมการกาหนดอยางรอบคอบ เชน ตวควบคมอปกรณจานบนทก
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 47
(สาหรบเปนหนวยความจาสารองในระบบหนวยความจาเสมอน) ตองอยในชนตากวาชนของการจดการหนวยความหลก เพราะการจดการหนวยความจาหลกตองใชหนวยความจาสารอง
การจดชนบนหรอลางกเปนปญหาเชนกน เชน ตวควบคมอปกรณจานบนทกอยเหนอตวจดตารางหนวยประมวลผลกลาง เพราะตวควบคมตองมการคอย เพอรบสงขอมล และหนวยประมวลผลกจะยายไปทางานอนกอน แตในระบบใหญ ๆ ตวจดตารางหนวยประมวลผลกลางอาจตองเกบขอมลจาเพาะเกยวกบโปรเซสเปนจานวนมาก ซงไมสามารถเกบไวในหนวยความจาหลกทงหมดไดจาเปนตองยายออกไปเกบไวในหนวยความจาสารองบาง ดงนนตวควบคมหนวยความจาสารองจะตองอยใตชนของตวจดตาราง
การออกแบบระบบใหม ๆ จงพยายามลดจานวนชนลง (แตตองการใหมบรการมากขน) เพอหลกเลยงปญหาในการกาหนดชน ระบบปฏบตการ OS/2 ไดเพมการทางานแบบหลายโปรแกรม และการทางานแบบ 2 ชวง เขาไปพรอมทงบรการใหม ๆ ดวย ทาใหระบบมความซบซอนมากขน และตองการฮารดแวรชวยมากขนดวย ดงรป
รปท 1.23 โครงสรางของ ระบบปฏบตการ OS/2
ระบบปฏบตการ 48
จะเหนไดวา ผใชไมอาจเขาถงอปกรณในชนลาง ๆ ได ทาใหระบบสามารถควบคมฮารดแวรไดด และรความเปนไปของผใชโดยละเอยด
1.3.4 ลกษณะของ เครองจกรเสมอน (Virtual Machines)
ระบบคอมพวเตอรอาจแบงไดเปนชน ๆ ชนลางสดเปนฮารดแวร ซงตอมาเปนแกนกลางของระบบ (kernel) ซงใชฮารดแวรสาหรบสรางคาสงเรยกระบบใหผใชในชนตอไปเรยกใช โปรแกรมระบบ ซงอยเหนอชนของแกนกลางจงสามารถใชทงคาสงเรยกระบบ หรอคาสงในฮารดแวร โดยไมเหนความแตกตางของคาสงทง 2 ประเภท และถงแมวาจะถกเรยกใชตาง ๆ กน แตตางกทางานไดดเทากน สาหรบโปรแกรมระบบแลวฮารดแวรกบคาสงเรยกระบบจงเสมอนอยในชนเดยวกน (ดงรป a)
บางระบบยงใชแนวคดนในช นทสงขนไปอกโดยใหโปรแกรมประยกตสามารถเรยกโปรแกรมระบบไดโดยงาย ทง ๆ ทโปรแกรมอาจอยในชนทสงกวาคาสงเรยกระบบ หรอคาสงในฮารดแวรแตโปรแกรมประยกตกจะเหนวาคาสงทสามารถใชไดทงหมดเปนสวนหนงของเครองคอมพวเตอร แนวคดเรองการแบงชนนาไปสแนวคดของเครองจกรเสมอน (Virtual Machine) IBM เปนผรเรมนาแนวคดนมาใชในระบบปฏบตการ VM
โดยใชการจดตารางหนวยประมวลผลกลาง และหนวยความจาเสมอน ระบบปฏบตการหนงสามารถสรางสภาพการทางานแบบหลายโปรเซส แตละโปรเซสทางานบนหนวยประมวลผลของตน และมหนวยความจาเสมอนของตน ทงยงมระบบยอยอน ๆ อกเชน คาสงเรยกระบบ (system call) และระบบแฟมขอมล (file system) ซงไมสามารถทาไดดวยฮารดแวรเพยงอยางเดยว ในทางตรงกนขาม แนวคดของเครองจกรเสมอน ไมไดชวยใหมระบบยอย ๆ หรอฟงกชนเพมขนเลยเพยงแตจดใหทก ๆ โปรเซสเสมอนมฮารดแวรเปนของตนเอง (ดงรป b)
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 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) แนวคดของเครองจกรเสมอนน ยงมขอดขอเสยหลายขอ เชน
- ไมมปญหาดานความปลอดภย ในระบบทตองการความปลอดภยโดยสมบรณ ระบบเครอง
- จกรเสมอน จะทางานเสมอนมเครองจกรแยกเปนอสระหลาย ๆ เครอง - ชวยใหงานวจยและพฒนาระบบปฏบตการทางานไดสะดวกขน - ผเขยนโปรแกรมระบบสามารถใชเครองจกรเสมอนของตนแกไขงานระบบสวนใหญ
ระบบปฏบตการ 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) ความตองการของผใชไดแก
ระบบควรจะใชสะดวก เรยนงาย ใชงาย มความนาเชอถอ
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 51
ปลอดภยและทางานไดเรว เปนตน ความตองการเหลานไมคอยมประโยชน ในการออกแบบเทาไรนก เพราะไมมมาตราฐานการวดทแนนอนวาเทาใดถงจะเพยงพอ บคคลอกกลมหนง นอกจากผใช คอ ผออกแบบ , ผสราง , ผควบคม และ ผดแลรกษาระบบ อาจมความตองการคลาย ๆ กน ไดแก
ระบบควรจะออกแบบไดงาย สรางงาย ดแลรกษางาย เชอถอได ไมมขอผดพลาด และมประสทธภาพสง
เชนเดยวกนความตองการเหลาน ยงคลมเคลอ และไมมขอกาหนดทแนนอนไมมวธการทแนนอนในการกาหนดความตองการของระบบปฏบตการ ระบบปฏบตการทแตกตางกนมากยอมมความตองการทแตกตางกน และ การแกปญหากแตกตางกนมากดวย เชน ความตองการในระบบ MS-DOS ซงเปนระบบผใชคนเดยวบนเครองคอมพวเตอรสวนบคคล ยอมแตกตางอยางมากกบระบบ Windows ซงเปนระบบทางานหลายโปรแกรม 1.3.5.2 วธการและนโยบาย (Mechanisms and Polices)
หลกการสาคญอนหนง คอ การแยกนโยบาย (policy) ออกจากวธการ (mechanism) วธการอธบายวาจะทาคาสงอยางไร สวนนโยบายเปนตวกาหนดวาควรจะทาอยางไร ตวอยาง เชน วธการปองกนการใชหนวยประมวลผลกลางนานเกนไป คอ การใชนาฬกาจบเวลา แตการกาหนดวาผใชคนหนงควรจะมเวลาทางานนานเทาใดเปนเรองของนโยบาย
การแยกนโยบายออกจากวธการ เปนเรองสาคญตอความยดหยนของระบบ เพราะนโยบายอาจเปลยนแปลงได ตามสถานทและเวลา ในกรณทแยทสด การเปลยนแปลงนโยบายแตละครง อาจทาใหตองเปลยนเครองจกรไปดวย วธการแบบทวไปนาจะนามาพจารณาได เพราะเมอมการเปลยนแปลงนโยบาย อาจปรบเปลยนตวแปรเพยงบางตว แตใชวธการเดมได ตวอยางเชน ในระบบคอมพวเตอรหนงตองการให โปรแกรมทมการรบสงขอมลมาก (I/O - Intensive) มศกดสงกวาโปรแกรมทใชหนวยประมวลผลกลางมาก (CPU – Intensive) สวนอกระบบหนง ตองการตรงกนขาม การแยกนโยบายออกจากวธการ จะทาใหสามารถใชวธการเดยวกนไดกบระบบทงสองน (โดยปรบปรงเลกนอย) 1.3.5.3 การสรางระบบ (Implementation)
สมยแรก ๆ เราจะใชภาษา assembly ในการเขยนระบบปฏบตการ แตปจจบนเราอาจใชภาษาขนสงเขยนแทน ประโยชนของการใชภาษาชนสงในการเขยน (สราง) ระบบปฏบตการเหนไดชดเจน คอ สามารถเขยนไดเรวกวา , กะทดรดกวา , เขาใจงายกวา และงายตอการแกไขกวาดวย
ระบบปฏบตการ 52
ขอดอกอยางคอ ทาใหงายในการยาย (port) ระบบปฏบตการไปทางาน บนเครองคอมพวเตอรแบบอน (ถาเราเขยนดวยภาษาขนสง) ตวอยางเชน ระบบ MS-DOS รนแรก ใชภาษา assembly ของ Intel 8088 เขยน MS-DOS รนตอ ๆ มา กมใชเพยงบนเครองคอมพวเตอรระบบ Intel เทานน ตางจากระบบยนกซ ใชภาษา C เขยน จงมการใชคอมพวเตอรหลายแบบ เชน Intel , Motorola , sparc
ขอเสย คอ อาจทางานไดชากวา ใชหนวยประมวลผลกลางมากกวา และมความตองการพนทในการใชงานมากขน
ในระบบปฏบตการ กเหมอนกบโปรแกรมอน ๆ ทประสทธผลของโปรแกรมขนอยกบโครงสรางขอมลทดและขนตอนวธทถกตอง มากกวาการเขยนโปรแกรมทรอบคอบรดกม เพอทจะหาสวนทเปนจดวกฤตหรอ คอขวด (bottlenecks) ของระบบ เราตองมวธการสงเกตประสทธภาพของระบบ โดยการแทรกคาสงบางอยางเขาไปในโปรแกรม เพอคานวณและแสดงขอมลภายในระบบ ขอมลทสาคญจะถกบนทกพรอมกบเวลาทใชลงในแฟมขอมล (log file) ซงขอมลเหลานสามารถนาไปวเคราะหตอได เราอาจแสดงผลการบนทกในขณะทางานจรง (โดยไมตองเกบไวในแฟมขอมล) ซงจะชวยใหผควบคมระบบ เขาใจการทางานของระบบไดดขนและอาจสามารถแกไขระบบไดในขณะทางานเลย
1.3.6 การนาระบบปฏบตการไปใชงาน การตดตงระบบ (System Generation) ขอมลในการตดตงระบบ ควรมดงน
ใชหนวยประมวลผลอะไร ? มสวนประกอบพเศษหรอไม ? มหนวยประมวลผลกตว ? อะไรบาง ? (ในกรณเปนระบบหลายหนวยประมวลผล)
ขนาดหนวยความจาหลกทม ? บางระบบอาจหาขนาดไดเองโดยการทดลองเขยนและอานขอมลลงไปทตาแหนงตางๆ จนกระทงเกดขอผดพลาด ซงตาแหนงผดพลาดจะทาใหเราทราบถงตาแหนงสงสดทสามารถใชได ซงกนาจะเทากบขนาดของหนวยความจาหลก
มอปกรณอะไรบาง ? ระบบปฏบตการจาเปนตองรจกอปกรณตาง ๆ ทงหมดทมอย ขอมลตาง ๆ เกยวกบอปกรณ เชน หมายเลขอปกรณ , ตาแหนงอางอง , หมายเลขสญญาณ , ชนดและรน ตลอดจนคณสมบตพเศษอน ๆ ถาม
ขอกาหนดพเศษมอะไรบาง ? หรอตวแปรตาง ๆ ของระบบมคาเทาใด ? ขอมลเหลานไดแกจานวน , ขนาดของทพกขอมล , เลอกวธการจดตารางการทางานของหนวยประมวลผลกลาง , จานวนโปรเซสสงสดทยอมใหมในขณะหนง ๆ เปนตน
เราสามารถตดตงระบบไดหลายวธ วธหนงคอ ใชขอมลเหลานแกไขปรบเปลยนโปรแกรมตนฉบบ (source code) ของระบบปฏบตการโดยตรง เชน การประกาศขอมล , คาคงท , คาเรมตน ,
องคประกอบของระบบคอมพวเตอรและระบบปฏบตการ 53
การแปลอยางมเงอนไข (condition compilation) เปนตน แลวแปลเปนภาษาเครองชดใหม ผลทไดจะเปนระบบปฏบตการ (ในภาษาเครอง) ทมการปรบแตงใหเหมาะแกการตดต ง ณ ททกาหนดขอมลขางตน
อกวธหนง (งานนอยลงกวาวธแรก) คอ ขอมลขางตนทาใหเกดตาราง และการเลอกโปรแกรมยอย ๆ (ในภาษาเครอง) จากหองสมดโปรแกรม (library) ซงสามารถนามาเชอมตอกนกบโปรแกรมหลกเปนผลลพธรวม การเลอกโปรแกรมยอย ๆ นอาจเปนการเลอกเฉพาะตวควบคมอปกรณทมในระบบนเทานน เพอมาเชอมตอกนเปนระบบปฏบตการสาหรบสถานทน วธนเรวกวาวธแรก แตโปรแกรมทไดอาจมขนาด และการทางานเปนกลาง ๆ มากกวาวธแรก (วธแรกจะใหผลลพธทดกวา)
อกวธหนง คอ สรางระบบปฏบตการทมลกษณะเปนระบบขบเคลอนดวยตาราง (table driven) ทงระบบ โปรแกรมทกแบบจะอยในระบบทงหมด การเลอกแบบเกดขนในขณะทางานจรง (execution time) ไมไดเกดขนในขณะแปลโปรแกรม (compile time) หรอขณะเชอมตอโปรแกรม (link time) การตดตงระบบทาโดยการสรางตารางเกบขอมลตาง ๆ ของระบบทตองการ
Top Related