Mô đun hệ điều hành windows server ppt

1

Trần Đại Dương

Hướng dẫn đơn giản về
Hệ Điều Hành

Larry Miller

2

Mục lục

Mục lục
Lời giới thiệu
Thế nào là một Hệ Điều Hành?
Lịch sử Hệ Điều Hành
Hệ Điều Hành làm được những gì?
Định nghĩa các tiến trình

Kết luận

3

Lời giới thiệu

Cơ thể của chúng ta không thể vận hành mà không có não. Não ra lệnh cho các bộ phận khác
nhau của cơ thể cách để làm việc và tương tác. Không có não, chúng ta không có khả năng
để làm bất kỳ điều gì. Hệ điều hành giống như bộ não của máy tính. Bạn có một nhóm phần
cứng giống như tháp CPU, màn hình và bàn phím nhưng không có một CPU thì chúng ta
không thể làm được bất cứ điều gì trong khi nguồn bật và mở máy. Hệ điều hành tổ chức
các tập tin và để cho phần cứng biết nó nên làm gì.
Vào những buổi sơ khai của máy tính, chỉ có một Hệ Điều Hành. Khi máy tính tiến triển , OS
đã chuyển hướng vào MS-DOS, nhưng các máy tính thực sự không có khả năng làm được
nhiều mà không có phần mềm. Sau đó Bill Gates đã đẩy mạnh vấn đề này. Với sự thành lập
của Microsoft, Hệ điều hành máy tính trở thành người làm chủ và đưa máy tính đến với các
cấp độ mới về chức năng và công nghệ. Mặc dù thương hiệu của các hệ điều hành còn ít,
chúng thực hiện các tác vụ khác nhau phù thuộc vào các yêu cầu của người dùng máy tính.
Trong khi hệ điều hành nổi trội hiện nay là Microsoft Windows, các loại hệ điều hành khác
nhau cung cấp các tính năng khác nhau. Bao gồm Linux, Unix và OS X.
Trong kỷ nguyên công nghệ của chúng ta, có nhiều hơn một hệ điều hành trong một máy
tính. Nhiều điện thoại di động tinh vi có hệ điều hành riêng của chúng và các điểm truy cập
không giây cũng có hệ điều hành riêng để cung cấp internet không giây tới các khách hàng.
Trong thực tế, máy tính trong một điện thoại di động ngày nay thì mạnh hơn máy tính 20
năm trước đây. Như bạn có thể thấy, công nghệ hệ điều hành đã và đang tiếp tục tiến triển.
Có vẻ Microsoft luôn đưa ra một hệ điều hành mới hơn và tốt hơn mà làm cho mọi người tự
hỏi: hệ thống mà họ đang sử dụng có thực sự là tốt nhất? Nó có thể bị gây lầm lẫn. Nhưng
điều đó là không thể! Trong các trang của cuốn sách này, chúng ta sẽ đi sâu khám phá hệ
điều hành . Bạn sẽ học về cách chúng làm việc và những hệ thống cụ thể mà chúng có thể

đáp ứng. Cuối cùng, việc lựa chọn OS tùy thuộc vào sở thích nhưng nó giúp bạn thực sự
nhận được khi chọn một hệ điều hành.

4

Thế nào là một hệ điều hành?

Hệ điều hành là một tập hợp các chương trình máy tính quản lý tài nguyên phần cứng và
phần mềm của máy tính. Hệ điều hành vận hành các thiết bị điện tử để đáp ứng hợp lý các
lệnh được chấp thuận bởi hệ thống.
Ở nền tảng của mọi phần mềm hệ thống, một hệ điều hành thực hiện các tác vụ cơ bản như
kiểm soát và cấp phát bộ nhớ, ưu tiên các yêu cầu hệ thống, kiểm soát các thiết bị nhập/
xuất, tạo điều kiện thuận lợi cho giao tiếp mạng và quản lý các tập tin. Hệ điều hành còn có
thể cung cấp giao diện đồ hoạ với những tính năng cao cấp hơn. Thực chất, hệ điều hành
hình thành một nền tảng cho các phần mềm hệ thống khác cũng như các phần mềm ứng
dụng.
Hệ điều hành là chương trình quan trọng nhất chạy trên máy tính. Không có hệ điều hành
thì máy tính của bạn sẽ không làm việc. Nó sẽ không có khả năng để xử lý các yêu cầu như
in, tính toán đơn giản hay bất cứ chức năng nào khác. OS thực sự là bộ não vận hành các
thiết bị.
Đối với các hệ thống lớn, hệ điều hành có trách nhiệm lớn hơn so với một PC. Trong các hệ
thống lớn, hệ điều hành là giống như một cảnh sát giao thông, đảm bảo cho những người
dùng và các chương trình khác nhau đang chạy cùng một lúc trên những hệ thống khác
nhau không can thiệp vào nhau. Nó còn hoạt động như một bộ phận an ninh, đảm bảo
những người dùng trái phép thì không thể truy cập vào hệ thống.
Các hệ điều hành máy tính được chia làm bốn loại, đó là:
 Nhiều người dùng: cho phép hai hay nhiều người dùng chạy các chương trình cùng
một lúc. Một số hệ điều hành cho phép hàng trăm hay thậm chí hàng nghìn người
cùng sử dụng.

 Đa xử lý: hỗ trợ chạy một chương trình trên nhiều hơn một CPU.
 Đa nhiệm: cho phép nhiều hơn một chương trình chạy đồng thời.
 Đa luồng: cho phép các phần khác nhau của một chương trình chạy đồng thời.
 Thời gian thực: phản ứng đầu vào ngay lập tức. Các hệ điều hành đa dụng như
Windows và UNIX không phải là thời gian thực.
Các hệ điều hành cung cấp một nền tảng phần mềm trên cùng cho các chương trình khác có
thể chạy. Các chương trình ứng dụng phải được viết để chạy trên một hệ điều hành cụ thể.
Lựa chọn hệ điều hành của bạn nghĩa là xác định một phạm vi lớn các ứng dụng bạn có thể
chạy. Đối với các PC, hệ điều hành phổ biến nhất là DOS, OS/2 và Windows, nhưng một số
khác cũng có thể sử dụng, như Linux.
Trong bất kỳ thiết bị nào có hệ điều hành, thường có một cách để làm thay đổi cách các thiết
bị làm việc. Đó không hề là một sự sung sướng ngẫu nhiên; một trong những lý do các hệ
điều hành được làm bằng “mã linh động” thay vì các mạch vật lý lâu dài là vì để chúng có thể
được thay đổi hoặc sửa đổi mà không phải bỏ đi toàn bộ thiết bị. Đối với người dùng máy
5

tính để bàn, điều này có nghĩa là bạn có thể thêm một bản cập nhật bảo mật mới, bản vá hệ
thống, ứng dụng mới hay thậm chí một OS mới hoàn toàn, bạn không cần phải loại bỏ máy
tính của bạn và bắt đầu lại với một máy tính mới khi bạn cần thay đổi. Miễn là bạn hiểu một
hệ điều hành làm việc như thế nào và biết cách tiếp cận được nó, có thể trong nhiều trường
trường hợp bạn cần thay đổi một số cách hành xử. Và, chiếc máy tính của bạn giống như cái
điện thoại di động của bạn vậy.
Thực chất, khi bạn bật máy tính, chương trình đầu tiên là một tập hợp các lệnh lưu trong
ROM của máy tính. Các lệnh này kiểm tra phần cứng hệ thống để đảm bảo mọi thứ đang
hoạt động đúng. “Tự kiểm tra khởi động” này kiểm tra lỗi của CPU, bộ nhớ và hệ thống I/O
cơ bản( BIOS) và lưu trữ kết quả ở một vị trí bộ nhớ đặc biệt. Khi kiểm tra đã hoàn thành,
phần mềm nạp vào ROM( đôi khi gọi là BIOS hay firmware) sẽ bắt đầu kích hoạt các ổ đĩa
của máy tính. Trong hầu hết các máy tính hiện đại, khi máy tính kích hoạt ổ đĩa cứng( HDD),
nó tìm thấy phần đầu tiên của hệ điều hành: trình nạp khởi động.
“Trình nạp khởi động” là một chương trình nhỏ có một chức năng duy nhất: nạp hệ điều

hành vào bộ nhớ và cho phép bắt đầu thao tác. Trong hình thức cơ bản nhất, trình nạp khởi
động thiết lập các driver và điều khiển các phân hệ (hệ thống con) phần cứng khác nhau của
máy tính. Nó thiết lập các bộ phận của bộ nhớ( nơi lưu hệ điều hành), thông tin người dùng
và các ứng dụng. Nó tạo lập các cấu trúc dữ liệu để giữ vô số các tín hiệu, các cờ và các cờ
hiệu được dùng để giao tiếp bên trong và giữa các phân hệ và các ứng dụng của máy tính.
Sau đó chuyển kiểm soát của máy tính qua đệ điều hành.

6

Lịch sử hệ điều hành

Các máy tính sơ khai không có hệ điều hành. Đầu những năm 1960, các nhà cung cấp máy
tính thương mại cung cấp các công cụ khá bao quát cho hợp lý hoá sự phát truyển, lập kế
hoạch, và thực hiện các công việc trên các hệ thống xử lý bó.
Vào những năm 1960, một số khái niệm được phát truyển đã đẩy sự phát truyển của các hệ
điều hành. IBM System 360 đã sản xuất một họ máy tính lớn phục vụ người tiêu dùng với
sức mạnh và giá cả khác nhau. Một hệ điều hành đơn giản đã được lên kế hoạch cho các máy
tính này thay vì phát triển các chương trình chung cho mỗi mô hình cá nhân. Khái niệm của
hệ điều hành đơn giản này phù hợp với toàn bộ dòng sản phẩm, điều này rất quan trọng cho
sự thành công của System 360. Trong thực tế, các hệ điều hành máy tính lớn hiện giờ của
IBM là họ hàng xa của hệ thống gốc này. Ưu điểm ở đây là các ứng dụng viết cho hệ OS 360
vẫn có thể được chạy trên các máy móc hiện đại. OS của System 360 cũng chứa một số tiến
bộ quan trọng khác, ảnh hưởng đến các máy tính ngày nay: sự phát truyển của một thiết bị
đĩa cứng lưu trữ cố định mà IBM gọi là DASD.
Một sự phát truyển then chốt thứ hai là là khái niệm kỹ thuật phân thời (chia sẻ thời gian).
Kỹ thuật phân thời liên quan tới chia sẻ tài nguyên của các máy tính đắt tiền cho nhiều
người dùng máy tính tương tác theo “thời gian thực” với hệ thống. Những điều đó thực chất
có nghĩa là tất cả người dùng có ảo giác độc quyền truy cập vào máy. Nổi tiếng nhất của hệ
thống phân thời là Multics. Multics là nguồn cảm hứng cho một số hệ điều hành phát truyển

