Ẻ�֡�Ѵ Ẻ�֡�Ѵ����� 3 ʶҹТͧ���������ú�ҧ ��Ժ�� ���� Quantum Time ������� �ѭ�� DeadLock �Դ��������ҧ�� ʶҹ� Block �Դ��������ҧ�� ��õԴ��͡ѹ�����ҧ Process ��˹�ҷ��ͧ�� Mutual exclusion �Դ��������ҧ�� ���С�õԴ��� ������� ����觼ŵ���к���Ժѵԡ�����ҧ�� ͧ���Сͺ�ͧ���� �����ú�ҧ Free TextEditor Create Date :27 �á�Ҥ� 2554 Last Update :27 �á�Ҥ� 2554 22:06:19 �. Counter :Pageviews. Comments :6
- โปรแกรมที่กำลังถูกเอ็กซีคิ้ว- กิจกรรมที่มีการทำงานสัมพันธ์กัน- สิ่งที่ถูกมอบหมายไปให้โปรเซสเซอร์ได้- หน่วยซึ่งถูกส่งต่อได้ ( dispatchable )ยังไม่มีความหมายใดที่เป็นที่ยอมรับกันทุกคน แต่ความหมายที่ว่า โปรเซส คือ "โปรแกรมที่กำลังถูกเอ็กซีคิ้ว" นั้นถูกใช้บ่อยมากที่สุด ดังนั้นจึงเอาความหมายนี้เป็นความหมายของคำว่า โปรเซส เราอาจเปรียบเทียบโปรแกรมเหมือนกับรถยนต์ที่จอดนิ่งอยู่ที่พร้อมที่จะวิ่งไป ในระบบหลายโปรแกรม ( multiprogramming ) โปรเซสอาจเปรียบกับรถยนต์ที่วิ่งออกจากจุดเริ่มต้น ถ้ามีหลายโปรเซสอยู่ในระบบก็เหมือนกับการที่เรามีรถหลายคันที่จะต้องออกวิ่งไปพร้อม ๆ กัน ตัวซีพียูเปรียบได้กับคนขับรถ ถ้าซีพียูมีตัวเดียวก็เหมือนกับคนขับรถมีเพียงคนเดียว ดังนั้นเมื่อรถหลายคันออกวิ่งการที่คนขับคนเดียวจะพารถหลายๆ คันวิ่งไปต้องขับรถทีละคันให้วิ่งเดินหน้าไปทีละนิด เวียนเปลี่ยนไปจนครบทุกคัน จนถึงจุดหมายปลายทาง ( โปรแกรมสิ้นสุดลง ) นั้นคือเราสามารถมีโปรเซสหลายๆ โปรเซสทำงานไปพร้อมๆ กันได้โดยมีซีพียูเพียงตัวเดียว 1 องค์ประกอบของโปรเซส1. หมายเลขโปรเซส (Process id)2. โค้ดโปรแกรม (Program code)3. ข้อมูล (Data)4. บล็อกควบคุมโปรเซส (Process control block)
registerslist of open files::::::5. PSW (Program status word)6. คุณสมบัติของโปรเซส (Properties of process)
2 สถานะของโปรเซสสถานะของโปรเซสแบ่งได้ 6 สถานะ1. สถานะเริ่มต้น (New : The process is being created.)2. สถานะพร้อม (Ready : The process is waiting to be assigned to a processor.)3. สถานะรัน (Running : Instructions are being executed.)4. สถานะรอ (Wait : The process is waiting for some event to occur.)5. สถานะบล็อก (Block : The process is blocked for some event to occur.)6. สถานะสิ้นสุด (Terminate : The process has finished execution.)สถานะของโปรเซสแบ่งได้อีกแบบมี 4 สถานะ1. สถานะพร้อม (ready state) คือสถานะที่โปรเซสพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการรันของโปรเซส2. สถานะรัน (running state) คือสถานะที่โปรเซสกำลังครอบครองซีพียูอยู่ มีการรันของโปรเซสจริงๆ เพราะโปรเซสใช้ซีพียูเอ็กซีคิ้วคำสั่ง หรือโค้ดโปรแกรมของโปรเซสนั้น3. สถานะติดขัด (blocked state) คือสถานะที่โปรเซสหยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสไม่จำเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู ซึ่งจะทำให้โปรเซสอื่นเข้ามาครอบครองซีพียูในช่วงนี้ได้4. สถานะพัก (suspend state) คือสถานะที่โปรเซสไม่มีการทำงานใดๆ หยุดนิ่งอย่างสมบูรณ์ ไม่มีการรอการใช้ซีพียูหรือเหตุการณ์ใดๆ ให้เกิดขึ้น
ระบบแบ่งเวลา คือ การสลับ process เข้าใช้ CPU บ่อย เท่าที่ผู้ใช้รู้สึกว่าทุก process ตอบสนองได้ตลอดเวลา 1. Device queue คือ การจัดคิวของโปรเซสต่าง ๆ เช่น คิวของ I/O คิวของการรอ child process หรือคิวของอินเทอร์รัพต์ เป็นต้นเมื่อกระบวนการเข้าไปในระบบ จะถูกส่งเข้า job queue ซึ่ง queue จะรวบรวม process ทั้งหมดในระบบ และมีคำหลาย ๆ คำเกี่ยวกับการเข้าคิว เช่น ready, blocked และ running แต่ถ้า process รอเข้า I/O devices จะเรียกว่า device queue ซึ่งทุกอุปกรณ์จะมี device queue ของตนเองprocesses จะย้ายไปมาระหว่าง queue ต่าง ๆ โดยระบบปฏิบัติการมีหน้าที่เลือกตามวัตถุประสงค์ และความเหมาะสม ซึ่งถูกจัดการโดย scheduler สำหรับแต่ละ Device queue ต่างก็มี scheduler ของตนเอง และมี scheduler ส่วนกลาง ควบคุมการทำงานของ process ทั้งหมดอีกครั้งหนึ่ง 2. Contect switch คือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบหลังประมวลผล Process หนึ่งเรียบร้อย ต้องย้ายไปยัง Process ใหม่ หรือ การย้ายจากหน่วยประมวลผลไปยังอีกกระบวนการหนึ่ง ต้องการ saving the stat of the old process and loading the saved state for the new process ซึ่งงานนี้ถูกเรียกว่า context switch สำหรับคำว่า context of process อาจแทนด้วย PCB of a process Mutual exclusionคือ การกีดกั้น ในบริเวณ หรือส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่ ๆ เป็น Critical region ซึ่งมีคุณสมบัติอยู่ 4 ประการ
การแก้ปัญหา Mutual exclusion with busy waiting 4 การปฏิบัติการบนโปรเซส
1. การสร้างโปรเซส (Process creation)ถ้า process สร้าง process ขึ้นใหม่ เมื่อพิจารณาการ execute1. โปรเซสแม่ยังประมวลผลต่อไป พร้อมโปรเซสลูก(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 ไม่ยอมให้โปรเซสลูกทำงานต่อไป
5 โปรเซสสื่อประสาน (Cooperating process)
6.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 6.2 การตั้งชื่อ (Naming) 6.2.1 Direct communicationทุกโปรเซสที่ติดต่อกันต้องมีการอ้างชื่ออย่างชัดเจน และแน่นอน เช่นการส่งข่าวสารจากโปรเซส A ไปโปรเซส B ก็ต้องระบุให้ชัดเจนว่าส่งจากไหนไปไหนsend(B,message) หมายถึง ส่งไปให้โปรเซส B 6.2.2 Indirect communicationreceive(A,message) หมายถึง รับจากโปรเซส Aการติดต่อสื่อสารทางอ้อม เป็นการติดต่อผ่าน mailbox หรือ port ซึ่งทำหน้าที่เก็บโปรเซส แล้วส่งให้อีกโปรเซสหนึ่ง วิธีนี้ทำให้โปรเซสหนึ่งติดต่อโปรเซสอื่นผ่าน mail box ได้หลาย mail box เมื่อ share mail box ก็จะทำให้การสื่อสารมีประสิทธิภาพจากแนวคิดเรื่องการใช้ mail box ทำให้มีแบบของ mail box ขึ้น 3 แบบ1. Queue mailbox มาก่อนออกก่อน แต่มีขนาด block คงที่ ใส่มากเกินไปก็จะเต็ม (First In First Out)2. Pipe mailbox มีขนาดยืดหยุ่น ใส่ข้อมูบได้เท่าที่ต้องการ3. Stack mailbox มาก่อนออกหลัง (First In Last Out) 6.3 การซิงโครไนซ์ (Synchronization)การส่งข้อมูลระหว่างโปรเซสต้องใช้พื้นที่ในการเรียก send และ receive จึงต้องออกแบบให้การเรียกเป็นไปอย่างมีประสิทธิภาพ ซึ่งใช้ความรู้เรื่องการเข้า blocking และ nonblocking ไม่ให้เกิด deadlock ขึ้น จึงมีเรื่องต้องพิจารณา 4 เรื่องดังนี้- Blocking send : The sending process is blocked until the message is received by the receiving process or by the mailbox.- Nonblocking send : The sending process sends the message and resumes operation.- Blocking receive : The receiver blocks until a message is available.- Nonblocking receive: The receiver retrieves either a valid message or a null. 6.4 บัฟเฟอร์ (Buffering)โดยพื้นฐานแล้วการส่งข่าวสารผ่านคิว จะมีลักษณะคิวอยู่ 3 แบบ- Zero capacity ไม่มีคิวอยู่ คือไม่มีการคอย ผู้ส่งต้องหยุดรอจนกระทั่งผู้รับได้รับ- Bounded capacity คิวที่มีความยาวจำกัด หรือมีขอบเขตแน่นอน- Unbounded capacity คิวที่มีความยาวไม่จำกัด ผู้ส่งจะไม่ถูกปฏิเสธ
|