Hệ điều hành (operating system concepts)
Bạn đang xem 20 trang mẫu của tài liệu "Hệ điều hành (operating system concepts)", để 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:
 he_dieu_hanh_operating_system_concepts.pdf he_dieu_hanh_operating_system_concepts.pdf
Nội dung text: Hệ điều hành (operating system concepts)
- HỆ ĐIỀU HÀNH (OPERATING SYSTEM CONCEPTS) Wiley - Operating System Concepts(Silberschatz).9th GV TS. Ngô Hữu Dũng Email [email protected] 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






