งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

โครงสร้างของ กระบวนการ โครงสร้างระบบและสถาปัตยกรรม คอมพิวเตอร์ วิเชษฐ์ พลายมาศ นงลักษณ์ พรมทอง Process Structure.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "โครงสร้างของ กระบวนการ โครงสร้างระบบและสถาปัตยกรรม คอมพิวเตอร์ วิเชษฐ์ พลายมาศ นงลักษณ์ พรมทอง Process Structure."— ใบสำเนางานนำเสนอ:

1 โครงสร้างของ กระบวนการ โครงสร้างระบบและสถาปัตยกรรม คอมพิวเตอร์ วิเชษฐ์ พลายมาศ นงลักษณ์ พรมทอง Process Structure

2 วัตถุประสงค์การเรียนรู้ n เพื่อศึกษาแนวคิดและโครงสร้างของ กระบวนการในระบบคอมพิวเตอร์ n เพื่อศึกษาการจัดการกระบวนการ การ ประสานงานระหว่างกระบวนการ และการ สื่อสารระหว่างกระบวนการ

3 Agenda n Process Concept n Process Scheduling n Operations on Processes n Cooperating Processes n Interprocess Communication

4 แนวคิดเกี่ยวกับกระบวนการ (Process Concept) n กิจกรรมทุกอย่างที่หน่วยประมวลผลกลาง กระทำนั้น  ในระบบเชิงกลุ่ม (batch) เรียกว่า งาน (job)  ในระบบแบ่งกันใช้เวลา (time-sharing) เรียกว่า โปรแกรมผู้ใช้ (user program) หรือภารกิจ (task)  คำว่า งาน และ กระบวนการ (process) จึงสามารถ ใช้แทนกันได้

5 Process Concept (cont.) n กระบวนการ คือโปรแกรมที่ถูกกระทำการ (a program in execution) n กระบวนการจะประกอบด้วย:  program counter  stack  data section

6 Process Concept (cont.) n เมื่อกระบวนการถูกกระทำการ จะถูกเปลี่ยนสถานะ (state) n สถานะของกระบวนการ หมายถึง ขณะปัจจุบัน ของกิจกรรมของกระบวนการ ประกอบด้วย  ใหม่ (new) กระบวนการที่เพิ่งถูกสร้างใหม่  กำลังดำเนินงาน (running) ชุดคำสั่งที่กำลังถูกกระทำการ  รอ (waiting) กระบวนการที่กำลังรอคอยเหตุการณ์ บางอย่าง เช่น รอสัญญาณ รอให้ไอ/โอ เสร็จ  พร้อม (ready) กระบวนการที่กำลังรอให้เข้าใช้หน่วย ประมวลผล  สิ้นสุด (terminated) กระบวนการที่กระทำการเสร็จแล้ว

7 Diagram of Process State

8 บล็อกควบคุมกระบวนการ (Process Control Block-PCB) n บล็อกควบคุมกระบวนการ จะประกอบด้วยข้อมูลที่ เกี่ยวกับ  สถานะกระบวนการ (process state)  ตัวนับโปรแกรม (program counter)  เรจิสเตอร์ของซีพียู (CPU register)  ข้อมูลการจัดลำดับซีพียู (CPU-scheduling information)  ข้อมูลการจัดการหน่วยความจำ (memory- management information)  ข้อมูลบัญชีผู้ใช้ (accounting information)  ข้อมูลสถานะไอ/โอ (I/O status information)

9 Process Control Block (PCB)

10 CPU Switch From Process to Process

11 คิวการจัดลำดับกระบวนการ (Process Scheduling Queues) n คิวงาน (Job queue) กลุ่มของทุกกระบวนการ ในระบบ n คิวพร้อม (Ready queue) กลุ่มของทุก กระบวนการที่ฝังอยู่ในหน่วยความจำหลักที่รอ execute n คิวอุปกรณ์ (Device queues) กลุ่มของ กระบวนการทั้งหมดที่กำลังรออุปกรณ์ i/o n มีการย้ายกระบวนการไปมาระหว่างคิวต่างๆ ข้างต้น

12 Ready Queue And Various I/O Device Queues

13 Representation of Process Scheduling

