Định nghĩa và các khái niệm Định nghĩa hệ điều hành Operating System OS là phần mềm hoạt động ở lớp trung gian giữa người sử dụng máy tính và phần cứng.. Hệ thống làm việc của máy
Trang 2Những mục tiêu chính:
Trang 3Các kiến thức cần thiết
Kiến trúc máy tính và Cấu trúc máy tính
Cấu trúc dữ liệu và Giải thuật
Ngôn ngữ lập trình: Pascal, C,…
…
Trang 4Tài liệu tham khảo
A Silberschatz, G Gagne, and P.B Galvin, “Operating System Concepts”, Addison Wesley
A.S Tanenbaum, “Modern Operating Systems”, Prentice Hall, 1992
Bill McCarty, “Learning Redhat Linux 3 rd Edition” , O’Reilly,
Trang 5Phân phối, Bài tập và Kiểm tra
Phân phối thời gian
75% dành cho giảng bài
25% dành cho các bài tập lớn
Thi hết học phần
Thi vấn đáp
Điểm đánh giá.
Bài tập lớn: lấy điểm kiểm tra giữa kì
Kiểm tra: theo quy chế
Trang 6Nội dung
Chương 1: Dẫn nhập
Chương 2: Quản lý tiến trình
Chương 3: Quản lý bộ nhớ
Chương 4: Quản lý hệ thống file
Chương 5: Bài toán DeadLock
Chương 6: Bài toán miền găng
Trang 81 Định nghĩa và các khái niệm
Định nghĩa hệ điều hành (Operating System)
OS là phần mềm hoạt động ở lớp trung gian giữa người sử dụng máy tính và phần cứng.
Mục tiêu của OS là làm cho người sử dụng:
Trang 9 Hệ thống làm việc của máy tính bao gồm 4 thành phần:
Phần cứng (Hardware) – cung cấp các tài nguyên cơ bản
CPU, memory, I/O devices
Hệ điều hành (OS - Operating system)
Trung gian điều khiển và bố trí việc sử dụng phần cứng cho các ứng dụng và đối tượng sử dụng
Các chương trình ứng dụng (Application programs) – Các phần mềm phục vụ tác nghiệp của người sử dụng.
Word processors, compilers, web browsers, database systems, video games
Đối tượng sử dụng (Users):
Người, thiết bị hoặc máy tính khác
Trang 104 lớp của hệ thống làm việc
của máy tính
Trang 11Các định nghĩa khác
OS là tài nguyên:
Quản lý tất cả các tài nguyên khác
Làm trung gian giữa những mâu thuẫn về hiệu năng của tài nguyên và sự sử dụng chúng một cách thuận tiện
OS là chương trình điều khiển
Điều khiển sự thực hiện các chương trình, ngăn ngừa lỗi và sự sử dụng không thích hợp
“Chương trình chạy trong toàn bộ thời gian hoạt động của máy tính” đó chính là kernel Mọi chương trình khác là chương trình hệ thống hoặc chương trình ứng dụng
Trang 122 Phân loại OS theo nguyên lý
Hệ thống thời gian thực (Real – Time Systems)
Hệ thống cầm tay (Handheld Systems)
Môi trường tính toán
Trang 132.1 Mainframe Systems
a) Nguyên lý điều khiển theo lô đơn giản
Lô (batch) là tập hợp công việc được sắp thứ tự
Chi phí cài đặt thấp bởi điều khiển đơn giản Hàng đợi công việc tự động chuyển điều khiển từ công
việc này đến công việc khác
Hạt nhân là bộ giám sát
Khởi động công việc
Điều khiển chuyển đổi công việc
Khi công việc được hoàn thành việc điều khiển chuyển lại cho bộ giám sát
Trang 14Sơ đồ bộ nhớ của một hệ thống theo lô đơn
giản (Simple Batch System)
Trang 15b) Hệ thống lô đa chương (Multiprogramming
Systems)
Multiprogramming có các khả năng:
Một user đơn lẻ không được sử dụng CPU và
thiết bị I/O toàn thời gian
Khi các công việc được tổ chức đa chương (code and data) thì CPU luôn luôn thực thi một trong nó
Một tập con của tất cả các công việc được lưu trữ trong bộ nhớ
Một trong những công việc đó được chọn và hoạt động theo job scheduling
Khi một công việc rơi vào trạng thái chờ (ví dụ
Trang 16Hệ thống theo lô đa chương (Multiprogrammed Batch Systems)
Một vài công việc được lưu trữ trong bộ nhớ chính tại cùng môt thời
điểm, CPU phục vụ một trong những công việc đó
Trang 17 Lập lịch CPU – hệ thống phải lựa chọn
một vài công việc sẵn sàng để chạy.
Định vị các thiết bị.
Trang 18c) Hệ thống chia sẻ thời gian (Timesharing
Systems)
Timesharing (multitasking – đa nhiệm) là khái niệm mở rộng về mặt logic chỉ việc chuyển điều khiển giữa các công việc thường xuyên đến mức các users tương tác được đến mỗi công việc khi nó đang chạy, tạo ra máy tính tương tác.
Thời gian điều chuyển phù hợp < 1 second
Mỗi user có ít nhất một chương trình trong bộ nhớ tiến trình (process)
Nếu một vài công việc sẵn sàng chạy tại cùng một thời điểm CPU scheduling
Nếu các tiến trình không đặt vừa trong bộ nhớ, swapping
sẽ được thực hiện.
Virtual memory cho phép thi hành các tiến trình không
Trang 19 Có thể chạy với một vài OS (Windows, MacOS, UNIX, Linux)
Trang 202.3 Parallel Systems
Multiprocessor systems có nhiều CPU trong một
hệ thống liên lạc khép kín
nhớ và đồng hồ xung; truyền tin luôn luôn thông qua bộ nhớ được chia sẻ
Các lợi ích của parallel system:
Gia tăng thông lượng truyền tin
Kinh tế
Gia tăng độ tin cậy
Trang 21Parallel Systems (Cont.)
(slave)
Phổ biến trên những hệ thống lớn
Trang 22Symmetric Multiprocessing Architecture
Trang 232.4 Distributed Systems
Phân tán sự tính toán trên một vài bộ xử lý
vật lý
một bộ nhớ riêng của nó Các bộ xử lý truyền
thông tin cho nhau trên đường truyền tốc độ
cao
Các lợi ích của distributed systems
Chia xẻ tài nguyên
Tăng tốc độ tính toán
Đáng tin cậy
Trang 24Distributed Systems (tiếp)
Đòi hỏi cơ sở hạ tầng mạng máy tính.
Local area networks (LAN) hoặc Wide
area networks (WAN)
Có hai dạng hệ thống client-server hoặc
hệ thống peer-to-peer.
Trang 25Cấu trúc chung của Client-Server
Trang 262.5 Clustered Systems
Tập hợp hai hoặc nhiều hệ thống có bộ lưu trữ chia sẻ.
Cung cấp độ an toàn cao.
ứng dụng trong khi các server khác dự
phòng.
chạy ứng dụng.
Trang 272.6 Real-Time Systems
Luôn được sử dụng như những thiết bị điều
khiển trong những ứng dụng chuyên biệt: Thí
nghiệm khoa học, hệ mô phỏng y học, điều
khiển công nghiệp,
Phải hoàn thành công việc trong một thời
gian xác định cưỡng bức
Hệ thống Real-Time có thể là hard hoặc soft
real-time
Trang 28Real-Time Systems (tiếp)
Hard real-time:
Bộ lưu trữ thứ cấp có giới hạn hoặc không
có, dữ liệu được lưu trữ trong bộ nhớ nhỏ
hoặc trong ROM
Trái ngược với hệ thống time-sharing và
không hỗ trợ các hệ điều hành đa năng
Soft real-time
Sử dụng điều khiển các robot công nghiệp
Sử dụng trong các ứng dụng multimedia,
thực tại ảo (virtual reality) đòi hỏi các tính
năng cao cấp của hệ điều hành
Trang 292.7 Handheld Systems
Personal Digital Assistants (PDAs)
Cellular telephones (điện thoại di động)
Một số đặc điểm:
Bộ nhớ giới hạn
Bộ xử lý tốc đô chậm
Màn hình nhỏ.
Trang 31 Sử dụng các máy tính đơn, kết nối modem
Không firewall, không kết nối mạng.
Trang 32Computing Environments (tiếp)
Client-Server Computing
Dumb terminals được thay thế bởi PC thông minh.
Có nhiều loại server, phù hợp với các đòi hỏi của clients
Compute-server cung cấp giao diện cho client yêu cầu
dịch vụ (chẳng hạn database)
File-server cung cấp giao diện cho client lưu trữ và
nạp tập tin
Trang 33Peer-to-Peer Computing
Một mô hình khác của hệ thống phân tán.
P2P không phân chia các máy thành client và server.
Coi tất cả các nút đều có vai trò như nhau.
Mỗi nút hoạt động như client, server hoặc đóng vai trò
cả hai.
Mỗi nút phải kết nối bởi mạng P2P
Đăng kí dịch vụ với một trung tâm tra cứu dịch vụ trên mạng,
Quảng bá yêu cầu dịch vụ và đáp ứng các yêu cầu dịch vụ theo giao thức discovery protocol
Ví dụ: Napster và Gnutella
Trang 34Web-Based Computing
Web đã trở thành phổ biến
Máy tính PC trở thành thiết bị thông dụng
Nhiều thiết bị được kết nối mạng và liên kết theo kiểu web
Nhiều thiết bị loại mới quản lý truyền tải web
tương đương server: load balancers
Sử dụng các hệ điều hành Windows 95 kiểu
client-side và phát triển thành Linux và Windows
XP có thể phân chia thành clients và servers