1/40
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
HDH là gì?
là chương trình “trung gian” (nhân-kernel) nằm giữa NSD và máy tính
Nhiệm vụ HDH là gì?
Quản lý phần cứng (tài nguyên) và cung cấp môi trường làm việc tiện lợi, hiệu quả cho NSD
Tài nguyên máy tính bao gồm
CPU, Bộ nhớ, đĩa cứng, thiết bị ngoại vi
HDH Lô (Batch processing) là gì
các chương trình được đưa vào hàng chờ và thực hiện tuần tự
Điểm yếu của Batch processing?
Ko giao tiếo với NSD khi chạy
HDH đa chương trình (Multprogramming) là gì
là phương pháp cho phép nhiều chương trình cùng chạy trên một CPU bằng cách chia sẻ thời gian.
Một chương trình trong đa chương trình chiếm giữ CPU đến khi nào
Khi no kết thúc hoặc có yêu cầu Vào ra (I/O) thì CPU mới chuyển sang ctrinh khác
Kể tên các thành phần hệ thống
1, Quản lý tiến trình
2, Bộ nhớ trong
3, Tệp
4, vào/ra (I/O)
5, lưu trữ ngoài
6, liên kể mạng
7, bảo vệ/an ninh
8, thông dịch lệnh
Dịch vụ quản trị hế thống
Cấp phát tài nguyên, kế toán(theo dõi sdtn), bảo vệ và an ninh
Hàm hệ thống
là giao diện lập trình tới các dịch vụ của HDH (fork(), exit())
Cấu trúc đơn giản của hệ thống như nào?
Các thành phần không được chia rõ rệt (VD MS-DOS)
Cấu trúc phân tầng của HDH
Chia thành lớp từ 0(phần cứng) đến N (giao diện người dùng) (VD: Unix)
Cấu trúc vi nhân HDH
Đưa các chức năng ko cần thiết ra ngoài nhân để nhỏ nhất có thể(VD: Mach. QNX)
Cấu trúc Module HDH
Hướng đối tượng, nạp các module vào nhân khi cần (BEST) VD: Solaris
LRU thuật toán thay thế trang là gì
Khi cần thay một trang khỏi bộ nhớ, hệ thống sẽ loại trang ít được sử dụng gần đây nhất. Lỗi trang khi CPU cần truy cập một trang nhưng trang đó ko có sẵn trong bộ nhớ
Bộ đệm chuyển đổi TLB (Translation Look aside Buffer) là gì
Là bộ đệm rất nhỏ và rất nhanh, dùng để lưu tạm các kết quả ánh xạ từ địa chỉ ảo sang địa chỉ vật lý => Bảng trang =”sổ gốc”, TLB =”tờ ghi chú các mục vừa tra gần đây”. Nếu ko có TLB, mỗi lần CPU truy cập sẽ phải cần 2 lần truy cập
Bảng trang 1 cấp
Địa chỉ ảo được chia thành số trang, offset. Dựa vào trang làm chỉ số vào bảng trang để tìm khung
Bảng trang 2 cấp
Chia 2 bảng (trong và ngoài), địa chỉ ảo sẽ chia thành là chỉ số cấp 1, chỉ số cấp 2, offset.
Cách tìm:
Dùng chỉ số cấp 1 để tìm bảng cấp 2, dùng chỉ số cấp 2 để tìm mục trang, lấy khung rồi ghép với offset
Phân đoạn (segmentation) trong phân bổ bộ nhớ
là cách quản lý bộ nhớ mà chương trinhf chia thành các đoạn logic thay vì chia đều thành các trang cố định
đoạn mã lệnh
đoạn dữ liệu
đoạn stack
đoạn heap
Địa chỉ logic có dạng (s,d) s= số hiệu dời đoạn, độ dời bên trong đoạn
Thrasing là gì
Là khi hệ thống phần lớn thời gian để hoán đổi trang thay vì thực thi chương trình. => Khi thrasing: CPU ko làm việc hữu ích, chủ yếu đợi việc hoán đổi trang từ đĩa, truy cập đĩa thì chậm => mức sd CPU giảm
Thuật toán OPT tối ưu
khi cần thay một trang, hãy thay trang mà sẽ được sử dụng xa nhất trong tương lai
Thời gian truy cập bộ nhớ hiệu quả (EAT)
EAT = tổng của( (xác suât xảy ra) x thời gian của trường hợp đó)
Đôi khi việc quản lý vùng trống bợ nhớ
lớn hơn so với kích thuốc vùng trống
Thuật toán nào chọn trang ko dc sd lâu nhất
LRU
Cách tính offset từ frame
Ví dụ: Mỗi frame = 4 KB = 2^{12} byte
→ offset (độ dời) cần 12 bit
cách tính số trang
số trang = bộ nhớ ảo/frame(byte) = 2^(x) trang → x là số bit cần để đánh số trang
Thuật toán First-fit
chọn vùng trống đầu tiên đủ lớn để chứa tiến trình
Thuật toán best-fit
chọn vùng trống nhỏ nhất nhưng vẫn đủ chứa tiến trình
Công thức tính địa chỉ vật lý
Địa chỉ vật lý = base + logic (DK limit>logic)
Chuyển đổi ngữ cảnh
là HDH tạm dừng một tiến trình hoặc luồng đang chạy, lưu lại tt nó rồi nạp tthai ttrinh khác để CPU chạy cái mới
Điều kiện tiến triển (progress) của bài toán khu vực quan trọng / critical section là:
Nếu không có tiến trình nào đang ở trong khu vực quan trọng, và có một số tiến trình muốn vào, thì việc chọn tiến trình nào được vào không được trì hoãn vô hạn.
Khóa mutex là gì?
Nó là một loại khóa dùng để đảm bảo:
tại một thời điểm chỉ có một luồng/tiến trình được vào vùng quan trọng
Semaphore nhị phân là gì?
Semaphore nhị phân là semaphore chỉ nhận 2 giá trị:
0
1
Nó cũng dùng để kiểm soát truy cập vào tài nguyên, gần giống mutex.
Cách hiểu
1 = tài nguyên đang rảnh
0 = tài nguyên đang bận
Thuật táon FCFS(First Come, First Served)
Đến trc thì dc phục vụ trc => dễ bị chờ lâu, gây hiệu ứng convoy
Thuật toán SJF(Shorterst Job First)
Việc ngắn nhất chạy trc
Thuật toán lập lịch ưu tiên
mỗi tiến trình có một mức ưu tiên
tiến trình có ưu tiên cao hơn sẽ được chạy trước
Có 2 kiểu
Preemptive: tiến trình mới tới mà ưu tiên cao hơn thì cướp CPU
Non-preemptive: phải chờ tiến trình hiện tại chạy xong
RR (Round Robin)
Cách hoạt động
mỗi tiến trình được chạy tối đa một khoảng thời gian gọi là quantum
hết quantum mà chưa xong thì bị đưa xuống cuối hàng đợi
CPU chuyển cho tiến trình tiếp theo
Thời gian phản hồi (response time) là:
khoảng thời gian từ lúc tiến trình được đưa vào hệ thống / sẵn sàng chạy đến lúc nó nhận CPU lần đầu tiên
Thời gian quay vòng (turnaround time) là:
khoảng thời gian từ lúc một tiến trình đến hệ thống cho đến lúc nó hoàn thành toàn bộ
Thuật toán Banker
là thuật toán của hệ điều hành dùng để tránh bế tắc khi cấp phát tài nguyên.
Nó tên là “Banker” vì cách nghĩ giống ngân hàng cho khách vay tiền:
chỉ cho vay nếu sau khi cho vay, hệ thống vẫn còn ở trạng thái an toàn.
Hiện tượng đoàn hộ tống (convoy effect) là hiện tượng:
một tiến trình chậm hoặc dài làm nhiều tiến trình khác phải chờ theo phía sau, giống như một đoàn xe bị kẹt sau một xe chạy chậm.