“tiếntrình” là chương trình đang trong quá trình thực thi.Tiếntrình là đơn vị thực thi cơ sở trong hệ thống chia sẻ thờigian thực.Trong hệ điều hành đa chương trình tại mộtthời điểm luôn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA
BÁO CÁO BÀI TẬP LỚNHỌC PHẦN HỆ ĐIỀU HÀNH
ĐỀ TÀI:
Quản lí tiến trình trong Windows
Họ và tên sinh viên: Phạm Hùng Mạnh
Trang 2MỤC LỤC
LỜI MỞ ĐẦU……….4
1 Chương 1:Khái niệm về tiến trình chương trình và các vấn đề chủ đề liên kết
quan……… 5 1.1 Tiến trình
Trang 3Lời nói đầu
Trong thế giới kỹ thuật số ngày nay, hệ điều hành Windows không chỉ là một nền tảng phổ biến cho việc chạy các ứng dụng và dịch vụ mà còn cung cấp một hệ thống quản lý tiến trình mạnh mẽ.Tiến trình là gì? “tiến trình” là chương trình đang trong quá trình thực thi.Tiến trình là đơn vị thực thi cơ sở trong hệ thống chia sẻ thời gian thực.Trong hệ điều hành đa chương trình tại một thời điểm luôn tồn tại nhiều tiến trình nhưng nó lại có những tài nguyên hữu hạn.Vì vậy hệ điều hành phải có
cơ chế cấp phát tài nguyên cho tiến trình theo cơ chế định trước và cơ chế cho phép tiến trình trao đổi thông tin với nhau.Như vậy, quản lý tiến trình là một phần không thể thiếu của việc đảm bảo sự ổn định, hiệu suất
và an toàn của máy tính
Trong tài liệu này, chúng ta sẽ khám phá sâu hơn
về cách Windows quản lý các tiến trình, từ cơ bản đến các vấn đề phát sinh và các chiến lược tối ưu hóa.Tài liệu gồm các nội dung chính sau:
- Chương 1: Khái niệm về tiến trình chương trình và các vấn đề chủ đề liên kết quan: Bắt đầu bằng một sự giới thiệu về kiến trúc cơ bản của tiến trình, tổng hợp các phép tổng quát đã diễn ra trong quá trình tiến trình, và cách mà chương trình tạo
Trang 4ra một tiến trình Cũng sẽ đề cập đến mối quan hệ giữa các tiến trình và một số khái niệm cơ bản khác liên quan.
- Chương 2: Quản lý tiến trình chương trình với người quản
lý (cảm nhận): Giới thiệu khái niệm việc tiết lộ các chuyển hướng, cách sử dụng trong quản lí tác vụ Từ đó hiểu được cách
mà hệ điều hành Windows quản lý tiến trình của máy tính
1.Chương 1:Khái niệm về tiến trình chương trình và các vấn đề chủ đề liên kết quan1.1 Tiến trình
1.1.1.Tiến trình ? Khái niệm về quản lí tiến trình
a.Tiến trình là gì)?
-Tiến trình là một khái niệm cơ bản trong hệ điều hành, đại diệncho việc thực thi một chương trình Mỗi tiến trình có một khônggian địa chỉ riêng biệt trong bộ nhớ, bao gồm mã máy (code),
dữ liệu và bộ nhớ stack Nó cũng bao gồm các tài nguyên hệthống khác như tài nguyên I/O, bộ nhớ ảo và quyền truy cập
b.Khái niệm về quản lí tiến trình
-Quản lý tiến trình là một khái niệm quan trọng trong lĩnh vực
hệ điều hành Quản lý tiến trình đảm bảo sự chạy đồng thời vàhiệu quả của các tiến trình trong hệ thống Một tiến trình là mộtchương trình đang được thực thi Nó có thể là một ứng dụng,một tác vụ nền, hoặc một phần của hệ thống Mỗi tiến trình cómột trạng thái nhất định, bao gồm tiến trình đang chạy, tiếntrình đang chờ, tiến trình bị treo và tiến trình đã hoàn thành
1.2 Các trạng thái của các tiến trình
Trang 5Trong hệ thống máy tính và hệ điều hành, một tiến trình có thểtồn tại trong một số trạng thái khác nhau tùy thuộc vào hoạtđộng và tương tác với hệ thống Dưới đây là giới thiệu đầy đủ vềcác trạng thái của tiến trình :
- Running ( Đang chạy ):
+ Tiến trình đang được thực thi trên CPU và đang hoạtđộng hoặc thực hiện các tác vụ được giao
+ Trong hệ thống đa nhiệm , có thể có nhiều tiến trìnhđang chạy đồng thời, và hệ điều hành sẽ chia thời gian CPU giữacác tiến trình theo quy tắc lập lịch
- Suspended(Tạm dừng):
+ Tiến trình đã bị dừng và không thực thi
+ Trong Windows,có thể có hai loại tạm dừng:tạm dừng chínhtiến trình process suspension),trong đó toàn bộ tiến trình bị tạm
Trang 6dừng, và tạm dừng luồng thực thi(thread suspension),trong đóchỉ một luồng trong tiến trình bị tạm dừng.
1.3.Mối quan hệ giữa các tiến trình
Trong hệ điều hành Windows, các tiến trình quản lý không chỉtồn tại và hoạt động độc lập, mà còn có mối quan hệ tương tácvới nhau Dưới đây là một phân tích chi tiết về mối quan hệ giữacác tiến trình quản lý trong Windows:
- Tương tác thông qua hệ thống tài nguyên:
+ Các tiến trình trong Windows tương tác thông qua việc sửdụng và chia sẻ các tài nguyên hệ thống như bộ nhớ, tệp tin,thiết bị I/O, socket kết nối mạng và nhiều tài nguyên khác.+ Mỗi tiến trình có thể sử dụng tài nguyên đã được cấp phát cho
nó hoặc chia sẻ tài nguyên với các tiến trình khác thông qua các
cơ chế như gửi tin nhắn, sử dụng biến toàn cục hoặc chia sẻ bộnhớ
- Giao tiếp thông qua cơ chế IPC (Inter-Process Communication):
Trang 7+ Các tiến trình trong Windows có thể giao tiếp với nhau thôngqua các cơ chế IPC như pipes, shared memory, message queues
và synchronization primitives như mutexes và semaphores.+ Sử dụng IPC, các tiến trình có thể trao đổi dữ liệu, thông báovới nhau về trạng thái hoặc tiến độ của công việc, và đồng bộhóa hoạt động giữa chúng
- Quan hệ cha con giữa các tiến trình:
+ Trong Windows, một tiến trình có thể tạo ra các tiến trìnhcon Tiến trình tạo ra được gọi là tiến trình cha và các tiến trìnhđược tạo ra được gọi là tiến trình con
+ Tiến trình con thường kế thừa môi trường và tài nguyên củatiến trình cha và có thể thực thi các tác vụ cụ thể hoặc hoạtđộng như một đơn vị tổ chức của tiến trình cha
- Tương tác thông qua các dịch vụ hệ thống:
+ Các tiến trình trong Windows có thể tương tác thông qua cácdịch vụ hệ thống được cung cấp bởi hệ điều hành hoặc các ứngdụng khác
+ Các dịch vụ này có thể cung cấp các chức năng như quản lýtệp tin, mạng, bảo mật và nhiều dịch vụ hệ thống khác mà cáctiến trình có thể sử dụng để thực hiện công việc của mình
- Tương tác qua các cơ chế đồng bộ hóa:
Trang 8+ Windows cung cấp các cơ chế đồng bộ hóa như mutex,semaphore, event objects để đảm bảo rằng các tiến trình thựcthi một cách an toàn và đồng bộ trong môi trường đa nhiệm.+ Các tiến trình có thể sử dụng các cơ chế này để đồng bộ hóatruy cập vào tài nguyên chung, tránh gây ra tình trạng đua đầu(race conditions) và đảm bảo tính nhất quán của dữ liệu.Tóm lại, mối quan hệ giữa các tiến trình là một phần quan trọngcủa việc quản lý hệ thống và hoạt động một cách hiệu quảtrong một môi trường đa nhiệm như Windows Quan hệ này chophép các tiến trình làm việc cùng nhau, tương tác và chia sẻ tàinguyên để thực hiện các tác vụ phức tạp.
1.4.Khái niệm cơ bản khác liên quan
Ngoài ra, chúng ta cũng sẽ xem xét một số khái niệm cơ bảnkhác như tiến trình nền (background process), tiến trình chính(foreground process), tiến trình cha (parent process) và tiếntrình con (child process), để hiểu rõ hơn về mối quan hệ và tổchức của các tiến trình trong hệ thống:
- Tiến trình nền (Background process):
+ Tiến trình nền là các tiến trình hoạt động trong hệ thống màkhông tương tác trực tiếp với người dùng Chúng thường thựchiện các tác vụ phụ trợ hoặc dịch vụ hệ thống mà không cần sựcan thiệp của người dùng
Ví dụ: Dịch vụ tự động cập nhật, tiến trình quản lý máy chủweb, tiến trình chạy trong nền để quản lý việc sao lưu dữ liệu
- Tiến trình chính (Foreground process):
Trang 9+ Tiến trình chính là các tiến trình mà người dùng tương táctrực tiếp thông qua giao diện người dùng của hệ thống Chúngthường đại diện cho các ứng dụng, cửa sổ hoặc chương trình màngười dùng đang sử dụng.
Ví dụ: Các ứng dụng văn phòng như Microsoft Word, trình duyệtweb như Google Chrome, hoặc trò chơi
- Tiến trình cha (Parent process):
+ Tiến trình cha là tiến trình đã tạo ra một hoặc nhiều tiến trìnhkhác, được gọi là tiến trình con Tiến trình cha tạo ra và kiểmsoát tiến trình con
+ Tiến trình cha thường chịu trách nhiệm về việc quản lý vàgiám sát hoạt động của tiến trình con, bao gồm việc cung cấpcác tài nguyên và thông tin môi trường
- Tiến trình con (Child process):
+ Tiến trình con là các tiến trình được tạo ra bởi một tiến trìnhkhác, được gọi là tiến trình cha Tiến trình con thường thực hiệncác tác vụ cụ thể được giao bởi tiến trình cha
+ Tiến trình con thường kế thừa môi trường và tài nguyên từtiến trình cha, nhưng có thể hoạt động độc lập sau khi được tạora
Các khái niệm này làm nổi bật các quan hệ và tổ chức giữa cáctiến trình trong hệ thống máy tính, giúp hiểu rõ hơn về cách cáctiến trình tương tác và hoạt động trong môi trường đa nhiệm
Trang 102 Chương 2 :Quản lý tiến trình chương trình với người
quản lý
Tiến trình quản lý chương trình với sự tham gia của người quản
lý là một khía cạnh quan trọng trong việc đảm bảo hoạt độnghiệu quả của các tiến trình và ứng dụng trong một tổ chức hoặcmôi trường làm việc Phân tích đầy đủ nội dung này sẽ baogồm:
2.1 Vai trò của người quản lí
Vai trò của người quản lý trong quản lý tiến trình chương trình là
vô cùng quan trọng để đảm bảo rằng các hoạt động được thựchiện một cách suôn sẻ và hiệu quả Dưới đây là phân tích chitiết về vai trò của người quản lí:
- Tổ chức (Organization):
Trang 11+ Người quản lý phải tổ chức các tài nguyên, nhân lực và quytrình để thực hiện kế hoạch quản lý tiến trình chương trình.+ Điều này có thể bao gồm việc phân công nhiệm vụ, xác định
và phân bổ tài nguyên cần thiết, và thiết lập các quy trình làmviệc và quy định
-Điều phối (Coordination):
+ Người quản lý phải điều phối hoạt động giữa các bộ phận và
cá nhân để đảm bảo rằng các tiến trình chương trình được thựchiện một cách liên tục và hợp nhất
+ Điều này có thể bao gồm việc tổ chức các cuộc họp, giao tiếpthông tin và yêu cầu, và giám sát tiến độ và tiến triển của cáctiến trình
- Giám sát (Monitoring):
+ Người quản lý phải giám sát hoạt động của các tiến trìnhchương trình để đảm bảo rằng chúng đang thực hiện theo kếhoạch và đạt được mục tiêu đề ra
+ Điều này bao gồm việc theo dõi hiệu suất, tiến độ và chấtlượng của các tiến trình, cũng như phát hiện và giải quyết cácvấn đề và sự cố phát sinh
- Đánh giá (Evaluation):
+ Người quản lý phải đánh giá hiệu suất và kết quả của các tiếntrình chương trình dựa trên các chuẩn mực và tiêu chí đã đặt ratrong quá trình lập kế hoạch
Trang 12+ Đánh giá này giúp người quản lý hiểu được những điểm mạnh
và điểm yếu của quy trình quản lý, và từ đó đề xuất các biệnpháp cải thiện và điều chỉnh cho tương lai
Tóm lại, vai trò của người quản lý trong quản lý tiến trìnhchương trình là quan trọng để đảm bảo rằng các hoạt động diễn
ra một cách suôn sẻ và hiệu quả Họ phải đảm bảo rằng mọinguồn lực được sử dụng một cách hiệu quả và mục tiêu của tổchức được đạt được thông qua quản lý hiệu suất của các tiếntrình chương trình
2.2.Quản lí và giám sát tiến trình
Quản lý và giám sát tiến trình chương trình là một phần quantrọng trong việc đảm bảo rằng các hoạt động được thực hiệnmột cách hiệu quả và đạt được mục tiêu đề ra Dưới đây là phântích chi tiết về Quản lí và giám sát tiến trình:
- Thiết lập mục tiêu (Setting objectives):
+ Người quản lý cần xác định các mục tiêu cụ thể và đo lườngđược của quản lý tiến trình chương trình Điều này có thể baogồm xác định mục tiêu về hiệu suất, tiến độ hoàn thành, chấtlượng sản phẩm, hoặc sự hài lòng của khách hàng
+ Việc thiết lập mục tiêu cụ thể giúp tạo ra hướng đi rõ ràngcho quản lý và giúp đo lường được sự tiến triển và hiệu suất củacác tiến trình
- Đo lường hiệu suất (Performance measurement):
+ Người quản lý cần sử dụng các phương tiện và công cụ để đolường hiệu suất của các tiến trình chương trình Điều này có thể
Trang 13bao gồm sử dụng các chỉ số, thước đo, hoặc các công cụ phântích để đánh giá hiệu suất và tiến độ của các tiến trình.
+ Việc đo lường hiệu suất giúp người quản lý hiểu được nơi màcác vấn đề có thể phát sinh và cung cấp dữ liệu cần thiết đểđưa ra các quyết định cải thiện
- Xác định yếu tố ảnh hưởng (Identifying influencing factors):
+ Người quản lý cần xác định các yếu tố ảnh hưởng đến hoạtđộng của các tiến trình chương trình Điều này có thể bao gồmyếu tố nội bộ như quy trình làm việc, tài nguyên, và nhân lực,cũng như yếu tố bên ngoài như điều kiện thị trường, yêu cầucủa khách hàng, hoặc các rủi ro môi trường
+ Việc xác định yếu tố ảnh hưởng giúp người quản lý hiểu rõcác vấn đề và thách thức mà các tiến trình có thể phải đối mặt
và đưa ra các biện pháp phòng ngừa và cải thiện
- Thực hiện các biện pháp cải thiện (Implementing improvement measures):
+ Dựa trên việc đo lường hiệu suất và xác định yếu tố ảnhhưởng, người quản lý cần thực hiện các biện pháp cải thiện đểtối ưu hóa hoạt động của các tiến trình chương trình
+ Các biện pháp cải thiện có thể bao gồm việc điều chỉnh quytrình làm việc, cải thiện sử dụng tài nguyên, đào tạo nhân lực,
áp dụng công nghệ mới, hoặc thay đổi chiến lược kinh doanh Tóm lại, quản lý và giám sát tiến trình chương trình đòi hỏingười quản lý phải có khả năng thiết lập mục tiêu, đo lườnghiệu suất, xác định các yếu tố ảnh hưởng, và thực hiện các biện
Trang 14pháp cải thiện để đảm bảo rằng các tiến trình được thực hiệnmột cách hiệu quả và đạt được mục tiêu đề ra.
2.3 Điều phân phối và phân bổ tài nguyên
Điều phối và phân bổ tài nguyên là một phần quan trọng củaquản lý tiến trình chương trình, và nó liên quan đến việc quản lýcác nguồn lực như bộ nhớ, CPU, băng thông mạng và các tàinguyên khác để đảm bảo rằng các tiến trình hoạt động mộtcách hiệu quả và không gây ra cạnh tranh tài nguyên Dưới đây
là phân tích chi tiết về điều phân phối và phân bổ tài nguyên:
- Điều phối tài nguyên (Resource Coordination):
+ Người quản lý cần điều phối sự sử dụng của các tài nguyêngiữa các tiến trình chương trình để đảm bảo rằng mỗi tiến trình
có đủ tài nguyên để hoạt động một cách hiệu quả
+ Điều này có thể bao gồm việc ưu tiên và phân phối tàinguyên dựa trên mức độ ưu tiên của các tiến trình, hoặc sửdụng các thuật toán điều phối như thuật toán lập lịch để quản lýtài nguyên
- Phân bổ tài nguyên (Resource Allocation):
+ Người quản lý cần phân bổ các tài nguyên như bộ nhớ, CPU,
và băng thông mạng cho mỗi tiến trình chương trình một cáchcân nhắc và hợp lý
Trang 15+ Việc phân bổ tài nguyên đòi hỏi sự đánh giá kỹ lưỡng về yêucầu và nhu cầu của từng tiến trình, cũng như sự đánh đổi giữahiệu suất và tiêu thụ tài nguyên.
- Quản lý cạnh tranh tài nguyên (Managing resource contention):
+ Người quản lý cần giải quyết các vấn đề liên quan đến cạnhtranh tài nguyên giữa các tiến trình chương trình, đặc biệt là khitài nguyên là hữu hạn
+ Điều này có thể bao gồm việc sử dụng các chiến lược lập lịchhoặc thuật toán điều phối để quản lý và giải quyết các xung độttài nguyên
- Tối ưu hóa hiệu suất và sử dụng tài nguyên (Optimizing performance and resource utilization):
+ Người quản lý cần tối ưu hóa hiệu suất của hệ thống bằngcách tối ưu hóa sử dụng tài nguyên Điều này có thể bao gồmviệc điều chỉnh cấu hình hệ thống, tối ưu hóa thuật toán, hoặc
sử dụng các kỹ thuật tăng cường hiệu suất
+ Mục tiêu là đảm bảo rằng mọi tài nguyên được sử dụng mộtcách hiệu quả để đáp ứng nhu cầu của các tiến trình mà khônglàm giảm hiệu suất toàn bộ hệ thống
Tóm lại, điều phối và phân bổ tài nguyên là một phần quantrọng của quản lý tiến trình chương trình, đảm bảo rằng các tiếntrình hoạt động một cách hiệu quả và không gây ra cạnh tranhtài nguyên
Trang 162.4.Xử lí sự cố và tối ưu hiệu suất
Xử lý sự cố và tối ưu hiệu suất là hai khía cạnh quan trọng trongquản lý tiến trình chương trình, và nó liên quan đến việc đánhgiá cách người quản lý giải quyết các sự cố và vấn đề phát sinh,cũng như các biện pháp họ thực hiện để tối ưu hiệu suất củacác tiến trình Dưới đây là phân tích chi tiết về Xử lí sự cố và tối
ưu hiệu suất:
- Đánh giá và phân tích sự cố (Assessment and analysis of issues):
+ Người quản lý cần phải đánh giá và phân tích sự cố và vấn đềphát sinh trong quản lý tiến trình chương trình để xác địnhnguyên nhân và tìm ra giải pháp phù hợp
+ Điều này có thể bao gồm việc thu thập thông tin, phân tích
dữ liệu và tìm kiếm nguyên nhân gốc rễ của sự cố để đưa raquyết định hợp lý
- Giải quyết vấn đề (Problem resolution):
+ Sau khi xác định nguyên nhân của sự cố, người quản lý cầnphải áp dụng các biện pháp để giải quyết vấn đề một cách hiệuquả và nhanh chóng
+ Điều này có thể bao gồm việc thực hiện các biện pháp khắcphục lỗi, điều chỉnh cấu hình và thiết lập, hoặc triển khai cácsửa đổi phần mềm cần thiết