You are on page 1of 13

I/Trắc nghiệm

1b 2b 3a 4a 5b 6d 7d 8b 9c 10c
11d 12d 13b 14d 15a 16b 17a 18c 19b 20b
21a 22c 23b 24d 25c 26c 27b 28c 29a 30d
31b 32b 33c 34b 35b 36b 37d 38c 39a 40a
41d 42c 43c 44b 45b 46a 47b 48b 49b 50b
II/Tự luận
1. Theo góc độ hệ thống xử lý, HĐH được phân thành mấy loại? Kể
tên
Theo góc độ hệ thống xử lý HĐH được phân thành 6 loại
Hệ thống xử lý theo lô (batch)
Hệ thống xử lý đa chương (multiprogram)
Hệ thống xử lý đa nhiệm (multitasking)
Hệ thống đa xử lý (hệ thống xử lý song song)
Hệ thống xử lý phân tán
Hệ thống xử lý thời gian thực
2. Những yêu cầu của hệ điều hành đối với hệ thống chia sẻ thời
gian?
- Yêu cầu đối với OS trong hệ thống time-sharing
- Định thời công việc (job scheduling)
- Quản lý bộ nhớ (memory management)
+ Virtual memory
- Quản lý các quá trình (process management)
+ Định thời CPU
+ Đồng bộ các quá trình (synchronization)
+ Giao tiếp giữa các quá trình (process communication)
+ Tránh deadlock
- Quản lý hệ thống file, hệ thống lưu trữ
- Cấp phát hợp lý các tài nguyên
- Bảo vệ (protection)
3. Điểm chung và khác biệt giữa bộ nhớ RAM (Random Access
Memory) và bộ
nhớ ROM (Read-Only Memory) là gì?

Các điểm chung giữa bộ nhớ RAM và bộ nhớ ROM

Cả bộ nhớ RAM và bộ nhớ ROM đều là các loại bộ nhớ lưu trữ dữ liệu
trong máy tính. Tuy nhiên, có một số điểm chung quan trọng mà hai loại
bộ nhớ này chia sẻ:

Tính cơ bản của bộ nhớ

Cả RAM và ROM đều là bộ nhớ lưu trữ dữ liệu trong thiết bị máy tính.

Được sử dụng trong quá trình khởi động

Cả RAM và ROM đều được sử dụng khi máy tính được khởi động,
nhưng mục đích sử dụng khác nhau.

Đóng vai trò quan trọng

Cả RAM và ROM đều đóng vai trò quan trọng trong hoạt động của máy
tính và ảnh hưởng đến hiệu suất hoạt động của hệ thống.

Sự khác biệt giữa bộ nhớ RAM và bộ nhớ ROM


Điều quan trọng là phải hiểu rõ sự khác biệt giữa bộ nhớ RAM và bộ
nhớ ROM để có thể sử dụng chúng một cách hiệu quả. Dưới đây là
những khác biệt chính giữa hai loại bộ nhớ này:

Bộ nhớ RAM

- Lưu trữ dữ liệu tạm thời

- Cho phép ghi và đọc dữ liệu nhanh chóng

- Dữ liệu bị xóa khi máy tính tắt

Bộ nhớ ROM

- Lưu trữ dữ liệu vĩnh viễn

- Chỉ cho phép đọc dữ liệu

- Dữ liệu không bị xóa khi máy tính tắt

4. Giải thích cách hoạt động của bộ nhớ Cache (Cache memory)
trong việc
tăng tốc độ truy cập dữ liệu.
-Cách hoạt động của bộ nhớ cache để tăng tốc độ truy cập dữ liệu:
-Lưu trữ dữ liệu tạm thời: Bộ nhớ cache chứa một bản sao (hoặc một
phần) của dữ liệu từ bộ nhớ chính (RAM). Dữ liệu này được lưu trữ tạm
thời để đảm bảo rằng các dữ liệu thường xuyên được truy cập bởi CPU
có sẵn ngay lập tức trong bộ nhớ cache.
-Nguyên tắc hoạt động của bộ nhớ cache: Khi CPU cần truy cập dữ liệu
hoặc chương trình từ bộ nhớ, nó sẽ trước tiên kiểm tra xem dữ liệu đó có
tồn tại trong bộ nhớ cache không. Nếu dữ liệu đã tồn tại trong cache,
CPU có thể truy cập dữ liệu nhanh chóng từ cache thay vì phải truy cập
bộ nhớ chính (RAM), điều này giúp giảm thời gian truy cập và tăng tốc
độ xử lý.
-Nguyên lý LRU (Least Recently Used): Bộ nhớ cache thường được tổ
chức thành các khối dữ liệu (cache lines) và các bản sao của dữ liệu từ
bộ nhớ chính được lưu trữ trong các khối này. Khi cache đầy, nguyên tắc
LRU được áp dụng, nghĩa là dữ liệu ít được sử dụng nhất sẽ được loại
bỏ để giải phóng không gian cho dữ liệu mới.
- Kiểm soát bộ nhớ cache: Quản lý bộ nhớ cache đòi hỏi một bộ điều
khiển đặc biệt, thường được gọi là bộ điều khiển cache (cache
controller). Bộ điều khiển cache quản lý việc lưu trữ, đọc, ghi và cập
nhật dữ liệu trong cache, đồng thời đảm bảo tính nhất quán giữa cache
và bộ nhớ chính.
-Hiệu suất cải thiện: Bộ nhớ cache cải thiện hiệu suất của hệ thống máy
tính bằng cách giảm thời gian truy cập dữ liệu từ bộ nhớ chính, làm giảm
độ trễ trong xử lý dữ liệu. Điều này đặc biệt quan trọng trong các ứng
dụng đòi hỏi xử lý dữ liệu nhanh như các ứng dụng đồ họa, trò chơi, và
các ứng dụng chạy trong thời gian thực.

5. Với ổ đĩa SSD (Solid State Drive), làm thế nào để đảm bảo tính an
toàn của
dữ liệu khi máy tính tắt đi?
Để đảm bảo tính an toàn của dữ liệu trên ổ đĩa SSD khi máy tính tắt đi,
bạn có thể thực hiện các biện pháp sau đây:

Sử dụng mã hóa dữ liệu: Mã hóa dữ liệu là một cách hiệu quả để bảo vệ
dữ liệu trên ổ đĩa SSD. Có hai loại mã hóa quan trọng mà bạn có thể sử
dụng:
Mã hóa ổ đĩa (Drive Encryption): Bạn có thể kích hoạt tính năng mã hóa
ổ đĩa trên hệ điều hành của bạn (ví dụ: BitLocker trên Windows hoặc
FileVault trên macOS). Khi ổ đĩa SSD này tắt, dữ liệu trên nó sẽ được
mã hóa và chỉ có thể được truy cập sau khi bạn nhập mật khẩu hoặc mã
PIN khi khởi động.

Mã hóa tệp và thư mục (File and Folder Encryption): Bạn cũng có thể
mã hóa các tệp và thư mục cụ thể trên ổ đĩa SSD bằng các công cụ mã
hóa bên ngoài. Tuy nhiên, điều này không bảo vệ toàn bộ ổ đĩa và yêu
cầu bạn mã hóa từng tệp/thư mục riêng lẻ.

Sử dụng mật khẩu mạnh và phương tiện bảo mật bổ sung: Đặt mật khẩu
mạnh cho tài khoản của bạn trên hệ điều hành và kích hoạt các tùy chọn
bảo mật bổ sung như hình mẫu hoặc câu hỏi bí mật để bảo vệ truy cập
vào máy tính. Điều này sẽ đảm bảo rằng người không có quyền truy cập
không thể khởi động máy tính và truy cập vào dữ liệu trên ổ đĩa SSD.

Sao lưu dữ liệu định kỳ: Thực hiện sao lưu định kỳ của dữ liệu quan
trọng ra khỏi ổ đĩa SSD và lưu trữ chúng trên một thiết bị lưu trữ khác
hoặc trong dịch vụ đám mây an toàn. Điều này sẽ giúp bạn phục hồi dữ
liệu trong trường hợp có sự cố hoặc hỏng hóc trên ổ đĩa SSD.

Sử dụng tính năng khoá màn hình: Luôn kích hoạt tính năng khoá màn
hình (lock screen) trên máy tính của bạn khi bạn không sử dụng nó. Điều
này giúp ngăn người khác truy cập vào máy tính và dữ liệu của bạn mà
không cần mật khẩu.
Giữ máy tính và phần mềm cập nhật: Cập nhật hệ điều hành và các ứng
dụng của bạn đều quan trọng để bảo vệ máy tính khỏi các lỗ hổng bảo
mật có thể bị tấn công. Đảm bảo bạn luôn cập nhật phiên bản mới nhất
của hệ điều hành và phần mềm bảo mật.
6. Chi tiết cấu trúc và chức năng của lớp trình quản lý tiến trình
(Process
Manager) trong hệ điều hành
Chi tiết về cấu trúc và chức năng của lớp trình quản lý tiến trình:

1. Cấu trúc của lớp trình quản lý tiến trình:

Lớp trình quản lý tiến trình thường được xây dựng từ các thành phần
sau:

Scheduler (Lập lịch): Scheduler quản lý việc chọn tiến trình nào sẽ được
thực thi tiếp theo và cấp phát thời gian CPU cho chúng. Có hai loại
scheduler chính là:

Long-term scheduler (Lập lịch dài hạn): Chọn các tiến trình từ hàng đợi
dài hạn và quyết định xem tiến trình nào sẽ được nạp vào bộ nhớ và thực
thi.
Short-term scheduler (Lập lịch ngắn hạn): Quản lý việc chọn tiến trình
nào sẽ thực thi trong khoảng thời gian ngắn hạn.
Process Control Block (PCB): Mỗi tiến trình trong hệ thống có một PCB
tương ứng. PCB lưu trữ thông tin quan trọng về tiến trình như trạng thái
của tiến trình, thanh ghi CPU, bộ đếm thời gian, vị trí trong bộ nhớ, tiến
trình cha, danh sách tiến trình con, và các thông tin khác về quản lý tiến
trình.

Queue (Hàng đợi): Hệ thống sử dụng hàng đợi để quản lý các tiến trình.
Có nhiều loại hàng đợi như hàng đợi sẵn sàng (ready queue) cho các tiến
trình đã sẵn sàng thực thi, hàng đợi chờ (waiting queue) cho các tiến
trình đang chờ một sự kiện hoặc tài nguyên, và hàng đợi mới (new
queue) cho các tiến trình mới được tạo.

2. Chức năng của lớp trình quản lý tiến trình:

Tạo và kết thúc tiến trình: Lớp trình quản lý tiến trình có trách nhiệm tạo
ra tiến trình mới khi cần và kết thúc tiến trình khi nó hoàn thành công
việc hoặc gặp lỗi.

Lập lịch thực thi tiến trình: Scheduler quản lý việc chọn tiến trình nào sẽ
được thực thi tiếp theo. Quá trình này dựa trên các thuật toán lập lịch
như FCFS (First-Come-First-Served), SJF (Shortest Job First), RR
(Round Robin), vv.

Chuyển đổi tiến trình: Khi một tiến trình hoàn thành hoặc gặp trạng thái
đợi, lớp trình quản lý tiến trình quản lý việc chuyển đổi giữa các tiến
trình khác nhau, bao gồm việc lưu trạng thái của tiến trình hiện tại và
nạp trạng thái của tiến trình mới từ PCB.

Quản lý tài nguyên: Lớp trình quản lý tiến trình đảm bảo rằng các tiến
trình không xung đột khi sử dụng tài nguyên chung như bộ nhớ, thiết bị
ngoại vi, hoặc CPU. Nó quản lý việc chia sẻ tài nguyên và xử lý tình
huống xung đột.

Bảo vệ và an ninh: Lớp trình quản lý tiến trình cũng chịu trách nhiệm
đảm bảo an toàn và bảo mật dữ liệu và tài nguyên bằng cách xác định
quyền truy cập và kiểm tra xác thực.

Tạo quá trình con: Lớp trình quản lý tiến trình cho phép quá trình cha
tạo và quản lý các quá trình con.
7. Đối với hệ điều hành đa nhiệm, trình duyệt web, chương trình
văn phòng
và trò chơi đều có thể chạy đồng thời. Hãy mô tả cách hệ điều hành
quản lý
và phân chia thời gian xử lý giữa chúng
hệ điều hành quản lý và phân chia thời gian xử lý giữa chúng bằng các
cơ chế sau:

Lập lịch thời gian (Time Slicing): Hệ điều hành quản lý việc chia thời
gian xử lý bằng cách sử dụng lập lịch thời gian. Mỗi tiến trình được gán
một khoảng thời gian nhất định để thực thi (ví dụ: 10ms). Sau khi hết
thời gian này, hệ điều hành chuyển sang tiến trình khác để thực thi. Điều
này tạo ra cảm giác cho người dùng rằng tất cả các ứng dụng đang chạy
đồng thời.

Ưu tiên tiến trình (Process Priority): Hệ điều hành cung cấp một hệ
thống ưu tiên cho các tiến trình. Các tiến trình quan trọng hơn hoặc ưu
tiên hơn sẽ được ưu tiên để thực thi trước trong trường hợp xung đột về
thời gian CPU. Chẳng hạn, trò chơi có thể được ưu tiên cao hơn để đảm
bảo khả năng phản hồi nhanh chóng.

Trạng thái tiến trình (Process State): Hệ điều hành duyệt tiến trình vào
các trạng thái khác nhau như "Sẵn sàng" (Ready), "Chờ" (Waiting), và
"Thực thi" (Running). Khi một tiến trình không thể tiếp tục thực thi (ví
dụ: đang chờ dữ liệu từ đĩa cứng), nó sẽ chuyển vào trạng thái chờ và
CPU được cấp cho tiến trình khác. Khi tiến trình sẵn sàng, nó sẽ được
đưa vào hàng đợi sẵn sàng và chờ đợi lập lịch thời gian để thực thi.
Cơ chế chia sẻ tài nguyên: Hệ điều hành cung cấp cơ chế để chia sẻ tài
nguyên chung như bộ nhớ RAM và thiết bị ngoại vi giữa các tiến trình.
Điều này cho phép các ứng dụng chạy đồng thời truy cập vào tài nguyên
chung mà không gây xung đột hoặc hỏng hóc.

Khắc phục xung đột: Hệ điều hành quản lý xung đột thông qua các cơ
chế bảo vệ và đồng bộ hóa. Nếu hai tiến trình cố gắng truy cập cùng một
tài nguyên cùng lúc, hệ điều hành sẽ đảm bảo rằng tài nguyên này được
truy cập một cách an toàn mà không gây hỏng hóc dữ liệu hoặc làm cho
hệ thống bị treo.
8. Giải thích khái niệm "được ưu tiên hóa theo thời gian" (time-
sharing) trong
hệ điều hành và tại sao nó quan trọng trong việc quản lý tài nguyên.
Khái niệm "được ưu tiên hóa theo thời gian" (time-sharing) trong hệ
điều hành là một phương pháp cho phép nhiều tiến trình chia sẻ tài
nguyên của máy tính bằng cách liên tục chuyển đổi giữa các tiến trình để
thực hiện một phần công việc của mỗi tiến trình trong khoảng thời gian
ngắn. Mục tiêu của time-sharing là cung cấp cảm giác cho người dùng
rằng tất cả các ứng dụng đang chạy đồng thời trên máy tính của họ và
chúng đang được thực thi mà không gây thời gian chờ đợi quá lâu.
Time-sharing quan trọng trong việc quản lý tài nguyên trong hệ điều
hành vì nó mang lại một số lợi ích quan trọng:

Sự công bằng trong phân chia tài nguyên: Time-sharing đảm bảo rằng
mọi tiến trình được truy cập tài nguyên máy tính với thời gian tương đối
công bằng. Mỗi tiến trình được cấp một lượng thời gian xử lý nhất định
trước khi chuyển sang tiến trình khác. Điều này ngăn tiến trình nào đó
chiếm hết tài nguyên và làm cho các tiến trình khác bị treo hoặc chậm
chạp.

Tương tác người dùng: Time-sharing làm cho máy tính trở nên tương tác
với người dùng. Người dùng có thể chạy và tương tác với nhiều ứng
dụng cùng lúc, chẳng hạn như trình duyệt web, chương trình văn phòng
và trò chơi, mà không cần phải đợi lâu cho mỗi ứng dụng phản hồi.

Tận dụng tối đa tài nguyên: Time-sharing giúp tận dụng tối đa tài
nguyên của máy tính. Máy tính có thể xử lý nhiều tiến trình khác nhau
trong khoảng thời gian ngắn, giúp tăng hiệu suất sử dụng và đảm bảo
rằng tài nguyên không bị lãng phí.

Hỗ trợ đa nhiệm và đa người dùng: Time-sharing làm cho việc thực thi
đa nhiệm và hỗ trợ đa người dùng trở nên dễ dàng. Nhiều người dùng có
thể truy cập máy tính cùng lúc và thực hiện các nhiệm vụ khác nhau mà
không gây xung đột về tài nguyên.
9. Trình quản lý tài nguyên (Resource Manager) trong hệ điều hành
có nhiệm
vụ quản lý tài nguyên phần cứng và phân phối chúng cho các tiến
trình. Hãy
nêu rõ cách mà nó quản lý CPU, bộ nhớ và thiết bị ngoại vi.
Trình quản lý tài nguyên quản lý CPU, bộ nhớ và thiết bị ngoại vi:

1. Quản lý CPU (Central Processing Unit):

Lập lịch thời gian (Scheduler): Trình quản lý tài nguyên sử dụng một bộ
lập lịch thời gian để quản lý việc chia thời gian CPU giữa các tiến trình.
Các tiến trình được đặt trong hàng đợi thực thi và được chọn để thực thi
dựa trên thuật toán lập lịch như FCFS (First-Come-First-Served), SJF
(Shortest Job First), Round Robin, vv. Lựa chọn tiến trình nào thực thi
tại một thời điểm cụ thể phụ thuộc vào ưu tiên và trạng thái của tiến
trình.

Kiểm soát và quản lý ưu tiên: Trình quản lý tài nguyên có khả năng kiểm
soát ưu tiên của các tiến trình. Các tiến trình quan trọng hơn hoặc ưu tiên
hơn sẽ được ưu tiên để thực thi trước trong trường hợp xung đột về thời
gian CPU.

2. Quản lý bộ nhớ:

Quản lý bộ nhớ ảo: Trình quản lý tài nguyên quản lý bộ nhớ ảo để đảm
bảo rằng các tiến trình có đủ không gian bộ nhớ để thực thi. Nó theo dõi
việc sử dụng bộ nhớ và cấp phát hoặc thu hồi không gian bộ nhớ theo
yêu cầu của các tiến trình.
Quản lý vùng nhớ: Trình quản lý tài nguyên quản lý các vùng nhớ cụ thể
cho các tiến trình. Các tiến trình được phân chia thành các phân đoạn
(segment) hoặc trang (page) để quản lý việc truy cập và sử dụng bộ nhớ.

3. Quản lý thiết bị ngoại vi:

Kiểm soát truy cập vào thiết bị: Trình quản lý tài nguyên kiểm soát
quyền truy cập vào các thiết bị ngoại vi như ổ cứng, máy in, bàn phím,
và chuột. Nó đảm bảo rằng các tiến trình chỉ có thể truy cập thiết bị nếu
họ có quyền truy cập và quản lý xung đột truy cập.

Quản lý hàng đợi và chia sẻ thiết bị: Trình quản lý tài nguyên quản lý
hàng đợi truy cập vào thiết bị và quản lý việc chia sẻ thiết bị giữa các
tiến trình. Điều này đảm bảo rằng các tiến trình có thể sử dụng thiết bị
một cách hợp lý mà không gây xung đột.

10.System Call có vai trò gì? Liệt kê các System Call cơ bản trong hệ
điều hành
Windows. Ví dụ cụ thể?
Một số System Call cơ bản trong hệ điều hành Windows, cùng với ví dụ
cụ thể:

CreateProcess: System Call này được sử dụng để tạo một tiến trình mới.
Ví dụ: Khi bạn khởi động một ứng dụng trên máy tính, hệ điều hành sử
dụng CreateProcess để tạo một tiến trình cho ứng dụng đó.
OpenFile: Được sử dụng để mở một tệp tin. Ví dụ: Khi bạn mở một tệp
tin văn bản trong trình soạn thảo, hệ điều hành sử dụng OpenFile để mở
tệp tin đó.

ReadFile và WriteFile: System Call này cho phép đọc dữ liệu từ tệp tin
hoặc ghi dữ liệu vào tệp tin. Ví dụ: Khi bạn đọc nội dung của một tệp tin
trong chương trình đọc tệp tin của mình, hệ điều hành sử dụng ReadFile.

CreateDirectory và DeleteFile: Được sử dụng để tạo một thư mục mới


hoặc xóa một tệp tin. Ví dụ: Khi bạn tạo một thư mục mới trên máy tính
của bạn, hệ điều hành sử dụng CreateDirectory.

Sleep: Cho phép tiến trình dừng lại trong một khoảng thời gian nhất
định. Ví dụ: Khi bạn lập trình một ứng dụng đồng hồ đếm ngược, Sleep
được sử dụng để tạm ngừng tiến trình trong một khoảng thời gian cố
định giữa các đếm.

ExitProcess: System Call này cho phép tiến trình kết thúc và giải phóng
tài nguyên của nó. Ví dụ: Khi bạn thoát khỏi một ứng dụng, ExitProcess
được sử dụng để kết thúc tiến trình của ứng dụng đó.

You might also like