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

项目学习总结:线程邮箱、frambuffer、习题复习与学习(1)

一、线程邮件

(一)概念:项目的框架结构,以及各个模块间如何通信。

        1.每个模块用一个线程表示,将所有线程用链表穿起来

        2.每个链表节点都有一个队列,用作缓冲区缓冲数据

(二)操作步骤

        1.创建邮件类型结构体

                ①存储链表头节点

                ②定义互斥锁                //出入队列时需看情况加锁,防止同一时刻不同线程操作同一队列空间

        2.定义消息体的结构体:发送方和接收方模块的名字,数据内容

        3.typedef  void*(*Pfun)(void *)        //定义线程函数类型

        4.定义节点结构体        //功能模块名字,线程id,队列指针,内核链表前后指针,线程函数名

        5.创建线程邮件

        6.插入节点(注册线程函数)

        7.发送和接收消息和功能函数,用于线程检测函数调用

        8.阻塞等待所有线程结束,回收资源

(三)定义结构体展示

(四)部分功能函数示例

        1.list_for_each_entry_safe(p,n,&mbs->head,node)//安全遍历节点,可能删除某个节点

                内核链表提供的遍历链表的函数,p表示正在遍历的节点,node存为前后指针

        2.注册节点函数示例        

        3.发送消息函数                //将消息结构体的指针加入,接收方的队列

二、framebuffer        //帧缓存

(一)基本操作步骤

        1.open                //打开显示设备/dev/fb0

        2.ioctl                 //获取显示设备参数

        3.mmap              //建立显存和用户空间映射关系  

        4.写入数据

        5.close                //解除映射,关闭设备文件

(二)图片显示

        1.windows修改图片参数

        2.复制到ubuntu指定目录

        3.设置图片属性,打开图片,偏移跳过前54字节头信息。

        4.遍历图片像素点写入显示

(三)通过字模和字库工具显示文字

        1.通过工具获取自模数据复制到函数(通过字库工具生成字库,复制到项目文件下)

        2.通过函数调用显示

三、习题复习与学习(1)

1.子网掩码是255.255.192.0,那么下面那个ip地址与130.12.127.231处于同一个子网上(A)?
A.130.12.64.23
B.130.45.130.1
C.130.12.167.127
D.130.22.130.1
解:①将IP地址和子网掩码都转换为二进制
②对IP地址和子网掩码进行“按位与”运算,得到网络地址。
③比较两个ip地址算出网络地址
④如果网络地址相同,则它们属于同一子网;如果不同,则不属于同一子网。

 255.255.192.0-->11111111.11111111.11000000.00000000:这表示IP地址前18位是网络位,剩下的14位是主机位
