自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangdsh的博客

思维导图 系统开发 管理学

  • 博客(60)
  • 收藏
  • 关注

原创 Linux驱动 GNU扩展C

对成员赋值,例如结构体:struct st1 { int a; int b; int c;}Linux的赋值风格是:struct st1 st1 = { .a = 1, .b = 2, .c =3,}

2020-03-30 20:04:03 392

原创 模型 帕累托法则

一个典型的模式表明:80%的产出源自20%的投入;是按事情的重要程度编排行事优先次序的准则是建立在“重要的少数与琐碎的多数”原理的基础上。20%的机构和大户占有股市中80%的主流资金,80%的散户占有20%资金;20%的资本带来了80%的投资利润,而另80%的资本却只收到20%的利润。20%的已婚者,占离婚人口的80%(那些不断离婚的人,扭曲了统计数字);注意:下面的80%,20% 表达的是多数和少数,并不是精确比例的数字。20%的人明天的事情今天做,80%的人今天的事情明天做;

2020-03-30 17:08:28 1977 4

原创 模型 5Why分析法

5why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要10次,根据大量的实践经验,问五次为什么最容易清晰地辨别出根原因,这也是将此方法定义为5why分析法的原因。这种方法最初是由丰田佐吉提出的;后来,丰田汽车公司在发展完善其制造方法学的过程之中也采用了这一方法。

2020-03-30 15:45:19 2754

原创 模型 SMART原则

SMART原则是一种目标制定和管理的方法,其中SMART是一个首字母缩略词,代表具体(Specific)、可衡量(Measurable)、可实现(Achievable)、相关(Relevant)和有时限(Time-bound)。

2020-03-30 11:57:02 12156

原创 专题分纲目录 Linux C系统编程

专题分纲目录 均为索引,本纲为:Linux C系统编程 系列文章目录C语言 思维导图 总结Linux C 系统编程(01) 文件与I/O 基本操作Linux C 系统编程(02) 文件与I/O 文件管理Linux C 系统编程(03) 文件与I/O 目录操作Linux C 系统编程(04) 文件与I/O 特殊文件Linux C 系统编程(05) 时间与日历编程Linux...

2020-03-30 09:45:32 417 1

原创 专题分纲目录 Linux环境

专题分纲目录 均为索引,本纲为:Linux环境 系列文章目录Linux基础 常见命令 思维导图总结Linux基础 ShellScript 思维导图总结Linux基础 Vim编辑器 & nano 编辑器Linux基础 MakefileLinux基础 gcc编译器Linux基础 gdb调试器Linux基础 常见问题-ubuntu系统 忘记密码...

2020-03-30 09:45:27 338

原创 Linux C 系统编程 4-3 网络编程 进阶

socketpair函数创建一对未命名的UNIX域套接字,由于没有命名,所以其他进程不能使用该套接字进行通信,也就是说,只有保存了未命名的UNIX域套接字的文件描述符的进程才可以使用它。这种方法的思想就是构造一张需要读取数据的设备表(通常是文件描述),调用一个函数轮询这个表中的设备,直到有一个设备可以读写,该函数才返回。服务器的执行流程和客户端的执行流程与网络通信套接字的执行流程一致。多路I/O是另一种处理I/O的方法,比传统的I/O更有效率,是一种充分利用时间的典型,在网络应用中很常用。

2020-03-29 19:11:12 489

原创 Linux C 系统编程 4-2 网络编程 基础

write函数只是将要写入文件的内容放到缓存中,真正写到外存上是需要时间的,对于本地文件,几乎不会出错,但是在网络环境下,出错的概率就大了;当进程需要对套接字进行读写操作,而套接字的数据尚未准备好,则进行读写套接字操作的函数将会阻塞,使进程进入休眠状态等待,其后面的操作也就无法进行了,非阻塞I/O将解决这种问题。为解决这个问题,网络协议提供一种字节序,当跨主机的两个进程进行通信时,先将需要传输的数据转换成网络字节序,待接收方接收数据后,将其转换为本机的字节序。对于无连接服务,这一步是没有必要的。

2020-03-29 19:11:06 441

原创 Linux C 系统编程 4-1 网络编程 TCP与UDP协议

