You are on page 1of 10

Câu hỏi kiểm tra Hệ Điều Hành

Câu 1: Nêu các vai trò của hệ điều hành. Phân biệt giữa hệ điều hành và chương trình hệ
thống (system program), cho ví dụ minh họa.

 Vai trò của hệ điều hành: Hệ điều hành tương tự như một chính phủ, nó không thực
hiện chức năng hữu ích nào.
 Nó cung cấp một môi trường trong đó các chương trình khác có thể thực hiện
công việc hữu ích.
 Hệ điều hành như một bộ phân bổ tài nguyên. Hệ thống máy tính có nhiều tài
nguyên có thể được yêu cầu để giải quyết vấn đề: thời gian CPU, không gian
bộ nhớ, không gian lưu trữ tệp, thiết bị I / O, v.v. Hệ điều hành đóng vai trò là
người quản lý các tài nguyên này. Đối mặt với nhiều yêu cầu và có thể xung
đột về tài nguyên, hệ điều hành phải quyết định cách phân bổ chúng cho các
chương trình và người dùng cụ thể để có thể vận hành hệ thống máy tính một
cách hiệu quả và công bằng.
 Thiết lập giao diện người dùng.
 Phân biệt giữa hệ điều hành và chương trình hệ thống: Trong hệ thống phân cấp máy
tính logic. Ở mức thấp nhất là phần cứng. Tiếp theo là hệ điều hành, sau đó là các
chương trình hệ thống và cuối cùng là các chương trình ứng dụng.

Chương trình hệ thống cung cấp một môi trường thuận tiện để phát triển và thực hiện
chương trình. Chúng có thể chia thành: Quản lý tệp, Thông tin trạng thái, Sửa đổi tệp, Hỗ trợ
ngôn ngữ lập trình, Tải và thực thi chương trình, Thông tin liên lạc, Dịch vụ nền. Một số ví
dụ về các chương trình hệ thống là hệ điều hành, hệ thống mạng, máy chủ trang web, máy
chủ sao lưu dữ liệu, v.v.

Câu 2: Hãy giải thích câu nói HĐH là thành phần cấp phát tài nguyên máy tính (resource
allocator). Cho ví dụ minh họa.

Hệ điều hành là một phần mềm hệ thống hoạt động như một giao diện giữa phần cứng
và các chương trình ứng dụng. Nó tương tác với các thiết bị khác nhau, bộ nhớ (ram), bộ nhớ
phụ (đĩa) và cho phép các chương trình khác nhau truy cập các tài nguyên này. Vì hệ điều
hành quyết định chương trình nào sẽ sử dụng RAM / đĩa hoặc bất kỳ thiết bị nào khác tại một
thời điểm cụ thể. Đó là lý do tại sao hệ điều hành được gọi là bộ cấp phát tài nguyên.

Ví dụ: một CPU trong hệ thống chia sẻ thời gian. Trong hệ thống chia sẻ thời gian,
OS sửa khe thời gian cho CPU. Đầu tiên một trong các quá trình lấy CPU, khi hết thời gian
rãnh, CPU sẽ chuyển sang các quá trình tiếp theo trong hàng đợi sẵn sàng. Trong ví dụ này,
CPU là tài nguyên thời gian.

Câu 3: Hãy giải thích câu nói HĐH là thành phần điều khiển các chương trình (program
controller). Cho ví dụ minh họa.
Hệ điều hành được xem như một chương trình điều khiển vì nó quản lý việc thực thi
các chương trình của người dùng để ngăn ngừa lỗi và sử dụng máy tính không đúng cách.