14 ตัวจัดลำดับ (Schedulers) n Long-term scheduler (or job scheduler)  ทำหน้าที่คัดเลือกกลุ่มกระบวนการขึ้นมาจากที่พักเก็บ ไปยังหน่วยความจำหลักไปยังคิวพร้อม  ควบคุมดีกรีของการทำงานแบบหลายโปรแกรม (degree of multiprogramming) ให้เหมาะสม n Short-term scheduler (or CPU scheduler)  ทำหน้าที่คัดเลือกกระบวนการที่พร้อมจะถูกกระทำการ ขึ้นมาหนึ่งกระบวนการให้เข้าใช้ซีพียู n ตัวจัดลำดับระยะกลาง (medium-term scheduler)  ทำหน้าที่ขจัดกระบวนการออกจากหน่วยความจำ ช่วย ลดดีกรีของการทำงานแบบหลายโปรแกรมลง

15 การเพิ่มตัวจัดลำดับระยะกลาง ( Medium Term Scheduling) มาช่วยในแถวคอย

16 Schedulers (cont.) n Short-term scheduler จะทำงานบ่อยมาก (milliseconds)  (ต้องเร็ว). n Long-term scheduler ทำงานไม่บ่อยนัก (seconds, minutes)  (อาจช้าได้) n long-term scheduler จะควบคุม degree of multiprogramming. n กระบวนการส่วนใหญ่จะมีคุณลักษณะอยู่ 2 ประเภท  กระบวนการเน้นซีพียู (CPU-bound process) เป็น กระบวนการที่เข้าครอบครองซีพียูนานแต่เกี่ยวพันกับอุปกรณ์ ประเภทไอ/โอน้อย  กระบวนการเน้นไอ/โอ (I/O-bound process) ซึ่งเป็น กระบวนการที่ใช้เวลาซีพียูน้อยแต่ครอบครองไอ/โอนาน

17 การสับเปลี่ยน (swapping) n Medium Term Scheduling จะช่วยจัดสรร กระบวนแบบเน้นซีพียูและแบบเน้น i/o ให้มี ความสมดุลกันมากขึ้นในระบบ n โดยพยายามสลับเอากระบวนการที่ยังไม่ จำเป็นออกจากหน่วยความจำไปเก็บไว้ในดิสก์ และสลับกระบวนการที่จำเป็นจากดิสก์เข้ามา ไว้ในหน่วยความจำ n เรียกกิจกรรมเช่นนี้ว่า การสลับเข้า/การสลับ ออก (swap-in/swap-out)

18 การสลับบริบท (Context Switch) n เมื่อซีพียูจะเปลี่ยนไปยังกระบวนการอื่น จะต้อง เก็บสถานะปัจจุบันของกระบวนการเดิมไว้ใน PCB (process control box) ก่อน แล้วค่อยโหลด สถานะของกระบวนการใหม่เข้ามา n ในการสลับบริบท ระบบจะเสียเวลา (มี overhead) และยังทำงานไม่ได้ขณะทำการสลับ บริบท จึงมักใช้ฮาร์ดแวร์ช่วย n PCB จะเก็บข้อมูล  ค่าของเรจิสเตอร์ในซีพียู  สถานะกระบวนการ  ข้อมูลการจัดการหน่วยความจำ

19 การสร้างกระบวนการ (Process Creation) n กระบวนการสามารถสร้างกระบวนขึ้นมาใหม่ได้ ในระหว่างการทำงานผ่าน system call n การสร้างกระบวนการ (create-process)  กระบวนการที่สร้างเรียกว่า กระบวนการแม่ (parent process)  กระบวนการที่ถูกสร้างเรียกว่า กระบวนการลูก (children process) ของกระบวนการแม่นั้น  แต่ละกระบวนการสามารถสร้างกระบวนลูกได้อย่าง ไม่จำกัดในรูปแบบต้นไม้ (tree)

20 Process Creation (cont.) n ลักษณะการแบ่งปันทรัพยากร  ทั้ง Parent และ children จะใช้ทรัพยากรร่วมกัน ทั้งหมด  children จะใช้ทรัพยากรในส่วนของ parent  ทั้ง Parent and child ไม่มีการใช้ทรัพยากรร่วมกัน n Execution  Parent และ children จะ execute พร้อมๆ กัน  Parent จะรอจนกระทั่ง children สิ้นสุด n Address space  Child เรียกใช้เลขที่อยู่เดียวกับ Parent  Children ทำการบรรจุโปรแกรมเข้าไปไว้ในตำแหน่งที่ อยู่ของกระบวนการ Parent