trong những năm 1970. Đáng lưu ý nhất là hệ thống Unix. Một số hệ điều hành máy tính
mini thương mại phổ biến là VMS.
Các máy vi tính đầu tiên không có khả năng hay hữu ích cho các hệ điều hành tinh vi mà đã
được phát truyển trước đây cho các máy tính lớn và mini. Các hệ điều hành nhỏ hơn được
phát triển và thường được nạp từ ROM và được gọi là các bộ giám sát.
Một nổi bật của hệ điều hành trên nền đĩa cứng trước đây là CP/M được hỗ trợ trên nhiều
các máy vi tính sơ khai và phần lớn đã được nhân bản khi MS-DOS được tạo ra. MS-DOS trở
thành cực kỳ phổ biến như là hệ điều hành được lựa chọn cho IBM PC.
Các hệ điều hành liên tiếp bắt nguồn từ MS-DOS của Microsoft- một trong những công ty có
lợi nhuận lớn nhất trên thế giới với sự phát truyển của Windows. Giải pháp thay thế duy
nhất trong suốt những năm 1980 là Mac OS đã được gắn liền mật thiết với máy tính Apple
McIntoch. Những năm 1990, máy vi tính đã phát truyển đến mức độ đã trở nên ngày càng
được mong muốn. Mọi người muốn có một máy tính gia đình. Microsoft đã đưa ra với
Windows 95 và 98, nhưng mọi người khao khát năng suất hơn và nhiều tuỳ chọn hơn. Phản
ứng của Microsoft tới thay đổi này là phát truyển Windows NT phục vụ như là cơ sở cho các
dòng hệ điều hành máy tính để bàn của Microsoft đã phát hành vào năm 2001. Apple cũng
đã xây dựng lại hệ điều hành của riêng họ dựa trên lõi Unix, đó là Mac OS X, và cũng đã phát
hành vào năm 2001 và phát truyển thành một trong những kình địch lớn nhất của giới
kinh doanh công nghệ. Ngày nay, các hệ điều hành của chúng ta thường có giao diện người
dùng đồ hoạ( GUI) dùng thiết bị trỏ như là chuột của bút trỏ cho đầu vào bổ sung tới bàn
7

phím. Các hệ thống cũ hơn chúng( thực sự cũ) thì sử dụng dấu nhắc lệnh cho các lệnh được
nhập vào qua bàn phím.
Cả hai mô hình được tập trung vào một “vỏ” mà chấp nhận và xử lý các lệnh từ người dùng.
Người dùng có thể được hỏi để chọn một nút hay gõ một lệnh khi có dấu nhắc lệnh trên
màn hình.
Cho đến nay, hệ điều hành phổ biến nhất được sử dụng là Windows XP (nhưng Window 7
đang vươn lên mạnh mẽ) nhưng Microsoft đã vừa phát hành dự án mới nhất của Windows
– Windows 8. Linux cũng là một hệ điều hành phổ biến như Unix.

Xem xét sự bùng nổ của thị trường công nghệ, nó thực sự là một bất ngờ, rằng có rất ít hệ
điều hành tồn tại. Đó thực sự không là lời giải thích dễ dàng cho điều này, nhưng nó là một
thực tế. Nó sẽ chỉ có vẻ logic với tất cả các nhà sản xuất máy tính khác nhau ra khỏi đó, sẽ có
nhiều lựa chọn một hệ điều hành hơn những gì có. Nó chắc chắn là bất thường trong thế
giới của công nghệ máy tính. Vì vậy, chính xác hệ điều hành làm gì? Kể từ khi chúng thực sự
là “bộ não” của máy tính, chúng làm khá hơn một chút.

8

Hệ điều hành làm được những gì?

Là người dùng, bạn thường tương tác với hệ điều hành thông qua một bộ lệnh. Ví dụ, hệ
điều hành DOS chứa các lệnh như COPY và RENAME cho sao chép tập tin và đổi tên của tập
tin tương ứng. Các lệnh được chấp nhận và được thi hành bởi một phần của hệ điều hành
gọi là bộ xử lý lệnh hay bộ thông dịch dòng lệnh. GUI cho phép bạn nhập lệnh bằng cách trỏ
và nhấp chuột vào đối tượng xuất hiện trên màn hình. Nhưng điều đó thực sự không giải
quyết theo những cách khác nhau mà hệ điều hành làm cho máy tính của bạn làm việc dễ
dàng và hiệu quả hơn. Năng lực cụ thể của chúng là những gì làm cho chúng giúp máy tính
của bạn hoạt động như một thiết bị thân thiện với người dùng. Hãy quan sát cụ thể vào
những gì một hệ điều hành làm.
Quản lý tiến trình
Một chương trình chạy trên máy tính dù nó là một dịch vụ nền hay một ứng dụng thì đều
được gọi là một tiến trình. Miễn là kiến trúc Von Neumann được dùng để xây dựng một máy
tính, chỉ một tiến trình trên mỗi CPU có thể được chạy tại một thời điểm. Các hệ điều hành
cũ hơn như MS-DOS không cố gắng để vượt qua giới hạn này với ngoại trừ xử lý ngắt và chỉ
một tiến trình có thể được chạy dưới chúng. Các hệ điều hành máy tính lớn đã có khả năng
đa nhiệm từ những năm đầu 1960. Các hệ điều hành hiện đại cho phép thực hiện đồng thời
nhiều tiến trình một lúc thông qua đa nhiệm ngay cả với một CPU.
Quản lý tiến trình là một cách phân phát của hệ điều hành để chạy nhiều tiến trình cùng một

lúc. Vì rằng hầu hết các máy tính chứa một bộ xử lý với một lõi, đa nhiệm được làm bằng
cách chỉ đơn giản là chuyển đổi nhanh chóng các tiến trình. Tuỳ thuộc vào hệ điều hành, khi
nhiều hơn một tiến trình chạy, hoặc là mỗi khoảng thời gian sẽ trở nên nhỏ hơn hoặc chúng
sẽ trì hoãn lâu hơn trước khi mỗi tiến trình đưa ra thay đổi để chạy. Quản lý tiến trình liên
quan đến tính toán và phân phối thời gian CPU cũng như các tài nguyên khác. Hầu hết các
hệ điều hành cho phép một tiến trình được gán một quyền ưu tiên ảnh hưởng phân phối
thời gian CPU của nó. Các “hệ điều hành tương tác” cũng sử dụng một số mức độ phản hồi,
trong đó tác vụ mà người dùng đang làm việc nhận được ưu tiên cao hơn.
Các tiến trình điều khiển ngắt sẽ chạy bình thường ở một ưu tiên rất cao. Trong nhiều hệ
thống, có một tiến trình nền như System Idle Process( tiến trình nhàn rỗi hệ thống) trong
Windows sẽ chạy khi không có tiến trình nào khác đang chờ CPU.
Nó là khuynh hướng để nghĩ một tiến trình như một ứng dụng, nhưng điều đó cho một hình
ảnh không đầy đủ của cách tiến trình liên quan đến hệ điều hành và phần cứng. Ứng dụng
bạn thấy( trình xử lý văn bản, bảng tính hoặc trò chơi) thực sự là một tiến trình, nhưng ứng
dụng đó có thể khiến một vài tiến trình khác bắt đầu các tác vụ như giao tiếp với các thiết bị
khác hay với các máy tính khác.
Cũng có nhiều tiến trình chạy mà không cho bạn bằng chứng thuyết phục rằng chúng đã
từng tồn tại. Ví dụ, Windows XP và Unix có thể có hàng chục tiến trình nền đang chạy để xử
lý mạng, quản lý bộ nhớ, quản lý ổ đĩa, kiểm tra virus….
9

Một tiến trình, sau đó là phần mềm, thực hiện một số hành động và có thể được kiểm soát
bởi người dùng hoặc các ứng dụng khác hay bởi hệ điều hành. Nó là tiến trình chứ không
phải là ứng dụng, hệ điều hành kiểm soát và lên lịch biểu cho việc thi thành bởi CPU. Trong
một hệ thống đơn nhiệm, lịch biểu thì đơn giản. Hệ điều hành cho phép ứng dụng bắt đầu
chạy, trì hoãn việc thi hành chỉ đủ dài để đối phó với các ngắt và đầu vào người dùng.
Ngắt là tín hiệu đặc biệt được gửi bởi phần cứng hoặc phần mềm tới CPU. Nếu một số bộ
phận của máy tính đột ngột dơ tay lên yêu cầu sự chú ý của CPU trong một cuộc họp sinh
động (lâu lâu cũng phải văn vẻ một chút). Đôi khi hệ điều hành sẽ lên lịch biểu quyền ưu
tiên của các tiến trình để ngắt được che đậy – nghĩa là hệ điều hành sẽ bỏ qua ngắt từ một

số nguồn sao cho một công việc đặc biệt có thể được hoàn thành nhanh nhất có thể. Có một
số ngắt như các điều kiện lỗi hay các vấn đề với bộ nhớ mà rất quan trọng đến nỗi chúng
không thể được bỏ qua. Các non-markable interrupt(NMI)( ngắt không che đậy được) phải
được xử lý ngay lập tức bất kể các tác vụ khác tại chỗ. Trong khi các ngắt thêm một số phức
tạp nào đó vào việc thi hành của tiến trình trong một hệ thống đơn nhiệm, công việc của hệ
điều hành trở nên phức tạp hơn nhiều trong một hệ thống đa nhiệm. Bây giờ, hệ điều hành
phải sắp đặt việc thi hành các ứng dụng để bạn tin có một vài thứ đang diễn ra cùng một lúc.
Điều này là phức tạp vì CPU chỉ có thể làm một thứ tại một thời điểm, để ghi nhận việc xuất
hiện của nhiều thứ đang xảy ra cùng một lúc, hệ điều hành phải chuyển đổi giữa hàng ngàn
tiến trình khác nhau trong mỗi giây. Đây là cách nó diễn ra:
 Một tiến trình chiếm một lượng nhỏ của RAM. Nó cũng làm sử dụng thanh ghi, ngăn
xếp và hàng đợi bên trong CPU và không gian bộ nhớ hệ điều hành.
 Khi hai tiến trình là đa nhiệm, hệ điều hành phân phối một lượng nhất định của chu
kỳ thực thi CPU tới một chương trình.
 Sau các chu kỳ đó, hệ điều hành tạo ra các bản sao của tất cả các thanh ghi, các ngăn
xếp và hàng đợi được dùng bởi các tiến trình và chú thích điểm mà tại đó tiến trình
tạm dừng trong việc thi hành của nó.
 Sau đó nó nạp tất cả các thanh ghi, các ngăn xếp và hàng đợi được dùng bởi tiến trình
thứ hai và cho phép một lượng nhất định của chu kỳ CPU.
 Khi hoàn thành, nó tạo ra các bản sao của tất cả các thanh ghi, các ngăn xếp và hàng
đợi được dùng bởi tiến trình thứ hai, và nạp chương trình đầu tiên.
Toàn bộ thông tin cần để theo dõi một tiến trình khi chuyển đổi là giữ trong một gói dữ liệu
được gọi là một process control block(PCB)( khối điều khiển tiến trình). Khối điều khiển
tiến trình điển hình chứa:
 Một số ID nhận dạng tiến trình
 Con trỏ tới các vị trí trong chương trình và dữ liệu của nó nơi xử lý cuối cùng xảy ra
 Nội dung thanh ghi
 Trạng thái của các cờ và những chuyển đổi khác nhau
 Danh sách của các tập tin được mở bởi tiến trình
