Để giúp các bạn hiểu rõ cấu trúc, thành phần và những chức năngcủa kernel mode mà cụ thể là kernel mode trong Windows 2000 tôi đã quyết địnhchọn đề tài: “PHÂN TÍCH CÁC ĐẶC ĐIỂM VỀ CẤU TR
Trang 1KHOA 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:
II Kiến trúc tầng của Windows 2000……… 6
1 Hạt nhân của hệ điều hành……… 7
2 Cấu trúc của nhân (Kernel mode) hệ điều hành Windows 2000….7
II.1 Các dịch vụ quản lý ( system sevrices):……… 7
II.1.1 I/O manager (quản lý vào/ra)……… 8II.1.2 File system ( file hệ thống)……… 11
Trang 2II.1.3 Object manager ( quản lý đối tượng)…… 11
II.1.4 Process manager ( quản lý tiến trình)…… 12
II.1.5 Memory manager (quản lý bộ nhớ )……… 15
II.1.6 Security manager ( theo dõi bảo mật)………16
II.1.7 Cache manager ( quản lý bộ nhớ cache)……17
II.1.8 PnP manager (quản lý plug and play)………18
II.1.9 Config manager (quản lý cấu hình)……… 20
II.1.10LPC manager ( quản lý LPC)……… 21
II.1.11Win32 GDI……… 22
II.2 Kernel (nhân)………15
II.3 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
III Tài liệu tham khảo………40
Trang 3ĐẶ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ôngthể 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ãngMicrosoft 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ớimá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ó haiphầ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ứcnă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ăngcủa kernel mode mà cụ thể là kernel mode trong Windows 2000 tôi đã quyết địnhchọ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 ưachuộ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ườngmá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
Trang 4MS-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 đờivà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èmvới Windows, chẳng hạn như MS-DOS 7.0 (8/1995) là nền để cho Windows 95khởi động, và MS-DOS 8.0 đi kèm với Windows ME Đây cũng là phiên bản cuốicù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ạyWindows, 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ệtcủ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, CorelDraw, 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ủaWindows, Windows for Workgroup 3.1 ra đời với các chức năng của mạng nganghà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áytheo ứng dụng (API), nhằm bổ sung thêm các thao tác đa nhiệm cho DOS, và đưavà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áytheo đồ hoạ của Macintosh
Windows 9x và Windows NT:
Trang 5Năm 1994, công nghệ NT( New Technology) xuất hiện Các phiên bản đầutiê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ệctrên mạng Windows NT 3.1, 3.5 có giao diện giống như Windows for Workgroup3.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ườidùng , cho phép mỗi người sử dụng có một tài khoản (accout) sử dụng riêng độclập; màn hình desktop… Chương trình quản lý tập tin và thư mục WindowExplorer mạnh mẽ Tích hợp bộ phần mềm Microsoft Office thống lĩnh thị trườngphầ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ìnhWeb 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ôngdụ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ủaWindows 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ácphiê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ácphiê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êmcá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ụngrộ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áytính
Cải tiến kỹ thuật và công nghệ mới so với phiên bản Windows NT:
Trang 6Việc kết hợp Windows 98 và Windows NT5 để tạo nên Windows 2000 làmcho 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ư DOS, POSIX 1.x, OS/2 1.x, Windows 95,98 thông qua kiến trúc phân tầng củamình
MS-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 (Usermode), tầng hạt nhân (kernel mode) và mô hình bộ nhớ ảo Các ứng dụng ở Usermode 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ướitầ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ốngcon 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)
Trang 7Hai lớp phần mềm ở mức thấp nhất , HAL và kernel được viết trong C và trongngô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ữngchương trình điều khiển được viết trong C, hay trong C ++.
1) 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ềuhành gọi là hạt nhân – kernel Kernel chỉ là một phần không lớn (về kích thướccode) của hệ điều hành nhưng nó là một trong số những thành phần được sử dụngnhiề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 đó kernelthườ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
Trang 82) Cấu trúc của nhân(kernel-mode) hệ điều hành Windows 2000 gồm có : 2.1 Các dịch vụ quản lý ( system sevrices):
2.1.1 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ựchiệ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ủachươ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íchhợ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ácthiết bị vào/ra, bao gồm cả chuột, phím, card âm thanh, điện thoại, bộ phận điềukhiển ổ đĩa v.v… Có lẽ quan trọng nhất là hệ thống đồ họa, vì ở đó có hàng nghìnlờ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ọiWin32, 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ù đượccho 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ý trongWindows 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ácnhau
Trang 9API GROUP DESCRIPTION
Window management Create, destroy, and manage windows
Menus Create, destroy, and append to menus and menus barsDialog 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
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ộtthủ 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/racộ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ớinhữ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ònlại của Windows 2000, Microsoft đã định nghĩa một mô hình trình điều khiểnWindow mà người ta hy vọng những bộ điều khiển thiết bị đó sẽ có tính tươngthí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 Trongmụ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 Conformantphả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ý
Trang 105 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ạngmẫ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ênquan đến những gì nó quản lý, như trình điều khiển máy in trong hình 11-30 Mặtkhá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 Haistack 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àiquả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ý bustrê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ựchiệ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
Trang 11Trì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 trongngă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 đangtrê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
2.1.2 File hệ thống:
Ngoài hệ thống tập tin chủ yếu NTFS (New Technology File System) củamình cùng với các hệ thống tập tin khác được Windows NT hỗ trợ, Windows 2000cò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ượngcá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 FAT16chỉ 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 địnhdạng FAT16 khác Với FAT32, kích thước tối đa của một partition có thể lên tới2Terabytes, 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ý đốitượ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ôngviệ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
Trang 12đượ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ể 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
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 Đố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) 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 đượ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 Đố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ý Object directories được sử dụng để
phân loại đối tượng theo từng loại
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
Trang 13mộ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ấutrú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àinguyê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 đanhiệ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ộttiế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ớihạ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ữngtiế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ữngcô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àocủ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ềuhơn một luồng, một danh sách điều khiển (quản lý trong kernel mode), và một truycập phần mã thông báo nó được bảo mật thông tin Đây là những nội dung địnhnghĩ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ànhluô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ỉ trongkhoả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áckhô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ôngbao 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 IDcủ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ư danhmụ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ếntrì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 để
Trang 14hoạ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ôitrường đa nhiệm, giúp các tiến trình trao đổi thông tin và đồng bộ hoá hoạt độngcủ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ếtcủ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 đượcgọ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ếntrì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
Trang 15 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 TrongWindows 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ớitiế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ỳ theotừ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àinguyên tiến trình đang “chiếm giữ” sẽ được giải phóng Vấn đề quyết định giảiphó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ònriê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ạingữ 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ếntrình được công bằng hơn Mức ưu tiên của tiến trình sẽ quyết định nó được thựchiện trước hay sau một tiến trình khác Quản lý tiến trình xây dựng một bản thôngtin tiến trình trong đó có chứa thông tin về độ ưu tiên của tiến trình Trình quản lýtiến trình cung cấp một cơ chế dựa vào độ ưu tiên của tiến trình để quản lý chúng,
và nạp địa chỉ của chúng vào các thanh ghi của CPU để CPU xử lý Đó là chìakhoá để tối đa chương trình ở trong windows 2000
2.1.5 Quản lý bộ nhớ:
Trang 16Quản lý bộ nhớ là một trong những nhiệm vụ quan trọng nhất của hệ điều hành.
Để tăng hiệu suất sử dụng của CPU, các hệ điều hành hiện nay đều hỗ trợ chế độ
đa nhiệm cho nên nhu cầu chia sẻ bộ nhớ giữa các tiến trình khác nhau nảy sinh.Khi có yêu cầu, hệ điều hành phải phân phối vùng nhớ cho các tiến trình Muốnđược như vậy hệ điều hành phải đảm bảo được các yếu tố sau:
- Phương pháp chuyển đổi một địa chỉ tượng trưng trong chương trìnhthành một địa chỉ thực trong bộ nhớ chính
- Phương pháp mở rộng bộ nhớ có sẵn để lưu trữ được nhiều tiến trìnhđồng thời
- Phương pháp để hai tiến trình chia sẻ thông tin trong bộ nhớ
- Phương pháp ngăn chặn các tiến trình xâm nhập đến vùng nhớ đượccấp phát cho các tiến trình khác
Bộ nhớ quản lý bởi Windows 2000 sử dụng kỹ thuật phân trang theo kiếntrúc bộ nhớ vật lý ảo, Win này quản lý tương ứng các trang nhớ ảo với các trangnhớ vật lý do đó nó xây dựng được cơ chế quản lý các tiến trình của các trang nhớkhác nhau dựa vào không gian địa chỉ đồng thời nó cũng điều khiển tương tác giữalời gọi hệ thống với bộ nhớ ảo
Window 2000 có một hệ thống bộ nhớ ảo vô cùng phức tạp Nó có một sốhàm của Win 32 để sử dụng và một phần thi hành cộng với 6 thành phần củakernel để quản lý nó Ở trong đoạn tiếp theo chúng ta có thể thấy những quy tắc cơ
sở, những dạng thức giao tiếp của Win 32, và việc thực thi
Trang 17dụng đó được cho phép truy nhập vào hệ thống Bảo vệ bên trong liên quan đến sựđảm bảo các thao tác, các tiến trình, các thành phần quan trọng của hệ thống, đảmbảo chắc chắn hệ thống máy tính không bị xâm phạm và bảo đảm tính toàn vẹncủa các chương trình và dữ liệu
Việc bảo vệ các hoạt động của hệ thống có thể sử dụng nhiều phương pháp,thủ tục khác nhau, có thể thực hiện bằng sự quản lý ngay ở quá trình cài đặt máytính, phân quyền truy nhập cho từng đối tượng cụ thể, thực hiện việc phân cấp hệthống, dữ liệu và ứng với từng cấp thì quy định quyền truy cập khác nhau Hệ điềuhành Windows 2000 có hai chế đọ chính, đó là chế độ người dùng use mode vàchế độ nhân kernel mode Ứng với mỗi chế độ thì có các quyền truy cập nhất định,các ứng dụng chạy trong chế độ use mode sẽ không được truy cập một số hàmtrong chế độ kernel mode Ví dụ như ứng dụng ntoskrnl.exe không thể chạy được
ở chế độ Win32 mode
2.1.7 Quản lý bộ nhớ cache:
Cache thực chất là một thiết bị lưu trữ, cũng giống như các thiết bị lưu trữkhác trong một máy tính Tuy nhiên, thiết kế và tính năng của nó có một số đặctính khác đáng chú ý, cache được các thanh ghi của CPU truy xuất trực tiếp nên sẽgiảm được thời gian truy xuất dữ liệu một cách đáng kể, nhanh hơn cả bộ nhớ vậtlý(RAM)
Trang 18Công việc của trình quản lý cache là lưu lại các khối file hệ thống mà đãđược sử dụng gần đây trong bộ nhớ để giảm bớt thời gian truy nhập cho bất kỳ sựtruy nhập nào sau này Tuy nhiên không phải các file hệ thống sẽ được lưu lại toàn
bộ Chính vì vậy việc xác định dữ liệu nào cần được lưu lại trong cache là mộtcông việc rất quan trọng Windows 2000 có thể làm việc với tất cả các file hệthống đang sử dụng bao gồm NTFS, FAT32…,và thậm chí cả các file CD-ROM.Cache của Windows 2000 được tổ chức bởi khối bộ nhớ ảo, không phải là bộ nhớvật lý, nhưng chúng có những phương pháp truy xuất như bộ nhớ vật lý
Trình quản lý cache giữ các khối file hệ thống được sử dụng gần đây vàotrong bộ nhớ để tăng tốc độ truy cập chúng trong trường hợp chúng cần được gọilại Công việc của nó là định hình khối nào hầu như là chắc chắn sẽ được gọi lại vàkhối nào không Nó có thể thực hiện được để định cấu hình trong Windows 2000với nhiều hệ thống tập tin Trong trường hợp nào quản lý bộ nhớ cache làm việccho tất cả chúng.Khi một khối cần quản lý bộ nhớ gọi hệ thống tập tin thích hợpvới nó, tập tin lúc đó có thể được lưu vào trong địa chỉ của các tiến trình Quản lý
bộ nhớ cache phải tương tác với quản lý bộ nhớ ảo để cung cấp các tính chắc chắncần thiết Số lượng các trang lưu trữ trong cache là động và chúng có thể thêm một
dữ liệu mới vào cache hay loại bỏ nó đi nếu không cần thiết
2.1.8 Quản lý plug and play:
Plug and play là một kỹ thuật mới, xuất hiện lần đầu tiên trong Windows
NT Kỹ thuật này cho phép một thiết bị ngoại vi vào được kết nối với hệ thống sẽ
tự động cấu hình mà không yêu cầu khởi động lại hay chạy các chương trìnhsetup Bộ điều khiển các thiết bị (thường do hệ điều hành cung cấp) sẽ xác địnhthiết bị được cắm vào cổng nào từ đó cung cấp tài nguyên và trình điều khiển theoyêu cầu của thiết bị đó
Kỹ thuật plug and play là một tiêu chuẩn về phần cứng mới nổi lên trongcông nghệ đối với các bộ phận phần cứng bổ sung thêm trong máy tính, yêu cầucác bộ phận đó có khả năng tự đồng nhất hoá, và đáp ứng yêu cầu trong một loạitiêu chuẩn Tiêu chuẩn plug and play đòi hỏi phần cứng lẫn phần mềm đều phải
Trang 19thực hiện nhiệm vụ của mình Phần cứng đó là BIOS loại plug and play có khảnăng nhận biết được các bộ phận máy của hệ thống ngay khi khởi động máy tính.Sau đó BIOS sẽ duy trì tác động về bất kỳ những thay đổi về cấu hình quan trọngnào mà bạn có thể gây ra, nên nó có thể chuyển những thông tin này cho hệ điềuhành, phần mềm này là một hệ điều hành phù hợp với plug and play Với chuẩnplug and play bạn không cần phải cài đặt các thiết bị hay quan tâm đến các cầu nối
và các mạch chuyển dip, hoặc các driver tương thích với phần mềm đối với cácloại máy in mới nhất
Kiến trúc tiên tiến của windows 98 này được windows 2000 hỗ trợ đầy đủ,trong khi tiền nhiệm windows NT không hỗ trợ Một khi có một thiết bị được cắmvào máy tính, windows 2000 sẽ thông báo và tự động tìm driver thích hợp để càiđặt thiết bị đó vào máy Như USB cắm vào là sử dụng được ngay
Chúng ta tiến hành đi vào tìm hiểu Windows 2000 phát hiện “plug andplay” thiết bị mới như thế nào
Plug and play là một sự kết hợp của BIOS, các thiết bị phần cứng, hệ điềuhành, trình điều khiển thiết bị và tài nguyên hệ thống Trong phần này, bạn sẽ thấyPlug and Play phát hiện phần cứng trên ACPI và hệ thống phi ACPI Ví dụ cácbước mà Windows 2000 thực hiện khi phát hiện một thiết bị USB mới đã đượcthêm vào hệ thống ACPI – compliant Như vậy khi sử dụng một hệ thống máy tínhACPI, Windows 2000 sẽ quản lý Plug and Play không phụ thuộc vào hệ thốngBIOS
Khi bạn them một thiết bị USB mới vào hệ thống máy tính của bạn,các bus USB phát hiện các thành phần mới và thông báo cho cáctrình điều khiển chức năng thay đổi
Trình điều khiển chức năng thông báo cho Plug and Play Manager
có một thiết bị mới đã được them vào hệ thống
Các Plug and Play Manager truy vấn các bus USB để xác đinh vị trícác trình điều khiển cho cây thiết bị hiện tại Một ngắt yêu cầu gói
Trang 20(IRP) được gửi từ các Plug and Play Manager để xác định các thiết
bị hiện có trên bus USB
Khi bus USB hoàn thành IRP, nó được gửi trở lại thông qua thiết bingăn xếp cho Plug and Play Manager, trong đó xác định xem mộtthiết bị đã được them vào hoặc gỡ bỏ
Quản lý Plug and Play có được trông tin về thành phần và sau đó bắtđầu cấu hình nó
Quản lý Plug and Play tìm kiếm thông qua registry để xác định xemthiết bị đã từng cài đặt trên hệ thống
Nếu thiết bị chưa từng cài đặt trên hệ thống thì Plug and PlayManager cập nhật các registry với trông tin về thiết bị
Quản lý Plug and Play tìm và tải các trình điều khiển cho thiết bị nếucó
Quản trị Plug and Play chỉ định tài nguyên hệ thống cần thiết chothiết bị
Quản trị Plug and Play sẽ gửi một IRP để kích hoạt thiết bị
Nếu hệ thống của bạn không hỗ trợ ACPI-compliant, bạn phải vô hiệu hóaPlug and Play hỗ trợ hệ điều hành trong hệ thống của BIOS trước khi cài đặtWindows 2000 Điều này sẽ cho phép các BIOS quản lý cấu hình Plug and Play.Các bước sau đây phác thảo cách Plug and Play được cấu hình bởi hệ thống BIOS
BIOS Plug and Play được cô lập với các thiết bị ISA Card PCI sẽ tựđộng cô lập và không cần sự giúp đỡ từ BIOS
Một bản đồ được xây dựng để xác định các tài nguyên thiết bị không
sử dụng Plug and Play
BIOS xác định các thiết bị đầu vào và đầu ra cần thiết trong quátrình khởi động
Nếu hệ thống xác định rẳng các thiết bị khởi động có một ROM, thì
nó sẽ khởi tạo nó
Các cấu hình còn lại BIOS sử dụng các tài nguyên hệ thống có sẵn