The father and son movies are all in the same
C LanguageIn C language, a new process can be created through the fork() system call, even a child process. There are complex data interactions and sharing relationships between the parent child process.
data sharing
CODE section: CODE section.
Data set: Father and son movie uses safe images and static variables.
Heap: Father and Son movies can be stacked movies, but the data in the heap is dynamically allocated, so the modification of the 円space may affect another process.
Data is not shared
Stack: Each process has a separate stack space, used to store local variables, function parameters Whatsapp Number and return addresses, etc.
Command line parameter: Each process has its own command line parameter.
Parent process data interaction mode
pipes:
The parent process performs single- or double-direction data transmission through the pipeline.
The parent process creates a pipeline, the child process reads data through the pipeline, or the child process writes data, the parent process reads.
Often used for data transfer between processes.
shared memory:
The parent process shares a memory area and can achieve efficient data exchange.
You need to use the system to call shmget, shmat, shmdt, etc. to create, connect, and separate shared memory.
Note the synchronization problem, avoid multiple processes accessing the shared memory at the same time, causing data confusion.
message queue:
The system provides a message queue mechanism, allowing one process to send messages to another process.
The message queue has the function of storing messages, which can be realized by communication.
You need to use the system to call msgget, msgsnd, msgrcv, etc. to create, send and receive messages.
signal:
A signal is a kind of communication mechanism that can be used for communication between processes.
Signals can transmit simple information, but are not suitable for transmitting large amounts of data.
It is necessary to use the system to call kill, signal, etc. to send and process the signal.
Example: Father-son TV series makes TV
https://lh7-rt.googleusercontent.com/docsz/AD_4nXfHUW8iIU-kKLo89yVRLZGrQf0v66QDA9v4_gIV1lBL3nIbC0F-Xl0mTmyOB7XVsZwq-W8hlhBdqtHqX2mb3gIeq8JXV7_REU4_CLPME7BKo-TcktZ4QcpiB7fzupFkasHMb2o6Z7oEBDARtzOwWiCSuS9m?key=TmUuVIE5IMDuzFLYi8Y-jg
Synchronization problem: When multiple processes access shared resources at the same time, synchronization problems need to be considered to avoid data confusion. You can use lock, signal quantity, etc. synchronization mechanism.
Error handling: Every system call may fail, and error handling is required.
Memory management: For sharing memory, it needs to be released in time to avoid memory leakage.
summary
The data interaction and sharing of the C language parent process is the basis of multi-process programming. Select the appropriate method for data interaction, and you need to comprehensively consider the data quantity, real-timeness, security, etc. factors.
For more in-depth learning, you can refer to the following aspects:
Linux system programming: In-depth understanding of processes, threads, signals, IPC, etc. concepts.
operating system principle: Understand how the operating system manages processes and memory.
Parallel programming: Learn parallel programming principles and technology.
頁:
[1]