Phân tích tất cả các đặc điểm về cấu trúc và chức năng của kernel mode trong windows 2000

Máy tính càng ngày càng trở thành một công cụ, một phương tiện không thể thiếu của con người, máy tính ngày càng được sử dụng phổ biến đặc biệt là máy tính cá nhân (pc). Một máy tính hoạt động phải dựa trên hệ điều hành nhất định. Có rất nhiều hệ điều hành khác nhau, nhưng hệ điều hành mà đa số tất cả mọi người trên thế giới thường dùng là hệ điều hành Windows của hãng Microsoft. Hệ điều hành là một phần mềm nhằm giúp người sử dụng giao tiếp với máy tính một cách đơn giản và hiệu quả hơn. Chính vì thế hệ điều hành có hai phần chính, phần chế độ dành cho người dùng hay được gọi là use mode và chế độ nhân hay còn gọi là kernel mode để giao tiếp với phần cứng và sử lý một số chức năng quan trọng của hệ thống. Vậy phần cốt yếu trong mỗi hệ điều hành đó chính là kernel mode. Để giúp các bạn hiểu rõ cấu trúc, thành phần và những chức năng của kernel mode mà cụ thể là kernel mode trong Windows 2000 tôi đã quyết định chọn đề tài:

“PHÂN TÍCH CÁC ĐẶC ĐIỂM VỀ CẤU TRÚC VÀ CHỨC NĂNG CỦA KERNEL MODE TRONG WINDOWS 2000”

 