Chương trình là thứ thực thi trên bộ xử lý. Hệ điều hành thực thi trên bộ xử lý và do
đó, là một chương trình. Tuy nhiên, hệ điều hành cũng có thể hướng dẫn bộ xử lý thực hiện
một số hoạt động cấp thấp nhất định mà các chương trình ứng dụng không cho phép thực
hiện. Ví dụ, hệ điều hành có thể yêu cầu bộ xử lý bắt đầu gửi dữ liệu đến máy in để in một số
trang. Nhưng điều gì sẽ xảy ra khi phải in nhiều thứ? Hệ điều hành phải lên lịch cho chúng,
cái khác (trong trường hợp máy in, hệ thống như vậy được gọi là "bộ đệm"). Trong trường
hợp như vậy, hệ điều hành giữ dữ liệu và hướng dẫn bộ xử lý gửi dữ liệu bằng bus dữ liệu
đến cổng nơi máy in được gắn vào. Đây là điều mà các ứng dụng thường không được làm.
Bạn có thể thấy rằng hệ điều hành đang điều khiển những gì ứng dụng có thể làm và điều
khiển phần cứng thực hiện những việc nhất định theo thứ tự mà hệ điều hành quyết định. Vì
hệ điều hành là một chương trình và có thể kiểm soát các khía cạnh nhất định về cách mọi thứ
sẽ thực thi, chúng cũng được gọi là chương trình điều khiển.

Câu 4: Ngắt trong máy tính là gì, có các loại nào, và vì sao nói HĐH thường được xây dựng
và hoạt động theo các ngắt (interrupt driven).

Trong kiến trúc máy tính, ngắt là một tín hiệu đến bộ xử lý do phần cứng hoặc phần
mềm phát ra cho biết một sự kiện cần được chú ý ngay lập tức.

Có 3 loại ngắt:

 Ngắt phần cứng: được tạo ra bởi các thiết bị phần cứng để báo hiệu rằng chúng cần
được hệ điều hành quan tâm. Chúng có thể vừa nhận được một số dữ liệu (ví dụ: tổ
hợp phím trên bàn phím hoặc dữ liệu trên thẻ ethernet); hoặc chúng vừa hoàn thành
một nhiệm vụ mà hệ điều hành yêu cầu trước đó, chẳng hạn như truyền dữ liệu giữa ổ
cứng và bộ nhớ.
 Ngắt phần mềm được tạo ra bởi các chương trình khi chúng muốn hệ điều hành thực
hiện một lệnh gọi hệ thống.
 Các bẫy do chính CPU tạo ra để chỉ ra rằng một số lỗi hoặc tình trạng đã xảy ra mà hệ
điều hành cần hỗ trợ.

Để kiểm soát thành công một số quy trình, cốt lõi của hệ điều hành sử dụng những gì
được gọi là ngắt. Ngắt là một máy được sử dụng để thực hiện khái niệm đa nhiệm. Nó là
một tín hiệu từ phần cứng hoặc phần mềm để chỉ ra tỷ lệ của sự kiện. Khi một hoặc nhiều
tiến trình đang chạy và tại thời điểm tương tự, nếu người dùng đưa ra một tiến trình bổ sung
thì ngắt sẽ diễn ra. Nếu CPU không thăm dò bit điều khiển, nhưng thay vào đó nhận một
ngắt khi thiết bị sẵn sàng cho byte tiếp theo, quá trình truyền dữ liệu được cho là được điều
khiển ngắt. Ngắt phần cứng xảy ra khi một thao tác I / O được thực hiện chẳng hạn như phân
tích một số dữ liệu vào máy tính từ ổ băng. Trong thuật ngữ bổ sung, ngắt phần cứng được
sử dụng bởi các thiết bị để thông báo rằng chúng cần nhận biết từ hệ điều hành. Một số ví dụ
quen thuộc là báo hiệu đĩa cứng đã đọc một chuỗi khối dữ liệu, hoặc một thiết bị mạng đã xử
lý bộ đệm chứa các gói mạng. Ngắt cũng được sử dụng cho các sự kiện không đồng bộ,
chẳng hạn như sự xuất hiện của dữ liệu mới từ mạng bên ngoài. Các ngắt phần cứng được
chuyển thẳng tới CPU thông qua một mạng nhỏ các thiết bị định tuyến và quản trị ngắt.