21 การเลิกกระบวนการ (Process Termination) n เมื่อกระบวนการกระทำการเสร็จสิ้นแล้วก็จะลบ ตัวเอง (ผ่านทาง exit system call) n กระบวนการอาจคืนค่าผลลัพธ์บางอย่าง กลับไปยังกระบวนการแม่ (ผ่านทาง wait system call) แล้วปลดปล่อยทรัพยากร ทั้งหมด เช่น physical/virtual memory, file open, i/o buffer n กระบวนการแม่สามารถยกเลิกกระบวนการ ทั้งหมดของลูกได้ (abort) กระบวนการแม่ ถูกยกเลิกโดยระบบปฏิบัติการหรือผู้ใช้

22 การเลิกกระบวนการ (Process Termination) n การยกเลิกกระบวนการสามารถเกิดขึ้นหลาย สาเหตุ  กระบวนการลูกเรียกใช้ทรัพยากรที่ไม่มีสิทธิ์ใช้  ภารกิจที่กระบวนการลูกทำเสร็จสิ้นแล้วไม่จำเป็นต้อง ใช้กระบวนการลูกอีกต่อไป  กระบวนการแม่ออกจากระบบ และระบบปฏิบัติการไม่ อนุญาตให้กระบวนการลูกเข้าใช้ทรัพยากรอีกต่อไป n จำเป็นต้องมีกลไกการเลิกแบบต่อเรียง (cascading termination) เพื่อยกเลิก กระบวนการย่อยแบบเป็นทอดๆ ในโครงสร้างแบบ ต้นไม้

23 Processes Tree on a UNIX System

24 การประสานกระบวนการ (Cooperating Process) n กระบวนการสามารถทำงานไปพร้อมๆกับ กระบวนการอื่นๆ ได้โดยอิสระต่อกัน หรืออาจ ประสานงานกันได้  ถ้ากระบวนการเหล่านี้ไม่ได้ใช้ข้อมูลใดๆ ร่วมกันทั้ง แบบชั่วคราวและถาวร เรียกว่าอิสระต่อกัน (independent)  ถ้าหากกระบวนการเหล่านั้นเกี่ยวข้องกัน มีการใช้ ข้อมูลร่วมกัน กิจกรรมของกระบวนการหนึ่งมีผลต่อ อีกกระบวนการหนึ่ง เราเรียกว่ากระบวนการเหล่านี้ ประสานงานกัน (cooperating)

25 Cooperating Process (cont.) n ข้อดีของการที่กระบวนการมีสภาพแวดล้อมในการ ทำงานอย่างประสานกันมีหลายประการ ได้แก่  การแบ่งปันข้อมูล (information sharing)  เพิ่มความเร็วในการประมวลผล (computation speedup)  สภาพมอดุลาร์ (modularity)  ความสะดวก (convenience) n ในการทำงานร่วมกันจำเป็นต้องอาศัยกลไกการ สื่อสารข้ามกระบวนการ (IPC) และการประสาน เวลา (synchronization) เข้ามาช่วย

26 การสื่อสารระหว่างกระบวนการ (Interprocess Communication: IPC) n การส่งผ่านข่าวสาร (message-passing) n การตั้งชื่อ (naming) n การสื่อสารทางอ้อม (indirect communication) n การประสานเวลา (synchronization)

27 Interprocess Communication (IPC) n Mechanism for processes to communicate and to synchronize their actions. n Message system – processes communicate with each other without resorting to shared variables. n IPC facility provides two operations:  send(message) – message size fixed or variable  receive(message) n If P and Q wish to communicate, they need to:  establish a communication link between them  exchange messages via send/receive n Implementation of communication link  physical (e.g., shared memory, hardware bus)  logical (e.g., logical properties)

