Giáo trình Hệ điều hành - Chương 1: Tổng quan về hệ điều hành - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM
1.1 Định nghĩa sơ lược về hệ điều hành 1.2 Lịch sử phát triển hệ điều hành 1.3 Phân loại các hệ điều hành 1.4 Nhắc lại phần cứng máy tính 1.5 Các khái niệm cơ bản về hệ điều hành 1.6 Các lời gọi dịch vụ HĐH "System call" 1.7 Cấu trúc hệ điều hành |
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ điều hành - Chương 1: Tổng quan về hệ điều hành - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- giao_trinh_he_dieu_hanh_chuong_1_tong_quan_ve_he_dieu_hanh_k.pdf
Nội dung text: Giáo trình Hệ điều hành - Chương 1: Tổng quan về hệ điều hành - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM
- Hệ điều hành là gì? Hai định nghĩa được nhiều người đồng ý nhất : 1. HĐH là 1 máy tính luận lý mở rộng (extended machine) : đây là góc nhìn từ ngoài vào. dấu các chi tiết khó, phiền phức cần thực hiện. cung cấp cho người dùng 1 máy luận lý dễ dùng hơn và độc lập với phần cứng (thông qua các lệnh system calls) 2. HĐH là 1 hệ quản lý các tài nguyên của máy : đây là góc nhìn bên trong Phân chia việc dùng tài nguyên theo thời gian, mỗi chương trình dùng tài nguyên trong 1 khoảng thời gian rồi giao lại cho chương trình khác dùng (CPU, máy in). Phân chia tài nguyên theo không gian : mỗi chương trình dùng 1 vùng nhỏ tài nguyên (bộ nhớ, đĩa). Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 3 1.2 Lịch sử hệ điều hành Vì HĐH nằm trên cấp phần cứng nên lịch sử HĐH gắn liền với lịch sử phát triển phần cứng máy tính. Ở đây chúng ta tổng kết lại lịch sử phát triển máy tính số gồm 4 thế hệ sau : 1. First generation 1945 - 1955 vacuum tubes, plug boards Inventors : Aiken (USA), Zuse (Germany) chưa cần HĐH 2. Second generation 1955 - 1965 transistors batch systems 3. Third generation 1965 — 1980 ICs (Integrated Circuits) multiprogramming, spooling, time-sharing 4. Fourth generation 1980 — present LSI (Large Scale Integration) Hệ điều hành cho PC Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 4 2
- Lịch sử hệ điều hành - Thế hệ thứ 3 OS/360 củaIBM MULTICS (MIT, Bell Labs) (Các vùng củabộ nhớ) Multiprogramming system Spooling (Simultaneous Peripheral Operation On Line) Time sharing Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 7 Lịch sử hệ điều hành - Thế hệ thứ 4 1974, first microcomputer Intel 8080, first general-purposed 8-bit CPU floppy disk CP/M (Control Program for Microcomputers) early 1980s, IBM PC DOS (Disk Operating System) MS-DOS (Microsoft Disk Operating System) 1983, IBM PC/AT (Intel 80286 CPU) 1985-1995, Windows on top of MS-DOS Pentium PC UNIX, Linux, Windows 2000 X Windows system (UNIX, Linux) Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 8 4
- Nhắc lại phần cứng máy tính - Processors Special registers Program counter Stack pointer Program Status Word (PSW) o kernel mode o user mode TRAP instruction System call Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 11 Nhắc lại phần cứng máy tính - Memory Phân cấp điển hình các loại bộ nhớ các giá trị chỉ có ý nghĩa xấp xỉ Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 12 6
- Nhắc lại phần cứng máy tính - Bus IDE bus SCSI bus Cấu trúc của một hệ thống Pentium Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 15 1.5 Các ý niệm chủ đạo trong hệ điều hành Các tài nguyên của máy Quá trình (process) Lập thời biểu cho các quá trình chạy đồng thời (Scheduler) Cho phép các quá trình đồng thời truy xuất chung tài nguyên Deadlock và giải quyết Quảnlýbộ nhớ (memory management) Hệ thống file (tập tin) Giao tiếp với thế giới ngoài (input/output) An ninh dữ liệu (security) The shell Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 16 8
- Các ý niệm chủ đạo trong hệ điều hành - Scheduler Để quản lý việc chạy các process đơn giản và dễ dàng nhất, người ta đã cho chúng chạy tuần tự, mỗi lần cho 1 chương trình chạy. Chỉ khi chương trình chạy xong (dù lâu hay mau) thì ta mới cho chương trình khác chạy, Hầu hết các chương trình đều cần giao tiếp với người (hay I/O nói chung). Việc giao tiếp với I/O thường chậm hơn rất nhiều so với tốc độ của CPU, nghĩa là lúc chương trình dừng chờ I/O (chờ nhập phím), CPU phải ngủ chờ mất thời gian và hiệu suất làm việc của nó. Để sử dụng CPU hiệu quả hơn, người ta cố gắng cho nhiều chương trình chạy đồng thời. Cách thông thường nhất là dùng kỹ thuật phân chia thời gian (Time sharing) : chia trục thời gian làm nhiều khe nhỏ (quantum), cho mỗi chương trình chạy 1 khe nhỏ rồi dừng nó lại, chọn chương trình khác chạy trong khe nhỏ kế tiếp, Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 19 Các ý niệm chủ đạo trong hệ điều hành - Scheduler Module của HĐH quản lý việc phân chia thời gian cho các chương trình chạy được gọi là trình lập thời biểu (Scheduler). Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 20 10
- Vấn đề truy xuất 1 tài nguyên dùng chung Đoạn lệnh truy Đoạn lệnh truy xuất các biến xuất các biến cục bộ cục bộ Critical session 1 resource 1 Critical session 2 Đoạn lệnh truy Đoạn lệnh truy xuất các biến xuất các biến cục bộ cục bộ critical session 2 critical session 1 resource 2 Đoạn lệnh truy Đoạn lệnh truy xuất các biến xuất các biến cục bộ cục bộ Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 23 Vấn đề truy xuất 1 tài nguyên dùng chung Để tránh tình trạng "race", ta sẽ loại trừ tương hỗ (Mutual Exclusion) các vùng code "critical session" truy xuất cùng 1 tài nguyên dùng chung của các process, nghĩa là không cho các vùng CS này chạy đồng thời mà phải tuần tự hóa việc chạy của chúng. Vì vùng CS thường rất hiếm trong chương trình và rất ngắn, nên việc tuần tự hóa việc chạy chúng không ảnh hưởng nhiều đến việc chạy đồng thời các process tương ứng. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 24 12
- Quản lý bộ nhớ trong hệ đơn chương Trong hệ đơn chương : 3 cách tổ chức bộ nhớ gồm vùng nhớ HĐH và vùng nhớ của 1 process đang chạy. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 27 Quản lý bộ nhớ - Phân vùng tĩnh Chia bộ nhớ ra nhiều partition với độ lớn khác nhau để chạy nhiều process đòi hỏi kích thước khác nhau. (a) mỗi partition có hàng chờ các process đòi hỏi cùng dung lượng nhớ. (b) dùng 1 hàng chờ cho mọi process Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 28 14
- Quản lý bộ nhớảo (Virtual memory Man.) Việc swap toàn vùng nhớ của 1 process ra/vào đĩa gặp khá nhiều phiền hà do kích thước của mỗi process rất khác nhau. Tuy nhiên ý tưởng này dẫn đến cơ chế quản lý bộ nhớ tinh vi mà hiện nay các HĐH đều dùng, đólà cơ chế quản lý bộ nhớảo. Ý tưởng cơ bản là tại từng thời điểm chương trình chạy, ta không cần nội dung của toàn chương trình và dữ liệu của nó trong bộ nhớ, ta chỉ cần nội dung của lệnh đang cần chạy và dữ liệu mà lệnh này cần truy xuất, mọi thứ khác có thể để trên đĩa. Như vậy để chạy được 1 process, ta chỉ cần 1 vùng rất nhỏ bộ nhớ bất chấp kích thước của process đólớn hay nhỏ. Có 3 kỹ thuật quản lý bộ nhớảo : quản lý theo phân trang, quản lý theo phân đoạn và quản lý theo phân đoạn và phân trang. Chi tiết sẽ được trình bày trong môn HĐH. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 31 Quản lý bộ nhớảo (Virtual memory Man.) Mỗi process có bảng quản lý trang, bảng này chứa thông tin về việc ánh xạ từng trang ảo của process vào từng trang thật bộ nhớ tại từng thời điểm theo thời gian. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 32 16
- Hệ thống file (File System) disk luận lý cấp #1 là không gian dữ liệu 1 chiều : disk = danh sách nhiều đơn vị chứa tin có độ dài cố định, mỗi đơn vị được gọi là cluster (hay block, sector luận lý). Độ dài của cluster cần độc lập với đĩa vật lý. Ở cấp độ này, muốn truy xuất 1 cluster, ta chỉ cần xác định 1 chỉ số của nó. Tuy nhiên, dữ liệu có nghĩa cần lưu trên đĩa thường có kích thước rất khác nhau ⇒ cần nhiều cluster mới chứa đủ. Nếu việc quản lý 1 dữ liệu có nghĩa được chứa trên bao nhiêu cluster đĩa và chỉ số cụ thể là gì được giao cho người dùng thì họ sẽ gặp rất nhiều rắc rối ⇒ cần 1 giao tiếp sử dụng khác để sử dụng đĩa dễ dàng hơn. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 35 Hệ thống file (File System) disk luận lý cấp #2 là không gian dữ liệu 1 chiều : disk = danh sách nhiều đơn vị chứa tin có độ dài thay đổi theo yêu cầu của người dùng, mỗi đơn vị được gọi là file và được nhận dạng bằng tên gợi nhớ chứ không phải là chỉ số khó nhớ. Ở cấp độ này, muốn truy xuất 1 file, ta chỉ cần xác định tên gợi nhớ của nó. Dù dữ liệu có nghĩa cần lưu trên đĩa thường có kích thước rất khác nhau, nhưng chỉ cần 1 file là đủ để lưu 1 dữ liệu có nghĩa ⇒ Việc quản lý dữ liệu trên đĩa trở nên dễ dàng hơn nhiều so với trước. Tuy nhiên vì 1 đĩa chứa 1 số rất lớn file (hàng triệu file) ⇒ nếu dùng không gian phẳng để tổ chức các file thì cũng còn nhiều khó khăn trong việc đặt tên file, việc phân biệt các file của chương trình nào, của người nào ⇒ cần 1 giao tiếp sử dụng khác để sử dụng đĩa dễ dàng hơn nữa. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành . Trường ĐH Bách Khoa Tp.HCM Slide 36 18
- Thí dụ về hệ thống file Cây thứ bậc của ổ c: \ Windows AudioFile VideoFile config.sys System Fonts USAFilm ChinaFilm VNFilm win.com arial.ttf Dòng đời.mpg Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 39 Đường dẫn tuyệt đối và tương đối (tt) Xét cây thứ bậc của ổ c: trên slide trước, đường dẫn tuyệt đối sau sẽ nhận dạng chính xác file arial.ttf trong thư mục 'Fonts' : c:\Windows\Fonts\arial.ttf Nếu thư mục working của chương trình hiện là c:\Windows\Fonts thì ta có thể dùng đường dẫn tương đối sau đây để xác định file arial.ttf : arial.ttf Đường dẫn tuyệt đối thường dài hơn đường dẫn tương đối nhưng nó luôn có giá trị bất chấp ứng dụng đang ở thư mục working nào. Đường dẫn tương đối thường gọn hơn (đa số chỉ chứa tên file cần truy xuất vì ứng dụng sẽ thiết lập thư mục working là thư mục chứa các file mà ứng dụng truy xuất) nhưng chỉ có giá trị với 1 thư mục working cụ thể. Trong 1 vài trường hợp đặc biệt, ta phải dùng đường dẫn tương đối ngay cả nó dài và phức tạp hơn đường dẫn tuyệt đối! Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 40 20
- 1.6 Các lời gọi dịch vụ HĐH "System call" HĐH cung cấp 1 giao tiếp sử dụng được gọi là "System Call", mỗi system call là 1 hàm thực hiện 1 chức năng xác định. Thường chỉ có code chương trình mới gọi System call, còn người dùng đầu cuối không thể gọi system call trực tiếp được. Người dùng đầu cuối sử dụng các dịch vụ HĐH gián tiếp thông qua từng ứng dụng cụ thể. Thí dụ để thực hiện các chức năng quản lý hệ thống file, người dùng trên Windows sẽ dùng trình "Windows Explorer", thông qua giao tiếp sử dụng đồ họa trực quan của chương trình, người dùng sẽ thực hiện các thao tác quản lý hệ thống file rất dễ dàng (duyệt file, tạo/hiệu chỉnh/xóa file/thư mục, di chuyển file/thư mục từ nơi này đến nơi khác, ) Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 43 Các lời gọi dịch vụ HĐH "System call" Gọi system call gần giống với gọi hàm bình thường, sự khác biệt lớn nhất là có sự thay đổi quyền truy xuất tài nguyên : trước khi gọi system call, các lệnh của chương trình ứng dụng có quyền thấp. khi gọi system call, quyền sẽ thay đổi thành rất cao (quyền hệ thống) để đoạn code của hàm "system call" có thể thực thi được chức năng đặc biệt của mình. Sau khi gọi system call xong, quyền truy xuất được trả về mức cũ (thấp) của ứng dụng để đoạn code đi theo sau lệnh gọi system call chạy như cũ. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 44 22
- 1.7 Kiến trúc của HĐH Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 47 Kiến trúc phân cấp Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 48 24
- Kiến trúc client-server Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 51 Kiến trúc client-server Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 1 : Tổng quát về hệ điều hành Trường ĐH Bách Khoa Tp.HCM Slide 52 26