Networks Business Online Việt Nam & International VH2

giáo trình hệ điều hành PTIT – HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG – TỪ MINH PHƯƠNG GIÁO TRÌNH – StuDocu

Đăng ngày 03 October, 2022 bởi admin

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
—————————-
TỪ MINH PHƯƠNG

GIÁO TRÌNH

Hệ điều hành

Hà nội 20 13

倀吀䤀吀

LỜI NÓI ĐẦU

Hệ điều hành là thành phần quan trọng trong máy tính. Nắm vững kiến thức và kỹ năng về hệ điều hành là cơ sở cho việc hiểu biết thâm thúy mạng lưới hệ thống máy tính nói chung. Chính vì thế, kỹ năng và kiến thức về hệ điều hành là phần kỹ năng và kiến thức bắt buộc so với chuyên viên công nghệ thông tin và những ngành tương quan .Môn học Hệ điều hành là môn học cơ sở trong chương trình huấn luyện và đào tạo ĐH, cao đẳng ngành công nghệ thông tin. Kiến thức tương quan tới hệ điều hành gồm có ba dạng chính. Thứ nhất, đó là kiến thức và kỹ năng và kỹ năng và kiến thức về việc setup, sử dụng, khai thác, nhìn nhận hệ điều hành một cách hiệu suất cao. Các kỹ năng và kiến thức này rất thiết yếu cho người sử dụng cũng như những chuyên viên về quản lý và vận hành, ship hàng hạ tầng đo lường và thống kê nói chung. Thứ hai, hệ điều hành được xem xét từ góc nhìn phong cách thiết kế và kiến thiết xây dựng. Đây là những kiến thức và kỹ năng thiết yếu cho chuyên viên về mạng lưới hệ thống hoặc những người sẽ tham gia phong cách thiết kế, kiến thiết xây dựng hệ điều hành. Thứ ba, đó là kỹ năng và kiến thức về những khái niệm và nguyên tắc chung về hệ điều hành như một thành phần quan trọng của mạng lưới hệ thống máy tính. Cần chú ý quan tâm rằng việc phân loại này là tương đối và những khối kỹ năng và kiến thức có tương quan đến nhau .Trong tài liệu này, kiến thức và kỹ năng về hệ điều hành được trình diễn theo dạng thứ ba với mục tiêu cung ứng kỹ năng và kiến thức về những khái niệm và nguyên tắc hoạt động giải trí của hệ điều hành, từ đây giúp người đọc có hiểu biết sâu hơn về mạng lưới hệ thống máy tính. Những nguyên tắc và khái niệm trình diễn trong tài liệu mang tính tổng quát cho hệ điều hành nói chung, thay vì dựa trên một hệ điều hành đơn cử. Tuy nhiên, để giúp người đọc có được link giữa kim chỉ nan và trong thực tiễn, một số ít kỹ thuật trong hệ điều hành đơn cử sẽ được trình diễn như những ví dụ minh họa, đặc biệt quan trọng chú ý quan tâm tới những hệ điều hành được sử dụng thoáng rộng tại Nước Ta .Các nội dung của giáo trinh được trình diễn thành bốn chương. Chương 1 gồm có những khái niệm chung về hệ điều hành, vai trò trong mạng lưới hệ thống máy tính, những thành phần tính năng và một số ít kiểu kiến trúc thông dụng. Chương 1 cũng tóm tắt quy trình hình thành và tăng trưởng hệ điều hành, qua đó trình diễn 1 số ít khái niệm và kỹ thuật quan trọng trong hệ điều hành hiện này cũng như một số ít xu thế đo lường và thống kê mới hình thành. Kết thúc chương là ví dụ 1 số ít hệ điều hành tiêu biểu vượt trội .Chương 2 trình diễn về quản trị tiến trình trong hệ điều hành, tập trung chuyên sâu vào quản trị tiến trình trong mạng lưới hệ thống với một CPU và nhiều tiến trình. Những nội dung chính của chương gồm có : khái niệm tiến trình, trạng thái tiến trình, những thao tác và thông tin quản trị tiến trình, dòng thực thi, yếu tố điều độ tiến trình, đồng nhất hóa những tiến trình đồng thời .Chương 3 trình diễn về quản trị bộ nhớ. Nội dung chính của chương 3 gồm có : những yếu tố tương quan tới bộ nhớ và địa chỉ, một số ít kỹ thuật tổ chức triển khai chương trình, kỹ thuật phân chương, phân trang, phân đoạn bộ nhớ, khái niệm và cách tổ chức triển khai quản trị bộ nhớ ảo. Những khái niệm triết lý trình diễn trong chương được minh họa qua hai ví dụ : tương hỗ quản trị bộ nhớ trong vi giải quyết và xử lý Intel Pentium, và quản trị bộ nhớ trong hệ điều hành Windows XP .Chương 4 trình diễn về mạng lưới hệ thống file với những nội dung chính sau : khái niệm file và thư mục, những thao tác với file và thư mục, tổ chức triển khai bên trong của file và thư mục, yếu tố cấp phép

倀吀䤀吀

