Bài tập tổng hợp OS - Pdf 12

Bài tập tổng hợp OS!
Bài 1: Process là gì? Process khác chương trình ở điểm gì? Cho biết các công việc chính
của bộ phận Process Management.
– Process là một chương trình đang thực thi. Một process thường chứa text section
(program code), data section (chứa các biến toàn cục), bộ đếm chương trình, nội dung các
thanh ghi của bộ xử lý.
– Chương trình không phải là một process, một chương trình là một thực thể thụ động,
như nội dung của các tập tin được lưu trên đĩa, trái lại một quá trình là một thực thể chủ động,
với một bộ đếm chương trình xác định chỉ thị lệnh tiếp theo sẽ thực thi và tập hợp tài nguyên
có liên quan.
– Process Management:
+ Tạo và xóa các quá trình người dùng và hệ thống.
+ Tạm dừng và thực thi tiếp quá trình. (suspend/resume)
+ Cung cấp các cơ chế đồng bộ hóa quá trình. (synchronization)
+ Cung cấp các cơ chế giao tiếp quá trình. (interprocess communication)
+ Cung cấp các cơ chế quản lý Deadlock.
Bài 2: Cho biết các công việc chính của bộ phận Memory Management, file
management, secondary storage management?
– Memory Management: bộ nhớ chính là trung tâm của các thao tác và xử lý. Để nâng
cao hiệu suất sử dụng CPU, hệ điều hành cần quản lý bộ nhớ thích hợp. Các nhiệm vụ của bộ
phận Memorry Management:
+ Theo dõi, quản lý các vùng nhớ trống và các vùng nhớ đã cấp phát.
+ Quyết định sẽ nạp chương trình nào khi có vùng nhớ trống.
+ Cấp phát và thu hồi các vùng nhớ khi cần thiết.
– File Management: bộ phận quản lý tập tin có nhiệm vụ thực hiện các hoạt động trong
việc quản lý tập tin
+ Tạo và xóa tập tin/ thư mục.
+ Hỗ trợ các hàm để thao tác trên tập tin và thư mục.
+ Ánh xạ các tập tin/ thư mục trên các thiết bị lưu trữ phụ.
+ Sao lưu và phục hồi dữ liệu.
– Secondary storage management (quản lý hệ thống lưu trữ thứ cấp):

+ Quản lý hệ thống file: như các tác vụ create, delete, rename, copy…
+ Thông tin trạng thái: date, time, dung lượng bộ nhớ trống, số lượng người
dùng…
+ Soạn thảo file
+ Hỗ trợ cho các ngôn ngữ lập trình: compiler, assembler, interpreter…
+ Nạp và thực thi, giúp tìm lỗi chương trình: loader, debugger
+ Giao tiếp: như email, talk, web browser
– Aplication program (chương trình ứng dụng): là bất kỳ chương trình được thiết kế để
thực hiện một chức năng cụ thể trực tiếp cho người sử dụng, hoặc trong một số trường hợp,
cho một chương trình ứng dụng khác. Nó khác với system program ở chỗ system program
cung cấp nền, môi trường cho việc phát triển và thực thi aplication program.
Bài 5: Kernel mode là gì? User mode là gì? Cho biết sự khác nhau giữa chúng? Các
trạng thái của một quá trình? Vẽ sơ đồ và giải thích sự chuyển đổi giữa các trạng thái.
– Kernel mode: tác vụ được thực thi thay mặt cho hệ điều hành.
– User mode: là tác vụ được thực thi thay mặt cho người dùng.
– Khác biệt: Khi CPU ở trong Kernel mode, nó có thể thực thi bất cứ chỉ thị nào và
tham chiếu đến bất kỳ địa chỉ nhớ nào. Khi CPU ở trong User mode, nó không thể truy nhập
đến phần cứng hoặc tham chiếu đến bộ nhớ một cách trực tiếp. Các đoạn mã trong User mode
phải được chuyển đổi thành các hàm API của hệ thống để có thể truy nhập tới bộ nhớ và phần
cứng.
– Trạng thái của quá trình:
+ new: quá trình vừa được tạo ra.
+ ready: quá trình đã có đủ tài nguyên, chỉ còn cần CPU.
+ running: các lệnh của quá trình đang được thực thi

+ waiting
(blocked):
quá trình đợi
I/O hoàn tất


10. Phân biệt nhóm giải pháp busy waiting và Sleep&Wakeup. Phân biệt cách sử dụng
semaphore, monitor.
Nhóm giải pháp Busy Waiting
– Sử dụng các biến cờ hiệu
– Sử dụng việc kiểm tra ln phiên
– Giải pháp của Peterson
– Cấm ngắt
– Chỉ thị TSL
Nhóm giải pháp Sleep & Wakeup
– Semaphore
– Monitor
– Message
Phân loại giải pháp
Các giải pháp “Busy waiting”
While (chưa có quyền) do nothing() ;
CS;
Từ bỏ quyền sử dụng CS
Tiếp tục tiêu thụ CPUtrong khi chờ đợi vàomiền găng
Khơng đòi hỏi sự trợ giúp củaHệ điều hành
Các giải pháp “Sleep & Wake up”
if (chưa có quyền) Sleep() ;
CS;
Wakeup( somebody);
Từ bỏ CPU khi chưa được vàomiền găng
Cần đượcHệ điều hành hỗ trợ
Semaphore
• Là công cụ đồng bộ cung cấp bởi OS mà không đòi hỏi
busy waiting
Semaphore S là một biến số nguyên.
Monitor (1)

– Cho biết số lượng tối thiểu các lỗi trang xảy ra ?
– Cho biết số lượng tối đa các lỗi trang xảy ra ?
Lỗi trang xảy ra khi người dùng truy cập tới một trang khơng hợp
lệ (nghĩa là trang khơng ở trong khơng gian địa chỉ của q trình -
khơng đang ở trong bộ nhớ chính) hoặc ta đang truy cập tới một trang
hợp lệ nhưng đang ở bộ nhớ phụ (swap space).
Xử lý của hệ điều hành: việc truy xuất một trang "khơng hợp lệ"
gây ra một trap lỗi trang (page-fault trap). Phần cứng phân trang, dịch
địa chỉ thơng qua bảng trang, sẽ thơng báo rằng bit khơng hợp lệ đã
được đặt vào, gây ra một trap tới hệ điều hành. Trap này kích khởi dịch
vụ page-fault service routine (PFSR) của hệ điều hành.
Các bước xử lý của PFSR:
->1- Chuyển process phát ra tham chiếu về trạng thái blocked.
->2- Phát ra một u cầu đọc đĩa để nạp trang được tham chiếu
vào một frame trống; trong khi đợi I/O, một process khác được cấp CPU
để thực thi.
->3- Sau khi I/O hoàn tất, đĩa gây ra một ngắt đến hệ điều hành;
PFSR cập nhật page table và chuyển process về trạng thái ready.
Tại bước 2 của PFSR, giả sử phải thay trang vì không tìm được frame trống, PFSR được
bổ sung như sau:
– Xác định vị trí trên đĩa của trang đang cần.
– Tìm một frame trống:
Nếu có frame trống thì dùng nó.
Nếu không có frame trống thì dùng một giải thuật thay trang để chọn một trang
hi sinh (victim page).
Ghi victim page lên đĩa, cập nhật page table và frame table tương ứng.
– Đọc trang đang cần vào frame trống, cập nhật page table và frame table tương ứng
*Nếu n>m
ít nhất : m + (n-m) = n
nhiều nhất : p


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status