10

 Ưu tiên của tiến trình
 Tình trạng của tất cả các thiết bị I/O cần bởi tiến trình
Mỗi tiến trình có một tình trạng liên quan với nó. Nhiều tiến trình không tiêu tốn thời gian
CPU cho đến khi chúng được một số sắp xếp của đầu vào. Ví dụ, một tiến trình có thể chờ
bấm phím từ người dùng. Trong khi nó đang chờ bấm phím, nó không dùng thời gian CPU.
Trong khi nó đang chờ, nó được “tạm hoãn”.
Khi tới nhấn phím, hệ điều hành thay đổi tình trạng của nó. Khi tình trạng của tiến trình
thay đổi, từ sẵn sàng đến hoạt động, hoặc từ tạm hoãn đến chạy, thông tin trong khối điều
khiển tiến trình phải được dùng như dữ liệu trong bất kỳ chương trình nào để thực hiện
trực tiếp tác vụ( chuyển đổi của hệ điều hành).
Hoán đổi tiến trình này diễn ra mà không có sự can thiệp từ trực tiếp người dùng và mỗi
tiến trình có đủ các chu kỳ CPU để hoàn thành tác vụ của nó trong một khoảng thời gian hợp
lý. Sự cố có thể xảy ra nếu người dùng cố gắng để có quá nhiều tiến trình hoạt động cùng
một lúc. Bản thân hệ điều hành yêu cầu một số chu kỳ CPU thực hiện lưu và hoán đổi các
thanh ghi, các ngăn xếp và hàng đợi của các tiến trình ứng dụng.
Nếu đủ các tiến trình được bắt đầu và nếu hệ điều hành không được thiết kế cẩn thận, hệ
thống có thể bắt đầu sử dùng phần lớn các chu kỳ CPU có sẵn để hoán đổi giữa các tiến trình
chứ không phải chạy các tiến trình. Khi điều này xảy ra, nó được gọi là “trận đòn” và nó
thường yêu cầu một số sắp xếp từ sự can thiệp trực tiếp của người dùng để dừng các tiến
trình và mang trật tự trở lại hệ thống (cái này có vẻ giống một cuộc chiến).
Một cách mà những người thiết kế hệ điều hành làm giảm nguy cơ của trận đòn là bằng cách
giảm nhu cầu cho các tiến trình mới để thực hiện nhiều tác vụ. Một số hệ điều hành cho
phép một “process lite”( tạm dịch là: tiến trình hàm lượng thấp) gọi là luồng( hay tiểu
trình) có thể xử lý với tất cả công việc CPU-chuyên sâu của một tiến trình bình thường,
nhưng thường thường không xử lý nhiều loại khác nhau của I/O và không thiết lập các cấu
trúc yêu cầu khối điều khiển tiến trình mở rộng của một tiến trình bình thường. Một tiến
trình có thể bắt đầu cho nhiều luồng hoặc các tiến trình khác, nhưng một luồng không thể
bắt đầu một tiến trình.
Cho đến nay, tất cả các lịch biểu chúng ta đã được thảo luận chỉ liên quan tới một CPU duy

nhất. Trong một hệ thống với hai hay nhiều CPU, hệ điều hành phải chia khối lượng công
việc giữa các CPU, cố gắng cân bằng đòi hỏi của các tiến trình được yêu cầu với các chu kỳ
có sẵn trên các CPU khác nhau. Các hệ điều hành bất đối xứng dùng một CPU cho nhu cầu
riêng của chúng và chia các tiến trình ứng dụng giữa các CPU còn lại. Các hệ điều hành đối
xứng chia bản thân chúng cho các CPU khác nhau, sự cân bằng đòi hỏi chống lại tính sẵn
sàng CPU thậm chí khi bản thân hệ điều hành là tất cả mọi thứ đang chạy. Thậm chí nếu hệ
điều hành là phần mền duy nhất với nhu cầu thi hành, CPU không phải là tài nguyên duy
nhất được lên lịch biểu. Quản lý bộ nhớ là bước quan trọng tiếp theo trong việc đảm bảo
rằng mọi tiến trình chạy trơn tru.
Quản lý bộ nhớ
11

Cách máy tính được xây dựng, bộ nhớ được sắp đặt trong một cách phân cấp. Nó bắt đầu
với các thanh ghi nhanh nhất, bộ nhớ đệm CPU, RAM và bộ nhớ đĩa. Quản lý bộ nhớ của một
hệ điều hành phối hợp sử dụng các kiểu bộ nhớ khác nhau này bằng cách giám sát cái nào
sẵn sàng, cái nào nên được cấp phát hoặc xoá cấp phát và cách để di chuyển dữ liệu giữa
chúng. Chức năng này được xem như quản lý bộ nhớ ảo và gia tăng số lượng bộ nhớ có sẵn
đối với mỗi tiến trình bằng cách làm cho bộ nhớ đĩa có vẻ như bộ nhớ chính. Có một hình
phạt tốc độ kết hợp với sử dụng các đĩa hoặc các lưu trữ chậm hơn khác như là bộ nhớ. Nếu
việc chạy các tiến trình đòi hỏi RAM nhiều hơn đáng kể so với hiện có, hệ thống có thể bắt
đầu “trận đòn” hoặc làm chậm lại. Điều này có thể xảy ra do một tiến trình đòi hỏi một
lượng lớn RAM hoặc vì hai hay nhiều tiến trình cạnh tranh cho một lượng lớn hơn bộ nhớ
hiện có. Điều này sau đó dẫn đến chuyển giao hằng số của dữ liệu của mỗi tiến trình để lưu
trữ chậm hơn.
Phần quan trọng khác của quản lý bộ nhớ là quản lý địa chỉ ảo. Nếu nhiều tiến trình ở trong
bộ nhớ cùng một lúc, chúng phải được dừng lại từ việc can thiệp vào bộ nhớ của lẫn nhau
trừ khi có một yêu cầu rõ ràng để tận dụng bộ nhớ dùng chung. Điều này đạt được bởi có
các không gian địa địa riêng biệt. Mỗi tiến trình nhìn thấy toàn bộ không gian địa chỉ ảo,
thường địa chỉ 0 đến kích thước tối đa của bộ nhớ ảo như duy nhất được gán cho nó. Hệ
điều hành duy trì một bảng trang phù hợp các địa chỉ ảo cho các địa chỉ vật lý. Các cấp phát

bộ nhớ này được giám sát để khi kết thúc một tiến trình, toàn bộ bộ nhớ được dùng bởi tiến
trình đó có thể được chuẩn bị sẵn cho các tiến trình khác.
Hệ điều hành cũng có thể ghi các trang bộ nhớ không hoạt động để lưu trữ thứ cấp. Tiến
trình này được gọi là “phân trang” hoặc “hoán đổi”. Thuật ngữ này khác nhau giữa các hệ
điều hành. Nó cũng điển hình cho hệ điều hành để sử dụng bộ nhớ vật lý không dùng đến
cách khác như bộ nhớ đệm trang. Bộ nhớ đệm trang chứa yêu cầu dữ liệu từ một thiết bị
chậm hơn và có thể được giữ lại trong bộ nhớ để cải thiện hiệu suất. hệ điều hành cũng có
thể nạp sẵn bộ nhớ đệm trong bộ nhớ thường trú với dữ liệu có thể được yêu cầu bởi người
dùng trong tương lai gần.
Tác vụ đầu tiên của quản lý bộ nhớ yêu cầu hệ điều hành thiết lập ranh giới bộ nhớ cho các
loại phần mềm và cho các ứng dụng cá nhân. Lấy ví dụ, hãy nhìn một hệ thống nhỏ tưởng
tượng với 1MB( 1000 KB) của RAM. Trong tiến trình khởi động, hệ điều hành của máy tính
tưởng tượng của chúng ta được thiết kế để đi lên trên cùng của bộ nhớ hiện có và sau đó
“lùi” đủ xa để đáp ứng nhu cầu của bản thân hệ điều hành. Hãy nói rằng hệ điều hành cần
300 KB để chạy. Bây giờ, hệ điều hành đi xuống dưới cùng vùng chứa của RAM và bắt đầu
việc tích luỹ với các driver khác được yêu cầu để kiểm soát các phân hệ phần cứng của máy
tính. Trong máy tính tưởng tưởng của chúng ta, các driver lấy mất 200 KB. Vì là sau khi hệ
điều hành được nạp vào hoàn toàn, có 500 KB còn lại cho các tiến trình ứng dụng. Khi các
ứng dụng bắt đầu được nạp vào bộ nhớ, chúng được nạp trong các khối có kích thước xác
định bởi hệ điều hành. Nếu kích thước khối là 2KB, sau đó mọi tiến trình được nạp sẽ được
cho một khúc dữ liệu của bộ nhớ là một bội số của 2 KB. Các ứng dụng sẽ được nạp vào các
khối có kích thước cố định, với các khối bắt đầu và kết thúc trên ranh giới được thành lập
bởi word 4 hoặc 8 byte. Các khối và ranh giới này giúp đảm bảo các ứng dụng sẽ không
được nạp lên trên một không gian khác bởi một bit tính toán kém hoặc hai. Cùng với đó
12

được đảm bảo, câu hỏi lớn hơn là những gì để làm khi không gian ứng dụng 500 KB được
lấp đầy. Trong hầu hết các máy tính, có thể thêm bộ nhớ vượt quá dung lượng gốc. Ví dụ,
bạn có thể mở rộng RAM từ 1 đến 2 MB. Điều này làm việc tốt, nhưng xu hướng này tương
đối đắt tiền. Nó còn bỏ qua một thực tế cơ bản của tính toán – hầu hết thông tin mà ứng

dụng lưu trữ trong bộ nhớ không được sử dụng tại bất kỳ thời điểm nào. Một bộ xử lý chỉ có
thể truy cập một vị trí trong bộ nhớ tại một thời điểm, cho nên đại đa số RAM là chưa được
sử dụng tại bất kỳ thời điểm nào. Từ khi không gian đĩa rẻ so với RAM, sau đó việc di
chuyển thông tin trong RAM tới đĩa cứng có thể mở rộng rất nhiều không gian RAM hoàn
toàn miễn phí. Kỹ thuật này được gọi là quản lý bổ nhớ ảo. Bộ nhớ đĩa chỉ là một trong các
loại bộ nhớ phải được quản lý bởi hệ điều hành và là chậm nhất. Xếp hạng thứ tự theo tốc
độ, các loại bộ nhớ trong một hệ thống máy tính là:
 Bộ nhớ đệm tốc độ cao: lượng bộ nhớ tương đối nhỏ hiện có cho CPU thông qua các