Câu 5: Thế nào là một system call (lời gọi hệ thống) và nó khác gì so với lời gọi thông
thường. Cho ví dụ minh họa.

Trong máy tính, lệnh gọi hệ thống là cách lập trình trong đó chương trình máy tính
yêu cầu một dịch vụ từ hạt nhân của hệ điều hành mà nó được thực thi. Lệnh gọi hệ thống là
một cách để các chương trình tương tác với hệ điều hành. Chương trình máy tính thực hiện
cuộc gọi hệ thống khi nó đưa ra yêu cầu đối với hạt nhân của hệ điều hành. Lệnh gọi hệ
thống cung cấp các dịch vụ của hệ điều hành cho chương trình người dùng thông qua Giao
diện chương trình ứng dụng (API). Nó cung cấp một giao diện giữa quy trình và hệ điều
hành để cho phép các quy trình cấp người dùng yêu cầu các dịch vụ của hệ điều hành. Lời
gọi hệ thống là điểm vào duy nhất vào hệ thống hạt nhân. Tất cả các chương trình cần tài
nguyên phải sử dụng lệnh gọi hệ thống. Các dịch vụ được cung cấp bởi Lệnh gọi hệ thống:
Tạo và quản lý quy trình Quản lý bộ nhớ chính Truy cập tệp, Quản lý hệ thống thư mục và
tệp Xử lý thiết bị (I / O) Mạng bảo vệ, v.v. Các loại lệnh gọi hệ thống: Có 5 loại lệnh gọi hệ
thống khác nhau

- Kiểm soát quá trình: kết thúc, hủy bỏ, tạo, chấm dứt, cấp phát và giải phóng bộ
nhớ. - Quản lý tệp: tạo, mở, đóng, xóa, đọc tệp, v.v.

- Quản lý thiết bị

- Bảo trì thông tin

- Truyền thông.

Ví dụ: CreateFile(), ReadFile(), WriteFile(), CloseHandle()

Câu 6: Device driver là gì? Nó khác gì so với device controller. Cho ví dụ minh họa.

Trình điều khiển thiết bị là một chương trình cho phép hệ điều hành giao tiếp với
phần cứng máy tính cụ thể. Các bộ phận máy tính cần một trình điều khiển vì chúng không
sử dụng các lệnh tiêu chuẩn. Ví dụ: card màn hình của Advanced Micro Devices (hoặc
AMD) và Nvidia thực hiện công việc giống nhau, nhưng mỗi loại yêu cầu trình điều khiển
riêng vì phần cứng khác nhau yêu cầu các lệnh khác nhau. Các hệ điều hành khác nhau cũng
cần các trình điều khiển khác nhau, trình điều khiển được viết cho macOS không thể được sử
dụng bởi Microsoft Windows.

Bộ điều khiển thiết bị là một đơn vị phần cứng được gắn vào bus I / O của máy tính
và hoạt động giống như một giao diện giữa thiết bị và trình điều khiển thiết bị. Nó là một
thành phần điện tử bao gồm các chip có nhiệm vụ xử lý các tín hiệu vào và ra của CPU. Nó
hoạt động như một cầu nối giữa thiết bị và hệ điều hành nhận các lệnh từ hệ điều hành, chẳng
hạn như đọc, ghi hoặc các lệnh phức tạp hơn. Mỗi bộ điều khiển thiết bị có một bộ lệnh
riêng, tùy thuộc vào bản chất hoặc nhà sản xuất. Vì vậy, có các phần mềm khác nhau đang
chạy như một phần của HĐH tương tác với mỗi bộ điều khiển. Do đó, luôn có một bộ điều
khiển thiết bị và một trình điều khiển thiết bị liên kết với mỗi thiết bị giao tiếp với HĐH. Bộ
điều khiển nhận dữ liệu từ thiết bị được kết nối, lưu trữ tạm thời, sau đó truyền dữ liệu tới
trình điều khiển thiết bị của nó. Vì vậy, bộ điều khiển thiết bị tương tác với hệ điều hành
thông qua trình điều khiển thiết bị.

