You are on page 1of 43

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH

KHOA CÔNG NGHỆ THÔNG TIN

HỆ ĐIỀU HÀNH

ThS. Dương Minh Tuấn


0973887793
Email: dmtuan@ntt.edu.vn

Trang 1
Chương 1

Khái niệm và Kiến trúc HĐH


1. Tổng quan HĐH
2. Lịch sử phát triển
3. Cấu trúc hệ điều hành
4. Cuộc gọi hệ thống
5. Các chương trình hệ thống
6. Boot hệ thống

Trang 2
1. Tổng quan Hệ điều hành

1.1 Hệ điều hành


• Khái niệm Hệ điều hành:
• Hệ điều hành là một chương trình phần mềm.
• Hệ điều hành quản lý các phần cứng máy tính.
• Hệ điều hành quản lý các tài nguyên phần mềm trên máy tính.
• Hệ điều hành đóng vai trò trung gian trong giao tiếp giữa
người dùng và phần cứng máy tính.
• Mục tiêu của Hệ điều hành
• Giúp người dùng dễ dàng sử dụng hệ thống.
• Quản lý và cấp phát tài nguyên hệ thống một cách hiệu quả.
• Chức năng chính của Hệ điều hành:
• Cấp phát tài nguyên phần cứng cho các ứng dung.
• Điều khiển, lập lịch thực thi các chương trình.

Trang 3
1. Tổng quan Hệ điều hành

• Vai trò và vị trí của Hệ điều hành:

• Compilers: biên dịch chương trình.


• Editor: soạn thảo chương trình.
• Command interpreter: thông dịch lệnh.
Trang 4
1. Tổng quan Hệ điều hành

• Các chức năng chính của hệ điều hành


• Phân chia thời gian xử lý và định thời CPU
• Phối hợp và đồng bộ hoạt động giữa các processes (coordination &
synchronization)
• Quản lý tài nguyên hệ thống (thiết bị I/O, bộ nhớ, file chứa dữ liệu,…)
• Thực hiện và kiểm soát access control, protection
• Duy trì sự nhất quán (integrity) của hệ thống, kiểm soát lỗi và phục hồi hệ
thống khi có lỗi (error recovery)
• Cung cấp giao diện làm việc cho users

Trang 5
1. Tổng quan Hệ điều hành

Một hệ điều hành là một thành phần quan trọng của mọi hệ
thống máy tính.
▪ Phần cứng (Hardware): bao gồm bộ xử lý trung tâm (CPU),
bộ nhớ, thiết bị xuất/nhập
▪ Các chương trình ứng dụng (application programs): trình
biên dịch (compiler), trình soạn thảo văn bản (text editor)
▪ Người dùng (user): có nhiều loại người dùng khác nhau,
thực hiện những yêu cầu khác nhau, do đó sẽ có nhiều ứng
dụng khác nhau.
▪ Hệ điều hành (operating system): hay còn gọi là chương
trình hệ thống

Trang 6
1. Tổng quan Hệ đièu hành

1.2. Nhân (Kernel)

Kernel: nhân của Hệ điều


hành.
Driver: các chương trình
điều khiển thiết bị phần
cứng.
Applications: các ứng
dụng

Trang 7
1. Tổng quan Hệ đièu hành

1.2. Nhân (Kernel)


▪ Nhân hệ điều hành (tiếng Anh: Kernel) là một chương trình máy
tính, là thành phần trung tâm và không thể thiếu của các hệ
điều hành máy tính, kiểm soát hoàn toàn mọi thứ trong hệ
thống.
▪ Nó là "phần của mã hệ điều hành luôn thường trú trong bộ nhớ“
▪ Có nhiệm vụ quản lý các tài nguyên hệ thống (liên lạc giữa các
thành phần phần cứng và phần mềm).
▪ Trong phần lớn các hệ thống, nó là chương trình đầu tiên được
nạp vào trong quá trình khởi động máy tính (sau bootloader).

Trang 8
1. Tổng quan Hệ đièu hành

1.2. Nhân (Kernel)


▪ Nó xử lý phần còn lại của khởi động cũng như các yêu cầu
vào/ra từ phần mềm, chuyển chúng thành hướng dẫn xử lý dữ
liệu cho CPU.
▪ Nó quản lý bộ nhớ và các thiết bị ngoại vi như: bàn phím, màn
hình, máy in, và loa. Nhân hệ điều hành thường cung cấp các
tiện ích xử lý này cho các tiến trình của các phần mềm ứng
dụng qua các cơ chế liên lạc giữa các tiến trình (inter-process
communication) và các lời gọi hệ thống (system call).