kết nối nhanh nhất. Bộ kiểm soát bộ nhớ đệm dự đoán phần dữ liệu mà CPU sẽ cần
đến tiếp theo và kéo nó từ bộ nhớ chính đến bộ nhớ đệm tốc độ cao để tăng tốc hiệu
suất hệ thống.
 Bộ nhớ chính: đây là RAM mà bạn thấy, được đo bằng MB khi bạn mua máy tính.
 Bộ nhớ thứ cấp: phổ biến nhất là bộ nhớ từ tính quay giữ các ứng dụng và dữ liệu sẵn
có để được sử dụng, và được dùng như là RAM ảo dưới sự kiểm soát của hệ điều
hành.
Hệ điều hành phải cân bằng các nhu cầu của các tiến trình với khả năng của những kiểu bộ
nhớ khác nhau, di chuyển dữ liệu trong các khối( gọi là các trang) giữa bộ nhớ có sẵn như
lịch biểu của lời gọi các tiến trình.
Hệ thống tập tin và đĩa
Tất cả hệ điều hành bao gồm hỗ trợ cho một loạt hệ thống tập tin. Các hệ thống tập tin hiện
đại do các thư mục cấu thành. Trong khi ý tưởng là tương tự như khái niệm trên tất cả các
hệ thống tập tin đa dụng, tồn tại một số điều khác biệt trong việc thực hiện. Hai ví dụ của
điều này là ký tự mà được sử dụng cho các thư mục riêng biệt và trường hợp nhạy cảm.
Theo mặc định, Microsoft Windows tách các thành phần đường dẫn của nó với dấu gạch
chéo và tên của của tập tin không phải trường hợp nhảy cảm. Tuy nhiên, Mac OS có nguồn
gốc từ Linux và Unix sử dụng dấu sổ chéo và tên tập tin của chúng thường có trường hợp
nhạy cảm. Một số phiên bản của Mac OS( trước thế hệ OS X) sử dụng màu cho dấu phân
cách đường dẫn.
Các hệ thống tập tin hoặc là có ghi chép hoặc là không có ghi chép. Một hệ thống tập tin “có
ghi chép” là một thay thế an toàn hơn trong trường hợp sập hệ thống. Nếu một hệ thống

dừng lại đột ngột trong một kịch bản sập, hệ thống tập tin “không có ghi chép” sẽ cần phải
được kiểm tra bằng các tiện ích kiểm tra hệ thống. Mặt khác, khôi phục một hệ thống tập tin
có ghi chép là tự động.
Các hệ thống tập tin thay đổi tùy hệ điều hành, nhưng chung cho tất cả điều này là hỗ trợ
cho hệ thống tập tin điển hình được tìm thấy trên các phương tiện di động như CD, DVD và
đĩa mềm. Chúng cũng cung cấp cho việc ghi lại CD và DVD như phương tiện lưu giữ.
13

Mạng
Một khía cạnh khác của một hệ điều hành phải làm với khả năng kết nối mạng chứa trong
mỗi máy tính. Mạng liên kết các máy tính riêng biệt với nhau từ những vị trí khác nhau.
Hầu hết các hệ điều hành hiện tại có khả năng sử dụng giao thức kêt nối mạng TCP/IP. Điều
đó có nghĩa là một hệ thống có thể xuất hiện trên một mạng của các máy tính khác và chia
sẻ tài nguyên như tập tin, máy in và máy quét sử dụng cả kết nối có dây lẫn không dây.
Bảo mật
Bảo mật rất quan trọng trong bất kỳ hệ thống máy tính nào. Hệ điều hành cung cấp một
mức độ bảo mật có thể bảo vệ máy tính của bạn và dữ liệu trên đó. Bảo mật hệ thống được
dựa trên hai nguyên tắc:
 Hệ điều hành cung cấp truy cập vào nhiều tài nguyên cả trực tiếp lẫn gián tiếp. Điều
đó có thể nghĩa là các tập tin trên đĩa cục bộ, các lời gọi hệ thống đặc quyền, thông tin
cá nhân về người dùng và các dịch vụ được cung cấp bởi các chương trình chạy trên
hệ thống.
 Hệ điều hành có khả năng phân biệt giữa những người được phép truy cập tài nguyên
và những người bị cấm làm như vậy. Trong khi một số hệ thống có thể đơn giản phân
biệt giữa “đặc quyền” và “không đặc quyền”, thông thường nhất có một hình thức
nhận dạng đăng ký như một tên người dùng.
Những yêu cầu thông tin được chia thêm thành hai loại:
 Bảo mật nội bộ trong một chương trình đang chạy. Trên một số hệ thống, mỗi khi một
chương trình đang chạy, nó không có hạn chế, nhưng thông thường chương trình có
một nhận dạng mà nó giữ. Nhận dạng đó được dùng để kiểm tra tất cả các yêu cầu của

nó về tài nguyên.
 Bảo mật ngoài như là một yêu cầu mới từ bên ngoài máy tính. Điều này có thể là trong
hình thức của một yêu cầu mới từ bên ngoài hệ thống như đăng nhập tại một giao
diện điều khiển kết nối hay một số loại kết nối mạng. Để thiết lập nhận dạng, đó có thể
là một tiến trình xác thực.
Thường một tên người dùng phải được nhập và mỗi tên người dùng nên có một mật khẩu.
Các phương pháp xác thực như thẻ từ hoặc dữ liệu sinh trắc có thể được dùng để thay thế.
Trong một số trường hợp, nhất là kết nối từ mạng, tài nguyên có thể được truy cập mà
không cần xác thực một chút nào.
Ngoài ra để cho phép/không cho phép mô hình bảo mật, một hệ thống với một mức bảo mật
cao cũng sẽ đưa ra kiểm định các tuỳ chọn. Điều này cho phép giám sát các yêu cầu cho truy
cập tới tài nguyên như trong “ai được đọc tập tin này?”
Bảo mật hệ điều hành từ lâu đã là mối quan tâm của các lập trình viên vì dữ liệu có nhạy
cảm cao được giữ trên một số máy tính. Đó là cả thương mại và tính chất quân sự.
Bộ quốc phòng chính phủ Hoa Kỳ đã tạo ra tiêu chí riêng của họ về các tiêu chuẩn đặt ra yêu
cầu cơ bản cho đánh giá hiệu quả của bảo mật hệ điều hành. Điều đó trở thành tầm quan
14

trọng sống còn cho các nhà sản xuất hệ điều hành vì hệ thống này được dùng để phân loại
và chọn hệ thống được xem xét cho xử lý, thu hồi thích hợp lưu trữ cho thông tin nhạy cảm
hay thông tin mật.
Bảo mật nội bộ
Bảo mật nội bộ có thể được nghĩ như một cách để bảo vệ tài nguyên của máy tính từ các
chương trình chạy đồng thời trên hệ thống. Hầu hết các hệ điều hành thiết lập các chương
trình đang chạy tự nhiên trên bộ xử lý của máy tính. Điều đó mang lại vấn đề làm thế nào để
dừng các chương trình từ làm tác vụ giống nhau và có các đặc quyền tương tự như hệ điều
hành mà cũng là một chương trình.
Các bộ xử lý dùng cho các hệ điều hành đa dụng được tự động ngăn chặn từ việc sử dụng
các lệnh phần cứng đã biết như read hoặc write từ các thiết bị gắn ngoài như đĩa. Thay vào
đó, chúng phải hỏi chương trình đặc quyền để read hoặc write. Do đó, hệ điều hành có cơ

hội để kiểm tra nhận dạng của chương trình và cho phép hoặc từ chối yêu cầu.
Một chiến lược thay thế hiện có trong các hệ thống không đáp ứng yêu cầu thiết lập trước
thì hệ điều hành sẽ không chạy các chương trình người dùng như mã gốc. Thay vào đó,
chúng hoặc mô phỏng một bộ xử lý hoặc cung cấp một máy chủ cho một “mã giả” dựa trên
hệ thống như là Java.
Bảo mật nội bộ là đặc biệt quan trọng với hệ thống nhiều người dùng, nó cho phép mỗi
người dùng của hệ thống để có các tập tin cá nhân mà người dùng khác không thể làm xáo
trộn hoặc đọc. Bảo mật nội bộ cũng là quan trọng nếu việc kiểm định là để được bất kỳ sử
dụng một chương trình có thể có khả năng né tránh hệ điều hành mà không né tránh kiểm
định.
Bảo mật bên ngoài
Thông thường, một hệ điều hành đưa ra các dịch vụ khác nhau cho các máy tính nối mạng
và người dùng khác. Những dịch vụ này thường được cung cấp thông qua cổng hay các
điểm truy cập được đánh số vượt ngoài địa chỉ mạng hệ điều hành. Các dịch vụ bao gồm
những đề nghị như là chia sẻ tập tin, in, thư điện tử, trang wed và các giao thức truyền tập
tin(FTP).
Ở tuyến đầu của bảo mật là các thiết bị phần cứng gọi là tường lửa. Ở cấp độ hệ điều hành
có một số tường lửa phần mềm có sẵn. Hầu hết các hệ điều hành hiện đại bao gồm một
tường lửa phần mềm được kích hoạt mặc định.
Một tường lửa phần mềm có thể được cấu hình để cho phép hay từ chối lưu lượng truy cập
mạng hoặc từ một dịch vụ hay ứng dụng chạy rên hệ điều hành. Vì thế, hệ điều hành có thể
cài đặt và chạy một dịch vụ không an toàn như Telnet hay FTP và không phải bị đe doạ bởi
một vi phạm bảo mật vì tường lửa sẽ từ chối tất cả lưu lượng cố gắng kết nối tới dịch vụ
trên cổng đó.
Giao diện người dùng đồ hoạ
Ngày nay, hầu hết hệ điều hành chứa giao diện người dùng đồ hoạ( GUI). Một vài hệ điều
hành cũ hơn được tích hợp chặt chẽ GUI tới phần lõi – một trong những thành phần trung
15

tâm của hệ điều hành. Các hệ điều hành hiện đại hơn thì tách theo mô-đun phân hệ đồ hoạ

