Giáo Trình Lý Thuyết Hệ Điều Hành Phần 1 của Nguyễn Kim Tuấn

Giáo trình lý thuyết hệ điều hành phần 1 của Nguyễn Kim Tuấn cung cấp kiến thức cơ bản và nâng cao về hệ điều hành, phục vụ cho sinh viên CNTT.

Trường đại học

Đại Học Huế

Chuyên ngành

Khoa Học Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2004

110
5
0

Phí lưu trữ

35 Point

Mục lục chi tiết

1. CHƯƠNG I: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

1.1. Chức năng và lịch sử phát triển của hệ điều hành

1.2. Chức năng của hệ điều hành

1.3. Lịch sử phát triển của hệ điều hành

1.4. Một số khái niệm của hệ điều hành

1.4.1. Tiến trình (Process) và tiểu trình (Thread)

1.4.2. Bộ xử lý lệnh (Shell)

1.4.3. Sự phân lớp hệ thống (System Layering)

1.4.4. Tài nguyên hệ thống (System Resources)

1.4.5. Lời gọi hệ thống (System Calls)

1.4.6. Hệ điều hành và phân loại hệ điều hành

1.4.6.1. Hệ điều hành là gì?
1.4.6.2. Phân loại hệ điều hành

1.4.7. Thành phần và cấu trúc của hệ điều hành

1.4.7.1. Các thành phần của hệ điều hành
1.4.7.2. Các cấu trúc của hệ điều hành

1.4.8. Hệ điều hành Windows95

1.4.8.1. Giới thiệu về hệ điều hành Windows95
1.4.8.2. Cấu trúc của windows95
1.4.8.3. Bộ nhớ ảo trong windows95

1.4.9. Hệ điều hành Windows 2000

1.4.9.1. Giới thiệu về hệ điều hành Windows 2000
1.4.9.2. Một số đặc tính của Windows 2000
1.4.9.3. Một số khái niệm trong Windows 2000
1.4.9.4. Kiến trúc của Windows 2000

1.4.10. Hệ điều hành Linux

2. CHƯƠNG II: QUẢN LÝ TIẾN TRÌNH

2.1. Tổng quan về tiến trình

2.2. Tiến trình và các loại tiến trình

2.3. Mô hình tiến trình

2.4. Tiểu trình và tiến trình

2.5. Các trạng thái tiến trình

2.6. Cấu trúc dữ liệu của khối quản lý tiến trình

2.7. Các thao tác điều khiển tiến trình

2.8. Tài nguyên găng và đoạn găng

2.8.1. Tài nguyên găng (Critical Resource)

2.8.2. Yêu cầu của công tác điều độ qua đoạn găng

2.8.3. Điều độ tiến trình qua đoạn găng

2.8.3.1. Các giải pháp phần cứng
2.8.3.2. Các giải pháp dùng biến khoá
2.8.3.3. Các giải pháp được hỗ trợ bởi hệ điều hành và ngôn ngữ lập trình

2.8.4. Hai bài toán điều phối làm ví dụ

2.9. Tắc nghẽn (Deadlock) và chống tắc nghẽn

2.9.1. Điều kiện hình thành tắt nghẽn

2.9.2. Ngăn chặn tắc nghẽn (Deadlock Prevention)

2.9.3. Nhận biết tắc nghẽn (Deadlock Detection)

2.10. Điều phối tiến trình

2.11. Mục tiêu điều phối

2.12. Tổ chức điều phối

2.13. Các chiến lược điều phối

2.14. Tiến trình trong Windows NT

3. CHƯƠNG III: QUẢN LÝ BỘ NHỚ

3.1. Nhiệm vụ của quản lý bộ nhớ

3.2. Kỹ thuật cấp phát bộ nhớ (nạp chương trình vào bộ nhớ chính)

3.3. Kỹ thuật phân vùng cố định (Fixed Partitioning)

3.4. Kỹ thuật phân vùng động (Dynamic Partitioning)

3.5. Kỹ thuật phân trang đơn (Simple Paging)

3.6. Kỹ thuật phân đoạn đơn (Simple Segmentation)

3.7. Kỹ thuật bộ nhớ ảo (Virtual Memory)

3.7.1. Bộ nhớ ảo

3.7.2. Kỹ thuật bộ nhớ ảo

3.8. Quản lý bộ nhớ RAM của DOS

3.8.1. Program Segment Prefix (PSP)

3.8.2. Chương trình COM và EXE

3.8.3. Memory Control Block (MCB)

3.9. Sự phân trang/đoạn trong hệ điều hành Windows NT

3.10. Các thuật toán thay trang

3.11. Cấp phát khung trang

3.12. Một số vấn đề về quản lý bộ nhớ của Windows 2000

3.12.1. Nhiệm vụ quản lý bộ nhớ của Windows 2000

3.12.2. Các dịch vụ trình quản lý bộ nhớ cung cấp

3.12.3. Address Space Layout

3.12.4. Chuyển đổi địa chỉ

4. CHƯƠNG IV: QUẢN LÝ FILE và ĐĨA

4.1. Tổng quan về quản lý tập tin và đĩa

4.2. Tập tin và hệ thống quản lý tập tin

4.3. Bảng danh mục và tập tin chia sẻ

4.4. Quản lý không gian đĩa

4.5. Quản lý các block chứa file trên đĩa

4.6. An toàn trong quản lý tập tin

4.7. Hiệu suất hệ thống file

4.8. Các điều khiển hệ thống tập tin

4.9. Các hệ thống file trên các hệ điều hành hiện nay

4.9.1. Tổ chức đĩa của MS_DOS

4.9.2. Quản lý file trên đĩa của MS_DOS

4.9.3. Tổ chức bảng thư mục gốc của Windows98

4.9.4. Tổ chức đĩa của Windows 2000

4.9.5. Các loại volume multipartition

4.9.6. Quản lý lưu trữ file trên đĩa của Windows NT/2000

4.9.7. Một số chức năng được hỗ trợ bởi NTFS của Windows 2000

4.9.7.1. Cấu trúc của MFT
4.9.7.2. Quản lý danh sách các block chứa file trên đĩa
4.9.7.3. Một số kỹ thuật được hỗ trợ bởi hệ thống file NTFS

4.9.8. Lập bảng chỉ mục. Ánh xạ Bad-cluster

4.9.9. Tổ chức lưu trữ file trên đĩa CD_ROM

Tài liệu tham khảo

Tóm tắt

I. Tổng quan về Giáo Trình Hệ Điều Hành Phần 1 Nguyễn Kim Tuấn

Giáo trình "Hệ Điều Hành Phần 1" của Nguyễn Kim Tuấn cung cấp cái nhìn tổng quan về các khái niệm cơ bản và chức năng của hệ điều hành. Tài liệu này không chỉ giúp sinh viên hiểu rõ về cấu trúc và hoạt động của hệ điều hành mà còn trang bị cho họ những kiến thức cần thiết để phát triển ứng dụng trên nền tảng hệ điều hành. Nội dung giáo trình được trình bày một cách hệ thống, dễ hiểu, phù hợp với đối tượng học sinh, sinh viên.

1.1. Nội dung chính của giáo trình Hệ Điều Hành

Giáo trình bao gồm các chương trình chính như tổng quan về hệ điều hành, quản lý tiến trình, quản lý bộ nhớ và quản lý file. Mỗi chương đều có những ví dụ minh họa cụ thể, giúp người học dễ dàng nắm bắt kiến thức.

1.2. Đối tượng sử dụng giáo trình Hệ Điều Hành

Giáo trình này phù hợp cho sinh viên ngành Công nghệ Thông tin, Khoa học máy tính và những ai muốn tìm hiểu sâu về hệ điều hành. Nó cũng là tài liệu tham khảo hữu ích cho các giảng viên trong quá trình giảng dạy.

II. Vấn đề và thách thức trong việc học Hệ Điều Hành

Học về hệ điều hành không chỉ đơn thuần là lý thuyết mà còn đòi hỏi thực hành và áp dụng kiến thức vào thực tế. Một trong những thách thức lớn nhất là sự phức tạp trong việc quản lý tài nguyên hệ thống. Sinh viên thường gặp khó khăn trong việc hiểu rõ cách thức hoạt động của các tiến trình và cách mà hệ điều hành quản lý chúng.

