lOMoARcPSD| 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: một chương trình trung gian giữa người dùng phần cứng máy
nh
2.Vai trò:
+ Cung cấp một môi trường để người sử dụng thể thc hiện các chương trình
ứng dụng và làm cho máy 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 dng
4.Chức năng:
- Giả lập một máy 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 ờng như các đặc trưng mong
mun(bnhớ ảo, máy in ảo)
c)Các ến trình không ảnh hưởng trực ếp các ế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ử , bộ nhớ, thiết bị vào ra, le...) đượ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) 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 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
lOMoARcPSD| 61552860
1981-2007 : hệ thống đa xử lí, hệ thống xử phân tán, hệ thống xử 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 ca
y nh Sự phát triển của máy 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 : chương trình lõi của hđh, được thực thi trước ên và và tồn tại trong
bộ nhớ đến khi tắt máy
Quản lý ến trình
Quản lý bnhớ chính
Quản lý hthống vào ra
Quản lý le
Quản lý bnhớ lưu trữ
Hệ thống trao đổi dữ liu (mạng)
Hệ thống bảo v
Giao diện người dung Lời gi hệ thng
7.Ví dụ thực tế:
Windows
Android
IOS
Được nhiều nhà sản xuất
phần cứng ưa chuộng:
Kho ứng dụng phong
phú
Hệ điều hành mở Kho
ứng dụng khổng lồ
Kh năng tùy biến cao,
thay đổi tùy theo
nhân
Hệ điều hành kín Tính
bảo mật riêng tư cao
lOMoARcPSD| 61552860
Vn đề về bản quyền
Vấn đbảo mật: Htr
nâng cấp chưa thực sự
tối ưu
th có nhiều ng
dụng chạy ngầm.
Vn đề bảo mật
Kho ứng dụng hạn chế
Ch ứng dụng được
thong qua các sản phẩm
của Apple
II. Quản lý ến trình
1.Khái niệm ến trình:
Tiến trình :là chương trình đang thực hiện. Mỗi ến trình một tài nguyên và
môi trường riêng. Các ế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 chế truyền n giữa các ến trình. 2 loại ến trình ến
trình kế ếp và ến trình song song.
Chương trình: một thực thể bị động u trên đĩa ngoài, chương trình trở
thành ến trình khi một le thực thi được nạp vào bộ nhtrong, một chương
trình có thtrở thành nhiều ến trình.
Lung: chuỗi (luồng) lệnh được thực hiện trong ến trình, một ến trình có thể
chứa nhiều luồng
2.Các trạng thái ế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 ến trình đang được thực hin
Chđợi (Waing) Tiến trình đang chờ đợi một skiệ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
lOMoARcPSD| 61552860
3.Điều phối ến trình Điều phối
công việc :
Chọn các ến trình từ hàng đợi ến trình được lưu trong các vùng đệm (đĩa
từ) và đưa vào bnhớ để thc hin
Thc hiện không thường xuyên (đơn vị giây/phút)
Điều khiển mc độ đ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ó
ến trình rời khỏi hệ thống
Vn đề 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ề nh toán: sử dụng nhiều thời gian CPU
Cần lựa chọn lẫn cả 2 loại ến nh  vào ra: hàng đợi sẵn sàng rỗng, lãng
phí CPU 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 ến trình queue sẵn sàng
phân bổ CPU cho 1 trong số đó, hàng đợi thể sắp xếp theo nhiều cách khác
nhau.
Xảy ra khi ến trình:
1. Chuyn từ running sang waing state
2. Chuyn từ running sang ready state
3. Chuyn từ waing sang ready
4. Kết thúc
lOMoARcPSD| 61552860
Trường hợp 1 4, không lựa chọn điều phối. Một ến trình khác (nếu
trong hàng đợi) phải được lựa chọn để phân bổ.
Trường hợp 2 3, có thể có lựa chn.
Xửsong song nếu các xử lí đó tồn tại đồng thời các ến trình có thể hđ như
nhau
Khai thác tối đa hệ đa xử
Giảm thời gian nh toán
Xử độ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 các ến trình tương tác trao đổi thông n với nhau, hoặc truy cập
đến tài nguyên chung, chia làm 2 loại:
Đồng bộ: các ến trình phối hợp nhịp nhàng, giảm vn đề phát sinh
Di bộ : Nhu cầu trao đổi thông n 1 cách ngẫu nhiên thể xảy ra xung
đột khi chúng đề cập các tài nguyên chung => dễ nguy cơ mất toàn vẹn
data, sau 1 me 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ề khnăng sdụng chúng +Cần đồng
thời cho nhiều chương trình. (Có ththiết bị vật 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ữ
liu.
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ụ tồn tại ến trình muốn vào đoạn
găng thì ếng trình đó phải sự dụng tài nguyên găng.
+Chờ đợi hữu hn.
5.Phương pháp khóa trong
Mỗi é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)
lOMoARcPSD| 61552860
+Tiến trình muốn vào đoạn găng: Ktra khóa ế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 ế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
Tn tại chuỗi an toàn của tất cả các ến trình.
HTAT không xy ra bế tắc
HTKAT có khả năng xảy ra bết tắc
Bế tắc : Bế tắc nh trạng hai hay nhiều ến trình cùng chờ đợi một sự kin
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 xy 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ế tc:
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 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 ến trình 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 nh trng bế tắc
- Thường yêu cầu các thông n 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 nh trạng bế tắc
lOMoARcPSD| 61552860
- Định kkiể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

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