từ phần lõi.
Một GUI là cơ bản các hình ảnh bạn thấy trên màn hình giúp bạn điều hướng máy tính của
bạn. Chúng bao gồm các icon và các menu. Nhiều hệ điều hành cho phép người dùng cài đặt
hay tạo ra bất kỳ giao diện người dùng nào mà họ muốn.
GUI có xu hướng thay đổi và tiến truyển theo thời gian. Ví dụ, Windows đã có thay đổi giao
diện người dùng của nó hầu hết thời gian một phiên bản mới của Windows đã được phát
hành. GUI của MAC OS đã thay đổi đáng kể với giới thiệu của MAC OS X trong năm 2001.
Các driver
Một driver là một loại hình cụ thể của phần mềm máy tính được phát truyển để cho phép
tương tác với các thiết bị phần cứng. Thông thường, điều này tạo thành một giao diện cho
giao tiếp với thiết bị thông qua bus máy tính cụ thể hoặc phân hệ giao tiếp mà phần cứng
được kết nối tới.
Các driver cung cấp các lệnh and/or nhận dữ liệu từ thiết bị và ở đầu bên kia, các giao diện
cần thiết cho hệ điều hành và các phần mền ứng dụng. Bạn không thể có một ổ CD-ROM, ví
dụ, không có một driver cho phần cụ thể của thiết bị. Bạn có driver cho máy in, máy quét và
thậm chí là con chuột của bạn. Nó là chương trình chuyê sâu về phần cứng cũng như hệ điều
hành cụ thể cho phép một chương trình khác – thường là một hệ điều hành hoặc gói phần
mềm ứng dụng hay chương trình máy tính chạy dưới Nhân hệ điều hành. Điều đó cho phép
hệ thống tương tác minh bạch với thiết bị phần cứng và thường cung cấp xử lý ngắt cần
thiết cho bất kỳ giao diện phần cứng phụ thuộc thời gian.
Mục tiêu thiết kế then chốt của các driver là sự trừu tượng. Mọi mô hình phần cứng là khác
nhau. Các mô hình mới hơn cũng được phát hành bởi các nhà sản xuất cung cấp đáng tin
cậy hơn hay hiệu năng tốt hơn và những mô hình mới hơn này thường được kiểm soát khác
nhau.
Máy tính và hệ điều hành của chúng không được kỳ vọng sẽ biết cách để kiểm soát mọi thiết
bị ngay cả hiện tại lẫn tương lai. Để giải quyết vấn đề này, thực chất hệ điều hành ra lệnh
cách mỗi loại thiết bị nên được kiểm soát như thế nào. Chức năng của các driver sau đó là
dịch các lời gọi hàm dưới dự ủy thác của hệ điều hành thành các lời gọi thiết bị cụ thể.
Về lý thuyết, một thiết bị mới được kiểm soát theo một cách thức mới nên chức năng một
cách chính xác là một driver thích hợp có sẵn. Driver mới này sẽ đảm bảo rằng thiết bị xuất

hiện để hoạt động như bình thường từ quan điểm của hệ điều hành cho bất kỳ cá nhân nào.
Một số hệ điều hành đi cùng với các driver được cài đặt sẵn hoặc một loạt các driver phổ
biến để lựa chọn. Khi bạn mua một thiết bị phần cứng mới, ví dụ một tay cầm chơi game,
chúng sẽ thường đi cùng với một đĩa chứa driver mà bạn có thể cài đặt. Các driver khác hay
các driver được cập nhật có sẵn trực tuyến tại trang wed của nhà sản xuất.
Giao diện ứng dụng
Cũng như các driver cung cấp một cách cho các ứng dụng để làm cho việc sử dụng phân hệ
phần cứng mà không cần phải biết mọi chi tiết thao tác của phần cứng. Giao diện chương
16

trình ứng dụng( API) cho phép người lập trình ứng dụng sử dụng các chức năng của máy
tính và hệ điều hành mà không cần phải trực tiếp giữ theo dõi tất cả các chi tiết trong thao
tác của CPU. Hãy nhìn vào ví dụ của việc tạo ra một tập tin đĩa cứng để chứa dữ liệu, xem lý
do tại sao điều này có thể là quan trọng.
Một lập trình viên viết một ứng dụng để ghi dữ liệu từ một dụng cụ khoa học có thể muốn
cho phép các nhà khoa học chỉ rõ tên của tập tin được tạo. Hệ điều hành có thể cung cấp
một hàm API có tên MakeFile cho việc tạo ra các tập tin. Khi viết chương trình, lập trình
viên sẽ chèn thêm một dòng nhìn như thế này:
MakeFile [1, %name, 2]
Trong ví dụ này, câu lệnh lệnh cho hệ điều hành tạo ra một tập tin mà sẽ cho phép truy cập
ngẫu nhiên tới dữ liệu của nó( gán bằng 1 – các tuỳ chọn khác có thể là 0 cho một tập tin nối
tiếp), sẽ có một tên được gõ vào bởi người dùng( %name) và sẽ là một kích thước mà phụ
thuộc khác nhau vào cách nhiều dữ liệu được lưu trữ trong tập tin( gán là 2 – lựa chọn khác
có thể là 0 cho một kích thước cố định, và 1 cho tập tin phát truyển như dữ liệu được thêm
nhưng không co lại khi dữ liệu được gỡ bỏ). Bây giờ hãy nhìn những gì hệ điều hành làm để
lệnh chuyển thành hành động.
Hệ điều hành gửi một truy vấn tới ổ đĩa để có được vị trí của vị trí lưu trữ trống có sẵn đầu
tiên. Với thông tin đó, hệ điều hành tạo ra một mục ghi chú trong hệ thống tập tin hiển thị
các vị trí bắt đầu và các vị trí kết thúc của tập tin, tên của tập tin, loại tập tin, dù tập tin đã
được lưu trữ, người dùng có quyền xem hoặc sửa đổi tập tin, và ngày – giờ tạo tập tin.

Hệ điều hành ghi thông tin lúc bắt đầu tập tin nhằm nhận dạng tập tin, thiết lập kiểu có thể
truy cập và bao gồm các thông tin khác gắn tập tin vào ứng dụng. Trong tất cả thông tin này,
truy vấn đến ổ đĩa và các địa chỉ của điểm đầu và điểm cuối của tập tin theo định dạng phụ
thuộc nhiều vào nhà sản xuất và mô hình của ổ đĩa. Vì lập trình viên viết chương trình để sử
dụng API cho bộ lưu trữ đĩa, lập trình viên không cần phải theo kịp mã lệnh, các kiểu dữ liệu
và mã phản hồi cho mỗi ổ đĩa cứng và ổ băng. Hệ điều hành được kết nối tới các driver cho
các phân hệ phần cứng khác nhau, xử lý các chi thiết thay đổi của phần cứng, lập trình viên
chỉ cần phải viết mã cho API và tin tưởng hệ điều hành làm phần còn lại.
API đã trở thành một trong những lĩnh vực tranh cãi nóng bỏng nhất của ngành công nghiệp
máy tính trong những năm trở lại đây. Các công ty nhận ra rằng các lập trình viên sử dụng
API của chúng cuối cùng sẽ dịch điều này thành khả năng kiểm soát và thu lợi nhuận từ một
bộ phận nào đó của ngành công nghiệp. Đây là một trong những lý do mà nhiều công ty đã
sẵn sàng cung cấp các ứng dụng như trình đọc hoặc trình xem miễn phí đến công chúng. Họ
biết người tiêu dùng sẽ đòi hỏi các chương trình tận dụng lợi thế của trình đọc miễn phí, và
các công ty ứng dụng sẽ sẵn sàng trả tiền bản quyền để cho phép các phần mềm của họ cung
cấp các chức năng được đòi hỏi từ người tiêu dùng.
Như chúng ta đã đề cập, có hệ điều hành trong mọi sản phẩm không riêng gì máy tính. Điện
thoại di động, đầu ghi DVD và máy chơi TiVo cũng có hệ điều hành, tuy nhiên, những hệ
điều hành này không thực sự đáng chú ý đến người tiêu dùng và họ không có bất kỳ kiểm
soát nào tới chúng.

17

Định nghĩa các tiến trình

Bộ nhớ đệm
Khi mua sắm cho máy tính, thường từ “bộ nhớ cache” sẽ đến gần. Có hai loại lưu trữ của bộ
nhớ đệm khi nói đến máy tính hiện đại: L1 và L2. Một số bây giờ thậm chí có bộ nhớ đệm
L3. Lưu trữ tạm vào bộ nhớ đệm là một tiến trình rất quan trọng khi nói đến máy tính của

bạn.
Có bộ nhớ đệm, bộ nhớ đệm đĩa phần cứng và phần mềm, bộ nhớ đệm trang và nhiều hơn
nữa. Bộ nhớ ảo thậm chí là một hình thức của lưu trữ tạm vào bộ nhớ đệm. Hãy nhìn lưu trữ
tạm vào bộ nhớ đệm là gì và tại sao nó rất quan trọng.
Lưu trữ tạm vào bộ nhớ đệm là một công nghệ dựa trên phân hệ bộ nhớ của máy tính. Mục
đích chính của một bộ nhớ đệm là để tăng tốc máy tính của bạn trong khi giữ giá cả của máy
tính thấp. Lưu trữ tạm vào bộ nhớ đệm cho phép bạn thực hiện các tác vụ máy tính của bạn
nhanh hơn nữa.
Để hiểu ý tưởng cơ bản đằng sau một hệ thống bộ nhớ đệm, chúng ta có thể sử dụng một
phép tương đồng đơn giản bằng cách dùng một thủ thư để chứng minh được tiến trình lưu
trữ tạm vào bộ nhớ đệm. Nghĩ một thử thư đằng sau chiếc bàn. Anh ấy hoặc cô ấy ở đó để
cho bạn những cuốn sách bạn hỏi.
Để giữ cho nó đơn giản, chúng ta hãy giả sử rằng bạn không thể có được những cuốn sách
chính bạn, bạn phải hỏi thủ thư về cuốn sách mà bạn muốn đọc và anh ấy hoặc cô ấy lấy nó
cho bạn từ kệ sách trong kho. Ví dụ đầu tiên là một thủ thư mà không có bộ nhớ đệm.
Người đầu tiên đến và hỏi cuốn sách Great Expectations. Thủ thư đi đến kho lấy cuốn sách,
quay lại bộ đếm và giao sách tới khới khách hàng. Sau đó, người mượn quay lại để trả lại
cuốn sách. Thủ thư lấy sách và trả nó về kho trả lại bộ đếm để chờ khách hàng kế tiếp.
Các khách hàng tiếp theo đến vào cũng hỏi cuốn sách Great Expectations. Thủ thư phải
quay lại kho để lấy một cuốn sách và xử lý giống như vậy rồi giao nó cho khách. Vậy là về cơ
bản, thủ thư phải làm một vòng lặp hoàn chỉnh để tìm nạp mỗi sách – thậm chí một cuốn
sách rất phổ biến được yêu cầu thường xuyên.
Đó không phải là một hệ thống rất hiệu quả cho thủ thư của chúng ta, đúng không? Tuy
nhiên, có một cách để cải thiện hệ thống này. Chúng ta có thể thêm một bộ nhớ đệm trên
thủ thư.
Để minh hoạ một bộ nhớ đệm, hãy cho thủ thư một chiếc ba lô trong đó anh ấy hoặc chị ấy
có thể lưu trữ, chẳng hạn như 10 cuốn sách. Sẽ nghĩa là thủ thư có một bộ nhớ đệm 10 cuốn
sách. Trong ba lô này, anh ấy hoặc cô ấy sẽ đặt các cuốn sách khách hàng trả lại lên đến tối
đa là 10. Bây giờ, hãy trở lại và ghé thăm kịch bản đầu tiên với thủ thư bộ nhớ đệm của
chúng ta.

Vào đầu ngày, bộ nhớ đệm của thủ thư là trống rỗng. Người đầu tiên đến và hỏi cuốn sách
Great Expectations. Vì thế thủ thư đến kho và giao nó cho khách hàng. Khi khách hàng trở
18

