BÁO CÁO BÀI TẬP LỚN MÔN HỆ ĐIỀU HÀNH : Hiển thị và hủy các tiến trình truyền thông IPC trên Linux

30 2.7K 11
BÁO CÁO BÀI TẬP LỚN MÔN HỆ ĐIỀU HÀNH : Hiển thị và hủy các tiến trình truyền thông IPC trên Linux

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giới thiệu 3 I. Signals 4 II. Shared Memory Segments 6 III. Message Queues 7 IV. Semaphores 8 V. Pipelines 10 VI. Thiết kế chương trình 12 1. Chương trình khởi tạo IPC 12 1.1. Shared Memory 13 1.2. Message Queue 14 1.3. Semaphores 15 2. Chương trình hiển thị thông số IPC và hủy tiến trình 16 2.1. Chương trình ipc 16 2.2. Kết quả hiển thị thông số IPC 17 VII. Thí nghiệm và kết quả 21 1. Thí nghiệm 1 21 2. Thí nghiệm 2 25 3. Thí nghiệm 3 27 VIII. Kết luận 30 IX. Tài liệu tham khảo 30 Giới thiệu Các tiến trình trong Linux không chỉ làm việc một mình mà nó còn cần phải truyền thông với nhau, do đó trong Linux cung cấp một số phương thức cho truyền thông liên tiến trình, các phương pháp đó là: • Phương pháp đường ống đơn công trong UNIX • FIFOs • Hàng đợi bản tin trong SYSV • Tập hợp semaphore trong SYSV • Chia sẻ bộ nhớ trong SYSV • Socket mạng (theo Berkeley) • Đường ống song công ( đường ống kiểu luồng STREAM pipes) Linux hỗ trợ 2 loại kí thuật IPC, xuất hiện lần đầu trong hệ thống UNIX System V (1983). Đó là: message queue – hàng đợi bản tin, semaphore – truyền tín hiệu, shared memory – bộ nhớ chia sẻ. Các kĩ thuật System V này đều chia sẻ các phương thức xác thực thông thường. Các tiến trình có thể truy nhập tài nguyên của chúng chỉ bằng cách chuyển 1 nhận dạng tham chiếu duy nhất tới kernel qua các system call. Truy nhập các đối tượng System V IPC này được kiểm tra bằng cách sử dụng các quyền truy nhập, giống như là truy nhập tới các file đã được kiểm tra. Quyền truy nhập tới các đối tượng System file IPC được thiết lập bởi các bộ tạo của đối tượng thông qua các system call. Nhận dạng tham chiếu của đối tượng được sử dụng bởi mỗi kĩ thuật như 1 danh mục vào trong 1 bảng của các tài nguyên. Tất cả các cấu trúc dữ liệu file Linux giới thiệu các đối tượng System V IPC trong hệ thống sẽ bao gồm cấu trúc ipc_perm mà chứa người sở hữu (owner) và bộ tạo (creator) người dùng và nhận dạng nhóm của tiến trình. Chế độ truy nhập cho đối tượng này (người dùng, nhóm,…) và key của đối tượng IPC. Key này được sử dụng như 1 cách xác định nhận dạng tham chiếu của đối tượng System V IPC. 2 tập hợp của các key dược hỗ trợ: public và private. Nếu key được public thì bất kì tiến trình nào trong hệ thống có thể tìm thấy nhận dạng tham chiếu cho đối tượng System V IPC. Các đối tượng System V IPC có thể không bao giờ được tham chiếu với 1 key, chỉ bởi nhận dạng tham chiếu của chúng. Mỗi IPC có một số hiệu được sử dụng trong lõi (kernel) để xác định duy nhất một đối tượng IPC.. Để nhận một số hiệu duy nhất, một khóa (key) được sử dụng. Khóa này phải có sự đồng ý giữa bên tiến trình Client và tiến trình Server. Đây chính là bước đầu tiên để xây dựng một framework cho một ứng dụng kiểu clientserver.. I. Signals Signals là một trong những phương thức giao tiếp IPC ra đời sớm nhất được sử dụng bởi các hệ thống UNIX. Chúng được sử dụng để báo hiệu những sự kiện bất đồng bộ tới 1 hoặc nhiều tiến trình. 1 tín hiệu được tạo ra bởi ngắt từ bàn phím hoặc điều kiện lỗi như là yêu cầu đến 1 vị trí không tồn tại trong bộ nhớ ảo. Các tín hiệu cũng được sử dụng bởi các shell để báo hiệu điều khiển công việc tới các tiến trình con của chúng. Có 1 tập các tín hiệu đã được xác định mà kernel có thể tạo ra hoặc có thể được tạo ra bởi các tiến trình khác trong hệ thống, cung cấp các quyền tương ứng. Có thể liệt kê 1 tập các tín hiệu bằng các sử dụng lệnh kill (kill –l): 1) SIGHUP, 2) SIGINT, 3) SIGQUIT, 4) SIGILL, 5) SIGTRAP, 6) SIGIOT, 7) SIGBUS, 8) SIGFPE, 9) SIGKILL, 10)SIGUSR1, 11)SIGSEGV, 12)SIGUSR2, 13)SIGPIPE, 14)SIGALRM, 15)SIGTERM, 17) SIGCHLD, 18) SIGCONT, 19) SIGSTOP, 20) SIGTSTP, 21) SIGTTIN, 22) SIGTTOU, 23) SIGURG, 24) SIGXCPU, 25) SIGXFSZ, 26) SIGVTALRM, 27)SIGPROF, 28) SIGWINCH, 29) SIGIO, 30) SIGPWR. Các tiến trình có thể chọn bỏ qua hầu hết các tín hiệu được tạo ra, trừ 2 trường hợp: tín hiệu SIGNTOP khiến tiến trình tạm dừng hoạt động của nó hoặc tín hiệu SIGKILL khiến tiến trình thực hiện thoát. Nói các khác, 1 tiến trình có thể lựa chọn các ứng phó với các tín hiệu khác nhau. Các tiến trình có thể chặn các tín hiệu và nếu không

