Một process (tiến trình) trong hệ quản lý và điều hành rất có thể được thực hiện độc lập hoặc giao tiếp cùng nhau. Process độc lập là lúc process ko ảnh hưởng hoặc bị tác động vì các process khác trong khối hệ thống, với không share data với bất kì process nào. Process tiếp xúc khi process kia có thể tác động hoặc bị tác động bởi các process khác vào khối hệ thống, với sự chia sẻ data gồm ra mắt.

Bạn đang xem: Ipc là viết tắt của từ gì

Thông thường, Inter Process Communication sẽ được thực tại hóa, code trên đều khối hệ thống máy tính tuy nhiên tuy vậy (parallel computer), cùng với phần nhiều sản phẩm công nghệ ảo nhỏ tuổi (Virtual Private Server – VPS), vấn đề lập trình sẵn IPC là không cần thiết. Stream Hub sẽ không nói về cách thực tại IPC vào code mà nêu ra một trong những sự việc liên quan mang đến IPC.


Mục lục


Message-Passing Systems

Vì sao những process bắt buộc tiếp xúc với nhau?

Việc cho phép truyền data thân những process (bạn có thể mày mò process là gì) là vì đa số lý do sau:

Giúp share lên tiếng giữa các users.Giúp speech up những tác vụ trong laptop.Giúp desgin modun.Giúp dễ dàng trong chạy những tác vụ và một lúc.

IPC là viết tắt của từ gì?

Inter Process communication (xuất xắc có cách gọi khác là IPC) – giao tiếp thân các process – là một trong những thủ tục không thể không có trong câu hỏi giúp các process dàn xếp thông tin cùng nhau.

Hai models thiết yếu của IPC là shared memory (share cỗ nhớ) – cùng với nhiệm vụ ra đời Quanh Vùng tàng trữ bộ lưu trữ chung – với message passing (truyền tin) – cùng với trọng trách truyền cài đặt lời nhắn liên tiếp thân các process.

Cả nhị mã sản phẩm bên trên phần đa phổ cập trong những hệ quản lý điều hành. Model message passing bổ ích mang lại việc thảo luận số lượng nhỏ tuổi các data cùng dễ dàng tiến hành rộng trong hệ đại lý dữ liệu phân tán – khối hệ thống phân tán (distributed system). Ngược lại, shared memory có thể nhanh hao hơn message passing do những hệ thống media điệp thường xuyên thực hiện trải qua system điện thoại tư vấn (cơ mà bọn chúng tốn nhiều thời gian hơn với đề nghị có sự can thiệp của kernel – nhân hệ điều hành).

Trong hệ thống shared memory, những system Call chỉ thực hiện Khi quan trọng lập những vùng bộ nhớ lưu trữ phổ biến. Nghĩa là các processor CPU rất có thể tự do thoải mái đọc ghi vào phần bộ nhớ này.

Các phân tích vừa mới đây sẽ chỉ ra rằng message passing xuất sắc rộng shared memory Lúc áp dụng trong số hệ thống core processing bởi vì những sự cố gắng đồng nhất cabịt mà shared memory dễ dàng gặp gỡ buộc phải Khi các data chạy qua caches.

*
*

Shared-Memory Systems

IPC thực hiện Mã Sản Phẩm shared memory vẫn cần những process tmê say gia mtại một vùng nhớ thông thường. Vùng ghi nhớ bình thường này được sinh sản thành từ rất nhiều vùng lưu giữ riêng biệt của mỗi process.

Các process không giống ý muốn tiếp cận vùng nhớ này sẽ cần lưu lại thúc đẩy của vùng ghi nhớ thông thường ấy vào vùng lưu giữ riêng của mình . Mà thông thường, các hệ quản lý đang ngăn không cho những process xâm nhập bộ nhớ lưu trữ của nhau.

Để thực hiện Mã Sản Phẩm shared memory, các process nên có thể chấp nhận được vấn đề truy cập bộ nhớ lưu trữ của nhau nhằm hoàn toàn có thể áp dụng cùng viết data trên vùng chia sẻ thông thường. Các tiến trình đang đưa ra quyết định vẻ bên ngoài data như thế nào được share với vùng chia sẻ thông thường nơi đâu. Tất nhiên chúng phải bảo vệ những vùng chia sẻ bình thường không trở nên ghi đè lên nhau.

Một ví dụ đơn giản dễ dàng về việc ăn ở cửa hàng ăn cho Model này. Giả sử, bạn Hotline 10 phần ăn, các món nạp năng lượng được đem lên từ từ. Cho thức nạp năng lượng là data cần truyền, bạn ăn là process yêu cầu data và đầu nhà bếp là process cung ứng data. Việc đầu nhà bếp cùng người ăn lẫn thực hiện nhiệm vụ của mình vào cùng thời điểm nhằm bảo đảm thời gian ăn không bị cách trở cùng lâu. chính là cách thức IPC. Và cụ thể hơn, bọn họ cùng tóm tắt một lượng data/ thức nạp năng lượng. Với ĐK, bạn nạp năng lượng ko được nạp năng lượng (write data) lên phần mà lại đầu bếp không bào chế.

Vấn đề IPC trong khối hệ thống Shared Memory

Trong ví dụ về cửa hàng ăn nghỉ ngơi bên trên, bạn gồm nhận thấy sự ko tốt? Giả sử giả dụ những thực khách đồng thời order một món nạp năng lượng, món ăn đó sẽ ra sao? Quay quay trở về sự việc trong khối hệ thống shared memory, giả dụ nhiều processor cùng truy cập một vùng ghi nhớ (memory) vẫn gây nên không nên sót tính tân oán.

Nói một giải pháp “toán” rộng, ví như ta knhị báo x với giá trị lúc đầu là 0. Cùng thời gian processor 1 tăng trở thành x lên 1 cùng processor 2 tăng đổi mới x lên 2, x sẽ sở hữu được hiệu quả là? Câu vấn đáp giả dụ processor nào chạy dứt sau, x sẽ sở hữu được quý hiếm đó; với dĩ nhiên chúng ta cần thiết hiểu rằng processor như thế nào dứt sau.

*
*

Hướng xử lý của vụ việc này là đồng bộ hóa (synchronising) shared data. Nghĩa là nếu processor đầu, sau, cùng lúc tăng giá trị theo lần lượt lên 1 và 2; thì quý giá ở đầu cuối luôn luôn luôn luôn là 3 (kệ thằng như thế nào chuyển đổi giá trị sau cuối kết quả vẫn luôn là 3 sau khi đồng bộ hóa).

Message-Passing Systems

Bên cạnh câu hỏi sử dụng shared memory, một cách không giống nhằm liên kết các process lại cùng nhau là áp dụng message passing.

Message passing cung cấp một vẻ ngoài có thể chấp nhận được các tiến trình liên hệ cùng đồng hóa mà lại ko nên chia sẻ vùng lưu giữ (address space) của nhau. Như vậy quan trọng hữu dụng trong số những hệ cửa hàng tài liệu phân tán (distributed database), khu vực mà lại các process nằm ở các laptop khác biệt kết nối qua khối hệ thống mạng. Cụ thể là công tác chat qua Internet nhỏng messenger được thiết kế với nhằm người tiêu dùng liên kết cùng nhau thông qua bài toán hiệp thương các lời nhắn.

Gửi (tin) dìm (tin)

Process gửi tin nhắn hoàn toàn có thể cố định và thắt chặt hoặc đổi khác về size. ví dụ như, trường hợp process P cùng Q ý muốn điều đình, những tin cần được được gửi cùng dìm giữa nhị đầu: một liên kết truyền tin buộc phải trường thọ giữa hai process.

Message-Passing Systems có 2 bí quyết thức: kết nối trức tiếp vào liên kết con gián tiếp.

Kết nối trực tiếp

o Đối với liên kết trực tiếp: từng process ý muốn truyền tin rất cần được khắc tên mang lại tin nhắn hoặc thương hiệu tín đồ gửi

