
进程
文章平均质量分 91
linux下进程的学习
小瑞的学习笔记
写博客完全是为了回顾学过的知识点,如果能帮助到您,那真是的十分荣幸.
展开
-
进程间通信----共享内存机制
是允许两个或多个进程(不相关或有亲缘关系)访问同一个逻辑内存的机制。它是共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。addr:指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址,映射成功后返回该地址。第一个程序向共享内存中写入数据,第二个程序向共享内存中读取数据。prot:映射区域的保护方式。length:代表将文件中多大的部分映射到内存。读取文件 也可以配合信号量,多个进程一起读取。一个小栗子:这两个进程需要在同一个目录下。原创 2023-03-29 21:31:34 · 567 阅读 · 0 评论 -
进程间通信----信号量
信号量,是一种特殊的变量:只能对信号量执行P操作和V操作P操作(要执行代码的时候): 如果信号量的值 == 0, 则挂起该进程,如果信号量的值 > 0, 则把该信号量减1V操作(执行完代码的时候): 如果有进程因该信号量而被挂起,则恢复该进程运行,如果没有进程因该信号量而挂起,则把该信号量加1注意:P操作、V操作都是原子操作,即其在执行时,不会被中断。注意:此指的“信号量”是指System V IPC的信号量,与线程所使用的信号量不同。该信号量,用于进程间通信。原创 2023-03-27 22:00:02 · 1409 阅读 · 0 评论 -
进程间通信---消息队列
消息队列,用于从一个进程向另一个进程发送数据。但仅把数据发送到一个“队列”中,而不指定由哪个进程来接受。消息队列,独立与发送消息的进程和接收消息的进程。(信号、管道、命名管道都不独立与发送和接收进程)消息队列,有最大长度限制:MSGMNB消息队列中的单条消息,也有最大长度限制:MSGMAX。原创 2023-03-26 22:12:42 · 811 阅读 · 0 评论 -
进程间通信----管道
注:单进程中的管道无实际用处,管道用于多进程间通信。一个进程实现管道通信(管道主要用于多进程通信)父子进程各有一个管道的读端和写端;这里的父子进程可以实现全双工。原创 2023-03-26 19:13:09 · 901 阅读 · 0 评论 -
进程间通信----信号
",父进程等待用户输入,如果用户按下字符A, 则向子进程发信号SIGUSR1, 子进程的输出字符串改为大写;如果用户按下字符a, 则向子进程发信号SIGUSR2, 子进程的输出字符串改为小写.当sa_mask包含某个信号A时,则在信号处理函数执行期间,如果发生了该信号A,则阻塞该信号A(即暂时不响应该信号),直到信号处理函数执行结束。参2:signal的参数2可去以下特殊值:SIG_IGN 忽略信号---------SIG_DFL 恢复默认行为。不能自定义信号,所有信号都是系统预定义的。原创 2023-03-26 15:17:01 · 544 阅读 · 0 评论 -
linxu学习之进程
实际上,CPU的执行是很快的,而待运行的程序很多,那么为了让操作系统运行多个程序,CPU会把它的执行时间划分成很多段,比如每一段是0.1秒,那么就可以这样A程序运行0.1秒,然后B程序运行0.1,然后C程序运行0.2秒,因为这个切换很快,所以我们感觉程序是同时运行的。一个进程使用fork创建子进程,如果子进程退出(exit),而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。原创 2023-03-26 14:18:55 · 4635 阅读 · 13 评论