1. Trang chủ
  2. » Công Nghệ Thông Tin

Thực Hành Hệ Điều Hành UIT lab 3

10 693 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,34 MB

Nội dung

Thực hành Hệ điều hành LAB 3 Họ tên Nguyễn Thanh Hiếu MSSV 20521328 1 Mối quan hệ cha con giữa các tiến trình a Vẽ cây quan hệ parent child của các tiến trình bên dưới b Trình bày cách sử dụng lệnh ps để tìm tiến trình cha của một một tiến trình dựa vào PID của nó Ta sẽ sử dụng lệnh ps f pid của tiến trình con để hiển thị pid của tiến trình cha (chính là PPID) Ta sử dụng lệnh ps f pid lần nữa với pid là pid của tiến trình cha vừa tìm thấy để xem thông tin tiến trình cha c Tìm hiểu và cài đặt l.

Thực hành Hệ điều hành LAB Họ tên: Nguyễn Thanh Hiếu MSSV: 20521328 Mối quan hệ cha-con tiến trình a Vẽ quan hệ parent-child tiến trình bên dưới: b Trình bày cách sử dụng lệnh ps để tìm tiến trình cha một tiến trình dựa vào PID - Ta sử dụng lệnh ps -f [pid tiến trình con] để hiển thị pid tiến trình cha (chính PPID) - Ta sử dụng lệnh ps -f pid lần với pid pid tiến trình cha vừa tìm thấy để xem thơng tin tiến trình cha c Tìm hiểu cài đặt lệnh pstree (nếu chưa cài đặt), sau trình bày cách sử dụng lệnh để tìm tiến trình cha tiến trình dựa vào PID - Sử dụng lệnh pstree -p -s [pid tiến trình cần tìm đến tiến trình cha] để hiển thị tiến trình tương ứng với tiến trình nhập vào Hiển thị tiến trình ứng với tiến trình 925 Chương trình bên in kết gì? Giải thích sao? - chương trình chạy bị lỗi bên cịn thiếu thư viện để thực - Sau thêm thư viện stdlib.h, unistd.h, sys/wait.h chương trình in “I see 17 coconuts!” - Kết chương trình in “I see 17 coconuts!” Bởi vào lệnh fork() tiến trình cha chạy Với pid = tiến trình thực chương trình, cịn tiến trình cha (pid>0) vào lệnh wait(NULL) nên tiến trình cha đợi đến tiến trình chạy xong - Tiến trình thực lệnh exit(0) (lệnh kết thúc) trước nên lệnh printf tiến trình cha thực thi, tiến trình cha có nhớ riêng nên biến num_coconuts = 17 Thực in “I see 17 coconuts!” Trong phần thực hành, ví dụ sử dụng thuộc tính mặc định pthread, tìm hiểu POSIX thread trình bày tất hàm sử dụng để làm thay đổi thuộc tính pthread, sau viết chương trình minh họa tác động thuộc tính thích đầy đủ cách sử dụng hàm chương trình (Gợi ý hàm liên quan đến thuộc tính pthread bắt đầu bởi: pthread_attr_*) - POSIX thread (pthread) sử dụng để lập tiểu trình Nó cho phép tạo ứng dụng chạy song song theo luồng, phù hợp với hệ thống đa xử lý POSIX (Portabel Operating Systems Interface) mô tả API (Application Programming Interface) bao gồm hàm chức chúng - Các hàm sử dụng để làm thay đổi thuộc tính pthread là: Thuộc tính Scope Giá trị PTHREAD_SCOPE_PROCESS Kết - Thread cạnh tranh với thread khác process Detachstate PTHREAD_CREATE_JOINABLE - Trạng thái hoàn thành thread ID giữ nguyên sau thread thoát Stackaddr Null - Thread có địa ngăn xếp hệ thống cấp phát Stacksize - Thread có kích thước ngăn xếp hệ thống xác định Priority - Thread có độ ưu tiên Inheritsched PTHREAD_EXPLICIT_SCHED - Thread không kế thừa quyền ưu tiên từ thread cha Schedpolicy SCHED_OTHER - Thread sử dụng chia sẻ theo thời gian (Solaris time-sharing) Guardsize PAGESIZE - Chống tràn stack - Các chương trình minh họa tác động thuộc tính + Minh họa scope int pthread_attr_setscope(pthread_attr_t*attr, int scope); // đặt thuộc tính phạm vi tranh chấp đối tượng thuộc tính luồng tham chiếu //attr đến giá trị định phạm vi int pthread_attr_getscope(const pthread_attr_t*attr, int *scope); // Thành cơng return cịn lại trả lỗi + Minh họa priority int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); // thuộc tính luồng tham chiếu attr đến giá trị policy int pthread_attr_getschedpolicy(const pthread_attr_t *restrict attr, int *restrict policy); // Thành cơng return cịn lại trả lỗi + Minh họa setguardsize S=pthread_attr_getguardsize(pthread_attr_t *attr, &sp); // đặt kích thước bảo vệ đối tượng attr (Bảo vệ tràn ngăn xếp) + Minh họa destroy int pthread_attr_destroy (pthread_attr_t * tattr ); // để xóa nhớ cấp phát trình khởi tạo Đối tượng thuộc tính trở nên //khơng hợp lệ Viết chương trình làm cơng việc sau theo thứ tự: - Chương trình code a.In dịng chữ: “Welcome to IT007, I am !” b.Mở tệp abcd.txt vim editor c.Tắt vim editor người dùng nhấn CRTL+C - Phần soạn thảo editor tắt d.Khi người dùng nhấn CTRL+C in dịng chữ: “You are pressed CTRL+C! Goodbye!” ... thúc) trước nên lệnh printf tiến trình cha thực thi, tiến trình cha có nhớ riêng nên biến num_coconuts = 17 Thực in “I see 17 coconuts!” Trong phần thực hành, ví dụ sử dụng thuộc tính mặc định pthread,... PTHREAD_CREATE_JOINABLE - Trạng thái hoàn thành thread ID giữ nguyên sau thread thoát Stackaddr Null - Thread có địa ngăn xếp hệ thống cấp phát Stacksize - Thread có kích thước ngăn xếp hệ thống xác định Priority... trình cha chạy Với pid = tiến trình thực chương trình, cịn tiến trình cha (pid>0) vào lệnh wait(NULL) nên tiến trình cha đợi đến tiến trình chạy xong - Tiến trình thực lệnh exit(0) (lệnh kết thúc)

Ngày đăng: 03/07/2022, 17:56

w