Symmetry: phải cả thương hiệu người gửi với tên tin nhắn nhằm process đó thực hiện thao tác làm việc gửiAsymmertry: chỉ việc thương hiệu lời nhắn là process đó rất có thể gửi mang đến bất cứ process như thế nào khác

Kết nối con gián tiếp

o Đối với kết nối loại gián tiếp: những tin được nhận thông qua những hộp thỏng hoặc những cổng.

Hộp thư:Nơi lời nhắn được gửi vào hoặc được lôi ra. Mỗi một hộp thỏng sẽ tiến hành xác định vì 1 ID tốt nhất. Các process rất có thể liên lạc cùng nhau trải qua nhiều hộp thỏng, tuy vậy chỉ khi các vỏ hộp tlỗi này được tùy chỉnh nhỏng vỏ hộp thư phổ biến giữa nhì process.Kết nối được nhất quán hoặc không được đồng bộ – blocking và nonblocking

o Chặn gửi: process gửi tin bị ngăn cho đến lúc lời nhắn sẽ được trao vì process còn lại hoặc tới Khi tin vào hộp tlỗi.

o Không chặn gửi: process nhắn tin hoàn thành thì thường xuyên chuyển động.

o Chặn nhận: Process dấn tin ngăn cho tới khi 1 lời nhắn bao gồm sẵn.

o Không ngăn nhận: process dìm tin sẽ nhấn một tin hoàn hảo hoặc một quý hiếm null.

Dù là cần sử dụng Message Passing tốt Shared-memory system, vẫn sẽ có được ngôi trường vừa lòng process A “đợi” process B tất cả lên tiếng rồi mới tiến hành. Nếu các process cùng “đợi”, sẽ dẫn mang lại timeout rất rất lâu, các bạn sẽ không muốn lúc gửi gói tin/ gửi request với đề nghị đợi rất rất lâu nhằm có thể nhấn data trả về, vậy có phương pháp làm sao khắc phục tình trạng này? Đó chưa hẳn là các bước nhưng mà các bạn đề xuất lo ngại, vì chưng hệ quản lý và điều hành đã triển khai Việc này đến chúng ta, câu trả lời là bộ định thời.

*
*

Định thời CPU (Process Scheduling)

Mục tiêu của IPC nói trên là nhằm các process không giống nhau hoàn toàn có thể nhấn thông tin của nhau, cùng nếu bạn có nhu cầu quy trình gửi – nhập được ra mắt đúng với đúng đắn, đó là câu hỏi của bộ định thời.

Mục tiêu của việc đa cmùi hương trình là lúc nào cũng có những cmùi hương trình (process khác nhau) chạy xuyên suốt để tối đa hóa sử dụng CPU. Mục tiêu của việc trình bày thời gian là chuyển đổi CPU giữa những thao tác đó một cách thường xulặng để bạn có thể tương tác với mỗi chương trình trong lúc nó hoạt động.

Một chương trình di chuyển giữa các hàng hóng sự so sánh trong suốt thời gian của nó. Hệ điều hành sẽ phải chọn ra những cmùi hương trình từ những hàng chờ vào một lúc nào đó. Việc chọn lựa chương trình được tiến hành bởi một scheduler thích hợp.

Thông thường, trong một hệ thống, nhiều chương trình được chọn để xem xét rộng là hoạt động tức thì lập tức. Những chương thơm trình được lưu trữ trong bộ nhớ của thiết bị (thông thường là ổ đĩa), đó là khu vực lưu trữ để hoạt động sau này. long-term scheduler hoặc job scheduler sẽ chọn những chương thơm trình từ chỗ này và tải chúng vào bộ nhớ để hoạt động. Short-term scheduler hoặc CPU scheduler sẽ chọn từ những cmùi hương trình đã sẵn dàng để hoạt động và phân bổ CPU cho một vào số chúng

Sự sự khác biệt cơ bản giữa hai bộ lập trình này nằm ở tần suất hoạt động. Short-term scheduler phải chọn một cmùi hương trình mới cho CPU thường xuim. Mỗi chương thơm trình có thể hoạt động chỉ vào vòng một vài phần nghìn giây trước Lúc đợi một yêu mong I/O.

