Một số khâi niện trong Windows 2000 I.5.3.a Tiến trình (Process) vă tiểu trình (Thread)

Một phần của tài liệu Giáo trình -Lý thuyết hệ điều hành - chương 1 ppsx (Trang 32 - 36)

I.5.3.a.Tiến trình (Process) vă tiểu trình (Thread)

Tiến trình: Người sử dụng khó có thể phđn biệt sự khâc nhau giữa chương trình vă tiến trình, mặc dù nó có câc sự khâc nhau rất cơ bản. Một chương trình lă một dêy tĩnh câc chỉ thị, trong khi đó tiến trình lă nơi chứa một tập câc tăi nguyín được sử dụng bởi câc tiểu trình mă câc tiểu trình năy thực hiện một đoạn mê đặc biệt năo đó của chương trình. Câc tiến trình của Windows 2000 bao gồm:

Một không gian địa chỉ ảo riíng, đó lă một tập câc địa chỉ bộ nhớ ảo mă câc tiến trình có thể sử dụng.

một code vă data ban đầu năo vă nó được ânh xạ văo không gian địa chỉ của tiến trình.

Một danh sâch mở câc tăi nguyín hệ thống khâc nhau mă tiến trình sử dụng như câc semaphore (sự đânh tín hiệu bằng cờ), câc cổng giao tiếp tiến trình, câc file, … , câc tăi nguyín năy được truy cập bởi tất cả câc tiểu trình trong tiến trình.

Một ngữ cảnh an toăn (security context), được gọi lă thẻ truy cập (access token), nó định danh người sử dụng, câc nhóm an toăn, vă câc cấp đặc quyền có liín quan với tiến trình.

Một định danh duy nhất, được gọi lă Process ID.

Có ít nhất một tiểu trình.

 Tiểu trình: Một tiểu trình lă một thực thể trong tiến trình mă hệ điều hănh có thể lập lịch để nó thực hiện, không có nó thì câc tiến trình của nó không thể thực hiện được. Một tiểu trình bao gồm câc thănh phần cơ bản sau:

Nội dung của câc thanh ghi trong CPU miíu tả trạng thâi của processor.

Hai Stack, một cho tiểu trình sử dụng khi thực hiện trong kernel mode vă một cho tiểu trình sử dụng trong user mode.

Một vùng lưu trữ riíng được gọi lă TLS (theard local storage) để sử dụng bởi câc hệ thống Connection, câc thư viện run-time, vă câc

Process Object

Access token

VAD VAD VAD

Thread Thread Thread ...

Access token

Object

Object

Handle Table

Virtual Address Descriptors

DLL.

Một định danh duy nhất, được gọi lă Theard ID.

Đôi khi câc tiểu trình cũng sở hữu một ngữ cảnh an toăn riíng, nó thường được sử dụng bởi câc ứng dụng server đa tiểu trình.

Câc thanh ghi, câc stack vă câc vùng lưu trữ riíng được gọi lă ngữ cảnh của tiểu trình. Bởi vì câc thông tin năy lă khâc nhau cho mỗi kiến trúc mây khâc nhau mă Windows 2000 chạy trín nó. Cấu trúc

ngữ cảnh năy được trả về bởi hăm Win32 API GetThreardContexxt.

Mặc dù câc tiểu trình có một ngữ cảnh thực hiện riíng, nhưng mỗi tiểu trình trong phạm vi một tiến trình đều chia sẻ không gian địa chỉ ảo của tiến trình, điều năy có nghĩa rằng tất cả câc tiểu trình trong một tiến trình có thể ghi đến hoặc đọc từ bộ nhớ của tiểu trình khâc. Câc tiểu trình không thể tham chiếu đến không gian địa chỉ của câc tiến trình khâc, trừ khi tiến trình khâc đó đưa ra một phần không gian địa chỉ riíng của nó như lă một phần bộ nhớ được chia sẻ.

Ngoăi không gian địa chỉ riíng vă một hoặc nhiều tiểu trình, mỗi tiến trình còn có một định danh an toăn vă một danh sâch điều khiển câc đối tượng như lă câc file, câc section bộ nhớ được chia sẻ hoặc một hoặc nhiều đối tượng đồng bộ như lă: câc mutexe, câc event, câc semaphore (sự đânh tín hiệu bằng cờ). Điều năy được minh họa ở hình trín.

I.5.3.b. Bộ nhớ ảo (Virtual Memory) trong windows 2000

Windows 2000 căi đặt một hệ thống bộ nhớ ảo dựa trín một không gian địa chỉ 32 bít. Ba hai bít của địa chỉ ảo năy chuyển thănh 4GB bộ nhớ ảo. Windows 2000 dùng nửa thấp của 4GB năy cấp cho câc tiến trình, nửa còn lại dănh riíng cho hệ điều hănh, phần năy được bảo vệ bởi chính hệ điều hănh. Sự ânh xạ của nửa thấp thay đổi để tương ứng với tiến trình đang thực hiện, nhưng sự thay đổi của nửa cao luôn phù hợp với bộ nhớ ảo của hệ điều hănh.