Trang 9
1. Tổng quan Hệ điều hành

1.3. Bootstrap program


• Được lưu trữ trong ROM hay EPROM

• Được kích hoạt khi boot hay khi reboot máy

• Khởi tạo tất cả các thành phần của hệ thống, nạp nhân của
HDH và cho HDH bắt đầu hoạt động
1.4. Caching
▪ Lưu trữ thông tin tạm thời vào một vùng nhớ có tốc độ truy
xuất rất nhanh
▪ Đặc điểm:
 Kích thước nhỏ
 Tốc độ truy cập nhanh
Trang 10
2. Lịch sử phát triển
• Trải qua 4 thế hệ.

• Thế hệ 1: 1945 – 1955


• Máy tính đèn chân không

• Lập trình bằng ngôn ngữ máy

• Vận hành bằng bảng điều khiển

• Ra đời phiếu đục lỗ (1950)

➔ Chương trình được viết trên phiếu

Trang 11
2. Lịch sử phát triển

• Thế hệ 2: 1955 – 1965

• Ra đời thiết bị bán dẫn

• Ngôn ngữ lập trình: Assembly hay Fortran

• Hệ thống xử lý theo lô, được điều khiển


bằng một chương trình đặc biệt – Tiền thân
của hệ điều hành sau này

Trang 12
2. Lịch sử phát triển
• Thế hệ 3: 1965 – 1981
• Ra đời IC (mạch tích hợp)
• Ra đời máy IBM 360 dùng IC
• HDH ra đời nhằm điều phối, kiểm soát hoạt
động và giải quyết tranh chấp thiết thị giữa các
yêu cầu
• Khái niệm đa chương
• Ra đời một số HĐH:
• CTSS của MIT
• MULTICS
• UNIX
• Xuất hiện hệ thống máy mini như DEC PDP-1

Trang 13
2. Lịch sử phát triển

• Thế hệ 4: 1981 - Nay

• Ra đời của máy tính cá nhân, đặc biệt là hệ thống

IBM PC với hệ điều hành MS-DOS

• Sau này ra đời HDH Windows

• Ra đời các HDH dòng Unix như: Linux, ...

• Đầu thâp niên 90, sự phát triển mạnh mẽ của

HDH mạng và HDH phân tán.

Trang 14
Phân loại Hệ điều hành

• Phân loại theo 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)

Trang 15
Phân loại Hệ điều hành

• Phân loại theo số chương trình được sử dụng cùng lúc


• Hệ điều hành đơn nhiệm
• Hệ điều hành đa nhiệm
• Phân loại theo 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, …

Trang 16
Phân loại Hệ điều hành

• Phân loại theo hình thức xử lý


• Hệ thống xử lý theo lô:
• Hệ thống đơn chương (uniprograming OS)
• Hệ thống đa chương (multiprogramming OS)
• 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

Trang 17
Phân loại Hệ điều hành

• Hệ thống đơn chương:


• Tác vụ được thi hành tuần tự.
• Bộ giám sát thường trực.
• CPU và các thao tác nhập xuất:
• Xử lý offline
• Đồng bộ hóa các thao tác bên ngoài – Spooling
• (Simultaneous Peripheral Operation On Line)

Trang 18
Phân loại Hệ điều hành

• Hệ thống đa chương
• Nhiều công việc được nạp đồng thời vào bộ nhớ chính
• Khi một tiến trình thực hiện I/O, một tiến
trình khác được thực thi
• Tận dụng được thời gian rảnh, tăng hiệu
suất sử dụng CPU (CPU utilization)

Trang 19
Phân loại Hệ điều hành

• Hệ thống đa chương:

Trang 20
Phân loại Hệ điều hành

• Hệ thống đa chương:

▪ Điều kiện hoạt động đa chương của hệ điều hành

• Định thời công việc (job scheduling): chọn job trong job
pool trên đĩa và nạp nó vào bộ nhớ để thực thi.

• Quản lý bộ nhớ (memory management)

• Định thời CPU (CPU scheduling)

• Cấp phát tài nguyên (đĩa, máy in,…)

• Bảo vệ

