1. Trang chủ
  2. » Tất cả

Uit ce lab hdh lab5

15 7 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

Verilog Hardware Description Language TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH TÀI LIỆU HƯỚNG DẪN THỰC HÀNH HỆ ĐIỀU HÀNH Nhóm biên soạn ThS Phan Đình Duy ThS Phạm Văn Phước ThS Nguyễn[.]

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH TÀI LIỆU: HƯỚNG DẪN THỰC HÀNH HỆ ĐIỀU HÀNH Nhóm biên soạn: - ThS Phan Đình Duy - ThS Phạm Văn Phước - ThS Nguyễn Việt Quốc - KS Nguyễn Hữu Nhân - KS Lê Văn La - KS Trần Văn Quang Tháng năm 2011 NỘI DUNG CÁC BÀI THỰC HÀNH Phần 1: Lập trình Linux Bài 1: Hướng dẫn cài đặt Ubuntu lệnh shell Bài 2: Cơ lập trình shell Phần 2: Thực hành hệ điều hành Bài 3: Quản lý tiến trình Bài 4: Định thời CPU Bài 5: Đồng hóa tiến trình, tiểu trình Bài 6: Quản lý nhớ Phần 3: Bài tập lớn CÁC PHẦN MỀM THIẾT BỊ SỬ DỤNG TRONG MÔN THỰC HÀNH - Phần mềm VMware - Hệ điều hành Ubuntu Chương Đồng hóa tiến trình tiểu trình 1.1 Mục Đích Chương Mục đích thực hành nhằm giới thiệu đến sinh viên thư viện Semaphore Mutex, thư viên để đồng hóa tiến trình tiểu trình chạy song song với Chương Những công cụ cần chuẩn bị cho lập trình: - Hệ điều hành linux cài đặt GCC G++ compilers (Gói buildessential package linux) - Cài đặt eclipse C/C++ Integrate Development Environment 3.1 Semaphore Chương Trong khoa học máy tính, Đặc biệt hệ điều hành, semaphore biết đến biến sử dụng để điều khiển truy xuất vào tài nguyên chung tiểu trình xử lý song song môi trường đa người dùng Chương Semaphore xem danh sách đơn vị trống tài nguyên cụ thể máy tinh Có thao tác biến semaphore yêu cầu tài nguyên giải phóng tài nguyên,và cần thiết cịn làm cờ để đợi tài ngun tiểu trình khác giải phóng 5.1.1 Các function cho Semaphore C Để include thư viên semaphore vào chương trình C ta sử dụng #include Chương Và khai báo thư viện pthread rt biên dịch Ví dụ gcc -o filename filename.c -lpthread -lrt Để định nghĩa semaphore ta dùng: sem_t sem_name; Để khởi tạo biến semaphore ta sử dụng hàm:  int sem_init(sem_t *sem, int pshared, unsigned int value);  sem : trỏ đến địa biến semaphore  Pshared cờ cài đặt cho việc chia sẻ biến semaphore với fork()ed processes, nhiên LinuxThread không hỗ trợ Shared semaphores  Value giá trị khởi tạo để gán cho semaphore  Ví dụ: Sem_t sam; Sem_init(&sam,0,10); Đợi semaphore: Chương Sem_wait(&sem_name);  Nếu giá tri semaphore khơng dương, tiến trình bị block, tiến trình bị block mở có process gọi sem_post  Nếu giá trị semaphore dương, giá trị semaphore giảm Tiến trình tiếp tục chạy Tìm giá trị semaphore: int sem_getvalue(sem_t *sem, int *valp);  Lấy giá trị semaphore vào biến int có địa valp  Ví dụ: int value; sem_getvalue(&sem_name, &value); printf("The value of the semaphors is %d\n", value); Hủy biến semaphore: Chương sem_destroy(sem_t *sem);  Hủy semaphore, không nên có tiểu trình sem_wait 8.1.1 Ví dụ sử dụng semaphore: Chương Giả sử có process thực thi song song đoạn code sau: Chương 10 processA{ Chương 11 while (true) Chương 12 na++; Chương 13 } Chương 14 processB{ Chương 15 while (true) Chương 16 nb++; Chương 17 } Chương 18 Giá trị ban đầu na nb Sử dụng semaphore để đảm bảo na= nb na phải chờ nb tăng lên trước Sem_t sam; Sem_init(&sam,0,0); Chương 21 processA{ Chương 22 while (true) Chương 23 { Chương 24 Chương 25 Sem_wait(&name); na++; Chương 26 } Chương 27 } Chương 28 process{ Chương 29 while (true) Chương 30 { Chương 31 nb++; Chương 32 sem_post(&sam); Chương 33 } Chương 34 } Chương 35 Chương 36 Theo solution trên, lần nb tăng them đơn vị sam tăng lên đơn vị điều kéo theo na quyền tăng theo đơn vị Chương 37 Trước lẫn na tăng thêm đơn vị lệnh Sem_wait(&sam); thực lệnh trừ biến sam đơn vị Cho đến sam=0 na phải đợi nb tăng thêm đơn vị tăng tiếp Chương 38 38.1.1Bài tập Chương 39 1.Lập trình thực hóa ví dụ 1.2.2 C Chương 40 Chương 41 Giả sử có process thực thi song song đoạn code sau: Chương 42 processA{ Chương 43 while (true) Chương 44 na++; Chương 45 } Chương 46 process{ Chương 47 while (true) Chương 48 nb++; Chương 49 } Chương 50 Giá trị ban đầu na nb Sử dụng semaphore để đảm bảo nb

Ngày đăng: 25/02/2023, 17:58

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w