发送窗口的移动是在发送端收到接收端的确认以后才进行的,发送端每次发送的报文段不大于发送窗口的大小。滑动窗口本质上是描述接收方的TCP数据报缓冲区的大小,发送方根据该数据来计算最多能发送多长的数据。如果发送方收到接收方的窗口大小为0的TCP数据报,则停止发送数据,直到等到接收方发送窗口大小不为0的数据报的到来。注意:用户数据报伪首部是一个虚拟的数据结构,主要用在计算校验和时和UDP用户数据连接在一起,得到一个用于计算UDP用户数据报检验和的临时数据报。服务的类型分为两类: 面向连接的服务、面向无连接的服务。

2020-03-29 19:11:01 655

原创 Linux C 系统编程 1-6 系统库访问

涉及系统库访问的几个函数有dlopen、dlsym、dlclose、dlerr。这几个函数主要用于加载动态链接库。系统库的出现是为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常方便。1 dlopen、dlsym、dlclose、dlerror简...

2020-03-29 09:26:02 324

原创 Linux C 系统编程 3-2 线程管理 线程控制

线程的调度参数是可以通过API来设置的,使用pthread_attr_getschedparam来获取调度参数,使用pthread_attr_setschedparam来设置调度参数。在使用pthread_create函数创建一个线程的时候,可以通过第2个参数attr设置线程的属性,设置为NULL则使用系统默认属性来创建线程,线程的属性被组织在一个结构体中。使用pthread_attr_getstacksize来获取线程的栈大小,使用pthread_attr_setstacksize来设置线程的栈大小。

2020-03-29 09:25:32 541

原创 Linux C 系统编程 3-1 线程管理 基本操作

在分配线程时,一般将需要执行阻塞操作的线程设置为内核态线程,将不会进行阻塞操作的线程设置为用户态线程。而创建多线程进行操作的本意是为了并发执行任务,但是由于互斥锁的缘故导致线程的操作变成了串行的,程序运行的效率会降低。在程序执行时,如果对共享资源进行读操作的线程远多于写线程的时候,使用这种读写锁可以大大提高线程的并发度,从而提高线程的运行效率。在线程结束运行后,linux内核保存的只是存储退出信息内存区域的首地址,并未将退出信息保存在内核中,一般使用动态分配的内存/全局变量来保存线程退出的信息。

2020-03-29 09:25:15 504

原创 Linux C 系统编程 2-4 进程管理 进程间通信

FIFO可以被shell调用使数据从一个进程到另一个进程,系统不必为该中间通道去烦恼清理不必要的垃圾,或者去释放该通道的资源,它可以被留在后来的进程所使用,并且规避了匿名管道在作用域的限制,可以应用于不相关的进程之间。当进程不再使用一个信号量控制的共享资源时,此信号量的值+1,对信号量的增减均为原子操作,这是由于信号量的主要作用是维护资源的互斥/多进程的同步访问,而在信号量的创建/初始化时,不能保证为原子操作。一种常见的通信方式之一,在两个进程间实现一个数据流通的管道,该管道可以使单向的,也可以是双向的;

2020-03-29 09:24:44 792

原创 Linux C 系统编程 2-3 进程管理 信号与信号处理

信号屏蔽字的本质是同信号集一样的,是一个位向量,信号编码对应的位是1表示屏蔽该信号,对应的位是0表示处理该信号。注意:无论上述5种方法哪一种发送了信号,接收信号的进程都会暂停执行程序,转而处理接收到的信号。当一个进程的运行条件已经具备时仍然需要使进程阻塞(例如期望进程延迟执行,sleep函数经常起到这个作用),这种由进程资源进入阻塞状态的1情况称为进程挂起。因此,如果信号的处理方式是终结进程,那么应该编写一个处理所有善后事宜的函数作为此信号的信号处理程序,使用signal函数设置后使用。

2020-03-29 09:23:55 469

原创 Linux C 系统编程 2-2 进程管理 进程控制

子进程退出的时候,进程的退出状态信息保存在内核中,此时父进程并没有调用wait函数来处理,子进程的进程ID也同样保存在系统的进程列表中,这时的进程称之为僵尸进程。linux环境下使用exec函数执行一个新的程序,该函数在文件系统中搜索指定路径的文件,并且将该文件内容复制到exec函数的地址空间,取代原来进程的内容,该进程仍然保持父进程的进程空间的内容,只不过该进程的代码段和数据段已经被替换。只有两种用户可以修改进程的实际用户ID和有效用户ID:跟用户和等于进程的实际用户ID的用户。

2020-03-29 09:23:14 440

原创 Linux C 系统编程 2-1 进程管理 进程环境

对于一个简单的常量来说,它是存储在代码段里,因为简单变量的长度是固定的。因此在调用free函数之后,该内存块中的内容不会立刻消失,但那是这时此内容已经不受操作系统的保护,因此有效的时间也是随机的。坏处是perror是无缓冲的,是一个有副作用的函数,其职能是输出离该函数调用最近的一个系统函数的出错原因。栈与堆的位置往往是相对的,但是具体的分配要看处理器的存储结构,与大端小端的差别是类似的。goto语句是一个只能在函数内部跳转的语句,即这种跳转是局部的,对于全局跳转,goto语句是无力的。

2020-03-29 09:22:44 381

原创 Linux C 系统编程 1-5 时间与日历编程

linux/Unix下的时间分为两种:系统时间:一般是一个长整型数据,单位是秒。 日历时间:更贴近于人们熟悉的时间表示法,通过一个结构体tm来更贴切地标明时间的年、月、日、时、分、秒、星期。实际上就是一种结构的转换而已。1 系统时间在linux/Unix系统中,采用的是全球时间协调计时法,描述的是自1970年1约1日以来所经过的秒数,这个值的数据类型是time_t,一个长整型数据。 ...

2020-03-27 20:04:59 1098

原创 Linux C 系统编程 1-4 文件与I/O 特殊文件

1 正则表达式含义1.1 什么是正则表达式正则表达式就是处理字符串的方法,以行为单位来进行字符串处理的方法,通过一些特殊符号的辅助,让用户轻易的找到、删除、替换某特定字符串的处理程序。只要工具支持正则表达式,则该工具就可以处理正则表达式字符串(对于vim、grep、awk、sed等工具支持正则表达式,而cp、ls等不支持正则表达式)。1.2 正则表达式对于系统管理员的作用由于系统面...

2020-03-25 15:21:10 369

原创 Linux基础 ShellScript 思维导图总结

上图 主要是 使用思维导图 对Linux shell脚本 进行整理。因为具体的内容在前面 链接 中已经有详细的案例进行解读。因此思维导图主要以 绘制框图 为主。该 脑图也主要以 复习用为主,主要用于复盘知识体系。@2 详细学习shell脚本,这里有一个公认不错的教程。

2020-03-24 19:49:35 860

原创 Linux C 系统编程 1-3 文件与I/O 文件目录

1 Shell Script编写1.1 shell基本说明1.1.1 shell Script的功能自动化管理 追踪与管理系统的重要工作 简单入侵检测功能 连续命令单一化:即批处理功能 简单的数据处理:例如awk对数据的处理1.1.2 Shell Script的编写流程Shell Script主要是配合C语言更方便地完成工作;同时为了解决重复输入命令集的问题,制作了一个命...

2020-03-24 17:41:32 356

原创 Linux基础 gdb调试器

1 gdb调试器概述GDB(GNU DeBugger)是 GNU 的调试器,一般和 gcc(GNU Compiler Collection)配搭使用。要使用 GDB 进行调试,编译程序时要指定-g 或-ggdb 的编译选项。如:$gcc –g main.c / gcc –ggdb main.c这样,gcc 就会在生成可执行文件时产生调试信息。-g 用于产生一般的调试信息 -gg......

2020-03-24 16:39:09 1183

原创 Linux基础 gcc编译器

当系统加载可执行代码时候,能够知道其所依赖的库的名字,但是还需要知道绝对路径,此时就需要系统动态载入器(dynamic linker/loader),对于elf格式的可执行程序,是由ld -linux.so*来完成的,它先后搜索elf文件的 DT_RPATH段,环境变量LD_LIBRARY_PATH /etc/ld.so.cache文件列表—/lib/,/usr/lib目录找到库文件后将其载入内存。库既可以是静态的也可以是动态的。链接器将多个目标文件链接成一个完整的,可加载的,可执行的目标文件。

