Khoa Công Nghệ Thông Tin & Truyền Thông
Đại học Cần Thơ
Giảng viên: Hà Duy An
1.
2.
3.
4.
5.
6.
Các dịch vụ của hệ điều hành
Giao diện người dùng
Lời gọi hệ thống
Chương trình hệ thống
Thiết kế và cài đặt
Cấu trúc hệ điều hành
8/17/2013
2
Chương 2: Cấu trúc hệ điều hành
tai nguyen phân bô
8/17/2013
4
Chương 2: Cấu trúc hệ điều hành
• HĐH cung cấp môi trường cho các chương trình thực thi và
các dịch vụ cho các chương trình và người dùng.
• Các dịch vụ cung cấp các tính năng hữu ích với người dùng:
o User interface (UI) - Hầu hết tất cả các hệ điều hành điều có
một giao diện người dùng: Command-Line (CLI), Graphics
User Interface (GUI), Batch.
o Program execution – nạp chương trình vào bộ nhớ, thực thi và
kết thúc nó
o I/O operations – do chương trình người dùng không thể thực
hiện trực tiếp các thao tác I/O, HĐH phải cung cấp phương tiện
để thực hiện thao tác I/O (file trên đĩa hay các thiết bị I/O khác)
o File-sytem manipulation – cung cấp các phương tiện để chương
trình có thể đọc, ghi, tạo, xóa, liệt kê, tìm kiếm, quản lý quyền
truy cập trên tập tin/thư mục.
8/17/2013
5
Chương 2: Cấu trúc hệ điều hành
• Communications – các tiến trình có thể trao đổi thông tin với
nhau trên cùng một máy tính hay giữa các máy tính thông qua
mạng
o Việc giao tiếp có thể qua bộ nhớ chia sẽ (shared memory) hay
qua phương thức truyền thông điệp (message passing)
• Error detection – để bảo đảm tính toán chính xác HĐH cần
phát hiện ra các lỗi xảy ra trong hệ thống
o Có thể tồn tại trong CPU, memory, I/O devices, user program
o Với mỗi loại lỗi, HĐH cần có một cơ chế thích hợp để đảm bảo
việc tính toán là chính xác và nhất quán.
8/17/2013
6
Chương 2: Cấu trúc hệ điều hành
• Các dịch vụ đảm bảo sự hoạt động hiệu quả của chính hệ
thống với cơ chế chia sẽ tài nguyên
o Resource allocation – khi có nhiều người dùng hay nhiều
công việc đang thực thi đồng thời, các nguồn tài nguyên
phải được cấp phát cho mỗi công việc
• Có nhiều loại tài tài nguyên – một vài loại có mã cấp phát
riêng biệt (CPU cycles, main memory, file storage), những
loại khác có mã yêu cầu và giải phóng tài nguyên chung (I/O
devices)
o Accounting - theo dõi và ghi lại thông tin sử dụng tài
nguyên của người dùng để làm cơ sở tính tiền sử dụng hệ
thống hoặc thống kê sử dụng.
8/17/2013
7
Chương 2: Cấu trúc hệ điều hành
• Protection and security – đảm bảo rằng tất cả truy cập đến hệ
thống đều được kiểm soát.
o Protection: đảm bảo tất cả các truy cập đến các nguồn tài
nguyên của hệ thống điều được kiểm soát
o Security: đảm bảo an toàn cho hệ thống từ các truy cập bên
ngoài
o Để đảm bảo an toàn, sự phòng ngừa phải được thực hiện
trên toàn hệ thống
8/17/2013
8
Chương 2: Cấu trúc hệ điều hành
• CLI hay command interpreter cho phép nhập các câu lệnh
trực tiếp
o Có thể được cài đặt trong nhân hay như là một chương trình hệ
thống (system program)
o Một hệ thống có thể cài đặt nhiều CLI – shells
• Các CLI có thể được cung cấp bởi bên thứ 3
o Chức năng chính là lấy lệnh từ người dùng và thực thi nó
o Các lệnh trên shell có thể được cài đặt:
• Shell chứa mã thực thi các lệnh của người dùng
• Shell thực thi các lệnh của người dùng bằng cách gọi các chương
trình bên ngoài => chương trình CLI nhỏ, việc cập nhật các lệnh
không ảnh hưởng đến CLI
8/17/2013
10
Chương 2: Cấu trúc hệ điều hành
8/17/2013
11
Chương 2: Cấu trúc hệ điều hành
• Giao diện người dùng đồ họa (Desktop): thân thiện, dễ sử
dụng
o Mouse, keyboard, monitor
o Icons hiển thị file, chương trình, thao tác,…
o Các sự kiện chuột trên những đối tượng khác nhau trên giao diện
là cơ sở cho các thao tác khác nhau
o Phát minh tại Xerox PARC
• Nhiều hệ thống ngày nay có cả CLI và GUI:
o Microsoft Windows
o Apple Mac OS X
o Unix và Linux GUI (CDE, KDE, GNOME), CLI (BASH
SHELL, C SHELL, …)
8/17/2013
12
Chương 2: Cấu trúc hệ điều hành
• Giao diện màn hình cảm ứng:
o Không sử dụng chuột
o Các thao tác dựa trên cử chỉ
o Dùng bàn phím ảo
8/17/2013
13
Chương 2: Cấu trúc hệ điều hành
• Lời gọi hệ thống (System call) là giao diện lập trình để sử
dụng các dịch vụ được cung cấp bởi hệ điều hành
• Thường được viết bằng ngôn ngữ cấp cao (C, C++)
• Hầu hết các chương trình sử dụng system call thông qua một
giao diện lập trình ứng dụng ở mức cao (API) hơn là dùng
trực tiếp
• 3 API phổ biến nhất:
o Windows API (HĐH Windows)
o POSIX API cho POSIX-based systems (tất cả các phiên bản của
UNIX, Linux, Mac OS X)
o Java API cho Java virtual machine (JVM)
8/17/2013
15
Chương 2: Cấu trúc hệ điều hành
• Sử dụng system call để sao chép tuần tự nội dung một file vào
một file khác:
8/17/2013
16
Chương 2: Cấu trúc hệ điều hành
• Giao diện lời gọi hệ thống (System-call interface): cung cấp giao
diện trực tiếp đến các lời gọi hệ thống bên trong nhân => bắt các lời
gọi hàm trong API và gọi các lời gọi hệ thống cần thiết
• Thông thường, mỗi system call sẽ được kết hợp với một số
o Giao diện lời gọi hệ thống duy trì một bảng được lặp chỉ mục theo các
số này
• Giao diện lời gọi hệ thống gọi system call được chỉ định trong nhân
HĐH (OS kernel) và trả về trạng thái + giá trị (nếu có) của lời gọi hệ
thống
• Người lập trình không cần biết bất cứ gì về cách thức system call
được cài đặt
o Chỉ cần tuân theo API và hiểu HĐH sẽ làm gì khi thực hiện một lời gọi
o Hầu hết các chi tiết của giao diện HĐH ẩn với người lập trình bởi API
8/17/2013
18
Chương 2: Cấu trúc hệ điều hành
8/17/2013
19
Chương 2: Cấu trúc hệ điều hành
• Thông thường, nhiều thông tin được yêu cầu hơn là chỉ có
định danh của lời gọi hệ thống (kiểu, dữ liệu, tùy chọn)
• Nhìn chung có 3 phương pháp để truyền tham số cho HĐH:
o Đơn giản nhất: truyền qua các thanh ghi
• Có thể có nhiều tham số hơn số lượng thanh ghi có thể chứa
o Các tham số được lưu trữ như là một khối (block) hay bảng
(table) trong bộ nhớ và địa chỉ của khối hay bảng tham số được
truyền như là một tham số vào thanh ghi (Linux, Solaris)
o Dùng stack: các tham số được đặt (pushed) vào stack bởi chương
trình và lấy ra bởi HĐH
o Phương pháp dùng block hay stack không giới hạn số lượng hay
chiều dài của tham số cần truyền
8/17/2013
20
Chương 2: Cấu trúc hệ điều hành
8/17/2013
21
Chương 2: Cấu trúc hệ điều hành
• Các System Call có thể được nhóm vào trong 6 loại chính:
process control, file manipulation, device manipulation,
information maintenance, communications, protection
• Process control
o
o
o
o
o
o
o
8/17/2013
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
22
Chương 2: Cấu trúc hệ điều hành
• File management
o
o
o
o
create file, delete file
open, close file
read, write, reposition
get and set file attributes
• Device management
o
o
o
o
8/17/2013
request device, release device
read, write, reposition
get device attributes, set device attributes
logically attach or detach devices
23
Chương 2: Cấu trúc hệ điều hành
• Information maintenance
o get time or date, set time or date
o get system data, set system data
o get and set process, file, or device attributes
• Communications
o create, delete communication connection
o send, receive messages if message passing model to host name or
process name
• From client to server
o Shared-memory model create and gain access to memory regions
o transfer status information
o attach and detach remote devices
8/17/2013
24
Chương 2: Cấu trúc hệ điều hành
• Protection
o Control access to resources
o Get and set permissions
o Allow and deny user access
8/17/2013
25
Chương 2: Cấu trúc hệ điều hành
8/17/2013
26
Chương 2: Cấu trúc hệ điều hành