linux-chuong 23

49
Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh Chương 2 KHÁI NiỆM QUÁ TRÌNH

Upload: vantinhkhuc

Post on 05-Jul-2015

268 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Chương 2

KHÁI NiỆM QUÁ TRÌNH

Page 2: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Mục đích và yêu cầu

Mục đích:• Hiểu được sự hình thành nên quá trình trong hệ

thống như thế nào.

• Hiều được qui luật chuyển đổi các trạng thái của quá trình

Yêu cầu:• Viết ra được các sơ đồ trạng thái của quá trình.

Page 3: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Nội dung

I. Quá trình (Process)

II. Định thời process(CPU scheduling)

III. Các tác vụ trên process(tạo và kết thúc process)

IV. Process hợp tác

(Cooperating Process)

I. Giao tiếp liên process

Interprocess Communication (IPC)

Page 4: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

I. Khái niệm quá trình(process)

Os thực thi nhiều loại chương trinh khác nhau• Batch system : thực hiện các job• Time-sharing systems :thực hiện user programs or tasks

Các thuật ngữ Job và process là tương tự hau Process

• một chương trình đang thực thi(executing proram), sự phát triền của process phải theo kiểu tuần tự.

Một process bao gồm các phần• Program counter (PC):– bộ đếm chương trình• Stack : -ngăn xếp• Data section:- đọan dữ liệu

– So sánh process và programProcess ≈ active <> Passive ≈ Program

Page 5: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Yêu cầu đối với Os

Page 6: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

I.2 Process Control Block (PCB)

Mỗi process trong hệ thống được diễn tả bởi một PCB:

Page 7: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

PCB

• Mỗi PCB

Page 8: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

CÁC BƯỚC NẠP PROCESS VÀO BỘ NHỚ

Page 9: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Loader

Page 10: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

I.3 Các trạng thái của process

Mô hình hai trạng thái

– running

– not running, có thể được giữ trong hàng

Page 11: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Mô hình 5 trạng thái (t.t)

Khi process thực thi nó có thể thay đổi trạng thái (state)

• New: process được khởi tạo• Running: process ở trong CPU

các lệnh đang được thực hiện• Ready: process đang chờ đến

lượt để được thực thi.• Blocked: process đang chờ

một sự khiện nào đó xuất hiện • Exit: completed/error exitChỉ có 1 process ở running trên

mỗi procesor tại một thời điểmCó nhiều process ờ ready và

blocked tại một thời điểm

Page 12: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Ví dụ về trạng thái của process

Page 13: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các trạng thái của process(t.t)

Page 14: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các trạng thái của process(t.t)

Page 15: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các trạng thái của process(t.t)

Page 16: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Lưu đồ 7-trạng thái của process

Page 17: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

II. Định thời Process(process scheduling)

• Là cơ sở cho các hệ thống multiprogramming và Time Sharing– Multiprogramming:

• Có nhiều process phải thực thi luân phiên nhau• Cưc đại hiệu suất của CPU

– Time Sharing :• Cho phép users tương tác khi program đang chạy• Tối thiểu thời gian đáp ứng

Page 18: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các hàng đợi định thời

Page 19: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Hàng đợi Ready & I/O Device

Page 20: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Định thời Process

Page 21: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các bộ định thời(schedulers)

Page 22: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các bộ định thời(t.t)

Page 23: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Chuyển ngữ cảnh (context switch)(CPU chuyển giữa các process)

Page 24: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Chuyển ngữ cảnh (t.t)

Page 25: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các bước chuyển ngữ cảnh

Page 26: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Chuyển ngữ cảnh xẩy ra khi nào

Page 27: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các ví dụ về Interrupt

Page 28: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Medium Term Scheduling

Page 29: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

III. Các tác vụ lên process

Các process trong hệ thống có thể được thực thi đồng thời và chúng phải được tạo và xóa một cách năng động.

vì vậy Os phải cung cấp cơ cấu để tạo (process creation) và kết thúc (process Termination)

Page 30: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

III.1 Tạo process (process creation)

Page 31: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Mối quan hệ cha/con

Page 32: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Cây process trong UNIX

Page 33: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Mối quan hệ cha/con(t.t)

Page 34: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

III.2 Kết thúc thực thi process (process Termination)

Page 35: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Kết thúc thực thi process(t.t)

Page 36: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

IV. Các Process hợp tác

Process độc lập (Independent process):• không thể tác động hay chịu tác động bởi sự

thực hiện của process khác.

Process hợp tác (cooperating process):• Có thể tác động hoặc chịu sự tác động bởi sự

thực hiện của process khác.• Vd: process này chia sẻ data với process kia

Page 37: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Các process hợp tác (tiếp)