MỤC LỤC

  • CHƯƠNG 1: GIỚI THIỆU CHUNG
      1. CÁC THÀNH PHẦN CỦA HỆ THỐNG MÁY TÍNH
      1. TỔ CHỨC PHẦN CỨNG CỦA MÁY TÍNH
      1. KHÁI NIỆM HỆ ĐIỀU HÀNH
      1. CÁC DỊCH VỤ DO HỆ ĐIỀU HÀNH CUNG CẤP
      1. GIAO DIỆN LẬP TRÌNH CỦA HỆ ĐIỀU HÀNH
      1. QUÁ TRÌNH PHÁT TRIỂN VÀ MỘT SỐ KHÁI NIỆM QUAN TRỌNG
      1. CẤU TRÚC HỆ ĐIỀU HÀNH
      • 1.7. Các thành phần của hệ điều hành
      • 1.7. Nhân của hệ điều hành
      • 1.7. Một số kiểu cấu trúc hệ điều hành
      1. MỘT SỐ HỆ ĐIỀU HÀNH CỤ THỂ
      1. CÂU HỎI VÀ BÀI TẬP CHƯƠNG
  • CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH
      1. CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH
      • 2.1. Tiến trình là gì
      • 2.1. Trạng thái của tiến trình………………………………………………………………………….
      • 2.1. Thông tin mô tả tiến trình
      • 2.1. Bảng và danh sách tiến trình
      • 2.1. Các thao tác với tiến trình
      1. LUỒNG
      • 2.2. Luồng thực hiện là gì
      • 2.2. Ví dụ đa luồng trên hệ thống cụ thể
      • 2.2. Tài nguyên của tiến trình và luồng
      • 2.2. Ưu điểm của mô hình đa luồng
      • 2.2. Luồng mức người dùng và luồng mức nhân
      1. ĐIỀU ĐỘ TIẾN TRÌNH
      • 2.3. Khái niệm điều độ
      • 2.3. Các dạng điều độ
      • 2.3. Các tiêu chí điều độ
      • 2.3. Các thuật toán điều độ
      • 2.3. Điều độ trên hệ thống cụ thể
      1. ĐỒNG BỘ HÓA TIẾN TRÌNH ĐỒNG THỜI
      • 2.4. Các vấn đề đối với tiến trình đồng thời
      • 2.4. Yêu cầu với giải pháp cho đoạn nguy hiểm
      • 2.4. Giải thuật Peterson
      • 2.4. Giải pháp phần cứng
      • 2.4. Cờ hiệu (semaphore)
      • 2.4. Một số bài toán đồng bộ
      • 2.4. Monitor
      • 2 .4. Bế tắc
      1. CÂU HỎI VÀ BÀI TẬP CHƯƠNG
  • CHƯƠNG 3: QUẢN LÝ BỘ NHỚ
      1. ĐỊA CHỈ VÀ CÁC VẤN ĐỀ LIÊN QUAN
      • 3.1. Vấn đề gán địa chỉ
      • 3.1. Địa chỉ lô gic và địa chỉ vật lý
      1. MỘT SỐ CÁCH TỔ CHỨC CHƯƠNG TRÌNH
      • 3.2. Tải trong quá trình thực hiện
      • 3 .2. Liên kết động và thư viện dùng chung
      1. PHÂN CHƯƠNG BỘ NHỚ
      • 3.3. Phân chương cố định
      • 3.3. Phân chương động
      • 3.3. Phương pháp kề cận
      • 3.3. Ánh xạ địa chỉ và chống truy cập bộ nhớ trái phép…………………………………….
      • 3.3. Trao đổi giữa bộ nhớ và đĩa (swapping)
      1. PHÂN TRANG BỘ NHỚ
      • 3.4. Khái niệm phân trang bộ nhớ
      • 3.4. Ánh xạ địa chỉ
      • 3.4. Tổ chức bảng phân trang
      1. PHÂN ĐOẠN BỘ NHỚ
      • 3.5 Khái niệm……………………………………………………………………………………………
      • 3.5. Ánh xạ địa chỉ và chống truy cập trái phép
      • 3.5. Kết hợp phân đoạn với phân trang
      1. BỘ NHỚ ẢO
      • 3.6. Khái niệm bộ nhớ ảo
      • 3.6. Nạp trang theo nhu cầu
      1. ĐỔI TRANG
      • 3.7. Tại sao phải đổi trang
      • 3 .7. Các chiến lược đổi trang
      1. CẤP PHÁT KHUNG TRANG
      • 4.8. Phát hiện và loại trừ các khối hỏng
      • 4.8. Sao dự phòng
      1. BẢO MẬT CHO HỆ THỐNG FILE
      • 4.9. Sử dụng mật khẩu
      • 4.9. Danh sách quản lý truy cập
      1. HỆ THỐNG FILE FAT
      • 4.10. Đĩa lôgic…………………………………………………………………………………………..
      • 4.10. Boot sector
      • 4.10. Bảng FAT
      • 4.10. Thư mục gốc
      1. TỔ CHỨC THÔNG TIN TRÊN BỘ NHỚ THỨ CẤP
      • 4.11. Tổ chức đĩa cứng
      • 4.11. Điều độ đĩa
      1. QUẢN LÝ VÀO/RA
      • 4.12. Phần cứng
      • 4.12. Tổ chức phân hệ quản lý vào/ra
      • 4.12. Quản lý vào/ra mức trên
      1. CÂU HỎI VÀ BÀI TẬP CHƯƠNG
  • TÀI LIỆU THAM KHẢO

Giới thiệu chung

CHƯƠNG 1: GIỚI THIỆU CHUNG

1. CÁC THÀNH PHẦN CỦA HỆ THỐNG MÁY TÍNH

Một mạng lưới hệ thống máy tính nói chung hoàn toàn có thể phân loại sơ bộ thành phần cứng và ứng dụng. Phần cứng phân phối những tài nguyên thiết yếu cho việc thống kê giám sát, giải quyết và xử lý tài liệu. Phần mềm gồm những chương trình lao lý đơn cử việc giải quyết và xử lý đó. Để thực thi việc làm đo lường và thống kê hoặc giải quyết và xử lý tài liệu đơn cử cần có những chương trình gọi là chương trình ứng dụng. Có thể kể 1 số ít chương trình ứng dụng thường gặp như chương trình soạn thảo văn bản, chương trình game show, hệ quản trị cơ sở tài liệu, chương trình truyền thông online. v .Phần cứng hoàn toàn có thể màn biểu diễn như lớp dưới cùng, là cơ sở của toàn mạng lưới hệ thống. Đây là những thiết bị đơn cử như CPU, bộ nhớ, thiết bị nhớ ngoài, thiết bị vào ra. Chương trình ứng dụng là lớp trên của mạng lưới hệ thống, là phần mà người dùng kiến thiết xây dựng nên và tương tác trong quy trình xử lý những trách nhiệm của mình. ( Khái niệm người dùng ở đây gồm có cả người sử dụng thuần tuý lẫn người viết ra những chương trình ứng dụng )Ngoài phần cứng và trình ứng dụng, mạng lưới hệ thống máy tính còn có một thành phần quan trọng là hệ điều hành. Hệ điều hành là ứng dụng đóng vai trò trung gian giữa phần cứng và người sử dụng cùng những chương trình ứng dụng của họ. Nhiệm vụ của hệ điều hành là làm cho việc sử dụng mạng lưới hệ thống máy tính được tiện nghi và hiệu suất cao. Các chương trình ứng dụng khi chạy đều cần triển khai 1 số ít thao tác chung như điều khiển và tinh chỉnh thiết bị vào ra. Những thao tác phân phối và điều khiển và tinh chỉnh tài nguyên chung như vậy sẽ được gộp chung lại trong khoanh vùng phạm vi hệ điều hành. Nhờ có hệ điều hành, người dùng hoàn toàn có thể thuận tiện tương tác và sử dụng máy tính, ví dụ bằng cách trải qua những giao diện đồ họa. Cũng nhờ có hệ điều hành, phần cứng của máy tính được quản trị và sử dụng hiệu suất cao hơn .

Hình 1 : Các thành phần của hệ thống máy tính

Ngoài chương trình ứng dụng và hệ điều hành còn có những chương trình mạng lưới hệ thống và chương trình tiện ích. Đây là những chương trình không thuộc phần cốt lõi của hệ điều hànhChương trình ứng dụng, chương trình mạng lưới hệ thống và tiện íchHệ điều hànhPhần cứng

倀吀䤀吀Người sử dụng

Giới thiệu chung

Ngắt. Quá trình thực hiện các lệnh của chương trình diễn ra tuần tự, sau khi xong một
lệnh CPU sẽ thực hiện lệnh tiếp theo, trừ khi có các lệnh rẽ nhánh hay vòng lặp. Tuy nhiên,
trong hệ thống máy tính còn có các sự kiện xẩy ra và cần được CPU xử lý kịp thời. Ví dụ,
thiết bị phần cứng có thể gửi tín hiệu để thông báo xẩy ra sự kiện cần xử lý, như khi người
dùng bấm bàn phím. Việc xử lý sự kiện các sự kiện như vậy được thực hiện nhờ cơ chế ngắt
(interrupt). Thiết bị phần cứng có thể yêu cầu thực hiện ngắt bằng cách gửi tín hiệu qua bus.
Phần mềm, tức là chương trình đang thực hiện, cũng có thể yêu cầu ngắt bằng cách sử dụng
lời gọi hệ thống (system call). Chẳng hạn khi cần ghi ra file, chương trình có thể gửi yêu cầu
ngắt dưới dạng lời gọi hệ thống ghi ra file. Hệ thống sẽ chuyển sang xử lý ngắt trước khi quay
lại thực hiện tiếp chương trình theo thứ tự thông thường.

Xử lý ngắt. Khi có ngắt, CPU sẽ tạm dừng việc làm đang triển khai và chuyển sang thực thi hàm giải quyết và xử lý ngắt. Sau khi triển khai xong hàm giải quyết và xử lý ngắt, mạng lưới hệ thống sẽ quay lại điểm tạm dừng và thực thi tiếp việc làm bị ngắt. Cơ chế giải quyết và xử lý ngắt đơn cử phụ thuộc vào vào từng dòng máy tính và hệ điều hành, tuy nhiên thường thì những máy tính sử dụng chính sách giải quyết và xử lý ngắt như sau. Các hàm giải quyết và xử lý ngắt được lưu trong bộ nhớ. Các hàm giải quyết và xử lý ngắt do phần cứng đảm nhiệm được lưu trong bộ nhớ ROM hoặc EPROM như một thành phần của phần cứng, ví dụ như một thành phần của BIOS trên PC. Hàm giải quyết và xử lý ngắt của hệ điều hành được tải vào và lưu trong bộ nhớ RAM. Địa chỉ những hàm giải quyết và xử lý ngắt được lưu trong một mảng gọi là vec tơ ngắt, nằm ở phần địa chỉ thấp của bộ nhớ, mở màn từ địa chỉ 0. Mỗi thành phần của vec tơ ngắt có kích cỡ cố định và thắt chặt và chứa con trỏ tới hàm giải quyết và xử lý ngắt tương ứng. Như vậy, ví dụ khi Open ngắt có số thứ tự bằng 2, CPU sẽ đọc nội dung ô thứ 2 của vec tơ ngắt để có địa chỉ hàm giải quyết và xử lý ngắt, sau đó chuyển tới địa chỉ này để thực thi hàm giải quyết và xử lý ngắt. Các hệ điều hành thông dụng như Windows, Linux giải quyết và xử lý ngắt theo quy trình tiến độ này .Trong những hệ điều hành đa chương trình, tức là hệ điều hành được cho phép nhiều tiến trình được triển khai đồng thời, hệ điều hành thường sử dụng ngắt từ bộ định thời timer để tịch thu quyền điều khiển và tinh chỉnh CPU từ một chương trình đang thực thi để phân phối cho chương trình khác. Timer là một chính sách phần cứng được cho phép sinh ra ngắt sau một khoảng chừng thời hạn do hệ điều hành lao lý. Ngắt này được chuyển cho hàm giải quyết và xử lý ngắt của hệ điều hành giải quyết và xử lý, thường là để phân phối lại quyền sử dụng CPU .

