Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành - Lương Minh Huấn
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 hệ điều hành - Lương Minh Huấn", để 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_he_dieu_hanh_luong.pdf
Nội dung text: Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành - Lương Minh Huấn
- TRƯỜNG ĐẠI HỌC SÀI GÒN HỆ ĐIỀU HÀNH CHƯƠNG 1: TỔNG QUAN HỆ ĐIỀU HÀNH GV: LƯƠNG MINH HUẤN
- NỘI DUNG I. Nhắc lại cấu trúc máy tính II. Định nghĩa sơ lược hệ điều hành III. Lịch sử hệ điều hành IV.Phân loại hệ điều hành V. Các khái niệm cơ bản hệ điều hành VI.System calls VII.System services VIII.Cấu trúc hệ điều hành
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Một hệ thống máy tính có thể chia làm 4 thành phần: ▪ Phần cứng: CPU, memory, ▪ Hệ điều hành. ▪ Chương trình ứng dụng ▪ User
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Các thành phần của một máy tính đơn giản bao gồm:
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bộ xử lý trung tâm (CPU: Central Processing Unit) hay Bộ vi xử lý (microprocessor, processor) ▪ Là một mạch xử lý dữ liệu theo chương trình được thiết lập trước, dạng mạch tích hợp phức tạp gồm hàng triệu transistor trên một bảng mạch nhỏ ▪ Là thành phần quan trọng nhất, được xem như bộ não, và thường là đắt nhất của một máy tính
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Những chức năng của bộ xử lý trung tâm: ▪ Nhận lệnh, giải mã lệnh, và điều khiển các khối khác thực hiện lệnh ▪ Thực hiện các phép tính số học, logic và các phép tính khác ▪ Sinh ra các tín hiệu địa chỉ để truy nhập bộ nhớ
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Cấu trúc CPU
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Cấu trúc CPU.
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bộ nhớ máy tính (memory): Dung lượng tăng dần, tốc độ giảm dần, giá thành/1 bit giảm dần
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bộ nhớ trong: ▪ Là bộ nhớ có thời gian truy cập nhỏ, được dùng để nạp hệ điều hành, ghi chương trình và dữ liệu trong thời gian xử lý ▪ Gồm các mức bộ nhớ mà CPU có thể truy cập trực tiếp ▪ Bộ nhớ trong gồm các loại: Cache, RAM và ROM – ▪ Bộ nhớ Cache và RAM là các bộ nhớ có thể đọc và ghi dữ liệu, bị mất thông tin khi mất nguồn nuôi ▪ ROM là bộ nhớ chỉ cho phép đọc, dữ liệu không bị xóa khi mất nguồn
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bộ nhớ cache: ▪ Là bộ nhớ đệm giữa CPU và bộ nhớ chính (RAM) ▪ Có tốc độ rất cao, cho phép CPU truy cập dữ liệu nhanh hơn từ bộ nhớ chính ▪ Cache thường được đặt trên chip của CPU ▪ Khi CPU cần đọc dữ liệu, nó tìm dữ liệu trong cache trước, nếu không thấy thì mới tìm trong bộ nhớ chính rồi đưa dữ liệu đó vào cache để tăng tốc độ xử lý dữ liệu trong các lệnh kế tiếp ▪ Cache được làm từ RAM tĩnh (SRAM, Static RAM): các bit được lưu trữ bằng các Flip-Flop, có cấu trúc phức tạp và giá thành cao
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢RAM (Random Access Memory): ▪ Là cách gọi tắt của loại RAM động phổ biến hiện nay (DRAM, Dynamic RAM): có cấu trúc đơn giản, tốc độ chậm hơn và giá thành thấp hơn SRAM ▪ Các bit được lưu trữ trên tụ điện; khi tụ điện được tích điện, nó biểu diễn bit 1; ngược lại, khi tụ điện xả hết sẽ biểu diễn bit 0 ▪ Được dùng để nạp vào hệ điều hành khi khởi động máy tính, để chứa các lệnh của chương trình ứng dụng, để lưu trữ dữ liệu tạm thời chờ được CPU đọc hoặc ghi, do đó RAM là “phòng đợi” cho CPU
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢ROM (Read Only Memory): ▪ ROM là loại bộ nhớ có nội dung cố định, chỉ cho phép người dùng/máy tính đọc dữ liệu nhưng không cho phép ghi vào ▪ Dữ liệu thường được ghi vào ROM trong lúc chế tạo, là tập các lệnh cốt lõi để khởi động máy tính như cách truy cập đĩa cứng, tìm hệ điều hành, và nạp vào RAM; tập lệnh này được gọi là BIOS (Basic Input/Output System)
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bộ nhớ ngoài (storage devices): gồm các loại bộ nhớ mà CPU không thể truy cập trực tiếp, thông tin lưu trữ không bị xóa khi mất nguồn, có dung lượng lớn hơn bộ nhớ trong nhưng tốc độ truy cập thấp hơn ➢Bộ nhớ ngoài gồm các loại đĩa từ tính (đĩa cứng từ, đĩa mềm), đĩa quang (CD/DVD/Bluray), bộ nhớ flash (các loại thẻ nhớ, thanh nhớ usb, ổ cứng thể rắn),
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Đặc điểm cơ bản của bộ nhớ ngoài: ▪ Thông tin không được định vị bằng địa chỉ giống như bộ nhớ trong mà được tổ chức theo từng khối logic gọi là tệp (file) ▪ CPU không thể làm việc trực tiếp với dữ liệu ở bộ nhớ ngoài ▪ Trước khi sử dụng, dữ liệu ở các file được chuyển dần vào bộ nhớ trong để CPU có thể xử lý ▪ Dữ liệu không được ghi theo dạng số 0/1 theo nghĩa đen. Thay vào đó, các bit 0 và 1 phải được chuyển thành dạng nào đó thể hiện được trên bề mặt của các phương tiện lưu trữ ▪ Có 3 công nghệ được dùng để chế tạo bộ nhớ ngoài là: từ tính, quang, thể rắn
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Cấu trúc của một đĩa cứng
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Thiết bị ngoại vi (Peripheral Devices) hay thiết bị vào/ra (I/O - Input/Output devices), có chức năng: trao đổi dữ liệu/thông tin giữa máy tính và môi trường bên ngoài. ▪ Vào: chuyển dữ liệu từ bên ngoài vào bộ nhớ trong ▪ Ra: chuyển thông tin từ bộ nhớ trong ra môi trường bên ngoài ▪ Hệ thống vào/ra bao gồm - Thiết bị ngoại vi - Ghép nối vào/ra (các cổng vào/ra, )
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Liên kết hệ thống: ▪ Các thiết bị máy tính được liên kết với nhau thông qua các đường bus, các khe cắm mở rộng, hoặc các loại cổng kết nối; các thành phần này thường được thiết kế trên một bo mạch chủ
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Bus: ▪ Là các tuyến đường để thông tin (dữ liệu, lệnh, địa chỉ) “chạy” trên đó. ▪ Gồm những đường mạch trên bo mạch chủ (ví dụ: nối giữa CPU và RAM) hoặc các loại cáp mở rộng (ví dụ: cáp nối ổ đĩa cứng với bo mạch chủ)
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ➢Các khe cắm mở rộng (expansion slot) được dùng để cắm các loại card điều khiển thiết bị vào-ra như card đồ họa, card âm thanh, modem ➢Các cổng (port) dùng để kết nối máy tính với các thiết bị vào-ra, gồm nhiều loại:
- I. NHẮC LẠI CẤU TRÚC MÁY TÍNH ▪ PS/2 kết nối chuột và bàn phím ▪ VGA kết nối màn hình ▪ LPT kết nối máy in ▪ RJ45 kết nối modem ▪ USB kết nối nhiều thiết bị giao tiếp qua chuẩn USB ▪ Các cổng âm thanh ▪ Cổng đọc thẻ nhớ ▪
- II. ĐỊNH NGHĨA SƠ LƯỢC HỆ ĐIỀU HÀNH ➢Máy tính số là máy nhiều cấp, trong đó 3 cấp chính yếu là : ▪ Vật lý (phần cứng - hardware) ▪ Chương trình hệ thống (system programs) ▪ Chương trình ứng dụng (application programs)
- II. ĐỊNH NGHĨA SƠ LƯỢC HỆ ĐIỀU HÀNH ➢Đối với hệ điều hành có rất nhiều định nghĩa, trong đó có 2 định nghĩa được đồng ý nhiều 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)
- II. ĐỊNH NGHĨA SƠ LƯỢC HỆ ĐIỀU HÀNH ▪ 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).
- II. ĐỊNH NGHĨA SƠ LƯỢC HỆ ĐIỀU HÀNH
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ➢Vì HĐH gắn liền với 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
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ▪ 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
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ➢Hệ điều hành thế hệ thứ 2: ➢Early batch system (hệ thống xử lý bó) ▪ Xuyên phiếu chuyển chương trình thành chồng card đục lỗ. ▪ Để n chồng card theo thứ tự cho máy đọc card 1401 đọc và ghi lên băng từ. ▪ Gắn băng từ cho máy 7094 xử lý tuần tự từng chương trình, kết quả của chương trình được ghi lên băng kết xuất. ▪ Gắn băng kết xuất vào máy in 1401 để in ra giấy.
- III. LỊCH SỬ HỆ ĐIỀU HÀNH
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ➢Cấu trúc điển hình của 1 job FMS ➢(FMS: Fortran Monitor System, hệ điều hành của IBM cho mainframe 7094)
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ➢Hệ điều hành thế hệ thứ 3 ▪ Multiprogramming system ▪ Spooling (Simultaneous Peripheral Operation On Line) ▪ Time sharing
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ➢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)
- III. LỊCH SỬ HỆ ĐIỀU HÀNH ▪ 1985-1995, Windows on top of MS-DOS ▪ Pentium PC • UNIX, Linux, Windows 2000 • X Windows system (UNIX, Linux)
- IV. PHÂN LOẠI HỆ ĐIỀU HÀNH ➢Dưới góc độ loại máy tính ▪ Hệ điều hành dành cho máy MainFrame ▪ Hệ điều hành dành cho máy Server ▪ Hệ điều hành dành cho máy nhiều CPU ▪ Hệ điều hành dành cho máy tính cá nhân (PC) ▪ Hệ điều hành dành cho máy PDA (Embedded OS - hệ điều hành nhúng) ▪ Hệ điều hành dành cho máy chuyên biệt ▪ Hệ điều hành dành cho thẻ chíp (SmartCard)
- IV. PHÂN LOẠI HỆ ĐIỀU HÀNH ➢Dưới góc độ người sử dụng và số chương trình được sử dụng cùng lúc ▪ Hệ điều hành đơn nhiệm một người dùng ▪ Hệ điều hành đa nhiệm một người dùng ▪ Hệ điều hành đa nhiệm nhiều người dùng
- IV. PHÂN LOẠI HỆ ĐIỀU HÀNH ➢Dưới góc độ người dùng (truy xuất tài nguyên cùng lúc) ▪ Một người dùng ▪ Nhiều người dùng • Mạng ngang hàng • Mạng có máy chủ: LAN, WAN,
- IV. PHÂN LOẠI HỆ ĐIỀU HÀNH ➢Dưới góc độ hình thức xử lý ▪ Hệ thống xử lý theo lô ▪ Hệ thống xử lý theo lô đa chương ▪ Hệ thống chia sẻ thời gian ▪ Hệ thống song song ▪ Hệ thống phân tán ▪ Hệ thống xử lý thời gian thực
- V. CÁC KHÁI NIỆM CƠ BẢN 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ản lý 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
- V.1 TÀI NGUYÊN ➢Tài nguyên của 1 chương trình là bất kỳ thành phần nào của máy tính được sử dụng bởi chương trình đó. ▪ Tài nguyên phần cứng : CPU, bộ nhớ, đĩa, CDROM, đĩa USB,màn hình, bàn phím, chuột, card mạng, ▪ Tài nguyên phần mềm : các file dữ liệu và các hệ thống phần mềm khác mà 1 chương trình cần truy xuất/tương tác. ➢HĐH cần quản lý các tài nguyên sao cho việc sử dụng chúng bởi các chương trình được tin cậy, an toàn, hiệu quả và độc lập với tính chất vật lý của chúng.
- V.2 PROCESS ➢File chương trình thường có 2 dạng : mã nguồn và mã thực thi. ➢File thực thi (*.exe trên Windows) có thể được chạy trực tiếp bởi máy, nhưng nếu chưa chạy, nó vẫn là thành phần thụ động, ngủ yên và không tạo ra kết quả gì. ➢Khi người dùng kích hoạt 1 file chương trình, nó được chạy bởi CPU, lúc này ta gọi nó bằng thuật ngữ "Tiến trình“ (Process). Trong lúc hoạt động, process có thể tạo ra nhiều process khác (con) và cứ thế tiếp tục.
- V.2 PROCESS ➢Một cây process (process tree) ▪ A đã tạo hai process con, B và C ▪ B đã tạo ba process con, D, E, và F
- V.3 SHEDULER ➢Để 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ó.
- V.3 SHEDULER ➢Để 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ế. ➢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).
- V.3 SHEDULER
- V.4 TRUY XUẤT DÙNG CHUNG TÀI NGUYÊN ➢Như vậy, về mặt vật lý, các chương trình không bao giờ chạy đồng thời trên 1 máy có 1 CPU vì tại từng khe thời gian, chỉ có 1 chương trình được chạy, các chương trình khác đều bị dừng chờ. ➢Tuy nhiên theo góc nhìn người dùng (góc nhìn luận lý, góc nhìn ngữ nghĩa) thì ta cảm nhận rằng các chương trình chạy đồng thời. ➢Nếu 2 hay nhiều chương trình chạy đồng thời và nếu chúng muốn truy xuất 1 tài nguyên (dùng chung) nào đó thì ta sẽ giải quyết ra sao ?
- V.4 TRUY XUẤT DÙNG CHUNG TÀI NGUYÊN ➢Về nguyên tắc, ta phải cho chương trình truy xuất, nhưng nếu không kiểm soát việc truy xuất đồng thời vào cùng 1 tài nguyên thì có thể dẫn đến trình trạng "Race". ➢Race là hiện tượng lỗi bất định có thể xảy ra khi 2 hay nhiều process truy xuất 1 tài nguyên dung chung đồng thời.
- V.4 TRUY XUẤT DÙNG CHUNG TÀI NGUYÊN ➢ Ví dụ 2 ứng dụng truy xuất tài khoản A đồng thời : ➢ Nếu tài khoản A là 1000USD và HĐH điều khiển chạy 2 process P1 và P2 theo thứ tự 21a→22a→21b→22b→23b→23a thì kết quả tài khoản A sẽ là 1700USD (giá trị đúng là 1200USD).
- V.4 TRUY XUẤT DÙNG CHUNG TÀI NGUYÊN
- V.4 TRUY XUẤT DÙNG CHUNG TÀI NGUYÊN ➢Để 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.
- V.5 DEADLOCK ➢Tuy nhiên kỹ thuật loại trừ tương hỗ các process lại thường dẫn đến mối nguy hiểm cho hệ thống mà người ta gọi là "deadlock". ➢Deadlock là tình trạng của hệ thống mà ở đó có ít nhất 2 process đang dừng chờ lẫn nhau và bị kẹt mãi mãi ở trạng thái này. ➢Trường hợp xấu nhất là mọi process đều bị dừng và chờ lẫn nhau, hệ thống sẽ bị tê liệt mãi mãi.
- V.5 DEADLOCK ➢Ví dụ giả sử có 2 process A và B đang chạy, theo giải thuật process A sẽ truy xuất file1 rồi file2, trong khi đó process B sẽ truy xuất file2 rồi file1 với tiến độ thời gian cụ thể như sau : ▪ tại t1 : process A xin truy xuất file1 ⇒ OK ⇒ chạy tiếp. ▪ tại t2 : process B xin truy xuất file2 ⇒ OK ⇒ chạy tiếp. ▪ tại t3 : process A xin truy xuất file2 (vẫn còn truy xuất file1 nên chưa trả) ⇒ không được ⇒ phải dừng đợi process B. ▪ tại t4 : process B xin truy xuất file1 (vẫn còn truy xuất file2 nên chưa trả) ⇒ không được ⇒ phải dừng đợi process A. ▪ từ t4 trở đi : cả 2 process A và B đều bị dừng vì phải chờ lẫn nhau và chúng không bao giờ chạy được nữa.
- V.6 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.
- V.6 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
- V.6 QUẢN LÝ BỘ NHỚ - PHÂN VÙNG TĨNH
- V.6 QUẢN LÝ BỘ NHỚ - PHÂN VÙNG ĐỘNG ➢Vùng nhớ lúc đầu để nguyên. Mỗi khi có process xin cấp phát vùng nhớ, hệ thống sẽ tạo 1 partition có kích thước vừa đúng theo yêu cầu, phần còn lại để trống Theo thời gian, bộ nhớ có thể bị băm nát bởi nhiều vùng nhớ được trả lại bởi các process. ➢Ta có thể khắc phục vấn đề này bằng cách sắp xếp lại các vùng nhớ sao cho vùng nhớ trống là duy nhất & liên tục (compactage).
- V.6 QUẢN LÝ BỘ NHỚ - PHÂN VÙNG ĐỘNG
- V.6. QUẢN LÝ BỘ NHỚ - PHÂN VÙNG ĐỘNG & SWAPPING ➢Các vùng bị thay đổi như sau : ▪ process B được cấp 1 vùng nhớ để chạy (Fig. b) ▪ process A is swapped lên disk hay trả lại, Fig. (d) ▪ process A is swapped vào từ disk khi cần chạy tiếp, Fig. (g)
- V.6 QUẢN LÝ BỘ NHỚ ẢO ➢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ỏ.
- V.6 QUẢN LÝ BỘ NHỚ ẢO ➢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 ▪ Quản lý theo phân đoạn và phân trang.
- V.6 QUẢN LÝ BỘ NHỚ ẢO ➢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.
- V.6 QUẢN LÝ BỘ NHỚ ẢO ➢Đổi địa chỉ ảo ra địa chỉ thật
- V.7 HỆ THỐNG FILE ➢Disk vật lý là không gian dữ liệu 3 chiều : disk = nhiều cylinder, mỗi cyclinder gồm nhiều track (head - vòng tròn chứa tin cùng bán kính), mỗi track chứa nhiều cung nhỏ chứa tin được truy xuất độc lập (sector). ➢Sector là đơn vị truy xuất tin nhỏ nhất ở cấp vật lý, từ ngoài ta không thể truy xuất từng byte rời rạc trên đĩa được. ➢Muốn truy xuất 1 sector, ta phải xác định được bộ ba chỉ số (C,H,S) ⇒ rất khó dùng.
- V.7 HỆ THỐNG FILE ➢Hơn nữa, 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 sector 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 sector đĩ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.
- V.7 HỆ THỐNG FILE ➢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ó.
- V.7 HỆ THỐNG FILE ➢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.
- V.7 HỆ THỐNG FILE ➢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.
- V.7 HỆ THỐNG FILE ➢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
- V.7 HỆ THỐNG FILE ➢Disk luận lý cấp #3 là không gian dữ liệu dạng cây phân cấp : disk = thư mục gốc chứa nhiều phần tử con, mỗi phần tử con có thể là file hay thư mục khác ➢Trong cấp độ này, ta nhận dạng 1 phần tử bằng khái niệm đường dẫn (pathname). ➢Có 2 loại pathname : tuyệt đối và tương đối. ➢Tùy thuộc vào nhu cầu sử dụng cụ thể mà dạng nào sẽ thích hợp hơn.
- V.7 ĐƯỜNG DẪN TUYỆT ĐỐI VÀ TƯƠNG ĐỐI ➢Đường dẫn (pathname) là thông tin để tìm kiếm (xác định) 1 phần tử từ 1 vị trí nào đó, nó chứa danh sách chính xác các tên gợi nhớ của các phần tử mà ta phải đi qua xuất phát từ vị trí đầu để đến phần tử cần tìm. ➢Ta dùng 1 dấu ngăn đặc biệt để ngăn cách 2 tên gợi nhớ liên tiếp nhau trong đường dẫn (trong Windows, dấu ngăn là '\') ➢Tên thư mục gốc luôn là '\'.
- V.7 ĐƯỜNG DẪN TUYỆT ĐỐI VÀ TƯƠNG ĐỐI ➢Có 2 khái niệm đường dẫn : đường dẫn tuyệt đối và đường dẫn tương đối. Đường dẫn tuyệt đối là đường dẫn xuất phát từ thư mục gốc, đường dẫn tương đối xuất phát từ thư mục làm việc (working directory). ➢Trước khi ứng dụng bắt đầu chạy, hệ thống sẽ khởi động thư mục làm việc cho ứng dụng (theo cơ chế nào đó). Trong quá trình thực thi, ứng dụng có quyền thay đổi thư mục làm việc theo yêu cầu riêng.
- V.8 GIAO TIẾP VỚI BÊN NGOÀI ➢Chương trình khi hoạt động thỉnh thoảng phải giao tiếp với thế giới ngoài (thí dụ cần in ra máy in, cần giao tiếp mạng, cần truy xuất thông tin của các sensor đo thông số, ). ➢Máy tính sẽ dùng 1 card chức năng (card I/O) để giao tiếp với thế giới ngoài. ➢Có rất nhiều hãng sản xuất, mỗi hãng sản xuất rất nhiều model card I/O khác nhau, để đoạn code chương trình giao tiếp với I/O độc lập hoàn toàn với tính chất phần cứng của card I/O, ta sẽ xây dựng 1 module phần mềm đặc biệt : device driver.
- V.8 GIAO TIẾP VỚI BÊN NGOÀI ➢Mỗi card I/O có device driver riêng. ➢Device driver phải chứa n hàm chức năng theo qui định của HĐH, chi tiết của từng hàm chức năng sẽ phụ thuộc vào phần cứng, còn việc sử dụng các hàm chức năng trong chương trình thì hoàn toàn độc lập với phần cứng.
- V.9 AN NINH HỆ THỐNG ➢Máy tính có rất nhiều tài nguyên và cho phép nhiều người truy xuất ⇒ Cần phải có cơ chế đảm bảo việc dùng tài nguyên bởi các người dùng, không cho phép việc truy xuất bất hợp pháp. ➢An ninh hệ thống bao gồm 3 vấn đề chính : ▪ Bảo mật dữ liệu : mỗi người chỉ được phép truy xuất 1 số tài nguyên qui định, không có khả năng truy xuất các tài nguyên khác. ▪ Toàn vẹn dữ liệu : việc truy xuất tài nguyên của người dung không được làm hư hỏng dữ liệu, dù chỉ 1 phần nhỏ. ▪ Sẳn sàng dữ liệu : việc truy xuất tài nguyên của người dung hợp pháp phải luôn được phục vụ trong khoảng thời gian ngắn nhất, bất cứ lúc nào, bất cứ ở đâu.
- V.9 AN NINH HỆ THỐNG ➢Các biện pháp để bảo mật dữ liệu là quản lý người dùng theo account và mật mã hóa dữ liệu.
- VI. SYSTEM CALLS ➢Tổng quan về các dịch vụ của hệ điều hành.
- VI. SYSTEM CALLS ➢Giao diện người dung có thể dùng các loại giao diện như: ▪ Command line (dòng lệnh) ▪ GUI (đồ họa). ▪ Touch Screen.
- VI. SYSTEM CALLS
- VI. SYSTEM CALLS ➢Các giao diện người dùng này chủ yếu hoạt động với người sử dụng. ➢Để có thể giao tiếp với các dịch vụ chạy bên dưới của hệ thống nó cần một công cụ gọi là system calls – các lời gọi hệ thống.
- VI. SYSTEM CALLS ➢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ể. Ví 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, )
- VI. SYSTEM CALLS ➢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ũ.
- VI. SYSTEM CALLS
- MỘT SỐ SYSTEM CALLS CỦA HĐH
- VI. SYSTEM CALLS ➢Ví dụ System calls
- VI. SYSTEM CALLS ➢Trong lập trình, đa phần người lập trình sử dụng các API để thực hiện các công việc lập trình của mình. ➢Khi chương trình chạy, người lập trình sẽ không quan tâm đến system calls, họ chỉ cần quan tâm đến các hàm có trong API để thực hiện công việc của mình.
- VI. SYSTEM CALLS
- VI. SYSTEM CALLS
- VI. SYSTEM CALLS
- VI. SYSTEM CALLS ➢Các loại systesm calls trong hệ thống: ▪ Quản lý tập tin. ▪ Quản lý thiết bị. ▪ Quản lý thông tin. ▪ Giao tiếp. ▪ An toàn thông tin.
- VII. SYSTEM SERVICES ➢Hệ điều hành cung cấp cho người dùng các sự tiện lợi và đơn giản trong sử dụng. ➢Hầu hết, người dùng khi sử dụng sẽ chỉ quan tâm đến system program, không quan tâm đến system calls. ➢Các system program này dùng các system services để thực hiện kết nối xuống system calls.
- VII. SYSTEM SERVICES ➢Các dịch vụ cốt lõi: ▪ Giao tiếp với người sử dụng (User Interface – UI). ▪ Thực thi chương trình (Program execution). ▪ Tổ chức và quản lý xuất nhập (I/O operations). ▪ Quản lý hệ thống File (File-system manipulation). ▪ Truyền tin (Communications). ▪ Xác định và xử lý lỗi (Error detection). ▪ Các dịch vụ hệ thống (System Services).
- LINKER VÀ LOADER ➢Complier và Linker là 2 component trong process viết 1 chương trình C/C++. ▪ Bước 1: Soạn thảo mã nguồn .c và .h (header) ▪ Bước 2: Tiền xử lí (pre-process) source code dựa vào macro và preprocessor directives. Tiền xử lí sẽ thay thế các giá trị được định nghĩa bởi #define, #include, . trước khi biên dịch ▪ Bước 3: Complier biên dịch source code đã được tiền xử lí thành các object code (.obj)
- LINKER VÀ LOADER ▪ Bước 4: Linker link object code với (các object code khác, static lib, dynamic lib) để tạo ra file .EXE ▪ Bước 5: Load chương trình .EXE vào bộ nhớ ▪ Bước 6: Run .EXE với giá trị nhập vào và output đúng như mong muốn.
- LINKER VÀ LOADER
- LINKER VÀ LOADER
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc cơ bản của UNIX
- VIII. KIẾN TRÚC PHÂN CẤP
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc của hệ thống Linux
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc microkernel
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc của MAC và IOS
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc Darwin
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc Android
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc máy ảo
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc client server
- VIII. CẤU TRÚC HỆ ĐIỀU HÀNH ➢Kiến trúc client server