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

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

10 759 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

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

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.

Trang 1

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)

Trang 2

- 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ệnh pstree (nếu chưa được cài đặt), sau đó trình bày cách sử dụng lệnh này để tìm tiến trình cha của một tiến trình dựa vào PID của nó

- Sử dụng lệnh pstree -p -s [pid của tiến trình con cần tìm đến tiến trình cha] để hiển thị

cả cây tiến trình tương ứng với tiến trình con được nhập vào

Trang 3

Hiển thị cây tiến trình ứng với tiến trình con là 925

2 Chương trình bên dưới in ra kết quả gì? Giải thích tại sao?

Trang 4

- chương trình chạy bị lỗi như bên dưới bởi vì còn thiếu thư viện để thực hiện

- Sau khi thêm 3 thư viện stdlib.h, unistd.h, sys/wait.h thì chương trình in ra là “I see 17 coconuts!”

Trang 5

- Kết quả chương trình in ra là “I see 17 coconuts!” Bởi vì khi vào lệnh fork() thì tiến trình con và cha sẽ chạy Với pid = 0 thì tiến trình con thực hiện chương trình, còn tiến trình cha (pid>0) sẽ vào lệnh wait(NULL) vậy nên tiến trình cha sẽ đợi đến khi tiến trình con chạy xong

- Tiến trình con thực hiện lệnh exit(0) (lệnh kết thúc) trước khi thực hiện vậy nên lệnh printf của tiến trình cha sẽ được thực thi, 2 tiến trình cha và con có bộ nhớ riêng vậy nên biến num_coconuts = 17 Thực hiện in ra “I see 17 coconuts!”

3 Trong phần thực hành, các ví dụ chỉ sử dụng thuộc tính mặc định của pthread, hãy tìm hiểu POSIX thread và trình bày tất cả các hàm được sử dụng để làm thay đổi thuộc tính của pthread, sau đó viết các chương trình minh họa tác động của các thuộc tính này và chú thích đầy đủ cách sử dụng hàm này trong chương trình (Gợi ý các hàm liên quan đến thuộc tính của pthread đều bắt đầu bởi: pthread_attr_*)

- POSIX thread (pthread) sẽ được sử dụng để lập tiểu trình Nó cho phép chúng ta tạo ra các ứng dụng chạy song song theo luồng, phù hợp với các hệ thống đa bộ xử lý POSIX (Portabel Operating Systems Interface) là mô tả các API (Application Programming Interface) bao gồm hàm và chức năng của chúng

- Các hàm được sử dụng để làm thay đổi thuộc tính của pthread là:

Trang 6

Thuộc tính Giá trị Kết quả

tranh với các thread khác trong process này

và thread ID được giữ nguyên sau khi thread thoát

ngăn xếp do hệ thống cấp phát

thước ngăn xếp do hệ thống xác định

tiên bằng 0

thừa quyền ưu tiên từ thread cha

chia sẻ theo thời gian (Solaris time-sharing)

+ 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 của đối tượng thuộc tính luồng được tham chiếu bởi //attr đến giá trị được chỉ định trong phạm vi

int pthread_attr_getscope(const pthread_attr_t*attr, int *scope);

// Thành công thì return về 0 còn lại trả về lỗi

+ Minh họa priority

int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);

// thuộc tính luồng được tham chiếu bởi attr đến giá trị policy

int pthread_attr_getschedpolicy(const pthread_attr_t *restrict attr, int *restrict policy);

// Thành công thì return về 0 còn lại trả về lỗi

Trang 7

+ Minh họa setguardsize

S=pthread_attr_getguardsize(pthread_attr_t *attr, &sp);

// đặt kích thước bảo vệ của đố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 );

//không hợp lệ

4 Viết chương trình làm các công việc sau theo thứ tự:

- Chương trình code

Trang 8

a.In ra dòng chữ: “Welcome to IT007, I am <your_Student_ID>!”

b.Mở tệp abcd.txt bằng vim editor

Trang 9

c.Tắt vim editor khi người dùng nhấn CRTL+C

Trang 10

- Phần soạn thảo editor đã được tắt

d.Khi người dùng nhấn CTRL+C thì in ra dòng chữ: “You are pressed CTRL+C!

Goodbye!”

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

TỪ KHÓA LIÊN QUAN

w