Bộ nhớ chính. Bộ nhớ chính là nơi chứa các chương trình đang được thực hiện, bao
gồm cả các lệnh của chương trình cũng như dữ liệu. Bộ nhớ chính là dạng bộ nhớ cho phép
đọc và ghi theo thứ tự bất kỳ, gọi là bộ nhớ truy cập ngẫu nhiên (Random Access Memory –
RAM), do vậy thường được gọi tắt là RAM. Cần lưu ý rằng, máy tính có một số dạng bộ nhớ
khác, ví dụ như bộ nhớ chỉ cho phép đọc (ROM), hoặc bộ nhớ chỉ cho phép ghi với thiết bị
ghi đặc biệt (EPROM), và các loại bộ nhớ này có thể kết hợp với RAM để tạo thành bộ nhớ
chính của máy tính.

Bộ nhớ máy tính hoàn toàn có thể coi như một mảng những ô nhớ được đánh địa chỉ. Bộ nhớ thường được truy vấn theo đơn vị chức năng là byte ( B ), mỗi byte gồm 8 bit ( b ). Một số máy tính sử dụng đơn vị chức năng bộ nhớ là từ ( word ), mỗi từ hoàn toàn có thể có size bằng 2, 4, 8 byte ; tuy nhiên, kiểu đơn vị chức năng bộ nhớ này ít thông dụng trong những máy tính lúc bấy giờ. Như vậy, mỗi byte của bộ nhớ được coi là một ô nhớ và được truy vấn theo địa chỉ của byte .

倀吀䤀吀

Giới thiệu chungĐể tính những lượng bộ nhớ lớn hơn, những đơn vị chức năng là lũy thừa bậc 2 của byte thường được sử dụng như : kilobyte ( KB ) = 2 10 byte, megabyte ( MB ) = 2 20 byte, gigabyte ( GB ) = 2 30 byte, terabyte ( TB ) = 2 40 byte, petabyte ( PB ) = 2 50 byte, hexabyte ( HB ) = 2 60 byte. Cách tổ chức triển khai và đơn vị chức năng bộ nhớ như vậy cũng được sử dụng cho những dạng bộ nhớ khác như bộ nhớ ngoài của máy tính .

Tổ chức hệ thống bộ nhớ. Ngoài bộ nhớ chính (RAM), máy tính còn nhiều dạng bộ
nhớ khác như bộ nhớ thanh ghi, bộ nhớ trên đĩa… Lý do phải sử dụng nhiều dạng bộ nhớ là
do không có dạng thiết bị nhớ nào thỏa mãn đồng thời các yêu cầu đặt ra về lưu trữ thông tin.
Bộ nhớ máy tính lý tưởng là bộ nhớ thỏa mãn đồng thời các yêu cầu chính sau: 1) dung lượng
lớn; 2) tốc độ truy cập nhanh; 3) giá thành thấp; 4) có khả năng lưu trữ lâu bền cả khi có điện
và không có điện. Những yêu cầu này là mâu thuẫn với nhau, chẳng hạn thiết bị nhớ tốc độ
cao có giá cao và không lưu được thông tin khi không có điện. Cụ thể, bộ nhớ chính, được
xây dựng dựa trên công nghệ DRAM (dynamic random-access memory), mặc dù có tốc độ
truy cập tương đối cao xong không đủ lớn để lưu trữ thường xuyên tất cả chương trình và dữ
liệu. Ngoài ra, nội dung bộ nhớ sử dụng DRAM sẽ bị xóa khi tắt nguồn, do vậy không phù
hợp để lưu trữ lâu thông tin lâu dài.

Để xử lý yếu tố nói trên, mạng lưới hệ thống bộ nhớ trong máy tính được tạo thành từ nhiều dạng bộ nhớ khác nhau, mỗi dạng có ưu điểm về một mặt nào đó như vận tốc, dung tích, giá tiền. Hệ thống bộ nhớ được tổ chức triển khai như một cấu trúc phân cấp hình tháp như minh họa trên hình 1, trong đó những dạng ở nhớ ở mức trên có vận tốc và giá tiền cao, do vậy chỉ hoàn toàn có thể sử dụng với dung tích nhỏ. Ngược lại, phía dưới của tháp là bộ nhớ dung tích lớn và rẻ nhưng chậm .Hình 1. Tổ chức phân cấp dạng hình tháp của mạng lưới hệ thống bộ nhớ máy tínhThanh ghi ( CPU )Cache

3. BỘ NHỚ ẢO

Bộ nhớ SSDĐĩa từĐĩa quangBăng từ

倀吀䤀吀

Giới thiệu chungĐể triển khai xong vai trò của mình, hệ điều hành cần thực thi hai tính năng cơ bản là quản trị tài nguyên và quản trị việc triển khai những chương trình. Ta sẽ xem xét kỹ hai tính năng này của hệ điều hành .

4. QUẢN LÝ VÀO/RA

