当前位置:文档之家› AIX+下的+core+dump+分析

AIX+下的+core+dump+分析

AIX+下的+core+dump+分析
AIX+下的+core+dump+分析

本文简要介绍了AIX 平台下core dump 产生的原理以及相关定位方法。

Core dump 基本知识

本节主要探讨core dump 产生的背景知识。对这部分不感兴趣的读者可以直接阅读第二章,了解基本的core dump 定位手段。

起源

软件是人思维的产物。智者千虑,必有一失,人的思维总有缺陷,反映到软件层面上就是程序bug。程序bug 的终极体现就是core dump,core dump 是软件错误无法恢复的产物。

生成过程

进程core dump 与系统dump 的产生,从程序原理上来说是基本一致的。dump 的生成一般是在系统进行中断处理时进行的,下面简单介绍一下中断机制。

操作系统的中断机制

操作系统是由中断驱动的。广义的中断一般分为两类,中断(Interrupts) 和异常(Exceptions)。中断可在任何时候发生,与CPU 正在执行什么指令无关,中断主要由I/O 设备、处理器时钟(分时系统依赖时钟中断划分时间片)或定时器等硬件引发,可以被允许或取消。而异常是由于CPU 执行了某些指令引起的,可以包括存储器存取违规、除0 或者特定调试指令等,内核也将系统服务视为异常。系统对这两类中断的处理基本上是相同的。

每个中断都会唯一对应到一个中断处理程序,在该中断触发时,相应的处理程序就会被执行。例如应用进程进行系统调用时,就会触发一个软件异常,进入中断处理函数,完成从用户态到系统态的迁移并进入相应系统调用的入口点。应用进程coredump 也是一个类似的过程。

应用进程core dump 生成过程

在进程运行出现异常行为时,例如无效地址访问、浮点异常、指令异常等,将导致系统转入内核态进行异常处理(即中断处理),向相应的进程发出特定信号例如SIGSEGV、SIGFPE、SIGILL 等。如果应用进程注册了相应信号的处理函数(例如可通过sigaction 注册信号处理函数),则调用相应处理函数进行处理(应用程序可以选择记录信息后生成core dump 并退出);否则将采取默认动作,例如SIGSEGV 的默认动作是生成core dump 并退出程序。

进程coredump 的时候,操作系统会将进程终止并释放其占用的资源,正常情况下,应用进程coredump 不会对系统本身的运行造成危害。当然如果系统中存在与此进程相关的其他进程,则这些进程会受到影响,至于后果则视其对此异常的具体处理而定。

由于相关指令已经包含在可执行文件中,core 文件一般只包含进程异常时相关的内存信息。其格式可参考/usr/include/sys/core.h 或者AIX 帮助文档的“Files Reference”章节。我们一般需要结合core 文件以及可执行程序,来分析问题所在。

注:由于进程信号处理本质上是异步的,应用进程注册的信号处理函数中使用的例程需要保证是异步信号安全的,例如不能使用诸如pthread_ 开头的例程。

系统dump 生成过程

系统异常dump 的具体过程与应用进程类似,但由于更接近底层,为了避免问题所在的资源(例如文件系统)正好包含在生成dump 需要使用的资源中,造成dump 无法生成,操作系统一般会用最简单的方式来生成dump。例如系统内存小于4G 的情况下,一般直接将dump 生成在pagingspace 中;大于4G 时,会建专门的lg_dumplv 逻辑卷(裸设备)保存dump 信息。在系统重启的时候,如果设置的DUMP 转存目录(文件系统中的目录)有足够空间,它将会转存成一个文件系统文件,缺省情况下,是/var/adm/ras/ 下的vmcore* 这样的文件。

系统dump 一般可以通过升级微码、提高系统补丁级别、升级驱动等方式解决。

应用进程core dump 分析

上一章我们介绍了core dump 产生的基本原理。本章我们将针对AIX 操作系统,介绍core dump 定位相关的背景知识。

环境变量设置

可以通过/etc/security/limits 文件对各用户的基本配置参数包括core 大小进行限制。或者通过ulimit 更改当前环境下的core 大小限制。

默认情况下,应用进程生成core dump 时都使用文件名core。为了避免同一工作目录下的进程core 相互覆盖,可以定义环境变量CORE_NAMING=true,然后启动进程,这样将生成名为

core.pid.ddhhmmss 的文件。可以使用file core 命令查看core 是哪个进程产生的。

默认情况下,应用进程dump 时会包含所有的共享内存,如果dump 时想排除共享内存内容,可以在启动进程之前设置环境变量CORE_NOSHM=true.

系统有一个参数fullcore 用于控制是否在程序coredump 时生成完整的core。为避免信息丢失,建议打开fullcore。可以使用lsattr –El sys0 查询是否将fullcore 打开,使用chdev -l sys0 -a fullcore=true 将fullcore 状态更改为打开。也可以在程序内部调用sigaction 例程设置fullcore,参考如下测试程序:

fullcore 设置示例

//test.C

#include

#include

int main(int argc, char* argv[])

{

char str[10];

struct sigaction s;

s.sa_handler = SIG_DFL;

s.sa_mask.losigs = 0;

s.sa_mask.hisigs = 0;

s.sa_flags = SA_FULLDUMP;

sigaction(SIGSEGV,&s,(struct sigaction

*) NULL);

std::cout << " input str!\n" << std::endl;

std::cin >> str;

return 0;

}

寻找core dump

应用进程的core 产生在其当前工作目录下,可以在应用程序内部使用chdir 函数切换当前工作目录。使用procwdx 命令可以查看进程的当前工作目录。系统的core 生成在lg_dumplv 下,并在重启时转移到/var/adm/ras/ 目录下(如果有足够空间的话,否则继续保留在lg_dumplv,并随时有可能被覆盖)。可以使用errpt -a 查看标识C0AA5338 SYSDUMP(系统core)、B6048838 CORE_DUMP(进程core)的详细错误信息,获取生成core 的进程以及core 文件位置。使用snap –ac 收集系统的dump 信息。

core dump 信息收集

如果可能, 直接在发生coredump 的机器上用dbx 分析出结果, 这样是最方便的分析方法 . 这种情况下注意不要直接以root 用户登录然后用dbx 分析, 而必须在应用程序所属的用户下进行此操作,

因为core 可能需要依赖应用程序运行时对应环境下的某些库, 这样就要借助应用程序的环境变量 .

如果需取回生产机上的core 信息在实验室分析, 则需要搜集一些相关信息 . 进程core 分析一般至少需要依赖应用可执行程序,有时还需要包括一些运行时动态库信息。如果需要收集core 相关的完整信息,可运行snapcore < 可执行文件以及名称>,例如snapcore ./core ./a.out,然后在/tmp/snapcore 下取下相应的 .pax.Z 文件。

正常的收集过程应该如下:

snap core 收集过程

# snapcore ./core ./a.out

Core file "./core" created by "a.out"

pass1() in progress ....

Calculating space required .

Total space required is 14130 kbytes ..

Checking for available space ...

Available space is 807572 kbytes

pass1 complete.

pass2() in progress ....

Collecting fileset information .

Collecting error report of CORE_DUMP

errors ..

Creating readme file ..

Creating archive file ...

Compressing archive file ....

pass2 completed.

Snapcore completed successfully. Archive

created in /tmp/snapcore.

# cd /tmp/snapcore

# ls

snapcore_352276.pax.Z

# uncompress snapcore_352276.pax.Z

# ls

snapcore_352276.pax

# pax -r -f snapcore_352276.pax

# ls 注意需要保证有类似如下文件 ( 可执行文件,

/core/errpt/lslpp/usr 目录等 ):

README errpt.out usr

a.out lslpp.out

core snapcore_352276.pax

#

使用dbx 分析core dump 的例子

dbx 是AIX 下基于命令行界面的源码级调试工具。本文档只提供一些基本的dbx 分析指令,详细内容请参考“General Programming Concepts: Writing and Debugging Programs”关于dbx 的描述。

初步分析

示例:

显示出core 发生时,当前进程执行到的位置(-g 编译的情况下能够看到具体的行):

注意:

如果分析的是异地core 文件,需要采用snapcore 收集相关core 信息。对于依赖链接库的情况,注意需要增加-p oldpath=newpath:... 重新设置链接库路径(只有所有依赖的库都已经被链接,才能完整的复现core dump 故障现场),参考dbx 的帮助文档获取更多信息。

列举源码信息

列举程序源码(list,需要在运行dbx 命令时使用-I 指明源码搜索路径,并使用-g 编译)或者汇编码(listi):

(dbx) listi main

0x10001924 (main) 7c0802a6 mflr r0

0x10001928 (main+0x4) bfa1fff4 stmw

r29,-12(r1)

0x1000192c (main+0x8) 90010008 stw

r0,0x8(r1)

0x10001930 (main+0xc) 9421ffa0 stwu

r1,-96(r1)

0x10001934 (main+0x10) 83e20064 lwz

r31,0x64(r2)

0x10001938 (main+0x14) 90610078 stw

r3,0x78(r1)

0x1000193c (main+0x18) 9081007c stw

r4,0x7c(r1)

0x10001940 (main+0x1c) 83a20068 lwz

r29,0x68(r2)

列举变量内容

示例代码:

para++;

return 0;

}

int main(int argc, char* argv[])

{

struct sigaction s;

s.sa_handler = SIG_DFL;

s.sa_mask.losigs = 0;

s.sa_mask.hisigs = 0;

s.sa_flags = SA_FULLDUMP;

sigaction(SIGSEGV,&s,(struct sigaction

*) NULL);

char str[10];

g_test =0;

testfunc(g_test);

abort();

}

