Mô tả các dịch vụ mà hệ điều hành cung cấp cho người dùng, cho tiến trình và cho các hệ thống khác
Giải thích được cách mà lời gọi hệ thống được sử dụng để cung cấp dịch vụ hệ điều hành
Thảo luận về các cấu trúc khác nhau của hệ điều hành
Giải thích hệ điều hành được cài đặt, tùy biến như thế nào và quá trình khởi động của nó
the real-time operating system and real-time programmingDucLe868608
The slide describes the real-time operating system and real-time programming in a very detailed and complete wayThe slide describes the real-time operating system and real-time programming in a very detailed and complete
1. Hà Nội, 10/2015
Giảng viên hướng dẫn: Ts. Phạm Doãn Tĩnh
Sinh viên thực hiện:
Hoàng Anh Phương
Phùng Đình Tài
Nguyễn Bá Dũng
Trường Đại Học Bách Khoa Hà Nội
Viện Điện Tử-Viễn Thông
2. Nội dung
Tổng quan tiến trình1
Triển khai2
Công việc đã đạt được33
Công việc tiếp theo44
4. Trạng thái tiến trình
new
ready running
waiting
terminated
admitted interrupt exit
Scheduler dispatch
I/O or event wait
I/O or event completion
New. Tiến trình đang được khởi tạo.
Running. Lệnh đang được thực thi.
Waiting. Tiến trình đang đợi thiết bị ngoại vi hay sự kiện xảy ra.
Ready. Tiến trình đang đợi để được gán cho một processor
Terminated. Tiến trình kết thúc thực thi.
5. Các kiểu tiến trình
Mục đích
Bảo vệ hệ điều hành khỏi sữ xâm phạm các tiến trình
Các tiến trình và dữ liệu không ảnh hưởng sai phạm lẫn
nhau
Hai chế độ
Chế độ không đặc quyền
Chế độ đặc quyền
Hardware
Operating system
Shell, editor, compilers, ...
Users Chếđộ không
đặc quyền
Chếđộ đặc quyền
6. Khối điều khiển tiến trình
Địa chỉ lệnh
tiếp theo
Accumulator,
thanh ghi chỉ số,
stack pointer …
Process state
Process number
Program counter
registers
Memory limits
List of open files
. . .
New, ready,
running, waiting …
7. CPU chuyển tiến trình
Save state into PCB0
Reload state from PCB1
Save state into PCB1
Reload state from PCB0
......
executing
executing
executing
idle
idle
idle
Interrupt or system call
Interrupt or system call
Process P0 Process P1Operating system
8. Thao tác trên tiến trình
Tạo lập tiến trình
Tiến trình cha tạo các tiến trình con
Tiến trình con lại tạo các tiến trình mới => cây tiến trình
Phân biệt các tiến trình qua pid (process identifier)
Các công việc tạo lập tiến trình
Định danh cho tiến trình mới phát sinh
Đưa tiến trình vào danh sách quản lý của hệ thống
Xác định độ ưu tiên cho tiến trình
Tạo PCB cho tiến trình
Cấp phát các tài nguyên ban đầu cho tiến trình
9. Thao tác trên tiến trình
Khi một tiến trình tạo tiến trình mới, tiến trình ban
đầu có thể xử lý theo một trong hai khả năng sau:
Tiến trình cha tiếp tục xử lý đồng hành với tiến trình con.
Tiến trình cha chờ đến khi một tiến trình con nào đó, hoặc
tất cả các tiến trình con kết thúc xử lý.
10. Kết thúc tiến trình
Một tiến trình kết thúc xử lý khi nó hoàn tất chỉ thị
cuối cùng và yêu cầu hệ điều hành hủy bỏ nó
Một tiến trình có thể yêu cầu hệ điều hành kết thúc
xử lý của một tiến trình khác
Khi một tiến trình kết thúc, hệ điều hành thực hiện
các công việc:
Thu hồi các tài nguyên hệ thống đã cấp phát cho tiến trình
Hủy tiến trình khỏi tất cả các danh sách quản lý của hệ
thống
Hủy bỏ PCB của tiến trình
11. Cấp phát tài nguyên
Nhiều người sử dụng => Hệ điều hành phải cấp phát
tài nguyên theo yêu cầu
Tài nguyên hữu hạn
rid
Danh sách các phần có
thể sử dụng
Danh sách các tiến trình
đang đợi tài nguyên
Con trỏ đến đoạn code
cấp phát tài nguyên
Định danh
Trạng thái tài nguyên
Hàng đợi
Bộ cấp phát
12. Interprocess communication
Tiến trình độc lập
Không ảnh hưởng hoặc bị ảnh hưởng bởi tiến trình khác
Không chia sẻ dữ liệu
Tiến trình tương tác
Gây ảnh hưởng hoặc bị ảnh hưởng bởi tiến trình khác
Chia sẻ dữ liệu
Lợi ích của tiến trình tương tác
Information sharing
Computation speedup
Modularity: Chia chức năng hệ thống vào các tiến trình
riêng hoặc các thread
Convienence
13. Interprocess communication
2 mô hình:
Shared memory
Message Passing
Process A
Process B
Kernel
shared
(b)
Process A
Process B
kernel
M
M
M
12
(a)
Shared memoryMessage passing
Dữ liệu
nhỏ
Can thiệp
Kernel
Tốc độ
cao
Không
cần can
thiệp
Kernel
14. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Hà Nội, 10/2015
XIN CẢM ƠN
THẦY CÔ VÀ CÁC BẠN ĐÃ LẮNG NGHE
NHÓM THỰC HIỆN
Editor's Notes
Khi một tiến trình thực thi, nó thay đổi trạng thái. Trạng thái của tiến trình được định nghĩa bởi hoạt động hiện thời của tiến trình đó. Các trạng thái của một tiến trình gồm có:
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái waiting hay ready
Mỗi tiến trình được thể hiện trong hệ điều hành bởi một khối điều khiển tiến trình (process control block (PCB)) hay còn được gọi là khối điều khiển task.
Khi một tiến trình tạo lập một tiến trình con, tiến trình con có thể sẽ được hệ điều hành trực tiếp cấp phát tài nguyên hoặc được tiến trình cha cho thừa hưởng một số tài nguyên ban đầu.
Định danh tài nguyên
Trạng thái tài nguyên: đây là các thông tin mô tả chi tiết trạng thái tài nguyên: phần nào của tài nguyên đã cấp phát cho tiến trình, phần nào còn có thể sử dụng?
Bộ cấp phát: là các đoạn code đảm nhiệm việc cấp phát tài nguyên đặc thù. Một số tài nguyên đòi hỏi các giải thuật đặc biệt (như CPU, bộ nhớ chính, hệ thống tập tin), trong khi những tài nguyên khác (như cá thiết bị I/O) có thể cần các giải thuật cấp phát và giải phóng tổng quát hơn.
Information sharing (chia sẻ thông tin). Khi người dùng có thể quan tâm đến những thông tin giống nhau (chia sẻ file), chúng ta phải cung cấp môi trường cho phép truy cập đồng thời đến cùng thông tin.
Computation speedup (tăng tốc tính toán). Nếu chúng ta muốn một công việc chạy nhanh hơn, ta phải chia nó thành các công việc nhỏ hơn, các công việc nhỏ đó sẽ được xử lý song song với nhau. Chú ý rằng chỉ có thể đạt được việc tăng tốc nếu máy tính có các phần tử đa xử lý (nhiều CPU, nhiều kên I/O).
Modularity. Chúng ta có thể muốn xây dựng hệ thống trong các mẫu riêng, chia các chức năng hệ thống vào trong các tiến trình riêng biệt hoặc các thread.
Convienence. Người dùng có thể làm việc trên nhiều công việc cùng lúc (đa nhiệm).
Message passing hiệu quả cho trao đổi dữ liệu nhỏ, vì không có xung đột cần phải tránh. Message passing cũng dễ dàng triển khai hơn so với shared memory cho giao tiếp giữa các liên máy tính. Shared memory cho phép tốc độ tối đa của việc liên lạc. Shared memory nhanh hơn so với message passing, hệ thống message passing thường triển khai sử dụng việc gọi hệ thống và vì thế yêu cầu nhiều thời gian cho công việc can thiệp của kernel. Ngược lại, trong hệ thống shared memory, việc gọi hệ thống chỉ được yêu cầu khi thành lập vùng nhớ chia sẻ. Sau khi bộ nhớ chia sẻ được thành lập, toàn bộ việc truy cập sẽ diễn ra bình thường và không cần sự hỗ trợ từ kernel.