1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành: Chương 2 - Thoại Nam, Lê Ngọc Minh

34 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 758,08 KB

Nội dung

Bài giảng Hệ điều hành - Chương 2: Khái niệm về quá trình cung cấp cho người học các kiến thức: Khái niệm cơ bản, định thời process, các tác vụ trên process, sự cộng tác giữa các process, interprocess communication,... Mời các bạn cùng tham khảo.

Chương KHÁI NIỆM VỀ QUÁ TRÌNH -4.1- Nội dung ‰ ‰ ‰ ‰ ‰ ‰ Khái niệm Đònh thời process (CPU scheduling) Các tác vụ process (tạo process, kết thúc process) Sự cộng tác process Interprocess Communication (IPC) Mô hình giao tiếp Client-Server Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.2- https://fb.com/tailieudientucntt Khái niệm ‰ OS thực thi nhiều chương trình khác – Batch system: jobs – Time-shared systems: user programs, tasks – Job ≈ process ‰ Process – chương trình thực thi (executing program) ‰ Một process bao gồm phần – Text section(program code), data section(global variable), stack (local variable,…) – Hardware: Program Counter(PC), Process Status Word (PSW), Stack Pointer (SP), Memory Management Registers ‰ So sánh process program – Process = active passive = programing Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.3- Process Control Block (PCB) ‰ Chứa thông tin ứng với moãi process – – – – – – – – – Process ID, parent process ID Credentials (user ID, group ID, effective ID, ) Trạng thái process : new, ready, running, waiting… Program counter: đòa lệnh thực thi Các ghi CPU Thông tin dùng để đònh thời CPU: priority, Thông tin nhớ: base/limit register, page tables… Thông tin thống kê: CPU time, time limits… Thông tin trạng thái I/O: danh sách thiết bò I/O cấp phát, danh sách file mở, – Con trỏ (pointer) đến PCBs khác Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.4- https://fb.com/tailieudientucntt Process Control Block (PCB) Khoa Coâng Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.5- User Processes in Virtual Memory Process Identification Process Identification Process Identification Process State Inform ation Process State Inform ation Process State Inform ation Process C ontrol Inform ation Process C ontrol Inform ation Process C ontrol Inform ation U serStack U serStack U serStack Private U ser Private U ser Address Space Address Space (Program s,D ata) (Program s,D ata) (Program s,D ata) Shared Address Space Shared Address Space Shared Address Space Process Process Process n Private U ser … Address Space Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com Process C ontrol Block -4.6- https://fb.com/tailieudientucntt Các bước nạp process vào nhớ ‰ ‰ Linker: kết hợp object modules thành file nhò phân thực thi (executable binary file) gọi load module Loader: nạp load module vào nhớ Khoa Công Nghệ Thông Tin – Đại Học Baùch Khoa Tp.HCM -4.7- Loader Process C ontrolB lock Program C ode Program C ode D ata D ata Executable Binary File (Load M odule) Stack ™ Program Ỉ Process Process Im age in M ain M em ory Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.8- https://fb.com/tailieudientucntt Yêu cầu OS ‰ ‰ ‰ ‰ OS phải hỗ trợ thực thi luân phiên nhiều process để tối ưu hiệu suất CPU với thời gian đáp ứng chấp nhận (reasonable response time) → đònh thời CPU OS phải phân phối tài nguyên hệ thống (resources) cho processes (bộ nhớ, thiết bò I/O, ) đồng thời phải tránh tượng deadlock OS phải cung cấp chế giao tiếp process khác (inter-process communication), chế đồng hoạt động process (synchronization) OS phải cung cấp chế hỗ trợ cho user tạo hủy process Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.9- Các trạng thái process ‰ Khi thực thi, process chuyển từ trạng thái sang trạng thái khác, bao gồm – New: process vừa tạo (được bỏ vào job queue) – Ready: process chờ chiếm CPU để làm việc (được xếp vào ready queue) – Running: lệnh process thực – Waiting: process chờ kiện xảy ra, ví dụ thao tác I/O vừa hoàn tất, (xếp vào waiting queue) – Terminated: thực thi process kết thúc Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.10- https://fb.com/tailieudientucntt Lưu đồ 5-trạng thái process dispatch adm it new exit ready term inated running interrupt I/O or eventw ait I/O orevent com pletion blocked ™ Chỉ có process trạng thái running processor thời điểm ™ Có thể có nhiều process trạnh thái ready waiting Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.11- Ví dụ trạng thaùi process test.c ‰ void main() { printf(“Hello World\n"); } Biên dòch Linux/Unix $ gcc test.c –o test Thực thi chương trình test $ /test Chuỗi trạng thái process test nhö sau: – – – – – – – new ready running blocked (chờ I/O) ready running terminated Trong hệ thống có process test tạo ra, thực thi kết thúc Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.12- https://fb.com/tailieudientucntt Các trạng thái process (t.t) ‰ Trạng thái New – OS thực tác vụ cần thiết để tạo process » Tạo đònh danh cho process (process identifier – pid) » Tạo cấu trúc để quản lý process – Memory table, file table, Process Control Block (PCB), – Process tạo chưa thực thi ngay, tài nguyên hệ thống có hạn, thông thường phục vụ process thời điểm Process đặt nhớ thứ cấp để tiết kiệm không gian nhớ ‰ Trạng thái Terminated – Process không thực thi – Process cấu trúc quản lý process không cần thiết bò xóa Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.13- Các trạng thái process (t.t) ‰ ‰ ‰ ‰ Nếu process trạng thái ready hay running bò suspend, rơi vào trạng thái suspended ready Nếu process trạng thái blocked bò suspend, rơi vào trạng thái suspended blocked Trạng thái suspend thay đổi users OS thực tác vụ resume Process chuyển từ trạng thái suspended blocked sang suspended ready có kiện I/O tương ứng làm cho trình bò blocked xảy Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.14- https://fb.com/tailieudientucntt Các trạng thái process (t.t) ‰ ‰ Process bò suspend trường hợp sau – User muốn tạm dừng trình thực thi process để xem kết thực hiện, phát lỗi,… – Người quản trò hệ thống suspend số process để thu hồi số tài nguyên OS cấp phát cho process khác nhằm giảm tình trạng tải hệ thống – Trường hợp có tranh chấp tài nguyên process, suspend giúp hệ thống thoát khỏi tình trạng deadlock (tham khảo thêm phần Deadlock) Khi rơi vào trạng thái suspend, process swap hệ thống lưu trữ thứ cấp, nhường chỗ nhớ cho process khác Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.15- Lưu đồ 7-trạng thái process new adm it exit term inated dispatch ready running tim e-out event w ait event occur resum e suspend blocked suspend suspend resum e suspended ready event occur suspended blocked Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.16- https://fb.com/tailieudientucntt Trạng thái process Unix fork() created preem pted enough m em ory return to user notenough m em ory preem pt user running return reschedule ready to run sw ap out sw ap in system call, interrupt kernel running interrupt, interruptreturn exit w ake-up sw apped ready w ake-up sleep asleep sw ap out sw apped sleep zoom bie Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.17- Trạng thái Unix process (t.t) ‰ ‰ ‰ ‰ ‰ ‰ ‰ User Running: process thực thi user-mode Kernel Running: process thực thi kernel-mode Ready To Run (in memory): hàng đợi ready Pre-empted: hàng đợi ready đặc biệt, process từ kernelmode user-mode bò OS đoạt quyền (preempt), thực chuyển ngữ cảnh chuyển quyền điều khiển cho process khác Asleep (in Memory): trạng thái blocked, chờ kiện (event) tác vụ I/O Swapped-Ready: process sẵn sàng cần phải nạp process từ nhớ thứ cấp Swapped-Sleep: Đang đợi (blocked) bò swap out nhớ thứ cấp, nhường nhớ cho process khác Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.18- https://fb.com/tailieudientucntt Đònh thời Process – Mục tiêu ‰ Multiprogramming – Có nhiều process phải thực thi luân phiên – Cực đại hiệu suất CPU ‰ Time Sharing – Cho phép users tương tác chương trình chạy – Tối thiểu thời gian đáp ứng Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.19- Các hàng đợi đònh thời (queue) ‰ ‰ ‰ ‰ ‰ Job queue (New): chứa process tạo hệ thống Ready queue (Ready): chứa process nằm nhớ sẵn sàng đợi thực thi Device queues (Waiting): chứa process chờ thiết bò I/O, kiện I/O Process chuyển từ hàng đợi sang hàng đợ khác suốt trình thực thi Các hàng đợi đònh thời thực danh sách liên kết (linked list) – Các liên kết trỏ khối PCB Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.20- https://fb.com/tailieudientucntt 10 Bài toán Producer-Consumer ‰ Mô hình cho cộng tác process, producer tạo thông tin, liệu consumer tiêu thụ, sử dụng liệu Sự trao đổi thông tin thực qua buffer: – unbounded-buffer: kích thước buffer không giới hạn – bounded-buffer: kích thước buffer có giới hạn ‰ Producer consumer phải đồng hoạt động – Consumer sử dụng liệu mà producer chưa kòp tạo – Producer không tạo thêm sản phẩm buffer đầy (bounded buffer) ‰ Hiện thực buffer – Shared memory – Interprocess communication facility (IPC) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.39- Ví duï Shared Bounded-Buffer ‰ Shared memory – Shared buffer: danh sách xoay vòng » in: vò trí ghi kết tiếp » out: vò trí đọc » BUFFER_SIZE: kích thước buffer (chỉ dùng BUFFER_SIZE – phần tử) ‰ ‰ #define BU FFER _SIZE 10 typedefstruct{ }item ; item buffer[BU FFER _SIZE]; intin = 0; intout= 0; Producer consumer chia sẻ buffer chung Programmer phải thực đoạn mã truy xuất buffer chung cho producer consumer Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.40- https://fb.com/tailieudientucntt 20 Shared Bounded-Buffer (t.t) item nextProduced; w hile (1){ w hile (((in + 1)% BU FFER _SIZE)== out) ;/* nothing */ buffer[in]= nextProduced; in = (in + 1)% BU FFER _SIZE; } ProducerProcess item nextC onsum ed; w hile (1){ w hile (in == out) ;/* nothing */ nextC onsum ed = buffer[out]; out= (out+ 1)% BU FFER _SIZE; } C onsum erProcess Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.41- Interprocess Communication (IPC) ‰ IPC chế cung cấp OS nhằm giúp process giao tiếp đồng hoạt động ‰ Shared Memory – threads – mmap() ‰ Message-passing – blocking (synchrous) vaø non-blocking – message format, buffer size, … – addressing (PID, port, mailbox, …) ‰ Files, pipes (FIFOs), sockets Khoa Coâng Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.42- https://fb.com/tailieudientucntt 21 Message-Passing IPC ‰ Cung cấp hai phương tiện giao tiếp: – send(msg) – receive(msg) ‰ Quá trình giao tiếp cần tuân theo giao thức đònh trước: – Thiết lập kênh giao tiếp – Trao đổi message Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.43- Hiện thực IPC ? ‰ ‰ ‰ ‰ ‰ ‰ Làm để thiết lập kênh giao tiếp? Một kênh giao tiếp liên kết với nhiều process hay không? Có thể tạo kênh giao tiếp cặp process muốn thực giao tiếp? Dung lượng kênh giao tiếp bao nhiêu? Kích thước message truyền qua kênh giao tiếp cố đònh (fixed) hay có tùy ý ? Kênh giao hai chiều hay chiều? Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.44- https://fb.com/tailieudientucntt 22 Đồng (synchronization) ‰ ‰ ‰ ‰ ‰ ‰ Blocking hay non-blocking: synchronous hay asynchronous Blocking send: sender bò block message nhận receiver message đến mailbox Non-blocking send: sender gửi message tiếp tục thực công việc khác Blocking receive: receiver bò block đến có message gửi đến Non-blocking receive: không bò block, nhiên receiver nhận message không nhận Rendezvous: blocking-send blocking-receive Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.45- Bộ đệm (buffering) ‰ Tương ứng với kênh giao tiếp có hàng đợi message Hiện thực hàng đợi message đệm (buffer) với ba kiểu sau – Bộ đệm dung lượng (zero capacity), nghóa sender receiver hàng đợi, sender phải đợi receiver – Bộ đệm có dung lượng hạn chế (bounded capacity): kích thước đệm số hữu hạn đònh trước Nếu đệm bò đầy sender phải đợi – Bộ đệm có dung lượng không hạn chế (unbounded capacity), sender đợi Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.46- https://fb.com/tailieudientucntt 23 Mô hình giao tiếp Client-Server ‰ Sockets ‰ Remote Procedure Calls (RPC) ‰ Remote Method Invocation (RMI) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.47- Socket ‰ Socket: đầu cuối (endpoint) kênh giao tiếp – Bao gồm đòa IP số hiệu port » Ví dụ: socket 172.28.11.120:1234 tham chiếu đến port 1234 máy có đòa IP 172.28.11.120 – Ví dụ: FTP server lắng nghe port 21, telnet port 23, web server port 80 – Quá trình giao tiếp thực qua cặp socket ‰ Socket chế giao tiếp mức thấp (low-level) – Gửi nhận chuỗi byte liệu cấu trúc (unstructured) ‰ Có hai chế giao tieáp qua socket – Connectionless – Connection-oriented ‰ ‰ Berkeley socket (BSD socket): Unix/Linux WinSock: thư viện socket họ MS Windows Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.48- https://fb.com/tailieudientucntt 24 Cơ chế gửi/nhận qua Socket Hàm thư viện Diễn giải socket() Tạo socket bind() Gắn đòa cục vào socket listen() Xác đònh độ lớn/kích thước hàng đợi accept() (server) chờ kết nối đến từ client connect() (client) kết nối đến server send()/sendto() Gửi liệu qua kênh giao tiếp thiết lập recv()/recvfrom() Nhận liệu qua kênh giao tiếp close() Đóng kết nối Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.49- Connectionless Socket Process A Process B socket() socket() bind() bind() sendto()/ sendto()/ recvfrom () recvfrom () close() close() » sendto(socket,buffer,buffer_length,flags,destination_address,addr_len) » recvfrom (socket,buffer,buffer_length,flags,from _address,addr_len) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.50- https://fb.com/tailieudientucntt 25 Connection-Oriented Client/Server Server socket() bind() listen() accept() Synchronization point (rendezvous) socket() recv() send() close() com m unication connect() send() recv() close() C lient » send(socket,buffer,buffer_length,flags) » recv(socket,buffer,buffer_length,flags) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.51- Remote Procedure Call (RPC) ‰ ‰ Cơ chế RPC cho phép thực tác vụ gọi thủ tục (procedure call) process nằm hai máy tính kết nối hệ thống mạng Các vấn đề thực RPC – – – – – – Truyền tham số kết trả lời gọi thủ tục Chuyển đổi liệu truyền mạng (data conversion) Kết nối client đến server Biên dòch chương trình Kiểm soát lỗi Security Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.52- https://fb.com/tailieudientucntt 26 Nguyên lý RPC chờ kết trả (suspend) C LIEN T Gọi Remote Procedure Kết trả R equest R eply SER VER Gọi thủ tục cục trả kết (Blocked) (Blocked) Trục thời gian Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.53- Lưu đồ thực RPC C LIEN T return reply SER VER callrequest C LIEN T STU B m essage to param eter param eter to m essage callrequest SER VER STU B m essage to param eter param eter to m essage TR AN SPO R T TR AN SPO R T (O S 1) (O S 2) receive send receive Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com return reply send -4.54- https://fb.com/tailieudientucntt 27 Truyeàn tham số RPC ‰ ‰ Marshaling: qui tắc truyền tham số chuyển đổi liệu RPC bao gồm đóng gói liệu thành dạng thức truyền qua mạng máy tính Biểu diễn liệu kiểm tra kiểu liệu (type checking) – Dữ liệu biểu diễn khác hệ thống khác » ASCII, EBCDIC » Little Endian vaø Big Endian » Dạng biểu diễn XDR (External data representation): độc lập với hệ thống bên (machine-independent) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.55- Truyền tham số RPC (t.t) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.56- https://fb.com/tailieudientucntt 28 Kết nối (bind) client server M atchm aker Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.57- Quá trình thực RPC Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.58- https://fb.com/tailieudientucntt 29 Remote Method Invocation ‰ ‰ Remote Method Invocation (RMI) laø chế tương tự RPC vận hành máy ảo Java RMI cho phép chương trình Java triệu gọi phương thức (method) đối tượng xa JVM R em Java Program ote O bjec tInv ocat ion JVM R em ote O bject Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.59- Remote Method Invocation (t.t) ‰ Khác biệt RPC RMI – RPC hỗ trợ lập trình cấu trúc (procedural programming) » Chỉ cho phép triệu gọi thủ tục (procedure) hàm (functions) xa – RMI hỗ trợ chế hướng đối tượng (object-oriented) » RMI cho phép triệu gọi phương thức (method) đối tượng xa (remote object) – Trong RPC, tham số truyền đến thủ tục/hàm xa liệu bình thường (số, chuỗi kí tự, dãy, ) – Trong RMI, tham số truyền đến đối tượng xa đối tượng Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.60- https://fb.com/tailieudientucntt 30 Cơ chế marshalling RMI client rem ote object val= som eM ethod(A,B) boolean som eM ethod(O bjectx,O bjecty) { im plem entation ofsom eM ethod … } Stub Skeleton A,B,som eM ethod boolean return value Phương thức triệu gọi có dạng sau: boolean someMethod(Object x, Object y) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.61- Windows NT Process Object ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ Process ID Security Descriptor Base priority Default processor affinity Quota limits Execution time I/O counters VM operation counters Exception/debugging ports Exit Status Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.62- https://fb.com/tailieudientucntt 31 Windows NT Thread Object ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ Thread ID Thread context Dynamic priority Base priority Thread processor affinity Thread execution time Alert status Suspension count Impersonation token Termination port Thread exit status Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.63- NT Thread Status Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.64- https://fb.com/tailieudientucntt 32 Solaris ‰ ‰ ‰ ‰ Process includes the user’s address space, stack, and process control block User-level threads Lightweight processes Kernel threads Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4.65- Solaris User Level Threads Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.66- https://fb.com/tailieudientucntt 33 Solaris Light weight Processes Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4.67- https://fb.com/tailieudientucntt 34 ... Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -4 .20 - https://fb.com/tailieudientucntt 10 Hàng đợi Ready & I/O Device Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4 .21 -. .. Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4 .4 7- Socket ‰ Socket: đầu cuối (endpoint) kênh giao tiếp – Bao gồm đòa IP số hiệu port » Ví dụ: socket 1 72. 28.11. 120 : 123 4 tham chiếu đến port 123 4... Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -4 .27 - Chuyển ngữ cảnh xảy nào? ‰ Chuyển ngữ cảnh xảy OS chiếm lại quyền điều khiển CPU, chẳng hạn – System Call » Được gọi tường minh chương trình

Ngày đăng: 11/01/2020, 18:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN