Operating System

Download Report

Transcript Operating System

Introduction
Operating
System
อ.ศร ัญญา ตรีทศ
สาขาวิชาวิทยาการ
ความหมายของระบบปฏิบต
ั
• โปรแกรมคอมพิวเตอร ์ (computer
่ าหน้าทีเป็
่ นตัวกลางหรือ
software) ทีท
่
สือกลางระหว่
างผู ใ้ ช้คอมพิวเตอร ์
(users) และตัวคอมพิวเตอร ์ (computer
hardware)
่
• จุดประสงค ์หลัก เพือจะอ
านวยความ
สะดวกให้ผูใ้ ช้คอมพิวเตอร ์ (users)
สามารถใช้งานตัวคอมพิวเตอร ์
แนวคิดวิวฒ
ั นาการ
ระบบปฏิบต
ั ก
ิ าร
วิว ัฒนาการ และชนิ ดของระบบปฏิบต
ั ก
ิ าร (โดย ดร.ยรรยง เต็งอานวย
เล่มเขียว)
1. การป้ อนงานแบบกลุ่มด้วยมือ (Manual batch system)
2. การป้ อนงานแบบกลุ่มโดยอ ัตโนมัต ิ (Automatic batch processing)
3. การทางานแบบ Buffering (พยายามทาให้ I และ O ทางานพร ้อม
หน่ วยประมวลผลมากสุด เช่น printer)
4. การทางานแบบ off-line (เช่น บัตรเจาะ หรือเทปกระดาษ)
5. การทางานแบบ spooling (เป็ นหลักการใช้จานแม่เหล็กแทนอุปกรณ์
้ ยกว่า spooling : Simultaneous
ร ับข้อมู ล และแสดงผลนี เรี
peripheral operation on-line)
ระบบมัลติโปรแกรมมิง่ (Multiprogramming system)
6. ระบบแบ่งเวลา (Time sharing system)
7. การทางานแบบโต้ตอบ
8. ระบบโต้ตอบแบบมัลติโปรแกรมมิง่
9. ระบบตอบสนองฉับพลัน (Real-time system)
แนวคิดวิวฒ
ั นาการ
ระบบปฏิบต
ั ก
ิ าร
• ปี พ.ศ. 2483-2492 สมัยคอมพิวเตอร ์ยังไม่ม ี
่
ระบบปฏิบต
ั ก
ิ ารทีคอยประสานงานระหว่
าง
่
เครืองคอมพิ
วเตอร ์กับผู ใ้ ช้งาน ต้องอาศ ัย
่ ความชานาญในการควบคุม
บุคลากรทีมี
่
่
สังงานเครื
องคอมพิ
วเตอร ์ ทาให้ไม่มก
ี าร
แพร่หลายของคอมพิวเตอร ์
• ปี พ.ศ. 2493-2497 นักพัฒนาระบบได้ม ี
่ อมโยงให้
่
แนวคิดว่าจะสร ้างระบบปฏิบต
ั ก
ิ ารทีเชื
้ และทา
ผู ใ้ ช้สามารถใช้คอมพิวตอร ์ได้ง่ายขึน
ให้การใช้งานคอมพิวเตอร ์แพร่หลายและ
ขนาดของคอมพิวเตอร
• Supercomputer
จรวดไปนอกโลก
• Mainframe
ธนาคาร โรงพยาบาล
ตลาดหลักทร ัพย ์
• Minicomputer หน่ วยงาน , ธุรกิจขนาด
กลาง
• Personal computer ใช้ตามบ้าน,
่
สานักงานทัวไป
• Computer notebook
ใช้ส่วนบุคคล
Use
r1
Use
r2
Use
r3
Compiler
assembler
. . database system
...
Use
rn
text editor
System and application programs
Operating system
Computer
hardware
.
วิวฒ
ั นาการคอมพิวเตอร ์ จากอดีตสู ่
ปั จจุบน
ั
่
้ จะใช้
่
• ผู ป
้ ระดิษฐ ์เครืองเท่
านันที
ได้
่
่
• ผู ใ้ ช้งานต้องมีความรู ้เกียวกั
บเครืองอย่
าง
ลึกซึง้
่ กบ
่
• ภาษาทีใช้
ั เครืองเป็
นภาษาเฉพาะ
่
้
่ หรือ machine
เครืองนั
นๆ
(ภาษาเครือง
language)
่
• ภาษาเครืองเป็
นเลขฐานสอง (binary
code)
่
่
คอมพิวเตอร ์ยุคแรกๆ
้ น
• มีต ัวแปลภาษาแอสเซมบลีเป็
่
ภาษาเครืองเรี
ยกว่า assembler
่ น
• พัฒนาจาก assembly ซึงเป็
่ ทีผู
่ ใ้ ช้จาเป็ นต้องทราบ
ภาษาระดับตา
่
โครงสร ้างการทางานของเครือง
มาเป็ น
้ เช่น ภาษา
ภาษาระดับสู งทีง่่ ายขึน
basic, cobol, fortran มีตวั แปลภาษาที่
เรียกว่า compiler หรือ interpreter
วิว ัฒนาการของระบบปฏิบต
ั ก
ิ าร
่ านาญ
• ยุคแรกหากต้องการร ันโปรแกรม ต้องมีคนทีช
คอยป้ อน
่
คาสังและข้
อมู ลไปไว้ในหน่ วยความจาหลักของ
้ั
่
้ั
่
วจนหมดโปรแกรม
อครงละตั
งละค
าสังหรื
เครืองคร
้ พย
่ างาน และถ้าป้ อน
เสียก่อน จากนันซี
ี ู จงึ จะเริมท
่ อนก ันใหม่ ถ้าต้องการร ันหลายๆ
ผิดก็ตอ
้ งเริมป้
โปรแกรมก็ตอ
้ งรอให้โปรแกรมแรกเสร็จเสียก่อน
้ นงานทีท
่ าเหมือนๆ ก ัน
• จากข้างต้นจะเห็นว่างานนี เป็
ทุกวัน และทาเป็ นประจาจึงมีการสร ้างโปรแกรม
สาหร ับทางานประจานี ้ เรียกว่า โหลดเดอร ์ (loader)
่ หน้าทีย้
่ ายเอา code ของโปรแกรมทีถู
่ กเก็บไว้ใน
ซึงมี
หน่ วยความจารอง (secondary storage) ไปไว้ใน
ระบบปฏิบต
ั ก
ิ าร (Operating System)
•
•
•
•
เป็ นโปรแกรมระบบ (system software)
่ น loader และ compiler
ทาหน้าทีเป็
จัดการแบ่งปั นการใช้ทร ัพยากรของระบบ
ควบคุมจังหวะการทางานของโปรแกรม
้
ร่ ันอยู ่
ทังหลายที
• เป็ นได้ทง้ั software, hardware หรือ
firmware
• มีเป้ าหมายให้คอมพิวเตอร ์สามารถใช้
Hardware OS
่ กสร ้างขึนจากอุ
้
• เป็ น OS ทีถู
ปกรณ์ทาง
อิเล็กทรอนิ กส ์ และเป็ นส่วนหนึ่ งของ
hardware
• ทางานเร็วกว่า Software OS
• การปร ับปรุงแก้ไขยุ่งยาก และอาจทา
้
ไม่ได้ (ต้องซือใหม่
)
Firmware OS
่ บไว้เป็ นส่วนหนึ่ ง
• ส่วนของโปรแกรมทีเก็
ของคอมพิวเตอร ์
• โปรแกรมเป็ นแบบ microprogram
• สร ้างจาก microinstruction
้ างานได้รวดเร็ว
่ ท
• คาสังนี
• ความเร็วสู งกว่า Software OS แต่ชา้
กว่า Hardware OS
่
หน้าทีของระบบปฏิ
บต
ั ก
ิ าร
1. ควบคุมการทางานของโปรแกรมและอุปกรณ์
ต่างๆ (Control Program)
่ ้ร่วมกัน (Shared
2. จัดสรรทร ัพยากรซึงใช
Resources)
 ทร ัพยากรมีจากัด
 ทร ัพยากรมีหลายประเภท
