当前位置: 首页 > news >正文

佛山企业网站建设教程平面设计包括哪些内容

佛山企业网站建设教程,平面设计包括哪些内容,餐饮门户网站源码,阜宁做网站需要多少钱1.进程间通信 1.1 进程间通信目的 数据传输#xff1a;一个进程需要将它的数据发送给另一个进程资源共享#xff1a;多个进程之间共享同样的资源。通知事件#xff1a;一个进程需要向另一个或一组进程发送消息#xff0c;通知它#xff08;它们#xff09;发生了某种事件…1.进程间通信 1.1 进程间通信目的 数据传输一个进程需要将它的数据发送给另一个进程资源共享多个进程之间共享同样的资源。通知事件一个进程需要向另一个或一组进程发送消息通知它它们发生了某种事件如进程终止时要通知父进程。进程控制有些进程希望完全控制另一个进程的执行如Debug进程此时控制进程希望能够拦截另一个进程的所有陷入和异常并能够及时知道它的状态改变。  数据传输一个进程需要将它的数据发送给另一个进程 资源共享多个进程之间共享同样的资源。 通知事件一个进程需要向另一个或一组进程发送消息通知它它们发生了某种事件如进程终止 时要通知父进程。 进程控制有些进程希望完全控制另一个进程的执行如Debug进程此时控制进程希望能够拦截另 一个进程的所有陷入和异常并能够及时知道它的状态改变。 1.2 进程间通信发展  管道System V进程间通信POSIX进程间通信 1.3 进程间通信分类 1.3.1 管道 匿名管道pipe命名管道 1.3.2 System V IPC System V 消息队列System V 共享内存System V 信号量 1.3.3 POSIX IPC 消息队列共享内存信号量互斥量条件变量读写锁 2.管道具有亲缘关系 管道是Unix中最古老的进程间通信的形式。 我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 2.1 用fork来共享管道原理 2.2 匿名管道  #include unistd.h 功能:创建一无名管道 原型 int pipe(int fd[2]); 参数 fd文件描述符数组,其中fd[0]表示读端, fd[1]表示写端 返回值:成功返回0失败返回错误代码 实例代码  打开管道 获取键盘stdin的数据读到buf中 把buf中的数据写到管道中 从管道中把数据写到回buf中 再把buf中的数据写到stdout中 2.3 站在文件描述符角度-深度理解管道 2.4 站在内核角度-管道本质  所以看待管道就如同看待文件一样管道的使用和文件一致迎合了“Linux一切皆文件思想”。  在my_shell中添加管道的实现 添加功能 2.5 管道读写规则 当没有数据可读时 O_NONBLOCK disableread调用阻塞即进程暂停执行一直等到有数据来到为止。 O_NONBLOCK enableread调用返回-1errno值为EAGAIN。 当管道满的时候 O_NONBLOCK disable write调用阻塞直到有进程读走数据 O_NONBLOCK enable调用返回-1errno值为EAGAIN 如果所有管道写端对应的文件描述符被关闭则read返回0 如果所有管道读端对应的文件描述符被关闭则write操作会产生信号SIGPIPE,进而可能导致write进程 退出 当要写入的数据量不大于PIPE_BUF时linux将保证写入的原子性。 当要写入的数据量大于PIPE_BUF时linux将不再保证写入的原子性。 2.6 管道特点 linux中一个匿名管道的文件描述符被关闭就不能再被打开了所以只能实现单向通信 只能用于具有共同祖先的进程具有亲缘关系的进程之间进行通信通常一个管道由一个进程创 建然后该进程调用fork此后父、子进程之间就可应用该管道。 管道提供流式服务 一般而言进程退出管道释放所以管道的生命周期随进程 一般而言内核会对管道操作进行同步与互斥 管道是半双工的数据只能向一个方向流动需要双方通信时需要建立起两个管道3. 命名管道 管道应用的一个限制就是只能在具有共同祖先具有亲缘关系的进程间通信。如果我们想在不相关的进程之间交换数据可以使用FIFO文件来做这项工作它经常被称为命名管道。命名管道是一种特殊类型的文件 3.1 创建命名管道 命令行方式创建 mkfifo filename 在代码中创建 int mkfifo(const char *filename,mode_t mode); 真实权限收到umask的影响 匿名管道与命名管道的区别 匿名管道由pipe函数创建并打开。 命名管道由mkfifo函数创建打开用open FIFO命名管道与pipe匿名管道之间唯一的区别在它们创建与打开的方式不同一但这些工作完 成之后它们具有相同的语义。命名管道的打开规则 如果当前打开操作是为读而打开FIFO时 O_NONBLOCK disable阻塞直到有相应进程为写而打开该FIFO O_NONBLOCK enable立刻返回成功 如果当前打开操作是为写而打开FIFO时 O_NONBLOCK disable阻塞直到有相应进程为读而打开该FIFO O_NONBLOCK enable立刻返回失败错误码为ENXIO 实验1-用命名管道实现文件拷贝 实验2-用命名管道实现serverclient通信 3. system V共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间这些进程间数据传递不再涉及到 内核换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 共享内存数据结构 struct shmid_ds {struct ipc_perm shm_perm; /* operation perms */int shm_segsz; /* size of segment (bytes) */__kernel_time_t shm_atime; /* last attach time */__kernel_time_t shm_dtime; /* last detach time */__kernel_time_t shm_ctime; /* last change time */__kernel_ipc_pid_t shm_cpid; /* pid of creator */__kernel_ipc_pid_t shm_lpid; /* pid of last operator */unsigned short shm_nattch; /* no. of current attaches */unsigned short shm_unused; /* compatibility */void *shm_unused2; /* ditto - used by DIPC */void *shm_unused3; /* unused */ };共享内存函数 shmget函数 功能用来创建共享内存 原型int shmget(key_t key, size_t size, int shmflg); 参数key:这个共享内存段名字size:共享内存大小shmflg:由九个权限标志构成它们的用法和创建文件时使用的mode模式标志是一样的 返回值成功返回一个非负整数即该共享内存段的标识码失败返回-1 shmat函数 功能将共享内存段连接到进程地址空间 原型void *shmat(int shmid, const void *shmaddr, int shmflg); 参数shmid: 共享内存标识shmaddr:指定连接的地址shmflg:它的两个可能取值是SHM_RND和SHM_RDONLY 返回值成功返回一个指针指向共享内存第一个节失败返回-1shmaddr为NULL核心自动选择一个地址 shmaddr不为NULL且shmflg无SHM_RND标记则以shmaddr为连接地址。 shmaddr不为NULL且shmflg设置了SHM_RND标记则连接的地址会自动向下调整为SHMLBA的整数倍。公式shmaddr - (shmaddr % SHMLBA) shmflgSHM_RDONLY表示连接操作用来只读共享内存 shmdt函数 功能将共享内存段与当前进程脱离 原型int shmdt(const void *shmaddr); 参数shmaddr: 由shmat所返回的指针 返回值成功返回0失败返回-1 注意将共享内存段与当前进程脱离不等于删除共享内存段 shmctl函数 功能用于控制共享内存 原型int shmctl(int shmid, int cmd, struct shmid_ds *buf); 参数shmid:由shmget返回的共享内存标识码cmd:将要采取的动作有三个可取值buf:指向一个保存着共享内存的模式状态和访问权限的数据结构 返回值成功返回0失败返回-1 cmd IPC_STAT得到共享内存的状态把共享内存的shmid_ds结构复制到buf中 IPC_SET改变共享内存的状态把buf所指的shmid_ds结构中的uid、gid、mode复制到共享内存的shmid_ds结构内 IPC_RMID删除这片共享内存 键就是共享内存的keyshmid是共享内存的编号semid是信号量数组的编号nsems对应信号量集中信号量的个数pid就是进程ip,可通过 ps -ef | grep pid 查看详情semnum是信号量的编号ncount是等待该信号的进程数拥有者就是创建它的用户owner权限也就是perms字节为创建的大小bytes连接数为连接到共享内存的进程数nattach状态是共享内存的状态status。   4. system V消息队列 5. system V信号量 6.进程互斥 由于各进程要求共享资源而且有些资源需要互斥使用因此各进程间竞争使用这些资源进程的这种关系为进程的互斥系统中某些资源一次只允许一个进程使用称这样的资源为临界资源或互斥资源。在进程中涉及到互斥资源的程序段叫临界区特性上IPC资源必须删除否则不会自动清除除非重启所以system V IPC资源的生命周期随内核
http://www.tj-hxxt.cn/news/137307.html