因此,要判断两个IP是否在同一子网,只需看它们的前18位是否完全相同。
130.12.127.231--> 10000010.00001100.01(只看前18位)
因为子网掩码前2个字节为全1所以IP和它相与得到的就是IP前两个字节,所以只需要判断第三个字节的前两位
第三个字节子网掩码为11,IP为01,相与得到01,所以第三字节大小范围为(64(2的6次方)~127(2的7次方-1))
2.若一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为 (84,79,56,38,40,46)
解:①堆排序基本概念
大顶堆:一种特殊的完全二叉树,其中每个节点的值都大于或等于其左右孩子节点的值(交换条件)。
堆排序建堆:将一个无序的完全二叉树调整成一个大顶堆。
②步骤
将排序码按序构造为完全二叉树
46
79        56
38  40  84
最后一个非叶子节点即56,不满足条件,则交换
调整56节点的前一个节点,满足条件
调整78节点的前一个节点,不满足条件,则交换(与最大的孩子84交换)
现在节点2的值是46,需要继续检查它所在的子树是否满足大顶堆。
循环执行直到满足“大顶堆”
3.对象间存在一对多关系,当一个对象被修改时,则会自动通知他的依赖对象,采用以下那种设计模式最好(A)
A.建造者模式:主要用于将一个复杂对象的构建与它的表示分离,通常用于创建过程复杂、步骤明确的对象。
B.策略模式:定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。
C.观察者模式:正确定义了对象间的一种一对多的依赖关系,当一个对象(称为“主题”或“被观察者”)的状态发生改变时,所有依赖于它的对象(称为“观察者”)都会得到通知并自动更新。
D.代理模式:为其他对象提供一种代理以控制对这个对象的访问。
4.操作系统内核不能调度哪一项(B)
A.进程:进程是操作系统进行资源分配和调度的基本单位。内核完全可以调度进程。
B.用户级线程:用户级线程是在用户空间中,由用户态的线程库(如Pthreads)来自行管理和调度的。操作系统内核完全不知道这些线程的存在,它只能“看见”这些线程所属的进程。因此,内核无法直接调度用户级线程。
C.其他都不是    
D.内核级线程:内核级线程是由操作系统内核直接管理和支持的。内核负责它们的创建、调度和同步。内核完全可以调度内核级线程。
5.线程的优点,不正确的是(C)
A.线程是具有最少开销的程序执行实体
B.线程间切换比进程间切换花费的时间短
C.由于共享资源,一个进程中的线程不能并发执行(×)        //可以并发执行,并且可通过共享全局变量通信
D.撤销线程比撤销进程花费的时间短
6.软件生命周期中,能准确 确定软件系统必须做的什么 和 必须具备哪些功能 的阶段是(C)
A.详细设计:这是在概要设计的基础上,进一步细化各个模块的内部实现细节
B.概要设计:也称为总体设计,主要任务是划分系统的模块、确定模块间的接口和关系。
C.需求分析:这个阶段的核心任务就是准确地理解、分析并定义用户的需求和约束,明确软件必须完成的功能和性能指标。
D.可行性分析:这个阶段在需求分析之前,主要从技术、经济、法律等方面评估项目是否值得进行
7.C
8.执行MySQL的DELETE命令时出现“foreign key constraint”错误,意味着(A)
A.在另一个表中存在引用的数据
B.外键未定义
C.数据库连接出现问题
D.表为空
9.进栈序列为1,2,3,4,5,6且进栈和出栈可以穿插进行,则不能出现的出栈序列是(C)
A.4,3,2,1,5,6
B.2,4,3,1,5,6
C.2,3,5,1,6,4    //1应该在4后面出栈
D.3,2,4,1,6,5
10.在TCP/IP参考模型中TCP协议工作在(传输层)
11.并发性是指若干事件在(同一时间间隔)发生
并行性是指若干事件在同一时刻执行
12.完全二叉树节点数是25,高度为(5)
解:当最后一层铺满时,节点数n = 2的h次方-1
13.进程的基本状态有:就绪,运行,阻塞
14.浏览器和服务器在基于https进行请求连接到数据传输过程中,运用到来如下哪些技术(ABCD)
A.对称加密技术
B.散列(哈希)算法
C.非对称加密技术
D.数字证书
15.稳定的排序算法:在排序过程中,如果两个元素的值相等,那么它们在排序前后的相对位          置?   保持不变(直接插入排序、冒泡排序)
16.C
17.单元测试一般需要那两个模块作为辅助(桩模块、驱动模块)
18.进程间通信方式都有哪些:系统管道、消息队列、共享内存、信号量、信号、套接字
19.便于插入和删除的数据结构是:链表
20.面向对象的程序设计语言具有(多态性、继承性、封装性)等共同特性

http://www.dtcms.com/a/459246.html

相关文章:

  • 网站建设实训室介绍郑州网站建设兄长好
  • 设计师网站 知乎腾讯云服务器可以退款吗
  • 网站开发 法律声明织梦如何做几种语言的网站
  • 众筹网站哪家好小程序商城功能
  • 网站域名到期查询大连高新区规划建设局网站
  • 合肥定制网站建设公司wordpress熊掌号主题
  • dede 网站图标大连开发区凯旋国际
  • 洛阳网站seo佛山网站企业
  • 【考研数学】易错点+细节
  • 网站后角色管理权限怎么设置?郑州做网站公司汉狮价格
  • 阿里云服务器怎么发布网站做网站备案不少天
  • 广州白云区建设局网站大兴网站建设多少钱
  • 自己免费网站建设服务好的岑溪网站开发
  • 淘宝内部领优惠券的网站怎么建设云服务器可以做网站吗
  • 昆明公司网站制作响应式网站框架
  • 怎么做自己的网站主页wordpress插件如何应用
  • 做淘宝客为什么要建网站网站建设人员的分工
  • 网站建设及报价格方案罗湖做网站的公司哪家好
  • 河北网站备案流程扬州建设教育信息网站
  • 深圳十大国际外贸公司渭南seo快速排名
  • 咒语和药水的成功对数
  • 天津网站建设优选企业如何用国外网站做头条
  • 网站建设公司的出路锦州网站推广
  • 网站建设推广书籍论坛企业推广
  • 好的免费网站建站平台响应式网站实例
  • 2025-10-08 Python 标准库 3——内置常量
  • 小企业网站维护什么东西网站制作南宁
  • 可以做猫头像的网站安装2个wordpress
  • 工业元宇宙:数字孪生开发框架设计精髓
  • 企业网站管理的含义及内容免费高清大图网站