# xlC test.C -g

以全局变量g_test 举例:

#print g_test 显示g_test 的取值

#print sizeof(g_test) 显示g_test 的大小

#whatis g_test 显示g_test 的类型

#print &g_test 显示g_test 的地址

#&g_test/16x 显示从g_test 的地址开始处,连续16 个WORD(?byte)的取值

如果没有使用-g 编译,则不能动态获取g_test 的类型、大小等信息,但能够得到g_test 的地址,并查询该地址所在区域存储空间的值。

例如:

列举寄存器内容

列举寄存器内容:

(dbx) registers

如下模拟一个简单的core dump,对0 地址赋值引发core dump 的问题:# dbx ./a.out core

Type 'help' for help.

warning: The core file is not a fullcore.

Some info may

not be available.

[using memory image in core]

reading symbolic information ...warning:

no source compiled with -g

Segmentation fault in main at 0x10000348

0x10000348 (main+0x18) 90640000 stw

r3,0x0(r4)

(dbx) where

main(0x1, 0x2ff22ccc) at 0x10000348

(dbx) registers

$r0:0x00000000 $stkp:0x2ff22bf0

$toc:0x20000414 $r3:0x00000012

$r4:0x00000000 $r5:0x2ff22cd4

$r6:0xdeadbeef $r7:0x2ff22ff8

$r8:0x00000000 $r9:0x04030000

$r10:0xf0577538 $r11:0xdeadbeef

$r12:0xdeadbeef $r13:0xdeadbeef

$r14:0x00000001 $r15:0x2ff22ccc

$r16:0x2ff22cd4 $r17:0x00000000

$r18:0xdeadbeef $r19:0xdeadbeef

$r20:0xdeadbeef $r21:0xdeadbeef

$r22:0xdeadbeef $r23:0xdeadbeef

$r24:0xdeadbeef $r25:0xdeadbeef

$r26:0xdeadbeef $r27:0xdeadbeef

$r28:0xdeadbeef $r29:0xdeadbeef

$r30:0xdeadbeef $r31:0xdeadbeef

$iar:0x10000348 $msr:0x0000d0b2

$cr:0x22282489 $link:0x100001b4

$ctr:0xdeadbeef $xer:0x20000020

Condition status = 0:e 1:e 2:e 3:l 4:e 5:g

6:l 7:lo

[unset $noflregs to view floating point

registers]

[unset $novregs to view vector registers]

in main at 0x10000348

0x10000348 (main+0x18) 90640000 stw

r3,0x0(r4)

(dbx) print $r3

0x00000012

(dbx) print $r4

(nil)

这个例子比较简单,从最后汇编指令“stw r3,0x0(r4)”就可以简单的看到程序core dump 是因为向0 地址(0+r4)存入18(r3 寄存器值)造成。

查看多线程相关信息

如果以下环境变量采用默认的OFF 值,则系统会完全禁止适当的调试列表,这意味着dbx 命令将显示不出任何对象:

AIXTHREAD_MUTEX_DEBUG

AIXTHREAD_COND_DEBUG

AIXTHREAD_RWLOCK_DEBUG

可以使用

export AIXTHREAD_MUTEX_DEBUG=ON

打开AIXTHREAD_MUTEX_DEBUG。

查看线程信息

(dbx) print $t1 // 打印t1 线程的基本信息

(dbx) attribute

(dbx) condition

(dbx) mutex

(dbx) rwlock

(dbx) thread

例如:

(thread_id = 1, state_u = 4, priority = 60, policy = other, attributes = 0x20001078)

切换当前线程(默认当前线程为收到core 触发信号所在线程)

(dbx) thread current [tid]

例如(> 表明core dump 时的当前线程):

(dbx)thread

thread state-k wchan state-u k-tid mode

held scope function

$t1 wait 0x31bbb558 running 10321 k no pro

_ptrgl

$t2 wait 0x311fb958 running 6275 k no pro

_ptrgl

>$t3 run running 6985 k no pro _p_nsleep

$t4 wait 0x31bbbb18 running 6571 k no pro

_ptrgl

$t5 wait 0x311fb9d8 running 7999 k no pro

_ptrgl

$t6 wait 0x31bf8f98 running 8257 k no pro

_ptrgl

$t7 wait 0x311fba18 running 8515 k no pro

_ptrgl

$t8 wait 0x311fb7d8 running 8773 k no pro

_ptrgl

$t9 wait 0x311fbb18 running 9031 k no pro

_ptrgl

$t10 wait 0x311fb898 running 9547 k no pro

_ptrgl

$t11 wait 0x311fb818 running 9805 k no pro

_ptrgl

$t12 wait 0x311fba58 running 10063 k no

pro _ptrgl

$t13 wait 0x311fb8d8 running 10579 k no

pro _ptrgl

(dbx) thread current 3

(dbx) where

_p_nsleep(??, ??) at 0xd005f740

raise.nsleep(??, ??) at 0xd022de3c

sleep(??) at 0xd0260344

helper(??) at 0x100005ac

(dbx) thread current 4

warning: Thread is in kernel mode, not all

registers can be accessed.

(dbx) where

ptrgl._ptrgl() at 0xd020e470

raise.nsleep(??, ??) at 0xd022de3c

core dump 分析的局限性

不要期待能依赖core dump 分析解决所有的问题,下面是一个简单的模拟缓冲区溢出的例子,在这个例子中由于缓冲区溢出覆盖了调用栈信息,从而完全丢失了定位依据:

root@/tmp#>xlC test.C -g -o test2

root@/tmp#>

root@/tmp#>./test

input str!

012345678901234567890123456789

Segmentation fault(coredump)

root@/tmp#>dbx ./test2 core

Type 'help' for help.

[using memory image in core]

reading symbolic information ...

Segmentation fault in test2. at 0x34353634

0x34353634 (???) warning: Unable to access

address 0x34353634 from core

(dbx) where

warning: Unable to access address

0x34353634 from core

warning: Unable to access address

0x34353634 from core

warning: Unable to access address

0x34353630 from core

warning: Unable to access address

0x34353630 from core

warning: Unable to access address

0x34353634 from core

warning: Unable to access address

0x34353634 from core

warning: Unable to access address

0x34353630 from core

warning: Unable to access address

0x34353630 from core

warning: Unable to access address

炽卉 (chenchih@https://www.doczj.com/doc/415728195.html, ), 工程师, IBM 2008 年 6 月 12 日

本文简要介绍了 AIX 平台下 core dump 产生的原理以及相关定位方法。 Core dump 基本知识

本节主要探讨 core dump 产生的背景知识。对这部分不感兴趣的读者可以直接阅读第二章,了解基本的 core dump 定位手段。 起源

软件是人思维的产物。智者千虑,必有一失,人的思维总有缺陷,反映到软件层面上就是程序 bug 。程序 bug 的终极体现就是

是软件错误无法恢复的产物。 生成过程

进程 core dump 与系统 dump 的产生,从程序原理上来说是基本一致的。dump 的生成一般是在系统进行中断处理时进行

断机制。

操作系统的中断机制 操作系统是由中断驱动的。广义的中断一般分为两类,中断 (Interrupts) 和异常 (Exceptions)。中断可在任何时候发生,与无关,中断主要由 I/O 设备、处理器时钟(分时系统依赖时钟中断划分时间片)或定时器等硬件引发,可以被允许或取消。而某些指令引起的,可以包括存储器存取违规、除 0 或者特定调试指令等,内核也将系统服务视为异常。系统对这两类中断的处每个中断都会唯一对应到一个中断处理程序,在该中断触发时,相应的处理程序就会被执行。例如应用进程进行系统调用时,就入中断处理函数,完成从用户态到系统态的迁移并进入相应系统调用的入口点。应用进程 coredump 也是一个类似的过程。

应用进程 core dump 生成过程 在进程运行出现异常行为时,例如无效地址访问、浮点异常、指令异常等,将导致系统转入内核态进行异常处理(即中断处理)信号例如 SIGSEGV 、SIGFPE 、SIGILL 等。如果应用进程注册了相应信号的处理函数(例如可通过 sigaction 注册信号处理理函数进行处理(应用程序可以选择记录信息后生成 core dump 并退出);否则将采取默认动作,例如 SIGSEGV 的默认动退出程序。

进程 coredump 的时候,操作系统会将进程终止并释放其占用的资源,正常情况下,应用进程 coredump 不会对系统本身的系统中存在与此进程相关的其他进程,则这些进程会受到影响,至于后果则视其对此异常的具体处理而定。

由于相关指令已经包含在可执行文件中,core 文件一般只包含进程异常时相关的内存信息。其格式可参考 /usr/include/sys/c 档的“Files Reference”章节。我们一般需要结合 core 文件以及可执行程序,来分析问题所在。

注:由于进程信号处理本质上是异步的,应用进程注册的信号处理函数中使用的例程需要保证是异步信号安全的,例如不能使用

的例程。

系统 dump 生成过程 系统异常 dump 的具体过程与应用进程类似,但由于更接近底层,为了避免问题所在的资源(例如文件系统)正好包含在生成中,造成 dump 无法生成,操作系统一般会用最简单的方式来生成

dump 。例如系统内存小于 4G 的情况下,一般直接将 dum 中;大于

4G 时,会建专门的 lg_dumplv 逻辑卷(裸设备)保存 dump 信息。在系统重启的时候,如果设置的 DUMP 转录)有足够空间,它将会转存成一个文件系统文件,缺省情况下,是 /var/adm/ras/ 下的 vmcore* 这样的文件。 文

系统dump 一般可以通过升级微码、提高系统补丁级别、升级驱动等方式解决。

应用进程core dump 分析

上一章我们介绍了core dump 产生的基本原理。本章我们将针对AIX 操作系统,介绍core dump 定位相关的背景知识。环境变量设置

可以通过/etc/security/limits 文件对各用户的基本配置参数包括core 大小进行限制。或者通过ulimit 更改当前环境下的默认情况下,应用进程生成core dump 时都使用文件名core。为了避免同一工作目录下的进程core 相互覆盖,可以定义环CORE_NAMING=true,然后启动进程,这样将生成名为core.pid.ddhhmmss 的文件。可以使用file core 命令查看cor 默认情况下,应用进程dump 时会包含所有的共享内存,如果dump 时想排除共享内存内容,可以在启动进程之前设置环境CORE_NOSHM=true.

系统有一个参数fullcore 用于控制是否在程序coredump 时生成完整的core。为避免信息丢失,建议打开fullcore。可以询是否将fullcore 打开,使用chdev -l sys0 -a fullcore=true 将fullcore 状态更改为打开。也可以在程序内部调用sigac 参考如下测试程序:

fullcore 设置示例

//test.C

#include

#include

int main(int argc, char* argv[])

{

char str[10];

struct sigaction s;

s.sa_handler = SIG_DFL;

s.sa_mask.losigs = 0;

s.sa_mask.hisigs = 0;

s.sa_flags = SA_FULLDUMP;

sigaction(SIGSEGV,&s,(struct sigaction *) NULL);

std::cout << " input str!\n" << std::endl;

std::cin >> str;

return 0;

}

寻找core dump

应用进程的core 产生在其当前工作目录下,可以在应用程序内部使用chdir 函数切换当前工作目录。使用procwdx 命令可

录。系统的core 生成在lg_dumplv 下,并在重启时转移到/var/adm/ras/ 目录下(如果有足够空间的话,否则继续保留有可能被覆盖)。

可以使用errpt -a 查看标识C0AA5338 SYSDUMP(系统core)、B6048838 CORE_DUMP(进程core)的详细错误信进程以及core 文件位置。使用snap –ac 收集系统的dump 信息。

core dump 信息收集

如果可能, 直接在发生coredump 的机器上用dbx 分析出结果, 这样是最方便的分析方法 . 这种情况下注意不要直接以dbx 分析, 而必须在应用程序所属的用户下进行此操作, 因为core 可能需要依赖应用程序运行时对应环境下的某些库, 这境变量 .

如果需取回生产机上的core 信息在实验室分析, 则需要搜集一些相关信息 . 进程core 分析一般至少需要依赖应用可执行程运行时动态库信息。如果需要收集core 相关的完整信息,可运行snapcore < 可执行文件以及名称snapcore ./core ./a.out,然后在/tmp/snapcore 下取下相应的 .pax.Z 文件。

正常的收集过程应该如下:

snap core 收集过程

# snapcore ./core ./a.out

Core file "./core" created by "a.out"

pass1() in progress ....

Calculating space required .

Total space required is 14130 kbytes ..

Checking for available space ...

Available space is 807572 kbytes

pass1 complete.

pass2() in progress ....

Collecting fileset information .

Collecting error report of CORE_DUMP errors ..

Creating readme file ..

Creating archive file ...

Compressing archive file ....

pass2 completed.

Snapcore completed successfully. Archive created in

/tmp/snapcore.

# cd /tmp/snapcore

# ls

snapcore_352276.pax.Z

# uncompress snapcore_352276.pax.Z

# ls

snapcore_352276.pax

# pax -r -f snapcore_352276.pax

# ls 注意需要保证有类似如下文件 ( 可执行文件,

/core/errpt/lslpp/usr 目录等 ):

README errpt.out usr

a.out lslpp.out

core snapcore_352276.pax

#

使用dbx 分析core dump 的例子

dbx 是AIX 下基于命令行界面的源码级调试工具。本文档只提供一些基本的dbx 分析指令,详细内容请参考“General Pro Writing and Debugging Programs”关于dbx 的描述。

初步分析

示例:

显示出core 发生时,当前进程执行到的位置(-g 编译的情况下能够看到具体的行):

注意:

如果分析的是异地core 文件,需要采用snapcore 收集相关core 信息。对于依赖链接库的情况,注意需要增加-p ol 新设置链接库路径(只有所有依赖的库都已经被链接,才能完整的复现core dump 故障现场),参考dbx 的帮助文档获取

列举源码信息

列举程序源码(list,需要在运行dbx 命令时使用-I 指明源码搜索路径,并使用-g 编译)或者汇编码(listi):

列举变量内容

示例代码:

#include

#include

int g_test =0;

int testfunc(int ¶)

{

para++;

return 0;

}

int main(int argc, char* argv[])

{

struct sigaction s;

s.sa_handler = SIG_DFL;

s.sa_mask.losigs = 0;

以全局变量g_test 举例:

#print g_test 显示g_test 的取值

#print sizeof(g_test) 显示g_test 的大小

#whatis g_test 显示g_test 的类型

#print &g_test 显示g_test 的地址

#&g_test/16x 显示从g_test 的地址开始处,连续16 个WORD(?byte)的取值

如果没有使用-g 编译,则不能动态获取g_test 的类型、大小等信息,但能够得到g_test 的地址,并查询该地址所在区域例如:

# ./a.out

IOT/Abort trap(coredump)

# dbx ./a.out core

Type 'help' for help.

[using memory image in core]

reading symbolic information ...

IOT/Abort trap in raise at 0xd03365bc

0xd03365bc (raise+0x40) 80410014 lwz r2,0x14(r1)

(dbx) print g_test

1

(dbx) whatis g_test

int g_test;

(dbx) print sizeof(g_test)

4

(dbx) print &g_test

0x20000428

(dbx) &g_test/16x

0x20000428: 0000 0001 0000 0000 0000 0000 0000 0000

0x20000438: 0000 0000 0000 0000 0000 0000 0000 0000

列举寄存器内容

列举寄存器内容:

(dbx) registers

如下模拟一个简单的core dump,对0 地址赋值引发core dump 的问题:# dbx ./a.out core

Type 'help' for help.

warning: The core file is not a fullcore. Some info may

not be available.

[using memory image in core]

reading symbolic information ...warning: no source compiled with -g

Segmentation fault in main at 0x10000348

0x10000348 (main+0x18) 90640000 stw r3,0x0(r4)

(dbx) where

main(0x1, 0x2ff22ccc) at 0x10000348

(dbx) registers

$r0:0x00000000 $stkp:0x2ff22bf0 $toc:0x20000414

$r3:0x00000012

$r4:0x00000000 $r5:0x2ff22cd4 $r6:0xdeadbeef

$r7:0x2ff22ff8

$r8:0x00000000 $r9:0x04030000 $r10:0xf0577538

$r11:0xdeadbeef

$r12:0xdeadbeef $r13:0xdeadbeef $r14:0x00000001

$r15:0x2ff22ccc

$r16:0x2ff22cd4 $r17:0x00000000 $r18:0xdeadbeef

$r19:0xdeadbeef

$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef

$r23:0xdeadbeef

$r24:0xdeadbeef $r25:0xdeadbeef $r26:0xdeadbeef

$r27:0xdeadbeef

$r28:0xdeadbeef $r29:0xdeadbeef $r30:0xdeadbeef

$r31:0xdeadbeef

$iar:0x10000348 $msr:0x0000d0b2 $cr:0x22282489

$link:0x100001b4

$ctr:0xdeadbeef $xer:0x20000020

Condition status = 0:e 1:e 2:e 3:l 4:e 5:g 6:l 7:lo

[unset $noflregs to view floating point registers]

[unset $novregs to view vector registers]

in main at 0x10000348

0x10000348 (main+0x18) 90640000 stw r3,0x0(r4)

(dbx) print $r3

0x00000012

(dbx) print $r4

(nil)

这个例子比较简单,从最后汇编指令“stw r3,0x0(r4)”就可以简单的看到程序core dump 是因为向0 地址(0+r4)存入1查看多线程相关信息

如果以下环境变量采用默认的OFF 值,则系统会完全禁止适当的调试列表,这意味着dbx 命令将显示不出任何对象:AIXTHREAD_MUTEX_DEBUG

AIXTHREAD_COND_DEBUG

AIXTHREAD_RWLOCK_DEBUG

可以使用

export AIXTHREAD_MUTEX_DEBUG=ON

打开AIXTHREAD_MUTEX_DEBUG。

?查看线程信息

(dbx) print $t1 // 打印t1 线程的基本信息

(dbx) attribute

(dbx) condition

(dbx) mutex

(dbx) rwlock

(dbx) thread

例如:

(thread_id = 1, state_u = 4, priority = 60, policy = other, attributes = 0x20001078) ?切换当前线程(默认当前线程为收到core 触发信号所在线程)

(dbx) thread current [tid]

例如(> 表明core dump 时的当前线程):

(dbx)thread

thread state-k wchan state-u k-tid mode held scope function

$t1 wait 0x31bbb558 running 10321 k no pro _ptrgl

$t2 wait 0x311fb958 running 6275 k no pro _ptrgl

>$t3 run running 6985 k no pro _p_nsleep

$t4 wait 0x31bbbb18 running 6571 k no pro _ptrgl

$t5 wait 0x311fb9d8 running 7999 k no pro _ptrgl

$t6 wait 0x31bf8f98 running 8257 k no pro _ptrgl

$t7 wait 0x311fba18 running 8515 k no pro _ptrgl

$t8 wait 0x311fb7d8 running 8773 k no pro _ptrgl

$t9 wait 0x311fbb18 running 9031 k no pro _ptrgl

$t10 wait 0x311fb898 running 9547 k no pro _ptrgl

$t11 wait 0x311fb818 running 9805 k no pro _ptrgl

$t12 wait 0x311fba58 running 10063 k no pro _ptrgl

$t13 wait 0x311fb8d8 running 10579 k no pro _ptrgl

(dbx) thread current 3

(dbx) where

_p_nsleep(??, ??) at 0xd005f740

core dump 分析的局限性

不要期待能依赖core dump 分析解决所有的问题,下面是一个简单的模拟缓冲区溢出的例子,在这个例子中由于缓冲区溢出完全丢失了定位依据:

root@/tmp#>xlC test.C -g -o test2

root@/tmp#>

root@/tmp#>./test

input str!

012345678901234567890123456789

Segmentation fault(coredump)

root@/tmp#>dbx ./test2 core

Type 'help' for help.

[using memory image in core]

reading symbolic information ...

Segmentation fault in test2. at 0x34353634

0x34353634 (???) warning: Unable to access address

0x34353634 from core

(dbx) where

warning: Unable to access address 0x34353634 from core

warning: Unable to access address 0x34353634 from core

warning: Unable to access address 0x34353630 from core

warning: Unable to access address 0x34353630 from core

warning: Unable to access address 0x34353634 from core

warning: Unable to access address 0x34353634 from core

warning: Unable to access address 0x34353630 from core

warning: Unable to access address 0x34353630 from core

系统dump 分析

环境变量设置

可以通过“sysdumpdev –l”查看系统当前的dump 配置信息:

注意旧版本的AIX “always allow dump”可能默认为关闭;为方便系统crash 时问题定位,建议打开,可使用命令sysdumpd -> System Environments-> Change / Show Characteristics of System Dump 菜单设置。

sysdumpdev –L 获得最近系统产生的dump 的相关统计信息:

为保证系统出现crash 时,dump device 能够保存下dump 信息,需要合理的配置dump device 的大小,可以使用sy dump 需要的空间。一般推荐的dump device 值大小为sysdumpdev –e 估计值的1.5 倍。

语文五年级下册全册教材分析

语文五年级下册全册教材分析 新华明德小学王草尕 一、小学语文课程标准对五年级的要求 1、有较强的独立识字能力。 2、默读有一定的速度,每分钟不少于300字。 3、能借助词典阅读,理解词语在语言环境中的恰当意义,辨别词语的感情色彩。 4、在阅读中揣摩文章的表达顺序,体会作者表达的思想感情,初步领会文章的基本表达方法。 5、在交流讨论中,敢于提出自己的看法,做出自己的判断。 6、阅读说明性文章,能抓住要点,了解文章的基本说明方法。 7、学习浏览,扩大知识面,根据需要搜集信息。 8、诵读优秀诗文,注意通过诗文的声调,节奏等体味作品的内容和情感。 9、能写简单的纪实、想象作文,能根据习作内容表达的需要,分段表述,学写读书笔记和常见应用文。 10、40分钟能完成不少于400字的习作。 二、教材主要特色 这是一册从内容到编排面貌焕然一新的教科书。它为学生发展和教师成长提供了很大的空间。其主要特色体现在: 1、人文内涵丰富 2、拓宽题材体裁 3、灵活设置专题 4、系统设计导练 三、教材概貌

1、按专题分成8组,每组精读课文、略读课文各2篇,全册共有精读课文14篇,略读课文14篇,选读课文8篇 2、口语交际、习作各7次(有分有合) 3、“大综合”1次(第六组)“小综合”1次(第三组) 4、生字:认200个,写150个。 5、“词语盘点“列出的词语:读读写写176个,读读记记154个 6、本册教材继续以专题组织单元,共八组,分别是:第一组“走进西部”,第二组“永远的童年”,第三组“语言的艺术”,第四组“他们让我感动”,第五组“中国古典名著之旅”,第六组“走进信息世界”,第七组“作家笔下的人”,第八组“异域风情”。 本册教材还编排了两次综合性学习。第一次是在“语言的艺术”这一组,以课文学习为主,同时安排了一些语文实践活动,我们称之为“小综合”。第二次是在“走进信息世界”第六组,编者突破了以课文为主体的教材结构,改为围绕专题、任务驱动、活动贯穿始终的编排形式,我们称之为“大综合”。 四、专题安排特点 1.采取“双专题”形式,即从内容和语文读写点两方面去考虑专题。 2.更加关注儿童与社会的联系,关注学生的生活,符合高年级学生的心理特点。 3.单元组成的方式更加多样。 (1)、单元导语增加了新的内容。 (2)、将口语交际与习作单列,并提供多个话题供师生选择。 (3)、将“语文园地”改为“回顾·拓展”,并增加了新的栏目。

武汉大学分析化学(第五版)下册答案

仪器分析部分作业题参考答案 第一章 绪论 1-2 1、主要区别:(1)化学分析是利用物质的化学性质进行分析;仪器分析是利用物质的物理或物理化学性质进行分析;(2)化学分析不需要特殊的仪器设备;仪器分析需要特殊的仪器设备;(3)化学分析只能用于组分的定量或定性分析;仪器分析还能用于组分的结构分析;(3)化学分析灵敏度低、选择性差,但测量准确度高,适合于常量组分分析;仪器分析灵敏度高、选择性好,但测量准确度稍差,适合于微量、痕量及超痕量组分的分析。 2、共同点:都是进行组分测量的手段,是分析化学的组成部分。 1-5 分析仪器与仪器分析的区别:分析仪器是实现仪器分析的一种技术设备,是一种装置;仪器分析是利用仪器设备进行组分分析的一种技术手段。 分析仪器与仪器分析的联系:仪器分析需要分析仪器才能达到量测的目的,分析仪器是仪器分析的工具。仪器分析与分析仪器的发展相互促进。 1-7 因为仪器分析直接测量的是物质的各种物理信号而不是其浓度或质量数,而信号与浓度或质量数之间只有在一定的范围内才某种确定的关系,且这种关系还受仪器、方法及样品基体等的影响。因此要进行组分的定量分析,并消除仪器、方法及样品基体等对测量的影响,必须首先建立特定测量条件下信号与浓度或质量数之间的关系,即进行定量分析校正。 第二章光谱分析法导论 2-1 光谱仪的一般组成包括:光源、单色器、样品引入系统、检测器、信号处理与输出装置。各部件的主要作用为: 光源:提供能量使待测组分产生吸收包括激发到高能态; 单色器:将复合光分解为单色光并采集特定波长的光入射样品或检测器;样品引入系统:将样品以合适的方式引入光路中并可以充当样品容器的作用;检测器:将光信号转化为可量化输出的信号 信号处理与输出装置:对信号进行放大、转化、数学处理、滤除噪音,然后以合适的方 式输出。 2-2: 单色器的组成包括:入射狭缝、透镜、单色元件、聚焦透镜、出射狭缝。各部件的主要作用为: 入射狭缝:采集来自光源或样品池的复合光;透镜:将入射狭缝采集的复合光分解为平行光;单色元件:将复合光色散为单色光(即将光按波长排列) 聚焦透镜:将单色元件色散后的具有相同波长的光在单色器的出口曲面上成像;出射狭缝:采集色散后具有特定波长的光入射样品或检测器 2-3 棱镜的分光原理是光的折射。由于不同波长的光在相同介质中有不同的折射率,据此能把不同波长的光分开。光栅的分光原理是光的衍射与干涉的总效果。不同波长的光通过光栅衍射后有不同的衍射角,据此把不同波长的光分开。 2-6

【案例分析】19个日常涉税点+案例简介+风险解析

【案例分析】19个日常涉税点+案例简介+风险解析 一、关于误餐补助(江苏省扬州地税局) 案情简介:近日,税务机关在对一工业企业进行检查时,发现该企业“应付福利费”科目中每月都有一笔“误餐补助”支出。进一步了解后发现,该企业职工午餐系企业免费提供,这些“误餐补助”是企业按人头补助给企业食堂用于支付职工就餐的费用。此“误餐补助”实质是按月发给职工的补贴,应按“工资薪金所得”项目代扣代缴个人所得税。随后,税务机关依据相关法律法规,追缴该企业少代扣代缴的个人所得税32万元,并对该企业处应扣未扣税款50%的罚款。 税法分析:《财政部国家税务总局关于误餐补助范围确定问题的通知》(财税字〔1995〕82号)规定:不征税的误餐补助,是指按财政部门规定,个人因公在城区、郊区工作,不能在工作单位或返回就餐,确实需要在外就餐的,根据实际误餐顿数,按规定的标准领取的误餐费。一些单位以误餐补助名义发给职工的补贴、津贴,应当并入当月工资、薪金所得计征个人所得税。 二、房地产企业销售尾房应该及时缴纳土地增值税(江苏省镇江地税局) 案情简介:尾房销售现象在房地产开发行业中普遍存在的。所谓尾房是指进入项目的清盘销售阶段所销售的房产。日前,地税机关在对一家房地产企业进行风险应对过程时,发现企业于2010年已进行了土地增值税项目清算,已补缴了税款,但在2011年企业将尾房进行了销售,税率按照预计税率缴纳了土地增值税,我们税务人员根据相关规定,按照实际增值额,补缴土地增值税35万元。

税法分析:目前,房企土地增值税清算后尾房销售执行的文件依据,主要根据《国家税务总局关于房地产开发企业土地增值税清算管理有关问题的通知》(国税发[2006]187号)的第八条规定,在土地增值税清算时未转让的房地产,清算后销售或有偿转让的,纳税人应按规定进行土地增值税的纳税申报,扣除项目金额按清算时的单位建筑面积成本费用乘以销售或转让面积计算(单位建筑面积成本费用=清算时的扣除项目总金额÷清算的总建筑面积)。纳税人已清算项目继续销售的,应在销售的当月进行清算,不再先预征后重新启动土地增值税清算。 三、房地产企业收取违约金需缴纳营业税(江苏省宿迁地税局) 案情简介:近日,税务机关在检查某房地产公司时发现,该公司在“营业外收入”科目中反映收取业主违约金累计22万元,未申报缴纳营业税。税务机关依法责令补申报缴纳营业税1.1万元,同时处以少缴税款百分之五十罚款。 税法分析:《中华人民共和国营业税暂行条例》第五条规定:“纳税人的营业额为纳税人提供应税劳务、转让无形资产或者销售不动产收取的全部价款和价外费用”。《中华人民共和国营业税暂行条例实施细则》第十三条规定:“条例第五条所称价外费用,包括收取的手续费、补贴、基金、集资费、返还利润、奖励费、违约金、滞纳金、延期付款利息、赔偿金、代收款项、罚息及其他各种性质的价外费用”。据此,房地产公司收取业主违约金,属价外费用,应并入营业额,缴纳营业税。 四、房地产公司支付个人购房合同违约金时应代扣代缴个人所得税(江苏省南京地税局) 案情简介:某地税局在对某房地产有限责任公司实施税务检查时发现,该公司因解除商品房买卖合同在2010年支付多个买房者个人违约金60多万元,但未代扣代缴个人所得税款。经查实,税务机关最终补征个人所得税款12万元。

人教版五年级语文下册教材分析

人教版五年级语文下册教材分析 一、教材内容: 关于本册教材内容,我从五个方面进行研说:(课件)识字与写字、阅读、口语交际、习作、综合实践。(一)识字与写字本册要求会写150个字,至此累计写字量为2300个。认识200个字,至此完成小学阶段认识3000个常用汉字的识字任务。(二)阅读本册阅读教学继续以专题组织单元(课件)共八组,分别是:第一组“走进西部”,第二组“永远的童年”,第三组“语言的艺术”,第四组“他们让我感动”,第五组“中国古典名著之旅”,第六组“走进信息世界”,第七组“作家笔下的人”,第八组“异域风情”。这八个主题共有28篇课文,精读和略读各14篇。每篇精读课例包括课文、课后问题。略读课例包括导读、课文。(三)口语交际本册口语交际包括八个话题:(链接)⑴策划一次与远方小朋友“手拉手”的活动;⑵说童年趣事;⑶劝说;⑷讲述一件自己感动的事;⑸演课本剧;⑹就怎样正确利用电视、网络等问题展开讨论或辩论;⑺讲人物故事;⑻聊热门话题。(四)习作习作是建立在口语交际的基础之上的,本册教材的习作安排了八次:⑴记实作文三次:第二组写“童年趣事”、第四组写“一件令自己感动的事”、第七组写“一个特点鲜明的人”;⑵应用文三次:第一组写信、第三组写发言稿、第六组写简单的研究报告;⑶材料作文二次:第五组缩写、第二组看图作文;(4)自由作文一次。(五)综合实践分“大综合”与“小综合”,“大综合”在第六组“走进信息时代”,分“信息传递改变着我们的生活”和“利用信息,写简单的研究报告”两部分;“小综合”在第三组10课后,包括搜集汉语中的熟语(歇后语、谚语,幽默故事等),公共场所看到的提示语、广告词,相声、影视剧的精彩对白等。 二、教材编排: 本册教材以专题组织单元,每组由“导语”、“课例”、“口语交际?习作”、“回顾?拓展”四部分组成(课件)。(一)导语在每组课文的前面,包括本组主题简介和单元教学目标。(二)课例分精读课例和略读课例。在每组课文之后设“词语盘点”。其中“读读写写”的词语,是由会写的字组成的,要求能读会写;“读读记记”的词语,只要求认记,不要求书写。一些课文的后面还安排了资料袋或阅读链接。全册共安排了五次“资料袋”(分别在2、6、18、19、20课后面),两次“阅读链接”(在3、26课后面)。(三)回顾与拓展包含交流平台、日积月累、课外书屋三部分。“课外书屋”栏目有时是成语故事、趣味语文和展示台。(四)交际与习作 教材的最后还编排了9篇选读课文,并附两个生字表。 三、教材特点: 1、加强目标意识,全面、准确地落实语文学习目标。 2、教材内容在丰富人文内涵、拓宽题材体裁方面,继续作出努力;在发挥语文教科书育人功能方面,进一步加强。 3、专题设置更加灵活,编排形式在继承中又有发展。 4、导学和练习系统地设计,更好地发挥导学、导练的功能。 5、顺应儿童心理发展特点,“口语交际?习作”的类型发生一定的变化。 6、在“综合性学习”中,指导学生设计和开展语文学习活动,引导探索和研究的过程,提高语文综合运用的能力。 四、教学目标与要求: (一)识字与写字教学: 1.本册识字200个,写字150个。课标要求,高年段学生已具备较强的独立识字能力,

税收风险管理存在的问题及建议

2014年03月18日 税收风险管理存在的问题及建议 税收风险管理是国家税务总局根据新时期税收事业的总体要求和税收征管工作的实际情况,着眼强化税收安全、降低征纳成本、推进依法治税、促进纳税遵从提出的一项举措。随着经济形势的快速发展,形成了不同的利益群体,征纳双方的博弈冲突日见凸显。税务机关科学管理的要求也不断提高,税收执法服务的标准逐渐精细,纳税人依法保护自己的合法权益意识日渐加强,税务干部的行政行为和执法行为时刻接受社会各阶层的监督和制约,税收征管面临的风险越来越大。在现实的税收征管工作中,不断提高税收风险管理的水平和质量是值得我们探索与实践的重要课题。一、税收风险管理的主要内容 税收是国家财政收入的主要来源,其特点是强制性和无偿性,税务机关是具体的管理部门,其工作职责是对纳税人的实际经营和纳税情况进行监督、为纳税人提供服务,以确保财政收入及时足额入库和纳税人依法履行纳税义务。税收风险管理是近年来各级税务机关都在研究探讨的新的税收管理模式,其含义是:将现代风险管理引入税收征管工作,旨在应对当前日益复杂的经济形势,最大限度地防范税收流失;规避税收执法风险;实施积极主动管理,最大限度地降低征收成本,创造稳定有序的征管环境,是提升税收征收管理质量和效率的有益探索。 二、税收风险管理中存在的问题 风险具有不确定性,无论是在理论上,还是在实践上只要涉及到风险就一定是难点。税收风险管理处于探索阶段,受制于主观认识水平和客观条件瓶颈,实践中还存在许多需要解决的问题。为此,笔者提出以下建议,供大家参考。 税收风险管理的基础薄弱。 (一)税收风险管理在技术力量、法律保障及信息数据共享等方面还存在不足。 一是技术力量的薄弱。风险管理的核心是数学模型,税收风险管理与数学发现密切相关,基层税务机关要进行风险管理,首先要有一个数学模型来计算,否则就无法衡量税收风险管理的成效,也无法确定风险管理的重点。而要建立并随时修正数学模型,必须要有高素质的专业人员提供技术上的保证,这也是开展风险管理的基层税务机关所不具备的。二是法律基础的薄弱。现阶段,风险管理还缺少一些必要的法律法规的支持,风险管理虽然以内部控制为主,但其信息的获取往往涉及其它单位和个人,这就需要有相关法律法规的支持。 三是外部环境上的欠缺。风险管理的必须依靠大量正确的数据信息,而最有说服力的数据信息往往不是纳税人自己提供,而是来源于第三方的数据信息。第三方信息主要来源于银行的支付制度和政府职能部门之间的信息共享等方面,目前,银行卡支付仍未普及,存在大量的现金结算,另一方面,政府职能部门之间的信息共享仍然处于较低的水平,这些都是外部环境的欠缺。 (二)风险管理模型未建立与风险评估机制不健全。 一是税收风险管理预警指标体系尚未建立,目前基层税务机关的风险管理主要是以指标为主,风险模型的研究不够深入。电子档案及风险评估系统的开发水平及整合水平不高,有效的信息资源未能得以充分利用,信息缺乏指导性或针对性,突出表现为“三多三少”,即散乱信息多,提示问题信息少;提出问题、给任务型信息多,指方向、给方法型信息少;单个信息分析多,信息综合分析少; 二是税收风险评估机制不健全,对如何从制度上确定风险评估的主体、程序、标准和评估结果的应用缺乏系统的操作办法,对风险管理任务的下达和完成缺乏统筹安排,导致风险管理形式重于实质,风险管理结果应用水平较低,互动协调机制有待进一步加强。同时,风险案例和模型数量不足、质量不高,缺乏实战的风险指标特征体系的指向性不强,还不能完整准确地反映风险点和风险等级的分布情况,无法有针对地抓住重点开展风险的应对。 (三)税收管理方式仍然较为粗放与权力过于集中。 现行基层税务机关主要采取行业和规模相结合的户籍管理模式,对中小微企业的管理仍以属地分片、分责任区管理为主的拉网式、粗放型管理方式,对所有的纳税人实施均衡管理,缺少完整的风险管理机制,缺乏管理的层次性和针对性。 一是税源控管缺乏针对性。目前,基层税务机关的税收管理方式仍然较为粗放化,基本上采用人海战术,依靠税收管理员“人盯人”的方式进行管理,这种全面撒网、不分轻重的牧羊式管理方式缺乏对税源控管的针对性,致使管理效率低下,征纳成本居高不下。 二是税收管理员“权力过于集中、缺乏监督制约”的弊端。尽管税收管理员制度设定了双人上岗、定期轮岗等条款,同时

分析化学课后答案武汉大学第五版上册完整版

第1章 分析化学概论 1. 称取纯金属锌,溶于HCl 后,定量转移并稀释到250mL 容量瓶中,定容,摇匀。计算 Zn 2+溶液的浓度。 解:213 0.325065.39 0.0198825010 Zn c mol L +--= =?g 2. 有L 的H 2SO 4溶液480mL,现欲使其浓度增至L 。问应加入L H 2SO 4的溶液多少毫升 解:112212()c V c V c V V +=+ 220.0982/0.4800.5000/0.1000/(0.480)mol L L mol L V mol L L V ?+?=?+ 2 2.16V mL = 4.要求在滴定时消耗LNaOH 溶液25~30mL 。问应称取基准试剂邻苯二甲酸氢钾(KHC 8H 4O 4)多少克如果改用 22422H C O H O ?做基准物质,又应称取多少克 解: 844:1:1NaOH KHC H O n n = 1110.2/0.025204.22/ 1.0m n M cV M mol L L g mol g ===??= 2220.2/0.030204.22/ 1.2m n M cV M mol L L g mol g ===??= 应称取邻苯二甲酸氢钾~ 22422:2:1 NaOH H C O H O n n ?= 1111 2 1 0.2/0.025126.07/0.32m n M cV M mol L L g mol g == =???=

2221 2 1 0.2/0.030126.07/0.42m n M cV M mol L L g mol g ===???=应称取22422H C O H O ?~ 6.含S 有机试样,在氧气中燃烧,使S 氧化为SO 2,用预中和过的H 2O 2将SO 2吸收,全部转化为H 2SO 4,以LKOH 标准溶液滴定至化学计量点,消耗。求试样中S 的质量分数。 解: 2242S SO H SO KOH ::: 100%1 0.108/0.028232.066/2100% 0.47110.3%nM w m mol L L g mol g = ????=?= 8.不纯CaCO 3试样中不含干扰测定的组分。加入溶解,煮沸除去CO 2,用LNaOH 溶液反滴定过量酸,消耗,计算试样中CaCO 3的质量分数。 解: 32CaCO HCl : NaOH HCl : 00 1 ()2100%100% 1 (0.2600/0.0250.2450/0.0065)100.09/2100% 0.250098.24%cV cV M nM w m m mol L L mol L L g mol g -=?=??-??=?= 9 今含有 MgSO 4·7H 2O 纯试剂一瓶,设不含其他杂质,但 有部分失水变为MgSO 4·6H 2O ,测定其中Mg 含量后,全部按MgSO 4·7H 2O 计算,得质量分数为%。试计算试剂中MgSO 4·6H 2O

认知无线传感网中一种高能效的频谱感知周期优化算法

传感技术学报 CHINESE JOURNAL OF SENSORS AND ACTUATORS 第28卷第8期2015年8月Vol 28No.8 Aug.2015An Energy Efficient Spectrum Sensing Period Optimization Algorithm in Cognitive Radio Sensor Networks WANG Yu ,ZHANG Jincheng *,CHEN Kewei ,WANG Quan (AFEU ,Air and Missile Defense College ,Xi'an 710051,China ) Abstract :In order to improve the efficiency of spectrum sensing in cognitive radio sensor networks ,an energy effi?cient spectrum sensing period optimization algorithm is proposed.The greedy factor is introduced to reduce the times of spectrum sensing so that the power of this method is lower than conventional ones.With the constraint of collision probability and waiting delay ,the sensing period is adaptive adjusted through the interaction with channel.The simulation results show that ,with different distributed parameter of channel state ,this algorithm can effectively improve the efficiency of spectrum sensing ,comparing with fixed periodical sensing method.And it is enforceable for cognitive radio sensor networks. Key words :Cognitive radio sensor networks ;Spectrum sensing ;Greedy factor ;Sensing efficiency EEACC :7230doi :10.3969/j.issn.1004-1699.2015.08.020 认知无线传感网中一种高能效的 频谱感知周期优化算法 王 钰,张金成*,陈可伟,王泉(空军工程大学防空反导学院,西安710051)摘要:为了提高认知无线传感网中节点的频谱感知能效,提出了一种高效的频谱感知周期优化算法。该方法通过引入贪婪因子来减少节点感知信道的次数,进而达到降低感知能耗的目的。在碰撞概率和等待时延的约束下,节点在与信道的交互过程中实现对感知周期的动态修正,达到了对信道状态的自适应高效感知。仿真结果表明,在不同的信道占用状态条件下,该算法相比固定感知周期的方法,有效地提高了感知能效,适于在认知无线传感网中实施。 关键词:认知无线传感网;频谱感知;贪婪因子;感知能效 中图分类号:TP393文献标识码:A 文章编号:1004-1699(2015)08-1221-07 现有的无线传感器网络(Wireless Sensor Net?works ,WSN )工作在无需授权的ISM 频段,但随着各种无线通信技术的发展,在当前固定频谱分配模式下,这些公用频段正日益变得拥挤,各异构无线网络之间的同频干扰日趋严重,无线网络的共存问题已成了制约无线传感器网络发展的关键问题[1-2]。为此将认知无线电技术引入到无线传感器网络中,形成了认知无线传感网(Cognitive Radio Sensor Net?works ,CRSN )[3],认知能力使得网络节点得以动态感知信道信息,并选择空闲信道完成自身的数据传输业务,减少了异构网络间的同频干扰。 频谱感知作为认知能力实现的第一步,在整个 认知过程中起着至关重要的作用。由于CRSN 网络 节点继承了WSN 低能耗、硬件资源有限、自组织等 特点,节点不可能实现全频段的实时感知,如何在MAC 层合理地控制物理层执行频谱感知引起了国内外研究者的普遍关注[4-6]。现有算法中多使用主 动式周期感知机制,该机制中节点除在数据发送前 进行信道感知外,还在无数据通信的空闲时段进行 各信道的周期性感知,为节点的信道接入和切换提 供必要的信息[7]。在空闲时段的额外感知必然会带 来感知能耗的增加,如何实现高能效的自适应信道———————————— 收稿日期:2015-03-03修改日期:2015-05-25

五年级下册语文教材分析与教学建议教案

人教版五下语文教材解读与教学建议 收集、整理:刘晶 这是一册从内容到编排面貌焕然一新的教科书。它为学生发展和教师成长提供了很大的空间。 特色 1、人文内涵丰富 2、拓宽题材体裁 3、灵活设置专题 4、系统设计导练 ﹙一﹚教材概貌 1、按专题分成8组,每组精读课文、略读课文各2篇,精读课文14篇,略读课文14篇,选读课文8篇 2、口语交际、习作各7次(有分有合) 3、“大综合”1次(第六组)“小综合”1次(第三组) 4、生字:认200个,写150个 5、“词语盘点“列出的词语:读读写写176个,读读记记154个 6、本册教材继续以专题组织单元,共八组,分别是:第一组“走进西部”,第二组“永远的童年”,第三组“语言的艺术”,第四组“他们让我感动”,第五组“中国古典名著之旅”,第六组“走进信息世界”,第七组“作家笔下的人”,第八组“异域风情”。 本册教材还编排了两次综合性学习。第一次是在“语言的艺术”这一组,以课文学习为主,同时安排了一些语文实践活动,我们称之为“小综合”。第二次是在“走进信息世界”第六组,编者突破了以课文为主体的教材结构,改为围绕专题、任务驱动、活动贯穿始终的编排形式,我们称之为“大综合”。 除去第六组,全册共有课文28篇,精读和略读各14篇。这七组教材,每组由“导语”“课例”“口语交际·习作”“回顾·拓展”四部分组成。在每组课文之后设“词语盘点”。其中“读读写写”的词语,是由会写的字组成的,要求能读会写;“读读记记”的词语,只要求认记,不要求书写。一些课文的后面还安排了资料袋或阅读链接。全册共安排了五次“资料袋”,两次“阅读链接”。 全册还编排了8篇选读课文,并附两个生字表。生字表(一)是要求认识的200个字。至此,完成小学阶段认识3 000个常用字的识字任务。生字表(二)是要求写的150个字,至此累计写字量为2 300个。 本册教材的注音方式与五年级上册保持一致,生字、难字随文注音,用圆括号标明,多音字用方括号标明。精读课文和略读课文中不认识的字,出现一次注一次音,其他部分中出现的生字一律不再注音。为了便于识字,课文中的生字注本音;一些在语言环境中要变调读 1.采取“双专题”形式,即从内容和语文读写点两方面去考虑专题。 2.更加关注儿童与社会的联系,关注学生的生活,符合高年级学生的心理特点。 3.单元组成的方式更加多样。 ﹙二﹚单元结构 高年级单元结构编排回顾 1、单元导语增加了新的内容。

分析化学第五版习题答案详解下

分析化学第五版习题答案详解(下) 第五章配位滴定法 思考题答案 1.EDTA与金属离子的配合物有哪些特点? 答:(1)EDTA与多数金属离子形成1?1配合物;(2)多数EDTA-金属离子配合物稳定性较强(可形成五个五原子环); (3)EDTA与金属配合物大多数带有电荷,水溶性好,反应速率快;(4)EDTA与无色金属离子形成的配合物仍为无色,与有色金属离子形成的配合物颜色加深。 2.配合物的稳定常数与条件稳定常数有何不同?为什么要引用条件稳定常数? 答:配合物的稳定常数只与温度有关,不受其它反应条件如介质浓度、溶液pH值等的影响;条件稳定常数是以各物质总浓度表示的稳定常数,受具体反应条件的影响,其大小反映了金属离子,配位体和产物等发生副反应因素对配合物实际稳定程度的影响。 3.在配位滴定中控制适当的酸度有什么重要意义?实际应用时应如何全面考虑选择滴定时的pH? 答:在配位滴定中控制适当的酸度可以有效消除干扰离子的影响,防止被测离子水解,提高滴定准确度。具体控制溶液pH值范围时主要考虑两点:(1)溶液酸度应足够强以消去干扰离子的影响,并能准确滴定的最低pH值;(2)pH值不能太大以防被滴定离子产生沉淀的最高pH值。

4.金属指示剂的作用原理如何?它应该具备那些条件? 答:金属指示剂是一类有机配位剂,能与金属形成有色配合物,当被EDTA等滴定剂置换出来时,颜色发生变化,指示终点。金属指示剂应具备如下条件:(1)在滴定的pH范围内,指示剂游离状态的颜色与配位状态的颜色有较明显的区别;(2)指示剂与金属离子配合物的稳定性适中,既要有一定的稳定性K’MIn>104,又要容易被滴定剂置换出来,要求K’MY/K’MIn ≥104(个别102);(3)指示剂与金属离子生成的配合物应易溶于水;(4)指示剂与金属离子的显色反应要灵敏、迅速,有良好的可逆性。 5.为什么使用金属指示剂时要限定适宜的pH?为什么同一种指示剂用于不同金属离子滴定时,适宜的pH条件不一定相同? 答:金属指示剂是一类有机弱酸碱,存在着酸效应,不同pH时指示剂颜色可能不同,K’MIn不同,所以需要控制一定的pH值范围。指示剂变色点的lgK’Min应大致等于pMep, 不同的金属离子由于其稳定常数不同,其pMep也不同。金属指示剂不象酸碱指示剂那样有一个确定的变色点。所以,同一种指示剂用于不同金属离子滴定时,适宜的pH条件不一定相同。 6.什么是金属指示剂的封闭和僵化?如何避免? 答:指示剂-金属离子配合物稳定常数比EDTA与金属离子稳定常数大,虽加入大量EDTA也不能置换,无法达到终点,称为指示剂的封闭,产生封闭的离子多为干扰离子。消除方法:可加入掩蔽剂来掩蔽能封闭指示剂的离子或更换指示剂。指示剂或指示剂-金属离子配合物溶解度较小, 使得指示剂与滴定剂的置换速率缓慢,使终点拖长,称为指示剂的僵化。消除方法:可加入适当有机溶剂或加热以增大溶解度。

分析化学(第五版)试卷5套及答案

《分析化学》期末试卷(B) 一、是非题(本大题共10小题,每小题1分,共10分) 1.化学分析法的测定灵敏度高,因此常用于微量分析。 ( ) 2.分析数据中,凡是“0”都不是有效数字。 ( ) 3.纯度很高的物质均可作为基准物质。 ( ) 4.用HCl溶液滴定Na2CO3基准物溶液以甲基橙作指示剂,其物质量关系为n(HCl)∶n(Na2CO3)=1∶1。 ( ) 5.酸碱滴定中,只有当溶液的pH突跃超过2个pH单位,才能指示滴定终点。 ( ) 6.标定高锰酸钾溶液时,为使反应较快进行,可以加入Mn2+。 ( ) 7.AgCl的Ksp=1.56×10-10比Ag2CrO4的Ksp=9×10-12大,所以,AgCl在水溶液中的溶解度比Ag2CrO4大。 ( ) 8.用佛尔哈德法测定Cl-时,如果生成的AgCl沉淀不分离除去或加以隔离,AgCl沉淀可转化为AgSCN沉淀。但用佛尔哈德法测定Br-时,生成的AgBr 沉淀不分离除去或不加以隔离即可直接滴定。 ( ) 9.重量分析法要求沉淀溶解度愈小愈好。 ( ) 10.吸光光度法只能测定有颜色物质的溶液。 ( ) 二、选择题 (本大题共20题,每小题1.5分,共30分) 1.试样预处理的目的不是为了() (A)使被测物成为溶液; (B)使被测组分生成沉淀 (C)使被测物变成有利测定的状态; (D)分离干扰组分 2.下列论述正确的是:() (A)准确度高,一定需要精密度好; (B)进行分析时,过失误差是不可避免的; (C)精密度高,准确度一定高; (D)精密度高,系统误差一定小; 3.称取含氮试样0.2g,经消化转为NH4+后加碱蒸馏出NH3,用10 mL 0.05 mol·L-1HCl吸收,回滴时耗去0.05 mol·L-1 NaOH 9.5 mL。若想提高测定准确度, 可采取的有效方法是 ( ) (A) 增加HCl溶液体积 (B) 使用更稀的HCl溶液 (C) 使用更稀的NaOH溶液 (D) 增加试样量 4.在酸碱滴定中被测物与滴定剂浓度各变化10倍,引起的突跃范围的变化为()。 (A)增加1个pH (B)增加2个pH (C) 2个pH (D)减小2个pH 5.下列溶液用酸碱滴定法能准确滴定的是 ( ) (A) 0.1 mol·L-1 HF (p K a = 3.18) (B) 0.1 mol·L-1 HCN (p K a = 9.21) (C) 0.1 mol·L-1 NaAc [p K a(HAc) = 4.74] (D) 0.1 mol·L-1 NH4Cl [p K b(NH3) = 4.75]

存货损失涉税风险分析

存货损失涉税风险分析 企业在生产经营中,除了存货的政策耗用以外,不免会发生各种各样的存货非正常损失。存货非正常损失涉及增值税进项税转出,以及能否在企业所得税税前扣除,现进行分析。 对增值税而言,存货损失如属于非正常损失,其进项税不能在税前扣除。《增值税暂行条例》规定,非正常损失的购进货物及相关的应税劳务,非正常损失的在产品、产成品所耗用的购进货物或者应税劳务的进项税额不得从销项税额中抵扣。 对于企业所得税而言,存货正常损耗应以清单申报的方式向税务机关申报扣除,非正常损失应以专项申报的方式向税务机关申报扣除。企业无法准确判别是否属于清单申报扣除的资产损失,可以采取专项申报的形式申报扣除。 一、存货非正常损失的认定 存货损失牵涉到涉税问题,所以企业发生存货损失时,首先应正确判断存货损失的性质,即正常损失和非常损失。 财税[2016]36号文件第二十八条规定:非正常损失,是指因管理不善造成货物被盗、丢失、霉烂变质,以及因违反法律法规造成货物或者不动产被依法没收、销货、拆除的情形。 规定对需要做进项税额转出的非正常损失给了限制性解释,规定仅列举了“因管理不善造成被盗、丢失、霉烂变质的损失;违反法律”四种情形。因此区分正常损失与非正常损失的关键在于区分造成损失的原因是主观因素还是客观因素,如果是主观原因造成的存货损失,则属于非正常损失;如果是客观原因造成的,则属于正常损失。 二、常见的不属于非正常损失的情况 l 价损不属于非正常损失。对于企业由于资产评估减值而发生的资产损失,如果流动资产未丢失或损坏,只是由于市场发生变化,价格降低,价值量减少,不属于《中华人民共和国增值税暂行条例实施细则》中规定的非正常损失,不作进项税额转出处理。 l 因产品质量问题或存货过保存期限报废的损失不属于非正常损失。国家税务总局纳税服务司在2009年11月9日税务网上答疑:纳税人生产或购入在货物外包装或使用说明书中注明有使用期限的货物,超过有效(保质)期无法进行正常销售,需作销毁处理的,可视作企业在经营过程中的政策经营损失,不纳入非正常损失。 l 自然灾害损失不属于非正常损失。根据最新的增值税暂行条例实施细则,非正常损失取消了自然灾害一项。 l 运输意外损失也不属于非正常损失。

五年级下册数学教材分析

五年级下册数学教材分析 本册教材的教学内容主要有:图形的变换,因数与倍数,长方体和正方体,分数的意义和性质,分数的加法和减法,统计,数学广角和数学实践活动等。对于这些教学内容的编排和处理,以整套教材的编写思想、编写原则等为指导,体现了前几册教材同样的风格与特点,所以本册教材仍然具有内容丰富、关注学生的经验与体验、体现知识的形成过程、鼓励算法多样化、改变学生的学习方式,体现开放性的教学方法等特点。同时,由于教学内容的不同,本册教材还具有下面几个明显的特点。 .改进因数与倍数教学的编排,体现数学教学改革的新理念,培养学生的数学素养。 在小学阶段,有关因数与倍数的知识是传统的教学内容,以往人们认为,它既是小学生应该掌握的重要的基础知识,又是发展小学生逻辑思维的良好素材。同时,人们普遍认识,这部分内容概念集中,比较抽象,概念之间的联系紧密,学生理解起来比较困难。也由于以往对这部分内容的编排,联系实际的素材不多,学习这部分内容,既需要学生理解并记忆一些概念,又要求能够运用这些概念进行一定的推理、判断。所以,学习过程显得比较枯燥。因此,这部分内容向来是小学数学教学的难点内容。

本册教材的编排既注意体现《标准》中关于因数与倍数教学与教材编排的要求,同时注意体现近年来有关这部分内容教学改革的经验。首先,将以往教材“因数与倍数”的教学内容分散编排,安排在本册的两个单元里教学。第二单元“因数与倍数”包括因数和倍数的意义,2、5、3的倍数的特征,质数和合数的含义等,重点是让学生了解和掌握这些重要的概念;在第四单元“分数的意义和性质”中,结合约分教学最大公因数的概念和求法,结合通分教学最小公倍数的概念和求法。其次,注意所涉及的数的范围在1~100的自然数内,避免题目中的数目过大。此外, 2.改进认识分数的编排,注重沟通知识间的相互联系,加强学生对分数意义的理解。 从本学期开始,学生将要系统地学习分数的意义和性质、分数的四则运算。同整数、小数知识一样,分数知识也是小学数学教学的重要内容,是进一步学习数学和其他学科所必需的基础知识。分数的概念比较难理解,计算起来也比较复杂。为了便于学生理解和掌握分数,本套教材仍然采用了以往教材的编排体系,把分数划分为两个阶段教学。第一段安排在三年级上册,借助操作直观,使学生对分数有初步的认识,虽然也出现了简单的分数大小比较和同分母分数加、减法,目的是为了帮助学生更好地理解分数的初步概念,给学生积累一些感性知识。在系统认识了小数和初步认识了分数

分析化学[第五版]武汉大学_课后习题答案

第1章 分析化学概论 2. 有0.0982mol/L 的H 2SO 4溶液480mL,现欲使其浓度增至0.1000mol/L 。问应加入0.5000mol/L H 2SO 4的溶液多少毫升? 解:112212()c V c V c V V +=+ 220.0982/0.4800.5000/0.1000/(0.480)mol L L mol L V mol L L V ?+?=?+ 2 2.16V mL = 4.要求在滴定时消耗0.2mol/LNaOH 溶液25~30mL 。问应称取基准试剂邻苯二甲酸氢钾(KHC 8H 4O 4)多少克?如果改用22422H C O H O ?做基准物质,又应称取多少 克? 解: 844:1:1 NaOH KHC H O n n = 1110.2/0.025204.22/ 1.0m n M cV M mol L L g mol g ===??= 2220.2/0.030204.22/ 1.2m n M cV M mol L L g mol g ===??= 应称取邻苯二甲酸氢钾1.0~1.2g 22422:2:1 NaOH H C O H O n n ?= 1111 2 1 0.2/0.025126.07/0.32m n M cV M mol L L g mol g == =???=

2221 2 1 0.2/0.030126.07/0.42m n M cV M mol L L g mol g == =???= 应称取22422H C O H O ?0.3~0.4g 6.含S 有机试样0.471g ,在氧气中燃烧,使S 氧化为SO 2,用预中和过的H 2O 2 将SO 2吸收,全部转化为H 2SO 4,以0.108mol/LKOH 标准溶液滴定至化学计量点,消耗28.2mL 。求试样中S 的质量分数。 解: 2242S SO H SO KOH ::: 100%1 0.108/0.028232.066/2100% 0.47110.3%nM w m mol L L g mol g = ????=?= 8.0.2500g 不纯CaCO 3试样中不含干扰测定的组分。加入25.00mL0.2600mol/LHCl 溶解,煮沸除去CO 2,用0.2450mol/LNaOH 溶液反滴定过量酸,消耗6.50mL ,计算试样中CaCO 3的质量分数。 解: 32CaCO HCl : NaOH HCl :

资产负债表涉税风险分析

资产负债表涉税风险分析 一、总体经营情况 (一)流动资产和固定资产的数量和比重是否符合行业特点 (二)流动流产和固定资产的配比是否合理 二、资产审查分析 (一)货币资金的税务稽查点 1.现金及银行存款不足:从理论上讲,纳税人就无法启动生产, 如果企业的实际情况不是这样,说明可能企业存在账外账,一些公司的报表,账外的资金过大,账内的资金过少,必然表现出税务粗线;小公司小资金、大公司大资金,关键是配比。 2.库存现金过大:根据我国的现金管理制度,纳税人的库存现 金也不能过大,如果报表上反映的现金量大,则可能存在“白条”,纳税人可能在寻找机会把部分应该税的列支的费用挤进税的成本,影响企业所得税。 (二)存货的税务稽查点 1.存货过大问题: 存货长期挂账不动(购买虚开的增值税进项发票;存在账外收 入;存货注资; 2.存货过小问题: 与固定资产、经营规模不配比,是否存在账外经营(存货入库不入账,存货不入库)

3.赊购方式: 存在账外收入,支付供货商贷款未通过账面,未冲减应付账款虚列成本,购买发票,款项无法支付 将贷款挂在应付账款科目,不做或者延迟做收入 4.存货的构成: 要严格划分流动资产和固定资产的界限,划清生产物资和专项物资的界限,对于生产物资还要分清其存在形式 5.存货的变化 (三)固定资产账户 1.固定资产过大:不真实,虚列成本;真实存在,正常运转、库 存、销售过小与产能不匹配,是否隐藏收入 2.固定资产的增加、减少,涉及增值税、营业税、企业所得税、 房产税 3.从资产负债表分析固定资产有关项目最重要的是固定资产原 值及折旧的变化(按有关规定,纳税人固定资产的总量和计提的折旧在不同年份及不同月份之间都有延续性和必然联系(四)分析在建工程 1.不同时期的在建工程的金额不变,聪明纳税人的在建工程处于 停工状态,是否应转固定资产而未转,房产税问题,关注借款 利息 2.在建工程的金额逐月增加,表明在建工程处于不断施工状态; 关注是否存在在建工程成本转入生产成本

五年级下册教材分析

五年级下册教材分析 五年级下册学生用书共分六个单元,两个复习单元。 Unit 1 This Is My Day主要讨论我们的日常活动,学习一般现在时的特殊疑问句。在情景中使用When do you …? I usually…at…的句型进行交流。 Unit 2 My favourite season 听懂,会说Which season do you like best?.并能结合句型展开深入的对话,运用What would you like to do ?进行实际交流。 Unit 3 My birthday用句型When is your birthday? My birthday is …进行交流。能够听、说、读、写12个月份,及其缩写形式。能用“When is your birthday?”询问对方的生日,并用“My birthday is in ….”来表达自己的月份。 Recycle 1综合运用第一单元的中心语言,对一天的活动进行有条理的表述。包括听说读写四方面的练习。 Unit 4 What Are You Doing? 动词短语及其ing 形式:drawing pictures, doing the dishes, cooking dinner, reading a book, answering the phone 。句型“What are you doing?”及其回答“I’m doing the dishes/….”。学习现在进行时第一人称和第三人称单数的现在进行时表达法及其特殊疑问句的表达法。 Unit 5 Look at the monkeys学习询问她//它在做什么及回答:What is she/he/it doing? She /he /It is…,What are the…s doing? They are…,主要是现在进行时第三人称单复数的句型练习。 Unit6 A Field Trip句型“Are you …?Yes,they are /No,they are not.”并能在情景中运用。区分Are they…和Is he…两个句型,使学生能够正确运用。主要学习现在进行时一般疑问句的表达法。 Recycle 2 主要是针对现在进行时陈述句和疑问句的巩固和拓展练习。 每单元的Let’s learn部分的词汇仍然是围绕话题归类出现的。这样有利于学生记忆和开展话题的讨论。与五年级上册相同,本册Let’s learn中的大部分词汇要求学生做到听、说、读、写四会掌握(即加粗的单词)。用来巩固复习词汇的活动主要是结对和小组活动,以及Let’s find out等启发学生主动思考的活动。 五年级下册学生用书的Let’s start也是一项brainstorm式的活动,这一点与五年级上册相同。同上一册不同的是,本册的Let’s start部分既可以用来引入话题、引出新词,也可以引出新句型。另外,在这一部分基本上都安排了一个任务型活动,需要学生通过问答、思考或讨论来完成。 Let’s talk部分依旧是一个浓缩了的情景会话,目标句型突出。为给学生提供灵活运用语言的机会,这一部分提供了可供替换的内容。 Read and write部分的教学目标是:读懂对话或短文;完成检测学生理解程度的填充句子练习;听、说、读、写四会掌握两组句子;完成一项综合运用所学语言的任务型语言活动。 在Pronunciation部分,三年级上册、四年级上册学生用书中安排呈现了26个字母及例词,使学生初步了解到字母在单词中的发音,四年级下册学生用书进一步呈现了5个元音字母在单词中长短不同的发音,五年级上册学生用书编排了22个常见字母组合的发音,在此基础上,本册又安排了21个常见字母组合的发音,依旧是用绕口令的形式将含有这些字母组合的单词整合成趣味句子。 五年级下册学生用书的阶段复习密切围绕各单元话题展开,将所有需要复习的语言点融进有实际交际意义的活动之中,并增加了考察综合性阅读理解能力的语篇,以增进对语言知识的积累。

相关主题
文本预览
相关文档 最新文档