Ưu điểm:• Chia sẻ thông tin -information sharing• Tăng tốc độ tính toán- computation speed-up

• Mô-dun hóa -Modularity

• Sự tiện lợi – converience (vd user cùng thực hiệ soạn thảo, in ấn, biên dịch song song).

Page 38: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Bài tóan Producer-Consumer

• Mô hình cho các process hợp tác, quá trình sản xuất (producer process) tạo ra các thông tin để các quá trình tiêu thụ (consumer producer) sử dụng. Sự trao đổi thông tin thực hiện qua buffer– Unbounded-buffer: giả thiết kích thước buffer vô hạn– Bounded-buffer: thừa nhận có một kích thước buferr cố định– Producer và consumer phải được đồng bộ họat động

• Consumer không thể sử dụng một data mà producer chưa kịp tạo ra– Producer không được tạo thêm sản phẩm khi buffer đã đầy (bounded

buffer)

Hiện thực buffer– Shared memory– Interprocess communcation facility(IPC)

Page 39: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Ví dụ Shared Bounded-Buffer

Page 40: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Shared Bounded-Buffer(t.t)

Page 41: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

V.Giao tiếp liên quá trình Interprocess Communication (IPC)

Lả cơ chế để các process giao tiếp và đồng bộ các hành động của chúng mà không phải dùng chung resourcese

Khả năng IPC cung cấp 2 họat động:• send(message):- kích thước của message cố định hoặc biến đổi• receive(massage)

Nếu các quá trình P và Q muốn giao tiếp chúng cần phải:• thiết lập một liên kết giao tiếp (communication link) giữa chúng• trao đổi các message qua các họat động send/receive

Sự thực hiện của communication link• physical (vd shared memory, hardware bus)• logical (vd : logical properties)

Page 42: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Hiện thực IPC?

Page 43: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Direct Communication

Các quá trình phải xác định rõ tên của nhau:• Send(P,message):- gửi 1 message tới quá trình P.• Receiver(Q,message):- nhận 1 message từ quá trình Q

Các đặc tính của communication link:• Các liên kết được thiết lập tự động• Mối liên kết được gắn với duy nhất một cặp process giao tiếp

với nhau.• Giữa mỗi cặp process tồn tại duy nhất 1 liên kết• Liên kết thường là 2 chiều (bi-directional) hoặc có thể có 2 liên

kết một chiều (undirectional) P to Q, Q to P.

Page 44: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Indirect Communication

Các message được gửi và nhận từ các mailbox (còn được gọi là port)

• Mỗi mailbox có duy nhất một id

• Các process chỉ có thể giao tiếp nếu chúng chia sẻ một mailbox

Các đặc tính của communication link:

• Các liên kết được thiết lập chỉ khi nào process chia sẻ một mailbox chung.

• Một liên kết có thể được gắn với nhiều process

• Mỗi cặp process có thể chia sẻ một số communication link.

• Liên kết có thể là 2 chiều hoặc 1 chiều.

Page 45: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Indirect Communication (tiếp)

Các họat động• Tạo/xóa một mailbox• Send(A,message)- gửi 1 message tới mailbox A

• Receiver(A,message)- nhận 1 message từ mailbox A

Vấn đề Mailbox sharing:• P1,P2 và P3 chia sẻ mailbox A.• P1 gửi P2 và P3 nhận• Process nào nhận đượ message?

Page 46: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Indirect Communication (tiếp)

Giải pháp:• 1 liên kết được gắn tối đa 2 process• Cho phép tại 1 thời điểm chỉ 1 process thực hiện

nhận message.

• Cho phép hệ thống tùy chọn process nhận. Process gửi được thông báo process nào nhận message.

• Các process khác nhận được 1 bản copy

Page 47: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Sự đồng bộ hóa(Synchronization)

Message passing có thể là khóa (blocking) hoặc không khóa (non-blocking).

Blocking được coi là đồng bộ (synchronous)• Blocking send: process gởi bị khóa đến khi message được nhận bởi

process nhận hoặc bởi mailbox• Blocking receive: process nhận/mailbox khóa đến khi nhận xong

message

Non-blocking: được coi là không đồng bộ (asynchronous)• Non-blocking send: process-gửi gửi message rồi lại tiếp tục không quan

tâm tới message có được nhận hay không

• Non-blocking receive: process-nhận /mailbox nhận message đúng hoặc vô dụng.

Page 48: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Bộ đệm(buffering)

Page 49: Linux-Chuong 23

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh

Câu hỏi và bài tập

• Miêu tả sư khác nhau giữa các bộ định thời ngắn, trung gian và dài.

• Miêu tả các hành động diễn ra chuyển ngữ cảnh giữa các quá trình bởi “Kernel”