Quản lý tài nguyên bảo vệ cho tài nguyên mạng lưới hệ thống được sử dụng một cách có ích và hiệu suất cao. Nhờ có hệ điều hành, tài nguyên được quản trị và sử dụng hài hòa và hợp lý hơn trong khi người sử dụng được giải phóng khỏi việc làm khó khăn vất vả này .Các tài nguyên phần cứng hầu hết của máy tính gồm có bộ giải quyết và xử lý ( CPU ), bộ nhớ chính, bộ nhớ thứ cấp, những thiết bị vào ra. CPU là thành phần TT của mạng lưới hệ thống, có công dụng giải quyết và xử lý tài liệu và tinh chỉnh và điều khiển toàn mạng lưới hệ thống. Bộ nhớ chính là nơi tàng trữ chương trình và tài liệu trong quy trình giải quyết và xử lý. Bộ nhớ thứ cấp, hay bộ nhớ ngoài, gồm có những đĩa từ, đĩa quang học, đĩa quang từ, băng từ, thẻ nhớ và những thiết bị nhớ khác có vai trò tàng trữ chương trình, tài liệu trong thời hạn dài với dung tích lớn. Thiết bị vào ra được cho phép máy tính trao đổi thông tin với quốc tế bên ngoài .Quản lý tài nguyên trước hết là phân phối tài nguyên tới những ứng dụng một cách hiệu suất cao. Để triển khai được, những chương trình cần tài nguyên phần cứng như khoảng trống bộ nhớ, thiết bị ngoại vi. Yêu cầu tài nguyên được hệ điều hành thu nhận và cung ứng bằng cách cấp cho chương trình những tài nguyên tương ứng. Muốn cấp phép tài nguyên, hệ điều hành cần tàng trữ thực trạng tài nguyên để biết hiện giờ tài nguyên nào còn trống, tài nguyên nào đang được sử dụng. Một ví dụ nổi bật là trường hợp tàng trữ thông tin lên đĩa. Hệ điều hành cần biết những vùng nào trên đĩa chưa được sử dụng để ghi thông tin lên những vùng này. Việc ghi thông tin lên vùng trống cũng cần được đo lường và thống kê sao cho quy trình truy vấn tới thông tin khi cần hoàn toàn có thể thực thi nhanh nhất .Yêu cầu về phần cứng của những chương trình này hoàn toàn có thể xích míc nhau. Chẳng hạn, hai chương trình cùng có nhu yếu ghi ra đĩa một lúc. Trong trường hợp Open những nhu yếu xích míc khác về phần cứng như ví dụ này, hệ điều hành sẽ quyết định hành động thứ tự và thời hạn phân phối tài nguyên cho những chương trình sao cho đạt được tiềm năng giám sát của mạng lưới hệ thống đồng thời tối ưu hoá một số ít tiêu chuẩn nào đó, ví dụ điển hình giảm thời hạn những chương trình phải tạm ngừng để chờ đón lẫn nhau. v .Quản lý tài nguyên còn có nghĩa là bảo vệ sao cho chương trình không xâm phạm tài nguyên đã cấp cho chương trình khác. Ví dụ, nếu hai chương trình được cấp hai vùng bộ nhớ khác nhau, thì việc chương trình này truy vấn và đổi khác vùng bộ nhớ của chương trình khác sẽ làm cho chương trình đó hoạt động giải trí không thông thường. Hệ điều hành cần bộc lộ tính năng quản trị tài nguyên của mình qua việc ngăn ngừa những vi phạm kiểu này .

Quản lý việc thực hiện các chương trình

Nhiệm vụ quan trọng nhất của máy tính là thực hiện các chương trình. Một chương trình
đang trong quá trình thực hiện được gọi là tiến trình (process). Chương trình cần được quản lý
để có thể thực hiện thuận lợi, tránh các lỗi, đồng thời đảm bảo môi trường để việc xây dựng
và thực hiện chương trình được thuận lợi.

倀吀䤀吀