28 Implementation Questions n -จะทำการติดตั้งสายการเชื่อมโยงได้อย่างไร n -สายการเชื่อมโยงหนึ่งเส้นสามารถใช้สื่อสารได้ มากกว่าหนึ่งกระบวนการหรือไม่ n -ต้องมีจำนวนสายการเชื่อมโยงกระบวนการแต่ละ คู่ได้กี่เส้น n -ความจุของสายควรมีขนาดเท่าไร n -ขนาดของข่าวสารที่ใช้สื่อสารกันจะมีรูปแบบคงที่ หรือแปรผัน n -สายการเชื่อมโยงจะเป็นแบบเดี่ยว (unidirectional) หรือแบบคู่ (bi-directional)

29 Direct Communication n กระบวนการที่ต้องการสื่อจะต้องใช้ชื่อที่ชัดเจนทั้งฝั่ง รับและฝั่งส่งในรูปแบบข้างล่างนี้  -send(P, message)-ส่งข่าวสารไปยังกระบวนการ P  -receive(Q, message)-รับข่าวสารจากกระบวนการ Q n การเชื่อมโยงการสื่อสารจะต้องมีคุณลักษณะ ดังนี้  ทั้งฝั่งรับและฝั่งส่งจะต้องติดตั้งการเชื่อมโยงระหว่างกันโดย อัตโนมัติ  การเชื่อมโยงจะทำเฉพาะคู่ของฝั่งรับและฝั่งส่งเท่านั้น  ฝั่งรับและฝั่งส่งจะมีการเชื่อมโยงเพียงเส้นเดียวเท่านั้น  สายการเชื่อมโยงสามารถใช้ได้ทั้งแบบทางเดี่ยวและทางคู่ แต่โดยทั่วไปใช้แบบทางคู่

30 Indirect Communication n ข่าวสารจะถูกส่งและรับผ่านทาง mailbox หรือ port  mailbox จะมีเลขที่ซึ่งไม่ซ้ำกัน (unique id) กำกับไว้  ทุกกระบวนการสามารถติดต่อสื่อสารถึงกันโดยอาศัย mailbox ดังกล่าวนี้ ในบางกรณี อาจมีมากกว่าหนึ่ง กระบวนสามารถใช้ตู้ไปรษณีย์ร่วมกันได้ n Operation ของ mailbox  การสร้างตู้ไปรษณีย์ใหม่  การส่งข่าวสารผ่านตู้ไปรษณีย์  การลบตู้ไปรษณีย์

31 Indirect Communication n Mailbox sharing  P 1, P 2, and P 3 share mailbox A.  P 1, sends; P 2 and P 3 receive.  Who gets the message? n Solutions  อนุญาตให้สายการเชื่อมโยงหนึ่งเส้นรองรับกระบวนการ ได้มากที่สุดเพียง 2 กระบวนการเท่านั้น  อนุญาตให้มีเพียงกระบวนเดียวที่สามารถรับข่าวสาร จากตู้ไปรษณีย์ ณ ขณะใดขณะหนึ่ง  ให้ระบบเป็นผู้ตัดสินใจชี้ขาดว่าจะเลือกให้กระบวนการ ใดเป็นผู้รับข่าวสารนั้น และแจ้งว่าใครเป็นผู้รับไปให้ผู้ ส่งทราบ

32 การประสานเวลา (synchronization) n การสื่อสารระหว่างกระบวนการจะอยู่ในรูปแบบที่ เรียกว่า การส่ง (send) และการรับ (receive) n สามารถออกแบบในการรับ-ส่งข่าวสารเป็นแบบ บล็อก (blocking) หรือแบบนันบล็อก (nonblocking) n แบบบล็อก (blocking) บางทีเรียกว่าการประสาน เวลา (synchronous) n แบบนันบล็อก (nonblocking) บางทีเรียกว่า ไม่ ประสานเวลา (asynchronous) ก็ได้ n การรับและการส่ง สามารถกำหนดให้เป็นแบบ บล็อก หรือนันบล็อก ก็ได้

