1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ ÁN NGUYÊN LÝ HỆ ĐIỀU HÀNHĐề tài: ỨNG DỤNG MUTILTHREAD ĐỂ NHÂN HAI MA TRẬN

20 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ưu và nhược điểm của multi thread Khái niệm về multi thread Khái niệm về thread... Khái niệm về thread Thread là luồng chạy trong một process..  Nó được sử dụng để thực hiện các công

Trang 1

LOGO

Trang 2

Giáo viên hướng dẫn: Ths Trần Hồ Thủy Tiên Sinh viên thực hiên: Vũ Đức Nội

Trang 3

Kết luận

Thiết kế và xây dựng chương trình

Cơ sở lý thuyết

Trang 4

Ưu và nhược điểm của multi thread

Khái niệm về multi thread

Khái niệm về thread

Trang 5

Khái niệm về thread

Thread là luồng chạy trong một process.

Nó là dòng các điều khiển trong một process.

Nó được sử dụng để thực hiện các công việc cho process.

Trang 6

Blocked

Ready

Terminated

 Giống như process mỗi thread đều có nhiều trạng thái như:

Trang 7

 Sơ đồ trạng thái của thread

Trang 8

Khái niệm multi-thread

Multi thread là một process tách ra thành một hoặc nhiều luồng khác nhau để cùng thực hiện các nhiệm vụ khác nhau cùng một lúc

VD: Khi ta nghe nhạc trên youtube thì trình ứng dụng sẽ phân ra thành nhiều luồng Một luồng thực thi công việc load nhạc trên

internet, một luồng thực thi công việc phát nhạc

Trang 9

 Các thread trong một process sẽ chia sẻ chung vùng tài nguyên Tuy nhiên mỗi thread đều có một stack của riêng nó dùng để:

  Truyền tham số cho hàm

 Để chứa các biến nội bộ

 Để lưu trữ giá trị trả về của hàm

Trang 11

Ưu điểm

Giúp ct chạy nhanh

Cần thiết trong một số trình ứng dụng

Khuyết điểm

Khó viết

Khó kiểm soát lỗi

Dữ liệu có thể bị xung đột

Multi thread

Ưu và nhược điểm

Trang 12

Tổ chức cơ sở dữ liệu

Phân tích yêu cầu

Môi trường triển khai

Xây dựng các hàm chức năng

Trang 13

 Môi trường triển khai

 Lập trình trên hệ điều hành Ubuntu

 Sử dụng ngôn ngữ lập trình C

 Viết trên QT Creater

Trang 14

 Phân tích yêu cầu

 Thuật toán nhân hai ma trận

• Phép nhân hai ma trận chỉ thực hiện được khi số cột của ma trận bên trái bằng số

dòng của ma trận bên phải

• Nếu ma trân A có kích thước m x n và ma trận B có kích thước n x p, thì ma trận tích

AB có kích thước m x p có phần tử đứng ở hàng i, cột thứ j xác định bởi:

C[i][j] = A[i][1] * B[1][j] + … + A[i][n] * B[n][j]

Trang 15

 Để thực hiện phép nhân hai ma trận bằng multi thread ta tiến hành tạo n thread mỗi thread có nhiệm vụ nhân các giá trị thuộc hàng thứ i đến hàng thứ j của ma trận bên trái

Trang 16

 Ví dụ: Ta muốn nhân 2 ma trận A và B với kích thước mỗi ma trận là 100x100 với 5

thread chạy trong đó thì:

 Thread 1: Nhân hàng 0 đến hàng 20 của mt A cho các cột của mt B

 Thread 2: Nhân hàng 20 đến hàng 40 của mt A cho các cột của mt B

 Thread 3: Nhân hàng 40 đến hàng 60 của mt A cho các cột của mt B

 Thread 4: Nhân hàng 60 đến hàng 80 của mt A cho các cột của mt B

 Thread 5: Nhân hàng 80 đến hàng 100 của mt A cho các cột của mt B

Trang 17

 Tổ chức cơ sở dữ liệu

 Mỗi ma trận đều có dạng:

struct matrix

{

char link[50]; // đường link chứa file

int n; // số hàng

int m; // số cột

int **A;

};

 Ngoài ra còn các biến khác để phục vụ chương trình

Trang 18

 Xây dựng các hàm chức năng

 void *readFile(void *arg)

Dùng để thực hiện việc đọc file ma trận

 void *multi(void *arg)

Dùng để thực hiện phép nhân hai ma trận

Trang 19

 Những kết quả đạt được

 Nắm rõ về thread

 Biết cách tạo và chạy một chương trình về multi thread

 Những thiếu sót

 Chương trình chưa có giao diện

Trang 20

LOGO

Ngày đăng: 25/01/2022, 11:50

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w