Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,04 MB
Nội dung
2.A Quản lý trình Khái niệm Đònh thời CPU Các tác vụ bản: tạo/kết thúc trình Sự cộng tác trình Giao tiếp trình SinhVienZone.com https://fb.com/sinhvienzonevn Khái niệm Hệ thống máy tính thực thi nhiều chương trình khác ● Batch system: job ● Time-shared system: user program, task Quaù trình (process) ● chương trình thực thi Một trình đònh nghóa ● Trạng thái CPU (trò ghi) ● Không gian đòa (nội dung nhớ) ● Môi trường (environment, xác đònh thông qua bảng hệ điều hành) SinhVienZone.com https://fb.com/sinhvienzonevn Khái niệm (tt) Trạng thaùi CPU ● ● ● ● ● Processor Status Word (PSW) Instruction Register (IR) Program Counter (PC) Stack Pointer (SP) Caùc general purpose register ● ● ● ● Text (code) Data Heap Stack Không gian đòa Môi trường ● Vd: terminal dùng, open file, kênh giao tiếp với trình khác ● Được liệt kê bảng hệ điều hành SinhVienZone.com https://fb.com/sinhvienzonevn Process control block Hệ điều hành lưu thông tin trình process control block (PCB) D.Feitelson SinhVienZone.com https://fb.com/sinhvienzonevn Các bước nạp chương trình vào nhớ SinhVienZone.com https://fb.com/sinhvienzonevn Từ chương trình đến trình Chương trình thực thi có đònh dạng load module mà trình nạp (loader) “hiểu” ● Vd đònh dạng elf Linux Layout luận lý process image Executable binary file (load module) Process image main memory program code program code data data start address heap stack SinhVienZone.com https://fb.com/sinhvienzonevn Khởi tạo trình Các bước hệ điều hành khởi tạo trình ● Cấp phát đònh danh (process number hay process identifier, pid) cho trình ● Cấp phát không gian nhớ để nạp trình ● Khởi tạo khối liệu Process Control Block (PCB) cho trình ● Thiết lập mối liên hệ cần thiết (vd: PCB vào hàng đợi đònh thời,…) SinhVienZone.com https://fb.com/sinhvienzonevn Các trạng thái trình (1/2) Các trạng thái trình: ● ● ● ● ● new: trình vừa tạo ready: trình có đủ tài nguyên, cần CPU running: lệnh trình thực thi waiting: blocked, trình đợi I/O hoàn tất, hay đợi tín hiệu terminated: trình kết thúc SinhVienZone.com https://fb.com/sinhvienzonevn Các trạng thái trình (2/2) Chuyển đổi trạng thái trình new admit dispatch ready exit terminated running interrupt I/O or event wait I/O or event completion waiting SinhVienZone.com https://fb.com/sinhvienzonevn Ví dụ trạng thái trình /* test.c */ int main(int argc, char** argv) { printf(“Hello world\n"); exit(0); } Biên dòch chương trình Linux gcc test.c –o test Thực thi chương trình test /test Trong hệ thống có trình test tạo ra, thực thi kết thúc SinhVienZone.com Chuỗi trạng thái trình test sau (trường hợp tốt nhất): new ready running waiting (do chờ I/O goïi printf) ● ready ● running ● terminated ● ● ● ● https://fb.com/sinhvienzonevn 10 Các tác vụ trình (1/4) Tạo trình ● Quá trình tạo trình thông qua system call (vd: hàm fork UNIX) Ví dụ: (UNIX) Khi user đăng nhập hệ thống, command interpreter (shell) tạo cho user Quá trình tạo trình trình tạo (quá trình cha) Quan hệ cha-con đònh nghóa trình SinhVienZone.com https://fb.com/sinhvienzonevn 19 Cây trình Linux/Unix Ví dụ root pagedaemon gcc SinhVienZone.com swapper init bash bash ls mkdir bash grep https://fb.com/sinhvienzonevn 20 Caùc taùc vụ trình (2/4) Tạo trình (tt) ● Chia sẻ tài nguyên trình cha: khả Quá trình cha chia sẻ tài nguyên Quá trình chia sẻ phần tài nguyên cha Cha không chia sẻ tài nguyên ● Trình tự thực thi: hai khả Quá trình cha thực thi đồng thời (concurrently) Quá trình cha chạy trình kết thúc ● Trong Unix, trình gọi fork tạo trình hoàn toàn giống vào thời điểm gọi - trạng thái CPU, không gian đòa chỉ, môi trường khác process ID trò trả từ fork SinhVienZone.com https://fb.com/sinhvienzonevn 21 Các tác vụ trình (3/4) Tạo trình (tt) ● Không gian đòa chỉ: tùy hệ điều hành UNIX: Không gian đòa trình nhân từ không gian đòa cha vào thời điểm gọi Windows: phức tạp hơn, Win32 API CreateProcess() cần 10 tham số SinhVienZone.com https://fb.com/sinhvienzonevn 22 Về quan hệ cha/con Ví dụ áp dụng fork UNIX/Linux ● Quá trình gọi fork() để tạo trình ● Quá trình gọi exec() để nạp thực thi chương trình không gian nhớ ● Quá trình cha làm việc khác… hay gọi wait() để đợi xong đồng SinhVienZone.com https://fb.com/sinhvienzonevn 23 Ví dụ tạo process với fork() #include #include int main (int argc, char *argv[]){ int return_code; /* create a new process */ return_code = fork(); if (return_code > 0){ printf(“This is parent process”); wait(NULL); exit(0); } else if (return_code == 0){ printf(“This is child process”); execlp(“/bin/ls”, “ls”, NULL); exit(1); } else { printf(“Fork error\n”); exit(1);} } SinhVienZone.com https://fb.com/sinhvienzonevn 24 int main() { if (fork() > 0) { printf(“Hello world \n”); fork(); return 0; } else { printf("Hello world \n”); fork(); fork(); return 0; } } SinhVienZone.com https://fb.com/sinhvienzonevn 25 Các tác vụ trình (4/4) Tạo trình Kết thúc trình ● Quá trình tự kết thúc Quá trình kết thúc thực thi lệnh cuối gọi system routine exit ● Quá trình kết thúc trình khác (có đủ quyền, vd: trình cha nó) Gọi system routine abort với tham số pid (process identifier) trình cần kết thúc ● Hệ điều hành thu hồi tất tài nguyên trình kết thúc (vùng nhớ, I/O buffer,…) SinhVienZone.com https://fb.com/sinhvienzonevn 26 Cộng tác trình Các trình cộng tác (cooperate) để hoàn thành công vieäc ● Vd Sampler Sensor Sensor data buffer Process data Shared memory Display SinhVienZone.com https://fb.com/sinhvienzonevn 27 Cộng tác trình Thiết kế ứng dụng ● Phân chia ứng dụng lớn thành process cộng tác kiến trúc client-server Áp dụng cộng tác trình để ● Bài toán producer-consumer ● Modul hóa ● Tăng tốc tính toán Nếu hệ thống có nhiều CPU, chia công việc tính toán thành nhiều công việc tính toán nhỏ chạy song song Sự cộng tác trình đòi hỏi hệ điều hành cung cấp giải pháp đồng hoạt động (chương 3) giao tiếp cho trình SinhVienZone.com https://fb.com/sinhvienzonevn 28 Bài toán producer-consumer Bài toán tiêu biểu cộng tác trình: toán producer-consumer ● Producer tạo liệu consumer tiêu thụ / sử dụng liệu Sự trao đổi liệu thực qua buffer unbounded buffer: kích thước buffer vô hạn (không thực tế) bounded buffer: kích thước buffer có hạn ● Producer consumer phải hoạt động đồng Consumer không tiêu thụ producer chưa sản xuất Producer không tạo thêm liệu buffer đầy SinhVienZone.com https://fb.com/sinhvienzonevn 29 Interprocess communication (IPC) IPC kỹ thuật cung cấp hệ điều hành nhằm giúp trình giao tiếp với ● Các trình máy khác máy Hai kỹ thuật IPC ● Truyền thông điệp (message passing) ● Dùng nhớ chia sẻ (shared memory) SinhVienZone.com https://fb.com/sinhvienzonevn 30 Mô hình giao tiếp Dùng nhớ chia sẻ Truyền thơng điệp SinhVienZone.com 3.4 Fig 3.12 https://fb.com/sinhvienzonevn Truyền thông điệp Các vấn đề ● Naming Giao tiếp trực tiếp – send(P, msg): gửi thông điệp đến trình P – receive(Q, msg): nhận thông điệp đến từ trình Q Giao tiếp gián tiếp: thông qua mailbox hay port – send(A, msg): gửi thông điệp đến mailbox A – receive(B, msg): nhận thông điệp từ mailbox B ● Synchronization: blocking/nonblocking send blocking/nonblocking receive SinhVienZone.com https://fb.com/sinhvienzonevn 32 Example of shared memory for IPC POSIX Shared Memory ● Process first creates shared memory segment segment_id = shmget(IPC_PRIVATE, size, S_IRUSR | S_IWUSR); ● Process wanting access to that shared memory must attach to it shared_memory = (char *) shmat(id, NULL, 0); ● Now the process could write to the shared memory sprintf(shared_memory, "Writing to shared memory"); ● When done a process can detach the shared memory from its address space shmdt(shared_memory); SinhVienZone.com https://fb.com/sinhvienzonevn 33 ... bảng hệ điều hành SinhVienZone. com https://fb .com/ sinhvienzonevn Process control block Hệ điều hành lưu thông tin trình process control block (PCB) D.Feitelson SinhVienZone. com https://fb .com/ sinhvienzonevn... từ PCB trình để trình thực thi SinhVienZone. com https://fb .com/ sinhvienzonevn 13 Chuyển ngữ cảnh (2/ 2) SinhVienZone. com https://fb .com/ sinhvienzonevn 14 Yêu cầu hệ điều hành quản lý trình Hỗ... linked list) Môi trường SinhVienZone. com https://fb .com/ sinhvienzonevn 11 Các trường tiêu biểu PCB Tanenbaum SinhVienZone. com https://fb .com/ sinhvienzonevn 12 Chuyển ngữ cảnh (1 /2) Làm để chia sẻ