Bài giảng Linux và phần mềm mã nguồn mở - Chương 5: Quản lý tiến trình
Số trang: 31
Loại file: pdf
Dung lượng: 319.85 KB
Lượt xem: 20
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Linux và phần mềm mã nguồn mở - Chương 5: Quản lý tiến trình. Chương này cung cấp cho sinh viên những nội dung gồm: các kiểu tiến trình; các tiến trình hệ thống; các tiến trình của người sử dụng; trạng thái của tiến trình; độ ưu tiên của các tiến trình;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Linux và phần mềm mã nguồn mở - Chương 5: Quản lý tiến trìnhQuản lý tiến trìnhTS Trương Diệu LinhGiới thiệun Một tiến trình = thực thi của một chương trình được thực thin Mỗi tiến trình sẽ tương ứng với một tập các thông tin sau: ¨ Một định danh (pid) ¨ Một tiến trình cha (ppid) ¨ Người sở hữu (uid) và nhóm (gid) ¨ Câu lệnh khởi tạo tiến trình ¨ Một đầu vào chuẩn (stdin), một đầu ra chuẩn (stdout), một kênh báo lỗi chuẩn (stderr) ¨ Thời gian sử dụng CPU (CPU time) và mức độ ưu tiên ¨ Thư mục hoạt động hiện tại của tiến trình ¨ Bảng các tham chiếu đến các file được tiến trình sử dụng.n Các tiến trình được sắp xếp để chia sẻ thời gian sử dụng CPUCác kiểu tiến trình (1)n Các tiến trình hệ thống ¨ Thường thuộc về quyền root ¨ Không có giao diện tương tác ¨ Thường được chạy dưới dạng các tiến trình ngầm (daemon) ¨ Đảm nhiệm các nhiệm vụ chung, phục vụ mọi người sử dụng. ¨ Ví dụ: n lpsched: Quản lý các dịch vụ in ấn n cron: tự động thực hiện một lệnh/chương trình vào một thời gian xác định trước. n inetd: quản lý các dịch vụ mạng.Các kiểu tiến trình (2)n Các tiến trình của người sử dụng ¨ Thực hiện các nhiệm vụ của một người dùng cụ thể n Thực hiện dưới dạng một shell tương ứng với một sự đăng nhập. n Thực hiện dưới dạng một lệnh thông qua shell ¨ Thường được thực hiện, quản lý bằng một terminal ¨ Ví dụ: n cp n vi n man n …Lệnh psn Hiển thị các tiến trình ¨ Theo ngầm định, lệnh ps hiển thị các tiến trình thuộc về người sử dụng terminal. ¨ Sử dụng tùy chọn aux để hiển thị tất cả các tiến trình đang chạy trong máy.$ ps PID TTY TIME CMD2803 pts/1 00:00:00 bash2965 pts/1 00:00:00 ps$ ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.1 0.1 1104 460 ? S 15:26 0:03 init[3]...ttanh 951 0.0 0.3 1728 996 pts/0 S 16:09 0:00 bashttanh 953 0.0 1.9 6860 4916 pts/0 S 16:09 0:00 emacsttanh 966 0.0 0.3 2704 1000 pts/0 R 16:23 0:00 ps aux...Trạng thái của tiến trìnhn S: đang ngủ Khởi tạo tiến trình Hủy bỏ tiến trìnhn R: đang chạyn T: dừng Đang chạy Kết thúc tiến trình Kết thúcn Z:không xác định Ctrl-C hoặc kill Phục hồi Đang ngủ fgLệnh killn Gửi một tín hiệu đến một tiến trình (định danh của tiến trình được xác định dưới dạng một tham số của lệnh). ¨ Theo ngầm định, tín hiệu gửi đi là tín hiệu 15 (SIGTERM – kết thúc tiến trình) ¨ $ kill pid ¨ Tùy chọn –l: liệt kê tất cả các tín hiệu có thể sử dụng.n Lệnh killall: dùng để kết thúc tất cả các tiến trình của một câu lệnh thông qua việc truyền tên của câu lệnh dưới dạng một tham số. ¨ killall tên_lệnhn Quyền hủy tiến trình thuộc về người sở hữu tiến trìnhĐộ ưu tiên của các tiến trìnhn Tất cả các tiến trình đều có độ ưu tiên ban đầu được ngầm định là 0n Mức độ ưu tiên của một tiến trình dao động trong khoảng từ -19 đến +19 ¨ Chỉ người sử dụng có quyền root mới có thể giảm giá trị biểu diễn độ ưu tiên của tiến trình. Một người sử dụng thông thường chỉ có thể làm giảm độ ưu tiên của tiến trình thông qua việc tăng giá trị biểu diễn độ ưu tiên.n Lệnh nice cho phép thay đổi độ ưu tiên của một tiến trình ngay khi bắt đầu thực hiện lệnh tương ứng với tiến trình. ¨ $ nice [-n Value] [Command [Arguments ...]]n Lệnh renice cho phép thay đổi độ ưu tiên của một tiến trình sau khi đã chạy.Lệnh topn Hiển thị và cập nhật các thông tin sau của các tiến trình đang chạy: ¨ Phần trăm sử dụng CPU ¨ Phần trăm sử dụng bộ nhớ trongn $ top [–d] delay ¨ Tùychọn –d cho phép xác định thời gian định kỳ cập nhật thông tin (tính theo giây).n Lệnh top cho phép người sử dụng tương tác và quản lý các tiến trình ¨ Phím« f » trong quá trình hoạt động của top cho phép thay đổi, lựa chọn các thông tin cần hiển thịChạy ở chế độ hiện (foreground vàchạy ở chế độ ngầm (background) (1)n Quá trình chạy ở chế độ hiện sẽ tiến hành theo những bước như sau: ¨ Thực hiện quá trình « fork », nhân bản tiến trình cha (trong trường hợp thực thi các lệnh, đó sẽ là tiến trình shell) ¨ Thực hiện quá trình « wait », đưa tiến trình cha vào trạng thái ngủ (sleep). ¨ Thực hiện quá trình « exec », thực thi tiến trình con. ¨ Sau khi tiến trình con thực thi xong, một tín hiệu « đánh thức » sẽ được gửi đến tiến trình cha. ¨ Do quá trình chạy như trên => trong quá trình thực hiện tiến trình con, người sử dụng không thể tương tác với tiến trình cha.Chạy ở chế độ hiện (foreground vàchạy ở chế độ ngầm (background) (2)n Quá trình chạy ở chế độ ngầm cho phép thực thi tiến trình cha và tiến trình con một cách độc lập.n Ví dụ: $ emacs&n Sau khi thực hiện lệnh trên, emacs sẽ chạy ở chế độ ngầm, người sử dụng có thể tiếp tục sử dụng console để thực thi các lệnh khácQuản lý tác vụn Một tác vụ = việc thực hiện một câu lệnh. Một tác vụ có thể liên quan đến một nhóm các tiến trình (một tiến trình cha và tập các tiến trình con của nó)n Không thể có nhiều hơn 1 tác vụ chạy ở chế độ hiện (foreground)n Có thể có nhiều hơn 1 tác vụ chạy ở chế độ ngầm (background) ...
Nội dung trích xuất từ tài liệu:
Bài giảng Linux và phần mềm mã nguồn mở - Chương 5: Quản lý tiến trìnhQuản lý tiến trìnhTS Trương Diệu LinhGiới thiệun Một tiến trình = thực thi của một chương trình được thực thin Mỗi tiến trình sẽ tương ứng với một tập các thông tin sau: ¨ Một định danh (pid) ¨ Một tiến trình cha (ppid) ¨ Người sở hữu (uid) và nhóm (gid) ¨ Câu lệnh khởi tạo tiến trình ¨ Một đầu vào chuẩn (stdin), một đầu ra chuẩn (stdout), một kênh báo lỗi chuẩn (stderr) ¨ Thời gian sử dụng CPU (CPU time) và mức độ ưu tiên ¨ Thư mục hoạt động hiện tại của tiến trình ¨ Bảng các tham chiếu đến các file được tiến trình sử dụng.n Các tiến trình được sắp xếp để chia sẻ thời gian sử dụng CPUCác kiểu tiến trình (1)n Các tiến trình hệ thống ¨ Thường thuộc về quyền root ¨ Không có giao diện tương tác ¨ Thường được chạy dưới dạng các tiến trình ngầm (daemon) ¨ Đảm nhiệm các nhiệm vụ chung, phục vụ mọi người sử dụng. ¨ Ví dụ: n lpsched: Quản lý các dịch vụ in ấn n cron: tự động thực hiện một lệnh/chương trình vào một thời gian xác định trước. n inetd: quản lý các dịch vụ mạng.Các kiểu tiến trình (2)n Các tiến trình của người sử dụng ¨ Thực hiện các nhiệm vụ của một người dùng cụ thể n Thực hiện dưới dạng một shell tương ứng với một sự đăng nhập. n Thực hiện dưới dạng một lệnh thông qua shell ¨ Thường được thực hiện, quản lý bằng một terminal ¨ Ví dụ: n cp n vi n man n …Lệnh psn Hiển thị các tiến trình ¨ Theo ngầm định, lệnh ps hiển thị các tiến trình thuộc về người sử dụng terminal. ¨ Sử dụng tùy chọn aux để hiển thị tất cả các tiến trình đang chạy trong máy.$ ps PID TTY TIME CMD2803 pts/1 00:00:00 bash2965 pts/1 00:00:00 ps$ ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.1 0.1 1104 460 ? S 15:26 0:03 init[3]...ttanh 951 0.0 0.3 1728 996 pts/0 S 16:09 0:00 bashttanh 953 0.0 1.9 6860 4916 pts/0 S 16:09 0:00 emacsttanh 966 0.0 0.3 2704 1000 pts/0 R 16:23 0:00 ps aux...Trạng thái của tiến trìnhn S: đang ngủ Khởi tạo tiến trình Hủy bỏ tiến trìnhn R: đang chạyn T: dừng Đang chạy Kết thúc tiến trình Kết thúcn Z:không xác định Ctrl-C hoặc kill Phục hồi Đang ngủ fgLệnh killn Gửi một tín hiệu đến một tiến trình (định danh của tiến trình được xác định dưới dạng một tham số của lệnh). ¨ Theo ngầm định, tín hiệu gửi đi là tín hiệu 15 (SIGTERM – kết thúc tiến trình) ¨ $ kill pid ¨ Tùy chọn –l: liệt kê tất cả các tín hiệu có thể sử dụng.n Lệnh killall: dùng để kết thúc tất cả các tiến trình của một câu lệnh thông qua việc truyền tên của câu lệnh dưới dạng một tham số. ¨ killall tên_lệnhn Quyền hủy tiến trình thuộc về người sở hữu tiến trìnhĐộ ưu tiên của các tiến trìnhn Tất cả các tiến trình đều có độ ưu tiên ban đầu được ngầm định là 0n Mức độ ưu tiên của một tiến trình dao động trong khoảng từ -19 đến +19 ¨ Chỉ người sử dụng có quyền root mới có thể giảm giá trị biểu diễn độ ưu tiên của tiến trình. Một người sử dụng thông thường chỉ có thể làm giảm độ ưu tiên của tiến trình thông qua việc tăng giá trị biểu diễn độ ưu tiên.n Lệnh nice cho phép thay đổi độ ưu tiên của một tiến trình ngay khi bắt đầu thực hiện lệnh tương ứng với tiến trình. ¨ $ nice [-n Value] [Command [Arguments ...]]n Lệnh renice cho phép thay đổi độ ưu tiên của một tiến trình sau khi đã chạy.Lệnh topn Hiển thị và cập nhật các thông tin sau của các tiến trình đang chạy: ¨ Phần trăm sử dụng CPU ¨ Phần trăm sử dụng bộ nhớ trongn $ top [–d] delay ¨ Tùychọn –d cho phép xác định thời gian định kỳ cập nhật thông tin (tính theo giây).n Lệnh top cho phép người sử dụng tương tác và quản lý các tiến trình ¨ Phím« f » trong quá trình hoạt động của top cho phép thay đổi, lựa chọn các thông tin cần hiển thịChạy ở chế độ hiện (foreground vàchạy ở chế độ ngầm (background) (1)n Quá trình chạy ở chế độ hiện sẽ tiến hành theo những bước như sau: ¨ Thực hiện quá trình « fork », nhân bản tiến trình cha (trong trường hợp thực thi các lệnh, đó sẽ là tiến trình shell) ¨ Thực hiện quá trình « wait », đưa tiến trình cha vào trạng thái ngủ (sleep). ¨ Thực hiện quá trình « exec », thực thi tiến trình con. ¨ Sau khi tiến trình con thực thi xong, một tín hiệu « đánh thức » sẽ được gửi đến tiến trình cha. ¨ Do quá trình chạy như trên => trong quá trình thực hiện tiến trình con, người sử dụng không thể tương tác với tiến trình cha.Chạy ở chế độ hiện (foreground vàchạy ở chế độ ngầm (background) (2)n Quá trình chạy ở chế độ ngầm cho phép thực thi tiến trình cha và tiến trình con một cách độc lập.n Ví dụ: $ emacs&n Sau khi thực hiện lệnh trên, emacs sẽ chạy ở chế độ ngầm, người sử dụng có thể tiếp tục sử dụng console để thực thi các lệnh khácQuản lý tác vụn Một tác vụ = việc thực hiện một câu lệnh. Một tác vụ có thể liên quan đến một nhóm các tiến trình (một tiến trình cha và tập các tiến trình con của nó)n Không thể có nhiều hơn 1 tác vụ chạy ở chế độ hiện (foreground)n Có thể có nhiều hơn 1 tác vụ chạy ở chế độ ngầm (background) ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Linux và phần mềm mã nguồn mở Linux và phần mềm mã nguồn mở Quản lý tiến trình Tiến trình hệ thống Quản lý tác vụ Tiến trình dao động Thực thi tiến trìnhTài liệu có liên quan:
-
Bài giảng Nguyên lý hệ điều hành: Chương 2 - GV. Đặng Quang Hiển
118 trang 186 0 0 -
Giáo trình Hệ điều hành (Operating System)
201 trang 171 0 0 -
Tiểu luận: Quản lý bộ nhớ trong hệ điều hành windows
21 trang 135 0 0 -
Bài giảng Linux và phần mềm mã nguồn mở: Bài 10 - Trương Xuân Nam
19 trang 104 0 0 -
Giáo trình Kiến trúc máy tính và hệ điều hành: Phần 2
124 trang 100 0 0 -
Giáo trình Hệ điều hành Linux - CĐ Nghề Đắk Lắk
88 trang 75 0 0 -
Bài giảng Nguyên lý hệ điều hành – ThS. Nguyễn Quỳnh Hoa
55 trang 72 0 0 -
Tập bài giảng Nguyên lý hệ điều hành
300 trang 72 0 0 -
Bài giảng Nguyên lý hệ điều hành: Chương 2 - Phạm Đăng Hải
467 trang 71 0 0 -
Giáo trình Hệ điều hành - CĐ Kinh tế Kỹ thuật TP.HCM
178 trang 61 0 0