Giới thiệu chungHệ điều hành giúp việc chạy chương trình thuận tiện hơn. Để chạy chương trình cần thực thi 1 số ít thao tác nhất định, nhờ có hệ điều hành, người dùng không phải triển khai những thao tác này. Hệ điều hành cũng phân phối giao diện giúp người dùng thuận tiện chạy hoặc kết thúc những chương trình .Để tạo thiên nhiên và môi trường thuận tiện cho chương trình, hệ điều hành tạo ra những máy ảo. Máy ảo là những máy lôgic với những tài nguyên ảo có những đặc thù và năng lực khác so với tài nguyên thực : dễ sử dụng hơn, dễ lập trình hơn, số lượng nhiều hơn tài nguyên thực thực, năng lực hoàn toàn có thể vượt quá năng lực tài nguyên thực .Tài nguyên ảo là bản mô phỏng của tài nguyên thực được triển khai bằng ứng dụng. Tài nguyên ảo giống tài nguyên thực ở chỗ nó cung ứng những dịch vụ cơ bản như tài nguyên thực. Chẳng hạn, processor ảo phân phối năng lực triển khai những lệnh, bộ nhớ ảo cung ứng năng lực tàng trữ thông tin, thiết bị vào / ra ảo được cho phép chương trình đọc ghi tài liệu .Tài nguyên ảo khác tài nguyên thực ở chỗ dễ sử dụng hơn. Các tài nguyên thực đều rất khó lập trình trực tiếp. Lấy ví dụ việc ghi thông tin ra đĩa cứng. Các đĩa cứng thường được lập trình bằng cách ghi 1 số ít lệnh ra những thanh ghi điều khiển và tinh chỉnh. Các thanh ghi khác làm trách nhiệm chứa thông tin cần trao đổi và trạng thái đĩa. Để thực thi việc đọc ghi thông tin, ta cần xác lập chuỗi lệnh khởi động ( làm đĩa quay nếu đĩa đang ở trạng thái dừng ), kiểm tra xem đĩa đã đạt được vận tốc chưa, sau đó chuyển đầu đọc tới vị trí thiết yếu, ghi thông tin ra những thanh ghi tài liệu và đưa những lệnh triển khai ghi thông tin ra những thanh ghi tinh chỉnh và điều khiển. Việc lập trình điều khiển và tinh chỉnh đĩa như vậy yên cầu rất nhiều thời hạn cùng những hiểu biết về giao diện phần cứng. Trong trường hợp này là kỹ năng và kiến thức về những lệnh, địa chỉ, khuôn dạng thanh ghi và quy trình trao đổi tin với đĩa. Nếu mạch tinh chỉnh và điều khiển đĩa biến hóa thì những thông số kỹ thuật này hoàn toàn có thể biến hóa theo và chương trình ghi đĩa cũng phải viết lại .Để cho việc sử dụng những tài nguyên phần cứng trở nên đơn thuần người ta trừu tượng hoá những tài nguyên này. Trừu tượng hoá là quy trình vô hiệu những cụ thể không quan trọng, chỉ giữ lại những góc nhìn cốt lõi mà người sử dụng chăm sóc. Các tài nguyên phần cứng sau khi được trừu tượng hoá vẫn phân phối những công dụng cơ bản như khởi đầu xong dễ sử dụng hơn nhiều do những chi tiết cụ thể đơn cử đã được giấu đi. Chẳng hạn, đĩa cứng hoàn toàn có thể coi như nơi hoàn toàn có thể đọc, ghi những tệp. Người dùng hoàn toàn có thể tạo, xoá, đọc, ghi những tệp bằng những lệnh bậc cao mà không cần chăm sóc tới những thanh ghi, những lệnh bậc thấp. Việc trực tiếp đưa những lệnh đơn cử ra thanh ghi cùng những chi tiết cụ thể khác sẽ do hệ điều hành đảm nhiệm .Một điểm độc lạ quan trọng của tài nguyên ảo là số lượng tài nguyên ảo hoàn toàn có thể lớn hơn số lượng tài nguyên thực. Hãy xem xét trường hợp CPU. Mỗi máy tính thường chỉ có một processor thực. Tuy nhiên nếu nhiều chương trình cùng được triển khai trên máy đó, mỗi chương trình sẽ được hệ điều hành cung cấp một CPU ảo bằng cách phân loại thời hạn sử dụng CPU thực cho những CPU ảo đó. Rõ ràng số lượng processor ảo lúc đó vượt số lượng CPU thực rất nhiều. Khả năng của từng tài nguyên ảo cũng hoàn toàn có thể vượt năng lực tài nguyên thực. Điển hình là bộ nhớ ảo. Các hệ điều hành thường cung ứng bộ nhớ trong ảo với khoảng trống nhớ lớn hơn bộ nhớ thực rất nhiều bằng cách sử dụng thêm khoảng trống trên bộ nhớ ngoài .

倀吀䤀吀

Giới thiệu chung

phần mềm có thể do chương trình viết sai, các phép chia cho không, lỗi truy cập bộ
nhớ.v. Nếu không có hệ điều hành, người dùng và chương trình ứng dụng sẽ phải tự
phát hiện và xử lý các lỗi xuất hiện.
Truyền thông. Trong khi thực hiện, chương trình có thể có nhu cầu trao đổi thông tin
với nhau, thậm chí với chương trình đang thực hiện trên máy khác được nối mạng. Hệ
điều hành cung cấp dịch vụ cho phép thiết lập liên lạc và truyền thông tin dưới dạng
các thông điệp (message) hoặc thông qua những vùng bộ nhớ dùng chung (shared
memory). Trong trường hợp truyền thông điệp, hệ điều hành đóng vai trò chuyển các
gói tin theo những quy tắc nhất định gọi là giao thức truyền thông.
Cấp phát tài nguyên. Trong các hệ thống cho phép nhiều chương trình thực hiện
đồng thời cần có cơ chế cấp phát và phân phối tài nguyên hợp lý. Mỗi dạng tài nguyên
cần có cách cấp phát riêng, ví dụ cơ chế cấp phát CPU hoàn toàn khác so với cấp phát
bộ nhớ. Nhờ có hệ điều hành, người sử dụng và trình ứng dụng không phải tự thực
hiện việc cấp phát tài nguyên, đồng thời vẫn đảm bảo tài nguyên được cấp phát công
bằng và hiệu quả.
Dịch vụ an ninh và bảo mật. Đối với hệ thống nhiều người dùng thường có xuất hiện
yêu cầu bảo mật thông tin, tức là đảm bảo người dùng này không tiếp cận được với
thông tin của người khác nếu không được phép. Tương tự như vậy, hệ thống cần đảm
bảo để tiến trình không truy cập trái phép tài nguyên (như vùng bộ nhớ, file mở) của
tiến trình khác hay của chính hệ điều hành bằng cách kiểm soát truy cập tới tài
nguyên. Nhiều hệ điều hành còn cho phép kiểm tra người dùng thông qua việc kiểm
soát đăng nhập vào hệ thống.

Tải và chạy hệ điều hành.