lại với cuốn sách, thay vì trở lại vào kho, thủ thư đặt cuốn sách vào ba lô đảm bảo nó đầy đủ
đầu tiên.
Người khác đến và hỏi cuốn sách Great Expectations. Trước khi đi vào kho, thủ thư kiểm tra
để xem nếu sách có sẵn trong ba lô. Trông lạ chưa kìa, là nó! Bây giờ tất cả mà anh ấy hoặc
chị ấy phải làm là lấy cuốn sách từ ba lô và đưa nó cho khách. Không có thêm năng lượng bị
phí tổn bởi thủ thư và khách hàng không cần phải chờ chuyến đi vào kho.
Hãy giả sử rằng khách hàng hỏi một tiêu đề không nằm trong ba lô? Trong trường hợp này,
thủ thư là kém hiệu quả hơn so với một bộ nhớ đệm vì anh ấy hoặc chị ấy phải dành thời
gian để tìm cuốn sách trong ba lô trước tiên.
Đó là lý do tại sao một trong những thách thức của thiết kế bộ nhớ đệm là giảm thiểu tác
động của tìm kiếm bộ nhớ đệm. Phần cứng hiện đại đã được giảm thời gian trễ này tới 0
trong thực tế. Thời gian cần cho thủ thư để tìm trong bộ nhớ đệm là ít hơn nhiều so với phải
chạy vào kho, vì vậy thời gian được lưu lại tự động với bộ nhớ đệm. Bộ nhớ đệm thì nhỏ( chỉ
10 cuốn sách) vì vậy thời gian bỏ lỡ chỉ là một phần rất nhỏ của thời gian cần để đi đến kho.
Từ ví dụ này, bạn có thể xem vài sự kiện quan trọng về lưu trữ tạm vào bộ nhớ đệm:
Công nghệ bộ nhớ đệm là việc sử dụng một loại bộ nhớ nhỏ hơn nhưng nhanh hơn để tăng
tốc kiểu bộ nhớ lớn hơn nhưng chậm hơn.
Khi sử dụng một bộ nhớ đệm, bạn phải kiểm tra bộ nhớ đệm để xem nếu một mục ở trong
đó. Nếu có, nó được gọi là “bộ nhớ đệm hit”. Nếu không, nó được gọi là “bộ nhớ đệm miss”
và máy tính phải chờ một vòng lặp từ vùng bộ nhớ nhanh hơn hoặc chậm hơn.
Một bộ nhớ đệm có một số kích thước tối đa nhỏ hơn nhiều so với vùng bộ nhớ lớn hơn.
Nó có thể có nhiều lớp của bộ nhớ đệm. Với ví dụ thủ thư của chúng ta, các kiểu bộ nhớ nhỏ
hơn nhưng nhanh hơn là ba lô, còn kho thể hiện các kiểu bộ nhớ lớn hơn nhưng chậm hơn.
Đó là một bộ nhớ đệm cấp 1.
Có thể có nhiều lớp khác của bộ nhớ đệm bao gồm một kệ có thể giữ 100 cuốn sách đằng
sau quầy. Thủ thư có thể kiểm tra ba lô rồi kệ và sau đó là kho. Đây chính là một bộ nhớ

đệm cấp 2.
Một máy tính là một cỗ máy trong đó chúng ta đo thời gian trong sự gia tăng rất nhỏ. Khi bộ
vi xử lý truy cập bộ nhớ chính( RAM), nó thực hiện điều đó trong khoảng 60 nano giây( 60
phần tỉ của 1 giây). Điều đó là khá nhanh nhưng nó chậm hơn nhiều so với bộ vi xử lý điển
hình. Bộ vi xử lý có thể có thời gian chu kỳ ngắn khoảng 2 nano giây, vì vậy để một bộ vi xử
lý tới 60 nano giây có vẻ như là vô cùng.
Điều gì sẽ sảy ra nếu chúng ta xây dựng một ngân hàng bộ nhớ đặc biệt trong bo mạch chủ,
nhỏ nhưng rất nhanh( khoảng 30 nano giây)? Điều đó thực sự nhanh hơn so với truy cập bộ
nhớ chính. Đó được gọi là bộ nhớ đệm cấp 2 hay L2.
Điều gì sẽ sảy ra nếu chúng ta xây dựng một hệ thống bộ nhớ thậm chí nhỏ hơn nhưng
nhanh hơn trực tiếp vào chip của bộ vi xử lý? Bằng cách đó, bộ nhớ sẽ được truy cập với tốc
độ của bộ vi xử lý mà không phải tốc độ của bus bộ nhớ. Đó là bộ nhớ đệm L1, mà trên bộ vi
19

xử lý Pentium 223MHz thì nhanh hơn 3,5 lần so với bộ nhớ đệm L2 và nhanh hơn 2 lần so
với truy cập vào bộ nhớ chính.
Một số bộ vi xử lý có 2 mức của bộ nhớ đệm được xây dựng ngay vào chip. Trong trường
hợp này, bộ nhớ đệm của bo mạch chủ - bộ nhớ đệm tồn tại giữa bộ vi xử lý và bộ nhớ hệ
thống chính - trở thành cấp 3 hay bộ nhớ đệm L3.
Có nhiều phân hệ trong một máy tính, bạn có thể đặt bộ nhớ đệm giữa nhiều trong số chúng
để cải thiện hiệu suất. Đây là một ví dụ, chúng ta có bộ vi xử lý( thứ nhanh nhất trong máy
tính), sau đó có bộ nhớ đệm L1 lưu trữ tạm vào bộ nhớ đệm L2 rồi bộ nhớ đệm L2 lưu trữ
tạm vào bộ nhớ chính có thể được sử dụng( và thường được sử dụng) như một bộ nhớ đệm
thậm chí cho các ngoại vi chậm hơn như đĩa cứng và CD-ROM. Đĩa cứng cũng được sử dụng
như bộ nhớ đệm thậm chí ở một môi trường chậm hơn – kết nối internet của bạn.
Kết nối internet của bạn là liên kết chậm nhất trong máy tính của bạn. Vì vậy trình duyện
của bạn( Internet Explorer, Nescape,…) dùng đĩa cứng để lưu trữ các trang HTML, đặt chúng
vào một thư mục đặc biệt trong đĩa của bạn.
Lần đầu tiên bạn hỏi một trang HTML, trình duyệt của bạn hoàn trả nó và một bản sao của
nó cũng được lưu trữ trên đĩa của bạn. Lần tiếp theo bạn yêu cầu truy cập tới trang này,

trình duyệt của bạn kiểm tra nếu ngày của các tập tin trên internet mới hơn ngày được lưu
trữ tạm trong bộ nhớ đệm. Nếu ngày là giống nhau, trình duyệt của bạn sử dụng trang trên
đĩa cứng của bạn thay vì tải về từ internet. Trong trường hợp này, hệ thống bộ nhớ nhỏ hơn
nhưng nhanh hơn là đĩa cứng của bạn còn hệ thống bộ nhớ lớn hơn nhưng chậm hơn là
internet.
Bộ nhớ đệm cũng có thể được xây dựng trực tiếp trên thiết bị ngoại vi. Ổ đĩa cứng hiện đại
đi cùng với bộ nhớ nhanh, khoảng 512 KB, thêm tính năng bằng phần cứng cho đĩa cứng.
Máy tính không trực tiếp sử dụng bộ nhớ này – cứng – bộ điều khiển đĩa cũng vậy.
Đối với máy tính, chip bộ nhớ này là chính bản thân đĩa, máy tính yêu cầu dữ liệu từ đĩa
cứng. Bộ kiểm soát đĩa cứng kiểm tra bộ nhớ này trước khi để di chuyển các bộ phận cơ khí
của đĩa cứng. Điều này thì rất chậm so với bộ nhớ. Nếu tìm thấy dữ liệu mà máy tính yêu cầu
trong bộ nhớ đệm, nó sẽ trả về dữ liệu được lưu trong bộ nhớ đệm mà không thực sự truy
cập dữ liệu trên chính bản thân đĩa, tiết kiệm rất nhiều thời gian.
Đây là một thử nghiệm bạn có thể thử. Máy tính của bạn lưu trữ tạm ổ đĩa mềm của bạn với
bộ nhớ chính, và bạn có thể thực sự nhìn nó xảy ra. Truy cập một tập tin lớn từ đĩa mềm của
bạn - ví dụ, mở một tập tin văn bản 300 KB trong một trình soạn thảo văn bản.
Lần đầu, bạn sẽ nhìn thấy đèn trên đĩa mềm của bạn bật và bạn sẽ chờ. Ổ đĩa mền vô cùng
chậm, vì vậy nó sẽ mất 20 giây để nạp tập tin. Bây giờ, đóng trình soạn thảo và mở tập tin
như thế lần nữa. Lần thứ hai( không chờ 30 phút hay làm nhiều truy cập ổ đĩa giữa hai lần
thử) bạn sẽ không nhìn thấy đèn bật và bạn sẽ không phải chờ.
Hệ điều hành kiểm tra trong bộ nhớ đệm của nó cho đĩa mềm và tìm thấy những gì nó đang
tìm. Vì vậy thay vì chờ 20 giây, dữ liệu được tìm thấy trong phân hệ bộ nhớ nhanh hơn
nhiều so với lần đầu tiên bạn thử nó. Hệ điều hành truy cập tới đĩa mềm mất 120 mili giây,
trong khi hệ điều hành truy cập tới bộ nhớ chính mất khoảng 60 nano giây – điều này
20

nhanh hơn nhiều. Bạn có thể đã chạy thử nghiệm tương tự trên đĩa cứng của bạn nhưng nó
rõ ràng hơn trên ổ đĩa mềm của bạn vì nó quá chậm.
Để cho bạn bức tranh tổng thể về toàn bộ vấn đề này, đây là danh sách của hệ thống lưu trữ
tạm vào bộ nhớ đệm thông thường:

 Bộ nhớ đệm L1 – bộ nhớ truy cập hoàn toàn ở tốc độ bộ vi xử lý( 10 nano giây, kích
thước từ 4 tới 16 KB)
 Bộ nhớ đệm L2 – bộ nhớ truy cập của loại SRAM( 20 đến 30 nano giây, kích thước từ
128 tới 512 KB)
 Bộ nhớ chính – bộ nhớ truy cập của loại RAM( khoảng 60 nano giây, kích thước từ
32 tới 128 MB)
 Đĩa cứng – cơ khí, chậm( khoảng 12 mili giây, kích thước từ 1 GB đến 10 GB)
 Internet – cực kỳ chậm( giữa 1 giây và 3 ngày, kích thước không giới hạn)
