Cơ chế thông tin liên lạc

8 360 0
Cơ chế thông tin liên lạc

Đang tải... (xem toàn văn)

Thông tin tài liệu

Cơ chế thông tin liên lạc Cơ chế thông tin liên lạc Bởi: Giảng viên Trần Hạnh Nhi Tín hiệu (Signal) Giới thiệu: Tín hiệu chế phần mềm tương tự ngắt cứng tác động đến tiến trình Một tín hiệu sử dụng để thông báo cho tiến trình kiện xảy Có nhiều tín hiệu định nghĩa, tín hiệu có ý nghĩa tương ứng với kiện đặc trưng Ví dụ : Một số tín hiệu UNIX 1/8 Cơ chế thông tin liên lạc Mỗi tiến trình sỡ hữu bảng biễu diễn tín hiệu khác Với tín hiệu có tương ứng trình xử lý tín hiệu (signal handler) qui định xử lý tiến trình nhận tín hiệu tương ứng Các tín hiệu gởi : Phần cứng (ví dụ lỗi phép tính số học) Hạt nhân hệ điều hành gởi đến tiến trình ( ví dụ lưu ý tiến trình có thiết bị nhập/xuất tự do) Một tiến trình gởi đến tiến trình khác ( ví dụ tiến trình cha yêu cầu tiến trình kết thúc) 2/8 Cơ chế thông tin liên lạc Người dùng ( ví dụ nhấn phím Ctl-C để ngắt xử lý tiến trình) Khi tiến trình nhận tín hiệu, xử theo cách sau : Bỏ qua tín hiệu Xử lý tín hiệu theo kiểu mặc định Tiếp nhận tín hiệu xử lý theo cách đặc biệt tiến trình Hình 3.1 Liên lạc tín hiệu Thảo luận: Liên lạc tín hiệu mang tính chất không đồng bộ, nghĩa tiến trình nhận tín hiệu xác định trước thời điểm nhận tính hiệu Hơn tiến trình kiểm tra kiện tương ứng với tín hiệu có thật xảy ? Cuối cùng, tiến trình thông báo cho biến cố đó, mà không trao đổi liệu theo chế Pipe Giới thiệu: Một pipe kênh liên lạc trực tiếp hai tiến trình : liệu xuất tiến trình chuyển đến làm liệu nhập cho tiến trình dạng dòng byte Khi pipe thiết lập hai tiến trình, chúng ghi liệu vào pipe tiến trình đọc liệu từ pipe Thứ tự liệu truyền qua pipe bảo toàn theo nguyên tắc FIFO Một pipe có kích thước giới hạn (thường 4096 ký tự) 3/8 Cơ chế thông tin liên lạc Hình 3.2 Liên lạc qua pipe Một tiến trình sử dụng pipe tạo hay kế thừa từ tiến trình cha Hệ điều hành cung cấp lời gọi hệ thống read/write cho tiến trình thực thao tác đọc/ghi liệu pipe Hệ điều hành chịu trách nhiệm đồng hóa việc truy xuất pipe tình huống: Tiến trình đọc pipe bị khóa pipe trống, phải đợi đến pipe có liệu để truy xuất Tiến trình ghi pipe bị khóa pipe đầy, phải đợi đến pipe có chỗ trống để chứa liệu Thảo luận: Liên lạc pipe chế liên lạc chiều (unidirectional), nghĩa tiến trình kết nối với pipe thực hai thao tác đọc ghi, thực hai Một số hệ điều hành cho phép thiết lập hai pipe cặp tiến trình để tạo liên lạc hai chiều Trong hệ thống đó, có nguy xảy tình trạng tắc nghẽn (deadlock) : pipe bị giới hạn kích thước, hai pipe nối kết hai tiến trình đầy(hoặc trống) hai tiến trình muốn ghi (hay đọc) liệu vào pipe(mỗi tiến trình ghi liệu vào pipe), chúng bị khóa chờ lẫn mãi ! Cơ chế cho phép truyền liệu với cách thức không cấu trúc Ngoài ra, giới hạn hình thức liên lạc cho phép kết nối hai tiến trình có quan hệ cha-con, máy tính Vùng nhớ chia sẻ Giới thiệu: Cách tiếp cận chế cho nhiều tiến trình truy xuất đến vùng nhớ chung gọi vùng nhớ chia sẻ(shared memory).Không có hành vi truyền liệu cần phải thực đây, liệu đơn giản đặt vào vùng nhớ mà nhiều tiến trình truy cập Với phương thức này, tiến trình chia sẻ vùng nhớ vật lý thông qua trung gian không gian địa chúng Một vùng nhớ chia sẻ tồn độc lập với tiến trình, tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung vào không gian địa riêng tiến trình, thao tác vùng nhớ riêng 4/8 Cơ chế thông tin liên lạc Hình 3.3 Liên lạc qua vùng nhớ chia sẻ Thảo luận: Đây phương pháp nhanh để trao đổi liệu tiến trình Nhưng phương thức làm phát sinh khó khăn việc bảo đảm toàn vẹn liệu (coherence) , ví dụ : biết liệu mà tiến trình truy xuất liệu mà tiến trình khác ghi ? Làm ngăn cản hai tiến trình đồng thờighi liệu vào vùng nhớ chung ?…Rõ ràng vùng nhớ chia sẻ cần bảo vệ chế đồng hóa thích hợp Một khuyết điểm phương pháp liên lạc áp dụng hiệu hệ phân tán , để trao đổi thông tin máy tính khác Trao đổi thông điệp (Message) Giới thiệu: Hệ điều hành cung cấp chế liên lạc tiến trình không thông qua việc chia sẻ tài nguyên chung , mà thông qua việc gởi thông điệp Để hỗ trợ chế liên lạc thông điệp, hệ điều hành cung cấp hàm IPC chuẩn (Interprocess communication), hai hàm: Send(message) : gởi thông điệp Receive(message) : nhận thông điệp Nếu hai tiến trình P Q muốn liên lạc với nhau, cần phải thiết lập mối liên kết hai tiến trình, sau P, Q sử dụng hàm IPC thích hợp để trao đổi thông điệp, cuối liên lạc chấm dứt mối liên kết hai tiến trình bị hủy Có nhiều cách thức để thực liên kết hai tiến trình cài đặt theo tác send /receive tương ứng : liên lạc trực tiếp hay gián tiếp, liên lạc đồng không đồng , kích thước thông điệp cố định hay không … Nếu tiến trình liên lạc theo kiểu liên kết tường minh, hàm Send Receive cài đặt với tham số : Send(destination, message) : gởi thông điệp đến destination Receive(source,message) : nhận thông điệp từ source 5/8 Cơ chế thông tin liên lạc Thảo luận: Đơn vị truyền thông tin chế trao đổi thông điệp thông điệp, tiến trình trao đổi liệu dạng có cấu trúc Sockets Giới thiệu: Một socket thiết bị truyền thông hai chiều tương tự tập tin, đọc hay ghi lên nó, nhiên socket thành phần mối nối máy mạng máy tính thao tác đọc/ghi trao đổi liệu ứng dụng nhiều máy khác Sử dụng socket mô hai phương thức liên lạc thực tế : liên lạc thư tín (socket đóng vai trò bưu cục) liên lạc điện thoại (socket đóng vai trò tổng đài) Các thuộc tính socket: Domaine: định nghĩa dạng thức địa nghi thức sử dụng Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, Type: định nghĩa đặc điểm liên lạc: a) Sự tin cậy b) Sự bảo toàn thứ tự liệu c) Lặp lại liệu d) Chế độ nối kết e) Bảo toàn giới hạn thông điệp f) Khả gởi thông điệp khẩn Để thực liên lạc socket, cần tiến hành thao tác :: *Tạo lập hay mở socket *Gắn kết socket với địa Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết: a) Liên lạc chế độ không liên kết : liên lạc theo hình thức hộp thư: *hai tiến trình liên lạc với không kết nối trực tiếp 6/8 Cơ chế thông tin liên lạc *mỗi thông điệp phải kèm theo địa người nhận Hình thức liên lạc có đặc điểm : *người gởi không chắn thông điệp học gởi đến người nhận, *một thông điệp gởi nhiều lần, *hai thông điệp đượ gởi theo thứ tự đến tay người nhận theo thứ tự khác Một tiến trình sau mở socket sử dụng để liên lạc với nhiều tiến trình khác nhờ sử hai primitive send receive b) Liên lạc chế độ nối kết: Một liên kết thành lập hai tiến trình Trước mối liên kết thiết lập, hai tiến trình phải đợi có tiến trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô hình client-serveur Trong mô hình này, server sử dụng lời gọi hệ thống listen accept để nối kết với client, sau , client server trao đổi thông tin cách sử dụng primitive send receive *Hủy socket Ví dụ : Trong nghi thức truyền thông TCP, mối nối hai máy tính xác định port, khái niệm port cổng giao tiếp thiết bị vật lý mà khái niệm logic cách nhìn người lập trình, port tương ứng với số nguyên dương Hình 3.4 Các socket port mối nối TCP Hình 3.4 minh họa cách giao tiếp hai máy tính nghi thức truyền thông TCP Máy A tạo socket kết buộc (bind) socket nầy với port X (tức số nguyên dương có ý nghĩa cục máy A), máy B tạo socket khác móc vào (connect) port X máy A 7/8 Cơ chế thông tin liên lạc Thảo luận: Cơ chế socket sử dụng để chuẩn hoá mối liên lạc tiến trình vốn không liên hệ với nhau, hoạt động hệ thống khác 8/8 ... địa Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết: a) Liên lạc chế độ không liên kết : liên lạc theo hình thức hộp thư: *hai tiến trình liên lạc với không kết nối trực tiếp 6/8 Cơ. .. destination Receive(source,message) : nhận thông điệp từ source 5/8 Cơ chế thông tin liên lạc Thảo luận: Đơn vị truyền thông tin chế trao đổi thông điệp thông điệp, tiến trình trao đổi liệu dạng... trực tiếp 6/8 Cơ chế thông tin liên lạc *mỗi thông điệp phải kèm theo địa người nhận Hình thức liên lạc có đặc điểm : *người gởi không chắn thông điệp học gởi đến người nhận, *một thông điệp gởi

Ngày đăng: 14/01/2016, 15:10

Mục lục

  • Cơ chế thông tin liên lạc

  • Tín hiệu (Signal)

  • Pipe

  • Vùng nhớ chia sẻ

  • Trao đổi thông điệp (Message)

  • Sockets

Tài liệu cùng người dùng

Tài liệu liên quan