quản lý tiến trình trong hệ đều hành windown ,tìm hiểu quản lý tiến trình trong hệ diều hành windown,hệ điều hành, HĐH, bài tập lớn HĐH uản lý tiến trình trong hệ đều hành windown ,tìm hiểu quản lý tiến trình trong hệ diều hành windown,hệ điều hành, HĐH, bài tập lớn HĐH uản lý tiến trình trong hệ đều hành windown ,tìm hiểu quản lý tiến trình trong hệ diều hành windown,hệ điều hành, HĐH, bài tập lớn HĐH uản lý tiến trình trong hệ đều hành windown ,tìm hiểu quản lý tiến trình trong hệ diều hành windown,hệ điều hành, HĐH, bài tập lớn HĐH uản lý tiến trình trong hệ đều hành windown ,tìm hiểu quản lý tiến trình trong hệ diều hành windown,hệ điều hành, HĐH, bài tập lớn HĐH
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
Bài tập lớn môn: Nguyên lý Hệ Đều Hành
Đề tài Nghiên cứu về quản lú tiến trình trong HĐH window
Giảng viên hưỡng dẫn: Ths Nguyễn Tuấn Tú
Nhóm thực hiện: Nhóm 1
Lớp: ĐH-CNTT3 – K11
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
Bài tiểu luận môn học: Nguyên lý Hệ Điều Hành
Đề tài Nghiên cứu về quản lú tiến trình trong HĐH windown
Giáo viên hướng dẫn: Ths Nguyễn Tuấn Tú
Sinh viên thực hiện: Đào Xuân Điệp
Trần Tuấn Dũng Đào Văn Hải
Lưu Huy Hoàng
Hạ Quang Huy Lớp: DH-CNTT 3 – K11
Trang 3Mục lục
CHƯƠNG 1: KHÁI NIỆM CHUNG VỀ HỆ ĐIỀU HÀNH WINDOWS 4
II Đặc điểm của hệ điều hành windows 5III Chức năng cơ bản của HĐH Windows 5
CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH TRONG HỆ ĐIỀU HÀNH WINDOWS 7
I Khái niệm tiến trình (process) và tiểu trình (thread) 7
III Cấu trúc khối dữ liệu quản lý tiến trình 8
V Cấp phát tài nguyên cho tiến trình 20
23
Trang 4Lời Nói Đầu
Ngày nay, như mọi người biết máy tính là công cụ hữu ích và phổ biến nhất giúpcon người trong nhiều lĩnh vực khác nhau như: công việc, giải trí, quản lý thông tin…Nhưng có một câu hỏi đặt ra là: Làm sao để máy tính hoạt động được? Chắc hẳn mọingười khi sử dụng máy tính đều đã biết về hệ điều hành(HĐH) và chức năng của nó.Vậy HĐH là gì? HĐH là một tập hợp các phần mềm hệ thống điều khiển mọi hoạtđộng của máy tính, có chức năng tạo môi trường giao diện cho người sử dụng, tạomôi trường hoạt động cho các chương trình ứng dụng, quản lý và khai thác hiệu quảcác thiết bị phần cứng Vì vậy, máy tính hoạt động được là nhờ HĐH Mà HĐH ngàynay có nhiều loại và chức năng khác nhau như Windows, Linux,… Nhưng HĐH được
sử dụng phổ biến hiện nay là HĐH Windows Trong HĐH, để các chương trình đượcduy trì hoạt động tại cùng một thời điểm thì chúng được tổ chức thành các tiếntrình(process)
Vậy làm thế nào để quản lý được tiến trình trong HĐH Windows? Để hiểu đượccách thức quản lý đó thì tài tài liệu này sẽ giúp bạn đọc tìm ra được đáp án
Nhóm sinh viên thực hiện !
Trang 5CHƯƠNG 1: KHÁI NIỆM CHUNG VỀ HỆ ĐIỀU HÀNH WINDOWS
I Hệ điều hành là gì?
● Hệ điều hành là một tập hợp các chương trình hệ thống có chức năng tạo môitrường giao diện cho người sử dụng, tạo môi trường hoạt động cho các chương trìnhứng dụng, quản lý và khai thác hiệu quả các thiết bị phần cứng
● HĐH Windows là hệ điều hành của hãng Microsoft sử dụng giao tiếp ngườidùng đồ họa, hay còn gọi là hệ điều hành trực quan
Hình 1.1 Hệ điều hành Windows Hình 1.2 Mối quan hệ giữa hệ điều hành và các lớp trong hệ thống.
II Đặc điểm của hệ điều hành windows
● Hệ thống quản lý ứng dụng theo dạng cửa sổ, mỗi ứng dụng sẽ chạy trên cửa
sổ riêng và có thể cất tạm xuống thanh taskbar khi chưa cần làm việc với cửa sổ đó
● Giao diện đồ họa giúp người dùng xử lý bằng chuột và bàn phím một cách đơngiản
● Là HĐH đa nhiệm nên có khả năng xử lý được nhiều chương trình cùng mộtlúc
III Chức năng cơ bản của HĐH Windows
● Quản lý tiến trình: đảm bảo cho các tiến trình thực hiện được và xử lý đượccác vấn đề của các tiền trình
Trang 6● Quản lý bộ nhớ trong: cấp phát và thu hồi không gian nhớ cho các tiến trình;lưu trữ những thành phần của bộ nhớ đnag sử dụng và do tiền trình nào sử dụng;quyết định tiến trình nào được nạp vào bộ nhớ khi có khả năng; sắp xếp và giải phóngkhông gian nhớ khi cần thiết.
● Quản lý bộ nhớ ngoài: quản lý không gian nhớ tự do, cấp phát không gian nhớ
tự do, cung cấp các khả năng định vị bộ nhớ ngoài, lập lịch cho bộ nhớ ngoài
● Quản lý hệ thống vào/ra: che giấu những đặc thù của các thiết bị vào/ra; tạolập những chương trình để quản lý, điều khiển thiết bị chung và thiết bị đặc biệt
● Quản lý file: tạo và xóa file, thư mục; hỗ trợ các nguyên lí thao tác file và thưmục; ánh xạ các file lên bộ nhớ phụ; ghi dự phòng các file lên bộ nhớ ổn định
● Hệ thống bảo vệ: Giúp hệ thống hoạt động bình thường, bảo vệ các tài nguyên
xử lý chung; phát triển và ngăn chặn các khả năng sai sót của các tiến trình
● Lập mạng: hỗ trợ khả năng quản lý, chia sẻ tài nguyên, truyền thông trên mạngthông qua các thành phần điều khiển giao tiếp mạng
● Hệ thống thông dịch: giúp máy tình hiểu và xử lý được các chỉ thị, các lệnh củangười sử dụng
● Độ tin cậy cao: Mọi hoạt động, thông của hệ điều hành phải chuẩn xác tuyệtđối Chỉ khi nào chắc chắn đúng thì hệ điều hành mới cung cấp thông tin cho người sửdụng
● Tính an toàn: Đảm bảo cho dữ liệu và các chương trình không bị thay đổi ngoài
ý muốn trong mọi trường hợp và mọi chế độ hoạt động
● Tính hiệu quả: Các tài nguyên của hệ thống được khai thác triệt để ngay cả khitài nguyên hạn chế vẫn có thể giải quyết những vấn đề phức tạp Duy trì hoạt độngđồng bộ trong toàn hệ thống
● Tính kế thừa: HĐH mới kế thừa những ưu điểm và khắc phục được nhữngnhược điểm của HĐH cũ
● Tính thuận lợi: Dễ sử dụng, có hiệu quả tùy theo kiến thức và kinh nghiệm củangười dùng
Trang 7CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH TRONG HỆ ĐIỀU HÀNH WINDOWS
I Khái niệm tiến trình (process) và tiểu trình (thread)
● Tiến trình là một chương trình đang xử lý, sở hữu một không gian địa chỉ, một
con trỏ lệnh, tập các thanh ghi và stack Tiến trình có thể cần đến một số tài nguyênnhư CPU, bộ nhớ chính, các tập tin và thiết bị nhâp/xuất
● Một tiến trình có thể tạo ra nhiều tiểu trình, mỗi tiểu trình thực hiện một chức
năng nào đó và thực thi đồng thời cũng bằng cách chia sẻ CPU Các tiểu trình trongcùng một tiến trình dùng chung không gian địa chỉ tiến trình nhưng có con trỏ lệnh,tập các thanh ghi và stack riêng Một tiểu trình cũng có thể tạo lập các tiến trình con,
và nhận các trạng thái khác nhau như một tiến trình
● Các tiến trình chỉ có liên lạc với nhau thông qua các cơ chế do hệ điều hành
cung cấp Các tiểu trình có thể liên lạc với nhau dễ dàng thông qua các biến toàn cụccủa tiến trình
II Các trạng thái của tiến trình
Trạng thái của tiến trình tại mỗi thời điểm được xác định bởi hoạt động hiện thờicủa tiến trình này tại thời điểm đó Trong suốt khoảng thời gian tồn tại trong hệthống, một tiến trình có thể thay đổi trạng thái do rất nhiều nguyên nhân như: chờđợi sự kiện nào đó xảy ra, đợi một thao tác vào/ra hoàn tất, hết thời gian xử lý…Tại mỗi thời điểm, tiến trình có thể nhận một trong các trạng thái sau:
● Khởi tạo (New): Tiến trình đang được tạo lập
● Sẵn sàng (Ready): Tiến trình chờ được cấp phát CPU để xử lý
● Thực hiện (Running): Tiến trình được xử lý
● Đợi (Waiting): Tiến trình phải dừng vì thiếu tài nguyên hoặc chờ một sự kiệnnào đó
● Kết thúc (Halt): Tiến trình đã hoàn tất công việc xử lý
Các trạng thái của tiến trình có thể được biểu diễn qua sơ đồ sau:
Trang 8Hình 2.1 Các trạng thái của một tiến trình
Tại một thời điểm chỉ có một tiến trình có thể nhận trạng thái running trên một bộ
xử lý bất kỳ Trong khi đó, nhiều tiến trình có thể ở trạng thái waiting hay ready.Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái cóthể xảy ra trong các điều kiện sau :
● Tiến trình mới tạo được đưa vào hệ thống
● Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
● Tiến trình kết thúc
● Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyênchưa sẵn sàng; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất
● Bộ điều phối chọn một tiến trình khác để cho xử lý
● Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát; hay sự kiệnhoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất
III Cấu trúc khối dữ liệu quản lý tiến trình
Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối quản lý tiếntrình (process control block -PCB) PCB là một vùng nhớ lưu trữ các thông tin mô tảcho tiến trình
Cấu trúc của khối PCB :
● Định danh tiến trình (Pid-process Id) : Để phân biệt các process.
● Trạng thái tiến trình-procees state: Xác định trạng thái hiện thời.
● Ngữ cảnh tiến trình : Mô tả các tài nguyên ung quan đến tiến trình (hiện có
hoặc đang đợi phân bổ)
Trang 9Hình 2.2 Khối quản lý tiến trình – PCB
● Trạng thái CPU: Con trỏ lệnh, CPU registers; Được lưu trữ khi xảy ra ngắt để có
thể phục hồi trạng thái khi phục vụ ngắt xong
● Thông tin lịch trình CPU-CPU scheduling information
● Thông tin quản lí bộ nhớ: Danh sách khối nhớ đang cấp cho tiến trình
● Tài nguyên sử dụng : Danh sách tài nguyên tiến trình đang sử dụng
● Tài nguyên tạo lập: Danh sách các tài nguyên mà tiến trình yêu cầu
Thông tin giao tiếp: Phản ánh quan hệ giữa tiến trình với tiến trình khác trong hệthống
Thông tin thống kê: Những thông tin hoạt động về tiến trình ( thực hiện, chờ…) Các PCB thường liên kết với một số hàng đợi để điều phối CPU - PCB sẽ quyếtđịnh tiến trình nào sẽ được sử dụng CPU
Hệ điều hành căn cứ vào nội dung của PCB để:
● Phân phối và phân phối lại CPU
● Giải phóng CPU ảo mà không phân phối lại
Trong chế độ đa chương trình, user quan niệm nhiều chương trình thực hiện đồngthời, nhưng khi thực hiện CPU chỉ phục vụ một chương trình tại một thời điểm (CPU thực) các chương trình đang thực hiện đồng thời còn lại sử dụng CPU ảo
CPU ảo là CPU logic được phân phối cho toàn bộ tiến trình
IV Thao tác trên tiến trình
Trang 10Hệ điều hành cung cấp các thao tác chủ yếu sau đây trên một tiến trình :
● tạo lập tiến trình (create)
● kết thúc tiến trình (destroy)
● tạm dừng tiến trình (suspend)
● tái kích hoạt tiến trình (resume)
● thay đổi độ ưu tiên tiến trình
Trên đây là các thao tác chủ yếu trên hệ điều hành, còn đối với hệ điều hànhWindows để thao tác với các tiến trình ta cần phải sử dụng tới trình quản lý tác vụgọi là “Task Manager”
4.1 Task Manager là gì?
Task Manager là một trong những công cụ quan trọng cho người dùng Windows Ứngdụng này cho phép người dùng có thể kiểm tra các ứng dụng, tiến trình (process) vàdịch vụ (service) hiện đang chạy trên máy tính Người dùng có thể sử dụng TaskManager để khởi chạy, dừng các chương trình và tiến trình, ngoài ra Task Managercòn cho cung cấp các thống kê hữu ích về mặt hiệu suất máy tính và mạng Nhưng ởđây ta chỉ tìm hiểu một số mục
Hình 2.3 4.2 Cách truy cập Task Manager.
Hình 2.4
Task Manager có thể gọi bằng một trong bốn cách sau:
Trang 111 Nháy phải chuột vào taskbar và chọn "Task Manager" hoặc nháy phải chuộtvào menu start và chọn "Task Manager".
2 Dùng tổ hợp phím Ctrl+Shift+Esc
3 Trong Windows NT, Windows 2000, and Windows Vista, dùng tổ hợp
phím Ctrl+Alt+Del để mở hộp thoại Windows Security, sau đó chọn "Task
Manager" Ở Windows XP, nhấn trực tiếp Ctrl+Alt+Del hoặc Ctrl+Shift+Esc đểgọi Task Manager, trừ khi bạn tắt Welcome Screen
4 Gọi lệnh "Taskmgr.exe" từ command line, GUI hay là shortcut
4.3 Các tab trong Task Manager
Tab Process
Đây là thẻ quản lý các tiến trình Gồm các Apps đang chạy, các tiến trình chạy nền vàcác tiến trình của Windows Nếu bạn muốn biết thông tin về một Apps nào đó, clickchuột phải vào Apps đó → Expand, ví dụ bạn đang sử dụng Google Chrome nó sẽ chobạn thấy bạn đang duyệt trang web nào …
Nếu một tiến trình đang bị treo (Not Responding) và bạn không thể tắt nó đi Click
chuột phải vào tiến trình đó → End Task.
Ngoài ra, tab này còn hiển thị cho bạn thấy rằng các tiến trình đang chạy đó tốn hết bao nhiêu tài nguyên máy (CPU, RAM, Disk, Network) Vì vậy nếu thấy máy tính chậm chạp bất thường bạn hãy kiểm tra các tiến trình trong đây và đưa ra giải pháp hợp lý nhất
Hình 2.5 Tab Performance
Đây là thẻ hiệu suất hiển thị các thông tin về: CPU, RAM, HDD, Wifi, LAN,
Bluetooth.
Trang 12Hình 2.6 Tab App History
Thẻ này dùng để xem các thông tin về các ứng dụng trên giao diện Modern củamáy
bạn Nếu click chuột phải vào một ứng dụng nào đó và chọn Switch To thì Windows
sẽ tự động chuyển qua ứng dụng đó
Hình 2.7 Tab Startup
Thẻ này dùng để quản lý các ứng dụng sẽ khởi động cùng Windows 8 Ở các phiênbản Windows trước thì việc quản lý các ứng dụng tự khởi động trong thư mụcStartup hoặc trong trang Msconfig Nhưng với Windows 8, nó đã được tích hợp trongTask Manager
Trang 13● Disable: ngăn nó khởi chạy cùng Windows 8 ở những lần khởi động sau.
● Open file location: mở thư mục chứa phần mềm đó.
● Search online: tìm kiếm thông tin về nó trực tuyến.
● Properties: hiển thị thông tin ứng dụng.
Trang 14Là một tính năng nâng cao của tab Process Nó liệt kê tất cả các tiến trình đang chạybao gồm các tiến trình của người sử dụng mở và các tiến trình chạy nền hoặc của Windows Tab này tương tự với tab Process của Task Manager trong Windows 7.
Hình 2.10 Tab Services
Thẻ quản lý các dịch vụ chạy kèm với Windows 8 để giúp máy hoạt động ổn định.Nếu như không cần thiết hoặc bạn không am hiểu nhiều về các Services của Windowsthì không nên thay đổi gì nhiều ở đó Vì nếu không cẩn thận bạn có thể sẽ gây ranhững vấn đề trong quá trình sử dụng Windows sau này
Hình 2.11
Trang 154.3 Process (tiến trình).
Process tab hiện danh sách tất cả các tiến trình đang hoạt động trên hệ thống Baogồm servicer và tiến trình chạy ngầm Tuy nhiên cũng có một vài tiến trình không hiệntrong Task Manager như tiến trình hoạt động của virut
● Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những processdùng để chạy ứng dụng (app) bạn đang dùng Những process khác cũng có thể đượcxem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy.Tại một thời điểm cũng chỉ có vài foreground process mà thôi Những chương trìnhđược người dùng khởi động lên để sử dụng, đối với Windows nó sẽ hiển thị nhữngứng dụng bên dưới thanh taskbar, cũng tương tự như foreground process chung cho
hệ điều hành thì tại một thời điểm cũng chỉ có vài tiến trình được thực thi (ví dụ:word, chorme, …)
● Background process (tạm dịch: tiến trình nền): Background process không xuấthiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnhhưởng đến trải nghiệm sử dụng Tại một thời điểm, có rất nhiều background processđang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”.Background process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lạinhưng không sử dụng thêm tài nguyên phần cứng nào khác Đối với máy tính sử dụng
hệ điều hành Windows thì background process chứa các chương trình điều khiểnhoạt động của máy tính, các Service Host (nó là một chương trình được thiết kế đểchạy các chương trình khác và host các dịch vụ của windows Xp, tên đủ nghĩa làservice host, do vậy trong process list bạn sẽ thấy nhiều bản thể của service host, vànếu tắt (End task) nó thì có nghĩa là một vài chức năng trong hệ thống sẽ không hoạtđộng), các file hệ thống, các ứng dụng được cài đặt lên nhưng không được ngườidùng khởi động nhưng vẫn được hiển thị ở process (những ứng dụng này khi tắt đivẫn không ảnh hưởng đến sự hoạt động của hệ thống)
Ví dụ khi dùng Chrome và bấm phím Home, Chrome trở thành background process vàkhi mở lại Chrome, nó cũng lập tức mở lại tab đang xem
● Khi bạn chọn vào nút “Fewer details” thì Task manager chỉ hiện danh sách các ứng dụng đang chạy (hình 2.12), “More details” để hiển thị các danh sách tất cả các tiến trình (hình 2.13)
Trang 16Hình 2.12
Hình 2.13 4.4 Details.
Tại thẻ Processes trên cửa sổ Task Manager sẽ cung cấp cho bạn chi tiết các ứng
dụng đang chạy Nếu muốn đào sâu hơn về chương trình, bạn click chọn nút Details.
Khi ta nháy chuột phải vào tên tiến trình tại tab Details sẽ thấy một popup – menuhiện lên, nội dung của menu đó như sau (hình 2.14):
● Open file location: mở vị trí của tiến trình trên đĩa
● End task: Dừng tiến trình
● End process tree: Dừng tiến trình đó và tất cả những tiến trình con (là tiến trìnhđược gọi từ tiến trình đó)
● Set priority: Đặt mức ưu tiên của hệ thống cho tiến trình
● Set Affinity: Chọn CPU nào để ứng dụng hoạt động trên đó
● Properties: Hộp thoại thông tin của tệp tiến trình
● Goto service(s): Nhảy tới dịch vụ (những dịch vụ) chạy ứng dụng đó, nếu có