|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
File Mapping and IPC
File mapping enables a process to treat the content of a file as if it were a block of memory in the process's address space. Therefore, instead of using file input and output (I/O) operations, the process can use simple pointer operations to examine and modify the contents of the file.
The Win32 API enables two or more processes to access the same file-mapping object. Each process receives a pointer to memory in its own address space. With this pointer, the process can read or modify the contents of the file. There are three ways an application can share a file-mapping object created in one process with another process:
· Inheritance. The first process creates the file-mapping object and then allows the handle of the object to be inherited by a child process. · Named file mapping. The first process creates the file-mapping object with a well-known name (which can be different from the filename). The second process opens the file-mapping object by specifying the well-known name. Alternatively, the first process can create a file-mapping object with a unique name and communicate that name to the second process through some other IPC mechanism (named pipe, mailslot, and so on).
· Handle duplication. The first process creates the file-mapping object and then passes the handle of the object to the second process. The second process then duplicates the handle to gain access to the shared memory. The original process can communicate the file-mapping handle to the second process through one of the other IPC mechanisms described in this topic (named pipe, mailslot, and so on). For more information about duplicating handles, see Synchronization.
When two or more processes have read-write access to a shared memory block, they must use some sort of synchronization object, such as a semaphore, to prevent data corruption in a multitasking environment. File mapping is quite efficient and also provides operating-system-supported security attributes that can help prevent unauthorized data corruption. File mapping can be used only between processes on a local computer; it cannot be used over a network. An application can, however, create a file-mapping object to a file on a remotely mounted volume. For example, if a remote server is mounted as the F drive, an application can create a file-mapping object to a file on that volume. However, a process running on a remote server cannot share a file-mapping object with a process running on a local computer.
Key Point File mapping is an efficient way for two or more processes on the same computer to share data, but the developer must provide synchronization between the processes. For more information, see File Mapping, and Synchronization.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Файловое Распределение и IPC
Файл, отображающий допустимым процесс, чтобы обращаться содержимое файла как будто оно было блоком памяти в пространстве адреса процесса. Следовательно, вместо использования файлового ввода и выхода (В/В) действий, процесс может использовать простые действия указателя, чтобы изучать и модифицировать содержание файла.
Win32 API Приспосабливается два или больше процессов, чтобы иметь доступ к тому же файловому распределению объекта. Каждый процесс получает указатель в память в своем собственном пространстве адреса. С этим указателем, процесс может прочитать или модифицировать содержание файла. Есть три пути приложение может распространить файловое распределение объекта созданного в одном процессе с другим процессом:
Наследство. Сначала процесс создает файловое распределение объекта затем допускает ручку объекта против унаследован процессом ребенка. Назвавшее файловое распределение. Первый процесс создает файловое распределение объекта с известным именем (который может отличаться от filename). Второй процесс открывает файловое распределение объекта определяя известное имя. Кроме того, первый процесс может создать файловое распределение объекта с уникальным именем и передавать это имя во второй процесс через некоторый другой механизм IPC (поименованная труба, mailslot, и так далее).
Дублирование Ручки. Сначала процесс создает файловое распределение объекта затем передает ручку объекта против второго процесса. Второй процесс затем дублирует ручку, чтобы приобретать доступ к коллективной памяти. Оригинальный процесс может передать файловое распределение ручки во второй процесс через один из других механизмов IPC описанных в этой теме (поименованная труба, mailslot, и так далее). Более подробно о дублировании ручек, смотри Синхронизацию.
Когда два или больше процессов прочитали-доступ записи к коллективному блоку памяти, они должны использовать нечто объект синхронизации, как например, семафор, чтобы предохранять коррупцию данных в multitasking среде. Файловое распределение совсем эффективное и также обеспечивает обслуживать-поддерживавшее системную безопасность приписывает, что может помочь предохранять несанкционированную коррупцию данных. Файловое распределение может использоваться только между процессами в локальном компьютере; не может быть использовано над сетью. Приложение может, тем не менее, создать файловое распределение объекта против файла в дистанционно установленном объеме. Например, если дистанционный сервер установлен как накопитель F, приложение может создать файловое распределение объекта против файла в этом объеме. Тем не менее, процесс, работающий на дистанционном сервере не может распространить файловое распределение объекта с процессом, работающим на локальном компьютере.
Распределение Файла Ключевой Точки является эффективным путем для двух или больше процессов в том же компьютере, чтобы распространять данные, но разработчик должен обеспечить синхронизацию между процессами. Более подробно, смотри Файловое Распределение, и Синхронизацию.
|
|
|
|
| |