zoukankan      html  css  js  c++  java
  • 课下 补交 20155335

    学习使用stat(1),并用C语言实现
    提交学习stat(1)的截图
    man -k ,grep -r的使用
    伪代码
    产品代码 mystate.c,提交码云链接
    测试代码,mystat 与stat(1)对比,提交截图

    首先,利用 man命令学习stat(1),man 1 stat,结果如下图:

    通过学习理解到,stat命令主要用于显示文件或文件系统的详细信息,
    -L:显示符号链接所指向文件的信息
    -f:显示文件所在文件系统的信息
    -t:以简洁方式输出信息
    -c:以特定格式输出文件的某些信息

     

    对比一下二者:mystat 与stat

    课下测试IPC,

    实验要求:研究Linux下IPC机制:原理,优缺点,每种机制至少给一个示例,提交研究博客的链接
    共享内存
    管道
    FIFO
    信号
    消息队列

    简单介绍:IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。

    共享内存原理:共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在该进程的地址空间(这里的地址空间具体是哪个地方?)中。其他进程可以将同一段共享内存连接到自己的地址空间中。

    共享内存优缺点:1.方便使用文件共享 2.方便使用Messenger 3.可以在onTransact方法中 进行权限验证

    实现代码:获取共享内存

    管道

    管道原理:管道实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。
    管道优缺点:管道是由内核管理的一个缓冲区,一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信息。
    实现代码:向管道文件中写数据
    实现代码:从管道文件中读数据
    实验截图:

    FIFO

    FIFO原理:管道(FIFO)是一种特殊类型的文件,它在系统中以文件形式存在。这样克服了管道的弊端,他可以允许没有亲缘关系的进程间通信。
    FIFO优缺点:方便一个进程向文件中写数据,方便一个进程将读出数据并丢弃向命名管道文件中写数据
    实现代码:向命名管道文件中写数据
    实现代码:从命名管道文件中读数据并丢弃
    实验截图:

    信号

    信号原理:信号机制是unix系统中最为古老的进程之间的通信机制,用于一个或几个进程之间传递异步信号。
    信号缺点:对于命名管道FIFO来说,IO操作和普通管道IO操作基本一样.
    实现代码:信号
    实验截图:

    消息队列

    消息队列原理:消息队列是内核地址空间中的内部链表,通过linux内核在各个进程直接传递内容,消息顺序地发送到消息队列中,并以几种不同的方式从队列中获得,每个消息队列可以用IPC标识符唯一地进行识别。内核中的消息队列是通过IPC的标识符来区别,不同的消息队列直接是相互独立的。每个消息队列中的消息。
    消息队列优缺点:消息队列克服了信号承载信息量少,管道只能承载无格式字符流。命名管道相比,消息队列的优势在于消息队列也可以独立于发送和接收进程而存在,从而消除了在同步命名管道的打开和关闭时可能产生的困难。2、同时通过发送消息还可以避免命名管道的同步和阻塞问题,不需要由进程自己来提供同步方法。
    实现代码:向进程发送消息
    实现代码:一个进程接收消息
    实验截图:

  • 相关阅读:
    java学习
    瓜娃《guava》api快速入门
    List,set,Map 的用法和区别
    css selector
    字节流与字符流区别
    jsoup的elements类
    javaio-printwriter
    map遍历的四种方法
    kafka集群和zookeeper集群的部署,kafka的java代码示例
    Ubuntu12.04安装中文字体(转)
  • 原文地址:https://www.cnblogs.com/xieboke/p/7901120.html
Copyright © 2011-2022 走看看