về hệ thống bảo vệ trong hệ điều hành windows BTL nguyen ly he dieu hanh cac nhom TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Vào tháng 1 năm 2002, hệ thống bảo mật của Microsoft đã có những khoảnh khắc lóe sang.Tuy nhiên,thành quả đạt được về bảo mật của Microsoft chưa thể bao phủ toàn bộ các sản phẩm của hãng. Mặc dù, gặp phải một số rắc rối ngay khi mới phát hành, nhưng Windows Server 2003 vẫn được các chuyên gia công nghệ thông tin đánh giá là an toàn hơn nhiều so với tất cả các phiên bản hệ điều hành trước đó của hãng.
Trang 2LỜI NÓI ĐẦU 3CHƯƠNG 1: KHÁI NIỆM CHUNG VỀ HỆ ĐIỀU HÀNH WINDOWS 4
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
Trang 3Ngà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
Trang 4CHƯƠ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
● 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;
Trang 5quyế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ảiphóng khô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ênmạng thô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
● 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 6CHƯƠ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ộtcon 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ứcnă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,
Trang 7tậ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ànhcung 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 đồng
thờ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
Trang 11Hì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:
1 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
Trang 12Tab Performance
Đây là thẻ hiệu suất hiển thị các thông tin về: CPU, RAM, HDD, Wifi, LAN, Bluetooth.
Hì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
Trang 13Thẻ 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ục Startuphoặc trong trang Msconfig Nhưng với Windows 8, nó đã được tích hợp trong TaskManager.
● 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.
Hình 2.8
Tab Users
Hiển thị cho chúng ta có bao nhiêu tài khoản đang truy cập máy, mỗi tài khoản đóđang chạy những ứng dụng và tiến trình nào
Trang 14Hình 2.9 Tab Details
Là 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ạy bao 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 ra
Trang 15Hình 2.11 4.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ônghiện trong 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” Backgroundprocess vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại như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ànhWindows thì background process chứa các chương trình điều khiển hoạt động củamáy tính, các Service Host (nó là một chương trình được thiết kế để chạy các chươngtrình khác và host các dịch vụ của windows Xp, tên đủ nghĩa là service host, do vậytrong process list bạn sẽ thấy nhiều bản thể của service host, và nếu tắt (End task) nó
Trang 16thì 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ười dùng khởi động nhưngvẫn được hiển thị ở process (những ứng dụng này khi tắt đi vẫn không ảnh hưởng đến
Hình 2.12
Hình 2.13
Trang 174.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ó
Hình 2.14 4.5 Not Responding (Bế tắc)
“Not Responding” tức là tiến trình đang bị bế tắc Trong quá trình sử dụng máy
tính, đôi khi bạn gặp phải những trường hợp máy tính bị “đơ”, và trên mỗi cửa sỗ sẽ
có chữ “Not Responding”, lúc này cả chuột lẫn bàn phím đấu không còn tác dụng,
Trang 18cách duy nhất là bạn phải tắt máy tính rồi bật lại đối với máy tính xách tay, nhấn nút
restart đối với máy cây “Not Responding” có thể nhận thấy được nữa là khi ứng dụng đang chạy mà chúng ta không thể tương tác với ứng dụng, nhưng mà chuột và bàn
phím đều có thể tưởng tác được thì ta có thể mở Task Manager lên để tắt tiến trìnhđang chạy
- Để kiểm tra tiến trình nào đang bế tắc thì ta phải mở trình quản lý tác vụ “TaskManager” lên, lúc đó trong nút “Process” ta sẽ thấy được mức sử dụng CPU và RAMlên cao thậm chí lên đến 100% (mức sử dụng tài nguyên của ứng dụng lớn) Nhữngứng dụng sử dụng nhiều CPU và RAM thường sẽ nằm ở đầu
● Điều kiện xay ra bế tắc:
- Loại trừ tương hỗ: có tài nguyên nguy hiểm, tại 1 thời điểm duy nhất 1 tiến trình sửdụng
- Giữ và chờ: tiến trình giữ tài nguyên trong khi chờ đợi
- Không có phân phối lại: tài nguyên do tiến trình nắm giữ không thể phân phối lạitài nguyên cho tiến trình khác trừ khi tiến trình đang giữ tự giải phóng tài nguyên
- Chờ đợi vòng tròn: tồn tại nhóm tiến trình P1, P2, …, Pn sao cho P1 chờ đợi tàinguyên do P2 nắm giữ, P2 chờ đợi tài nguyên do P3 nắm giữ, …, Pn chờ đợi tàinguyên do P1 nắm giữ
● Một vài nguyên nhân:
1 Phần cứng không tương thích
Đây là một trong những nguyên nhân hay xảy ra nhất khi hệ thống ngưng hoạt động,lỗi có thể do một thiết bị phần cứng từ ổ CD, USB, bàn phím, chuột, … Trong một vàitrường hợp, bạn sẽ gặp phải “màn hình xanh chết chóc” (Blue Screen of Death) Lúcnày bạn nên tìm ra thiết bị gây lỗi và làm theo hướng dẫn trên màn hình, như khởiđộng máy ở chế độ Safe Mode (bấm phím F8 khi khởi động, chọn Advanced StartupOptions > Safe Mode), bất hoạt tùy chọn BIOS Memory…
Lưu ý: Đa phần là do thanh RAM bị lỗi, bạn cần tháo thanh RAM ra lau chùi các khecắm, kiểm tra xem còn lỗi không
2 Driver
Đôi khi việc cài driver sai cho phần cứng cũng làm máy hoạt động không ổn định Lúc