33 การปรับอัตรา (buffering) n ข่าวสารจะถูกแลกเปลี่ยนโดยกระบวนการสื่อสาร ซึ่งอยู่ในกองซ้อนชั่วคราว (temporary queue) เลือกวิธีใดวิธีหนึ่งดังนี้  ความจุค่าศูนย์ (zero capacity) ขนาดสูงสุดของกอง ซ้อนมีค่าเป็นศูนย์ หมายความว่า จะมีข่าวสารอยู่ในกอง ซ้อนได้เพียงชุดเดียวเท่านั้น  ความจุค่าจำกัด (bounded capacity) ขนาดความจุ ของกองซ้อนมีค่าจำกัดเท่ากับ n ดังนั้น จึงรองรับ ข่าวสารได้มากถึง n จำนวนเท่าความจุ  ความจุค่าไม่จำกัด (unbounded capacity) จึงสามารถ รองรับข่าวสารได้ทั้งหมดโดยผู้ส่งไม่จำเป็นต้องหยุดรอ

34 เธรด (Thread) n เดิม 1 กระบวนการ ควบคุม 1 เธรด เรียกว่ามีน้ำหนักมาก (heavyweight) n ปัจจุบัน 1 กระบวนการ มีการออกเป็นส่วนย่อยๆ จำนวน มาก แต่ละส่วนย่อยเรียกว่า เธรด เรียกว่า กระบวนการ น้ำหนักเบา (lightweight process)  แต่ละเธรดจะบรรจุไว้ด้วย หมายเลขเธรด, ตัวนับโปรแกรม, กลุ่มเรจิสเตอร์ และกองซ้อนที่ใช้  เธรดจะมีการใช้งานร่วมกันกับเธรดอื่นๆ ภายใต้กระบวนการ เดียวกัน เช่น ส่วนรหัส, ข้อมูล  มีการใช้ทรัพยากรอื่นของระบบปฏิบัติการ อย่างเช่น การเปิด แฟ้ม และสัญญาณ (signal) n กระบวนการมีคุณลักษณะเป็นแบบมัลติเธรด (multithread) สามารถควบคุมเธรดหลายเธรด จึงสามารถ ทำงานได้หลายงานไปพร้อมๆ กันได้ในเวลาเดียวกัน

35 Thread (cont.) กระบวนการแบบเธรดเดียวกับมัลติเธรด

36 Thread (cont.) n ประโยชน์ของมัลติเธรด  การโต้ตอบ  การใช้ทรัพยากรร่วมกัน  ประหยัด  การใช้ประโยชน์จากสถาปัตยกรรมแบบมัลติ โปรเซสเซอร์

37 User Threads n Thread management done by user-level threads library n Examples - POSIX Pthreads - Mach C-threads - Solaris threads

38 Kernel Threads n Supported by the Kernel n Examples - Windows 95/98/NT/ Solaris - Tru64 UNIX - BeOS - Linux

39 Multithreading Models n Many-to-One n One-to-One n Many-to-Many

40 Many-to-One n Many user-level threads mapped to single kernel thread. n Used on systems that do not support kernel threads.

41 Many-to-One Model

42 One-to-One n Each user-level thread maps to kernel thread. n Examples - Windows 95/98/NT/ OS/2

43 One-to-one Model

44 Many-to-Many Model n Allows many user level threads to be mapped to many kernel threads. n Allows the operating system to create a sufficient number of kernel threads. n Solaris 2 n Windows NT/2000 with the ThreadFiber package

45 Many-to-Many Model

46 Threading Issues n Semantics of fork() and exec() system calls. n Thread cancellation. n Signal handling n Thread pools n Thread specific data

47 Pthreads n a POSIX standard (IEEE c) API for thread creation and synchronization. n API specifies behavior of the thread library, implementation is up to development of the library. n Common in UNIX operating systems.

48 Solaris 2 Threads

49 Solaris Process

50 Windows 2000 Threads n Implements the one-to-one mapping. n Each thread contains - a thread id - register set - separate user and kernel stacks - private data storage area

51 Linux Threads n Linux refers to them as tasks rather than threads. n Thread creation is done through clone() system call. n Clone() allows a child task to share the address space of the parent task (process)

52 Java Threads n Java threads may be created by:  Extending Thread class  Implementing the Runnable interface n Java threads are managed by the JVM.

53 Java Thread States


ดาวน์โหลด ppt โครงสร้างของ กระบวนการ โครงสร้างระบบและสถาปัตยกรรม คอมพิวเตอร์ วิเชษฐ์ พลายมาศ นงลักษณ์ พรมทอง Process Structure.

งานนำเสนอที่คล้ายกัน


Ads by Google