Danh mục

Unix/Linux: Tiến trình (process) – Phần 1

Số trang: 6      Loại file: pdf      Dung lượng: 292.89 KB      Lượt xem: 14      Lượt tải: 0    
Thư viện của tui

Phí tải xuống: 3,000 VND Tải xuống file đầy đủ (6 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Để đáp ứng nhu cầu tài nguyên, cần có một sách lược chạy trình thật hiệu quả để đảm bảo tính đanhiệm, nhiều người dùng. Cách phổ biến nhất là cấp tài nguyên cho mỗi chương trình trong một lượng thờigian nhất định, sao cho các chương trình đều có cơ hội thực hiện như nhau và trong thời gian thực hiệnchương trình, cần kiểm soát việc thực hiện đó chặt chẻ. Để làm điều đó, ta đưa ra một khái niệm gọi là tiếntrình (process)...
Nội dung trích xuất từ tài liệu:
Unix/Linux: Tiến trình (process) – Phần 122/02/2013 Thư viện Tin học >> Hệ Điều Hành-Mạng >> Linux & Others In Bài -- Đóng Unix/Linux: Tiến trình (process) – Phần 1 Unix là hệ đa xử lí, tức khả năng thực thi nhiều tác vụ cùng một lúc. Một chương trình máy tính là một chuỗi các chỉ lệnh (intructions, hay còn gọi là lệnh máy) mà theo đó máy tính phải thực hiện. Mặt khác tài nguyên máy tính (CPU, bộ nhớ, tệp, các thiết bị...) là hữu hạn và khi các chương trình chạy thì các chương trình đều có nhu cầu trên các tài nguyên đó. 1. Tổng quan về tiến trình: 1.1. Tiến trình: Để đáp ứng nhu cầu tài nguyên, cần có một sách lược chạy trình thật hiệu quả để đảm bảo tính đa nhiệm, nhiều người dùng. Cách phổ biến nhất là cấp tài nguyên cho mỗi chương trình trong một lượng thời gian nhất định, sao cho các chương trình đều có cơ hội thực hiện như nhau và trong thời gian thực hiện chương trình, cần kiểm soát việc thực hiện đó chặt chẻ. Để làm điều đó, ta đưa ra một khái niệm gọi là tiến trình (process). Vậy tiến trình (TT) là thời gian thực hiện (instance of execution) của một chương trình và việc thực hiện hiện đó chỉ xảy ra trong một khoản thời gian nhất định (gọi là slice time). Tuy nhiên để thực hiện được chương trình, TT sẽ sử dụng CPU để chạy các lệnh của nó, và bộ nhớ nơi có mã lệnh (code hay text), dữ liệu (data), và ngăn xếp (stack). Một TT khi thực hiện phải làm theo một trình tự các chỉ lệnh trong vùng code của TT và không nhảy tới các chỉ lệnh của TT khác; TT chỉ có thể đọc/ghi truy nhập data và stack của nó, nhưng không thể trên data và stack của TT khác. TT liên lạc với các TT khác và phần còn lại của hệ thống bằng các Goị Hệ Thống (GHT, system call). Hệ thống phân chia việc thực hiện ra là hai chế độ, user mode và kernel mode như đã nói, nhưng cho dù như vậy, thì kernel vẫn là người thực hiện mã của TT (còn gọi là nhân danh TT của người dùng). Cần nhận thức rằng, kernel không phải là tập tách biệt các TT và chạy song song với TT người dùng, mà kernel là một phần của mỗi TT người dùng. 1.2. Môi trường thực hiện: 1.2.1. Chế độ thực hiện Việc thực hiện một TT trên Unix được chia ra làm hai mức: user (người dùng) và kernel (nhân của hệ thống). Khi một TT của user thực hiện một chức năng của nhân (thông qua gọi hệ thốngfiGHT), chế độ thực hiện của TT sẽ chuyển từ chế độ người dùng (user mode) sang chế độ nhân của hệ thống (kernel mode): Hệ thống sẽ thực hiện và phục vụ các yêu cầu của user, trả lại kết quả. Ngay cả khi user tạo ra các yêu cầu không tường minh, thì hệ vẫn thực hiện các kết toán có liên quan tới TT của user, thao tác các ngắt, lập biểu các TT, quản lí bộ nhớ... Kernel mode là một chế độ đặc quyền, trong đó không có giới hạn nào đối với kernel: kernel sử dụngwww.thuvien-it.net/home/tinhoc/sub.asp?sid=117&rn=100&pn=1&ob=1 1/622/02/2013 Thư viện Tin học >> Hệ Điều Hành-Mạng >> Linux & Others tất cả các lệnh của CPU, các thanh ghi của CPU, kiểm soát bộ nhớ, liên lạc trực tiếp với các thiết bị ngoại vi. Kernel tiếp nhận và xử lí các yêu cầu của các TT của user, sau đó gởi kết quả đến các TT đó. User mode được hiểu là chế độ thực hiện bình thường của một tiến trình. Trong chế độ này, có nhiều hạn chế áp đặt lên TT: TT chỉ truy nhập được các lệnh và dữ liệu của nó, không thể truy nhập lệnh, dữ liệu của kernel và của các TT khác, một số các thanh ghi của CPU là cấm. Ví dụ: không gian địa chỉ ảo của một TT được chia ra thành miền chỉ truy nhập được trong chế độ kernel, miền khác ở chế độ user, hay TT không thể tương tác với máy vật lí, một số lệnh của CPU không được sử dụng, có thể bị ngắt trong bất kì lúc nào. Một TT trong user mode khi muốn truy nhập tài nguyên, phải thực hiện qua gọi hệ thống (GHT). Gọi hệ thống (GHT hay gọi thực hiện chức năng hệ thống cung cấp) là quá trình chuyển thông số (yêu cầu qua tên hay số của các dịch vụ hệ thống) mà TT yêu cầu cho kernel thực hiện. Trong Unix, việc đó được làm qua một bẫy hệ thống (trap), sau đó kernel sẽ thực hiện nhu cầu của TT, đôi khi còn nói là: kernel thực hiện TT trên danh nghĩa của TT, trong môi trường của TT. Kernel không phảI là tập tách biệt của TT chạy song song với TT người dùng, mà là một phần của mỗi TT người dùng. Văn cảnh trình bày nói kernel cung cấp tài nguyên hay kernel thực hiện ... có nghĩa là TT đang chạy trong kernel mode cấp tài ...

Tài liệu được xem nhiều: