Một vài tóm tắt lí thuyết HDH !!!!
+2
HaXuanTruong(I92C)
letruong4688
6 posters
Trang 1 trong tổng số 1 trang
Một vài tóm tắt lí thuyết HDH !!!!
hổm rày bắt đầu ôn luyện lí thuyết chuẩn bị thi cuối kì tình cờ kiếm được ít tài liệu tóm tắt lí thuyết HDH đem share cho anh em, bản thân mình thấy tóm tắt có rút gọn nhưng chưa hoàn chỉnh lắm, còn thiếu nhiều, anh em bổ sung vào chúng ta tổng hợp lại thi cho tốt nhé , cái này mình sưu tầm tham khảo thôi, đừng ném gạch tội nghiệp nhé
*************************************************************************************
1) Process:
a) Khái niệm Process:
- Process là chương trình thực thi:
Được nạp trong bộ nhớ
Có các thông tin trạng thái: Thanh ghi PC, các thanh ghi…
- Mỗi Process thực thi trên một CPU ảo.
- Hệ thống có nhiều Process đồng thời:
Hệ thống đa chương: 1 CPU
Hệ thống đa xử lý: nhiều CPU trên một máy.
Hệ thống phân bố: nhiều CPU trên nhiều máy.
b) Tổ chức thứ bậc các Process:
- Tạo Process mới:
Hệ điều hành tạo Process mới.
User yêu cầu tạo Process mới.
Process tạo Process mới.
- Kết thúc Process:
Bình thường.
Lỗi.
Do Process khác kết thúc.
- Process tạo Process mới:
Parent Process
Child Process
- Hệ thống thứ bậc các Process:
UNIX: Process group.
Windows: không có tổ chức thứ bậc (các Process được tạo tương đương)
c) Các trạng thái của Process:
- Mô hình 3 trạng thái của Process:
Thực thi (Running): đang thực thi (đang sử dụng CPU). Chỉ có 1 running Process tại 1 thời điểm trên hệ thống đa chương.
Sẵn sàng (Ready): sẵn sàng thực thi, tạm dừng chờ CPU. Có nhiều ready Process được quản lý bằng ready queue.
Bị chặn (Blocked): Không thể thực thi cho đến khi có biến cố xảy ra. Có nhiều ready Process được quản lý bằng Blocked Process.
- Chuyển trạng thái:
Running -> Blocked (1) : chờ biến cố.
Running -> Ready (2): Hết thời gian
Ready -> Running (3): được thực thi.
Blocked -> Ready (4): biến cố xảy ra.
- Thời điểm chuyển trạng thái:
Ngắt quãng thời gian (Clock Interrupt): dùng để kiểm soát thời gian.
Ngắt quãng thiết bị (IO Interrupt): Liên quan đến thiết bị IO.
Lệnh gọi hệ thống, lỗi (System calls, trap): Khi gọi System calls hay khi có lỗi.
d) Tiến trình khác Chương trình như thế nào?
- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
e) Trình tự tạo Process:
- Mở và thực thi file .exe
- Tạo Eprocess.
- Tạo thread khởi đầu (stack, context, and Windows executive thread object).
- Báo hiệu Windows subsystem thiết lập Process và thread mới.
- Thực thi thread khởi đầu (ngoại trừ trường hợp cờ CREATE_SUSPEND được bật).
- Hoàn tất khởi tạo không gian địa chỉ process, thread (nạp các dll, yêu cầu…) và bắt đầu thực thi chương trình.
g) Cấu trúc Process:
- Kenel thread Block.
- Thread time.
- Thông tin về thời điểm tạo và thoát thread.
- Process Indentification: Process ID và con trỏ đến Eprocess block của Process tạo thread.
- Start Address: địa chỉ của thread start toutine.
- LPC information.
- I/O information: Danh sách các yêu cầu I/O đang chờ thực hiện.
h) Trình bày thứ tự sử dụng tài nguyên của tiến trình:
Thứ tự sử dụng tài nguyên của tiến trình:
1. Yêu cầu (Request): Nếu không được đáp ứng do bị tiến trình khác giữ => tiến trình phải chờ.
2. Sử dụng (Use): Sau khi được cấp phát, tiến trình thao tác với tài nguyên (thực hiện I/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
l) Chức năng và nội dung của Khối kiểm soát tiến trình:
Chứa các thông tin ứng với mỗi process:
- Process ID, parent process ID
- Credentials (user ID, group ID, effective ID,...)
- Trạng thái process : new, ready, running, waiting…
- Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi
- Các thanh ghi CPU
- Thông tin dùng để định thời CPU: priority,...
- Thông tin bộ nhớ: base/limit register, page tables…
- Thông tin thống kê: CPU time, time limits…
- Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,...
- Con trỏ (pointer) đến PCBs khác.
m) Tại sao phải tổ chức cộng tác giữa các tiến trình?
- Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trinh khác cung cấp.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
- Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
2)Thread:
a) Khái niệm Thread:
- Process có 2 đặc trưng:
Đơn vị sử dụng tài nguyên.
Đơn vị được thực thi (theo một dòng điều khiển, có thể xen kẻ giữa các Process).
- Đặc trưng thực thi của Process được trừu tượng hóa thành Thread.
b) Các đặc điểm của Thread:
- Mỗi Thread có stack, có trạng thái riêng.
- Việc chuyển trạng thái giữa các thread nhanh hơn các thread nhanh hơn giữa các Process.
- Các Thread trong Process dùng chung tài nguyên.
- Các Thread thực thi đồng thời trên các hệ thống SMP, siêu phân luồng, đa lõi.
- Giữa các thread không có sự bảo vệ.
c) Các mô hình Thread cơ bản:
- Một thread trong một process: đơn luồng (single thread)
- Nhiều thread trong một process: đa luồng (multithread)
d) Các ứng dụng của Thread:
- Công việc dạng background, foreground.
- Các xử lý bất đồng bộ.
- Tăng tốc độ xử lý.
- Tạo tính cấu trúc cho chương trình.
e) Các dạng hiện thực Thread:
- Cấp user: do các thư viện thread quản lý. Ví dụ: win32, java thread.
- Cấp Kernel: Do kernel quản lý. Ví dụ: Windows 2K/XP, Linux.
- Tổ hợp user-kernel. Ví dụ: Solaris.
g) Những ích lợi của đa luồng ? Cho 2 ví dụ về sử dụng công nghệ đa luồng ?
- Khả năng đáp ứng (Responsiveness) tốt hơn: Trong khi một luồng bị ách hoặc quá bận, luồng khác vẫn vận hành bình thường (Luồng chính của trình duyệt vẫn tương tác với người dùng trong khi dữ liệu được lấy về).
- Chia sẻ tài nguyên (Resource Sharing): Theo mặc định, các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Vài luồng cùng vận hành trong 1 vùng địa chỉ, do đó dễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.
- Tiết kiệm (Economy): Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc tốn kém. Do luồng chung tài nguyên với cha và các luồng khác, việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn (Solaris 2: Tạo tiến trình chậm hơn 30 lần, Chuyển ngữ cảnh chậm hơn 5 lần).
- Tận dụng được thế mạnh của kiến trúc đa xử lý: Đa luồng làm tăng tính song song trên hệ máy nhiều CPU. Mỗi luồng có thể chạy bởi CPU riêng.
Ví dụ: Lập trình xử lý công việc bán vé máy bay, gửi và rút tiền ở ngân hàng đều cần đến công nghệ đa luồng.
3) Truyền thông giữa các process:
a) Các điều kiện dẫn đến tranh chấp ? Cho ví dụ ?
- Các dạng tương tác giữa các Process tồn tại đồng thời:
Các Process độc lập
Các Process biết nhau gián tiếp (thông qua tài nguyên dùng chung).
Các process biết nhau trực tiếp (các process thuộc về một phần mềm).
Ví dụ:
Có 2 process P0, P1:
Mục đích: P0: Nhập X, xuất X
P1: Nhập Y, xuất Y
Kết quả: P0: Nhập X, xuất Y
P1: Nhập Y, xuất Y
- Các Process dùng chung tài nguyên.
- Thứ tự truy xuất ảnh hưởng kết quả.
b) Nguyên tắc loại trừ tương hỗ:
- Khái niệm: Loại trừ tương hỗ là nguyên tắc giải quyết triệt để vấn đề tranh chấp tài nguyên giữa các Process. Khi có một Process vào vùng tranh chấp thì tất cả các Process khác phải ở ngoài vùng tranh chấp. Có thể dẫn đến trạng thái deadlock hay trạng thái starvation (trạng thái chờ mãi mãi của process)
- Các yêu cầu:
Không có 2 process đồng thời vào vùng tranh chấp.
Không có giả sử gì về tốc độ và số lượng Process.
Không có Process nào ngoài vùng tranh chấp có thể ảnh hưởng đến process khác.
Không có process nào chờ mãi mãi.
- Các phương pháp giải quyết:
Các process phải kiểm tra điều kiện trước khi vào vùng tranh chấp và thông báo khi rời vùng tranh chấp.
Nếu điều kiện không thỏa thì chờ.
Có 2 dạng chờ:
. Chờ bằng vòng lặp (busy-waiting): Dùng phần mềm, phần cứng hỗ trợ.
. Chờ bằng trạng thái blocked: Hệ điều hành hỗ trợ.
c) Giải quyết vấn đề loại trừ tương hỗ dùng vòng lặp bằng phần mềm:
c1) Giải thuật luân phiên nghiêm ngặt (Strict Alternation):
- Giải quyết trường hợp 2 process (P0 và P1) và một tài nguyên.
- Hai process dùng một biến turn để xác định đến phiên process nào vào vùng tranh chấp.
- Khởi động turn = 0.
P0 P1
while (TRUE)
{
while (turn != 0)
critical_region();
turn = 1;
noncritical_region();
} while (TRUE)
{
while (turn != 1)
critical_region();
turn = 0;
noncritical_region();
}
- Xét hoạt động P0 (tương tự cho P1):
Hoạt động P0:
. P0 kiểm tra biến turn
P0 vào vùng tranh chấp nếu turn = 0.
P0 chờ khi turn =1.
. P0 gán turn = 1 khi rời vùng tranh chấp.
Hoạt động P0 với P1:
Giả sử P0 đến vòng lặp while:
P1 ở ngoài vùng tranh chấp -> turn = 0: P0 vào vùng tranh chấp.
P1 ở trong vùng tranh chấp -> turn = 1: P0 chờ.
P1 cũng đến vòng while: Do biến turn dùng chung nên chỉ có 1 process được vào vùng tranh chấp, process kia chờ tại vòng while.
- Đánh giá giải thuật luân phiên nghiêm ngặt:
Đạt yêu cầu (1) và yêu cầu (4).
Giả sử P0 vào vùng tranh chấp 100 lần/đơnvithoigian, P1 vào vùng tranh chấp 1 lần/đơnvithoigian: Do luân phiên nghiêm ngặt nên P0 chỉ được vào vùng tranh chấp 1 lần/đơnvithoigian. Không thỏa yêu cầu (2).
Giả sử P1 có lỗi ngoài vùng tranh chấp: P0 dừng mãi mãi tại vòng while, Không thỏa yêu cầu (3).
c2) Giải thuật Peterson:
- Xét trường hợp 2 process (P0 và P1) và một tài nguyên.
- Hai Process dùng chung:
Biến turn: Xác định đến phiên Process nào vào vùng tranh chấp.
Mảng boolean interested[2]: thể hiện process sẵn sàng vào vùng tranh chấp, interested[0]: P0 sẵn sàng vào vùng tranh chấp. Khởi động interested[0] = interested[1] = FALSE
#define FALSE 0
#define TRUE 1
#define N 2 //Số process
int turn; // đến phiên process nào
int interested[N]; // process sẵn sàng
void enter_region(int process)
{
int other; // process còn lai
other = 1 – process;
interested[process] = TRUE;//thê hiên process san sang.
turn = process; // dat phiên
while(turn == process && interested[other] == TRUE);
}
void leave_region(int process)
{
interested[process] = FALSE; // roi vùng tranh châp
}
d) Giải quyết vấn đề loại trừ tương hỗ bằng phần cứng:
- Tập lệnh CPU có các lệnh đặc biệt hỗ trợ.
- Ví dụ:
TEST SET LOCK (TSL): Kiểm tra và đặt giá trị cho một từ nhớ.
SWAP: Đổi giá trị 2 từ nhớ.
…
- Lệnh TSL:
Đọc giá trị một từ nhớ vào một thanh ghi, sau đó ghi giá trị khác 0 (thường là 1) vào từ nhớ.
Thao tác đọc và ghi nêu trên là trong cùng một lệnh: Thao tác đơn vị (atomic, primitive).
- Ứng dụng lệnh TSL trong loại trừ tương hỗ:
Giải quyết trường hợp n process.
n process dùng chung một biến flag, khởi động flag = 0.
Cấu trúc process Pi:
while (TRUE)
{
enter_region(); // kiểm tra điều kiện
critical_region(); // vùng tranh châp
leave_region(); // thông báo trạng thái
noncritcal_region(); // vùng không tranh chấp
}
enter_region:
TSL register, FLAG; FLAG -> register, FLAG = 1
CMP register,0; so sánh FLAG với 0
JNZ enter_region; FLAG=0, lặp
RET; FLAG!=0, trở về
leave_region:
MOV FLAG, 0; Gán FLAG=0
RET; Trở vê
Ví dụ: lệnh CPMXCHG (IA32)
Cú pháp: CMPXCHG DEST, SRC
Hoạt động: (accumulator: AL/AX/EAX)
IF accumulator = DEST
THEN
ZF 1
DEST SRC
ELSE
ZF 0
accumulator DEST
FI
4) Vấn đề đồng bộ giữa các process:
a) Bài toán Dining Philosophers:
- Có 5 triết gia ngồi quanh một bàn tròn.
- Mỗi triết gia có 1 đĩa thức ăn, khi ăn cần 2 nĩa.
- Hoạt động của triết gia: luân phiên giữa suy nghĩ và ăn:
Khi triết gia đói: Cần nĩa trái và nĩa phải đồng thời, nếu có 2 nĩa thì ăn.
Sau khi ăn thì trả 2 nĩa, tiếp tục suy nghĩ.
- Nếu 5 triết gia đồng thời cầm nĩa trái, chờ nĩa phải deadlock.
- Nếu 5 triết gia đồng thời trả nĩa trái, suy nghĩ, đồng thời cầm nĩa phải: starvation.
b) Phát biểu bài toán SX-TT và trình bày Thuật giải với Bộ đệm thực thi bằng mảng xoay vòng:
Phát biểu bài toán:
Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
c) Phát biểu bài toán Sản Xuất – Tiêu Thụ. Sử dụng đèn hiệu để đồng bộ hoá:
Hai quá trình cùng chia sẻ một vùng đệm có kích thước giới hạn n. Biến semaphore mutex cung cấp sự loại trừ hỗ tương để truy xuất vùng đệm và được khởi tạo với giá trị 1. Các biến semaphore empty và full đếm số khe trống và đầy tương ứng. Biến semaphore empty được khởi tạo tới giá trị n; biến semaphore full được khởi tạo tới giá trị 0.
Dữ liệu chia sẻ:
SEMAPHORE full, empty, mutex;
Khởi tạo:
full = 0;
empty = BUFFER_SIZE;
mutex = 1;
5) Điều phối và các phương pháp điều phối:
a) Khái niệm:
- Điều phối (scheduling): xác định thời điểm vào, chọn process được thực thi.
- do bộ điều phối (scheduler) thực hiện.
- Các dạng điều phối trên hệ thống đa chương:
Thời gian dài: liên quan việc tạo process mới.
Thời gian trung bình: liên quan việc đưa process vào, ra bộ nhớ.
Thời gian ngắn: chọn ready process để cho thực thi.
b) Các chiến lược điều phối:
- Nonpremptive scheduling: Không dừng process đang thực thi, không thích hợp với hệ thống có tương tác (interactive system).
- Premtive scheduling: dừng process đang thực thi.
c) Các phương pháp điều phối thời gian ngắn:
c1) Độ ưu tiên:
- Mỗi process có độ ưu tiên.
- Process có độ ưu tiên cao nhất được cho thực thi: Không kể process mới nonpreemptive. Kể cả process mới preemptive.
- Process có độ ưu tiên thấp có thể chờ mãi mãi (starvation): Tăng độ ưu tiên của process chờ theo thời gian.
c2) First-In-First-Out (FIFO hay FCFS):
- Đến trước - Phục vụ trước (First-Come, First-Served Scheduling - FCFS)
- Đơn giản, dễ thực hiện.
- Các tiến trình trong Ready Queue được cấp CPU từ đầu dãy đến cuối dãy theo quy tắc FIFO (First-In, First-Out).
- Thời gian chờ trung bình khá lớn.
c3) Round Robin (RR):
- Dạng preemptive.
- Mỗi process được thực thi trong một đơn vị thời gian q (quantum)
- Nếu process chưa kết thúc trong thời gian q thì bị dừng, đưa về cuối hàng đợi ready.
- Process đang ở đầu của hàng đợi được chọn để thực thi (theo FIFO).
- Nếu q đủ lớn: trở thành FIFO.
- Nếu q nhỏ: chi phí chuyển trạng thái là đáng kể.
c4) Shortest Job First (SJF):
Ngắn hơn-Chạy trước (Shortest-Job-First Scheduling-SJFS)
- Đúng hơn phải được gọi là Shortest-Next-CPU-Burst, nghĩa là tiến trình có Khoảng CPU kế tiếp nhỏ hơn thì được chạy trước. Trong trường hợp bằng nhau, dùng thuật giải FCFS.
- Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp.
- SJFS không tiếm quyền (Non-Preemptive SJFS): Tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó.
- SJFS có tiếm quyền (Preemptive SJFS): Tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First).
c5) Shortest Remaining Time (SRT):
- Dạng preemptive.
- Process có thời gian thực thi đến kết thúc (remaining time) nhỏ nhất được cho thực thi, kể cả process mới.
- Cần nhiều chi phí chuyển trạng thái, Process có thời gian thực thi lớn phải chờ lâu.
c6) Các ví dụ:
6) Dealock:
a) Khái niệm:
Deadlock: là tình huống kẹt tiến trình (process) với một tập các process bị blocked, mỗi process giữ tài nguyên và đang chờ tài nguyên mà process khác trong tập đang có.
Ví dụ 1:
Giả sử hệ thống có 2 file trên đĩa.
P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia.
Ví dụ 2:
Semaphore A và B, khởi tạo bằng 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
b) Bốn điều kiện dẫn đến Deadlock là những điều kiện gì?
- Mutual exclusion (loại trừ tương hỗ): với mỗi tài nguyên, chỉ có một process sử dụng tại một thời điểm. Tài nguyên hoặc được dùng bởi 1 process hoặc chưa cấp phát.
- Hold and wait (giữ và chờ): process đang giữ tài nguyên được quyền yêu cầu thêm tài nguyên khác.
- No preemption: Không lấy lại tài nguyên đã cấp cho process.
- Circular wait: tồn tại một chu kỳ khép kín các yêu cầu tài nguyên.
c) Các giải pháp xử lý deadlock:
- Không giải quyết: giải thuật đà điểu.
- Phát hiện, phục hồi (detection, recovery).
- Ngăn chặn (prevention): Loại bỏ các điều kiện tạo deadlock.
- Tránh (avoidance): Chấp nhận các điều kiện tạo deadlock, theo dõi và kiểm soát.
c1) Giải thuật đà điểu:
- Coi như không có vấn đề deadlock.
- Dựa trên cơ sở: Deadlock rất ít xảy ra, chi phí giải quyết rất cao.
- Được dùng trên các hệ điều hành: UNIX, Windows.
c2) Giải pháp phát hiện và phục hồi từ deadlock:
- Phát hiện deadlock: Dùng các giải thuật phát hiện vòng chờ các process. Do người quản trị hệ thống.
- Phục hồi từ deadlock:
Kết thúc các process bị deadlock:Lần lượt kết thúc các process bị deadlock cho đến khi hết deadlock.
Lấy lại tài nguyên từ process: Lần lượt lấy lại tài nguyên đã cấp phát cho các process cho đến khi hết deadlock. Phụ thuộc vào bản chất của tài nguyên. Sử dụng công cụ của hệ điều hành.
Phục hồi các điểm kiểm tra: Định kì tạo các điểm kiểm tra (checkpoint), thực hiện lại (rollback) các process bị deadlock tại các điểm. Lần lượt thực hiện lại các process bị deadlock tại các điểm kiểm tra cho đến khi hết deadlock.
c3) Giải pháp ngăn chặn Deadlock:
Để ngăn chặn Deadlock ta phải làm sao cho ít nhất 1 trong 4 điều kiện dẫn đến Deadlock không xảy ra. Cụ thể:
- Với Mutual Exclusion: Đảm bảo TN nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
- Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
- Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
- Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
c4) Thế nào là trạng thái an toàn của hệ thống ? Giải pháp tránh deadlock ?
* Trạng thái an toàn của hệ thống:
- Một trạng thái được gọi là an toàn “safe” nếu tồn tại ít nhất một cách mà trong một khoảng thời gian hữu hạn nào đó, hệ thống có thể cấp phát tài nguyên thỏa mãn cho tất cả process thực thi hoàn tất .
- Khi đó hệ thống tồn tại một Chuỗi an toàn {P1, P2, … , Pn } bao gồm tất cả các tiến trình sao cho với mỗi Pi, các tài nguyên mà nó yêu cầu có thể được đáp ứng bởi số lượng hiện có cộng thêm của tất cả các Pj mà j < i.
- Nếu các TN yêu cầu không có đủ, Pi phải chờ cho đến khi tất cả các Pj trả lại các TN mà chúng chiếm giữ.
- Khi Pi nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để Pi 1 có thể vận hành, cứ như thế cho đến Pn
- Khi một process yêu cầu một tài nguyên đang sẵn có, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay.
* Tránh deadlock:
- Chấp nhận các điều kiện tạo deadlock.
- Theo dõi và tránh dẫn đến deadlock.
- Hai hướng giải quyết:
Không tạo process mới nếu có thể dẫn đến deadlock: Process cần khai báo số lượng tài nguyên cần sử dụng.
Không cần tạo process mới nếu số lượng tài nguyên hệ thống không đủ, có thể dẫn đến deadlock.
Không cấp phát thêm tài nguyên cho process nếu có thể dẫn đến deadlock: Tránh Deadlock bằng Banker’s Algorithm:
Là thuật giải tránh Deadlock cho trường hợp mỗi loại tài nguyên có n phiên bản.
- Áp dụng cho hệ thống cấp phát tài nguyên trong đó mỗi loại tài nguyên có thể có nhiều instance.
- Mô phỏng nghiệp vụ ngân hàng (banking)
- Một số giả thiết
Mỗi process phải khai báo số lượng tối đa tài nguyên mỗi loại mà process đó cần để hoàn tất công việc.
Khi process yêu cầu một tài nguyên thì có thể phải đợi mặc dù tài nguyên được yêu cầu đang có sẵn
Khi process đã có được đầy đủ tài nguyên thì phải hoàn trả trong một khoản thời gian hữu hạn nào đó.
7) Quản lý bộ nhớ thực:
a) Dạng đơn chương:
- Có 1 chương trình ứng dụng trên bộ nhớ.
- Hệ điều hành nạp chương trình vào vùng nhớ xác định.
- Khi chương trình kết thúc, hệ điều hành nạp chương trình khác thay thế.
Ví dụ: Dos.
b) Dạng đa chương với kích thước đoạn cố định:
- Bộ nhớ được chia thành các vùng (partition) kích thước cố định, không cần bằng nhau.
- Có nhiều process trên bộ nhớ đồng thời. Có thể đưa process ra bộ nhớ ngoài (swapping).
- Kích thước các vùng nhớ cố định có sự phân mảnh bên trong (internal fragmentation).
- Định vị lại (relocation), bảo vệ (protection):
Process có thể nạp vào vùng nhớ kích thước phù hợp.
Có thể dùng địa chỉ dạng base offset: Cần định vị lại khi nạp process vào vùng nhớ khác.
Bảo vệ bộ nhớ bằng các dùng giới hạn kích thước vùng nhớ (limit): nếu process có quyền dùng địa chỉ tuyệt đối thì không thể bảo vệ bộ nhớ.
c) Dạng đa chương với kích thước đoạn không cố định:
- Các process được cấp phát vùng nhớ bằng kích thước của các process: Có nhiều process đồng thời trên bộ nhớ. Có thể đưa process ra bộ nhớ ngoài.
- Không còn phân mảnh bên trong.
- Sau một thời gian hoạt động sẽ có phân mảnh bên ngoài (external fragmentation) do kích thước process khác nhau.
d) Giải thích sự khác biệt giữa Phân mảnh Trong với Phân mảnh Ngoài:
- Phân mảnh ngoại (external fragmentation)
Kích thước không gian bộ nhớ còn trống đủ để thỏa mãn một yêu cầu cấp phát, tuy nhiên không gian nhớ này không liên tục.
- Phân mảnh nội (internal fragmentation)
Kích thước vùng nhớ được cấp phát có thể hơi lớn hơn vùng nhớ yêu cầu. Ví dụ: cấp một khoảng trống 18,464 bytes cho một process yêu cầu 18,462 bytes.
Hiện tượng phân mảnh nội thường xảy ra khi bộ nhớ thực (physical memory) được chia thành các khối kích thước cố định(fixed-sized block) và các process được cấp phát theo đơn vị khối. Ví dụ: cơ chế phân trang (paging).
Quản lý bộ nhớ ảo:
a) Khái niệm và ích lợi của bộ nhớ ảo ?
- Bộ nhớ ảo là kỹ thuật cho phép thực hiện các chương trình không hoàn toàn nằm đầy đủ trong bộ nhớ.
- Người lập trình chỉ lo viết chương trình, không phải quan tâm nó lớn đến đâu.
- Vùng địa chỉ lô-gic liên tục, từ 0 => Max-1.
- Ích lợi:
Lập trình không bị hạn chế bởi dung lượng bộ nhớ vật lý.
Độ đa chương cao => Tăng công suất CPU và thông suất hệ thống.
Có thể chỉ cần ít I/O để nạp và tráo đổi chương trình => từng tiến trình có thể làm việc nhanh hơn (Không phải nạp hết, nhiều đoạn thực tế không hoặc ít sử dụng).
b) Các đặc điểm của bộ nhớ ảo:
- Không gian địa chỉ ảo lớn hơn nhiều so với không gian địa chỉ vật lý: Chương trình có thể lớn hơn bộ nhớ, phù hợp với hệ thống đa chương.
- Chỉ cần phần đang thực thi của process nạp vào bộ nhớ, phần còn lại đặt trên đĩa.
- Cho phép dùng chung không gian địa chỉ giữa các process, hỗ trợ liên kết động.
c) Bộ nhớ ảo dạng phân trang:
c1) Tổ chức phân trang:
- Không gian địa chỉ ảo chia thành các trang (page) kích thước vài KB, vài MB.
- Không gian địa chỉ vật lý chia thành các khung trang (page frame/ frame):
Kích thước khung trang bằng kích thước trang.
Các trang của một process không cần ở trên các khung trang liên tục.
- Có bảng trang (page table) quản lý các trang. Mỗi process có một bảng trang.
c2) Bảng trang:
- Bảng trang có kích thước lớn: Mỗi phần tử tương ứng một trang, mỗi process cần một bảng trang.
- Giải quyết:
Bảng trang nhiều cấp, ví dụ: IA32
Bảng trang nghịch đảo (Inverted Page Table), ví dụ: PowerPC, IA64
- Bảng trang luôn được truy xuất: Cache các phần tử trong CPU.
- Bảng trang nghịch đảo:
Số phần tử bằng số khung trang: Chỉ cần một bảng trên hệ thống, vị trí trong bảng là frame number.
Mỗi phần tử bao gồm: số thứ tự trang tương ứng, thông tin về process sở hữu trang (pid), truy xuất theo cơ chế hash.
c3) Chuyển đổi địa chỉ:
- Địa chỉ ảo theo phân trang:
Page Number: số thứ tự trang.
Offset/Displacement: địa chỉ trong trang.
Page Number Offset
- Địa chỉ vật lý:
Page Number: số thứ tự khung trang.
Offset/Displacement: địa chỉ trong khung trang.
Frame Number Offset
- Truy xuất theo địa chỉ ảo:
Tách page # và offset từ địa chỉ ảo.
Chuyển page # thành frame # bằng cách truy xuất bảng trang:
A. Tìm phần tử quản lý trang
B. Kiểm tra valid bit
1. Valid = 1
a. Thay page # bằng frame #
b. Truy xuất dữ liệu trên khung với vị trí offset.
2. Valid = 0 lỗi trang
a. Tìm trang trên đĩa
b. Tìm một khung trống (có thể phải thay thế trang nếu khung đầy).
c. Sao chép trang vào khung trống
d. Cập nhật bảng trang (valid = 1, frame # mới)
e. Thực hiện truy xuất như bước 1.
- Phần cứng hỗ trợ chuyển đổi địa chỉ ảo:
TBL (Translation Look-aside Buffer): ở trong CPU, Cache các phần tử trên bảng trang.
Khi chuyển đổi địa chỉ, tìm phần tử quản lý trang trên TBL trước, nếu không có thì tìm trên bảng trang.
c4) Nạp trang:
- Nạp theo yêu cầu (demand paging): Nạp trang khi có lỗi trang.
- Nạp trước (prepaging): Nạp trước các trang của process theo một điều kiện xác định.
* Quá trình nạp trang trên Windows XP:
- Nạp trang theo yêu cầu với clustering: Nạp các trang xung quanh trang có lỗi.
- Các process có thông số:
Working set minimum: số trang tối thiểu được có trên bộ nhớ.
Working set maximum: số trang tối đa được có trên bộ nhớ.
- Khi bộ nhớ không đủ thì đưa các trang của các process ra đĩa theo cơ chế automatic working set trimming.
c5) Thay thế trang:
- Khi các khung đã đầy mà cần nạp thêm trang thì phải thay thế một trang đang có trên khung. Nếu trang bị thay thế có thay đổi nội dung thì phải đưa ra đĩa.
- Có các phương pháp chọn phần tử thay thế: Optimal, FIFO, LRU (thông dụng), Second Chance, Clock.
* Các phương pháp thay thế trang:
- Optimal:
Chọn trang sẽ không được truy xuất khoảng thời gian xa nhất.
Không hiện thực được.
Dùng để đánh giá các phương pháp khác.
- FIFO:
Chọn trang nạp vào bộ nhớ đầu tiên.
Dùng hàng đợi quản lý số thứ tự trang: Khi nạp trang thì đưa vào cuối hàng đợi. Khi thay thế chọn trang tại đầu hàng đợi.
- LRU (Least Recently Used):
Chọn trang đã không được truy xuất trong khoảng thời gian lớn nhất.
Hiện thực:
. Dùng hàng đợi: Khi có truy xuất trang thì đưa trang về cuối hàng đợi (tương đương trang mới).
. Dùng thêm một biến counter, lưu thời điểm truy xuất. Khi thay thế chọn trang có counter nhỏ nhất.
- Second Chance:
Cải tiến FIFO
Khi cần thay thế, xét trang tại vị trí đầu hàng đợi: Nếu bit R = 0 thì thay thế trang. Nếu bit R = 1 thì đưa trang về cuối hàng đợi, xét trang tiếp theo cho đến trang cho R = 0.
- CLOCK:
Tương tự Second Chance.
Các trang được quản lý theo danh sách liên kết xoay vòng: Có 1 con trỏ chỉ đến trang đầu tiên.
Khi cần thay thế thì xét trang tại vị trí con trỏ:
. Nếu bit R = 0 thì đưa thay thế trang, xoay con trỏ 1 đơn vị.
. Nếu bit R = 1 thì xóa R = 0, xoay con trỏ 1 đơn vị, xét trang tiếp theo cho đến trang cho R = 0.
d) Bộ nhớ ảo dạng phân đoạn:
d1) Tổ chức phân đoạn:
- Bộ nhớ ảo bao gồm các đoạn (segment) có kích thước không cố định.
- Khi nạp đoạn vào bộ nhớ thì hệ điều hành tìm khoảng trống đủ để nạp đoạn.
- Có bảng đoạn quản lý các đoạn.
d2) Nhận xét về phân đoạn phân trang:
- Trang trong suốt đối với người lập trình
- Phân trang tránh được phân mảnh bên ngoài.
- Người lập trình sử dụng phân đoạn.
- Phân đoạn phù hợp với lập trình theo khối, cấu trúc dữ liệu thay đổi, dùng chung và bảo vệ bộ nhớ.
e) Bộ nhớ ảo dạng phân đoạn có phân trang:
- Kết hợp các ưu điểm của phân đoạn và phân trang.
- Tổ chức:
Bộ nhớ ảo bao gồm các đoạn.
Trong mỗi đoạn thực hiện phân trang.
Đơn vị quản lý bộ nhớ.
Các mô hình bộ nhớ:
. Không phân đoạn, không phân trang.
. Không phân đoạn, có phân trang.
. Có phân đoạn, không phân trang.
. Có phân đoạn, có phân trang.
9) Quản lý xuất nhập:
a) Nguyên lý phần cứng xuất nhập:
a1) Thiết bị xuất nhập (I/O devices):
- Block devices (Thiết bị dạng khối): Thông tin lưu trữ theo khối, khối có địa chỉ.Đọc ghi theo từng khối độc lập.Ví dụ: Đĩa từ.
- Character devices (Thiết bị dạng kí tự): Thông tin truyền theo chuỗi kí tự. Không có địa chỉ. Ví dụ: bàn phím, card mạng, chuột…
- Abstract devices (Các thiết bị trừu tượng): Không là 2 dạng trên. Ví dụ: file system, clock.
a2) Mạch điều khiển (controller):
- Thiết bị I/O gồm có: thành phần cơ khí, thành phần điện.
- Thành phần điện mạch điều khiển: có thể điều khiển nhiều thiết bị.
- Nhiệm vụ mạch điều khiển: Chuyển đổi dữ liệu (bits, streams, blocks), kiểm soát lỗi (nếu cần thiết), tồn tại trong kiến trúc hệ thống.
- Mạch điều khiển nối với I/O bus.
- Thiết bị nối với mạch điều khiển.
- Thông số: địa chỉ (theo phương pháp xuất nhập), tập lệnh điều khiển.
- Phần mềm điều khiển thiết bị thông qua mạch điều khiển với tập lệnh.
Ví dụ: FDC Floppy Disk Controller có các lệnh SEEK, READ, WRITE, FORMAT…
a3) Địa chỉ thiết bị I/O:
- Memory mapped I/O:
Thiết bị và bộ nhớ dùng chung một không gian địa chỉ.
Xuất nhập tương đương đọc ghi bộ nhớ.
Không cần lệnh I/O.
- Isolated I/O:
Dùng không gian địa chỉ riêng.
Cần tín hiệu điều khiển I/O.
Cần các lệnh I/O.
a4) Interrupt:
- Cần interrupt controller và interrupt handler.
- CPU yêu cầu xuất nhập.
- Thiết bị yêu cầu ngắt quãng (interrupt) khi sẵn sàng.
- Thực thi chương trình xử lý ngắt.
- Thông số thiết bị:
Địa chỉ I/O.
Yêu cầu ngắt (IRQ i).
a5) DMA:
- Cần có DMA controller.
- CPU gởi yêu cầu xuất nhập cho DMAC.
- DMAC thực hiện trao đổi dữ liệu giữa bộ nhớ và thiết bị.
- Khi kết thúc, DMAC gởi tín hiệu ngắt quãng cho CPU.
- Thông số thiết bị:
Địa chỉ I/O
Yêu cầu ngắt (IRQ i)
Kênh DMA (DMA channel).
b) Tổ chức phần mềm xuất nhập:
b1) Xử lý ngắt quãng:
- Process yêu cầu I/O bị blocked cho đến khi có ngắt quãng.
- Chương trình xử lý ngắt quãng thực thi, chuyển blocked process sang trạng thái ready.
b2) Chương trình điều khiển thiết bị:
- Device driver chứa đoạn mã phụ thuộc từng loại thiết bị.
- Device driver trao đổi dữ liệu với các thanh ghi trên mạch điều khiển, kiểm tra trạng thái thiết bị.
- Ví dụ: windows driver, minidriver.
b3) Phần mềm I/O cấp hệ điều hành:
- Các hàm I/O chung cho các thiết bị, tạo giao diện thống nhất cho phần mềm cấp user.
- Giải quyết các vấn đề: đặt tên, bảo vệ, tổ chức buffer, báo lỗi…
b4) Phần mềm I/O cấp user:
- Các yêu cầu I/O được gọi thông qua các hàm thư viện.
c) Các phương pháp điều phối đĩa từ:
- Có thể có nhiều yêu cầu truy xuất đĩa đồng thời. Cần chọn xử lý một yêu cầu tiếp theo.
- Xử lý yêu cầu: di chuyển hệ thống đầu từ điều phối đĩa từ.
- Các phương pháp điều phối đĩa từ:
Random: chọn yêu cầu ngẫu nhiên.
Priority: chọn yêu cầu theo độ ưu tiên của process có yêu cầu.
FIFO: chọn yêu cầu theo thứ tự xuất hiện có yêu cầu.
SSF (Shortest Seek First): Chọn yêu cầu tiếp theo sao cho thời gian seek là ít nhất.
SCAN (còn gọi là elevator algorithm): hệ thống đầu từ di chuyển theo 1 hướng. Xử lý các yêu cầu theo hướng này. Nếu hết yêu cầu hay đến cylinder cuối thì di chuyển theo hướng ngược lại.
C-SCAN: Hệ thống đầu từ chỉ di chuyển theo một hướng. Xử lý các yêu cầu theo hướng này. Nếu hết yêu cầu hay đến cylinder cuối thì di chuyển nhanh về cylinder đầu tiên.
Thực tế: Nếu số yêu cầu ít: dùng SSF. Nếu số yêu cầu nhiều: dùng C-SCAN.
d) Mục đích, vai trò của nhập xuất:
10) Hệ thống file:
a) Khái niệm:
- File là đơn vị lưu trữ trên thiết bị nhớ ngoài:
kích thước lớn.
File tồn tại sau khi process tạo file kết thúc.
File có thể được truy xuất đồng thời từ nhiều process.
- File là sự trừu tượng hóa dữ liệu khi ghi đọc đĩa, che dấu chi tiết hoạt động trên đĩa.
- Hệ điều hành tổ chức và quản lý file theo hệ thống file (file system).
- Thực hiện trên file: Tạo cấu trúc, đặt tên, truy xuất, bảo vệ.
- Một hệ điều hành thường hỗ trợ nhiều loại hệ thống file. Windows XP: FAT, NTFS, CDFS, UDF (Universal Disk Format)…
- User quan tâm về file: đặt tên, truy xuất, bảo vệ.
b) Khái niệm hiện thực hệ thống file:
- Mỗi partition bao gồm các khối (block/cluster) gồm các sector liên tục: đơn vị cấp phát cho file. Mỗi khối có địa chỉ.
- Hiện thực hệ thống file:
Quản lý các khối thuộc về file.
Quản lý khối chưa sử dụng (free blocks).
Quản lý khối không sử dụng được (bad blocks).
c) Các dạng hiện thực hệ thống file:
c1) Dạng danh sách liên kết có chỉ số (FAT):
- Mỗi file gồm nhiều khối.
- Phần tử quản lý file trong thư mục có địa chỉ khối đầu tiên của file.
- Danh sách liên kết địa chỉ các khối của file được lưu trong 1 bảng, FAT (File Allocation Table).
- Mỗi parittion theo dạng danh sách liên kết có chỉ số có 1 FAT:
Số phần tử bằng với số khối.
Chứa danh sách liên kết các khối của tất cả các file.
Quản lý các khối chưa sử dụng.
Quản lý các khối không sử dụng được.
- Cấu trúc FAT partition:
Boot sector: mẩu tin khởi động: các thông số của partition, đoạn chương trình khởi động.
FAT
FAT2: Bản sao của FAT
Root folder: thư mục gốc.
Data: dữ liệu các file, các thư mục con (subfolders).
- Các vấn đề trên FAT:
Phân mảnh bên trong:
. Do kích thước đơn vị cấp phát cố định.
.Giải quyết: nén đĩa (disk compresstion).
Phân mảnh bên ngoài:
. Do thay thế file
. Giải quyết: các chương trình công cụ dạng defragmentation/speeddisk.
- Thư mục trên FAT:
Mỗi file được quản lý bằng một phần tử trong thư mục (directory entry): Tên, các thuộc tính. Địa chỉ cluster đầu tiên của file.
c2) NTFS:
- Là hệ thống file chuẩn trên windows NT/2000/XP/2003.
- Có nhiều ưu điểm:
Kích thước file file, volume lớn.
Có khả năng phục hồi, nén, mã hóa tốt.
Bảo mật tốt.
Truy xuất nhanh.
- Cấu trúc NTFS partition:
Boot sector: thông tin về hệ thống file, chương trình nạp file khởi động hệ điều hành.
MFT: file quản lý hệ thống file.
System files: các file hệ thống (metadata).
- Các file hệ thống:
Được tạo ra khi định dạng partition.
Gồm các file: MFT, MFT mirror, log file, Cluster Bitmap file (quản lý free blocks), boot file, Bad cluster file…
- MFT (Master file Table):
Quản lý hệ thống file trên NTFS partition.
Bao gồm các records (1KB).
Mỗi file hay folder được quản lý bằng 1 hay nhiều MFT record: File, folder kích thước nhỏ (normal) 1 record. File, folder kích thước lớn (large): có thêm các phần mở rộng.
c3) Dạng i-node:
- Dùng trên HDH UNIX.
- Mỗi file được quản lý bằng một bảng, gọi là i-node, lưu các thông tin: loại file, các thông số về thời gian, bảo vệ file, địa chỉ các khối của file.
- File kích thước nhỏ chỉ cần các địa chỉ khối trên i-node.
- File kích thước lớn cần thêm các khối gián tiếp (indirect block), chứa địa chỉ các khối của file.
- Cấu trúc partition theo i-node:
Boot block: khối khởi động.
Super block: thông tin về hệ thống file.
I-nodes: bảng các i-node.
Data blocks: các khối dữ liệu.
- Hệ thống file trên Linux:
Xuất phát từ Minix file system.
Phát triển với cấu trúc VFS trên kernel: virtual File System.
Hiện thực thêm các hệ thống file theo dạng i-node:
. Extended File System (Ext)
. Second Extended File System (Ext2)
d) (ĐT) Phân tích những ưu điểm của Hệ tập tin NTFS ?
Giải:
- Bảo mật và An toàn hơn so với FAT: Quyền sử dụng của ND được ấn định đến từng tập tin, TM.
- Nhanh hơn FAT khi dung lượng đĩa lớn và khi đĩa bị phân mảnh nhiều.
- Độ tin cậy cao, khả năng khôi phục lớn, không phải chạy Chkdisk.exe thường xuyên.
- Nén đến từng tập tin và thư mục (giảm được 40-50% dung lượng).
- Mỗi user có Recycle Bin riêng.
- Gá lắp ổ đĩa với một thư mục nào đó (Mounting).
- EPS (Encrypting File System): Mã hoá ổ đĩa.
- Disk Quotas: Hạn mức sử dụng vùng nhớ đĩa cho mỗi user.
e)(ĐT)Trình bày 5 loại ổ đĩa NTFS được Windows 2000/XP/2003 hỗ trợ ?
Giải:
- Simple Volume: Ổ đơn dựa trên 1 vùng nhớ của Dynamic Disk (phân biệt với Basic Disk). Một đĩa cứng có thể phân hoạch thành nhiều ổ đơn.
- Spanned Volume: Ổ ghép trải trên nhiều ổ đơn.
- Striped Volume: Ổ song song. Nội dung mỗi tập tin rải trên nhiều ổ đơn. Còn gọi là RAID-0.
- Mirrored Volume: Ổ ánh xạ gương. Bao gồm 1 ổ đơn được ánh xạ tự động sang 1 ổ đơn khác. Còn gọi là RAID-1.
- RAID-5 Volume (Redundant Array of Inexpensive Disks): Trải trên 3 hoặc hơn 3 ổ đĩa đơn. Dữ liệu được rải trên các ổ đĩa thành phần cùng với thông tin chẵn lẻ (parity) để đảm bảo khả năng kháng lỗi (fault tolerance) mà Striped Volume không làm được.
g)(ĐT) Phân biệt Master Boot Record với Boot Record ?
Giải:
- Master Boot Record: là 512 Bytes đầu của ổ đĩa vật lý. Chứa chương trình Khởi động, đọc bảng mô tả các Partition trên đĩa, tìm Active Partition, chọn HĐH, chuyển điều khiển cho chương trình trong Boot Record của Partition vừa chọn.
- Boot Record: là 512 Bytes đầu của ổ đĩa luận lý hay một Partition. Chứa lệnh nhảy đến đầu đoạn mã boot của Boot Record, tên và số hiệu phiên bản HĐH, Serial number, Volume label, đoạn mã dùng nạp HĐH từ đĩa ….
h) Phân biệt Basic Disk với Dynamic Disk ?
Giải:
- Một Basic Disk là một ổ cứng vật lý bao gồm các phân vùng chính (Primary Partition), các phân vùng mở rộng (Extended Partition) hoặc các ổ đĩa luận lý (Logical Drive). Các phân vùng và các ổ đĩa luận lý trên các basic disk còn được hiểu như là các Basic Volume.
Số phân vùng (Partition) ta tạo trên một Basic disk tuỳ thuộc vào loại phân vùng của ổ đĩa (Disk’s Partition Type).
Đối với MBR (Master Boot Record) disks, chúng ta có thể tạo được nhiều nhất 4 phần vùng chính (Primary Partition), hoặc 3 phân vùng chính và một phân vùng mở rộng (Extended Partion). Trong phân vùng mở rộng ta có thể tạo vô hạn các ổ đĩa luận lý (Logical Drive).
Đối với GPT (GUIDs Partition Table) disks, chúng ta có thể tạo lên đến 128 phân vùng chính (Primary Partition). Bởi vì GPT disks không giới hạn 4 phân vùng chính nên chúng ta không cần tạo phân vùng mở rộng hay các ổ đĩa luận lý.
- Một Dynamic Disk cung cấp các tính năng mà Basic Disk không có, như khả năng tạo những volume mở rộng trên nhiều ổ đĩa vật lý (Spanned and Striped Volumes) và khả năng tạo ra những volume Fault Tolerance (Mirrored and Raid-5 Volumes). Các volume trên Dynamic Disk ta gọi là Dynamic Volumes, và một Dynamic Disk có thể hỗ trợ lên tới 2000 Volume trên một ổ đĩa (dù vậy Microsoft đã giới thiệu số lượng Dynamic Volumes là 32 hoặc ít hơn trên một ổ đĩa). Có 5 loại Dynamic Volume là: Simple, Spanned, Stripped, Mirrored và Raid-5. Trong đó Mirrored và Raid-5 chỉ chạy trên máy tính có hệ điều hành Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server, or Windows XP….
*************************************************************************************
1) Process:
a) Khái niệm Process:
- Process là chương trình thực thi:
Được nạp trong bộ nhớ
Có các thông tin trạng thái: Thanh ghi PC, các thanh ghi…
- Mỗi Process thực thi trên một CPU ảo.
- Hệ thống có nhiều Process đồng thời:
Hệ thống đa chương: 1 CPU
Hệ thống đa xử lý: nhiều CPU trên một máy.
Hệ thống phân bố: nhiều CPU trên nhiều máy.
b) Tổ chức thứ bậc các Process:
- Tạo Process mới:
Hệ điều hành tạo Process mới.
User yêu cầu tạo Process mới.
Process tạo Process mới.
- Kết thúc Process:
Bình thường.
Lỗi.
Do Process khác kết thúc.
- Process tạo Process mới:
Parent Process
Child Process
- Hệ thống thứ bậc các Process:
UNIX: Process group.
Windows: không có tổ chức thứ bậc (các Process được tạo tương đương)
c) Các trạng thái của Process:
- Mô hình 3 trạng thái của Process:
Thực thi (Running): đang thực thi (đang sử dụng CPU). Chỉ có 1 running Process tại 1 thời điểm trên hệ thống đa chương.
Sẵn sàng (Ready): sẵn sàng thực thi, tạm dừng chờ CPU. Có nhiều ready Process được quản lý bằng ready queue.
Bị chặn (Blocked): Không thể thực thi cho đến khi có biến cố xảy ra. Có nhiều ready Process được quản lý bằng Blocked Process.
- Chuyển trạng thái:
Running -> Blocked (1) : chờ biến cố.
Running -> Ready (2): Hết thời gian
Ready -> Running (3): được thực thi.
Blocked -> Ready (4): biến cố xảy ra.
- Thời điểm chuyển trạng thái:
Ngắt quãng thời gian (Clock Interrupt): dùng để kiểm soát thời gian.
Ngắt quãng thiết bị (IO Interrupt): Liên quan đến thiết bị IO.
Lệnh gọi hệ thống, lỗi (System calls, trap): Khi gọi System calls hay khi có lỗi.
d) Tiến trình khác Chương trình như thế nào?
- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
e) Trình tự tạo Process:
- Mở và thực thi file .exe
- Tạo Eprocess.
- Tạo thread khởi đầu (stack, context, and Windows executive thread object).
- Báo hiệu Windows subsystem thiết lập Process và thread mới.
- Thực thi thread khởi đầu (ngoại trừ trường hợp cờ CREATE_SUSPEND được bật).
- Hoàn tất khởi tạo không gian địa chỉ process, thread (nạp các dll, yêu cầu…) và bắt đầu thực thi chương trình.
g) Cấu trúc Process:
- Kenel thread Block.
- Thread time.
- Thông tin về thời điểm tạo và thoát thread.
- Process Indentification: Process ID và con trỏ đến Eprocess block của Process tạo thread.
- Start Address: địa chỉ của thread start toutine.
- LPC information.
- I/O information: Danh sách các yêu cầu I/O đang chờ thực hiện.
h) Trình bày thứ tự sử dụng tài nguyên của tiến trình:
Thứ tự sử dụng tài nguyên của tiến trình:
1. Yêu cầu (Request): Nếu không được đáp ứng do bị tiến trình khác giữ => tiến trình phải chờ.
2. Sử dụng (Use): Sau khi được cấp phát, tiến trình thao tác với tài nguyên (thực hiện I/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
l) Chức năng và nội dung của Khối kiểm soát tiến trình:
Chứa các thông tin ứng với mỗi process:
- Process ID, parent process ID
- Credentials (user ID, group ID, effective ID,...)
- Trạng thái process : new, ready, running, waiting…
- Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi
- Các thanh ghi CPU
- Thông tin dùng để định thời CPU: priority,...
- Thông tin bộ nhớ: base/limit register, page tables…
- Thông tin thống kê: CPU time, time limits…
- Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,...
- Con trỏ (pointer) đến PCBs khác.
m) Tại sao phải tổ chức cộng tác giữa các tiến trình?
- Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trinh khác cung cấp.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
- Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
2)Thread:
a) Khái niệm Thread:
- Process có 2 đặc trưng:
Đơn vị sử dụng tài nguyên.
Đơn vị được thực thi (theo một dòng điều khiển, có thể xen kẻ giữa các Process).
- Đặc trưng thực thi của Process được trừu tượng hóa thành Thread.
b) Các đặc điểm của Thread:
- Mỗi Thread có stack, có trạng thái riêng.
- Việc chuyển trạng thái giữa các thread nhanh hơn các thread nhanh hơn giữa các Process.
- Các Thread trong Process dùng chung tài nguyên.
- Các Thread thực thi đồng thời trên các hệ thống SMP, siêu phân luồng, đa lõi.
- Giữa các thread không có sự bảo vệ.
c) Các mô hình Thread cơ bản:
- Một thread trong một process: đơn luồng (single thread)
- Nhiều thread trong một process: đa luồng (multithread)
d) Các ứng dụng của Thread:
- Công việc dạng background, foreground.
- Các xử lý bất đồng bộ.
- Tăng tốc độ xử lý.
- Tạo tính cấu trúc cho chương trình.
e) Các dạng hiện thực Thread:
- Cấp user: do các thư viện thread quản lý. Ví dụ: win32, java thread.
- Cấp Kernel: Do kernel quản lý. Ví dụ: Windows 2K/XP, Linux.
- Tổ hợp user-kernel. Ví dụ: Solaris.
g) Những ích lợi của đa luồng ? Cho 2 ví dụ về sử dụng công nghệ đa luồng ?
- Khả năng đáp ứng (Responsiveness) tốt hơn: Trong khi một luồng bị ách hoặc quá bận, luồng khác vẫn vận hành bình thường (Luồng chính của trình duyệt vẫn tương tác với người dùng trong khi dữ liệu được lấy về).
- Chia sẻ tài nguyên (Resource Sharing): Theo mặc định, các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Vài luồng cùng vận hành trong 1 vùng địa chỉ, do đó dễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.
- Tiết kiệm (Economy): Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc tốn kém. Do luồng chung tài nguyên với cha và các luồng khác, việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn (Solaris 2: Tạo tiến trình chậm hơn 30 lần, Chuyển ngữ cảnh chậm hơn 5 lần).
- Tận dụng được thế mạnh của kiến trúc đa xử lý: Đa luồng làm tăng tính song song trên hệ máy nhiều CPU. Mỗi luồng có thể chạy bởi CPU riêng.
Ví dụ: Lập trình xử lý công việc bán vé máy bay, gửi và rút tiền ở ngân hàng đều cần đến công nghệ đa luồng.
3) Truyền thông giữa các process:
a) Các điều kiện dẫn đến tranh chấp ? Cho ví dụ ?
- Các dạng tương tác giữa các Process tồn tại đồng thời:
Các Process độc lập
Các Process biết nhau gián tiếp (thông qua tài nguyên dùng chung).
Các process biết nhau trực tiếp (các process thuộc về một phần mềm).
Ví dụ:
Có 2 process P0, P1:
Mục đích: P0: Nhập X, xuất X
P1: Nhập Y, xuất Y
Kết quả: P0: Nhập X, xuất Y
P1: Nhập Y, xuất Y
- Các Process dùng chung tài nguyên.
- Thứ tự truy xuất ảnh hưởng kết quả.
b) Nguyên tắc loại trừ tương hỗ:
- Khái niệm: Loại trừ tương hỗ là nguyên tắc giải quyết triệt để vấn đề tranh chấp tài nguyên giữa các Process. Khi có một Process vào vùng tranh chấp thì tất cả các Process khác phải ở ngoài vùng tranh chấp. Có thể dẫn đến trạng thái deadlock hay trạng thái starvation (trạng thái chờ mãi mãi của process)
- Các yêu cầu:
Không có 2 process đồng thời vào vùng tranh chấp.
Không có giả sử gì về tốc độ và số lượng Process.
Không có Process nào ngoài vùng tranh chấp có thể ảnh hưởng đến process khác.
Không có process nào chờ mãi mãi.
- Các phương pháp giải quyết:
Các process phải kiểm tra điều kiện trước khi vào vùng tranh chấp và thông báo khi rời vùng tranh chấp.
Nếu điều kiện không thỏa thì chờ.
Có 2 dạng chờ:
. Chờ bằng vòng lặp (busy-waiting): Dùng phần mềm, phần cứng hỗ trợ.
. Chờ bằng trạng thái blocked: Hệ điều hành hỗ trợ.
c) Giải quyết vấn đề loại trừ tương hỗ dùng vòng lặp bằng phần mềm:
c1) Giải thuật luân phiên nghiêm ngặt (Strict Alternation):
- Giải quyết trường hợp 2 process (P0 và P1) và một tài nguyên.
- Hai process dùng một biến turn để xác định đến phiên process nào vào vùng tranh chấp.
- Khởi động turn = 0.
P0 P1
while (TRUE)
{
while (turn != 0)
critical_region();
turn = 1;
noncritical_region();
} while (TRUE)
{
while (turn != 1)
critical_region();
turn = 0;
noncritical_region();
}
- Xét hoạt động P0 (tương tự cho P1):
Hoạt động P0:
. P0 kiểm tra biến turn
P0 vào vùng tranh chấp nếu turn = 0.
P0 chờ khi turn =1.
. P0 gán turn = 1 khi rời vùng tranh chấp.
Hoạt động P0 với P1:
Giả sử P0 đến vòng lặp while:
P1 ở ngoài vùng tranh chấp -> turn = 0: P0 vào vùng tranh chấp.
P1 ở trong vùng tranh chấp -> turn = 1: P0 chờ.
P1 cũng đến vòng while: Do biến turn dùng chung nên chỉ có 1 process được vào vùng tranh chấp, process kia chờ tại vòng while.
- Đánh giá giải thuật luân phiên nghiêm ngặt:
Đạt yêu cầu (1) và yêu cầu (4).
Giả sử P0 vào vùng tranh chấp 100 lần/đơnvithoigian, P1 vào vùng tranh chấp 1 lần/đơnvithoigian: Do luân phiên nghiêm ngặt nên P0 chỉ được vào vùng tranh chấp 1 lần/đơnvithoigian. Không thỏa yêu cầu (2).
Giả sử P1 có lỗi ngoài vùng tranh chấp: P0 dừng mãi mãi tại vòng while, Không thỏa yêu cầu (3).
c2) Giải thuật Peterson:
- Xét trường hợp 2 process (P0 và P1) và một tài nguyên.
- Hai Process dùng chung:
Biến turn: Xác định đến phiên Process nào vào vùng tranh chấp.
Mảng boolean interested[2]: thể hiện process sẵn sàng vào vùng tranh chấp, interested[0]: P0 sẵn sàng vào vùng tranh chấp. Khởi động interested[0] = interested[1] = FALSE
#define FALSE 0
#define TRUE 1
#define N 2 //Số process
int turn; // đến phiên process nào
int interested[N]; // process sẵn sàng
void enter_region(int process)
{
int other; // process còn lai
other = 1 – process;
interested[process] = TRUE;//thê hiên process san sang.
turn = process; // dat phiên
while(turn == process && interested[other] == TRUE);
}
void leave_region(int process)
{
interested[process] = FALSE; // roi vùng tranh châp
}
d) Giải quyết vấn đề loại trừ tương hỗ bằng phần cứng:
- Tập lệnh CPU có các lệnh đặc biệt hỗ trợ.
- Ví dụ:
TEST SET LOCK (TSL): Kiểm tra và đặt giá trị cho một từ nhớ.
SWAP: Đổi giá trị 2 từ nhớ.
…
- Lệnh TSL:
Đọc giá trị một từ nhớ vào một thanh ghi, sau đó ghi giá trị khác 0 (thường là 1) vào từ nhớ.
Thao tác đọc và ghi nêu trên là trong cùng một lệnh: Thao tác đơn vị (atomic, primitive).
- Ứng dụng lệnh TSL trong loại trừ tương hỗ:
Giải quyết trường hợp n process.
n process dùng chung một biến flag, khởi động flag = 0.
Cấu trúc process Pi:
while (TRUE)
{
enter_region(); // kiểm tra điều kiện
critical_region(); // vùng tranh châp
leave_region(); // thông báo trạng thái
noncritcal_region(); // vùng không tranh chấp
}
enter_region:
TSL register, FLAG; FLAG -> register, FLAG = 1
CMP register,0; so sánh FLAG với 0
JNZ enter_region; FLAG=0, lặp
RET; FLAG!=0, trở về
leave_region:
MOV FLAG, 0; Gán FLAG=0
RET; Trở vê
Ví dụ: lệnh CPMXCHG (IA32)
Cú pháp: CMPXCHG DEST, SRC
Hoạt động: (accumulator: AL/AX/EAX)
IF accumulator = DEST
THEN
ZF 1
DEST SRC
ELSE
ZF 0
accumulator DEST
FI
4) Vấn đề đồng bộ giữa các process:
a) Bài toán Dining Philosophers:
- Có 5 triết gia ngồi quanh một bàn tròn.
- Mỗi triết gia có 1 đĩa thức ăn, khi ăn cần 2 nĩa.
- Hoạt động của triết gia: luân phiên giữa suy nghĩ và ăn:
Khi triết gia đói: Cần nĩa trái và nĩa phải đồng thời, nếu có 2 nĩa thì ăn.
Sau khi ăn thì trả 2 nĩa, tiếp tục suy nghĩ.
- Nếu 5 triết gia đồng thời cầm nĩa trái, chờ nĩa phải deadlock.
- Nếu 5 triết gia đồng thời trả nĩa trái, suy nghĩ, đồng thời cầm nĩa phải: starvation.
b) Phát biểu bài toán SX-TT và trình bày Thuật giải với Bộ đệm thực thi bằng mảng xoay vòng:
Phát biểu bài toán:
Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
c) Phát biểu bài toán Sản Xuất – Tiêu Thụ. Sử dụng đèn hiệu để đồng bộ hoá:
Hai quá trình cùng chia sẻ một vùng đệm có kích thước giới hạn n. Biến semaphore mutex cung cấp sự loại trừ hỗ tương để truy xuất vùng đệm và được khởi tạo với giá trị 1. Các biến semaphore empty và full đếm số khe trống và đầy tương ứng. Biến semaphore empty được khởi tạo tới giá trị n; biến semaphore full được khởi tạo tới giá trị 0.
Dữ liệu chia sẻ:
SEMAPHORE full, empty, mutex;
Khởi tạo:
full = 0;
empty = BUFFER_SIZE;
mutex = 1;
5) Điều phối và các phương pháp điều phối:
a) Khái niệm:
- Điều phối (scheduling): xác định thời điểm vào, chọn process được thực thi.
- do bộ điều phối (scheduler) thực hiện.
- Các dạng điều phối trên hệ thống đa chương:
Thời gian dài: liên quan việc tạo process mới.
Thời gian trung bình: liên quan việc đưa process vào, ra bộ nhớ.
Thời gian ngắn: chọn ready process để cho thực thi.
b) Các chiến lược điều phối:
- Nonpremptive scheduling: Không dừng process đang thực thi, không thích hợp với hệ thống có tương tác (interactive system).
- Premtive scheduling: dừng process đang thực thi.
c) Các phương pháp điều phối thời gian ngắn:
c1) Độ ưu tiên:
- Mỗi process có độ ưu tiên.
- Process có độ ưu tiên cao nhất được cho thực thi: Không kể process mới nonpreemptive. Kể cả process mới preemptive.
- Process có độ ưu tiên thấp có thể chờ mãi mãi (starvation): Tăng độ ưu tiên của process chờ theo thời gian.
c2) First-In-First-Out (FIFO hay FCFS):
- Đến trước - Phục vụ trước (First-Come, First-Served Scheduling - FCFS)
- Đơn giản, dễ thực hiện.
- Các tiến trình trong Ready Queue được cấp CPU từ đầu dãy đến cuối dãy theo quy tắc FIFO (First-In, First-Out).
- Thời gian chờ trung bình khá lớn.
c3) Round Robin (RR):
- Dạng preemptive.
- Mỗi process được thực thi trong một đơn vị thời gian q (quantum)
- Nếu process chưa kết thúc trong thời gian q thì bị dừng, đưa về cuối hàng đợi ready.
- Process đang ở đầu của hàng đợi được chọn để thực thi (theo FIFO).
- Nếu q đủ lớn: trở thành FIFO.
- Nếu q nhỏ: chi phí chuyển trạng thái là đáng kể.
c4) Shortest Job First (SJF):
Ngắn hơn-Chạy trước (Shortest-Job-First Scheduling-SJFS)
- Đúng hơn phải được gọi là Shortest-Next-CPU-Burst, nghĩa là tiến trình có Khoảng CPU kế tiếp nhỏ hơn thì được chạy trước. Trong trường hợp bằng nhau, dùng thuật giải FCFS.
- Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp.
- SJFS không tiếm quyền (Non-Preemptive SJFS): Tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó.
- SJFS có tiếm quyền (Preemptive SJFS): Tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First).
c5) Shortest Remaining Time (SRT):
- Dạng preemptive.
- Process có thời gian thực thi đến kết thúc (remaining time) nhỏ nhất được cho thực thi, kể cả process mới.
- Cần nhiều chi phí chuyển trạng thái, Process có thời gian thực thi lớn phải chờ lâu.
c6) Các ví dụ:
6) Dealock:
a) Khái niệm:
Deadlock: là tình huống kẹt tiến trình (process) với một tập các process bị blocked, mỗi process giữ tài nguyên và đang chờ tài nguyên mà process khác trong tập đang có.
Ví dụ 1:
Giả sử hệ thống có 2 file trên đĩa.
P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia.
Ví dụ 2:
Semaphore A và B, khởi tạo bằng 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
b) Bốn điều kiện dẫn đến Deadlock là những điều kiện gì?
- Mutual exclusion (loại trừ tương hỗ): với mỗi tài nguyên, chỉ có một process sử dụng tại một thời điểm. Tài nguyên hoặc được dùng bởi 1 process hoặc chưa cấp phát.
- Hold and wait (giữ và chờ): process đang giữ tài nguyên được quyền yêu cầu thêm tài nguyên khác.
- No preemption: Không lấy lại tài nguyên đã cấp cho process.
- Circular wait: tồn tại một chu kỳ khép kín các yêu cầu tài nguyên.
c) Các giải pháp xử lý deadlock:
- Không giải quyết: giải thuật đà điểu.
- Phát hiện, phục hồi (detection, recovery).
- Ngăn chặn (prevention): Loại bỏ các điều kiện tạo deadlock.
- Tránh (avoidance): Chấp nhận các điều kiện tạo deadlock, theo dõi và kiểm soát.
c1) Giải thuật đà điểu:
- Coi như không có vấn đề deadlock.
- Dựa trên cơ sở: Deadlock rất ít xảy ra, chi phí giải quyết rất cao.
- Được dùng trên các hệ điều hành: UNIX, Windows.
c2) Giải pháp phát hiện và phục hồi từ deadlock:
- Phát hiện deadlock: Dùng các giải thuật phát hiện vòng chờ các process. Do người quản trị hệ thống.
- Phục hồi từ deadlock:
Kết thúc các process bị deadlock:Lần lượt kết thúc các process bị deadlock cho đến khi hết deadlock.
Lấy lại tài nguyên từ process: Lần lượt lấy lại tài nguyên đã cấp phát cho các process cho đến khi hết deadlock. Phụ thuộc vào bản chất của tài nguyên. Sử dụng công cụ của hệ điều hành.
Phục hồi các điểm kiểm tra: Định kì tạo các điểm kiểm tra (checkpoint), thực hiện lại (rollback) các process bị deadlock tại các điểm. Lần lượt thực hiện lại các process bị deadlock tại các điểm kiểm tra cho đến khi hết deadlock.
c3) Giải pháp ngăn chặn Deadlock:
Để ngăn chặn Deadlock ta phải làm sao cho ít nhất 1 trong 4 điều kiện dẫn đến Deadlock không xảy ra. Cụ thể:
- Với Mutual Exclusion: Đảm bảo TN nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
- Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
- Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
- Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
c4) Thế nào là trạng thái an toàn của hệ thống ? Giải pháp tránh deadlock ?
* Trạng thái an toàn của hệ thống:
- Một trạng thái được gọi là an toàn “safe” nếu tồn tại ít nhất một cách mà trong một khoảng thời gian hữu hạn nào đó, hệ thống có thể cấp phát tài nguyên thỏa mãn cho tất cả process thực thi hoàn tất .
- Khi đó hệ thống tồn tại một Chuỗi an toàn {P1, P2, … , Pn } bao gồm tất cả các tiến trình sao cho với mỗi Pi, các tài nguyên mà nó yêu cầu có thể được đáp ứng bởi số lượng hiện có cộng thêm của tất cả các Pj mà j < i.
- Nếu các TN yêu cầu không có đủ, Pi phải chờ cho đến khi tất cả các Pj trả lại các TN mà chúng chiếm giữ.
- Khi Pi nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để Pi 1 có thể vận hành, cứ như thế cho đến Pn
- Khi một process yêu cầu một tài nguyên đang sẵn có, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay.
* Tránh deadlock:
- Chấp nhận các điều kiện tạo deadlock.
- Theo dõi và tránh dẫn đến deadlock.
- Hai hướng giải quyết:
Không tạo process mới nếu có thể dẫn đến deadlock: Process cần khai báo số lượng tài nguyên cần sử dụng.
Không cần tạo process mới nếu số lượng tài nguyên hệ thống không đủ, có thể dẫn đến deadlock.
Không cấp phát thêm tài nguyên cho process nếu có thể dẫn đến deadlock: Tránh Deadlock bằng Banker’s Algorithm:
Là thuật giải tránh Deadlock cho trường hợp mỗi loại tài nguyên có n phiên bản.
- Áp dụng cho hệ thống cấp phát tài nguyên trong đó mỗi loại tài nguyên có thể có nhiều instance.
- Mô phỏng nghiệp vụ ngân hàng (banking)
- Một số giả thiết
Mỗi process phải khai báo số lượng tối đa tài nguyên mỗi loại mà process đó cần để hoàn tất công việc.
Khi process yêu cầu một tài nguyên thì có thể phải đợi mặc dù tài nguyên được yêu cầu đang có sẵn
Khi process đã có được đầy đủ tài nguyên thì phải hoàn trả trong một khoản thời gian hữu hạn nào đó.
7) Quản lý bộ nhớ thực:
a) Dạng đơn chương:
- Có 1 chương trình ứng dụng trên bộ nhớ.
- Hệ điều hành nạp chương trình vào vùng nhớ xác định.
- Khi chương trình kết thúc, hệ điều hành nạp chương trình khác thay thế.
Ví dụ: Dos.
b) Dạng đa chương với kích thước đoạn cố định:
- Bộ nhớ được chia thành các vùng (partition) kích thước cố định, không cần bằng nhau.
- Có nhiều process trên bộ nhớ đồng thời. Có thể đưa process ra bộ nhớ ngoài (swapping).
- Kích thước các vùng nhớ cố định có sự phân mảnh bên trong (internal fragmentation).
- Định vị lại (relocation), bảo vệ (protection):
Process có thể nạp vào vùng nhớ kích thước phù hợp.
Có thể dùng địa chỉ dạng base offset: Cần định vị lại khi nạp process vào vùng nhớ khác.
Bảo vệ bộ nhớ bằng các dùng giới hạn kích thước vùng nhớ (limit): nếu process có quyền dùng địa chỉ tuyệt đối thì không thể bảo vệ bộ nhớ.
c) Dạng đa chương với kích thước đoạn không cố định:
- Các process được cấp phát vùng nhớ bằng kích thước của các process: Có nhiều process đồng thời trên bộ nhớ. Có thể đưa process ra bộ nhớ ngoài.
- Không còn phân mảnh bên trong.
- Sau một thời gian hoạt động sẽ có phân mảnh bên ngoài (external fragmentation) do kích thước process khác nhau.
d) Giải thích sự khác biệt giữa Phân mảnh Trong với Phân mảnh Ngoài:
- Phân mảnh ngoại (external fragmentation)
Kích thước không gian bộ nhớ còn trống đủ để thỏa mãn một yêu cầu cấp phát, tuy nhiên không gian nhớ này không liên tục.
- Phân mảnh nội (internal fragmentation)
Kích thước vùng nhớ được cấp phát có thể hơi lớn hơn vùng nhớ yêu cầu. Ví dụ: cấp một khoảng trống 18,464 bytes cho một process yêu cầu 18,462 bytes.
Hiện tượng phân mảnh nội thường xảy ra khi bộ nhớ thực (physical memory) được chia thành các khối kích thước cố định(fixed-sized block) và các process được cấp phát theo đơn vị khối. Ví dụ: cơ chế phân trang (paging).
Quản lý bộ nhớ ảo:
a) Khái niệm và ích lợi của bộ nhớ ảo ?
- Bộ nhớ ảo là kỹ thuật cho phép thực hiện các chương trình không hoàn toàn nằm đầy đủ trong bộ nhớ.
- Người lập trình chỉ lo viết chương trình, không phải quan tâm nó lớn đến đâu.
- Vùng địa chỉ lô-gic liên tục, từ 0 => Max-1.
- Ích lợi:
Lập trình không bị hạn chế bởi dung lượng bộ nhớ vật lý.
Độ đa chương cao => Tăng công suất CPU và thông suất hệ thống.
Có thể chỉ cần ít I/O để nạp và tráo đổi chương trình => từng tiến trình có thể làm việc nhanh hơn (Không phải nạp hết, nhiều đoạn thực tế không hoặc ít sử dụng).
b) Các đặc điểm của bộ nhớ ảo:
- Không gian địa chỉ ảo lớn hơn nhiều so với không gian địa chỉ vật lý: Chương trình có thể lớn hơn bộ nhớ, phù hợp với hệ thống đa chương.
- Chỉ cần phần đang thực thi của process nạp vào bộ nhớ, phần còn lại đặt trên đĩa.
- Cho phép dùng chung không gian địa chỉ giữa các process, hỗ trợ liên kết động.
c) Bộ nhớ ảo dạng phân trang:
c1) Tổ chức phân trang:
- Không gian địa chỉ ảo chia thành các trang (page) kích thước vài KB, vài MB.
- Không gian địa chỉ vật lý chia thành các khung trang (page frame/ frame):
Kích thước khung trang bằng kích thước trang.
Các trang của một process không cần ở trên các khung trang liên tục.
- Có bảng trang (page table) quản lý các trang. Mỗi process có một bảng trang.
c2) Bảng trang:
- Bảng trang có kích thước lớn: Mỗi phần tử tương ứng một trang, mỗi process cần một bảng trang.
- Giải quyết:
Bảng trang nhiều cấp, ví dụ: IA32
Bảng trang nghịch đảo (Inverted Page Table), ví dụ: PowerPC, IA64
- Bảng trang luôn được truy xuất: Cache các phần tử trong CPU.
- Bảng trang nghịch đảo:
Số phần tử bằng số khung trang: Chỉ cần một bảng trên hệ thống, vị trí trong bảng là frame number.
Mỗi phần tử bao gồm: số thứ tự trang tương ứng, thông tin về process sở hữu trang (pid), truy xuất theo cơ chế hash.
c3) Chuyển đổi địa chỉ:
- Địa chỉ ảo theo phân trang:
Page Number: số thứ tự trang.
Offset/Displacement: địa chỉ trong trang.
Page Number Offset
- Địa chỉ vật lý:
Page Number: số thứ tự khung trang.
Offset/Displacement: địa chỉ trong khung trang.
Frame Number Offset
- Truy xuất theo địa chỉ ảo:
Tách page # và offset từ địa chỉ ảo.
Chuyển page # thành frame # bằng cách truy xuất bảng trang:
A. Tìm phần tử quản lý trang
B. Kiểm tra valid bit
1. Valid = 1
a. Thay page # bằng frame #
b. Truy xuất dữ liệu trên khung với vị trí offset.
2. Valid = 0 lỗi trang
a. Tìm trang trên đĩa
b. Tìm một khung trống (có thể phải thay thế trang nếu khung đầy).
c. Sao chép trang vào khung trống
d. Cập nhật bảng trang (valid = 1, frame # mới)
e. Thực hiện truy xuất như bước 1.
- Phần cứng hỗ trợ chuyển đổi địa chỉ ảo:
TBL (Translation Look-aside Buffer): ở trong CPU, Cache các phần tử trên bảng trang.
Khi chuyển đổi địa chỉ, tìm phần tử quản lý trang trên TBL trước, nếu không có thì tìm trên bảng trang.
c4) Nạp trang:
- Nạp theo yêu cầu (demand paging): Nạp trang khi có lỗi trang.
- Nạp trước (prepaging): Nạp trước các trang của process theo một điều kiện xác định.
* Quá trình nạp trang trên Windows XP:
- Nạp trang theo yêu cầu với clustering: Nạp các trang xung quanh trang có lỗi.
- Các process có thông số:
Working set minimum: số trang tối thiểu được có trên bộ nhớ.
Working set maximum: số trang tối đa được có trên bộ nhớ.
- Khi bộ nhớ không đủ thì đưa các trang của các process ra đĩa theo cơ chế automatic working set trimming.
c5) Thay thế trang:
- Khi các khung đã đầy mà cần nạp thêm trang thì phải thay thế một trang đang có trên khung. Nếu trang bị thay thế có thay đổi nội dung thì phải đưa ra đĩa.
- Có các phương pháp chọn phần tử thay thế: Optimal, FIFO, LRU (thông dụng), Second Chance, Clock.
* Các phương pháp thay thế trang:
- Optimal:
Chọn trang sẽ không được truy xuất khoảng thời gian xa nhất.
Không hiện thực được.
Dùng để đánh giá các phương pháp khác.
- FIFO:
Chọn trang nạp vào bộ nhớ đầu tiên.
Dùng hàng đợi quản lý số thứ tự trang: Khi nạp trang thì đưa vào cuối hàng đợi. Khi thay thế chọn trang tại đầu hàng đợi.
- LRU (Least Recently Used):
Chọn trang đã không được truy xuất trong khoảng thời gian lớn nhất.
Hiện thực:
. Dùng hàng đợi: Khi có truy xuất trang thì đưa trang về cuối hàng đợi (tương đương trang mới).
. Dùng thêm một biến counter, lưu thời điểm truy xuất. Khi thay thế chọn trang có counter nhỏ nhất.
- Second Chance:
Cải tiến FIFO
Khi cần thay thế, xét trang tại vị trí đầu hàng đợi: Nếu bit R = 0 thì thay thế trang. Nếu bit R = 1 thì đưa trang về cuối hàng đợi, xét trang tiếp theo cho đến trang cho R = 0.
- CLOCK:
Tương tự Second Chance.
Các trang được quản lý theo danh sách liên kết xoay vòng: Có 1 con trỏ chỉ đến trang đầu tiên.
Khi cần thay thế thì xét trang tại vị trí con trỏ:
. Nếu bit R = 0 thì đưa thay thế trang, xoay con trỏ 1 đơn vị.
. Nếu bit R = 1 thì xóa R = 0, xoay con trỏ 1 đơn vị, xét trang tiếp theo cho đến trang cho R = 0.
d) Bộ nhớ ảo dạng phân đoạn:
d1) Tổ chức phân đoạn:
- Bộ nhớ ảo bao gồm các đoạn (segment) có kích thước không cố định.
- Khi nạp đoạn vào bộ nhớ thì hệ điều hành tìm khoảng trống đủ để nạp đoạn.
- Có bảng đoạn quản lý các đoạn.
d2) Nhận xét về phân đoạn phân trang:
- Trang trong suốt đối với người lập trình
- Phân trang tránh được phân mảnh bên ngoài.
- Người lập trình sử dụng phân đoạn.
- Phân đoạn phù hợp với lập trình theo khối, cấu trúc dữ liệu thay đổi, dùng chung và bảo vệ bộ nhớ.
e) Bộ nhớ ảo dạng phân đoạn có phân trang:
- Kết hợp các ưu điểm của phân đoạn và phân trang.
- Tổ chức:
Bộ nhớ ảo bao gồm các đoạn.
Trong mỗi đoạn thực hiện phân trang.
Đơn vị quản lý bộ nhớ.
Các mô hình bộ nhớ:
. Không phân đoạn, không phân trang.
. Không phân đoạn, có phân trang.
. Có phân đoạn, không phân trang.
. Có phân đoạn, có phân trang.
9) Quản lý xuất nhập:
a) Nguyên lý phần cứng xuất nhập:
a1) Thiết bị xuất nhập (I/O devices):
- Block devices (Thiết bị dạng khối): Thông tin lưu trữ theo khối, khối có địa chỉ.Đọc ghi theo từng khối độc lập.Ví dụ: Đĩa từ.
- Character devices (Thiết bị dạng kí tự): Thông tin truyền theo chuỗi kí tự. Không có địa chỉ. Ví dụ: bàn phím, card mạng, chuột…
- Abstract devices (Các thiết bị trừu tượng): Không là 2 dạng trên. Ví dụ: file system, clock.
a2) Mạch điều khiển (controller):
- Thiết bị I/O gồm có: thành phần cơ khí, thành phần điện.
- Thành phần điện mạch điều khiển: có thể điều khiển nhiều thiết bị.
- Nhiệm vụ mạch điều khiển: Chuyển đổi dữ liệu (bits, streams, blocks), kiểm soát lỗi (nếu cần thiết), tồn tại trong kiến trúc hệ thống.
- Mạch điều khiển nối với I/O bus.
- Thiết bị nối với mạch điều khiển.
- Thông số: địa chỉ (theo phương pháp xuất nhập), tập lệnh điều khiển.
- Phần mềm điều khiển thiết bị thông qua mạch điều khiển với tập lệnh.
Ví dụ: FDC Floppy Disk Controller có các lệnh SEEK, READ, WRITE, FORMAT…
a3) Địa chỉ thiết bị I/O:
- Memory mapped I/O:
Thiết bị và bộ nhớ dùng chung một không gian địa chỉ.
Xuất nhập tương đương đọc ghi bộ nhớ.
Không cần lệnh I/O.
- Isolated I/O:
Dùng không gian địa chỉ riêng.
Cần tín hiệu điều khiển I/O.
Cần các lệnh I/O.
a4) Interrupt:
- Cần interrupt controller và interrupt handler.
- CPU yêu cầu xuất nhập.
- Thiết bị yêu cầu ngắt quãng (interrupt) khi sẵn sàng.
- Thực thi chương trình xử lý ngắt.
- Thông số thiết bị:
Địa chỉ I/O.
Yêu cầu ngắt (IRQ i).
a5) DMA:
- Cần có DMA controller.
- CPU gởi yêu cầu xuất nhập cho DMAC.
- DMAC thực hiện trao đổi dữ liệu giữa bộ nhớ và thiết bị.
- Khi kết thúc, DMAC gởi tín hiệu ngắt quãng cho CPU.
- Thông số thiết bị:
Địa chỉ I/O
Yêu cầu ngắt (IRQ i)
Kênh DMA (DMA channel).
b) Tổ chức phần mềm xuất nhập:
b1) Xử lý ngắt quãng:
- Process yêu cầu I/O bị blocked cho đến khi có ngắt quãng.
- Chương trình xử lý ngắt quãng thực thi, chuyển blocked process sang trạng thái ready.
b2) Chương trình điều khiển thiết bị:
- Device driver chứa đoạn mã phụ thuộc từng loại thiết bị.
- Device driver trao đổi dữ liệu với các thanh ghi trên mạch điều khiển, kiểm tra trạng thái thiết bị.
- Ví dụ: windows driver, minidriver.
b3) Phần mềm I/O cấp hệ điều hành:
- Các hàm I/O chung cho các thiết bị, tạo giao diện thống nhất cho phần mềm cấp user.
- Giải quyết các vấn đề: đặt tên, bảo vệ, tổ chức buffer, báo lỗi…
b4) Phần mềm I/O cấp user:
- Các yêu cầu I/O được gọi thông qua các hàm thư viện.
c) Các phương pháp điều phối đĩa từ:
- Có thể có nhiều yêu cầu truy xuất đĩa đồng thời. Cần chọn xử lý một yêu cầu tiếp theo.
- Xử lý yêu cầu: di chuyển hệ thống đầu từ điều phối đĩa từ.
- Các phương pháp điều phối đĩa từ:
Random: chọn yêu cầu ngẫu nhiên.
Priority: chọn yêu cầu theo độ ưu tiên của process có yêu cầu.
FIFO: chọn yêu cầu theo thứ tự xuất hiện có yêu cầu.
SSF (Shortest Seek First): Chọn yêu cầu tiếp theo sao cho thời gian seek là ít nhất.
SCAN (còn gọi là elevator algorithm): hệ thống đầu từ di chuyển theo 1 hướng. Xử lý các yêu cầu theo hướng này. Nếu hết yêu cầu hay đến cylinder cuối thì di chuyển theo hướng ngược lại.
C-SCAN: Hệ thống đầu từ chỉ di chuyển theo một hướng. Xử lý các yêu cầu theo hướng này. Nếu hết yêu cầu hay đến cylinder cuối thì di chuyển nhanh về cylinder đầu tiên.
Thực tế: Nếu số yêu cầu ít: dùng SSF. Nếu số yêu cầu nhiều: dùng C-SCAN.
d) Mục đích, vai trò của nhập xuất:
10) Hệ thống file:
a) Khái niệm:
- File là đơn vị lưu trữ trên thiết bị nhớ ngoài:
kích thước lớn.
File tồn tại sau khi process tạo file kết thúc.
File có thể được truy xuất đồng thời từ nhiều process.
- File là sự trừu tượng hóa dữ liệu khi ghi đọc đĩa, che dấu chi tiết hoạt động trên đĩa.
- Hệ điều hành tổ chức và quản lý file theo hệ thống file (file system).
- Thực hiện trên file: Tạo cấu trúc, đặt tên, truy xuất, bảo vệ.
- Một hệ điều hành thường hỗ trợ nhiều loại hệ thống file. Windows XP: FAT, NTFS, CDFS, UDF (Universal Disk Format)…
- User quan tâm về file: đặt tên, truy xuất, bảo vệ.
b) Khái niệm hiện thực hệ thống file:
- Mỗi partition bao gồm các khối (block/cluster) gồm các sector liên tục: đơn vị cấp phát cho file. Mỗi khối có địa chỉ.
- Hiện thực hệ thống file:
Quản lý các khối thuộc về file.
Quản lý khối chưa sử dụng (free blocks).
Quản lý khối không sử dụng được (bad blocks).
c) Các dạng hiện thực hệ thống file:
c1) Dạng danh sách liên kết có chỉ số (FAT):
- Mỗi file gồm nhiều khối.
- Phần tử quản lý file trong thư mục có địa chỉ khối đầu tiên của file.
- Danh sách liên kết địa chỉ các khối của file được lưu trong 1 bảng, FAT (File Allocation Table).
- Mỗi parittion theo dạng danh sách liên kết có chỉ số có 1 FAT:
Số phần tử bằng với số khối.
Chứa danh sách liên kết các khối của tất cả các file.
Quản lý các khối chưa sử dụng.
Quản lý các khối không sử dụng được.
- Cấu trúc FAT partition:
Boot sector: mẩu tin khởi động: các thông số của partition, đoạn chương trình khởi động.
FAT
FAT2: Bản sao của FAT
Root folder: thư mục gốc.
Data: dữ liệu các file, các thư mục con (subfolders).
- Các vấn đề trên FAT:
Phân mảnh bên trong:
. Do kích thước đơn vị cấp phát cố định.
.Giải quyết: nén đĩa (disk compresstion).
Phân mảnh bên ngoài:
. Do thay thế file
. Giải quyết: các chương trình công cụ dạng defragmentation/speeddisk.
- Thư mục trên FAT:
Mỗi file được quản lý bằng một phần tử trong thư mục (directory entry): Tên, các thuộc tính. Địa chỉ cluster đầu tiên của file.
c2) NTFS:
- Là hệ thống file chuẩn trên windows NT/2000/XP/2003.
- Có nhiều ưu điểm:
Kích thước file file, volume lớn.
Có khả năng phục hồi, nén, mã hóa tốt.
Bảo mật tốt.
Truy xuất nhanh.
- Cấu trúc NTFS partition:
Boot sector: thông tin về hệ thống file, chương trình nạp file khởi động hệ điều hành.
MFT: file quản lý hệ thống file.
System files: các file hệ thống (metadata).
- Các file hệ thống:
Được tạo ra khi định dạng partition.
Gồm các file: MFT, MFT mirror, log file, Cluster Bitmap file (quản lý free blocks), boot file, Bad cluster file…
- MFT (Master file Table):
Quản lý hệ thống file trên NTFS partition.
Bao gồm các records (1KB).
Mỗi file hay folder được quản lý bằng 1 hay nhiều MFT record: File, folder kích thước nhỏ (normal) 1 record. File, folder kích thước lớn (large): có thêm các phần mở rộng.
c3) Dạng i-node:
- Dùng trên HDH UNIX.
- Mỗi file được quản lý bằng một bảng, gọi là i-node, lưu các thông tin: loại file, các thông số về thời gian, bảo vệ file, địa chỉ các khối của file.
- File kích thước nhỏ chỉ cần các địa chỉ khối trên i-node.
- File kích thước lớn cần thêm các khối gián tiếp (indirect block), chứa địa chỉ các khối của file.
- Cấu trúc partition theo i-node:
Boot block: khối khởi động.
Super block: thông tin về hệ thống file.
I-nodes: bảng các i-node.
Data blocks: các khối dữ liệu.
- Hệ thống file trên Linux:
Xuất phát từ Minix file system.
Phát triển với cấu trúc VFS trên kernel: virtual File System.
Hiện thực thêm các hệ thống file theo dạng i-node:
. Extended File System (Ext)
. Second Extended File System (Ext2)
d) (ĐT) Phân tích những ưu điểm của Hệ tập tin NTFS ?
Giải:
- Bảo mật và An toàn hơn so với FAT: Quyền sử dụng của ND được ấn định đến từng tập tin, TM.
- Nhanh hơn FAT khi dung lượng đĩa lớn và khi đĩa bị phân mảnh nhiều.
- Độ tin cậy cao, khả năng khôi phục lớn, không phải chạy Chkdisk.exe thường xuyên.
- Nén đến từng tập tin và thư mục (giảm được 40-50% dung lượng).
- Mỗi user có Recycle Bin riêng.
- Gá lắp ổ đĩa với một thư mục nào đó (Mounting).
- EPS (Encrypting File System): Mã hoá ổ đĩa.
- Disk Quotas: Hạn mức sử dụng vùng nhớ đĩa cho mỗi user.
e)(ĐT)Trình bày 5 loại ổ đĩa NTFS được Windows 2000/XP/2003 hỗ trợ ?
Giải:
- Simple Volume: Ổ đơn dựa trên 1 vùng nhớ của Dynamic Disk (phân biệt với Basic Disk). Một đĩa cứng có thể phân hoạch thành nhiều ổ đơn.
- Spanned Volume: Ổ ghép trải trên nhiều ổ đơn.
- Striped Volume: Ổ song song. Nội dung mỗi tập tin rải trên nhiều ổ đơn. Còn gọi là RAID-0.
- Mirrored Volume: Ổ ánh xạ gương. Bao gồm 1 ổ đơn được ánh xạ tự động sang 1 ổ đơn khác. Còn gọi là RAID-1.
- RAID-5 Volume (Redundant Array of Inexpensive Disks): Trải trên 3 hoặc hơn 3 ổ đĩa đơn. Dữ liệu được rải trên các ổ đĩa thành phần cùng với thông tin chẵn lẻ (parity) để đảm bảo khả năng kháng lỗi (fault tolerance) mà Striped Volume không làm được.
g)(ĐT) Phân biệt Master Boot Record với Boot Record ?
Giải:
- Master Boot Record: là 512 Bytes đầu của ổ đĩa vật lý. Chứa chương trình Khởi động, đọc bảng mô tả các Partition trên đĩa, tìm Active Partition, chọn HĐH, chuyển điều khiển cho chương trình trong Boot Record của Partition vừa chọn.
- Boot Record: là 512 Bytes đầu của ổ đĩa luận lý hay một Partition. Chứa lệnh nhảy đến đầu đoạn mã boot của Boot Record, tên và số hiệu phiên bản HĐH, Serial number, Volume label, đoạn mã dùng nạp HĐH từ đĩa ….
h) Phân biệt Basic Disk với Dynamic Disk ?
Giải:
- Một Basic Disk là một ổ cứng vật lý bao gồm các phân vùng chính (Primary Partition), các phân vùng mở rộng (Extended Partition) hoặc các ổ đĩa luận lý (Logical Drive). Các phân vùng và các ổ đĩa luận lý trên các basic disk còn được hiểu như là các Basic Volume.
Số phân vùng (Partition) ta tạo trên một Basic disk tuỳ thuộc vào loại phân vùng của ổ đĩa (Disk’s Partition Type).
Đối với MBR (Master Boot Record) disks, chúng ta có thể tạo được nhiều nhất 4 phần vùng chính (Primary Partition), hoặc 3 phân vùng chính và một phân vùng mở rộng (Extended Partion). Trong phân vùng mở rộng ta có thể tạo vô hạn các ổ đĩa luận lý (Logical Drive).
Đối với GPT (GUIDs Partition Table) disks, chúng ta có thể tạo lên đến 128 phân vùng chính (Primary Partition). Bởi vì GPT disks không giới hạn 4 phân vùng chính nên chúng ta không cần tạo phân vùng mở rộng hay các ổ đĩa luận lý.
- Một Dynamic Disk cung cấp các tính năng mà Basic Disk không có, như khả năng tạo những volume mở rộng trên nhiều ổ đĩa vật lý (Spanned and Striped Volumes) và khả năng tạo ra những volume Fault Tolerance (Mirrored and Raid-5 Volumes). Các volume trên Dynamic Disk ta gọi là Dynamic Volumes, và một Dynamic Disk có thể hỗ trợ lên tới 2000 Volume trên một ổ đĩa (dù vậy Microsoft đã giới thiệu số lượng Dynamic Volumes là 32 hoặc ít hơn trên một ổ đĩa). Có 5 loại Dynamic Volume là: Simple, Spanned, Stripped, Mirrored và Raid-5. Trong đó Mirrored và Raid-5 chỉ chạy trên máy tính có hệ điều hành Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server, or Windows XP….
Được sửa bởi letruong4688 ngày 22/12/2010, 02:23; sửa lần 1.
letruong4688- Tổng số bài gửi : 21
Join date : 08/11/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
Sao hok chia ra từng phần cho dễ đọc bạn ơi
HaXuanTruong(I92C)- Tổng số bài gửi : 40
Join date : 14/09/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
Chắc không ai đủ kiên nhẫn đọc hết bài này của bạn
PhucThinh_I83C_08H1012091- Tổng số bài gửi : 22
Join date : 21/09/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
Mình có đọc sơ qua rùi nhưng..hơi đau mắt..
Admin
Đau mắt thật. Mà đấy hình như không phải tất cả là của thày. Có cả những nội dung không học.
Admin
Đau mắt thật. Mà đấy hình như không phải tất cả là của thày. Có cả những nội dung không học.
nguyenthingoan_i92c- Tổng số bài gửi : 43
Join date : 12/11/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
Thưa thầy đây là bài soạn của một bạn khóa 2006 từng được học qua thầy chia sẽ với em, em đã edit lại cho dễ đọc, xin thầy chỉ giúp em phần nào không cần thiết.nguyenthingoan_i92c đã viết:Mình có đọc sơ qua rùi nhưng..hơi đau mắt..
Admin
Đau mắt thật. Mà đấy hình như không phải tất cả là của thày. Có cả những nội dung không học.
Cám ơn thầy !
letruong4688- Tổng số bài gửi : 21
Join date : 08/11/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
hic, sao bài lạ quá..
thanhhangnguyen(I92C)- Tổng số bài gửi : 21
Join date : 14/10/2010
Re: Một vài tóm tắt lí thuyết HDH !!!!
Hi Hi Thank u
DoThanhTu_I92C- Tổng số bài gửi : 20
Join date : 23/09/2010
Age : 41
Similar topics
» Ôn tập để Kiểm tra giữa kỳ và Thi lý thuyết
» Cấu trúc đề thi HĐH
» Tóm tắt Lý thuyết HĐH
» Ôn thi lý thuyết của Thầy cho nè!!!!!!!!
» Ôn thi Lý thuyết !
» Cấu trúc đề thi HĐH
» Tóm tắt Lý thuyết HĐH
» Ôn thi lý thuyết của Thầy cho nè!!!!!!!!
» Ôn thi Lý thuyết !
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết