第一篇:嵌入式Linux学习笔记(四)-内存管理单元mmu
嵌入式Linux学习笔记
(四)-内存管理单元mmu
一、内存管理单元MMU介绍内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。
重点就在于地址映射:页表的结构与建立、映射的过程。
1、S3C2440 MMU地址变换过程
1)地址的分类
一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分在用到时从磁盘载入,当内存不足时,再将暂时不用的部分调出到磁盘。
这使得大程序可以在较小的内存空间中运行,也使得内存中可以同时装入更多的程序并发执行,这样的存储器一般称为虚拟存储器。
虚拟地址最终需要转换为物理地址才能读写实际的数据,通过将虚拟地址空间和物理空间划分为同样大小的空间(段或页),然后两个空间建立映射关系。
由于虚拟地址空间远大于物理地址,可能多块虚拟地址空间映射到同一块物理地址空间,或者有些虚拟地址空间没有映射到具体的物理地址空间上去(使用到时再映射)。
ARM cpu地址转换涉及三种地址:虚拟地址(VA,Virtual Address)、变换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address)
没有启动MMU时,CPU核心,cache,MMU,外设等所有部件使用的都是物理地址。
启动MMU后,CPU核心对外发出虚拟地址VA;VA被转换为MVA供cache,MMU使用,在这里MVA被转换成PA;最后使用PA读取实际设备
①CPU核心看到和用到的只是虚拟地址VA,至于VA如果去对应物理地址PA,CPU核心不理会 ②caches和MMU看不到VA,他们利用MVA转换得到PA ③实际设备看不到VA、MVA,读写它们使用的是物理地址PA
MVA是除CPU核心外的其他部分看到的虚拟地址,VA与MVA的变化关系
如果VA<32M,需要使用进程标识号PID(通过读CP15的C13获得)来转换为MVA
if(VA < 32M)then
MVA = VA |(PID << 25)else
MVA = VA
使用MVA,而不使用VA的目的是,当有重叠的VA时,转换为MVA地址并不重叠,减小转换为PA的代价
比如两个进程1、2,VA都是0-(32M-1),则MVA分别为0x02000000-0x03ffffff,0x04000000-0x05ffffff。下文说到虚拟地址,如果没有特别指出,就是指MVA
2)虚拟地址到物理地址的转换过程
arm cpu使用页表来进行转换,页表由一个个条目组成,每个条目存储一段虚拟地址对应的物理地址及访问权限,或者下一级页表的地址 S3C2440最多会用到两级页表,以段(Section,1M)的方式进行转换时只用到一级页表,以页(Page)的方式进行转换时用到两级页表。
页的大小有3种:大页(64KB),小页(4KB),极小页(1KB)。条目也称为描述符,有:段描述符、大页描述符、小页描述符、极小页描述符-保存段、大页、小页、极小页的起始物理地址;粗页表描述符、细页表描述符,它们保存二级页表的物理地址。
下图为S3C2440的地址转换图
TTB base代表一级页表的地址,将它写入协处理器CP15的寄存器C2(称为页表基址寄存器)即可,一级页表的地址是16K对齐,使用[31:14]存储页表基址,[13:0]为0 一级页表使用4096个描述符来表示4GB空间,每个描述符对应1MB的虚拟地址,存储它对应的1MB物理空间的起始地址,或者存储下一级页表的地址。使用MVA[31:20]来索引一级页表(20-31一共12位,2^12=4096,所以是4096个描述符),得到一个描述符,每个描述符占4个字节。一级页表描述符格式如下:
一级页表描述符
最低两位: 0b00:无效
0b01:粗页表(Coarse page table)
[31:10]为粗页表基址,此描述符低10位填充0后就是一个二级页表的物理地址,二级页表含256个条目(使用[9:2],2^8=256个),称为粗页表(Coarse page table)。其中每个条目表示4KB大小的物理地址空间,一个粗页表表示1MB物理地址
0b10:段(Section)
[31:20]为段基址,、此描述符低20位填充0后就是一块1MB物理地址空间的起始地址。MVA[19:0],用来在这1MB空间中寻址。描述符的位[31:20]和MVA[19:0]构成了这个虚拟地址MVA对应的物理地址
以段的方式进行映射时,虚拟地址MVA到物理地址PA的转换过程如下:
①页表基址寄存器位[31:14]和MVA[31:20]组成一个低两位为0的32位地址,MMU利用这个地址找到段描述符
②取出段描述符的位[31:20](段基址),它和MVA[19:0]组成一个32位的物理地址(这就是MVA对应的PA)
段地址转换过程
0b11:细页表(Fine page table)
[31:12]为细页表基址(Fine page table base address),此描述符的低12位填充0后,就是一个二级页表的物理地址。此二级页表含1024个条目(使用[11:2],10位),其中每个条目表示大小1kb的物理地址空间,一个细页表表示1MB物理地址空间
以大页(64KB),小页(4KB)或极小页(1KB)进行地址映射时,需要用到二级页表,二级页表有粗页表、细页表两种,二级页表描述符格式如下:
二级页表描述符
最低两位: 0b00:无效
0b01:大页描述符
位[31:16]为大页基址,此描述符的低16位填充0后就是一块64KB物理地址空间的起始地址粗页表中的每个条目只能表示4KB物理空间,如果大页描述符保存在粗页表中,则连续16个条目都保存同一个大页描述符。类似的,细页表中每个条目只能表示1KB的物理空间,如果大页描述符保存在细页表中,则连续64个条目都保存同一个大页描述符。
下面以保存在粗页表中的大页描述符为例,说明地址转化那过程
①页表基址寄存器[31:14]和MVA[31:20]组成一个低两位为0的32位地址,MMU利用这个地址找到粗页表描述符
②取出粗页表描述符的[31:10](即粗页表基址),它和MVA[19:12]组成一个低两位为0的32位物理地址,通过这个地址找到大页描述符
③取出大页描述符的[31:16](即大页基址),它和MVA[15:0]组成一个32位的物理地址,即MVA对应的PA 步骤②和③中,用于在粗页表中索引的MVA[19:12]、用于在大页内寻址的MVA[15:0]有重合的位[15:12],当位[15:12]从0b0000变化到0b1111时,步骤②得到的大页描述符相同,所以粗页表中有连续16个条目保存同一个大页描述符
大页的地址转换过程(大页描述符保存在粗页表中)
0b10:小页描述符
[31:12]为小页基址(Small page base address),此描述符的低12位填充0后就是一块4kb([11:0],一共12位,2^12=4096)物理地址空间的起始地址。粗页表中每个条目表示4kb的物理空间,如果小页描述符保存在粗页表中,则只需要用一个条目来保存一个小页描述符。类似的,细页表中每个条目只能表示1kb的物理空间,如果小页保存在细页表中,则连续4个条目都保存同一个小页描述符。下面以保存在粗页表中的小页描述符为例,说明地址转换过程:
①页表基址[31:14]和MVA[31:20]组成一个低两位为0的32位地址,MMU利用这个地址找到粗页表描述符
②取出粗页表描述符[31:10](即粗页表基址),它和MVA[19:12]组成一个低两位为0的32位物理地址,用这个地址找到小页描述符
③取出小页描述符的位[31:12](即小页基址),它和MVA[11:0]组成一个32位物理地址(即MVA对应的PA)
小页描述符保存在细页表中,地址转换过程和上面类似。
小页的地址转换过程(小页描述符保存在粗页表中)
0b11:极小页描述符
[31:10]为极小页基址(Tiny page base address),此描述符的低10位填充0后就是一块1KB物理地址空间的起始地址。极小页描述符只能保存在细页表中,用一个条目来保存一耳光极小页描述符 下面是极小页的地址转换过程:
①页表基址寄存器[31:14]和MVA[31:20]组成一个低两位为0的32位地址,MMU通过这个地址找到细页表描述符
②取出细页表描述符[31:12](即细页表基址),它和MVA[19:10]组成一个低两位为0的32位物理地址,通过这个地址即可找到极小页描述符
③取出极小页描述符[31:10](即极小页基址),它和MVA[9:0]组成一个32位的物理地址(即MVA对应的PA)
极小页的地址转换过程(极小页描述符保存在粗页表中)
从段、大页、小页、极小页的地址转换过程可知
①以段进行映射时,通过MVA[31:20]结合页表得到一段(1MB)的起始物理地址,MVA[19:0]用来在段中寻址
②以大页进行映射时,通过MVA[31:16]结合页表得到一个大页(64KB)的起始物理地址,MVA[15:0]用来在小页中寻址
③以小页进行映射时,通过MVA[31:12]结合页表得到一个小页(4KB)的起始物理地址,MVA[11:0]用来在小页中寻址
④以极小页进行映射时,通过MVA[31:10]结合页表得到一个极小页(1KB)的起始物理地址,MVA[9:0]用来在极小页中寻址
第二篇:mmu学习笔记之-----段式转换
ARM中MMU之地址转换
第一次发帖略微有点激动,有不足的地方还请各位大神指教。
最近看了看mmu,找了好多资料,看了好多博文终于稍微清楚了一点,现在我把自己理解的内容总结一下:
首先我来说一下MMU的作用,MMU就是负责虚拟地址(virtual address)转化成物理地址(physical address)。下面我来说一下ARM CPU上的地址转换过程涉及三个概念:虚拟地址(VA)(CPU内核对外发出VA),变换后的虚拟地址(MVA)(VA被转换为MVA供cache和MMU使用,在此将MVA转换为PA),物理地址(PA)(最后使用PA读写实际设备)。
(1)CPU看到的用到的只是VA,CPU不管VA最终是怎样到PA的;
(2)而cache、MMU也是看不到VA的,它们使用的是MVA(VA到MVA的转换是由硬件自动完成的);
(3)实际设备看不到VA、MVA,读写设备使用的是PA物理地址。
前期的铺垫基本完成,接下来进入重点。
在此过程中要用到以下两个必备的东西:
1、cp15协处理器的c2寄存器(这个里面的东西需要程序员自己装载)
2、虚拟地址MVA。
接下来我说以下mmu对虚拟地址到物理地址的转化过程。
1、无论进行那种有效转换都必须进行一级页表的转换,所以我们先去产生一级页表。
产生一级页表经过以下步骤
a)由协处理器CP15中的寄存器C2(高18位,即[31:14]为转换表基地址,低
14位为0)为一级转换表基地址,即TTB该地址指向了一个2^14=16KB大
小的存储区,即一级转换表。
b)将MVA的高12位,即位[31:20]作为一级转换表的地址索引,因此一级转换
表具有2^12=4096项,这4096项的地址为32位,最高的18位[31:14]为
寄存器C2的高18位,中间12位为MVA的高12位[31:20],最低2位为0b00。
这4096项中的内容称为一级描述符。至此一级页表产生完毕。
2、mmu拿到一级描述符首先看它的后两位也就是bits[1:0],根据这两位的取值mmu
会进入不同的转换模式,这两位会出现下面四种取值。其中这四种取值分别对应四种模式,下面我一一解释。
a)00无效不进行转换
b)01进行粗页式转换
c)10进行段式转换
d)11进行细页式转换
3、接下来对于不同的转换模式,就要进行不同的转换。我下面将对三种转换模式进行
一一分析。
a)0b10(段式转换),把段式转换放在第一个说的原因是在ARM中大量用到了
段式 和细页式转换。
段式转换是最简单的一种转换方式,它是将我们刚才产生的一级描述符
(即4096项中的内容)的高12位作为段的基地址,用MVA的低20位作为每个段的偏移量,由此我们可以轻松的推出每个段的大小为2^20=1MB,至此我们就得到了一个物理地址PA。
b)0b11(细页式转换)
细页式转换,它是将我们刚才产生的一级描述符的高20位bits[31:12],再加上MVA的bits[19:10](第二级表索引)合体,bits[1:0]补0,获取第二级描述符的地址,至此其一级转换结束,因为其二级转换方式和粗页式的二级转换方式相同所以我下面一块分析。
c)0b01(粗页式转换)
粗页式转换,它是将我们刚才产生的一级描述符的高22位bits[31:10],再加上MVA的bits[19:12](第二级表索引)合体,最后两位补0,获取
第二级描述符的地址(32位),至此其一级转换结束。
4、下面我们将进入二级转换,对于二级转换只针对细页式和粗页式,没有段式转换。
a)经过一级转换我们得到了二级描述符的地址,我们通过此地址可以得到二级描
述符,我们根据二级描述符的低两位bits[1:0]同样可以分为四种转换模式:
i.00无效不进行转换
ii.01大页描述符
iii.10小页描述符
iv.11极小页描述符
b)接下来我将对各个模式进行分析。
i.01(大页描述符)
此时我们取出二级描述符中的bits[31:16]——大页基址,它和MVA的bits[15:0]组成一个32位的物理地址,这就是MVA对应的PA。
ii.10(小页描述符)
此时我们取出二级描述符中的bits[31:12]与MVA的bits[11:0]组成一个32
位的地址,这就是MVA对应的PA。
iii.11(极小页描述符)
此时我们取出二级描述符中的bits[31:10]与MVA的bits[9:0]组成一个32
位的地址,这就是MVA对应的PA。
以上就是MMU对虚拟地址转换到物理地址的过程,本人第一次写学习笔记,还有很多不足之处还请各位前辈指教,谢谢各位。
第三篇:《四风之害》学习笔记
学习时间:
学习内容:观看专题片《四风之害》
一、“工作作风上的问题绝对不是小事,如果不坚决纠正不良风气,任其发展下去,就会像一座无形的墙把我们党和人民群众隔开,我们党就会失去根基、失去血脉、失去力量。”
二、所谓作风,是在思想、工作和生活等方面一贯表现出来的态度或行为。理论联系实际、密切联系群众、批评与自我批评以及艰苦奋斗、求真务实,是我们党一贯坚持的优良作风。但随着世情、国情、党情的深刻变化,形式主义、官僚主义、享乐主义、奢靡之风等一些不良风气在党内大量存在,正在对党的肌肤造成致命的伤害。
三、党与群众的血肉联系是立党之本、执政之基、力量之源。执政党的作风问题关系到人心向背、关系到党的生死存亡。
四、有些专家学者把群体事件的频发归结为仇富、仇官、仇警的社会心理。其实,真正的根源在于我们一些党员干部丢掉了党的优良传统作风,淡化了党的宗旨,忘记了群众路线,脱离群众的现象大量存在,形式主义、官僚主义、享乐主义和奢靡之风盛行。归根到底,是“四风”之害引发了“三
1仇”之病。
五、水可载舟,亦可覆舟。如果说脱离群众是我们党执政后的最大危险,那么可以说,危险已经显现,危机就在眼前。消除危险、化解危机的良药,就是按照中央“照镜子、正衣冠、洗洗澡、治治病”的要求,对作风之弊、行为之垢来一次大排查、大检修、大扫除,让党的优良作风发扬光大,把为民务实清廉的价值追求深深根植于党员干部的思想和行动中,以作风建设的新成效凝心聚力、取信于民,永葆党的生机和活力!
第四篇:学习嵌入式Linux系统的笔记和体会
学习嵌入式Linux系统的笔记和体会
一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。
内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。
在设计嵌入式应用的时候,可以不按照这种层次,应用程序越过C库直接和内核会话,或者把应用和内核捆绑在一起,甚至可以把应用写为内核的一个线程,在内核中运行,虽然这样在移植上带来了困难,但考虑嵌入式系统对尺寸要求小的特点,是完全可行的。不过我们使用三层软件结构的模式来学习嵌入式linux将会是我们认识更清晰,简单可行并使应用具有弹性。
快速入门
最简单的建立嵌入式Linux应用的方法就是从我们使用的桌面Linux入手,安装一个喜爱的版本,把我们的某个应用作为初始化的一部分,框架就算完成了。
当然,嵌入式linux应用远比我们的桌面版本功能简单专一,它也许就是一个用于足彩的终端机,或是一个数码音频播放器,这些系统除了使用嵌入式CPU外,仅仅再需要一个串口,网口等少量的输入输出接口就可以完成它们特定的应用了。
在软件上,它可以按照三层的概念由内核装载器,定制的内核和较少的为特定任务设计的静态连接的应用程序组成。之所以使用静态连接的应用程序,是因为少量的静态连接程序所要的存储空间,比同样数量的动态连接的程序所占的空间小,这个平衡点需要我们在实际开发中去获取。也许你正在设计的是个PDA,它的应用程序较多,那么你很可能就要使用动态连接程序来减少存储空间。在你的/bin或者/sbin目录下,用厂列表看看bash,ifconfig,vi...,也许只用几十K,当你运行 ldd /bin/bash 时,你会看到它们都和好几个库文件相连。好了,这样看来,我们得把PC想像成一个嵌入式硬件平台,再重新制作一个特定功能的嵌入式linux。
基础知识
再进行实际操作之前,先来搞清楚几个基础知识。
内核装载器Loader,它的作用是把内核从外部存储器,移动到内存中。它只作这个事情,一旦完成了调入内核的工作,Loader就跳转到内核位置开始执行。不同架构有不同的 Loader,在x86结构的PC上,通常使用的loader有LILO,GRUB,syslinux,syslinux在嵌入式linux中也同样工作。其他非x86架构的应用中,你必须使用专门的loader,或者自己编写loader来装入内核。也有不使用loader的情况,系统加电以后,内核直接从烧录有映象的Flash上开始执行。
内核,一旦内核开始执行,它将通过驱动程序初始化所有硬件,这可以从我们的pc机监视器的输出看出来,每个驱动程序都打印一些有关它的信息。初始化完成后,计算机就准备运行嵌入式应用。也许一个,也许是多个应用程序组成了嵌入式应用,但通常首先调用的是init(通过loader 向核心传入init=/program 可以定制首先运行的程序)。桌面linux中,init会读取/etc/inittab文件,来决定执行级别和哪些脚本和命令。嵌入式应用中,可以根据实际的情况决定是否使用标准的init执行方式,也许这个init是个静态程序,它能够完成我们的嵌入应用的特定任务,那完全不用考虑inittab了。
initrd文件系统,initrd以一种把内核从存储介质装入到内存的相同的机制来装入一个小型文件系统。这个文件系统最好是以压缩的方式存储在介质上的,解压缩到RAM盘上。通过使用initrd,包含有核心驱动和启动脚本的小文件系统,就可以直接从介质上和内核一起启动起来,内核届压缩这个文件系统,并执行这个文件系统上叫做/linuxrc的脚本文件,这个脚本通常会把启动过程中所需要的驱动程序装入。脚本退出以后,initrd文件系统也卸下了,启动过程进入真正初始化过程。对于嵌入式来讲,可以将需要的应用软件都运行在这个initrd文件系统上,只要/linxrc文件不结束,内核启动过程的其他部分就不会继续。
做个试验:
cp /boot/initrd-2.4.20.img /tmp
cd /tmp
mv initrd-2.4.2-.img initrd.img.gz
gunzip initrd.img.gz
mount-o loop initrd.img /mnt
cd /mnt
ls
cat linuxrc 可以看到里面执行了加载了两个模块的操作,你在启动linxu的时候会看见屏幕打印信息。
入门试验,制作一个简单的应用
我们使用一张软盘启动一台假象的只有一个串口,键盘输入,显示输出的x86架构的linux系统,执行的特定应用就是运行minicom,通过串口拨号。需要软件: minicom-xx.src.tar.gz 和 syslinux-xx.tar.gz,xx代表版本号,开始之前,在主目录建立一个目录,来释放这两个软件包:
cd
mkdir-p project/minilinux
cd project/minilinux
tar zxvf minicom-xx.src.tar.gz
tar zxvf syslinux-xx.tar.gz1、裁减linux内核(需要系统安装内核文件包)
配置内核的时候,我们需要选择这些:摸块编入内核,386处理器、物理内存off、支持ELF、标准PC软盘、支持RAM盘(4096)、支持 initial RAM disk(initrd)、虚你终端、虚拟终端控制台、标准串口、ext2文件系统、控制台驱动,VGA text console、DOS FAT、MSDOS文件系统,其他的都可以不要,这样内核编出来较小。
步骤:
cd /usr/src/linux
make mrproper
make xconfig
make dep && make bzImage
得到 /usr/src/linux/arch/i386/boot/目录的内核文件bzIamge。
2、编译一个静态的minicom,把它作为将来的linuxrc
cd minicom-xx/src
vi Makefile
修改下面这行
minicom: $(minicom_OBJECTS)$(minicom_DEPENDENCIES)
rm-f minicom 下面的行加上-static,连接为静态程序
(LINK)-static $(minicom_LDFLAGS)$(minicom_OBJECTS)$(minicom_LDADD)$(LIBS)
vi minicom.c
找到 if(real_uid==0 && dosetup==0)删除这个判断条件语句,主要是用于权限判断的,因为这个嵌入应用不关注权限问题,否则会出错。
make
得到可执行程序,用ldd 检查一下是不是静态程序。
3、准备initrd压缩文件image.gz
dd if=/dev/zero of=image bs=1k count=4096
losetup /dev/loop0 image
mke2fs-m 0 /dev/loop0
mounmt-t ext2 /dev/loop0 /mnt/
mkdir-p /mnt/dev
mkdir-p /mnt/usr/share/terminfo/l/
cd /dev
cp-a consle null tty tty0 zero mem /mnt/dev
cp-P /usr/share/terminfo/l/linux /mnt/usr/share/terminfo/l/linux
cp ~/project/minilinux/mincom/src/minicom /mnt/linuxrc
umount /mnt
losetup-d /dev/loop0
sync
gzip-9 image4、制作软盘引导,并拷贝文件 bzimage image.gz 到软盘
A.使用grub
fdformat /dev/fd0
mke2fs /dev/fd0
mount /mnt/fd0 /mnt/floppy
mkdir-p /mnt/floppy/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /mnt/floppy/boot/grub
执行 grub,在软盘上创建引导
grub > root(fd0)
grub > setup(fd0)
grub > quit
cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
cp ~/porject/minilinux/image.gz /mnt/floppy
编辑 /mnt/floppy/boot/grub/grub.conf
default =0
timeout-=10
title minilinux
root(fd0)
kernel /bzImage
initrd /image.gz
卸下软盘
umount /mnt/floppy
B.使用syslinux
fdformat /dev/fd0
mkfs.msdos /dev/fd0
mount-t msdos /dev/fd0 /mnt/floppy
cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
cp ~/porject/minilinux/image.gz /mnt/floppy
cp syslinux-xx/ldlinxu.sys /mnt/floppy
cat > /mnt/floppy/syslinux.cfg
LABEL linux
KERNEL bzimage
APPEND initrd=image.gz
umont /mnt/floppy
syslinux-xx/syslinux /dev/fd0
sync5、用软盘启动计算机,如果幸运,minicom的运行画面出现在屏幕上。
到此,我们的单应用嵌入式linux做好了,但它还很简陋,没有什么实际用途,但通过这个实验,可以了解嵌入式系统的大致结构和开发过程。在进行实际的嵌入式开发时,通常要在PC机上借助嵌入式linux开发工具包,如:uclinux,bluecat等,对相应的硬件平台(目标机)进行软件编写编译,调试成功后,将内核及应用程序写入到目标机的存储器中,从而完成整个应用。
第五篇:沟通管理学习笔记
沟通管理学习笔记
沟通管理计划应包括发布结构(这个结构显示了用于发布不同类别信息的方法,以及信息所分发给的个人或组织);生成的进度,该进度说明每类信息将于何时生成;在各排定的沟通间获取信息的方法。还应包括针对随着需求变更将如何更新并修订计划的讨论。沟通管理计划是项目管理计划的一个组成部分。其内容的详尽程度应与项目的规模和复杂程度相匹配。【规划】 ____项目管理协会,《项目管理知识体系指南》,2008年,第257页
沟通管理计划应确定负责发布信息的团队成员。其他属性包括要沟通的信息及其沟通方式,沟通的目的、频率和时间范围,以及传递信息的方法。【规划】 ____项目管理协会,《项目管理知识体系指南》,第257页
攻击者具有破坏性,因为攻击者批评他人并企图贬低他人的地位。具有破坏性的其他团队角色有阻碍者、退缩者、寻求认同者、游离主题者、统治者,有时候还包括吹毛求疵者。若任之发展,破坏性行为会危及为团队建设所付出的努力。
项目经理应该在沟通计划中记录与干系人进行有效率和有效果的沟通的方法
有效果的沟通(Effective communication)是指用正确的格式、在正确的时间提供信息,并且使信息产生正确的影响。
有效率的沟通(Efficient communication)是指只提供所需要的信息。
行动导向的人,喜欢行动,不喜欢花太多时间沟通,所以与其沟通要简短。
项目环境中有效率的会议、“作战室”和紧密的矩阵可以提高沟通效率。
规划沟通:工具与技术”,“沟通技术”。可能影响项目沟通技术的因素包括: ·信息需求的紧迫性。·可用技术。·预期的项目人员配备。·项目的持续时间。·项目环境。
绩效测量基准是一个经过批准的项目工作计划,用来与项目执行情况比较(compared),以测量偏差(deviations),进行管理控制(control)。通常,绩效测量基准是项目的范围(scope)、进度(schedule)和成本参数(cost,parameters)的整合,有时也可包括技术和质量参数。
扣留信息、傲慢专横和噪声都是沟通障碍,都会带来沟通中信息的选择接收,而对内容不熟悉则可以通过积极倾听等方式来使得沟通得以顺利进行。
项目沟通只能针对那些有利于项目成功或不沟通会导致项目失败的信息。
有效的沟通是成功谈判的关键。误解是最常见的沟通问题。项目经理应主动倾听、告知收到他人所述信息,并且要带有目的地表述。【执行】 ____Fisher等人,1991年,第32~34页;Verma,1996年,第1_65页
通过沟通需求分析,确定项目干系人的信息需求,包括信息的类型和格式以及信息对干系人的价值。·项目资源只能用来沟通有利于成功的信息,或者那些因缺乏沟通会造成失败的信息。·在规划项目沟通时,需要做的一件重要工作就是,确定(determine)和限制(limit)谁应该与谁沟通,以及谁将接受何种信息。·项目经理还应该使用潜在沟通渠道或路径的数量,来反映项目沟通的复杂程度。从上面第二点看到,衡量是否应该收集和沟通某信息的最好方法是看信息对项目成功与否的关系如何。该主要项目干系人所要求的信息将占用很多项目时间却没有意义。
项目经理往往利用四种基本决策风格:命令、商议、一致同意,以及掷硬币或抽签。若验收和质量二者都重要,则更倾向于商议的风格。商议允许团队成员在一定程度上的参与,但项目经理仍保持对最终决策的控制。在采用这种风格的情况下,团队成员自由表述其观点,但项目经理做出最终决策。
沟通方式:
交互式沟通,就是互动式沟通,如你一言我一语的会谈。推式沟通适合于沟通对象不多的情况,如发送邮件。
拉式沟通适用于沟通对象很多或者要沟通的信息很多的情况。建立电子网站,属于拉式沟通
沟通规划通常带来更新项目文件的需求,其中包括项目进度计划、干系人登记册,以及干系人管理策略。【规划】 ____项目管理协会,《项目管理知识体系指南》,2008年,第258页
下行沟通为项目团队成员和其他员工提供了指导和控制。它包括与工作相关的信息,例如,所需行动、标准、应执行的各项活动的时间、要完成的各项活动,以及进度测量结果。
支持性行为以关系为导向,它表示领导者在多大程度上参与双向沟通、倾听,提供支持与鼓励,促进相互影响,以及使下属参与决策制定。建立结构意味着一定程度的刚性和不变性,它不是与支持性行为相关的术语。
沟通被视做项目成败的最有力的单一指标之一。有效的沟通包括知晓可能会妨碍或过度使用沟通的所有类型的过滤器。倾听对于良好的沟通至关重要。