
Giáo trình hệ điều hành - Bài 4
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Giáo trình hệ điều hành - Bài 4 BÀI 4 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH & VẤN ĐỀ ĐỒNG BỘ HOÁCác tiến trình trên nguyên tắc là hoàn toàn độc lập, nhưng thực tế có thể như thếkhông ? Trong bài này chúng ta sẽ tìm hiểu lý do các tiến trình có nhu cầu liênlạc, các cơ chế hỗ trợ việc liên lạc này cũng như những vấn đề đặt ra khi các tiếntrình trao đổi thông tin với nhau.I. LIÊN LẠC GIỮA CÁC TIẾN TRÌNH I.1. Nhu cầu liên lạc giữa các tiến trìnhTrong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà cóthể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nóicách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầuliên lạc với nhau để : Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nàođó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồngthời đến các dữ liệu chung. Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng,người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song.Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trìnhkhác …Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiếntrình có thể trao đổi thông tin với nhau. I.2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trìnhkhông thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hànhcung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thườngphải tìm giải pháp cho các vấn đề chính yếu sau : Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình cócần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liênkết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình,và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nàođó. Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non -blocking): khimột tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phảiđợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trìnhliên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trìnhliên lạc theo cơ chế nonblocking thì không. Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chếliên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liênlạc giữa các tiến trình giữa những máy tính khác nhau? Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế cónhững đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.II. Các Cơ Chế Thông Tin Liên lạc II.1. Tín hiệu (Signal) Giới thiệu: Tín hiệu là một cơ chế phần mềm tương tự như các ngắt cứng tácđộng đến các tiến trình. Một tín hiệu được sử dụng để thông báo cho tiến trình vềmột sự kiện nào đó xảy ra. Có nhiều tín hiệu được định nghĩa, mỗi một tín hiệu cómột ý nghĩa tương ứng với một sự kiện đặc trưng.Ví dụ : Một số tín hiệu của UNIX Tín hiệu Mô t ả Người dùng nhấn phím DEL để ngắt xử lý SIGINT tiến trình Yêu cầu thoát xử lý SIGQUIT Tiến trình xử lý một chỉ thị bất hợp lệ SIGILL Yêu cầu kết thúc một tiến trình SIGKILL Lỗi floating – point xảy ra ( chia cho 0) SIGFPT Tiến trình ghi dữ liệu vào pipe mà không có SIGPIPE reader Tiến trình truy xuất đến một địa chỉ bất hợp SIGSEGV lệ Tiến trình con kết thúc SIGCLD Tín hiệu 1 do người dùng định nghĩa SIGUSR1 Tín hiệu 2 do người dùng định nghĩa SIGUSR2Mỗi tiến trình sỡ hữu một bảng biễu diễn các tín hiệu khác nhau. Với mỗi tín hiệusẽ có tương ứng một trình xử lý tín hiệu (signal handler) qui định các xử lý củatiến trình khi nhận được tín hiệu tương ứng.Các tín hiệu được gởi đi bởi : Phần cứng (ví dụ lỗi do các phép tính số học) Hạt nhân hệ điều hành gởi đến một tiến trình ( ví dụ lưu ý tiến trình khi có mộtthiết bị nhập/xuất tự do). Một tiến trình gởi đến một tiến trình khác ( ví dụ tiến trình cha yêu cầu một tiếntrình con kết thúc) Người dùng ( ví dụ nhấn phím Ctl-C để ngắt xử lý của tiến trình)Khi một tiến trình nhận một tín hiệu, nó có thể xử sự theo một tron g các 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 và xử lý theo cách đặc biệt của tiến trình. ...
Tìm kiếm theo từ khóa liên quan:
quản lý nhập xuất tập tin bảo mật hệ thống hệ điều hành linux windownsTài liệu có liên quan:
-
183 trang 324 0 0
-
80 trang 270 0 0
-
Giáo trình Hệ điều hành: Phần 2
53 trang 254 0 0 -
117 trang 249 1 0
-
Giáo trình Hệ điều hành Linux (Ngành: Công nghệ thông tin) - CĐ Công nghiệp Hải Phòng
103 trang 224 0 0 -
271 trang 169 0 0
-
Hướng dẫn sử dụng Windows 7 với Boot Camp
8 trang 159 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 143 0 0 -
Nghiên cứu xây dựng bộ sinh số ngẫu nhiên tích hợp với nhiều hệ điều hành
5 trang 136 0 0 -
Giáo trình Hệ điều hành Linux và Unix
214 trang 131 0 0 -
212 trang 122 0 0
-
Ôn tập Hệ thống thông tin quản lý
22 trang 117 0 0 -
Bài giảng Mã nguồn mở: Bài 3 - ThS. Phan Thanh Toàn
29 trang 100 0 0 -
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu về phần mềm mã nguồn mở - Bùi Minh Quân
39 trang 98 0 0 -
Giáo trình Quản trị hệ thống Linux: Phần I
135 trang 82 0 0 -
Câu hỏi ôn tập trắc nghiệm Hệ điều hành Linux
15 trang 78 0 0 -
Hướng dẫn xây dựng các server trên red hat Linux 9
71 trang 77 0 0 -
Giáo trình Hệ điều hành Linux - CĐ Nghề Đắk Lắk
88 trang 75 0 0 -
Tài liệu hướng dẫn sử dụng CSMBoot
58 trang 69 0 0 -
Bài giảng Hệ điều hành Linux - Chương 2: Các lệnh cơ bản trên Linux
76 trang 67 0 0