Như bạn có thể thấy, bộ nhớ đệm L1 lưu trữ tạm vào bộ nhớ đệm L2 và bộ nhớ đệm L2 lưu
trữ tạm vào bộ nhớ chính, bộ nhớ chính có thể sử dụng để lưu trữ tạm vào phân hệ đĩa, vân
vân.
Một câu hỏi phổ biến vào thời điểm này là “ Tại sao không làm cho tất cả bộ nhớ của máy
tính chạy ở cùng một tốc độ như bộ nhớ đệm L1, vì vậy không lưu trữ tạm vào bộ nhớ đệm
sẽ được yêu cầu? Sẽ làm được nhưng nó cự kỳ đắt tiền. Ý tưởng đằng sau lưu trữ tạm vào bộ
nhớ đệm là để sử dụng một số lượng nhỏ bộ nhớ đắt tiền để tăng tốc độ một lượng lớn bộ
nhớ chậm hơn, ít tốn kém hơn.
Trong thiết kế một máy tính, mục đích là để cho phép bộ vi xử lý chạy ở tốc độ cao nhất của
nó càng ít tốn kém càng tốt. Một chip 500 MHz đi qua 500 triệu chu kỳ trong một giây( mỗi
chu kỳ hai nano giây). Không có bộ nhớ đệm L1 và L2, một truy cập tới bộ nhớ chính mất 60
nano giây hoặc khoảng 30 chu kỳ truy cập bộ nhớ bị lãng phí.
Khi bạn nghĩ đến chuyện đó, nó là loại không thể tin được tương đương như vậy, lượng nhỏ
xíu của bộ nhớ có thể tối ưu việc dùng lượng bộ bộ nhớ lớn hơn. Nghĩ về một bộ nhớ đệm
L2 – 256 KB lưu trữ tạm 64 MB của RAM. Trong trường hợp này, 256000 B lưu trữ tạm hiệu
quả 64000000 B. Why does that work?
Trong khoa học máy tính, có một khái niệm về lý thuyết được gọi là vùng tham chiếu. Nó
nghĩa là trong một chương trình khá lớn, chỉ một phần nhỏ được sử dụng tại một thời điểm
bất kỳ. Nó như có vẻ lạ, vùng tham chiếu làm việc cho phần lớn của các chương trình. Thậm
chí nếu có thể thực thi kích thước 10 MB thì chỉ một số ít các byte từ chương trình đó được
sử dụng tại một thời điểm bất kỳ và tỉ lệ của sự lặp lại là rất cao.
Bộ nhớ ảo

Bợ nhớ ảo là một bộ phận chung của hầu hết các hệ điều hành trên máy tính để bàn. Nó đã
trở nên rất phổ biến vì nó cung cấp một lợi ích lớn cho người dùng với một chi phí rất thấp.
21

Hầu hết máy tính ngày nay có cái gì đó như 32 hay 64 MB của RAM hiện có cho CPU để sử
dụng. Thật không may, lượng RAM không đủ để chạy tất cả chương trình mà hầu hết người
dùng kỳ vọng chạy chúng cùng một lúc.
Ví dụ, nếu bạn nạp hệ điều hành, một chương trình thư điện tử, một trình duyệt wed và
trình xử lý văn bản vào RAM cùn một lúc, 32 MB không đủ để chứa tất cả. Nếu không có cái
gọi là bộ nhớ ảo, sau đó, một khi bạn lấp đầy RAM hiện có, máy tính của bạn sẽ thông báo
“Xin lỗi, bạn không thể nạp bất kỳ ứng dụng nào nữa. Xin vui lòng đóng ứng dụng nào đó để
nạp ứng dụng mới.” Với bộ nhớ ảo, những gì máy tính có thể làm là nhìn vào RAM cho các
khu vực không được sử dụng gần đây và sao chép chúng tới đĩa cứng. Điều này giải phóng
không gian trong RAM để nạp ứng dụng mới.
Vì việc sao chép này diễn ra tự động, thậm chí bạn cũng không biết nó đang xảy ra và nó làm
máy tính của bạn cảm thấy như là có không gian RAM vô hạn mặc dầu nó chỉ có 32 MB được
cài đặt. Vì không gian đĩa cứng là rẻ hơn nhiều so với chip RAM, nó cũng có một lợi ích kinh
tế tốt đẹp.
Tốc độ đọc/ghi của ổ cứng là chậm hơn nhiều so với RAM và công nghệ ổ cứng không được
chú trọng đến truy cập các mẩu dữ liệu nhỏ tại một thời điểm. Nếu hệ thống của bạn phải
dựa quá nhiều vào bộ nhớ ảo, bạn sẽ nhận thấy giảm hiệu suất đáng kể. Điều quan trọng để
có đủ RAM để xử lý tất cả mọi thứ bạn có xu hướng làm việc một cách đồng thời – sau đó,
thời gian duy nhất bạn cảm thấy sự chậm chạp của bộ nhớ ảo là khi có một tạm dừng nhẹ
khi bạn đang chuyển đổi tác vụ. Khi đó là trường hợp mà bộ nhớ ảo là hoản hảo.
Khi nó không hoàn hảo, hệ điều hành phải liên tục hoán đổi thông tin tới hoặc lui giữa RAM
và đĩa cứng. Điều này được gọi là trận đòn và nó có thể làm cho máy tính của bạn cảm thấy
chậm kinh khủng.
Vùng đĩa cứng lưu trữ ảnh RAM được gọi là tập tin trang. Nó giữ các trang của RAM trên đĩa
cứng và hệ điều hành di chuyển dữ liệu qua lại giữa tập tin trang và RAM. Trên một máy
Windows, các tập tin trang có phần mở rộng “.SWP”.

Windows 98 là một ví dụ về một hệ điều hành điển hình có bộ nhớ ảo. Windows 98 có một
trình quản lý bộ nhớ ảo thông minh sử dụng thiết lập mặc định để giúp Windows cấp phát
không gian ổ cứng cho bộ nhớ ảo khi cần thiết. Trong hầu hết tình huống, điều này nên đáp
ứng các nhu cẩu của bạn nhưng bạn có thể muốn cấu hình bằng tay bộ nhớ ảo, nhất là nếu
bạn có nhiều hơn một ổ cứng vật lý hay các ứng dụng quan trọng tốc độ.
Tài nguyên hệ thống
Nhiều người có thể lẫn lộn về việc chạy hết bộ nhớ khi họ nhận thông báo rằng tài nguyên
hệ thống hết bộ nhớ. Trong nhiều trường hợp, một thông báo “hết bộ nhớ” là lầm lẫn, từ khi
toàn bộ hệ thống của bạn thực sự không chạy hết bộ nhớ. Điều này thực sự có nghĩa là hệ
thống đã biết trong máy tính của bạn đang chạy chậm trên bộ nhớ.
Windows duy trì một vùng bộ nhớ cho các tài nguyên hệ điều hành. Kích thước tối đa của
vùng bộ nhớ đó là 128 K trong hai vùng bộ nhớ 64 K. Windows dùng vùng bộ nhớ này để
lưu trữ các phông chữ, các ảnh bitmap( ảnh nhị phân), các danh sách trình đơn thả xuống
và các thông tin trên màn hình khác được dùng bởi mỗi ứng dụng.
22

Khi bất cứ chương trình nào bắt đầu chạy, nó dùng hết một số không gian trong vùng tài
nguyên hệ thống ở trong bộ nhớ. Nhưng khi bạn thoát, một số chương trình không trả lại tài
nguyên hệ thống chúng được tạm thời sử dụng. Cuối cùng hệ thống sẽ sập khi chạy hết bộ
nhớ. Sập đôi thỉnh thoảng xảy ra nếu bạn mở và đóng nhiều chương trình, thậm chí những
việc tương tự mà không cần khởi động lại định kỳ. Đây là những gì Microsoft gọi là lỗ hổng
tài nguyên hay lỗ hổng bộ nhớ.
Khi bạn cho hệ thống của bạn để thoát một chương trình, lẽ ra chương trình phải trả lại tài
nguyên nó đã sử dụng. Tuy nhiên, các chương trình được viết bởi con người và những lầm
lẫn có thể xảy ra. Chương trình có thể không trả lại toàn bộ tài nguyên cho hệ điều hành.
Việc thất bại trả lại này là lỗ hổng bộ nhớ, cuối cùng dẫn tới thông báo rằng máy tính của
bạn thiếu tài nguyên. Các lỗ hổng bộ nhớ cũng có thể được gây ra bởi các chương trình tự
động nạp mỗi khi bạn khởi động hệ thống của bạn.
Vấn đề tài nguyên hệ thống là cái gì đó bạn có thể phải sống với nó cho đến khi các ứng
dụng cư xử không đứng đắn được tìm thấy. Nếu bạn chắc chắn một chương trình nào đó

đang gây ra vấn đề, chắc chắn để liên hệ với nhà cung cấp phần mềm.
Sự bảo trì phòng ngừa tốt nhất là động lại hệ thống của bạn định kỳ.
RAM
Bộ nhớ truy cập ngẫu nhiên( RAM) là dạng nổi tiếng nhất của bộ nhớ máy tính. RAM được
coi là “ truy cập ngẫu nhiên” vì bạn có thể truy cập trực tiếp bất kỳ ô nhớ nào nếu bạn biết
hàng và cột giao nhau tại ô đó.
Đối lập với RAM là bộ nhớ truy cập nối tiếp( SAM). SAM lưu trữ dữ liệu như một loạt các ô
nhớ chỉ có thể được truy cập tuần tự( giống như một băng cassette).
Nếu dữ liệu không phải ở vị trí hiện tại, mỗi ô nhớ được kiểm tra cho đến khi dữ liệu cần
thiết được tìm thấy. SAM hoạt động rất tốt cho vùng nhớ đệm – nơi dữ liệu thường được
lưu trữ theo thứ tự mà trong đó nó sẽ được sử dụng( một ví dụ tốt là bộ nhớ đệm hoạ tiết
trên card màn hình). Dữ liệu RAM, mặt khác có thể được truy cập theo thứ tự bất kỳ.
Tương tự như một bộ vi xử lý, một chip nhớ là một mạch tích hợp( IC) được làm bằng hàng
triệu Transistor và tụ điện. Trong dạng phổ biến nhất của bộ nhớ máy tính, bộ nhớ truy cập
ngẫu nhiên động( DRAM), một Transistor và một tụ điện được ghép nối để tạo ra một ô nhớ
biểu diễn cho một bit dữ liệu duy nhất.
Tụ điện giữ thông tin bit 0 hoặc 1. Transistor hoạt động như một công tắc để cho mạch điều
khiển trên chip nhớ đọc tụ điện hoặc thay đổi trạng thái của nó.
Một tụ điện giống như một vùng chứa nhỏ có thể lưu trữ điện tử. Để lưu trữ bit 1 trong ô
nhớ, vùng chứa được làm đầy với các điện tử. Để lưu trữ bit 0, nó được làm trống. Vấn đề
với vùng chứa của tụ điện là nó có lỗ hổng. Trong một vấn đề của một vài mili giây, vùng
chứa đầy trở thành trống rỗng.
Vì thế, để bộ nhớ động làm việc, hoặc CPU hoặc trình kiểm soát bộ nhớ phải đi cùng và nạp
điện lại toàn bộ các tụ điện đang giữ bit 1 trước khi chúng phóng điện. Để làm điều đó, trình
23

kiểm soát bộ nhớ đọc bộ nhớ và sau đó ghi đúng lại. Thao tác làm tươi này tự động xảy ra
hàng ngàn lần mỗi giây.
Thao tác làm tươi này là nơi DRAM có được tên của nó. DRAM phải được làm tươi động mọi
lúc hoặc quên những gì nó đang giữ. Nhược điểm của tất cả việc làm tươi này là mất thời