2020-03-24 15:16:30 2672

原创 Linux基础 Makefile

make工具支持在规则的命令行前加上符号-,忽略该命令执行结果的判断,即。在makefile中可以执行shell中的命令,因此许多工作可以交由shell去完成,这样做简化了makefile的编写工作,也利于makefile的移植。一般情况下makefile在命名的时候用makefile或者Makefile,如果是其他的名字也可以,但是在make的时候要加参数-f,即。在make执行文件时,用户设置了--include-dir参数,make就会在用户指定的目录下寻找需要包含的makefile文件。

2020-03-24 13:27:38 1052 1

原创 Linux基础 Vim编辑器 & nano 编辑器

1 vim简介:============================= @1在linux中,大部分配置文件都是以ASCII的纯文本形式存在,因此利用简单的文字编辑软件就能够修改设置了。 @2在linux中,常见的文本编辑器有很多,例如:Emacs、pico、nano、joe、vim等。 @3为什么需要vi: @@3.1所有UNIX like系...

2020-03-24 12:55:59 854

原创 模型 STAR原则

所谓STAR原则,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)四个英文单词的首字母组合。STAR原则是结构化面试当中非常重要的一个理论。

2020-03-23 16:34:25 11297

原创 模型 乔哈里视窗

这个概念最初是由乔瑟夫·勒夫(Joseph Luft)和哈里·英格拉姆(Harry Ingram)在20世纪50年代提出的,故以他俩的名字合并为这个概念的名称,当时他们正从事组织动力学研究。乔哈里视窗也被称为: “自我意识的发现—反馈模型”, 或“信息交流过程管理工具”。 它实际上包含的交流信息有: 情感、经验、观点、态度、技能、目的、动机等等,作为这些信息主体的个人往往和某个组织有一定的联系。他们认为人对自己的认识是一个不断探索的过程。

2020-03-23 11:11:08 4543

原创 模型 PDCA环

PDCA循环是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。全面质量管理的思想基础和方法依据就是PDCA循环。PDCA循环的含义是将质量管理分为四个阶段,即:计划(Plan):包括方针和目标的确定,以及活动规划的制定。要通过市场调查、用户访问等,摸清用户对产品质量的要求,确定质量政策、质量目标和质量计划等。包括现状调查、分析、确定要因、制定计划。执行(Do):根据已知的信息,设计具体的方法、方案和计划布局;再根据设计和布局,进行具体运作,实现计划中的内容。

2020-03-22 13:16:00 1772

原创 Linux C 系统编程 1-2 文件与I/O 文件管理

文件的设置用户ID位和设置用户组ID位可以使进程的有效用户ID和用户组ID等同于文件所有者的用户ID和用户组ID,即可以使进程拥有者的权限暂时等同于文件所有者的权限。如果文件的链接数为0,但是文件处于打开状态则文件不被删除,只是对文件的读和写操作实际上是对内存缓冲区进行操作,当文件关闭时,内存中的缓冲区清空,文件也就消失了。设置用户ID位的作用:用户程序本身不可以操作内核区的文件,但是通过向内核请求得到的批准,暂时创建一个新的进程后,利用这个进程就可以用内核的权限操作文件。

2020-03-21 17:07:43 421

原创 Linux C 系统编程 1-1 文件与I/O 基本操作

本章节思维导图如下所示(思维导图会持续迭代):第一层:第二层:计算机的两个重要概念:时间与空间。文件描述符是进程打开文件的桥梁,通过这个桥梁进程才能够对文件进行操作。在linux环境下每个磁盘文件打开时都会在内核中建立一个文件表项,这个文件表项包括文件的状态信息、存储文件内容的缓冲区以及当前文件位置的读写等,当同一个文件打开两次时会创建两个这样的文件表项,读写该文件只会影响到该文件表项的读写位置,这些文件表项共同保存在内核的数组里,这个数组就是文件表。

2020-03-21 17:07:30 761

原创 Android系统基础(02) 系统源码环境搭建

1安装ubuntu操作系统(光盘/U盘)修改BIOS,从U盘/光盘启动->开始安装->配置swap分区==内存大小,其余空间ext4分配给/->重启,完成=================================================2 安装并更新ubuntu12.04系统安装工作相关软件&&Android整体环境&&amp...