相关文章:

  • 大连网站建设设计公司做a图片视频在线观看网站
  • 如何免费创建网站平台汕头市网站建设
  • 免费制作微网站镇江市城市建设投资公司官方网站
  • 自助网站建设哪家好删除百度收录的网站
  • 苏州电商网站开发asp.net 网站 相册
  • 网站开发完以后交付源代码建网站的好处
  • 大型网站的设计权威的锦州网站建设
  • 网站系统制作教程小程序做网站
  • 大麦网网站建设的功能定位网页美工设计网课
  • 公司网站现状win10 iis wordpress
  • 网站建设期末论文苏州做网站怎么样
  • 网站无搜索结果页面怎么做中国建设工程造价协会网站
  • 怎么做个手机版的网站网页怎么做才美观
  • 长春网络建站企业网站 源码 开源
  • 化妆品网站后台泰安外贸网站建设公司
  • 浙江网站建设有哪些seo发帖软件
  • 有个网站叫设计什么网站建设过程中要怎么打开速度
  • 国内工业设计网站台州网站开发
  • 本网站建设中网站设计中的div是什么
  • 大连手机自适应网站建设报价seo的网站
  • 有人做网站吗建筑网站汇总
  • 自助建网站教程做短视频必备的网站
  • 陕西住房和城乡建设厅网站苏州工业园区公积金
  • sns社交网站.net源码千部小黄油资源百度云
  • 企业网站搜索引擎推广方法襄阳营销型网站
  • 在线服务器网站网站咨询弹窗怎么做
  • 龙岗大运做网站的公司wordpress建站多少钱
  • 山西网站建设价格山东手机网站建设公司
  • 网站的尺寸大型网站开发实战
  • 网站建设贰金手指下拉贰拾wordpress设置个人头像