






Preview text:
lOMoAR cPSD| 61552860 Hệ điều hành
I. Các khái niệm cơ bản về hệ điều hành:
1.Khái niệm: Là một chương trình trung gian giữa người dùng và phần cứng máy tính 2.Vai trò:
+ Cung cấp một môi trường để người sử dụng có thể thực hiện các chương trình
ứng dụng và làm cho máy tính dễ sử dụng hơn, thuận lợi hơn và hiệu quả hơn.
+Chuẩn hóa giao diện người dùng đối với các hệ thống phần cứng khác nha
+ Sử dụng hiệu quả tài nguyên phần cứng và khai thác tối đa hiệu suất của phần cứng.
3.Vị trí: Nằm giữa phần cứng của hệ thống và các chương trình ứng dụng 4.Chức năng:
- Giả lập một máy tính ảo:
a) Đơn giản hóa vấn đề lập trình
b) Mở rộng hệ thống, làm cho hệ thống dường như có các đặc trưng mong
muốn(bộ nhớ ảo, máy in ảo)
c)Các tiến trình không ảnh hưởng trực tiếp các tiến trình khác
d)Hữu ích cho phát triển HDH
- Quản lý tài nguyên của hệ thống(Chức năng chính)
a, Tài nguyên hệ thống (Vi xử lý, bộ nhớ, thiết bị vào ra, file...) được chương
trình sử dụng để thực hiện công việc xác định b, Các chương trình đòi hỏi tài
nguyên về mặt thời gian (sử dụng) và không gian (nhớ) c, Hệ điều hành phải
quản lý tài nguyên để hoạt động của máy tính là hiệu quả nhất
-Phân phối các tài nguyên cho các chương trình khi cần thiết -Giải quyết tranh chấp
-Quyết định thứ tự cấp phát tài nguyên cho những yêu cầu.
5.Lịch sử phát triển:
1945-1955 : Đã có mt lớn nhưng chưa có hđh
1956-1965 : hệ thống đa xử lí theo lô
1966-1980 : hệ thống xử lí đa chương, hệ thống xử lí đa nhiệm lOMoAR cPSD| 61552860
1981-2007 : hệ thống đa xử lí, hệ thống xử lí phân tán, hệ thống xử lí thời gian thực, hệ thống nhúng
Kết luận: Sự ra đời và phát triển của hệ điều hành gắn liền với sự phát triển của
máy tính Sự phát triển của máy tính kéo theo sự phát triển của hệ điều hành 6.Thành phần:
Bộ cấp phát tài nguyên: Quản lí và cấp phát tài nguyên
Chương trình kiểm soát: Kiểm soát việc thực thi chương trình và kiểm soát hoạt
động của thành phần nhập xuất
Nhân : là chương trình lõi của hđh, được thực thi trước tiên và và tồn tại trong
bộ nhớ đến khi tắt máy Quản lý tiến trình
Quản lý bộ nhớ chính
Quản lý hệ thống vào ra Quản lý file
Quản lý bộ nhớ lưu trữ
Hệ thống trao đổi dữ liệu (mạng) Hệ thống bảo vệ
Giao diện người dung Lời gọi hệ thống
7.Ví dụ thực tế: Windows Android IOS
Được nhiều nhà sản xuất Hệ điều hành mở Kho Hệ điều hành kín Tính
phần cứng ưa chuộng: ứng dụng khổng lồ bảo mật riêng tư cao
Kho ứng dụng phong Khả năng tùy biến cao, phú thay đổi tùy theo cá nhân lOMoAR cPSD| 61552860
Có thể có nhiều ứng Kho ứng dụng hạn chế
Vẫn đề về bản quyền dụng chạy ngầm. Chỉ ứng dụng được
Vấn đề bảo mật: Hỗ trợ Vấn đề bảo mật thong qua các sản phẩm nâng cấp chưa thực sự của Apple tối ưu
II. Quản lý tiến trình
1.Khái niệm tiến trình:
Tiến trình :là chương trình đang thực hiện. Mỗi tiến trình có một tài nguyên và
môi trường riêng. Các tiến trình hoàn toàn độc lập với nhau, có thể liên lạc với
nhau thông qua cơ chế truyền tin giữa các tiến trình. Có 2 loại tiến trình là tiến
trình kế tiếp và tiến trình song song.
Chương trình: Là một thực thể bị động lưu trên ổ đĩa ngoài, chương trình trở
thành tiến trình khi một file thực thi được nạp vào bộ nhớ trong, một chương
trình có thể trở thành nhiều tiến trình.
Luồng: chuỗi (luồng) lệnh được thực hiện trong tiến trình, một tiến trình có thể chứa nhiều luồng
2.Các trạng thái tiến trình: Các trạng thái :
Khởi tạo (New) Tiến trình đang được khởi tạo
Sẵn sàng (Ready) Tiến trình đang đợi sử dụng processor vật lý
Thực hiện (Running) Các câu lệnh của tiến trình đang được thực hiện
• Chờ đợi (Waiting) Tiến trình đang chờ đợi một sự kiện nào đó xuất hiện (sự
hoàn thành thao tác vào/ra) Kết thúc (Terminated) Tiến trình thực hiện xong lOMoAR cPSD| 61552860
3.Điều phối tiến trình Điều phối công việc :
• Chọn các tiến trình từ hàng đợi tiến trình được lưu trong các vùng đệm (đĩa
từ) và đưa vào bộ nhớ để thực hiện
• Thực hiện không thường xuyên (đơn vị giây/phút)
• Điều khiển mức độ đa chương trình (số t/trình trong bộ nhớ )
• Khi mức độ đa chương trình ổn định, điều phối công việc được gọi chỉ khi có
tiến trình rời khỏi hệ thống
• Vấn đề lựa chọn công việc
• Tiến trình thiên về vào/ra: sử dụng ít thời gian CPU
• Tiến trình thiên về tính toán: sử dụng nhiều thời gian CPU
• Cần lựa chọn lẫn cả 2 loại tiến tình ⇒ tt vào ra: hàng đợi sẵn sàng rỗng, lãng
phí CPU ⇒ tt tính toán: hàng đợi thiết bị rỗng, lãng phí thiết bị Điều phối CPU:
Điều phối CPU - CPU scheduler: lựa chọn trong số các tiến trình ở queue sẵn sàng
và phân bổ CPU cho 1 trong số đó, hàng đợi có thể sắp xếp theo nhiều cách khác nhau. Xảy ra khi tiến trình:
1. Chuyển từ running sang waiting state
2. Chuyển từ running sang ready state
3. Chuyển từ waiting sang ready 4. Kết thúc lOMoAR cPSD| 61552860
Trường hợp 1 và 4, không có lựa chọn điều phối. Một tiến trình khác (nếu có
trong hàng đợi) phải được lựa chọn để phân bổ.
Trường hợp 2 và 3, có thể có lựa chọn.
Xử lí song song nếu các xử lí đó tồn tại đồng thời – các tiến trình có thể hđ như nhau
• Khai thác tối đa hệ đa xử lí
• Giảm thời gian tính toán
Xử lí độc lập: chỉ cần quan tâm đến lập lịch cho bộ xử lí, không mất toàn vẹn data
Tương tranh là các tiến trình tương tác trao đổi thông tin với nhau, hoặc truy cập
đến tài nguyên chung, chia làm 2 loại:
• Đồng bộ: các tiến trình phối hợp nhịp nhàng, giảm vấn đề phát sinh
• Di bộ : Nhu cầu trao đổi thông tin 1 cách ngẫu nhiên có thể xảy ra xung
đột khi chúng đề cập các tài nguyên chung => dễ có nguy cơ mất toàn vẹn
data, sau 1 time cần đồng bộ và tương tác với nhau. 4.Tài nguyên găng
Tài nguyên: Tất cả những gì cần thiết cho thực hiện chương trình. Tài nguyên găng:
+Tài nguyên hạn chế về khả năng sử dụng chúng +Cần đồng
thời cho nhiều chương trình. (Có thể là thiết bị vật lý hay dự
liệu dùng chung) VD:Máy in, .....
Đoạn găng: Đoạn chương trình dùng tài nguyên găng.
Vấn đề: Dùng chung tài nguyên găng có thể dễ đến không đảm bảo trọn vẹn dữ liệu. Yêu cầu: +Loại trừ lẫn nhau
+Tiến triển: Tài nguyên còn khả năng phục vụ và tồn tại tiến trình muốn vào đoạn
găng thì tiếng trình đó phải sự dụng tài nguyên găng. +Chờ đợi hữu hạn.
5.Phương pháp khóa trong
Mỗi tién trình dùng 1 byte trong bộ nhớ làm khóa:
+Tiến trình vào đoạn găng: Đóng khóa (True)
+Tiến trình rời đoạn găng: Mở khóa( False) lOMoAR cPSD| 61552860
+Tiến trình muốn vào đoạn găng: Ktra khóa tiến trình còn lại: Đang khóa -> Đợi
Đang mở -> Được quyền vòa.
6.Bế tắc và xử lý bế tắc
Trạng thái an toàn: Có thể cung cấp tài nguyên cho từng tiến trình (đến yêu cầu
lớn nhất) theo một trật tự nào đấy mà không xảy ra bế tắc
Tồn tại chuỗi an toàn của tất cả các tiến trình.
HTAT không xảy ra bế tắc
HTKAT có khả năng xảy ra bết tắc
Bế tắc : Bế tắc là tình trạng hai hay nhiều tiến trình cùng chờ đợi một sự kiện
nào đó xảy ra Nếu không có sự tác động gì từ bên ngoài, thì sự chờ đợi đó là vô hạn.
Điều kiện xảy ra bế tắc: • Có tài nguyên găng
• Chờ đợi trước khi vào đoạn găng
• Không có hệ thống phân phối lại tài nguyên găng • Chờ đợi vòng tròn
Các phương pháp xử lý bế tắc: Phòng ngừa
- Áp dụng các biện pháp để đảm bảo hệ thống không bao giờ rơi vào tình trạng bế tắc - Tốn kém
- Áp dụng cho hệ thống hay xảy ra bế tắc và tổn thất do bế tắc gây ra lớn Phòng tránh
- Kiểm tra từng yêu cầu tài nguyên của tiến trình và không chấpnhận yêu cầu
nếu việc cung cấp tài nguyên có khả năng dẫn đến tình trạng bế tắc
- Thường yêu cầu các thông tin phụ trợ
- Áp dụng cho hệ thống ít xảy ra bế tắc nhưng tổn hại lớn
Nhận biết và khắc phục
- Cho phép hệ thống hoạt động bình thường ⇒có thể rơi vào tình trạng bế tắc lOMoAR cPSD| 61552860
- Định kỳ kiểm tra xem bế tắc có đang xảy ra không
- Nếu đang bế tắc, áp dụng các biện pháp loại bỏ bế tắc
- Áp dụng cho hệ thống ít xảy ra bế tắc và thiệt hại không lớn