Trang 21
Phân loại Hệ điều hành

• Hệ thống chia sẻ thời gian


• Hệ thống đa nhiệm (multitasking)
• Lập lịch CPU
• Thời gian chuyển đổi giữa các tác vụ rất ngắn

Trang 22
Phân loại Hệ điều hành

• Hệ thống chia sẻ thời gian (time-sharing)


• Yêu cầu đối với OS trong hệ thống time-sharing
▪ Định thời công việc (job scheduling)
▪ Quản lý bộ nhớ (memory management)
• Virtual memory
▪ Quản lý các quá trình (process management)
• Định thời CPU
• Đồng bộ các quá trình (synchronization)
• Giao tiếp giữa các quá trình (process communication)
• Tránh deadlock
▪ Quản lý hệ thống file, hệ thống lưu trữ
▪ Cấp phát hợp lý các tài nguyên
▪ Bảo vệ (protection)

Trang 23
Phân loại Hệ điều hành

• Hệ thống song song (parallel, multiprocessor,


hay tightly-coupled system)
• Hai hoặc nhiều CPU (bộ xử lý) cùng chia sẻ một bộ
nhớ, chia sẻ computer bus, clock…
• Ưu điểm
• Tăng hiệu năng xuất (system
throughput): càng nhiều processor thì càng
nhanh xong công việc
• Multiprocessor system dùng chung tài nguyên
nên ít tốn kém hơn .
• Độ tin cậy: khi một processor hỏng thì công việc
của nó được chia sẻ giữa các processor còn lại

Trang 24
Phân loại Hệ điều hành

• Hệ thống song song - Đa xử lý đối xứng (symmetric


multiprocessor)
• Mỗi processor vận hành một bản sao hệ điều hành giống nhau
• Các copy dữ liệu cho nhau khi cần
• (Windows NT, Solaris 5.0, Digital UNIX, OS/2, Linux)
• Hệ thống song song - Đa xử lý bất đối xứng (asymmetric
multiprocessor)
• Mỗi processor thực thi một công việc khác nhau
• Master processor định thời và phân công việc cho các slave processors
• Ví dụ: SunOS 4.0.

Trang 25
Phân loại Hệ điều hành

• Hệ thống phân tán (distributed system)


• Mỗi processor có bộ nhớ riêng, giao tiếp với nhau qua các kênh nối như
mạng, bus tốc độ cao
• Người dùng chỉ thấy một hệ thống đơn nhất

• Ưu điểm:
• Chia sẻ sức mạnh tính toán (computational sharing)
• Độ tin cậy cao (high reliability)
• Độ sẵn sàng cao (high availability)

Trang 26
Phân loại Hệ điều hành

• Hệ thống phân tán - Các mô hình hệ thống phân tán


• Client-server
• Server: cung cấp dịch vụ
• Client: có thể sử dụng dịch vụ của server
• Peer-to-peer (P2P)
• Các peer (máy tính trong hệ thống) đều ngang hàng nhau
• Không có cơ sở dữ liệu tập trung
• Các peer là tự trị
• Ví dụ: Gnutella

Trang 27
Phân loại Hệ điều hành

• Hệ thống thời gian thực (real-time system)


• Sử dụng trong các thiết bị chuyên dụng như điều khiển các thử
nghiệm khoa học, điều khiển trong y khoa, dây chuyền công nghiệp,
thiết bị gia dụng, quân sự
• Ràng buộc về thời gian: hard và soft real-time
• Hard real-time:
• Hạn chế (hoặc không có) bộ nhớ phụ, tất cả dữ liệu nằm trong bộ
nhớ chính (RAM hoặc ROM)
• Yêu cầu về thời gian đáp ứng/xử lý rất nghiêm ngặt, thường sử
dụng trong điều khiển công nghiệp, robotics,…
• Soft real-time:
• Thường được dùng trong lĩnh vực multimedia, virtual reality với
yêu cầu mềm dẻo hơn về thời gian đáp ứng

Trang 28
Phân loại Hệ điều hành

• Hệ thống nhúng
• Điện thoại di động (smartphone)
• Máy tính bảng
• Đặc trưng của các thiết bị này
• Bộ nhớ nhỏ (512 KB - 128 MB - 4GB)
• Tốc độ processor thấp (để ít tốn pin)
• Màn hình hiển thị có kích thước nhỏ
• Có thể dùng các công nghệ kết nối như IrDA, Bluetooth, wireless
• Có thể có một hoặc nhiều cảm biến khác nhau