[...]... KSTN-DTVT-K52 Page 18 Hiển thị hủy các tiến trình IPC trên Linuxipc q Hình 6. 6: Kết quả thực hiện lệnh ipc q” Nhóm 02 KSTN-DTVT-K52 Page 19 Hiển thị hủy các tiến trình IPC trên Linuxipc a: Hình 6. 7: Kết quả thực hiện lệnh ipc a” Nhóm 02 KSTN-DTVT-K52 Page 20 Hiển thị hủy các tiến trình IPC trên Linux VII Thí nghiệm kết quả Thí nghiệm hiển thị các tiến trình đang truyền thông IPC theo cơ chế... Hiển thị hủy các tiến trình IPC trên Linux 1.3 Semaphores Hình 6. 3: Kết quả chương trình tạo Semaphore Nhóm 02 KSTN-DTVT-K52 Page 15 Hiển thị hủy các tiến trình IPC trên Linux 2 Chương trình hiển thị thông số IPC hủy tiến trình Chương trình được thiết kế dạng một lệnh Shell trong Linux/ Unix, ngoài yêu cầu của đề bàihiển thị các tiến trình đang truyền thông IPC với nhau khi hủy một tiến. .. tiến trình trong phiên IPC đó thì các tiến trình khác sẽ tự hủy; chương trình còn có các tùy chọn để hiển thị các thông số về IPC SYSTEM V trên hệ điều hành 2.1 Chương trình ipc Chương trình ipccác lựa chọn sau:  ipc a: hiển thị tất cả các thông tin IPC Message Queue, Semaphore, Shared Memory Là kết hợp đầu ra của ipc s, ipc m, ipc q  ipc s: hiển thị thông tin IPC Semaphore Các thông số hiển th :. .. chọn tiến trình có PID là 2190 Chạy chương trình ipc k PID để hủy toàn bộ các tiến trình đang truyền thông với nhau thông qua cơ chế Message Queue Kết qu : hủy các tiến trình đang truyền thông qua cơ chế hàng đợi bản tin Hình 7. 7: Chương trình thông báo đã hủy bốn tiến trình truyền thông IPC với nhau Nhóm 02 KSTN-DTVT-K52 Page 26 Hiển thị hủy các tiến trình IPC trên Linux 3 Thí nghiệm 3 Hiển thị các. .. ví dụ chọn tiến trình có PID là 2975 Chạy chương trình ipc x PID để hủy toàn bộ các tiến trình đang cùng chia sẻ bộ nhớ với tiến trình có PID Nhóm 02 KSTN-DTVT-K52 Page 24 Hiển thị hủy các tiến trình IPC trên Linux 2 Thí nghiệm 2 Hiển thị các tiến trình đang truyền thông theo cơ chế Message Queue tiến hành hủy tiến trìnhCác bước tiến hành: o Chạy chương trình mq tạo ra ba Client một Server,... với PID hiển thị từ chương trình shm Hình 7. 3: Chương trình hiển thị các tiến trình có PID là 2975,2976,2977 2978 dang truyền thông IPC với nhau thông qua cơ chế Shared Memory Nhờ cột hiển thị Command Line mà ta có thể thấy được các tiến trình trên đã được hiển thị đúng Nhóm 02 KSTN-DTVT-K52 Page 23 Hiển thị hủy các tiến trình IPC trên Linux o Chọn một tiến trình bất kì trong các tiến trình vừa... 25 Hiển thị hủy các tiến trình IPC trên Linux Chạy chương trình ipc q để hiển thị các tiến trình đang truyền thông với nhau, ta thu được các tiến trình đang truyền thông với nhau theo từng cặp ghi/đọc dùng chung một hàng đợi Kết quả o Hình 7.6:Bốn tiến trình có PID là 2190,2191,2192 2193 đang truyền thông IPC qua Message Queue có số hiệu msqid=0 o Chọn một tiến trình bất kỳ trong các tiến trình. .. đó tiến trình Client cũng sẽ kết thúc ngay sau khi tiến trình Server bị kill Trên Server Nhóm 02 KSTN-DTVT-K52 Page 28 Hiển thị hủy các tiến trình IPC trên Linux Trên Client Nhóm 02 KSTN-DTVT-K52 Page 29 Hiển thị hủy các tiến trình IPC trên Linux VIII Kết luận Với mục đích thiết kế một chương trình hiển thị các thông số của sự truyền thông liên tiến trình trong Linux theo SYSTEM V, chương trình. .. này có thể lấy được từ ipc m Các thông số được hiển th : o PID: PID của tiến trình đang thực hiện truyền thông IPC qua cơ chế Shared Memory o CMDLINE: tên của tiến trình hay command line để chạy tiến trìnhipc q: hiển thị thông tin IPC Message Queue các tiến trình đang truyền thông theo cơ chế hàng đợi bản tin – Message Queue với nhau Các thông số được hiển th : o msqid: số hiệu của hàng đợi bản... hiện ipc theo cơ chế hàng đợi bản tin – Message Queue với nó với nó  ipc x : hủy các tiến trình có pid xác định các tiến trình thực hiện ipc theo cơ chế chia sẻ bộ nhớ - Shared Memory với nó 2.2 Kết quả hiển thị thông số IPCipc s: Hình 6. 4: Kết quả thực hiện lệnh ipc s”  ipc m: Nhóm 02 KSTN-DTVT-K52 Page 17 Hiển thị hủy các tiến trình IPC trên Linux Hình 6. 5: Kết quả thực hiện lệnh “ipc . Hiển thị và hủy các tiến trình IPC trên Linux Trường Đại Học Bách Khoa Hà Nội Viện Điện Tử Viễn Thông BÁO CÁO BÀI TẬP LỚN MÔN: HỆ ĐIỀU HÀNH Đề tài: Hiển thị và hủy các tiến trình truyền thông. 18 Hiển thị và hủy các tiến trình IPC trên Linux  ipc q Hình 6. 6: Kết quả thực hiện lệnh ipc q” Nhóm 02 KSTN-DTVT-K52 Page 19 Hiển thị và hủy các tiến trình IPC trên Linux  ipc a: Hình 6. 7: Kết. KSTN-DTVT-K52 Page 1 Hiển thị và hủy các tiến trình IPC trên Linux Giới thiệu 3 Nhóm 02 KSTN-DTVT-K52 Page 2 Hiển thị và hủy các tiến trình IPC trên Linux Giới thiệu Các tiến trình trong Linux không chỉ

Ngày đăng: 13/06/2014, 13:31

Từ khóa liên quan

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

Tài liệu liên quan