3. ติดต่อกับผูใ้ ช ้ (User Interfaces)
วิว ัฒนาการของระบบต่างๆ
่ มรี ะบบปฏิบต
1. ระบบทีไม่
ั ก
ิ าร (Non
operating System)
่
• ผู ใ้ ช้เขียนโปรแกรมควบคุมเครือง
เตรียมข้อมู ล ทางานตามโปรแกรม
ตรวจสอบข้อผิดพลาด
• ใช้ประโยชน์จากคอมพิวเตอร ์ได้น้อย
และไม่คม
ุ ้ ค่า
่ operator ขึนมาท
้
่ ยม
• เพิม
าหน้าทีเตรี
ข้อมู ล และเซ็ตอ ัพระบบสาหร ับผู ใ้ ช้งาน
วิว ัฒนาการของระบบต่างๆ
2. ระบบงานแบ็ตช ์ (Batch system)
่
• แก้ปัญหาเวลาของเครืองเสี
ยเปล่าในระหว่าง
ตรวจสอบความต้องการทางาน และป้ อนงาน
่ โดยการใช้บต
เข้าสู ่เครือง
ั รรายการบันทึก
ข้อมู ล
• resident monitor
• ร ันโปรแกรมเรียงลาด ับกันไปโดยจะมีขอ
้ มู ล
่
ปะหน้าและท้ายโปรแกรม เพือแยกงานออก
่ า
จากกัน และบอกลักษณะงานทีท
• มีภาษาสาหร ับคุมงาน (Job Control
Language : JCL)
วิว ัฒนาการของระบบต่างๆ
3. การทางานแบบบัฟเฟอร ์ (buffering)
• ให้หน่ วยร ับ-แสดงผลทางานไปพร ้อมๆ กับ
CPU
• มีการบันทึกข้อมู ลใหม่เข้ามาในขณะที่
ข้อมู ลเก่ากาลังประมวลผลอยู ่
่ าหร ับเก็บข้อมู ลทีพร
่ ้อม
• มี buffer (ทีส
สาหร ับการ
ประมวลผลต่อไป)
• มีการหยุดรอระหว่างซีพย
ี ู รออุปกรณ์ กรณี
อุปกรณ์ทางานได้ชา้ หรือ อุปกรณ์รอซีพย
ี ู
วิว ัฒนาการของระบบต่างๆ
4. การทางานแบบออฟไลน์ (Off-line)
่
• มีการใช้เทปแม่เหล็กแทนเครืองอ่
านบัตร
่
่ ความเร็วตา
่
หรือเครืองพิ
มพ ์ทีมี
• ใช้วธ
ิ จ
ี าลองข้อมู ลจากบัตรมาลงบนเทป
แม่เหล็กแทน
• การถ่ายเทข้อมู ลไปยังเทป ทาคนละเวลากับ
การประมวลผล
• ต้องทางานในลักษณะ device
independent
วิว ัฒนาการของระบบต่างๆ
5. การทางาน Spooling
่ น
้
• ใช้ disk แทนเทป ทาให้ความเร็วเพิมขึ
• มีการบันทึกข้อมู ลใหม่เข้ามาในขณะที่
ข้อมู ลเก่ากาลังประมวลผลอยู ่
่
• เป็ นจุดเริมการท
างานแบบหลายงาน
(multiprogramming) โดยมีการถ่ายเท
ข้อมู ลกับจานแม่เหล็กในขณะเดียวกับที่
ซีพย
ี ู ทาการประมวลผลได้
• สามารถเลือกว่าจะทางานใน spool ว่าจะ
ทางานใดก่อนงานใดหลังได้ตามลาดับ
วิว ัฒนาการของระบบต่างๆ
6. ระบบมัลติโปรแกรมมิง่
(multiprogramming)
• มีโปรแกรมอยู ่ในหน่ วยความจาหลัก
่
พร ้อมทีจะถู
กประมวลผลได้หลาย
โปรแกรม
่
่ งทางานเสร็จ หรือมี
• เมือโปรแกรมหนึ
การหยุดคอยงานอะไรสักอย่าง เช่น รอ
่
เปลียนเทป
ระบบปฏิบต
ั ก
ิ ารจะคัดเลือก
่ พร
่ ้อมเข้ามาประมวลผลแทน
งานอืนที
และสามารถกลับมาประมวลผลงานเดิม
วิว ัฒนาการของระบบต่างๆ
7. ระบบแบ่งเวลา (Time Sharing)
• การทางานแบบโต้ตอบ (online)
• ระบบโต้ตอบแบบ
multiprogramming
วิว ัฒนาการของระบบต่างๆ
8. ระบบตอบสนองฉับพลัน (Realtime system)
• คานึ งถึงอ ัตราการตอบสนองเหนื อ
่ นใด
่
สิงอื
• ต้องทาให้หน่ วยประมวลผลกลาง
่
ว่างอยู ่ตลอดเวลาเพือรอคอยงาน
้
และตอบสนองงานนันในทั
นทีทน
ั ใด
วิว ัฒนาการของระบบต่างๆ
9. ระบบคอมพิวเตอร ์ส่วนบุคคล (Personal
Computer System : PC)
่
• อุปกรณ์ร ับ-แสดงผลเปลียนรู
ปแบบไป มีปุ่ม
่
คีย ์บอร ์ด เมาส ์ เครืองพิ
มพ ์
• วิว ัฒนาการระบบปฏิบต
ั ก
ิ ารจาก CPM มาเป็ น
DOS, Windows 3.x, Windows 95,
Windows 98, Windows ME, Windows
NT, Windows 2000, Windows XP
• ประสิทธิภาพสู ง ใช้งานง่ าย ราคาเหมาะสม
การดูแลร ักษาไม่ยุ่งยากซ ับซ ้อน สามารถ
วิว ัฒนาการของระบบต่างๆ
10. ระบบเวอร ์ชวลแมชีน (Virtual Machine)
• ช่วยให้ผูใ้ ช้รู ้สึกว่าทางานกับคอมพิวเตอร ์
่ หรือช่วยให้ผูใ้ ช้หลาย
หลายเครือง
่
คนทางานกับคอมพิวเตอร ์เครืองเดี
ยวได้
• ระบบคอมพิวเตอร ์เมนเฟรม โดยใช้เทคนิ ค
การจัดเวลาของซีพย
ี ู และหน่ วยความจา
เสมือน (virtual memory)
• คอมพิวเตอร ์ทางานได้หลายโปรเซสพร ้อม
กันโดยแต่ละโปรเซสจะทางานเสมือนมี
ทร ัพยากร คือ ซีพย
ี ู และหน่ วยความจาของ
proc
ess
proc
ess proc
ess proc
ess
kern
el
ฮารด ์
kern kern kern
el
el
el
เวอร ์ชวลแมชีน
ฮารด ์แวร ์
แวร ์
ไม่ใช่เวอร ์ชวลแมชชีน
เวอร ์ชวลแมชชีน
วิวัฒนาการของระบบต่างๆ
11. ระบบมัลติโปรเซสเซอร ์ (Multiprocessor
System)
• มีหลายโปรเซสเซอร ์
่
• ใช้ในการติดต่อสือสารระยะใกล้
• ใช้ bus, clock, memory, device ร่วมกัน
่
• เพิมประสิ
ทธิภาพของเอาท ์พุต
่
• ประหยัดค่าใช้จา
่ ยเมือเที
ยบกับโปรเซสเซอร ์
่
เดียวหลายระบบ
่ อ เนื่องจากถ้า
• ทาให้ระบบมีความน่ าเชือถื
โปรเซสเซอร ์ใดทางานผิดพลาดก็จะมี
วิว ัฒนาการของระบบต่างๆ
12. ระบบแบบกระจาย (Distribution
System)
่ นช ัดคือระบบเครือข่าย
• ตัวอย่างทีเห็
อินเตอร ์เน็ ต
่
• การเชือมต่
อกันระหว่างคอมพิวเตอร ์
เป็ นแบบหลวมๆ (loosely coupled
system)
่ ตอ
• ระบบปฏิบต
ั ก
ิ ารทีใช้
้ งรองร ับที่
เรียกว่า NOS (Network Operating
เหตุผลในการสร ้างระบบแบบกระจาย
• การแชร ์ทร ัพยากร (Resource)
่
• เพิมความเร็
วในการคานวณ มีการ
ทา Load Sharing
่ อของระบบ
• ความน่ าเชือถื
่
• การติดต่อสือสาร
ข้อพิจารณาในการเลือกระบบปฏิบต
ั ก
ิ าร
• บริการ (Service) ของ
่ ให้
ระบบปฏิบต
ั ก
ิ ารทีมี
• การติดต่อกับผู ใ้ ช้ (User
Interface) กับคอมพิวเตอร ์
• การแยกส่วนประกอบของระบบ
ออกเป็ นส่วนย่อยๆ และการ
่
้
เชือมโยงระหว่
างส่วนย่อยๆ นัน
คอมโพเนนต ์ของระบบ (System component)
•
•
•
•
•
การจัดการโปรเซส (process
management)
การจัดการหน่ วยความจา (memory
management)
การจัดการไฟล ์ (file management)
การจัดการอินพุต/เอาต ์พุต (I/O system
management)
่
การจัดการสือจัดเก็
บข้อมู ล (storage
management)
โปรเซส (process)
่ าลังร ัน(run) หรือเอ็กซิ
• โปรแกรมทีก
คิวต ์ (execute) อยู ่
่
• โปรแกรมทีอาจถู
กร ัน(run) หรือเอ็กซิ
คิวต ์ (execute) ในอนาคต
่
• โปรแกรมทีรวมกั
นเป็ นแบตช ์ (batch)
• การแชร ์เวลาของโปรแกรม
่
• งาน spool สาหร ับเครืองพิ
มพ ์
process management
• การสร ้างและลบโปรเซสของระบบ
และผู ใ้ ช้
• การหยุดและทาโปรเซสต่อไป
• การจัดเตรียมกลไกสาหร ับการ
่
ติดต่อสือสารโปรเซส
• การจัดเตรียมกลไกการแก้ไข
deadlock
Memory management
• ติดตามการใช้งานหน่ วยความจาส่วน
ต่างๆ ว่าทาอะไร และของใคร
• ตัดสินใจว่าโปรเซสใดจะโหลดเข้าสู ่
่ หน่ วยความจาว่าง
หน่ วยความจาเมือมี
่
• จัดสรรการใช้หน่ วยความจาเมือ
จาเป็ นต้องใช้
File management
• สร ้างและลบไฟล ์
• สร ้างและลบไดเร็กทอรี่ หรือ
โฟลเดอร ์
• สนับสนุ นการจัดการไฟล ์ในรู ป
แบบเดิมๆ
่ านมา
ทีผ่
่ ใช้
่ จด
• แมพไฟล ์ไปยังสิงที
ั เก็บข้อมู ล
• แบ็คอ ัพหรือสร ้างไฟล ์สารอง
Storage management
• primary storage -- ram
• secondary storage – disk
• virtual memory (จาลองหน่ วย
จัดเก็บ
ข้อมู ลบนดิสก ์ให้เป็ น
หน่ วยความจา)
Storage management
้ ว่่ างบนดิสก ์
• จัดการเนื อที
่
• จัดการตาแหน่ งจัดเก็บข้อมู ลทีอาจ
่ การใช้งาน
กระจัดกระจาย แต่เมือมี
จะต้องทางานได้เร็วโดยมีพอยเตอร ์
้
ชีไปยั
งกลุ่มข้อมู ลเดียวก ัน
• การจัดแบ่งเวลาการใช้ดส
ิ ก์
Networking
• ใช้ก ับระบบแบบประจาย
(distributed system)
่
• แต่ละเครืองมี
processor,
memory, clock เป็ นของตัวเอง
• การติดต่อระหว่าง processor ผ่าน
ทางสาย
่
สือสาร
Protection management
• การป้ องกัน (protection) หมายถึง
่ ควบคุมการ access
กลไกทีใช้
program การ process และควบคุม
่ าหนดโดยระบบ
ผู ใ้ ช้จาก device ทีก
คอมพิวเตอร ์
่
• ระบบป้ องกันคือ ระบบทีควบคุ
มการใช้
์
งานจากผู ใ้ ช้ทไม่
ี่ มส
ี ท
ิ ธิในการใช้
• ป้ องกันการ execute พร ้อมๆ กันหลาย
โปรเซส
Command-interpreter
system
่ อไปเข้ามา
• shell ”นาคาสังต่
execute”
• command interpreter ต ัวแปล
่ งเป็
่ นการ interface ระหว่าง
คาสังซึ
ผุใ้ ช้ก ับ OS
่
• บาง OS มีต ัวแปลคาสังอยู
่ใน
kernel เลย เช่น Windows บาง
ระบบเช่น UNIX จะมีการร ัน
บริการของระบบปฏิบต
ั ก
ิ าร
Operating system services
•
•
•
•
•
•
•
การ execute โปรแกรม
การปฏิบต
ั ก
ิ บ
ั input/output
การจัดการกับระบบไฟล ์
่
การติดต่อสือสาร
การตรวจจับข้อผิดพลาด
การแชร ์ทร ัพยากร
การป้ องกัน
System Calls
•
•
•
•
•
การควบคุมโปรเซส
การจัดการกับไฟล ์
การจัดการดีไวซ ์
การบารุงร ักษาข้อมู ล
่
การติดต่อสือสาร