Câu 7: Kernel mode và user mode là gì và tại sao các HĐH thường chia thành 2 chế độ hoạt
động này.

Có hai chế độ hoạt động riêng biệt: chế độ người dùng và chế độ hạt nhân . Một bit, được gọi
là bit chế độ, được thêm vào phần cứng của máy tính để chỉ ra chế độ hiện tại: hạt nhân (0) hoặc
người dùng (1). Tại thời điểm khởi động hệ thống, phần cứng khởi động ở chế độ hạt nhân. Hệ điều
hành sau đó được tải và khởi động các ứng dụng người dùng ở chế độ người dùng. Bất cứ khi nào
xảy ra bẫy hoặc ngắt, phần cứng sẽ chuyển từ chế độ người dùng sang chế độ hạt nhân . Phần cứng chỉ
cho phép các lệnh đặc quyền được thực thi trong chế độ hạt nhân. Nếu cố gắng thực hiện một lệnh
đặc quyền ở chế độ người dùng, phần cứng sẽ không thực hiện lệnh đó mà coi nó là bất hợp pháp và
bẫy nó vào hệ điều hành. Lệnh chuyển sang chế độ hạt nhân là một ví dụ về lệnh đặc quyền.

Câu 8: So sánh giữa 2 khái niệm chương trình (program) và tiến trình (process). Liệu có thể
nói việc quản lý các chương trình và tiến trình là nhiệm vụ chính của một HĐH so với các
việc khác được ko?

 Chương trình: Khi chúng ta thực thi một chương trình vừa được biên dịch, HĐH sẽ
tạo ra một tiến trình để thực thi chương trình đó. Việc thực thi chương trình bắt đầu
thông qua nhấp chuột GUI, nhập dòng lệnh tên của chương trình, v.v. Chương trình là
một thực thể thụ động vì nó nằm trong bộ nhớ phụ, chẳng hạn như nội dung của tệp
được lưu trữ trên đĩa. Một chương trình có thể có nhiều quy trình.
 Tiến trình: Thuật ngữ tiến trình đề cập đến mã chương trình đã được tải vào bộ nhớ
của máy tính để nó có thể được thực thi bởi đơn vị xử lý trung tâm (CPU). Một tiến
trình có thể được mô tả như một phiên bản của chương trình đang chạy trên máy tính
hoặc như một thực thể có thể được gán và thực thi trên một bộ xử lý. Một chương
trình trở thành một quá trình khi được tải vào bộ nhớ và do đó là một thực thể hoạt
động.

So sánh:

1. Chương trình chứa một tập hợp các hướng dẫn được thiết kế để hoàn thành một
nhiệm vụ cụ thể. Quy trình là một ví dụ của một chương trình đang thực thi.

2. Chương trình là một thực thể thụ động vì nó nằm trong bộ nhớ phụ. Quy trình là
một thực thể hoạt động vì nó được tạo ra trong quá trình thực thi và được tải vào bộ nhớ
chính.

3. Chương trình tồn tại tại một nơi duy nhất và tiếp tục tồn tại cho đến khi nó bị xóa.
Quá trình tồn tại trong một khoảng thời gian giới hạn vì nó bị kết thúc sau khi hoàn thành
nhiệm vụ.

4. Chương trình là một thực thể tĩnh. Quy trình là một thực thể động.
5. Chương trình không có bất kỳ yêu cầu tài nguyên nào, nó chỉ yêu cầu không gian
bộ nhớ để lưu các lệnh. Process có yêu cầu tài nguyên cao, nó cần các tài nguyên như CPU,
địa chỉ bộ nhớ, I / O trong suốt thời gian tồn tại của nó.