2.1. Khó khăn trong việc hiểu các khái niệm cơ bản

Nhiều sinh viên gặp khó khăn trong việc nắm bắt các khái niệm như tiến trình, tiểu trình và cách mà chúng tương tác với nhau trong hệ điều hành. Điều này cần được giải thích rõ ràng và có ví dụ minh họa cụ thể.

2.2. Thách thức trong việc thực hành

Việc thực hành trên các hệ điều hành như Linux, Windows hay Android cũng là một thách thức lớn. Sinh viên cần có môi trường thực hành phù hợp để áp dụng lý thuyết vào thực tế.

III. Phương pháp học hiệu quả về Hệ Điều Hành

Để học tốt về hệ điều hành, sinh viên cần áp dụng các phương pháp học tập hiệu quả. Việc kết hợp lý thuyết và thực hành là rất quan trọng. Ngoài ra, việc tham gia các dự án thực tế cũng giúp sinh viên củng cố kiến thức và kỹ năng.

3.1. Kết hợp lý thuyết và thực hành

Sinh viên nên tham gia vào các khóa học thực hành, nơi họ có thể làm việc với các hệ điều hành khác nhau. Điều này giúp họ hiểu rõ hơn về cách thức hoạt động của hệ thống.

3.2. Tham gia dự án thực tế

Tham gia vào các dự án thực tế sẽ giúp sinh viên áp dụng kiến thức đã học vào thực tiễn. Điều này không chỉ giúp họ hiểu rõ hơn về hệ điều hành mà còn phát triển kỹ năng làm việc nhóm.

IV. Ứng dụng thực tiễn của Hệ Điều Hành trong công việc

Hệ điều hành đóng vai trò quan trọng trong việc quản lý tài nguyên máy tính và cung cấp môi trường cho các ứng dụng hoạt động. Việc hiểu rõ về hệ điều hành giúp các lập trình viên phát triển ứng dụng hiệu quả hơn và tối ưu hóa hiệu suất hệ thống.

4.1. Quản lý tài nguyên hệ thống

Hệ điều hành giúp quản lý tài nguyên như bộ nhớ, CPU và thiết bị ngoại vi. Việc nắm vững cách thức hoạt động của hệ điều hành giúp lập trình viên tối ưu hóa ứng dụng của họ.

4.2. Phát triển ứng dụng trên nền tảng Hệ Điều Hành

Các lập trình viên cần hiểu rõ về API và cách thức giao tiếp với hệ điều hành để phát triển ứng dụng hiệu quả. Điều này giúp họ tạo ra các ứng dụng tương thích và tối ưu với hệ thống.

V. Kết luận và tương lai của Hệ Điều Hành

Hệ điều hành sẽ tiếp tục phát triển và đóng vai trò quan trọng trong công nghệ thông tin. Việc nắm vững kiến thức về hệ điều hành sẽ giúp sinh viên và lập trình viên sẵn sàng cho những thách thức trong tương lai.

5.1. Xu hướng phát triển của Hệ Điều Hành

Các hệ điều hành hiện đại đang ngày càng trở nên phức tạp và đa dạng. Việc theo kịp xu hướng này là rất quan trọng cho các lập trình viên.

5.2. Tầm quan trọng của Hệ Điều Hành trong công nghệ

Hệ điều hành không chỉ là nền tảng cho các ứng dụng mà còn là yếu tố quyết định hiệu suất và khả năng mở rộng của hệ thống. Việc hiểu rõ về nó sẽ giúp các chuyên gia công nghệ phát triển các giải pháp tối ưu hơn.

15/07/2025

Trích đoạn nội dung tài liệu

Chương I TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Nếu không có phần mềm, máy tính chỉ là một thiết bị điện tử thông thường. Với sự hỗ trợ của phần mềm, máy tính có thể lưu trữ, xử lý thông tin và người sử dụng có thể gọi lại được thông tin này. Phần mềm máy tính có thể chia thành nhiều loại: chương trình hệ thống, quản lý sự hoạt động của chính máy tính. Chương trình ứng dụng, giải quyết các vấn đề liên quan đến việc sử dụng và khai thác máy tính của người sử dụng.