Ở đây cần nói thêm về việc tải hệ điều hành vào bộ nhớ. Như đã nói ở trên, việc tải những chương trình vào bộ nhớ là do hệ điều hành thực thi. Do hệ điều hành là chương trình tiên phong được triển khai khi khởi động mạng lưới hệ thống nên hệ điều hành phải tự tải chính mình từ bộ nhớ ngoài vào bộ nhớ trong. Chính xác hơn, quy trình đó, được gọi là booting ( viết tắt của bootstrapping ), diễn ra như sau. Hệ điều hành có một chương trình nhỏ gọi là chương trình tải hay chương trình mồi ( OS loader hoặt boot ). Chương trình này nằm ở một vị trí xác lập trên đĩa hoặc thiết bị nhớ ngoài khác. Chẳng hạn, so với đĩa, chương trình này nằm ở sector tiên phong của đĩa. Việc chương trình tải nằm ở vị trí xác lập như vậy là rất quan trọng vì nếu không, phần cứng sẽ không hề tìm ra chương trình tải hệ điều hành .Sau khi khởi động mạng lưới hệ thống, một chương trình nằm sẵn trong bộ nhớ ROM ( ví dụ trong BIOS của máy vi tính ) sẽ được kích hoạt và đọc chương trình mồi của hệ điều hành từ vị trí quy ước trên đĩa vào bộ nhớ. Sau đó, chương trình mồi chịu nghĩa vụ và trách nhiệm tải những phần khác của hệ điều hành vào bộ nhớ và trao cho hệ điều hành quyền điều khiển và tinh chỉnh mạng lưới hệ thống. Nếu phần đĩa chứ chương trình mồi bị hỏng, phần cứng sẽ hiển thị thông tin với nội dung “ không tìm thấy hệ điều hành ” .Trong trường hợp máy tính được cài nhiều hệ điều hành, chương trình mồi ( gọi là Multi OS loader ) sẽ được cho phép người dùng chọn một trong những hệ điều hành đó để tải vào bộ nhớ .

倀吀䤀吀

Giới thiệu chung

1. GIAO DIỆN LẬP TRÌNH CỦA HỆ ĐIỀU HÀNH

Để những chương trình hoàn toàn có thể sử dụng được những dịch vụ nói trên, hệ điều hành cung cấp một giao diện gọi là giao diện lập trình. Giao diện này gồm có những lời gọi mạng lưới hệ thống ( system calls ) mà chương trình sử dụng để nhu yếu một dịch vụ nào đó từ phía hệ điều hành .Lời gọi mạng lưới hệ thống là dạng lệnh đặc biệt quan trọng mà chương trình ứng dụng gọi khi cần nhu yếu hệ điều hành triển khai một việc gì đó. Các hệ điều hành trước đây thường phân phối lời gọi mạng lưới hệ thống dưới dạng những lệnh hợp ngữ do đó lời gọi mạng lưới hệ thống còn được gọi là “ lệnh máy lan rộng ra ”. Ví dụ những lời gọi kiểu này là những hàm ngắt 21 h của DOS mà chương trình viết trên hợp ngữ gọi bằng lệnh int. Hệ điều hành lúc bấy giờ thường được cho phép gọi lời gọi mạng lưới hệ thống trực tiếp từ ngôn từ bậc cao như C hoặc C + +. Lúc này, lời gọi mạng lưới hệ thống giống như một lời gọi hàm hoặc chương trình con thường thì. Trên hình 1 là ví dụ một lời gọi mạng lưới hệ thống của hệ điều hành Windows được cho phép ghi ra file .Trên thực tiễn, chương trình ứng dụng ít sử dụng trực tiếp lời gọi mạng lưới hệ thống. Thay vào đó, lời gọi mạng lưới hệ thống được thực thi qua những thư viện hàm gọi là thư viện mạng lưới hệ thống cùng với những hàm mạng lưới hệ thống khác. Các hàm này sẽ giúp người lập trình gọi lời gọi mạng lưới hệ thống tương ứng của hệ điều hành. Giao diện lập trình Win32 API ( Application Programming Interface ) do hệ điều hành Windows phân phối là một ví dụ thư viện như vậy. Các ví dụ khác là POSIX API dùng cho UNIX, Linux và Java API dùng cho máy ảo Java .NTSTATUS ZwWriteFile ( In HANDLE FileHandle, In_opt HANDLE Event, In_opt PIO_APC_ROUTINE ApcRoutine, In_opt PVOID ApcContext, Out PIO_STATUS_BLOCK IoStatusBlock, In PVOID Buffer, In ULONG Length, In_opt PLARGE_INTEGER ByteOffset, In_opt PULONG Key ) ; Hình 1. Lời gọi mạng lưới hệ thống với dịch vụ ghi ra file của Windows Trên hình 1 là ví dụ một hàm của Win32 API được cho phép nhu yếu dịch vụ ghi ra file của Windows. Có thể so sánh hàm này với hàm zwWriteFile trong ví dụ ở hình trên để thấy mối quan hệ giữa lời gọi mạng lưới hệ thống và API. BOOL WINAPI WriteFile ( __in HANDLE hFile, __in LPCVOID lpBuffer, __in DWORD nNumberOfBytesToWrite, __out_opt LPDWORD lpNumberOfBytesWritten, __inout_opt LPOVERLAPPED lpOverlapped ) ; Hình 1 : Hàm ghi file trong thư viện Windows API

倀吀䤀吀

Giới thiệu chungChdir SetCurrentDirectory Thay đổi thư mục hiện thời Hình 1. Ví dụ một số ít hàm API quan trọng của POSIX và Win32 API

1. QUÁ TRÌNH PHÁT TRIỂN VÀ MỘT SỐ KHÁI NIỆM QUAN TRỌNG

Các hệ điều hành thời nay là những mạng lưới hệ thống ứng dụng phức tạp thực thi nhiều tính năng phức tạp tương quan tới quản trị tài nguyên và chương trình. Các tính năng và kỹ thuật được sử dụng trong hệ điều hành tân tiến không phải có ngay mà được thiết kế xây dựng và triển khai xong qua nhiều thế hệ hệ điều hành khác nhau. Do vậy, việc xem xét quy trình tăng trưởng hệ điều hành được cho phép hiểu rõ hơn năng lực và nhu yếu so với một hệ điều hành tân tiến .Trong phần này cũng trình bầy một số ít khái niệm quan trọng như đa chương trình, đa nhiệm, san sẻ thời hạn .