gian và làm chậm bộ nhớ.
Các ô nhớ được khắc lên trên một vi mạch bán dẫn trong một mảng của các cột( các tuyến
bit) và các hàng( các tuyến word). Tương giao của một tuyến bit và một tuyến word cấu tạo
nên địa chỉ của ô nhớ.
DRAM làm việc bằng cách gửi một dòng nạp thông qua cột thích hợp để kích hoạt bóng bán
dẫn ở mỗi bit trong cột. Khi ghi, các tuyến hàng chứa trạng thái tụ điện nên bật. Khi đọc, bộ
khuếch đại cảm biến xác định mức nạp điện trong tụ điện.
Nếu nó hơn 50%, nó đọc nó như bit 1; nếu không nó đọc nó như bit 0. Bộ đếm giám sát
trình tự làm tươi dựa trên hàng nào đã được truy cập theo thứ tự nào. Khoảng thời gian cần
thiết để làm tất cả điều này ngắn đến nỗi nó được biểu diễn trong nano giây( hàng tỉ của 1
giây). Tần suất một chip nhớ 70ns nghĩa là nó cần 70 nano giây để hoàn thành đọc và nạp
điện lại mỗi ô nhớ.
Các ô nhớ đơn độc sẽ là vô giá trị mà không có một số cách để có được thông tin trong và
ngoài của chúng. Vì vậy các ô nhớ có một cơ sở hạ tầng hỗ trợ toàn bộ của mạch chuyên
dụng khác. Những mạch này thực hiện các chức năng như:
 Nhận dạng mỗi hàng và cột( địa chỉ hàng và cột chọn)
 Giám sát trình tự làm tươi( bộ đếm)
 Đọc và khôi phục lại tín hiệu từ một ô( bộ khuếch đại cảm biến). Báo cho ô có nên
nhận dòng điện nạp hay không( ghi cho phép)
 Các chức năng khác của trình kiểm soát bộ nhớ bao gồm một loạt các tác vụ bao gồm
nhận dạng, tốc độ và số lượng bộ nhớ cùng với kiểm tra lỗi
SRAM sử dụng công nghệ hoàn toàn khác. Trong SRAM, flip-flop giữ mỗi bit của bộ nhớ. Một
flip-flop cho một ô nhớ có 4 hoặc 6 bóng bán dẫn cùng với một số hệ thống dây dẫn nhưng
không bao giờ phải được làm tươi.
Điều này làm cho SRAM nhanh hơn đáng kể so với DRAM. Tuy nhiên, vì nó có nhiều linh
kiện hơn, một ô nhớ tĩnh lấy rất nhiều không gian trên chip so với một ô nhớ động. Vì thế,
bạn có ít bộ nhớ hơn trên mỗi chip và làm cho SRAM đắt hơn nhiều.
SRAM nhanh và đắt, DRAM rẻ hơn và chậm hơn. SRAM được dùng để tạo ra bộ nhớ đệm
nhảy cảm của CPU. DRAM hình thành không gian RAM hệ thống lớn hơn.
Các chip nhớ trong máy tính để bàn ban đầu sử dụng một cấu hình pin gọi là Dual Inline

Package( DIP) ( vỏ vi mạch coá hai hàng chân cắm). Cấu hình chân cắm này có thể được hàn
vào các lỗ trên bo mạch chủ của máy tính hoặc cắm vào khe cắm được hàn trên bo mạch
chủ. Phương pháp này làm việc tốt khi máy tính thường vận hành trên một vài MB hoặc ít
24

hơn của RAM, nhưng khi nhu cầu về bộ nhớ tăng lên, số lượng chip cần không gian trên bo
mạch chủ cũng gia tăng
Giải pháp là để đặt chip nhớ cùng với tất cả các thành phần hỗ trỡ trên một bo mạch in
riêng biệt( PCB) có thể sau đó được cắm vào đầu nối đặc biệt( ngân hàng bộ nhớ) trên bo
mạch chủ. Hầu hết các chip dùng một cấu hình pin small outline J-lead( SOJ), nhưng một vài
nhà sản xuất dùng cấu hình thin small outline package (TSOP) như là một giải pháp tốt.
Sự khác biệt chính giữa các loại pin mới hơn và cấu hình DIP đầu tiên là chip SOJ và TSOP
được gắn lên bề mặt PCB. Nói cách khác, các chân cắm được hàn trực tiếp lên bề mặt của bo
mạch, không chèn vào lỗ hoặc khe cắm.
Các chip nhớ thường chỉ có sẵn như một bộ phận của card được gọi là mô-đun. Bạn đã có
thể nhìn thấy bộ nhớ được liệt kê như 8x32 hay 4x16. Những số này biểu diễn cho số lượng
các chip được nhân bởi khả của mỗi chíp riêng lẻ, và được đo bằng Mb hay một triệu các bit.
Lấy kết quả và chia nó cho 8 để có được số MB trên mô-đun đó. Ví dụ, 4x32 nghĩa là mô-đun
đó có 4 chip 32 Mb. Nhân 4 với 32 bạn được 128 Mb. Từ khi chúng ta biết rằng 1 byte có 8
bit, chúng ta cần phải chia kết quả của chúng ta cho 8. Và kết quả cuối cùng là 16 MB.
Ông trời có thể nói bạn không bao giờ có thể đủ tiền. Tương tựcũng đúng với RAM, nhất là
nếu bạn làm nhiều công việc đồ hoạ chuyên sâu hay chơi trò chơi. Bên cạnh bản thân CPU,
RAM là yếu tố quan trọng nhất trong hiệu suất máy tính. Nếu bạn không có đủ tiền, thêm
RAM có thể tạo ra một sự khác biệt hơn là lắp CPU mới.
Nếu hệ thống của bạn phản hồi chậm hoặc truy cập ổ cứng thường xuyên thì sau đó bạn cần
thêm nhiều RAM. Nếu bạn đang chạy Windows XP, Microsoft khuyến cáo yêu cầu RAM tối
thiểu là 128 MB. Với 64 MB bạn có thể gặp các vấn đề ứng dụng thường xuyên.
Đôí với hiệu năng tối ưu với các ứng dụng để bàn chuẩn thì 256 MB được khuyến khích.
Nếu bạn đang chạy Windows 95/98, bạn cần tối thiểu 32MB và máy tính của bạn sẽ làm
việc tốt hơn nhiều với 64 MB. Windows NT/2000 cần ít nhất là 64MB và nó sẽ lấy mọi thứ

mà bạn có thể ném vào nó, nên có lẽ bạn cần 128 MB hoặc hơn.
Linux làm việc vui vẻ trên một hệ thống với 4 MB của RAM, nếu bạn dự định thêm X-
Windows hoặc làm nhiều công việc quan trọng, tuy nhiên, có lẽ bạn muốn 64 MB. Hệ thống
MAC OS X cần có tối thiểu là 128 MB hoặc cho hiệu năng tối ưu với 256 MB.
Lượng RAM liệt kê cho mỗi hệ thống trên được ước lượng cho sử dụng bình thường – truy
cập internet, xử lý văn bản, các ứng dụng gia đình/văn phòng tiêu chuẩn và đèn giải trí. Nếu
bạn làm thiết kế bằng máy tính, mô phỏng/hình động 3D hay xử lý dữ liệu lớn hoặc nếu bạn
là một game thủ đáng gờm, sau đó có lẽ bạn sẽ cần RAM nhiều hơn. Bạn cũng có thể cần
nhiều RAM hơn nếu máy tính của bạn là máy chủ về các trang Wed, cơ sở dữ liệu, ứng dụng,
FTP hoặc mạng.
Một câu hỏi khác là bạn muốn bao nhiêu VRAM cho card màn hình của bạn. Hầu hết các
card bạn có thể mua hiện nay có ít nhất là 16MB RAM. Đây là bình thường, đủ để vận hành
trong một môi trường văn phòng điển hình. Có lẽ bạn nên đầu tư 32 MB hoặc card đồ hoạ
tốt hơn nếu bạn muốn làm bất cứ điều nào sau đây:
25

 Chơi trò chơi thực
 Quay và chỉnh sửa video
 Tạo đồ hoạ 3 D
 Làm việc trong môi trường đầy màu sắc, độ phân giải cao
Khi mua một card màn hình, nhớ rằng màn hình và máy tính của bạn phải có khả năng hỗ
trợ card mà bạn mua.
Bộ nhớ máy tính
Bạn đã biết rằng máy tính trước mặt bạn có bộ nhớ. Những gì bạn có thể không biết là hầu
hết các mục điện tử bạn sử dụng mỗi ngày cũng có một số dạng của bộ nhớ, dưới đây chỉ là
một vài ví dụ của nhiều mục sử dụng bộ nhớ:
 Điện thoại di động
 PDA(personal digital assistant) (máy trợ lý cá nhân dùng kỹ thuật số)
 Trò chơi cầm tay
 Đài radio trên xe hơi

 VCR(video-cassette recorder ) ( máy ghi hình video)
 TV
Mỗi thiết bị này sử dụng các loại bộ nhớ khác nhau theo những cách khác nhau.
Mặc dầu về mặt kỹ thuật, bộ nhớ là một dạng của lưu trữ điện tử, nó được sử dụng thường
xuyên nhất để nhận dạng nhanh chóng hình thức lưu trữ tạm thời. Nếu CPU trong máy của
bạn phải liên tục truy cập ổ cứng để lấy mỗi mẩu dữ liệu mà nó cần thì nó sẽ hoạt động rất
chậm. Khi thông tin được lưu trong bộ nhớ, CPU có thể truy cập nó nhanh hơn rẩ nhiều. Hầu
hết các dạng bộ nhớ là nhằm lưu trữ dữ liệu tạm thời.
CPU truy cập bộ nhớ theo hệ thống cấp bậc rõ ràng. Cho dù dữ liệu được lưu trong ổ cứng
hay được nhập từ bàn phím thì hầu hết dữ liệu đi vào RAM trước tiên. CPU sau đó lưu trữ
các mẩu dữ liệu mà nó sẽ cần truy cập, thường là trong bộ nhớ đệm và duy trì các lệnh đặc
biệt nào đó trong thanh ghi.
Tất cả các thành phần trong máy tính của bạn, như CPU, ổ cứng và hệ điều hành, làm việc
với nhau như một đội và bộ nhớ là một trong những bộ phận thiết yếu của đội này. Từ lúc
bạn bật máy tính của bạn cho đến lúc bạn tắt nó, CPU của bạn liên tục sử dụng bộ nhớ, hãy
xem xét một kịch bản điển hình:
Bạn bật máy tính
Máy tính nạp dữ liệu từ ROM và thực hiện power-on self-test (POST)( tự kiểm tra nguồn) để
chắc chắn toàn bộ các thành phần chính được hoạt động tốt. Như một phần của kiểm tra
này, trình kiểm soát bộ nhớ kiểm tra toàn bộ địa chỉ bộ nhớ với thao tác đọc/ghi nhanh
chóng để đảm bảo không có lỗi trong các chip nhớ. Đọc/ghi nghĩa là dữ liệu được ghi vào 1
bit rồi sau đó đọc từ bit đó.