Nhớ lại rằng, không gian địa chỉ ảo của tiến trình lă một tập câc địa chỉ có sẵn cho câc tiểu trình của tiến trình sử dụng. Bộ nhớ ảo cung cấp một câi nhìn logic của bộ nhớ, nhờ đó nó mở rộng được sức mạnh lưu trữ tiểu trình của bộ nhớ vật lý. Trong quâ trình hoạt động của hệ thống, với sự giúp đỡ của phần cứng, trình biín dịch hoặc câc ânh xạ, của trình quản lý bộ nhớ sẽ chuyển địa chỉ ảo thănh địa chỉ vật lý, nơi dữ liệu được lưu trữ thực tế. Bằng câch điều khiển sự bảo vệ vă sự ânh xạ, hệ điều hănh có thể đảm bảo rằng một tiến trình riíng lẻ không lăm hỏng câc tiểu trình vă không ghi đỉ lín dữ liệu của hệ điều hănh.

Hình vẽ 1.11 sau đđy cho thấy có 3 trang ảo liền kề được ânh xạ thănh 3 trang không liền kề trong bộ nhớ vật lý.

Bộ nhớ ảo

Bộ nhớ V.lý

Hình 1.11: Bộ nhớ ảo vă bộ nhớ Vật lý

Đa số câc hệ thống đều có bộ nhớ vật lý nhỏ hơn tổng số bộ nhớ ảo mă câc tiến trình cần sử dụng khi thực hiín, 2 GB hoặc 3 GB cho mỗi tiến trình. Khi điều năy xảy ra thì trình quản lý bộ nhớ sẽ di chuyển một nội dung của một văi trang bộ nhớ ra đĩa, để lấy không gian trang trống năy sử dụng cho câc tiến trình khâc hoặc cho chính hệ điều hănh. Khi một tiểu trình truy cập đến một trang địa chỉ ảo mă nội dung của trang năy đê bị đưa ra đĩa thì bộ phận quản lý bộ nhớ ảo sẽ nạp thông tin năy trở lại bộ nhớ từ đĩa. Câc ứng dụng không cần thay đổi bất kỳ một điều gì để phù hợp với sự phđn trang, bởi vì phần cứng đê hỗ trợ để cho phĩp trình quản lý bộ nhớ thực hiện sự phđn trang mă không cần hiểu biết hoặc sự trợ giúp của câc tiến trình hoặc câc tiểu trình.

I.5.3.c.Đa xử lý đối xứng (SMP: Symmetric Multiprocessing)

Đa tâc vụ (multitasking) lă một kỹ thuật của hệ điều hănh dùng để chia sẻ một processor đơn cho nhiều tiểu trình đang thực hiện. Khi mây tính có nhiều hơn một processor thì nó có thể thực hiện hai tiểu trình đồng thời. Nhưng ngược lại hệ điều hănh đa tâc vụ chỉ có vẻ như thực hiện đa tiểu trình tại cùng một thời điểm, hệ điều hănh đa xử lý thực tế lăm được điều đó, thực hiện một tiểu trình trín mỗi processor của nó.

Một trong những mục tiíu thiết kế của hệ điều hănh Windows NT lă lăm cho NT chạy tốt trín câc hệ thống mây tính multiprocessor. Windows 2000 cũng lă hệ điều hănh SMP. Nó không có processor master, hệ điều hănh cũng như câc tiểu trình của người sử dụng đều có thể được chia sẻ trín bất kỳ một processor năo. Ngoăi ra, tất cả câc processor cũng chỉ chia sẻ một không gian bộ nhớ riíng. Đđy lă mô hình tương phản với mô hình đa xử lý bất đối xứng (ASMP: asymmetric multiprocisor), trong mô hình năy hệ điều hănh chạy trín một processor riíng, câc processor còn lại chỉ dùng để chạy câc tiểu trình của người sử dụng.

dụng. Con số năy được lưu trữ trong Registry tại khoâ:

HKLM\SYSTEM\CurrentControlSet\Control\Session\Manager\LicensedPro cessor

Để chạy tốt trín một hệ thống SMP thì hệ điều hănh Windows 2000 phải được thiết kế sao cho nó phải tuđn thủ một câch nghiím ngặt câc nguyín tắc sau đđy, đó lă câc nguyín tắc của một hệ điều hănh Multiprocessor:

 Có khả năng chạy mê của hệ điều hănh trín bất kỳ một processor có sẵn năo vă chạy được trín multiprocessor tại cùng một thời điểm.

 Đa tiểu trình được thực hiện trong một tiến trình đơn, mỗi tiểu trình có thể thực hiện đồng thời trín câc processor khâc nhau.

 Cho phĩp câc thănh phần khâc nhau của hệ thống như device driver, server process chạy tốt trín hệ thống multiprocessor.

Một phần của tài liệu Giáo trình -Lý thuyết hệ điều hành - chương 1 ppsx (Trang 32 - 36)