Trang 29
3.1. Các dịch vụ của HDH
1. Cấu trúc theo các dịch vụ của HDH
2. Cấu trúc theo giao diện người dùng của HDH
• Cấu trúc HDH theo dịch vụ cung cấp:
• HDH cung cấp môi trường để thực thi các dịch vụ cho: Người dùng (users), Xử
lý (processes), hệ thống khác (other systems)

Trang 30
3.2. Giao diện người dùng của HDH

• Giao diện dòng lệnh


(Command-Line Interface - CLI)

• Giao diện đồ họa


(Graphical User Interface - GUI)

Trang 31
3.2.1. Giao diện dòng lệnh

• Ví dụ: Unix, Linux có: • Một số HDH bao gồm CLI trong
• Bourne shell nhân (kernel) của HDH
• C shell
• Korn shell • Một số HDH khác cung cấp CLI
• …
như là một ứng dụng (Windows,
Unix, …)
• Ví dụ: Windows có:
• DOS
• Trên các hệ thống có nhiều CLI thì
• Power shell
• … các CLI được biết như là các Shell

Trang 32
3.2.2. Giao diện đồ họa

• Giao diện cửa sổ


• Có hệ thống menu, thanh công cụ, …
• User tương tác với máy tính bằng chuột
• Hình ảnh trực quan:

Trang 33
4. Cuộc gọi hệ thống (system calls)

• Khái niệm system call:


• System call là phương tiện để một chương trình yêu cầu dịch vụ nào đó từ
Kernel của HDH.
• Dịch vụ yêu cầu có thể là dịch vụ phần mềm hoặc phần cứng.
• Các cuộc gọi hệ thống cung cấp một giao tiếp cơ bản giữa một xử lý và HDH
• Phân loại system calls (6 loại):
• Process Control
• File management
• Device management
• Information Maintenance
• Communication
• Protection

Trang 34
4. Cuộc gọi hệ thống (system calls)

1.Process Control 2. File management


• load • create file,
• execute • delete file
• create process • open, close
• terminate process • read, write
• get/set process attributes • reposition get/set file
• wait for time, wait event, attributes
signal event
• allocate, free memory

Trang 35
4. Cuộc gọi hệ thống (system calls)

3. Device management 4. Information Maintenance


• request device, release • get/set time hay date
device
• get/set system data
• read, write, reposition
• get/set process, file, hay
• get/set device attributes
device attributes
• logically attach (gắn kết) or
detach (tách) devices

Trang 36
4. Cuộc gọi hệ thống (system calls)

5. Communication 6. Protection
• create, delete communication • Cung cấp cơ chế điều
khiển truy cập tài nguyên
connection
của hệ thống
• send, receive messages • Bao gồm các công việc:
• transfer status information • set permission
• get permission
• attach hay detach remote devices

Trang 37
4. Cuộc gọi hệ thống (system calls)
• Minh họa một xử lý của user application gọi hàm open()
của hệ thống

Trang 38
4. Cuộc gọi hệ thống (system calls)
• Xét ví dụ: thực hiện cuộc gọi hệ thống:

Chương trình:
- Đọc nội dung trong
file nguồn
- Tạo mới và ghi nội
dung vào file đích

Trang 39
5. Các chương trình hệ thống

• Cung cấp môi trường thuận tiện để phát triển và thực thi các chương trình

• Có thể bao gồm các lời gọi hệ thống


(system calls)

• Phân loại Chương trình hệ thống:


• File management
• Status information
• File modification
• Programming-language support
• Program loading and execution
• Communications
• Background services
• Application programs

Trang 40
6. Boot hệ thống

• Là xử lý khởi động 1 máy tính bằng cách load nhân (kernel)


của HDH
• Các giai đoạn boot hệ thống:
1. Các chương trình trong ROM được khởi động
2. Kiểm tra BIOS
3. Kiểm tra RAM
4. Khởi động CPU
5. Kiểm tra Hardware
6. Tìm và Load HDH

Trang 41
6. Boot hệ thống

• Để đảm bảo boot thành công, 3 thành phần sau phải


hoạt động thích hợp:

• BIOS
• OS
• Hardwares

Trang 42
Cảm ơn !

Trang 43

You might also like