Các hệ thống đơn giản

Trong thời kỳ mới sinh ra, từ giữa những năm 40 cho tới giữa những năm 50 thế kỷ trước, vận tốc xử l ý của máy tính rất thấp, việc vào / ra được thực thi bằng tay thủ công v à khó khăn vất vả. Việc nạp chương trình được thực thi nhờ những công tắc nguồn, những mạch hàn sẵn ( plugboard ), bìa đục lỗ. Kết quả thực thi được đưa ra máy in, trạng thái máy bộc lộ trên những đèn tín hiệu. Trong thời kỳ này, lập trình viên tương tác trực tiếp với phần cứng, lập trình bằng những lệnh máy. Máy tính điện tử hế hệ này chưa có hệ điều hành .

Xử lý theo mẻ

Từ giữa những năm 1950, phần cứng máy tính đã có những nâng cấp cải tiến quan trọng. Việc sử dụng bán dẫn được cho phép giảm size máy, tăng vận tốc xử l ý cũng như giảm những hỏng hóc phần cứng. Việc nạp chương trình được triển khai nhờ bìa đục lỗ vào những đĩa từ trước khi tải vào máy. Hệ điều hành tiên phong cũng sinh ra trong thời kỳ này .Trong những thập niên đầu sau khi sinh ra, giá tiền máy tính rất đắt. Do đó, trách nhiệm quan trọng l à tận dụng hết hiệu suất máy, giảm thời hạn chờ đón càng nhiều càng tốt. Một kỹ thuật được cho phép tăng hiệu suất sử dụng máy là xử l ý theo mẻ ( batch processing ), hay còn gọi là giải quyết và xử lý theo lô. Kỹ thuật này lần tiên phong được hãng General Motors sử dụng trên máy tính 701 vào giữa những năm 1950 .Thay vì thao tác trực tiếp với máy tính, lập trình viên sẵn sàng chuẩn bị chương trình trên bìa đục lỗ hoặc trên đĩa từ v à giao cho những kỹ thuật viên. Đây là những người chuyên trách quản trị máy và đư ợc chuẩn bị sẵn sàng để sử dụng máy hiệu suất cao nhất. Sau khi nhận được chương trình, kỹ thuật viên sẽ phân chương trình thành những mẻ. Mỗi mẻ gồm có những chương trình có nhu yếu giống nhau, ví dụ những chương trình cần được dịch bằng bộ dịch FORTRAN được xếp vào cù ng mẻ. Toàn bộ mẻ sau đó được nạp vào băng từ và đư ợc tải vào máy để thực thi lần lượt .Để hoàn toàn có thể tự động hóa giải quyết và xử lý theo mẻ, một chương trình nhỏ gọi l à chương trình giám sát ( monitor ) đư ợc giữ tiếp tục trong bộ nhớ. Mỗi khi một chương trình của mẻ kết thúc, chương trình giám sát tự động hóa nạp chương trình tiếp theo của mẻ vào máy và được cho phép chương trình này chạy. Việc tự động hoá giám sát và nạp chương trình còn giảm đáng kể thời hạn quy đổi giữa hai chương trình trong cùng một mẻ do monitor hoàn toàn có thể tự động hóa nạp

倀吀䤀吀

Giới thiệu chungchương trình nhanh hơn kỹ thuật viên. Hiệu suất sử dụng CPU do đó được cải tổ đáng kể. Sau khi hàng loạt mẻ đã được triển khai xong, kỹ thuật viên lấy băng từ chứa mẻ ra v à nạp tiếp mẻ mới vào để thực thi .Trình giám sát ( monitor ) miêu tả ở trên chính là dạng đơn thuần nhất của hệ điều hành được tải vào và nằm thường trực trong bộ nhớ để quản l ý việc triển khai những chương trình khác. Bộ nhớ máy tính được phân thành hai vùng : một vùng chứa trình giám sát, và một vùngchứa trình ứng dụng như minh họa trên hình 1 .

Đa chương trình

Mặc dù việc xử l ý theo mẻ được cho phép giảm thời hạn quy đổi giữa những chương trình ứng dụng xong hiệu suất sử dụng CPU vẫn tương đối thấp. Mỗi khi có nhu yếu vào / ra, CPU phải dừng việc xử l ý dữ liệu để chờ quy trình vào ra kết thúc. Do vận tốc vào ra luôn thấp hơn vận tốc CPU rất nhiều nên CPU liên tục phải chờ đón trong những khoảng chừng thời hạn dài .Để hạn chế thực trạng nói trên, kỹ thuật đa chương trình ( multiprogramming ) được sử dụng. Hệ thống chứa đồng thời nhiều chương trình trong bộ nhớ ( hình 1 ). Khi một chương trình phải dừng lại để thực thi vào ra hệ điều hành sẽ chuyển CPU sang thực thi một chương trình khác. Nếu số chương trình nằm trong bộ nhớ đủ nhiều thì phần đông khi nào CPU cũng có việc để triển khai, nhờ vậy giảm thời hạn chạy không tải của CPU .Trên hình 1 là minh họa hiệu suất sử dụng thời hạn CPU cho trường hợp đơn chương trình và đa chương trình với 3 chương trình cùng được tải vào bộ nhớ một lúc. Thời gian thực

Monitor

Trình ứng
dụng

Hình 1 : Bộ nhớ chứa trình giám sát ( monitor ) và chương trình ứng dụng

Hệ điều hành

Bộ nhớ trống

Hình 1 : Đa chương trình

Chương trình 3

Chương trình 2

Chương trình 1

倀吀䤀吀

Source: https://vh2.com.vn
Category : Ứng Dụng