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

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

โครงสร้างของกระบวนการ

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


งานนำเสนอเรื่อง: "โครงสร้างของกระบวนการ"— ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

7 Diagram of Process State

8 บล็อกควบคุมกระบวนการ (Process Control Block-PCB)
บล็อกควบคุมกระบวนการ จะประกอบด้วยข้อมูลที่เกี่ยวกับ สถานะกระบวนการ (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)
คิวงาน (Job queue) กลุ่มของทุกกระบวนการในระบบ คิวพร้อม (Ready queue) กลุ่มของทุกกระบวนการที่ฝังอยู่ในหน่วยความจำหลักที่รอ execute คิวอุปกรณ์ (Device queues) กลุ่มของกระบวนการทั้งหมดที่กำลังรออุปกรณ์ i/o มีการย้ายกระบวนการไปมาระหว่างคิวต่างๆข้างต้น

12 Ready Queue And Various I/O Device Queues

13 Representation of Process Scheduling

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

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

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

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

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

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

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

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

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

23 Processes Tree on a UNIX System

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41 Many-to-One Model

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

43 One-to-one Model

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

45 Many-to-Many Model

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

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

48 Solaris 2 Threads

49 Solaris Process

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

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

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

53 Java Thread States


ดาวน์โหลด ppt โครงสร้างของกระบวนการ

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


Ads by Google