Hệ điều hành thuộc nhóm các chương trình hệ thống và nó là một chương trình hệ thống quan trọng nhất đối với máy tính và cả người sử dụng. Hệ điều hành điều khiển tất cả các tài nguyên của máy tính và cung cấp một môi trường thuận lợi để các chương trình ứng dụng do người sử dụng viết ra có thể chạy được trên máy tính. Trong chương này chúng ta xem xét vai trò của hệ điều hành trong trường hợp này. Một máy tính hiện đại có thể bao gồm: một hoặc nhiều processor, bộ nhớ chính, clocks, đĩa, giao diện mạng, và các thiết bị vào/ra khác.

Tất cả nó tạo thành một hệ thống phức tạp. Để viết các chương trình để theo dõi tất cả các thành phần của máy tính và sử dụng chúng một cách hiệu quả, người lập trình phải biết processor thực hiện chương trình như thế nào, bộ nhớ lưu trữ thông tin như thế nào, các thiết bị đĩa làm việc (ghi/đọc) như thế nào, lỗi nào có thể xảy ra khi đọc một block đĩa, … đây là những công việc rất khó khăn và quá khó đối với người lập trình. Nhưng rất may cho cả người lập trình ứng dụng và người sử dụng là những công việc trên đã được hệ điều hành hỗ trợ nên họ không cần quan tâm đến nữa. Chương này cho chúng ta một cái nhìn tổng quan về những gì liên quuan đến việc thiết kế cài đặt cũng như chức năng của hệ điều hành để hệ điều hành đạt được mục tiêu: Giúp người sử dụng khai thác máy tính dễ dàng và chương trình của người sử dụng có thể chạy được trên máy tính.

Chức năng và lịch sử phát triển của hệ điều hành I. Chức năng của hệ điều hành Một hệ thống máy tính gồm 3 thành phần chính: phần cứng, hệ điều hành và các chương trình ứng dụng và người sử dụng. Trong đó hệ điều hành là một bộ phận quan trọng và không thể thiếu của hệ thống máy tính, nhờ có hệ điều hành mà người sử dụng có thể đối thoại và khai thác được các chức năng của phần cứng máy tính. Có thể nói hệ điều hành là một hệ thống các chương trình đóng vai trò trung gian giữa người sử dụng và phần cứng máy tính.

Mục tiêu chính của nó là cung cấp một môi trường thuận lợi để người sử dụng dễ dàng thực hiện các chương trình ứng dụng của họ trên máy tính và khai thác triệt để các chức năng của phần cứng máy tính. Để đạt được mục tiêu trên hệ điều hành phải thực hiện 2 chức năng chính sau đây:  Giả lập một máy tính mở rộng: Máy tính là một thiết bị vi điện tử, nó được cấu thành từ các bộ phận như: Processor, Memory, I/O Device, Bus,. , do đó để đối thoại hoặc khai thác máy tính người sử dụng phải hiểu được cơ chế hoạt động của các bộ phận này và phải tác động trực tiếp vào nó, tất nhiên là bằng những con số 0,1 (ngôn ngữ máy). Điều này là quá khó đối với người sử dụng.

Để đơn giản cho người sử dụng hệ điều hành phải che đậy các chi tiết phần cứng máy tính bởi một máy tính mở rộng, máy tính mở rộng này có đầy đủ các chức năng của một máy tính thực nhưng đơn giản và dễ sử dụng hơn. Theo đó khi cần tác động vào máy tính thực người sử dụng chỉ cần tác động vào máy tính mở rộng, mọi sự chuyển đổi thông tin điều khiển từ máy tính mở rộng sang máy tính thực hoặc ngược lại đều do hệ điều hành thực hiện. Mục đích của chức năng này là: Giúp người sử dụng khai thác các chức năng của phần cứng máy tính dễ dàng và hiệu quả hơn.  Quản lý tài nguyên của hệ thống: Tài nguyên hệ thống có thể là: processor, memory, I/O device, printer, file, ., đây là những tài nguyên mà hệ điều hành dùng để cấp phát cho các tiến trình, chương trình trong quá trình điều khiển sự hoạt động của hệ thống.

