Bài giảng Lập trình hệ nhúng: Chương 4 - Phạm Văn Thuận

19 9 0
Bài giảng Lập trình hệ nhúng: Chương 4 - Phạm Văn Thuận

Đ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

Chương 4 - Các kỹ thuật lập trình nâng cao. Những nội dung chính trong chương này gồm có: Tiến trình (process) và cơ chế sử dụng signal, lập trình xử lý đa tiến trình, giới thiệu về luồng, lập trình đa luồng. Mời các bạn cùng tham khảo.

Chương Các kỹ thuật lập trình nâng cao 4.1 Tiến trình (process) chế sử dụng signal 4.2 Lập trình xử lý đa tiến trình 4.3 Giới thiệu luồng 4.4 Lập trình đa luồng Lập trình hệ nhúng 70 4.1 Tiến trình chế sử dụng signal § Khái niệm tiến trình § Cơ chế sử dụng signal Lập trình hệ nhúng 71 Khái niệm tiến trình § Tiến trình tạo ta thực thi chương trình § Đa tiến trình cho phép nhiều chương trình thực thi chia sẻ liệu với § Các tham số tiến trình • PID (Process ID): số hiệu tiến trình • PPID (Parent Process ID): số hiệu tiến trình cha • Command: câu lệnh gọi để thực thi tiến trình ls –e –o pid,ppid,command Lập trình hệ nhúng 72 PID, PPID §Lấy PID: sử dụng hàm getpid() §Lấy PPID: sử dụng hàm getppid() §Hàm getpid() getppid() trả giá trị kiểu pid_t (bản chất kiểu int) Lập trình hệ nhúng 73 Dừng tiến trình § Cách 1: Sử dụng tổ hợp phím Ctrl + C § Cách 2: Sử dụng shell command kill PID Lập trình hệ nhúng 74 Tạo tiến trình § Cách 1: sử dụng hàm system Lập trình hệ nhúng 75 Tạo tiến trình § Cách 2: sử dụng hàm fork exec Lập trình hệ nhúng 76 Cơ chế sử dụng signal § Signal chế cho phép giao tiếp tiến trình § Signal chế khơng đồng § Khi tiến trình nhận signal, tiến trình phải xử lý signal § Linux hỗ trợ 32 SIGNAL Lập trình hệ nhúng 77 Danh sách signal thường dùng Kiểu SIGNAL Lý gửi SIGNAL SIGHUP Báo cho chương trình khỏi terminal SIGINT Khi người dùng nhấn Ctrl + C để tắt chương trình SIGILL Khi chương trình chạy lệnh khơng hợp lệ SIGABRT Khi chương trình nhận lệnh abort SIGKILL Khi chương trình nhận lệnh kill (đóng chương trình) SIGUSR1 Tùy biến theo ứng dụng SIGUSR2 Tùy biến theo chương trình Lập trình hệ nhúng 78 Gửi SIGNAL tới process § Cách 1: sử dụng shell command kill [-SIGNAL_TYPE] PID § Cách 2: sử dụng hàm kill chương trình, cho phép process gửi signal tới process khác kill(PID, SIGNAL_TYPE) Lập trình hệ nhúng 79 4.2 Lập trình giao tip a tin trỡnh Đ C ch: ã Tin trỡnh tạo tiến trình sử dụng lệnh fork exec • Sử dụng chế signal để trao đổi tín hiệu tiến trình Lập trình hệ nhúng 80 4.3 Giới thiệu luồng (thread) § Một chương trình mặc định chạy luồng -> luồng § Luồng tạo luồng khác, luồng chạy đồng thời -> tăng tốc chương trình § Các luồng chia sẻ khơng gian nhớ, truy xuất file tài nguyên khác § Tham số luồng: • thread ID: số hiệu luồng (kiểu liệu pthread_t) Lập trình hệ nhúng 81 4.4 Lập trình xử lý đa luồng § § § § Tạo luồng Truyền tham số cho luồng Nhận giá trị trả từ luồng Tắt luồng Lập trình hệ nhúng 82 Tạo luồng § Khai báo thư viện: pthread.h § Hàm tạo luồng: pthread_create v thread: thread id v attr: thuộc tính luồng, mặc định để NULL v start_routine: hàm thực thi luồng v arg: tham số truyền cho luồng § Biên dịch chương trình: gcc –o multithread multithread.c -pthread Lập trình hệ nhúng 83 Mã nguồn tạo luồng Lập trình hệ nhúng 84 Truyền tham số cho luồng § Khai báo cấu trúc liệu chứa liệu cần truyền cho luồng Ví dụ: struct arg { //Ky tu can in char character; //So lan can in int count; }; § Truyền liệu cho luồng tạo luồng qua tham số arg § Chương trình thực thi luồng nhận tham số xử lý Lập trình hệ nhúng 85 Mã nguồn truyền tham số cho luồng Lập trình hệ nhúng 86 Tắt luồng § Sử dụng hàm pthread_cancel: § thread: nhận tham số thread id luồng muốn tắt Lập trình hệ nhúng 87 Mã nguồn tắt luồng Lập trình hệ nhúng 88 .. .4. 1 Tiến trình chế sử dụng signal § Khái niệm tiến trình § Cơ chế sử dụng signal Lập trình hệ nhúng 71 Khái niệm tiến trình § Tiến trình tạo ta thực thi chương trình § Đa tiến trình cho... int) Lập trình hệ nhúng 73 Dừng tiến trình § Cách 1: Sử dụng tổ hợp phím Ctrl + C § Cách 2: Sử dụng shell command kill PID Lập trình hệ nhúng 74 Tạo tiến trình § Cách 1: sử dụng hàm system Lập trình. .. SIGNAL_TYPE) Lập trình hệ nhúng 79 4. 2 Lập trình giao tiếp đa tin trỡnh Đ C ch: ã Tin trỡnh chớnh to tiến trình sử dụng lệnh fork exec • Sử dụng chế signal để trao đổi tín hiệu tiến trình Lập trình hệ

Ngày đăng: 08/05/2021, 19:17

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

Tài liệu liên quan