Thông thường, Short-term scheduler hoạt động tối tphát âm mỗi 100 phần nghìn giây. Bởi vì những hoạt động nlỗi vậy, Short-term scheduler phải nhanh hao. Nếu tốn 10 phần nghìn giây để quyết định hoạt động một chương thơm trình 100 phần nghìn giây thì 10/(100+10)=9 phần trăm CPU vẫn được dùng chỉ để lên kế hoạch (phần trăm lãng phí).

Một số thuật ngữ khác trong quá trình liên lạc thân những process

o Zero capacity: bộ đệm ko cho phép bất kể tin nhắn chờ nào, cũng tức là process gửi tin nhắn sẽ ảnh hưởng ngăn cho đến lúc vị trí kia nhấn tin.

o Bounded capacity: sẽ sở hữu một giới hạn n những tin nhắn được hóng vào buffer. có nghĩa là ví như vẫn không tới giới hạn, các tin có thể liên tục được tạo ra vì chưng process nhắn tin. Nếu đang bao gồm n lời nhắn vẫn chờ được nhận, process này sẽ bị chặn đến lúc hàng lời nhắn được trống (bên kia dìm tin)

o Unbounded capacity: lượng lời nhắn chờ là vô tận, nghĩa là process gửi không lúc nào bị ngăn.

Trường vừa lòng zero capađô thị thường được coi là ngôi trường hợp thân nhị process không tồn tại bộ nhớ đệm, còn nhị ngôi trường hợp bounded và unbound thì bao gồm cỗ đệm giữa nhị process.

*
*

lấy ví dụ như thực tiễn của IPC – trình phê chuẩn Chrome

Như bạn đang biết, không như phần nhiều trình chăm nom khác (ví dụ Firefox phiên bạn dạng cũ, phiên bản mới thì mình ko biết), thường có tình trạng đứng 1 tab là đứng hết cả trình duyệt. Nhưng trình cẩn thận Chrome thì không phải như vậy.

Đó là nhờ vào qui định multiprocess, mỗi tab của Chrome là một trong những process độc lập với nhau, với chúng luôn chạy mặt khác với nhau.

Kiến trúc multiprocess của Chrome vận động bên trên hình thức nhận ra 3 loại của process:

Brownser process: kiểm soát điều hành user interface, disk cùng network. Chỉ tất cả độc nhất 1 process nhiều loại này.

Renderer process: bao gồm phương thức render/ hiển thị một website. Mỗi lần bạn nhảy 1 tab mới, Chrome vẫn tự động tạo nên 1 process loại này cho mình. Renderer process điều khiển xe trên các sandbox, nghĩa là bọn chúng ko cho những process trên trình chuẩn y có công dụng tiếp cận ổ cứng, hệ thống mạng của người tiêu dùng, nhằm mục tiêu tăng cường mức độ bảo mật thông tin.

Plug-in process: tốt có cách gọi khác là extension trên trình cẩn thận, đấy là nhiều loại process rất cần được giao tiếp với nhì nhiều loại process sót lại. (Ví dụ: Flash)

Một process (tiến trình) trong hệ điều hành quản lý có thể được thực hiện chủ quyền hoặc tiếp xúc với nhau. Process hòa bình là khi process không tác động hoặc bị ảnh hưởng vị các process không giống trong hệ thống, cùng ko share data với bất kể process như thế nào. Process giao tiếp khi process kia rất có thể tác động hoặc bị tác động do những process không giống trong hệ thống, với sự chia sẻ data tất cả ra mắt.

Xem thêm: Các Kiểu Tóc Cho Mặt Tròn Trán Ngắn Cho Mặt Tròn Trán Ngắn Che Khuyết Điểm

Đôi khi, Inter Process Communication sẽ tiến hành thực tại hóa, code bên trên mọi hệ thống máy vi tính song tuy nhiên (parallel computer), với đa số thứ ảo nhỏ dại (Virtual Private Server – VPS), Việc thiết kế IPC là không quan trọng. Stream Hub sẽ không còn nói về phong thái lúc này IPC trong code nhưng mà nêu ra một số vấn đề liên quan đến IPC.