Khi người sử dụng cần thực hiện một chương trình hay khi một chương trình cần nạp thêm một tiến trình mới vào bộ nhớ thì hệ điều hành phải cấp phát không gian nhớ cho chương trình, tiến trình đó để chương trình, tiến trình đó nạp được vào bộ nhớ và hoạt động được. Trong môi trường hệ điều hành đa nhiệm có thể có nhiều chương trình, tiến trình đồng thời cần được nạp vào bộ nhớ, nhưng không gian lưu trữ của bộ nhớ có giới hạn, do đó hệ điều hành phải tổ chức cấp phát bộ nhớ sao cho hợp lý để đảm bảo tất cả các chương trình, tiến trình khi cần đều được nạp vào bộ nhớ để hoạt động. Ngoài ra hệ điều hành còn phải tổ chức bảo vệ các không gian nhớ đã cấp cho các chương trình, tiến trình để tránh sự truy cập bất hợp lệ và sự tranh chấp bộ nhớ giữa các chương trình, tiến trình, đặc biệt là các tiến trình đồng thời hoạt động trên hệ thống. Đây là một trong những nhiệm vụ quan trọng của hệ điều hành.

Trong quá trình hoạt động của hệ thống, đặc biệt là các hệ thống đa người dùng, đa chương trình, đa tiến trình, còn xuất hiện một hiện tượng khác, đó là nhiều chương trình, tiến trình đồng thời sử dụng một không gian nhớ hay một tập tin (dữ liệu, chương trình) nào đó. Trong trường hợp này hệ điều hành phải tổ chức việc chia sẻ và giám sát việc truy xuất đồng thời trên các tài nguyên nói trên sao cho việc sử dụng tài nguyên có hiệu quả nhưng tránh được sự mất mát dữ liệu và làm hỏng các tập tin. Trên đây là hai dẫn chứng điển hình để chúng ta thấy vai trò của hệ điều hành trong việc quản lý tài nguyên hệ thống, sau này chúng ta sẽ thấy việc cấp phát, chia sẻ, bảo vệ tài nguyên của hệ điều hành là một trong những công việc khó khăn và phức tạp nhất. Hệ điều hành đã chi phí nhiều cho công việc nói trên để đạt được mục tiêu: Trong mọi trường hợp tất cả các chương trình, tiến trình nếu cần được cấp phát tài nguyên để hoạt động thì sớm hay muộn nó đều được cấp phát và được đưa vào trạng thái hoạt động.

 Trên đây là hai chức năng tổng quát của một hệ điều hành, đó cũng được xem như là các mục tiêu mà các nhà thiết kế, cài đặt hệ điều hành phải hướng tới. Các hệ điều hành hiện nay có các chức năng cụ thể sau đây:  Hệ điều hành cho phép thực hiện nhiều chương trình đồng thời trong môi trường đa tác vụ - Multitasking Environment. Hệ điều hành multitasking bao gồm: Windows NT, Windows 2000, Linux và OS/2. Trong hệ thống multasking hệ điều hành phải xác định khi nào thì một ứng dụng được chạy và mỗi ứng dụng được chạy trong khoản thời gian bao lâu thì phải dừng lại để cho các ứng dụng khác được chạy.

 Hệ điều hành tự nạp nó vào bộ nhớ - It loads itself into memory: Quá trình nạp hệ điều hành vào bộ nhớ được gọi là quá trình Booting. Chỉ khi nào hệ điều hành đã được nạp vào bộ nhớ thì nó mới cho phép người sử dụng giao tiếp với phần cứng. Trong các hệ thống có nhiều ứng dụng đồng thời hoạt động trên bộ nhớ thì hệ điều hành phải chịu trách nhiệm chia sẻ không gian bộ nhớ RAM và bộ nhớ cache cho các ứng dụng này.  Hệ điều hành và API: Application Programming Interface: API là một tập các hàm/thủ tục được xây dựng sẵn bên trong hệ thống, nó có thể thực hiện được nhiều chức năng khác nhau như shutdown hệ thống, đảo ngược hiệu ứng màn hình, khởi động các ứng dụng, … Hệ điều hành giúp cho chương trình của người sử dụng giao tiếp với API hay thực hiện một lời gọi đến các hàm/thủ tục của API.

 Nạp dữ liệu cần thiết vào bộ nhớ - It loads the requied data into memory: Dữ liệu do người sử dụng cung cấp được đưa vào bộ nhớ để xử lý. Khi nạp dữ liệu vào bộ nhớ hệ điều hành phải lưu lại địa chỉ của bộ nhớ nơi mà dữ liệu được lưu ở đó. Hệ điều hành phải luôn theo dõi bản đồ cấp phát bộ nhớ, nơi dữ liệu và chương trình được lưu trữ ở đó. Khi một chương trình cần đọc dữ liệu, hệ điều hành sẽ đến các địa chỉ bộ nhớ nơi đang lưu trữ dữ liệu mà chương trình cần đọc để đọc lại nó.

 Hệ điều hành biên dịch các chỉ thị chương trình - It interprets program instructions: Hệ điều hành phải đọc và giải mã các thao tác cần được thực hiện, nó được viết trong chương trình của người sử dụng. Hệ điều hành cũng chịu trách nhiệm sinh ra thông báo lỗi khi hệ thống gặp lỗi trong khi đang hoạt động.  Hệ điều hành quản lý tài nguyên - It managers resources: Nó đảm bảo việc sử dụng thích hợp tất cả các tài nguyên của hệ thống như là: bộ nhớ, đĩa cứng, máy in, … I. Lịch sử phát triển của hệ điều hành I.

Thế hệ 1 (1945 - 1955): Vào những năm 1950 máy tính dùng ống chân không ra đời. Ở thế hệ này mỗi máy tính được một nhóm người thực hiện, bao gồm việc thiết kế, xây dựng chương trình, thao tác, quản lý,. Ở thế hệ này người lập trình phải dùng ngôn ngữ máy tuyệt đối để lập trình. Khái niệm ngôn ngữ lập trình và hệ điều hành chưa được biết đến trong khoảng thời gian này.

Thế hệ 2 (1955 - 1965): Máy tính dùng bán dẫn ra đời, và được sản xuất để cung cấp cho khách hàng. Bộ phận sử dụng máy tính được phân chia rõ ràng: người thiết kế, người xây dựng, người vận hành, người lập trình, và người bảo trì. Ngôn ngữ lập trình Assembly và Fortran ra đời trong thời kỳ này. Với các máy tính thế hệ này để thực hiện một thao tác, lập trình viên dùng Assembly hoặc Fortran để viết chương trình trên phiếu đục lỗ sau đó đưa phiếu vào máy, máy thực hiện cho kết qủa ở máy in.

Hệ thống xử lý theo lô cũng ra đời trong thời kỳ này.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Giáo Trình Hệ Điều Hành Phần 1 của tác giả Nguyễn Kim Tuấn là một tài liệu quý giá cho những ai muốn tìm hiểu sâu về hệ điều hành. Tài liệu này không chỉ cung cấp kiến thức cơ bản về cấu trúc và chức năng của hệ điều hành, mà còn giúp người đọc nắm vững các khái niệm quan trọng như quản lý tài nguyên, tiến trình và bộ nhớ. Đặc biệt, giáo trình còn đưa ra các ví dụ thực tiễn, giúp người học dễ dàng áp dụng lý thuyết vào thực tế.

Để mở rộng thêm kiến thức về lĩnh vực này, bạn có thể tham khảo thêm các tài liệu liên quan như Giáo trình hệ điều hành nghề tin học ứng dụng cao đẳng, nơi cung cấp cái nhìn tổng quan về hệ điều hành trong môi trường giáo dục cao đẳng. Bên cạnh đó, Giáo trình hệ điều hành windows nghề tin học văn phòng sẽ giúp bạn hiểu rõ hơn về hệ điều hành Windows 10, một trong những hệ điều hành phổ biến nhất hiện nay. Cuối cùng, Giáo trình hệ điều hành phân tán sẽ mở ra cho bạn những kiến thức về hệ điều hành phân tán, một lĩnh vực đang ngày càng trở nên quan trọng trong công nghệ thông tin.

Những tài liệu này không chỉ giúp bạn củng cố kiến thức mà còn mở rộng hiểu biết về các khía cạnh khác nhau của hệ điều hành, từ đó nâng cao khả năng ứng dụng trong thực tiễn.