6. Chương trình không có bất kỳ khối điều khiển nào. Process có khối điều khiển
riêng gọi là Process Control Block.

Có thể nói việc quản lý các chương trình và tiến trình là nhiệm vụ chính của một
HĐH so với các việc khác được. Hệ điều hành là một tập hợp các chương trình. Chương
trình quan trọng nhất trong hệ điều hành, chương trình quản lý hệ điều hành, là chương trình
giám sát, phần lớn vẫn nằm trong bộ nhớ và do đó được gọi là chương trình thường trú.
Người giám sát kiểm soát toàn bộ hệ điều hành và chỉ tải vào bộ nhớ các chương trình hệ
điều hành khác (được gọi là không lưu trữ) từ ổ lưu trữ khi cần thiết. Hệ điều hành có ba
chức năng chính: (1) quản lý tài nguyên của máy tính, chẳng hạn như đơn vị xử lý trung tâm,
bộ nhớ, ổ đĩa và máy in, (2) thiết lập giao diện người dùng và (3) thực thi và cung cấp dịch vụ
cho phần mềm ứng dụng. . Tuy nhiên, phần lớn công việc của hệ điều hành bị ẩn khỏi người
dùng; nhiều nhiệm vụ cần thiết được thực hiện ở hậu trường.

Câu 9: Các nhiệm vụ chủ yếu liên quan đến quản lý tiến trình là gì?

Một tiến trình cần các tài nguyên nhất định — bao gồm thời gian CPU, bộ nhớ, tệp và
thiết bị I / O — để hoàn thành nhiệm vụ của nó. Các tài nguyên này được cấp cho tiến trình
khi nó được tạo hoặc được cấp phát cho nó khi nó đang chạy. Ví dụ, hãy xem xét một tiến
trình có chức năng là hiển thị trạng thái của tệp trên màn hình của một thiết bị đầu cuối. Quá
trình sẽ được cung cấp tên của tệp làm đầu vào và sẽ thực hiện các lệnh thích hợp và lệnh gọi
hệ thống để lấy và hiển thị thông tin mong muốn trên thiết bị đầu cuối. Khi tiến trình kết
thúc, hệ điều hành sẽ lấy lại mọi tài nguyên có thể tái sử dụng. Việc thực hiện một tiến trình
như vậy phải theo trình tự. CPU thực hiện hết lệnh này đến lệnh khác cho đến khi quá trình
này hoàn tất. Tiến trình là đơn vị công việc trong một hệ thống. Một hệ thống bao gồm một
tập hợp các tiến trình, một số trong số đó là các tiến trình của hệ điều hành (những tiến trình
thực thi mã hệ thống) và phần còn lại là tiến trình của người dùng (những quy trình thực thi
mã người dùng). Hệ điều hành chịu trách nhiệm về các hoạt động sau liên quan đến quản lý
tiến trình:

• Lập lịch các tiến trình và luồng trên CPU

• Tạo và xóa cả tiến trình của người dùng và hệ thống

• Tạm dừng và tiếp tục tiến trình

• Cung cấp cơ chế đồng bộ hóa tiến trình

• Cung cấp cơ chế giao tiếp tiến trình

Câu 10: Các nhiệm vụ chủ yếu liên quan đến quản lý bộ nhớ (memory management) là gì?
Để cải thiện cả việc sử dụng CPU và tốc độ phản hồi của máy tính với người dùng,
các máy tính đa năng phải lưu giữ một số chương trình trong bộ nhớ, tạo ra nhu cầu quản lý
bộ nhớ. Hệ điều hành chịu trách nhiệm về các hoạt động sau liên quan đến quản lý bộ nhớ:

• Theo dõi phần nào của bộ nhớ hiện đang được sử dụng và ai đang sử dụng chúng

• Quyết định quy trình (hoặc các phần của quy trình) và dữ liệu sẽ di chuyển vào và ra
bộ nhớ

