Bài giảng Hệ điều hành - Chương 1: Tổng quan (Overview) - Ngô Hữu Dũng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 1: Tổng quan (Overview) - Ngô Hữu Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_he_dieu_hanh_chuong_1_tong_quan_overview_ngo_huu_d.pdf
Nội dung text: Bài giảng Hệ điều hành - Chương 1: Tổng quan (Overview) - Ngô Hữu Dũng
- HỆ ĐIỀU HÀNH (OPERATING SYSTEM CONCEPTS) Wiley - Operating System Concepts(Silberschatz).9th GV TS. Ngô Hữu Dũng Email ngohuudung@iuh.edu.vn Site ngohuudung.blogspot.com
- Giới thiệu môn học Mục tiêu môn học Vai trò của HĐH Nguyên lý hoạt động của HĐH đa nhiệm Nội dung Chương 1: Tổng quan (Overview) Chương 2: Quản lý tiến trình (Process Management) Chương 3: Quản lý bộ nhớ (Memory Management) Chương 4: Quản lý I/O (I/O Management) Chương 5: Quản lý hệ thống file (Storage Management) 1.2
- Giới thiệu môn học Nội dung Số tiết 1 Tổng quan 3 2 Quản lý tiến trình 9 3 Quản lý bộ nhớ 6 Thi GK 4 Quản lý I/O 3 5 Quản lý hệ thống file 6 6 Ôn tập 3 Thi CK 30 1.3
- Giới thiệu môn học Giáo trình / TLTK : 1. Silberschatz, Galvin and Gagne , Operating System Concepts –8th Edition 2. Ninh Xuân Hải, Hùynh Trọng Thưa. Giáo trình Hệ điều hành, Học viện CN Bưu chính Viễn thông TP HCM , 2008 3. Lê Khắc Nhiên Ân, Giáo trình Nhập môn Hệ điều hành, ĐH KHTN TP HCM 4. Trần Hạnh Nhi, Giáo trình Hệ điều hành nâng cao, ĐH KHTN TP HCM 1.4
- Giới thiệu môn học Kiểm tra và đánh giá : Kiểm tra giữa kỳ (lý thuyết) Thi kết thúc môn (lý thuyết) Tiểu luận (2) Chú ý Học sinh không được dự thi kết thúc học phần và phải học lại nếu nghỉ học quá 20% số tiết quy định Học sinh vắng mặt trong các lần kiểm tra mà không có lý do chính đáng thì phải nhận điểm 0 1.5
- Overview CHƯƠNG 1: GIỚI THIỆU 1.6
- Nội dung Tổ chức của Hệ thống máy tính Khái niệm Hệ điều hành Hoạt động của hệ thống máy tính Các chức năng của Hệ điều hành Các dịch vụ của Hệ điều hành Một số cấu trúc Hệ điều hành 1.7
- Nội dung Khái niệm Hệ điều hành Tổ chức của Hệ thống máy tính 4 thành phần interrupt Hoạt động của Hệ điều hành Dual mode và chế độ đặc quyền dành cho hdh Các chức năng của Hệ điều hành Quản lý tiến trình, memory, lưu trữ, I/O , bảo vệ và an ninh Các dịch vụ của Hệ điều hành Cơ chế truy suất các dịch vụ - system calls Một số cấu trúc Hệ điều hành Giới thiệu cấu trúc của MS DOS, Unix 1.8
- Cấu trúc của hệ thống máy tính Hệ thống máy tính có thể được chia thành 4 phần chính: Phần cứng (Hardware) CPU, memory, thiết bị I/O Hệ điều hành (Operating system) Phần mềm điều khiển và điều phối việc sử dụng phần cứng giữa các ứng dụng và người dùng Các chương trình ứng dụng (Application programs) Các phần mềm: xử lý văn bản, trình biên dịch, trình duyệt web, hệ thống quản trị CSDL, game, Người dùng (Users) Con người, máy móc, các máy tính khác 1.9
- 4 thành phần chính của 1 hệ thống máy tính 1.10
- Hệ điều hành là gì? Một chương trình hoạt động trung gian giữa người dùng và phần cứng máy tính Các mục tiêu của HĐH Thực thi các chương trình ứng dụng Tạo sự thuận tiện, dễ dàng cho người sử dụng hệ thống máy tính Sử dụng một cách hiệu quả phần cứng máy tính 1.11
- Tổ chức của một hệ thống máy tính 1.12
- Hoạt động của một hệ thống máy tính Hoạt động xử lý của Bộ xử lý trung tâm (CPU) CPU đọc/ghi dữ liệu với memory, qua đường truyền bus Các bộ điều khiển thiết bị (device controllers) trực tiếp điều khiển hoạt động của các thiết bị I/O Mỗi bộ điều khiển có một local buffer lưu dữ liệu đọc từ thiết bị hay ghi ra thiết bị Hoạt động I/O là hoạt động đọc/ghi dữ liệu giữa thiết bị và local buffer Bộ điều khiển thiết bị sẽ thông báo với CPU khi hoàn tất thao tác I/O bằng một ngắt (interrupt) 1.13
- Hoạt động của một hệ thống máy tính Hoạt động xử lý của CPU và hoạt động I/O là song song Dữ liệu sau khi chuyển từ thiết bị tới local buffer được CPU điều khiển để ghi từ local buffer vào memory (Tương tự với chiều ngược lại) 1.14
- Hoạt động của một hệ thống máy tính Ngắt (interrupt) Mỗi thiết kế máy tính có cơ chế ngắt (interrupt) riêng, nhưng có một số chức năng chung Sự xuất hiện của 1 sự kiện được thông báo cho OS dưới dạng interrupt Phần cứng gởi tín hiệu (ngắt) tới CPU, thường thông qua các đường truyền bus Phần mềm tạo ra ngắt bằng cách thực hiện một system call Chương trình đang thi hành bị tạm dừng khi một ngắt phát sinh Interrupt chuyển điều khiển tới trình phục vụ ngắt tương ứng (interrupt service routine), thông qua interrupt vector – nơi chứa địa chỉ của tất cả các service routines OS lưu lại trạng thái của CPU (các thanh ghi và program counter) trước khi xử lý ngắt 1.15
- Hoạt động của một hệ thống máy tính Ngắt (interrupt) 1.16
- Hoạt động của một hệ thống máy tính Hoạt động I/O: được thiết kế theo 1 trong 2 dạng Khi thao tác I/O bắt đầu, CPU tạm ngưng xử lý cho đến khi nhận một ngắt báo hiệu thao tác I/O đã hoàn tất Hoặc, khi thao tác I/O bắt đầu, CPU tiếp tục xử lý các lệnh của chương trình mà không chờ thao tác I/O hoàn tất Khi I/O hoàn tất, một ngắt được phát sinh báo cho CPU, CPU tạm ngưng xử lý, chuyển sang xử lý ngắt 1.17
- Hoạt động của một hệ thống máy tính Hoạt động I/O DMA (Direct Memory Access) Bộ điều khiển thiết bị truyền các block dữ liệu từ buffer tới memory mà không cần sự điều khiển của CPU – CPU không tham gia vào quá trình điều khiển chuyển dữ liệu giữa local buffer và memory – Một ngắt được phát sinh báo cho CPU khi 1 block dữ liệu đã được ghi vào memory 1.18
- Hoạt động của một hệ thống máy tính Tổ chức lưu trữ (Storage) Main memory (random-access memory or RAM) Thiết bị lưu trữ duy nhất mà CPU có thể truy xuất trực tiếp Nhỏ để lưu trữ tất cả các chương trình và dữ liệu Là thiết bị lưu trữ không ổn định: nội dung có thể mất khi tắt nguồn Các thiết bị lưu trữ thứ cấp (secondary storages) Cung cấp khả năng lưu trữ lớn, bền vững Có nhiều loại: magnetic disk, 1.19
- Hoạt động của một hệ thống máy tính Cấu trúc phân cấp của hệ thống lưu trữ Sự khác biệt Tốc độ Giá Tính bền vững Caching Dữ liệu được chuyển từ bộ nhớ có tốc độ chậm tới bộ nhớ có tốc độ cao hơn 1.20
- Hoạt động của một hệ thống máy tính Cấu trúc phân cấp của hệ thống lưu trữ 1.21
- Kiến trúc hệ thống máy tính Mô hình hoạt động của Modern Computer 1.22
- Kiến trúc hệ thống máy tính Single-Processor Systems Multiprocessor Systems (parallel systems or multicore systems) Lợi thế Tăng thông lượng Quy mô kinh tế Tăng độ tin cậy Hai dạng multiple-processing systems Asymmetric (không đối xứng) multiprocessing Symmetric (đối xứng) multiprocessing (SMP) 1.23
- Kiến trúc hệ thống máy tính Multiprocessing (đa tiến trình) thêm CPU để tăng sức mạnh tính toán của máy tính Nếu CPU có tích hợp bộ điều khiển bộ nhớ thêm CPU cũng làm tăng số lượng bộ nhớ địa chỉ trong hệ thống 1.24
- Kiến trúc hệ thống máy tính 1.25
- Quá trình khởi động của máy tính Một chương trình – bootstrap program , được chạy vào lúc bật máy Nằm trong ROM , hay EPROM Kiểm tra hoạt động của các thiết bị nhập/xuất căn bản Nạp hệ điều hành vào bộ nhớ và thực thi hệ điều hành Hệ điều hành hoàn tất khởi động (thành công) là thời điểm : Quá trình khởi động máy kết thúc Người dùng bắt đầu quá trình sử dụng máy tính thông qua các chương trình ứng dụng 1.26
- Cấu trúc hệ điều hành Multiprogramming Một người dùng không thể chiếm giữ CPU và thiết bị I/O toàn thời gian Tổ chức công việc (code and data) để CPU luôn có 1 công việc để xử lý tăng khả năng sử dụng CPU Tất cả các công việc trong hệ thống được lưu trữ trong memory Một công việc được chọn và chạy theo kế hoạch công việc (job scheduling) Nếu phải chờ, OS sẽ chuyển sang thực hiện công việc khác 1.27
- Multiprogramming P1 Run Wait Run Wait Wait Wait P2 Wait Run Run P3 Wait Run Wait Run Wait P1, P2, P3 Run Run Run Wait Run Run Run Wait 1.28
- Cấu trúc hệ điều hành Time sharing (or multi tasking) Phần mở rộng logic của multiprogramming CPU thực hiện nhiều công việc bằng cách chuyển đổi giữa chúng. Khi việc chuyển đổi xảy ra thường xuyên người dùng có thể tương tác với các chương trình trong khi chúng đang chạy Reponse time (thời gian phản hồi) nên < 1second Mỗi người dùng có ít nhất một chương trình đang xử lý trong memory process Khi nhiều công việc sẵn sàng để chạy cùng lúc CPU scheduling Khi các tiến trình không khớp với memory, swapping di chuyển chúng ra-vào để chạy Virtual memory cho phép thực hiện các tiến trình không hoàn toàn nằm trong memory 1.29
- Time sharing (or multi tasking) P1 P2 P3 Normal Time interval P1 Completed I/O Started by P1 1.30
- Hoạt động của hệ điều hành Đáp ứng các ngắt được gởi đến hardware và software Quản lý cơ chế routine đáp ứng ngắt Cung cấp các system call đáp ứng ngắt từ software Dual mode: phân biệt việc thực thi OS code (chức năng hệ thống) với việc thực thi user program code (chức năng của user program) nhằm bảo vệ OS khỏi ảnh hưởng lỗi của user program Chương trình của người dùng hoạt động ở user mode Hệ điều hành hoạt động ở kernel mode (hay supervisor mode, system mode, privileged mode) 1.31
- Hoạt động của hệ điều hành Chuyển từ user mode sang kernel mode Mode bit được add vào hardware để xác định mode hiện tại: kernel (0), user (1) Dựa vào mode bit ta có thể phân biệt 1 task được xử lý bởi hệ điều hành (kernel mode) hay bởi ứng dụng người dùng (user mode) 1.32
- Hoạt động của hệ điều hành Timer Được thiết lập để ngắt máy tính sau một khoảng thời gian xác định (vd: 1/60 second) hoặc một khoảng biến thiên thời gian (vd: 1milisec 1sec) Tránh user program chạy quá lâu bằng cách đơn giản là đếm khoảng thời gian mà 1 chương trình được phép chạy 1.33
- Chức năng của hệ điều hành Quản lý tiến trình Quản lý bộ nhớ Quản lý lưu trữ Quản lý I/O Bảo vệ và an ninh 1.34
- Quản lý tiến trình Tiến trình là chương trình đang thực thi Tiến trình cần các tài nguyên để hoàn thành nhiệm vụ của nó CPU, memory, I/O, files Dữ liệu Khi tiến trình kết thúc, hệ điều hành thu hồi lại các tài nguyên đã cấp Mỗi tiến trình có 1 bộ đếm chỉ ra vị trí của lệnh kế tiếp sẽ được thực thi Tiến trình thực thi từng lệnh, tuần tự, cho đến khi hoàn tất 1.35
- Quản lý tiến trình Hệ điều hành chịu trách nhiệm thực hiện: Tạo và xóa các tiến trình Tạm ngưng hay tiếp tục chạy các tiến trình Cung cấp các cơ chế để đồng bộ tiến trình Cung cấp các cơ chế để giao tiếp giữa các tiến trình Cung cấp các cơ chế để kiểm soát deadlock 1.36
- Quản lý bộ nhớ Bộ nhớ là nơi chứa tiến trình CPU sẽ đọc và thực thi tuần tự, từng lệnh, từ memory Quản lý bộ nhớ bao gồm Quản lý từng phần của bộ nhớ: đang được sử dụng hay không? Được sử dụng bởi tiến trình nào? Quyết định tiến trình và data di chuyển vào và ra khỏi bộ nhớ Cấp phát và thu hồi không gian bộ nhớ khi cần 1.37
- Quản lý lưu trữ Hệ điều hành cung cấp một khung nhìn logic về lưu trữ thông tin Trừu tượng các thuộc tính vật lý thành đơn vị lưu trữ logic “file” Hệ điều hành thực hiện quản lý File System Các file được đặt vào các thư mục Kiểm soát quyền truy suất vào file system (WHO can access WHAT) Cung cấp công cụ để user thực hiện các thao tác trên file và thư mục Quản lý ánh xạ file với vị trí lưu trữ trên thiết bị lưu trữ Back up file 1.38
- Quản lý I/O Một trong những mục đích của hệ điều hành là che dấu sự phức tạp của các thiết bị phần cứng Hệ điều hành chịu trách nhiệm Quản lý buffering, caching, spooling Cung cấp trình điều khiển thiết bị General devide-driver Driver cho các thiết bị phần cứng đặc biệt 1.39
- Bảo vệ và An ninh Bảo vệ Kiểm soát truy xuất của các tiến trình và người dùng tới tài nguyên của hệ thống máy tính An ninh Bảo vệ hệ thống chống lại những tấn công từ bên trong và bên ngoài (worm, virus, DOS, ) 1.40
- Các dịch vụ của hệ điều hành Dưới góc độ người dùng: HĐH cung cấp các chức năng hữu ích: Giao diện người dùng: CLI (Command Line Interface) hay GUI (Graphic User Interface), Batch Thực thi chương trình Cho phép chương trình giao tiếp với thiết bị I/O Quản lý dữ liệu người dùng Trao đổi thông tin giữa các chương trình trong 1 máy tính, và giữa các máy tính với nhau Phát hiện lỗi và cung cấp đáp ứng lỗi 1.41
- Các dịch vụ của hệ điều hành Dưới góc độ người dùng: HĐH cung cấp các chức năng hữu ích: Quản lý phân phối tài nguyên: multi-user, multitasking Accounting: ghi nhận thông tin sử dụng hệ thống của user Đảm bảo mọi truy xuất sử dụng tài nguyên hệ thống là được kiểm soát Bảo vệ hệ thống khỏi sự truy xuất và sử dụng không được phép 1.42
- Các dịch vụ của hệ điều hành 1.43
- Giao diện người dùng HĐH Giao diện người dùng Giao diện lập trình OS cung cấp dịch vụ cho các chương trình ứng dụng qua các system call Các system call có thể được gọi thông qua các API (Application Program Interface) Các system calls cung cấp các dịch vụ Process control File management Device management Information maintance Communication Protection 1.44
- Giao diện người dùng HĐH 1.45
- System Calls System calls: phương thức gọi một dịch vụ do OS cung cấp Các dạng system calls: Process control: (end, abort; load, execute; create process, terminate process; get process attributes, set process attributes; wait for time; wait event, signal event; allocate and free memory File management (create file, delete file; open, close; read, write, reposition; get file attributes, set file attributes) Device management (request device, release device; read, write, reposition; get device attributes, set device attributes; logically attach or detach devices) Information maintenance Communication Protection 1.46
- Example of System Calls 1.48
- System Call Implementation 1.49
- API – System call – OS relationship 1.50
- Standard C Library Example Trong nhiều phiên bản Unix/Linux OS, thư viện C chuẩn là một phần của system call interface C program invoking printf() library call, which calls write() system call 1.51
- Các cấu trúc hệ điều hành Simple structure: MS-DOS MS-DOS cung cấp hầu hết các chức năng trong không gian ít nhất (do giới hạn phần cứng vào đầu 80’) Không chia thành các modules Giao diện và các tầng chức năng không tách biệt MS-DOS là hệ thống nhỏ, đơn giản và hệ thống giới hạn single user, single tasking, command line interface 1.52
- Các cấu trúc hệ điều hành MS-DOS Layer Structure 1.53
- Các cấu trúc hệ điều hành UNIX Giới hạn bởi chức năng phần cứng, UNIX OS nguyên thủy giới hạn cấu trúc. UNIX OS gồm 2 phần tách biệt System programs The kernel – Bao gồm tất cả những gì bên dưới system call interface và bên trên physical hardware – Cung cấp file system, memory management, và các chức năng khác của hệ điều hành 1.54
- Các cấu trúc hệ điều hành UNIX 1.55
- Hệ điều hành song song (Parallel OS) Vài ứng dụng có các công việc có thể thực hiện đồng thời Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính Có thể tăng tốc độ bằng cách chạy các công việc trên các bộ xử lý khác nhau song song đồng thời Cần HĐH và ngôn ngữ lập trình hỗ trợ chia nhỏ công việc thành các hành động song song Cần HĐH hỗ trợ đồng bộ và truyền thông nhanh Nhiều kiến trúc song song khác nhau Khả năng thực thi và tính mở rộng 1.56
- HĐH thời gian thực (Real-Time OS) Thực thi các ứng dụng có thời hạn cho trước Hard real-time system Hệ thống điều khiển bay, các hệ thống điều khiển công nghiệp, v.v Gây thảm họa nếu ta trễ hạn Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên Soft real-time system Ứng dụng multimedia Có thể gây khó chịu nhưng không đến nỗi thảm họa nếu bị quá hạn đôi chút! Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên Thử thách ở chỗ là khi hệ thống quá tải 1.57
- HĐH phân tán (Distributed OS) Clustering Dùng nhiều máy nhỏ để phục vụ các công việc lớn Rẻ hơn là dùng một máy tính lớn Độ tin cậy cao hơn, tăng khả năng mở rộng Hệ thống phân tán trong khu vực rộng Cho phép sử dụng tài nguyên phân tán V.d. sử dụng PC để truy cập Web Không cần mang nhiều thông tin cần thiết theo mình Cần HĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tán V.d., hệ lưu trữ tập tin trên mạng Quan tâm tính thực thi (mặc dù tăng tốc không phải là mục tiêu của HĐH này), độ tin cậy cao, sử dụng nguồn tài nguyên đa dạng 1.58
- HĐH nhúng (Embedded OS) Phát triển rộng khắp Hiện thời, ĐTDĐ và PDAs Tương lai, các thiết bị tính toán ở mọi nơi Đặc tính Tài nguyên hạn hẹp: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v. Chúng ta cần chạy những ứng dụng mạnh hơn! Làm sao ta có thể chạy các chương trình mạnh hơn khi mà phần cứng vẫn như trước đây? Sử dụng nhiều thiết bị Tăng thêm các tiện ích trên thiết bị HĐH giúp quản lý năng lượng, tính di động, tìm kiếm tài nguyên, v.vv. 1.59
- Tóm tắt Khái niệm Hệ điều hành Tổ chức của Hệ thống máy tính 4 thành phần interrupt Hoạt động của Hệ điều hành Dual mode và chế độ đặc quyền dành cho hdh Các chức năng của Hệ điều hành Quản lý tiến trình, memory, lưu trữ, I/O , bảo vệ và an ninh Các dịch vụ của Hệ điều hành Cơ chế truy suất các dịch vụ - system calls Một số cấu trúc Hệ điều hành Giới thiệu cấu trúc của MS DOS, Unix HĐH song song, HĐH thời gian thực, HĐH phân tán, HĐH nhúng 1.60