2020-03-21 17:06:42 772

原创 C语言 思维导图 总结

1 cd commandcd //切换当前路径.默认切换到当前用户主目录cd~//切换到当前用户主目录cd -//切换到上一次打开的目录2 pwd && which commandpwd//查看当前所在位置which//查找一个或多个命令command的程序文件所在,给出绝对路径...

2020-03-21 16:04:29 1643

原创 Linux基础 常见命令 思维导图总结

上图 主要是 使用思维导图 对Linux的 命令进行整理。上图 是对Linux系统进行简单的了解。@2 Linux基本命令集。@1 Linux系统基础。

2020-03-21 16:04:16 1810

原创 Android系统基础(03) Android系统源码下载

该系列文章总纲链接:专题分纲目录Android系统基础常规官方网站说明:Android 源码官方网站为(google你懂的):https://source.android.com 官网参考链接,对应的tag(tag是一种标签,我们可以根据tag来判断下载的代码具体是哪一个版本。)相关的页面链接为:https://source.android.com/source/build-numbers.html#source-code-tags-and-builds1 安装repo 与初始化repo客户端.

2020-03-21 16:02:53 2470 1

原创 Android系统基础(01)简介

1 Android基本架构概述一共是Application | framework | (HAL&&Dalvik/ART) | (Kernel&&Driver) 四层,经典架构图如下: Android四层的含义分别如下:APP:该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者...

2020-03-21 16:02:42 1323

原创 模型 PREP

PREP模型是一种用于有效沟通和表达观点的结构化方法。它由四个主要部分组成:Point(结论)、Reason(理由)、Example(例证)和Point(重申结论)。

2020-03-18 19:43:53 7459

原创 模型 耗散结构

对于耗散结构的必要条件,这里以一个故事进行说明,故事的前提是:三个工人要把砖从一楼搬到二楼,工人A站在地上往上递砖,工人C在二楼窗户接砖,工人A没办法直接把砖递给工人C,于是想了一个办法,由工人B站在桌子上,把工人A递给他的砖转交给工人C。平静的水面,如果不引入任何外部的力量,那么它最终会成为一潭死水,但是水面上层层的涟漪告诉我们,外部的系统,可能是一颗石子,也可能是天空中的雨滴,打破了这种平静,带来了生命的活力。生命作为一种典型的耗散结构,要进入负熵,维持负熵,必须开放,与外界进行物质、能量的交换。

2020-03-17 10:42:53 1360

原创 模型 彼得原理

事本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。晋升至无能。事1.1 S政府档案的故事米尼 是Excelsior市公共工程部的维修领班。他是市政府高级官员们的亲信,众人都称赞他为人亲切和蔼。“我喜欢米尼恩。”工程部主管说,“他有良好的判断力,总是令人愉悦,容易相处。”就米尼恩的职位而言,这种做法是很合适的,他不参与制定政策,因此也没必要跟上司们闹矛盾。后来工程部主管退休了,米尼恩接替了他的职位。他继续附和每个人的意见。

2020-03-16 10:11:41 687

原创 专题分纲目录 Android GUI系统之SurfaceFlinger

专题分纲目录 均为索引,本纲为:Android SurfaceFlinger显示子系统 系列文章目录Android GUI系统之SurfaceFlinger(01)显示系统框架Android GUI系统之SurfaceFlinger(02)应用端分析1-获取SurfaceAndroid GUI系统之SurfaceFlinger(03)应用端分析2-申请BufferAndroid G...

2020-03-14 15:05:36 7305 1

原创 Android GUI系统之SurfaceFlinger(09)服务端分析4-handleMessageRefresh处理

3signalRefreshsignalRefresh的代码实现如下:void SurfaceFlinger::signalRefresh() { mEventQueue.refresh();}这里继续分析mEventQueue的refresh方法,代码实现如下:void MessageQueue::refresh() {#if INVALIDATE_ON_VSY...

2020-03-14 13:55:42 3086 1

原创 Android SurfaceFlinger导读(10)理解DisplayDevice

Display分析

2020-03-14 13:55:10 5380 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除