• Phân bổ và giải quyết không gian bộ nhớ khi cần

Câu 11: Các nhiệm vụ chủ yếu liên quan đến quản lý thiết bị lưu trữ (storage management)
là gì?

 Quản lý tập tin: Hệ điều hành chịu trách nhiệm về các hoạt động sau liên quan đến quản lý
tệp:
1. Tạo và xóa tệp
2. Tạo và xóa thư mục để sắp xếp tệp
3. Hỗ trợ các nguyên tắc cơ bản để thao tác tệp và thư mục
4. Ánh xạ tệp vào bộ nhớ thứ cấp
5. Sao lưu tệp trên phương tiện lưu trữ ổn định (không bay hơi)
 Khối lượng lớn – quản lý tệp: vì bộ nhớ chính quá nhỏ để chứa tất cả dữ liệu và chương trình,
và vì dữ liệu mà nó lưu giữ bị mất khi mất điện, hệ thống máy tính phải cung cấp bộ nhớ phụ
để sao lưu bộ nhớ chính. Hầu hết các hệ thống máy tính hiện đại sử dụng đĩa làm phương tiện
lưu trữ trực tuyến chính cho cả chương trình và dữ liệu. Hệ điều hành chịu trách nhiệm về các
hoạt động sau liên quan đến quản lý đĩa:
1. Quản lý dung lượng trống
2. Cấp phát bộ nhớ
3. Lập lịch đĩa
 Bộ nhớ đệm: Thông tin thường được lưu giữ trong một số hệ thống lưu trữ (chẳng hạn như bộ
nhớ chính). Khi được sử dụng, nó được sao chép vào một hệ thống lưu trữ nhanh hơn — bộ
nhớ cache — trên một cơ sở tạm thời. Khi chúng ta cần một thông tin cụ thể, trước tiên
chúng ta kiểm tra xem nó có trong bộ nhớ cache hay không. Nếu có, chúng tôi sử dụng thông
tin trực tiếp từ bộ nhớ cache. Nếu không, chúng tôi sử dụng thông tin từ nguồn, đưa một bản
sao vào bộ nhớ cache với giả định rằng chúng tôi sẽ sớm cần lại.
 Hệ thống I/O: Hệ thống con I / O bao gồm một số thành phần:
1. Một thành phần quản lý bộ nhớ bao gồm, bộ nhớ đệm và bộ đệm
2. Giao diện trình điều khiển thiết bị chung
3. Trình điều khiển cho các thiết bị phần cứng cụ thể
4. Chỉ trình điều khiển thiết bị mới biết các đặc thù của thiết bị cụ thể mà nó được chỉ định.

Câu 12: Nêu các dịch vụ mà một HĐH cần cung cấp.

 Thực hiện chương trình. Hệ thống phải có khả năng tải một chương trình vào bộ nhớ
và chạy chương trình đó. Chương trình phải có thể kết thúc quá trình thực thi của nó,
bình thường hoặc bất thường (chỉ ra lỗi).
 Hoạt động I / O.
 Thao tác hệ thống tập tin. Hệ thống tệp được quan tâm đặc biệt. Rõ ràng, các chương
trình cần đọc và ghi các tệp và thư mục. Họ cũng cần tạo và xóa chúng theo tên, tìm
kiếm một tệp nhất định và liệt kê thông tin tệp. Cuối cùng, một số hệ điều hành bao
gồm quản lý quyền để cho phép hoặc từ chối quyền truy cập vào tệp hoặc thư mục
dựa trên quyền sở hữu tệp.
 Truyền thông. Có nhiều trường hợp trong đó một quy trình cần trao đổi thông tin với
