Operating System

Download Report

Transcript Operating System

Operating System
Lesson 3
Process
ความหมาย
•
User View
• สามารถ run โปรแกรมที่แตกต่างกันได้ เช่น Word, Excel
• โปรแกรมเดียวกันสามารถ run process ได้หลายตัว
OS View
• เป็ นหน่วยที่ให้ใช้ CPU
• เป็ นหน่วยในการ execute
• เป็ นหน่วยที่ให้ทรัพยากรในระบบ เช่น I/O resource
Operating System
ส่ วนประกอบของ process
•
Operating System
1. Code เช่น if , while
2. Data เป็ นส่ วนของ data program เช่น การประกาศ ตัวแปร
3. Stack เช่น Local variable
4. หมายเลขโปรเซส Process ID
5. บล็อกควบคุมโปรเซส (Process control block)
ส่ วนประกอบของ process
•
6. คุณสมบัติของโปรเซส (Properties of process)
• 6.1 ลาดับความสาคัญของโปรเซส (Priority)
• 6.2 อานาจหน้าที่ของโปรเซส (Authority)
• 6.3 คุณสมบัติอื่นที่ระบบปฏิบตั ิการกาหนดให้มี PSW
(Program status word)
ตัวอย่ างเวลาเรียกโปรแกรม
• เมื่อ execute program ส่ วนของโปรแกรมจะถูกโหลดจาก
Hard Disk เข้าสู่ memory
• ส่ วนที่ถูกโหลดคือ code และ data
Operating System
Two state Process
•
• สถานะพร้ อม (ready state) คือสถานะที่โปรเซสพร้อมที่
จะใช้ซีพียทู นั ที OS มอบหมายให้ในสถานะนี้ไม่มีการรัน
ของโปรเซส (โปรเซสหยุดนิ่ง) Not running คือ process
ไม่ได้ทางาน
• สถานะรัน (running state) คือสถานะที่โปรเซสกาลัง
ครอบครองซีพียอู ยูม่ ีการรันของโปรเซสจริ งๆ เพราะ
โปรเซสใช้ซีพียเู อ็กซีคิว้ คาสัง่ หรื อโค้ดโปรแกรมของ
โปรเซสนั้น
Operating System
Two state Process
Not running Process are waiting in a queue
•
Operating System
Two state Process (2)
•
Operating System
ปัญหา
• จะมีคิวแค่ 1 คิวเท่านั้น
• ถ้า process ตัวใดไม่พร้อมจะใช้งานก็จะไปต่อที่คิว และถ้าต้องการ
process ตัวใหม่ และ process ตัวนั้นไม่พร้อม ก็จะต้องไปหา process ตัว
ใหม่ที่พร้อมจะทางาน
การแก้ปัญหา
•เพิ่มคิวเป็ น 2 คิว คือ Ready และ Blocked
•เพิ่มสถานะ 2 สถานะคือ New และ Exit
Five state Process
•
•
•
•
•
•
Operating System
New คือ process ที่ถูกสร้างขึ้นแต่ยงั ไม่ได้ทางาน
Ready คือ process พร้อมที่จะทางาน
Running คือ process ที่กาลังทางาน
Exit คือ process ที่สิ้นสุ ดการทางาน
Blocked หรื อ Waiting
- process ไม่สามารถทางานได้เนื่องจากรอเหตุการณ์ใดเหตุการณ์
หนึ่งบางอย่างอยู่ เช่น เกี่ยวกับอุปกรณ์เข้าออก
- process ไม่จาเป็ นต้องใช้ซีพียแู ละยังไม่พร้อมที่จะครอบครองซีพียู
ซึ่งจะทาให้โปรเซสอื่นเข้ามาครอบครองซีพียใู นช่วงนี้ได้
Five state Process (2)
•
Operating System
Five state Process (3)
•
Operating System
ปัญหา
- ถ้าสถานะ Blocked มีคิวเดียว อาจมี process หลายตัวรอการใช้ I/O
- เช่น บางตัวรอใช้ Hard Disk ก็ตอ้ งเสี ยเวลาในการหาว่า process ตัว
ไหน ต้องการใช้ Hard Disk
Five state Process (4)
การแก้ปัญหา
• มีคิวหลายคิว
• 1 คิว ก็เป็ นของอุปกรณ์ตวั นั้น
•
Operating System
Seven state Process
•
Operating System
• ปัญหาของ 5 สถานะคือ เช่น ไม่มี process ใน CPU เลย ทาให้ CPU
ว่าง และจะนา process ตัวใหม่เข้ามา ก็เข้าไม่ได้ เพราะ memory เต็ม
• การแก้ปัญหาคือจะ swap process บางตัวออกไปไว้ที่ Hard Disk ซึ่ง
จะเรี ยก Hard Disk แบบนี้วา่ swap area
• กรณี ดงั กล่าวจึงเพิ่มสถานะใหม่ คือ suspend ซึ่งแยกได้เป็ น 2
สถานะคือ
- Blocked suspend คือ process ที่ถูก copy มาจาก memory และกาลัง
รอใช้ I/O
- Ready suspend คือ process ที่ใช้ I/O เสร็ จ และต้องการจะใช้ CPU
Seven state Process (2)
•
Operating System
Process Data Structure
•
•
•
•
•
Operating System
OS จะมี table หนึ่งชื่อ process table
Process table จะแบ่งเป็ น entry ซึ่ง 1 entry ต่อ 1 process
แต่ละ entry จะเรี ยกว่า PCB (Process Control Block)
PCB จะเก็บรายละเอียดข้อมูลของ process เช่น ตาแหน่งที่อยูใ่ น
หน่วยความจา, สถานะ process, Process ID
• การโหลด process เข้าสู่ memory คือ การโหลด PCB
Process Control Block (PCB)
•
Operating System
ข้อมูลทัว่ ไปแบ่งออกเป็ น 3 กลุ่ม คือ
• ข้ อมูลระบุ Process (Process Identification) ได้แก่ รหัสระบุแต่ละ process
• กลุ่มข้ อมูลสถานะของ process (Process State Information) เก็บสถานะ
ต่างๆของ process เช่น registerต่างๆ ของหน่วยประมวลผล เช่น การเปลี่ยน
สถานะ
• กลุ่มข้อมูลควบคุมprocess (Process Control Information) ได้แก่
- ข้อมูลการจัดตารางทางาน (Process scheduling)
- ข้อมูลเชิงโครงสร้าง ซึ่งมักเป็ น pointer เช่น ชี้ไปยัง PCB
- การสื่ อสารระหว่าง process ใช้ส่งข้อมูลระหว่าง process
- ข้อมูลอื่นๆ เช่น การจัดการหน่วยความจาหรื อการใช้ทรัพยากร
Process Control Block (PCB)
•
Operating System
1 พอยเตอร์ (Pointer)
2 สถานะของโปรเซส (Process state)
3 หมายเลขโปรเซส (Program id)
4 ตัวนับจานวน (Program counter)
5 รี จิสเตอร์ (Register)
6 ข้อมูลการจัดเวลาของซีพียู (CPU scheduling information)
7 ข้อมูลการจัดการหน่วยความจา (Memory management information)
8 ข้อมูลแอ็กเคาต์ (Account information)
9 ข้อมูลสถานะอินพุต/เอาต์พตุ (I/O status information)
การจัดการโปรเซส
•
Operating System
การปฏิบัติการบนโปรเซส
1. การสร้ างโปรเซส (Process creation)
ถ้ า process สร้ าง process ขึน้ ใหม่ เมื่อพิจารณาการ execute
1. โปรเซสแม่ยงั ประมวลผลต่อไป พร้อมโปรเซสลูก
(The parent continues to execute concurrently with its children.)
2. โปรเซสแม่ตอ้ งรอให้โปรเซสลูกบางตัว หรื อโปรเซสลูกทั้งหมดสิ้ นสุ ด จึงจะเริ่ ม
ประมวลผลได้ใหม่
(The parent waits until some or all of its children have terminated.)
ถ้ า process สร้ าง process ขึน้ ใหม่ เมื่อพิจารณา address ของโปรเซสใหม่
1. โปรเซสลูกเป็ นสาเนาของโปรเซสแม่ คือใช้ address เดียวกับแม่
(The child process is a duplicate of the parent process.)
2. โปรเซสลูกมีตาแหน่งของ load address ของตนเอง
(The child process has a program loaded into it.)
การจัดการโปรเซส
•
2. การสิ้นสุ ดของโปรเซส (Process termination)
3 เหตุผลที่ โปรเซสแม่จะหยุดการประมวลผลของ
โปรเซสลูก
1. โปรเซสลูกใช้ resource มากกว่าที่กาหนดไว้
2. ไม่มีความจาเป็ นต้องใช้โปรเซสนั้นอีกแล้ว
3. โปรเซสแม่สิ้นสุ ด และ OS ไม่ยอมให้โปรเซสลูก
ทางานต่อไป
Operating System
การจัดการโปรเซส
•
Operating System
โปรเซสสื่ อประสาน (Cooperating process)
โปรเซสที่ประมวลผลในระบบอาจเป็ นได้มีได้ 2 แบบคือโปรเซสอิสระ
(Independent process) ซึ่ งทางานโดยไม่มีผลกระทบ หรื อได้รับผลกระทบจาก
โปรเซสอื่น เป็ นอิสระที่ไม่มีการแบ่งปั นทรัพยากรร่ วมกับใคร ส่วนโปรเซสสื่ อ
ประสาน (Cooperating process) อาจได้รับผลกระทบ หรื อส่ งผลกระทบต่อ
โปรเซสอื่น หรื อกล่าวได้วา่ มีการใช้ทรัพยากรร่ วมกับโปรเซสอื่น และเหตุที่ทา
ให้เกิดโปรเซสสื่ อประสานอาจมีได้ดงั นี้
1. การแบ่งปั นข่าวสารข้อมูลร่ วมกัน (Information sharing)
2. เพิ่มความเร็ วในการคานวณ (Computation speedup)
3. แบ่งงานตามหน้าที่เป็ นโมดูล (Modularity)
4. ความสะดวก (Convenience)
การจัดการโปรเซส
•
Operating System
การสื่ อสารในโปรเซส (Interprocess communication : IPC)
การสื่ อสารในโปรเซส หรื อระหว่างโปรเซสมีเรื่ องที่ตอ้ งพิจารณาหลายเรื่ อง
1. ระบบการผ่ านข่ าวสาร (Message-passing system)
การอานวยความสะดวกของ IPC มีอย่างน้อย 2 กระบวนการคือ การส่ งข่าวสาร
Send(message) หรื อ การรับข่าวสาร Receive (message) นอกจากนี้การบ่งบอกถึง
การเชื่อมโยงข่าวสาร และการรับ-ส่ งข่าว มีหลายวิธีดงั นี้
- Direct or indirect communication (ทางตรง)
- Symmetric or asymmetric communication (สมมาตร)
- Automatic or explicit buffering (Explicit = แน่นอน)
- Send by copy or send by reference
- Fixed-sized or variable-sized messages
•
Operating System
2 การตั้งชื่อ (Naming)
2.1 Direct communication
- การรับ-ส่ ง message ระหว่างโปรเซส 2 โปรเซส โดย OS จะ
ไม่ดาเนินการติดต่อให้
- โปรเซสที่จะติดต่อต้องมีการกาหนดชื่อเฉพาะที่ใช้ติอดต่อทั้ง
ผูร้ ับและผูส้ ่ ง
- สร้างลิงค์ระหว่างโปรเซสทั้งสอง
- จองพื้นที่หน่วยความจาที่แชร์ไว้
ส่ งข้อมูล
โปรเซส A
รับข้อมูล
หน่วย
ความจาร่ วม
รับข้อมูล
โปรเซส B
ส่ งข้อมูล
การซิงโครไนซ์ โปรเซส
การส่ ง message จากโปรเซส A ไป โปรเซส B (หลังจากสร้ างลิงค์ เรียบร้ อยแล้ ว)
- โปรเซส A นาข้ อมูลไปวางบนหน่ วยความจาร่ วม
- โปรเซส B จะคอยไปตรวจสอบว่ า โปรเซส A วางข้ อมูลเรียบร้ อยหรือยัง ?
- ถ้ าโปรเซส A ต้ องวางข้ อมูลใหม่ โปรเซส A ตรวจสอบว่ าโปรเซส B นาข้ อมูล
ไปหรือยัง ? เพือ่ ป้องกันการวางทับของข้ อมูล
•
Operating System
รู ปแบบการติดต่ อ
send (B, message) : การส่ ง message ไปยัง Process B
receive (A, message) : การรับ message จาก Process A
ส่ งข้อมูล
โปรเซส A
รับข้อมูล
หน่วย
ความจาร่ วม
รับข้อมูล
โปรเซส B
ส่ งข้อมูล
•
Operating System
2.2 Indirect communication
การติดต่อสื่ อสารทางอ้อม เป็ นการติดต่อผ่าน mailbox หรื อ port ซึ่งทา
หน้าที่เก็บโปรเซส แล้วส่ งให้อีกโปรเซสหนึ่ง วิธีน้ ีทาให้โปรเซสหนึ่งติดต่อ
โปรเซสอื่นผ่าน mail box ได้หลาย mail box เมื่อ share mail box ก็จะทาให้
การสื่ อสารมีประสิ ทธิภาพ
- การรับ-ส่ ง message ระหว่างโปรเซส 2 โปรเซส ผ่าน mailbox/port โดย
OS จะดาเนินการติดต่ อให้
- mailbox เป็ นทีเ่ ก็บ message จากโปรเซสหนึ่งทีส่ ่ งไปอีกโปรเซส
- โปรเซสสามารถติดต่ อกับโปรเซสอืน่ ได้ หลาย mailbox
- สร้ างลิงค์ ระหว่ างโปรเซสที่มีการแชร์ mailbox
•
Operating System
• สมมติ P1, P2, P3 แชร์ mailbox A ไว้
• P1 ส่ ง message ไป mailbox A
• P2, P3 ต้องการรับ message จาก mailbox Aคาถามคือ โปรเซสใดรับ
message จาก mailbox A
• วิธีแก้
– ยอมให้มีการลิงค์ท้ งั สองโปรเซส
– ยอมให้การรับ message ได้ครั้งละ 1 โปรเซส
– ยอมให้ OS เลือกว่าโปรเซสใดที่จะเข้ารับ message
โดยระบบจะกาหนดผูร้ ับไปยังผูส้ ่ งก่อน
•
Operating System
• เจ้าของ mailbox อาจเป็ น OS หรื อโปรเซสก็ได้
– ถ้าเจ้าของเป็ นโปรเซส เมื่อโปรเซสสิ้ นสุ ดลง mailbox จะถูกทาลาย
– ถ้าเจ้าของเป็ น OS mailbox จะเป็ นอิสระ ไม่ผกู ติดกับโปรเซสใด
– ถ้า mailbox ว่าง และมีโปรเซสเข้ามารับข้อมูล OS จะให้โปรเซส
หยุดรอ
– ถ้า mailbox เต็ม และมีโปรเซสเข้ามาส่ งข้อมูล OS จะให้โปรเซส
หยุดรอจนกว่า mailbox มีเนื้อที่วา่ ง
• OS มีกลไกยอมให้โปรเซสกระทาในสิ่ งต่อไปนี้
– สร้าง mailbox ใหม่
– ส่ ง-รับ message ผ่าน mailbox
– ทาลาย mailbox
รู ปแบบของ mailbox
•
Operating System
มี 3 รูปแบบดังนี้
1. Mailbox แบบคิว
– ดึงข้ อมูลจาก mailbox ตามลาดับก่อน-หลัง
– ข้ อมูลใดเข้ ามาก่อนจะถูกดึงไปก่อน ข้ อมูลใดเข้ ามาทีหลังก็จะ
ถูกดึงออกไปทีหลัง  First in First out : FIFO
– mailbox แบบคิว จะมีขนาดคงที่ ถ้ าใส่ ข้อมูลมากจะเต็ม
ข้อมูลเข้า
mailb
ox
ข้อมูลออก
จาก
mailbox
•
Operating System
2. Mailbox แบบไปป์
- คล้าย mailbox แบบคิว
- ดึงข้ อมูลจาก mailbox ตามลาดับก่อน-หลัง
- ข้ อมูลใดเข้ ามาก่อนจะถูกดึงไปก่อน ข้ อมูลใดเข้ ามาทีหลังก็จะถูกดึง
ออกไปทีหลัง  First In First Out : FIFO
- แตกต่ างกับmailbox แบบคิวที่ขนาด mailbox จะยืดหยุ่นได้
ข้อมูลเข้า
mailb
ox
ข้อมูลออก
จาก
mailbox
•
Operating System
3. Mailbox แบบสแต็ก
- ดึงข้ อมูลจาก mailbox ข้ อมูลใดเข้ ามาถึงก่อนจะถูกดึงเข้ ามาใช้ งานทีหลัง
- ข้ อมูลใดเข้ ามาทีหลังก็จะถูกดึงออกไปใช้ ก่อน  First In Last Out :
FILO
ข้อมูลเข้า
mailb
ox
ข้อมูลออก
จาก
mailbox
Process Switching หรือ Context Swithcing
•
Operating System
• เป็ นการสลับการทางานของ process
• ก่อนสลับการทางานต้องมีการเก็บข้อมูลสถานะต่างๆ
• การสลับจะใช้เวลาอยูใ่ นช่วง 1-1000 มิลลิวินาที
สาเหตุ ของ process switching มี 3 ข้อ คือ
• interrupt เกิดจากสถาวะภายนอก เช่น I/O
• System Call คือ process เรี ยกใช้บริ การฟังก์ชนั่ จาก OS
• Exception เกี่ยวกับการจัดการข้อผิดพลาด เช่น หารด้วย 0
Process Switching(2)
•
Operating System
ขั้นตอนการ Process Switching
•
•
•
•
•
•
•
•
Operating System
เก็บข้อมูลสถานะต่างๆใน PCB ของ process ที่กาลังทางานอยู่
update การทางาน PCB จาก running ไปเป็ นสถานะอื่น เช่น Blocked
ย้าย PCB ของ process นี้ไปไว้ใน queue
เลือก process ตัวถัดไปขึ้นมาทางาน
Update ค่าสถานะใน PCB ของ process ที่เลือกเป็ น running
Update ค่าโครงสร้างข้อมูลเกี่ยวกับการจัดการหน่วยความจา
Load ค่า PC และ register ต่างๆ เข้ามา