Skip to content

Hệ điều hành

Published: at 03:49 PMSuggest Changes

Approach

1.1. Khái niệm chung về Operating System

Hệ điều hành là phần chịu trách nhiệm chạy ứng dụng, thậm chí là nhiều ứng dụng của một lúc, cho phép ứng dụng chia sẻ bộ nhớ, tượng tác với các thiết bị.

Tóm lại là phần trung gian giữa phần cứng và người dùng. Điều khiển phần cứng và cung cấp dịch vụ cho người dùng. os

1.2. Cách hệ điều hành hoạt động

Easy to use: vì đó chỉ gồm 3 phần:

event bus

1.2.1. Đồng thời

1.2.1.1. Trình điều khiển thiết bị
1.2.1.2. Ngắt

1.2.2. Cấu trúc lưu trữ

Khi nói về hệ thống lưu trữ, yếu tố performance và cost luôn được đề cập tới:

Từ volatility ta mới chia ra làm 2 bộ phận:

-> Vậy quá trình mà các chương trình hoạt động diễn ra ntn?

Nhớ rằng máy tính hoạt động theo kiến trúc Von Neumann.

1.2.3. Bộ xử lý

Có 3 hệ thống xử lý:

1.2.4. Tiếp đến câu chuyện xử lý như thế nào?

Gồm 3 kiểu xử lý:

1.2.5. Cách hệ điều hành chia hai mảng khác nhau

Như đã nói từ trước hệ điều hành là trung gian giữa user và hardware. Vậy thì cắt nửa nó ra, nửa trên để dành cho user hay còn gọi là user mode (chế độ người dùng). Nửa dưới dành cho hardware gọi là kernel mode (chế độ hạt nhân).

1.2.6. Tiến trình

Program thứ chúng ta luôn thấy trên desktop. Nó nằm im một chỗ quài, chỉ khi nào install hay uninstall thì mới có sự thay đổi. Vâng, nó là tính chất của program. Nằm im ở trên storage.

Khi chúng ta program, thì các câu lệnh sẽ được nạp vào bộ nhớ và trở thành tiển trình. Tiến trình thì nó động, thử htop trên terminal là biết lenh htop

Bao gồm:

stack and heap Vậy thì làm sao khởi tạo tiến trình? Tóm quần lại là ảnh cần định danh duy nhất, không gian riêng tư và cuốn nhật ký (PCB)

1.2.6.1. PCB

Bao gồm:

1.2.7. Định thời CPU

Như đã nói ở đa chương và đa nhiệm là tận dụng tối đa CPU. Vậy thì thằng nào giữ trách nhiệm cho việc đó.

Vừa hiệu suất CPU mà còn cải thiện thời gian phản hồi.

Ảnh lo từ A-Z. Từ tạo đến kết thúc tiến trình. Kể cả chuyển qua tiến trình khác thông qua context switch

1.2.7.1. Tạo tiến trình mới

Sử dụng hàm fork(), nó sẽ duplicate tiến trình hiện tai với danh nghĩa là tiến trình con. Vậy thì tiến trình mới có thể fork từ hệ điều hành hoặc từ tiến trình cha.

1.2.7.2. Kết thúc tiến trình

Tự động kết thúc. Cuối chương trình gọi system call routine exit

Bị ép kết thúc bởi thằng tiến trình cha. Gọi system call routine abort với pid.

1.2.7.3. Công tác tiến trình

Nãy đã có computer interconnect với nhau trên cùng một storage là dữ lắm rồi. Giờ còn có tiến trình cộng tác với nhau ngon ăn. -> Perfomance-wise. Để giải quyết một bài toán lớn hơn. Tức mỗi tiến trình trở thành 1 submodule trong một phần mềm phức tạp

Để thực hiện được thì phải có cơ chế giao tiếp và đồng bộ hoạt động ở hệ điều hành. -> IPC - Giao tiếp liên tiến trình

1.2.8. Tiểu trình

sử dụng CPU và sử dụng một cách cơ bản. -> Tiểu trình nhanh hơn tiến trình vì quá trình khởi tạo nhanh gọn hơn.

Hai loại: tiểu trình người dùng và tiểu trình hạt nhân.

2. More advanced into logic

2.1. Định thời

Phân biệt hai khái niệm Tiến trình hướng CPUTiến trình hướng I/O

Thằng nào chính, thằng nào ngoại. Ai ngốn nhiều thời gian trên CPU hơn.

Tốc độ tiến trình hướng CPU phụ thuộc vào tốc độ CPU. Còn tiến trình hướng I/O phụ thuộc vào yếu tố đợi quá trình I/O.

2.2. Các loại định thời

Loại lập lịchMục tiêu chínhThời điểm thực hiệnTần suất
Long-term SchedulingQuyết định tiến trình nào được nạp vào bộ nhớ chínhKhi cần nạp thêm tiến trình hoặc giải phóngKhông thường xuyên
Medium-term SchedulingQuản lý việc tạm ngừng và tiếp tục tiến trìnhKhi cần giải phóng hoặc tối ưu bộ nhớThường xuyên hơn long-term
Short-term SchedulingChọn tiến trình để cấp phát CPUMỗi khi CPU rảnh hoặc có ngắt hệ thốngDiễn ra liên tục

2.3. Các giải thuật định thời

2.5. Định thời đa bộ xử lý

Có 2 cách tiếp cận là: đa xử lý bất đối xứngđa xử lý đối xứng Ví dụ về các bộ:

2.5.1. Đa xử lý bất đối xứng

2.5.2. Đa xử lý đối xứng

2.5.3. Cân bằng tải (Load balancing)

Mục đích: Không thể để 1 core chạy hết các tác vụ mà phải phân đều ra

-> 2 cách:

2.5.4. Processor Affinity

Quá trình bộ nhớ đệm (Cache) lưu trữ các dữ liệu của tác vụ trên bộ xử lý hiện tại

-> Khi thực hiện cân bằng tải sẽ xảy ra 2 điều:

=> Procces Affinity: Tức là liên kết tác vụ vào các core cụ thể nhằm cải thiện hiệu suất bởi giảm thiểu context switchescache đã có sẵn trên core đó đỡ phải nạp lại hay giải phóng

Có 2 dạng liên 5


Previous Post
Bàn phím HHKB Professional Hybrid Type-S
Next Post
Cơ sở dữ liệu