một quy trình khác. Giao tiếp như vậy có thể xảy ra giữa các quá trình đang thực thi
trên cùng một máy tính hoặc giữa các quá trình đang thực thi trên các hệ thống máy
tính khác nhau được liên kết với nhau bởi một mạng máy tính. Truyền thông có thể
được thực hiện thông qua bộ nhớ dùng chung, trong đó hai hoặc nhiều quá trình đọc
và ghi vào một phần bộ nhớ dùng chung, hoặc truyền thông điệp, trong đó các gói
thông tin ở các định dạng được xác định trước được hệ điều hành di chuyển giữa các
quá trình.
 Phát hiện lỗi.
 Phân bổ tài nguyên. Khi có nhiều người dùng hoặc nhiều công việc chạy cùng một
lúc, tài nguyên phải được phân bổ cho từng người trong số họ.
 Kế toán. Chúng tôi muốn theo dõi người dùng sử dụng bao nhiêu và loại tài nguyên
máy tính nào. Việc lưu trữ hồ sơ này có thể được sử dụng cho kế toán (để người dùng
có thể được lập hóa đơn) hoặc đơn giản là để tích lũy số liệu thống kê sử dụng.
 Bảo vệ và an ninh.

Câu 13: Phân biệt giữa 2 khái niệm policy (chính sách) và mechanism (cơ chế). Trong quá
trình xây dựng HĐH vì sao thường cần tách biệt 2 khái niệm này.

 Chính sách: một tập hợp các ý tưởng hoặc một kế hoạch về những việc cần làm. Cơ
chế: một quy trình, kỹ thuật hoặc hệ thống để đạt được một kết quả. Một cơ chế thiên
về 'cách thức' một nhiệm vụ cụ thể (có thể là một chính sách) được thực hiện khi một
chính sách thiên về 'những gì' cần được thực hiện.
 Ví dụ, hãy xem xét một văn phòng có nhiều nhân viên. Văn phòng có thể có một
chính sách như "Tất cả các nhân viên cần được xác thực trước khi họ vào văn phòng."
Như bạn có thể thấy, chính sách này chỉ mô tả những gì cần phải làm với việc nghiên
cứu kỹ về cách có thể đạt được nó. Chính sách này có thể được thực thi bởi một hoặc
nhiều cơ chế dưới đây: 1. Mỗi nhân viên cần phải quẹt thẻ căn cước của mình trên
một đầu đọc RFID. Cửa sẽ chỉ được mở khi quẹt thẻ căn cước hợp lệ. 2. Sử dụng
máy quét võng mạc / vân tay, cảm biến sinh học sẽ xác thực mọi nhân viên bước vào
văn phòng. Tất nhiên, mỗi cơ chế trên đều có ưu và nhược điểm và chúng ta sẽ không
thảo luận ở đây.

Câu 14: Nêu một số cách tiếp cận trong việc cấu trúc HĐH.

 Cấu trúc Simple: Nhiều hệ điều hành không có cấu trúc được xác định rõ ràng.
Thông thường, những hệ thống như vậy bắt đầu là những hệ thống nhỏ, đơn giản và
hạn chế, sau đó phát triển vượt ra ngoài phạm vi ban đầu của chúng. MS-DOS là một
ví dụ về hệ thống như vậy. Trong MS-DOS, các giao diện và mức độ chức năng
không được tách biệt rõ ràng. Ví dụ, các chương trình ứng dụng có thể truy cập các
quy trình I / O cơ bản để ghi trực tiếp vào màn hình và ổ đĩa. Sự tự do như vậy khiến
MS-DOS dễ bị tấn công bởi các chương trình có lỗi (hoặc độc hại), gây ra sự cố toàn
bộ hệ thống khi các chương trình của người dùng bị lỗi. Tất nhiên, MS-DOS cũng bị
giới hạn bởi phần cứng của thời đại của nó.
 Phương pháp tiếp cận theo lớp : Với sự hỗ trợ phần cứng thích hợp, hệ điều hành có
thể được chia thành các phần nhỏ hơn và thích hợp hơn so với các hệ thống MS-DOS
và UNIX ban đầu cho phép. Sau đó, hệ điều hành có thể giữ quyền kiểm soát lớn hơn
nhiều đối với máy tính và các ứng dụng sử dụng máy tính đó. Người triển khai có
nhiều quyền tự do hơn trong việc thay đổi hoạt động bên trong của hệ thống và trong
việc tạo hệ điều hành mô-đun. Theo cách tiếp cận từ trên xuống, chức năng và tính
năng tổng thể được xác định và được tách thành các thành phần. Việc che giấu thông
tin cũng rất quan trọng, bởi vì nó cho phép các lập trình viên tự do thực hiện các quy
trình cấp thấp khi họ thấy phù hợp, miễn là giao diện bên ngoài của quy trình không
thay đổi và chính quy trình đó thực hiện tác vụ được quảng cáo. Một hệ thống có thể
được tạo thành mô-đun theo nhiều cách. Một phương pháp là phương pháp phân lớp,
trong đó hệ điều hành được chia thành một số lớp (cấp độ). Lớp dưới cùng (lớp 0) là
phần cứng; cao nhất (lớp N) là giao diện người dùng.
 Microkernel: Phương pháp này cấu trúc hệ điều hành bằng cách loại bỏ tất cả các
thành phần không cần thiết khỏi hạt nhân và triển khai chúng dưới dạng các chương
trình cấp hệ thống và cấp người dùng. Kết quả là một nhân nhỏ hơn.
 Modul: Ở đây, hạt nhân có một tập hợp các thành phần cốt lõi và các liên kết trong
các dịch vụ bổ sung thông qua các mô-đun, tại thời điểm khởi động hoặc trong thời
gian chạy. Kiểu thiết kế này phổ biến trong các triển khai hiện đại của UNIX, chẳng
hạn như Solaris, Linux và Mac OS X, cũng như Windows. Ý tưởng của thiết kế là để
hạt nhân cung cấp các dịch vụ cốt lõi trong khi các dịch vụ khác được triển khai động,
khi hạt nhân đang chạy. Liên kết động các dịch vụ thích hợp hơn là thêm các tính
năng mới trực tiếp vào hạt nhân, điều này sẽ yêu cầu biên dịch lại hạt nhân mỗi khi có
thay đổi.
 Hệ thống lai: Trong thực tế, rất ít hệ điều hành áp dụng một cấu trúc duy nhất, được
xác định chặt chẽ. Thay vào đó, chúng kết hợp các cấu trúc khác nhau, dẫn đến các
hệ thống kết hợp giải quyết các vấn đề về hiệu suất, bảo mật và khả năng sử dụng.

Câu 15: Nêu một số trạng thái của tiến trình và quá trình chuyển đổi giữa chúng.

Các quy trình trong hệ điều hành có thể ở bất kỳ trạng thái nào sau đây:

 MỚI- Tiến trình đang được tạo.


 READY- Quá trình đang chờ được gán cho một bộ xử lý.
 RUNNING- Các hướng dẫn đang được thực hiện.
 WAITING- Quá trình đang đợi một số sự kiện xảy ra (chẳng hạn như I / O hoàn thành
hoặc nhận được tín hiệu).
 TERMINATED- Quá trình đã kết thúc thực hiện.
Câu 16: Thế nào là PCB (Process Control Block). Trong Linux nó được gọi là gì và nêu một
số trường thông tin cơ bản trong đó.

Câu 17: Thế nào là context switch, và các nhiệm vụ chính của nó là gì.

Câu 18: Tại sao HĐH thường phải có bộ lập lịch cho các tiến trình? Nhiệm vụ của bộ phận
này là gì.

Câu 19: Queueing diagram là gì, vai trò của nó trong việc lập lịch cho tiến trình.

Câu 20: Nêu các phương pháp cơ bản nhằm trao đổi giữa các tiến trình (Inter-Process
Communication).

Câu 21: Cơ chế pipe trong Linux là gì, có các loại nào.

You might also like