doc40 trang | Chia sẻ: luyenbuizn | Lượt xem: 1324 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Phân tích tất cả các đặc điểm về cấu trúc và chức năng của kernel mode trong windows 2000, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC SƯ PHẠM HUẾ KHOA TIN HỌC ----------------------------- BÀI TẬP LỚN NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI PHÂN TÍCH TẤT CẢ CÁC ĐẶC ĐIỂM VỀ CẤU TRÚC VÀ CHỨC NĂNG CỦA KERNEL MODE TRONG WINDOWS 2000 Giáo viên hướng dẫn: Th.s.GV: Phù Đôn Hậu Sinh viên thực hiện Trần Văn Chương Huế, ngày 22 tháng 11 năm 2010 MỤC LỤC: Lịch sử của Windows……………………………………………..3 Kiến trúc tầng của Windows 2000………………………………. 6 Hạt nhân của hệ điều hành………………………………………...7 Cấu trúc của nhân (Kernel mode) hệ điều hành Windows 2000….7 Các dịch vụ quản lý ( system sevrices):…………………....7 I/O manager (quản lý vào/ra)……………......8 File system ( file hệ thống)………………......11 Object manager ( quản lý đối tượng)…….....11 Process manager ( quản lý tiến trình)……....12 Memory manager (quản lý bộ nhớ )………..15 Security manager ( theo dõi bảo mật)………16 Cache manager ( quản lý bộ nhớ cache)……17 PnP manager (quản lý plug and play)………18 Config manager (quản lý cấu hình)………....20 LPC manager ( quản lý LPC)…………….....21 Win32 GDI……………………………….....22 Kernel (nhân)………………………………………………15 Lớp phần cứng trừu tượng (HAL-Hardware Abstruction Layer)………………………………………………………20 3. Các chức năng chính của kernel trong Windows 2000…………29 3.1 Giao tiếp với bộ đếm chương trình……………………30 3.2 Quản lý bộ nhớ………………………………………..30 3.3 Đồng bộ hoá các đa xử lý…………………………….31 3.4 Lập lịch cho các thread……………………………….32 3.5 Điều khiển các exception của phần cứng……………..39 Tài liệu tham khảo………………………………………………40 ĐẶT VẤN ĐỀ Máy tính càng ngày càng trở thành một công cụ, một phương tiện không thể thiếu của con người, máy tính ngày càng được sử dụng phổ biến đặc biệt là máy tính cá nhân (pc). Một máy tính hoạt động phải dựa trên hệ điều hành nhất định. Có rất nhiều hệ điều hành khác nhau, nhưng hệ điều hành mà đa số tất cả mọi người trên thế giới thường dùng là hệ điều hành Windows của hãng Microsoft. Hệ điều hành là một phần mềm nhằm giúp người sử dụng giao tiếp với máy tính một cách đơn giản và hiệu quả hơn. Chính vì thế hệ điều hành có hai phần chính, phần chế độ dành cho người dùng hay được gọi là use mode và chế độ nhân hay còn gọi là kernel mode để giao tiếp với phần cứng và sử lý một số chức năng quan trọng của hệ thống. Vậy phần cốt yếu trong mỗi hệ điều hành đó chính là kernel mode. Để giúp các bạn hiểu rõ cấu trúc, thành phần và những chức năng của kernel mode mà cụ thể là kernel mode trong Windows 2000 tôi đã quyết định chọn đề tài: “PHÂN TÍCH CÁC ĐẶC ĐIỂM VỀ CẤU TRÚC VÀ CHỨC NĂNG CỦA KERNEL MODE TRONG WINDOWS 2000” Windows 2000 ra đời năm 1999 là một hệ điều hành được nhiều người ưa chuộng. Nó được sử dụng rộng rãi trên các máy desktop lẫn trong việc điều hành và quản trị mạng máy tính, mở ra cánh cửa hoàn toàn mới dẫn vào môi trường máy phục vụ và trạm làm việc, đồng thời giới thiệu những khái niệm quản trị và quản lý hệ thống mang tính cách mạng. I. Lịch sử của Windows: Sự ra đời của công ty Microsoft năm 1975 gắn liền với tên tuổi của Bill Gates, người đứng đầu và sáng lập chính công ty này. Phiên bản DOS đầu tiên ra đời vào tháng 8 năm 1981, với tên chính thức là PC DOS 1.0. Tên gọi MS-DOS chỉ được biết đến kể từ tháng 5 năm 1982 (MS-DOS 1.25). Sau đó, Microsoft lần lượt cho ra đời các phiên bản tiếp theo của MS-DOS song song cùng với PC-DOS. MS-DOS 5.0 ra đời vào tháng 6 năm 1991 bao gồm nhiều tính năng mới như quản lý bộ nhớ (MEMMAKER.EXE), trình soạn thảo văn bản (MS-DOS Editor), ngôn ngữ lập trình QBASIC đã trở nên phổ biển một thời trước khi MS-DOS 6.22 ra đời vào tháng 6 năm 1994. MS-DOS 6.22 cũng là phiên bản DOS cuối cùng được chạy như một hệ điều hành độc lập (standalone version). Sau khi Windows 95 ra đời vào năm 1995, các phiên bản MS-DOS tiếp theo đều được phát hành đi kèm với Windows, chẳng hạn như MS-DOS 7.0 (8/1995) là nền để cho Windows 95 khởi động, và MS-DOS 8.0 đi kèm với Windows ME. Đây cũng là phiên bản cuối cùng của hệ điều hành này. MS-DOS thật sự là một hệ điều hành phổ biến trong suốt thập niên 80, và đầu thập niên 90, cho đến khi Windows 95 ra đời. Cho đến nay, trên các máy chạy Windows, MS-DOS vẫn được tích hợp vào hệ thống bởi một số tính năng ưu việt của nó. Tháng 11/1985, Windows 1.0 ra đời với các chương trình tích hợp như: MS-DOS, Executive, Calender, Cardfile, Notepad, Terminal, Calculator, Clock, Control Panel, PIF (Program Information File) Editer, Clipboard, RAMDrive, Windows Write, Window Paint…. Windows 1.0 khởi đầu cho dòng Windows có giao diện cửa sổ đơn giản. Mùa thu năm 1987, Windows 2.0 ra đời với những khả năng mới, hỗ trợ được nhiều ứng dụng mới (Excel, Word for Windows, Corel Draw, Page Maker,...). Tháng 5/1990, Windows 3.0 ra đời với khả năng đồ hoạ cao hơn. Năm 1992, các phiên bản nâng cấp Windows 3.1 và Windows 3.11 của Windows, Windows for Workgroup 3.1 ra đời với các chức năng của mạng ngang hàng và khả năng chia sẻ tài nguyên trong mạng. Microsoft Windows là một môi trường cửa sổ và giao diện người – máy theo ứng dụng (API), nhằm bổ sung thêm các thao tác đa nhiệm cho DOS, và đưa vào quá trình điện toán theo quy cách IBM một số tính năng giao diện người - máy theo đồ hoạ của Macintosh. Windows 9x và Windows NT: Năm 1994, công nghệ NT( New Technology) xuất hiện. Các phiên bản đầu tiên (Windows NT 3.1, 3.5, 4.0) thích hợp cho các máy chủ và các trạm làm việc trên mạng. Windows NT 3.1, 3.5 có giao diện giống như Windows for Workgroup 3.1 nhưng dựa trên hệ thống tập tin mới NTFS mang tính bảo mật cao hơn. Năm 1995, Windows 95 là hệ điều hành 32 bit đầu tiên của dòng Windows 9x ra đời. Dòng Windows 9x và Windows NT 4x có các đặc điểm nổi bật như: tính đa người dùng , cho phép mỗi người sử dụng có một tài khoản (accout) sử dụng riêng độc lập; màn hình desktop…. Chương trình quản lý tập tin và thư mục Window Explorer mạnh mẽ. Tích hợp bộ phần mềm Microsoft Office thống lĩnh thị trường phần mềm văn phòng. Khả năng hỗ trợ phần cứng và phần mềm mạnh mẽ. Khả năng hỗ trợ mạng cục bộ và Internet mang tính cách mạng cùng với duyệt trình Web Internet Explorer hiệu quả... Với Windows NT, phiên bản 32 bit giao diện đồ họa người - máy thông dụng của Microsoft, nó tạo khả năng đa nhiệm thực sự cho những máy tính cá nhân có cơ sở Intel và các trạm công tác chuyên dụng. Phiên bản này của Windows có thể bỏ qua DOS và có khả năng thâm nhập tốt hơn vào bộ nhớ hệ thống so với Windows 3.1. Microsoft dựa vào Windows 8x và Windows NT làm nền tảng cho các phiên bản Windows sau này như: Windows CE, Windows Me, Windows 2000, Windows 2002, Windows XP Windows Server 2003,...Kể từ Windows 95, các phiên bản của Windows 32 bit liên tục được thay thế và Windows trở thành hệ điều hành thống trị với giao diện người dùng thân thiện, dễ sử dụng. Windows 2000 và các cải tiến kỹ thuật- công nghệ mới: Được xây dựng trên nền tảng bảo mật, tính ổn định của Windows NT, có thêm các đặc điểm dễ sử dụng và tính tương thích cao của Windows 98, Windows 2000 ra đời năm 1999 là hệ điều hành được nhiều người ưa chuộng. Nó được sử dụng rộng rãi trên các máy đơn desktop lẫn trong việc điều hành và quản trị mạng máy tính. Cải tiến kỹ thuật và công nghệ mới so với phiên bản Windows NT: Việc kết hợp Windows 98 và Windows NT5 để tạo nên Windows 2000 làm cho Windows 2000 mạnh mẽ hơn rất nhiều trong toàn bộ lĩnh vực như : Các phương thức xác thực tài khoản và bảo mật dữ liệu . Khả năng tích hợp phần cứng và phần mềm rộng rãi. Khả năng liên kết mạng máy tính mạnh mẽ. Windows 2000 là hệ điều hành phục vụ nhiều mục đích khác nhau với sự hỗ trợ tích hợp hệ thống khách/ chủ (client/server) và mạng ngang hàng (pear-to-pear ). Nó kết hợp chặt chẽ các công nghệ giúp hạ thấp chi phí cho người sử dụng và cung cấp khả năng nâng cấp từ một mạng nhỏ lên thành một mạng lớn. Windows 2000 hỗ trợ nhiều loại ứng dụng chạy trên các môi trường khác như MS-DOS, POSIX 1.x, OS/2 1.x, Windows 95,98 thông qua kiến trúc phân tầng của mình. II. Kiến trúc tầng của Windows 2000: Kiến trúc tầng của Windows 2000 bao gồm tầng người sử dụng (User mode), tầng hạt nhân (kernel mode) và mô hình bộ nhớ ảo. Các ứng dụng ở User mode không thể truy cập trực tiếp tới phần cứng, ngược lại, toàn bộ mã chạy dưới tầng kernel mode có thể truy cập trực tiếp tới phần cứng và bộ nhớ. User mode là môi trường các hệ thống con, trong đó các ứng dụng khác thông qua các hệ thống con này để tích hợp vào kernel mode. Hình sau thể hiện một cách toàn diện cấu trúc bên trong của Windows 2000. Windows 2000 được chia thành 2 thành phần riêng biệt: phần của người sử dụng (user) và phần nhân (kernel). Hai lớp phần mềm ở mức thấp nhất , HAL và kernel được viết trong C và trong ngôn ngữ máy và có một phần là phụ thuộc vào phần cứng. Những phần trên được viết trọn vẹn trong C và gần như là độc lập hoàn toàn với phần cứng. Những chương trình điều khiển được viết trong C, hay trong C ++. Hạt nhân của hệ điều hành: Tất cả các thao tác liên quan đến process, thực hiện bởi một phần của hệ điều hành gọi là hạt nhân – kernel. Kernel chỉ là một phần không lớn (về kích thước code) của hệ điều hành nhưng nó là một trong số những thành phần được sử dụng nhiều nhất trong hệ điều hành. Đây là các phần cốt lõi của chương trình thường trú trong bộ nhớ, và thực hiện hầu hết các nhiệm vụ điều hành chính. Do đó kernel thường luôn được nạp vào bộ nhớ, trong khi các thành phần khác có thể nằm ở bộ nhớ ngoài và chỉ được nạp vào khi cần. Cấu trúc của nhân(kernel-mode) hệ điều hành Windows 2000 gồm có: Các dịch vụ quản lý ( system sevrices): Quản lý vào/ra (I/O manager) Quản lí vào/ra cung cấp một khung để quản lý những thiết bị vào ra và cung cấp các dịch vụ chung cho các thiết bị vào ra. Nó cung cấp phần còn lại của hệ thống với các thiết bị vào ra độc lập, gọi là trình điều khiển thích hợp để thực hiện vào ra vật lý. Nó cũng chứa tất cả các trình điều khiển vào ra. File hệ thống (file systems) chính xác là các trình điểu khiển thiết bị dưới sự điều khiển của chương trình quản lý vào ra. Mục đích của hệ thống vào/ra Windows 2000 là để cung cấp một cơ cấu có tổ chức các kênh truy nhập một cách có hiệu quả các thiết bị vào/ra. Windows 2000 đã được thiết kế với một khung tổng quát giúp các thiết bị mới có thể tích hợp vào máy một cách dễ dàng. 2.1.1.1 Lời gọi hệ giao tiếp lập trình ứng dụng vào/ra .(input/output API Calls) Windows 2000 có hơn 100 lời gọi tách rời, phục vụ cho sự đa dạng của các thiết bị vào/ra, bao gồm cả chuột, phím, card âm thanh, điện thoại, bộ phận điều khiển ổ đĩa v.v…. Có lẽ quan trọng nhất là hệ thống đồ họa, vì ở đó có hàng nghìn lời gọi Win32. Ở đây chúng ta sẽ tiếp tục, đề cập đến phạm trù của một vài lời gọi Win32, mỗi cái có nhiều lời gọi. Một tóm lược ngắn gọn những phạm trù được cho Trong hình 11-29. Tồn tại lời gọi Win32 để tạo ra, làm mất hiệu lực, và quản lý trong Windows. Windows có một số rộng lớn những kiểu và những tùy chọn mà có thể được chỉ rõ. Có hàng trăm chức năng sẵn có để vẽ và tô, hạn chế từ việc cài đặt một điểm đơn đến việc làm cho sự hoạt động của các vùng phức tạp bị chia nhỏ ra. Nhiều lời gọi được cung cấp để vẽ các dòng và những hình hình học cơ bản khác nhau. API GROUP DESCRIPTION Window management Create, destroy, and manage windows Menus Create, destroy, and append to menus and menus bars Dialog boxes Pop up a dialog box and collect infomation Painting and drawing Display points, lines, and geometric tigures Text Display text in some font, size, and color Bitmaps and icons Placoment of bitmaps and icons on the screen Colors and palettes Manage the set of colors available The clipboard Pass information from one application to another Input Get information from the mouse and keyboard Figure 11-29. Some categories of Win32 API calls. 2.1.1.2 Sự thực thi của I/O Chức năng chính của quản lý vào/ra là sẽ tạo ra một khung mà trong đó thiết bị vào/ra khác có thể hoạt động. Cấu trúc cơ bản của khung là thiết lập một thủ tục dùng thiết bị độc lập cho những khía cạnh nhất định của thiết bị vào/ra cộng với sự thiết lập những thiết bị điều khiển đã được nạp vào để giao tiếp với những thiết bị. 2.1.1.3 Những bộ điều khiển thiết bị. Để chắc chắn rằng những bộ điều khiển thiết bị làm việc tốt với phần còn lại của Windows 2000, Microsoft đã định nghĩa một mô hình trình điều khiển Window mà người ta hy vọng những bộ điều khiển thiết bị đó sẽ có tính tương thích cao. Hơn nữa, nó cũng đã cung cấp một bộ công cụ, được thiết kế để giúp đỡ những người viết thủ tục trình điều khiển, bộ phận điều khiển Conformant. Trong mục này chúng ta sẽ tóm tắt khảo sát mô hình này. Trình điều khiển Conformant phải phù hợp với tất cả các yêu cầu sau đây cũng như một vài thứ khác: 1. Kênh truy nhập những yêu cầu vào/ra, mà trong đó là một định dạng chuẩn. 2. Cho phép các thiết bị plug-and-play có thể được tự động được thêm vào hay di chuyển. 3. Cho phép quản lý nguồn điện thích hợp. 4. Là reentrant để sử dụng trên những bộ đa xử lý.. 5. Linh động di chuyển giữa Windows 98 và Windows 2000. Những Yêu cầu vào/ra được chuyển cho những trình điều khiển trong các dạng mẫu của một gói đã được chuẩn hóa gọi là một IRP (Gói Yêu cầu vào/ra). Trình điều khiển phải có khả năng để xử lý các yêu cầu vào ra. Một trình điều khiển trong Windows 2000 có thể làm mọi công việc liên quan đến những gì nó quản lý, như trình điều khiển máy in trong hình 11-30. Mặt khác, trình điều khiển có thể cũng được xếp chồng lên, nghĩa là một yêu cầu có thể xuyên qua một cách có trình tự của trình điều khiển, mỗi phần của công việc. Hai stack cũng đuợc minh hoạ hình 11-30. Một sử dụng phổ biến của trình điều khiển ngăn xếp là ngăn cách ngoài quản lý bus từ chức năng làm việc của các thiết bị điều khiển thực tế. Quản lý bus trên các bus PCI khá phức tạp vì có nhiều loại của nhiều chế độ và các cách thực hiện của các bus và bằng việc phân chia công việc này từ phần chuyên biệt về thiết bị, những người viết trình điều khiển được giải phóng từ việc kiểm soát bus như thế nào. Họ có thể chỉ sử dụng các bộ điều khiển chuẩn trong ngăn xếp của chúng. Trình điều khiển ngăn xếp có khả năng chèn những trình điều khiển lọc vào trong ngăn xếp. Một trình điều khiển lọc thực hiện sự biến đổi nào đó trên dữ liệu đang trên kênh truyền. Chẳng hạn, Một trình điều khiển lọc có thể nén dữ liệu đang trên đường tới đĩa hay mã hóa dữ liệu đang trên đường tới mạng. File hệ thống: Ngoài hệ thống tập tin chủ yếu NTFS (New Technology File System) của mình cùng với các hệ thống tập tin khác được Windows NT hỗ trợ, Windows 2000 còn hỗ trợ thêm hai hệ thống tập tin FAT32 của windows 9x và hệ thống tập tin mã hoá EFS (Encrypting File System). FAT ( File Allocation Table) là một bảng mà hệ thống lưu giữ các thông tin cơ bản nhất của mỗi tập tin. Con số 16 và 32 trong FAT16, FAT32 chỉ số lượng các bit sử dụng để tạo địa chỉ lưu trữ dữ liệu, trong khi NTFS sử dụng đến 64 bits. FAT16 chỉ sử dụng trong DOS, Win 3.1, Win 95 (phiên bản đầu tiên)Win 9x/ME. Các hệ điều hành này không thể đọc hay ghi các tập tin FAT32 hay NTFS. FAT16 chỉ có thể tạo ra 65535 địa chỉ.Kích thước lớn nhất của phân vùng partition có thể được là 2GB đối với hệ thống FAT16. FAT32 được dùng trong Win95 SE, Win 98, Win Me, Win 2000 và Win XP. Các hệ điều hành này có thể đọc và ghi các file FAT16 nếu còn có một partition định dạng FAT16 khác. Với FAT32, kích thước tối đa của một partition có thể lên tới 2Terabytes, còn NTFS là 16 Exabytes! 2.1.3 Quản lý đối tượng: Trình quản lý đối tượng quản lý tất cả các đối tượng được biết đến trong hệ điều hành. Các đối tượng bao gồm các tiến trình, các tuyến đoạn (luồng), tập tin, các thư mục, các tín hiệu, thiết bị vào ra, thời gian, và nhiều thứ khác. Quản lý đối tượng phân chia 1 khối của bộ nhớ ảo từ nhân địa chỉ rỗng khi 1 đối tượng đã được tạo ra và đưa nó về danh sách cây khi đối tượng không được phân chia. Công việc của nó là theo dõi kiểm tra tất cả các đối tượng. Mỗi đối tượng được quản lý bởi trình quản lý đối tượng gồm có 2 phần: Phần tiêu đề và phần nội dung. Tiêu đề chứa thông tin trạng thái của đối tượng được quản lý, trong khi phần nội dung chứa dữ liệu đối tượng và các dịch vị cụ thể. An object header contains certain data, exposed as Properties, such as Object Name (which identifies the object), Object Directory (the category the object belongs to), Security Descriptors (the access rights for an object), Quota Charges (the resource usage information for the object), Open handle count (the number of times a handle, an identifier to the object, has been opened), Open handle list (the list of processes which has a live reference to the object), its Reference count (the number of live references to the object), and the Type (an object that identifies the structure of the object body) of the object.Tiêu đề đối tượng chứa dữ liệu nhất định, thể hiện các tiết, chẳng hạn như Object Name (giúp xác định các đối tượng), Object Directory (thư mục đối tượng), Security Descriptors (quy định quyền truy cập cho một đối tượng), Quota Charges (tài nguyên được đối tượng sử dụng), Open handle count (số lần một sử lý, bộ nhận diện đối tượng đã được mở), Open handle list (danh sách các đối tượng và các tài liệu tham khảo), Reference count ( số lượng các tài liệu tham khảo trực tiếp cho đối tượng), và các Type (xác đinh cấu trúc nội dung một đối tượng) của đối tượng. A Type object contains properties unique to the type of the object as well as static methods that implements the services offered by the object. Một Type đối tượng chứa các thuộc tính duy nhất cho các loại đối tượng cũng như phương pháp thực hiện và các dịch vụ được cung cấp bởi đối tượng. Objects managed by Object Manager must at least provide a predefined set of services: Close (which closes a handle to an object), Duplicate (create another handle to the object with which another process can gain shared access to the object), Query object (gather information about its attributes and properties), Query security (get the security descriptor of the object), Set security (change the security access), and Wait (to synchronize with one or more objects via certain events). Đối tượng quản lý bởi trình quản lý đối tượng ít nhất phải ở cung cấp một bộ dịch vụ được xác định trước: Close (đóng một đối tượng đang được xử lý), Duplicate (tạo và chia sẻ quyền truy cập đến đối tượng), Query object ( thu thập thông tin về các thuộc tính của đối tượng), Query security (mô tả bảo mật của đối tượng), Set security (thay đổi các truy cập bảo mật), và Wait (để đồng bộ hóa với một hoặc nhiều đối tượng thông qua các sự kiện nhất định). Type objects also have some common attributes, including the type name, whether they are to be allocated in non-paged memory, access rights, and synchronization information.Loại đối tượng cũng có một số thuộc tính thông thường, bao gồm tên kiểu, quyền truy cập, và thông tin đồng bộ hóa. Object name is used to give a descriptive identity to an object, to aid in object lookup. được sử dụng để đưa ra một định danh để mô tả một đối tượng, để hỗ trợ tra cứu đối tượng. Object Manager maintains the list of names already assigned to objects being managed, and maps the names to the instances.Đối tượng quản lý duy trì danh sách các tên đã giao cho các đối tượng đang được quản lý.Since most object accesses occur via handles, it is not always necessary to lookup the name to resolve into the object reference. Object directories được sử dụng để phân loại đối tượng theo từng loại.Predefined directories include \?? (device names), \BaseNamedObjects (Mutexes, events, semaphores, waitable timers, and section objects), \Callback (callback functions), \Device , \Drivers , \FileSystem , \KnownDlls , \Nls (language tables), \ObjectTypes (type objects), \RPC Controls ( RPC ports), \Security (security subsystem objects), and \Window (windowing subsystem objects). 2.1.4 Quản lý tiến trình: Windows 2000 hỗ trợ những tiến trình truyền thống, có thể liên lạc và đồng bộ với một cái khác, mỗi tiến trình chứa ít nhất một luồng, mỗi luồng chứa ít nhất một cấu trúc, hơn nữa những tiến trình có thể làm chủ những công việc cho mục đích quản lý những tài nguyên chính xác. Đồng thời những tiến trình, luồng và cấu trúc cung cấp một công cụ thiết lập tổng quát cho quản lý song song và chia sẻ tài nguyên, cùng trên đơn vị tiến trình( thiết bị CPU đơn) và trên những tiến trình đa nhiệm (thiết bị CPU đa nhiệm). Một công việc trong Windows 2000 tập hợp của một hoặc nhiều hơn một tiến trình mà được quản lý như một đơn vị, với mỗi tiến trình sẽ có chỉ tiêu và giới hạn tài nguyên nhất định, chỉ tiêu bao gồm những mục như số lớn nhất của những tiến trình, và cách sử dụng bộ nhớ lớn nhất, ngoài ra trước khi xử lý toàn bộ những công việc có thể cũng chịu sự hạn chế bảo mật trên những tiến trình. Vì thế hệ điều hành hiện hữu trong mỗi địa chỉ tiến trình, nhưng bảo vệ từ sự can thiệp vào của bộ nhớ quản lý đơn vị phần cứng. Một tiến trình có một ID, một hoặc nhiều hơn một luồng, một danh sách điều khiển (quản lý trong kernel mode), và một truy cập phần mã thông báo nó được bảo mật thông tin. Đây là những nội dung định nghĩa ban đầu của không gian địa chỉ và những tạo lập đầu tiên cho luồng. Một luồng tạo thành cơ sở cho việc lập lịch của CPU nhưng hệ điều hành luôn chọn một luồng để thực thi, không phải là một tiến trình. Do đó, mọi luồng đều có một trong những trạng thái(sẵn sàng, thực thi, bị khóa,…). Một tiến trình có thể được tự động tạo ra bởi một lời gọi trong Win32 mà chỉ rõ địa chỉ trong khoảng thời gian gửi kèm theo không gian địa chỉ của tiến trình tại thời điểm này nó bắt đầu được thực thi. Mỗi luồng có một ID của luồng, chúng được cấp từ các không gian tương tự nhau như các ID của tiến trình, vì vậy một ID có thể không bao giờ được sử dụng cho cả tiến trình và luồng tại cùng một thời điểm. Các ID của tiến trình và luồng là bội của bốn vì vậy chúng có thể được sử dụng như danh mục byte vào trong bảng kernel, giống như những đối tượng khác. Trong thời gian bắt đầu được thành lập hay trong quá trình hoạt động, tiến trình cần có một số các tài nguyên như: CPU, bộ nhớ, các thiết bị nhập/xuất để hoạt động. Sau khi kết thúc tiến trình, các tài nguyên này sẽ được trả lại cho hệ điều hành để sử dụng cho các tiến trình tiếp theo. Ngoài ra hệ điều hành còn phải đảm bảo được việc phân phối thời gian sử dụng CPU cho mỗi tiến trình trong môi trường đa nhiệm, giúp các tiến trình trao đổi thông tin và đồng bộ hoá hoạt động của chúng. Các hệ thống quản lý các tiến trình phải có khả năng thực hiện các tác vụ bất kỳ cần thiết cho các tiến trình hoặc phục vụ cho các tiến trình. Các tác vụ này bao gồm: Tạo lập một tiến trình. Huỷ bỏ một tiến trình. Trì hoãn một tiến trình. Tái kích hoạt một tiến trình. Thay đổi mức độ ưu tiên của một tiến trình. Khoá một tiến trình. Đánh thức một tiến trình. Gửi một tiến trình đi. Giúp một tiến trình có khả năng liên lạc với một tiến trình khác. Tạo lập một tiến trình bao gồm các việc sau: Đặt tên cho một tiến trình. Chèn thêm một tiến trình vào danh sách các tiến trình đã được biết của hệ thống. Xác định mức độ ưu tiên ban đầu của tiến trình. Tạo lập khối điều khiển tiến trình. Phân phát các tài nguyên ban đầu cho tiến trình. Mỗi tiến trình có thể tạo ra một tiến trình mới. Nếu như vậy, tiến trình sản sinh ra tiến trình khác được gọi là tiến trình cha, còn tiến trình được sản sinh ra được gọi là tiến trình con. Một tiến trình con được sinh ra từ một tiến trình cha, một tiến trình cha có thể có nhiều tiến trình con, tiến trình cha kết thúc khi tiến trình con đã kết thúc. Huỷ bỏ một tiến trình có nghĩa là huỷ bỏ nó hoàn toàn ra khỏi hệ thống. Các tài nguyên của tiến trình này được trả lại cho hệ thống. Việc huỷ bỏ tiến trình sẽ phức tạp hơn nếu tiến trình đó đã sản sinh ra các tiến trình con khác. Trong Windows 2000 các tiến trình con sẽ bị tự động huỷ bỏ nếu tiến trình cha của chúng bị huỷ, còn một số hệ thống khác thì các tiến trình con được tiến hành độc lập với tiến trình cha và việc huỷ bỏ tiến trình cha không ảnh hưởng gì đến việc huỷ bỏ tiến trình con. Một tiến trình bị trì hoãn sẽ tiếp tục tiến hành khi chúng được tái kích hoạt. Việc trì hoãn là một tác vụ quan trọng và được thi hành bằng nhiều cách tuỳ theo từng hệ thống. Việc trì hoãn thường tồn tại trong một khoảng thời gian ngắn. Chúng thường được hệ thống thực hiện để tạm thời xoá đi các tiến trình nào đó nhằm giảm tải trong các quá trình nạp. Đối với việc trì hoãn lâu dài, nguồn tài nguyên tiến trình đang “chiếm giữ” sẽ được giải phóng. Vấn đề quyết định giải phóng tài nguyên này phụ thuộc rất nhiều vào tình trạng của mỗi tài nguyên. Còn riêng bộ nhớ sơ cấp sẽ được giải phóng ngay khi một tiến trình được trì hoãn. Tái kích hoạt một tiến trình là làm cho tiến trình đó bắt đầu hoạt động lại từ thời điểm nó bị trì hoãn. Khi được tái kích hoạt, tiến trình sẽ được nạp lại ngữ cảnh của nó khi nó bị trì hoãn. Nó sẽ được cấp đầy đủ tài nguyên và tiếp tục thực hiện. Thay đổi mức độ ưu tiên của một tiến trình thường là bổ xung giá trị mức ưu tiên trong khối điều khiển của tiến trình. Thay đổi mức ưu tiên của tiến trình làm cho mức độ sử dụng CPU của các tiến trì

Các file đính kèm theo tài liệu này:

  • docbai tap lon hdh kernel mode.doc
Tài liệu liên quan