10点读书为何抱歉出现中断 但是

读书不能顺利的读下来,容易中断,而且感觉潜意识下我要读的很快!读过之后也不知道读了什么!_百度知道您所在的位置: >>
>> 第五章 改变不良行为及习惯的有效策略
为这个书签标记颜色吧
有效策略之十三 逻辑中断法
&&&&认知心理学告诉我们:认知决定行为,行为决定结果。错误的认知导致错误的行为,矫正孩子的不良行为要先从改变孩子的认知做起。
&&&&孩子跌倒在地上不爬起来,大声哭闹,要父母抱他起来,这是一个错误的认知逻辑,怎么办呢?用“逻辑中断法”。告诉他“自己跌倒应该自己爬起来。”这样的认知逻辑重复几次,孩子再跌倒时,就会自己爬起来了。
&&&&又比如,孩子做作业时,遇到了难题,他不愿动脑筋,说:“妈妈快来啊!这道题我做不出来!”他过去的逻辑就是“只要不会就问父母”。这个逻辑要中断它,要打断它。“孩子,你平时很爱动脑筋,不会的问题再多想想”,他思考了一会做出来了,你说,看看,你一动脑筋,难题就不难了。也可能他动了半天脑筋还是没有做出来,你这时可能要启发、辅助他一下。但是他的逻辑毕竟在一定程度上中断了。你在帮助他的时候,略作指点一下,结果他做出来了。你表扬他,好!这主要还是你自己动脑筋做出来的。这就在一定程度上中断了他旧有的逻辑。
&&&&如果孩子有骂人、打人、不讲公共秩序、破坏公物等不良行为,那么,父母要明确打断他旧有的逻辑,因为孩子觉得打人、骂人等这些行为是没有关系的。你就告诉他,“一个人不管是大人还是小孩都不应该有这些不文明行为”,打断他旧有的逻辑。
&&&&孩子有错误的行为表现大多是因为他的错误认识和旧有的逻辑。这个错误认识和旧的逻辑是社会给予的,也可能是我们家庭或学校过去给予的。要打破他错误的认识和中断他过去的逻辑,提供一个新的正确的认识和逻辑。如你告诉他,“不能这样做”,同时,你必须要指明,“应该怎么做”。条件许可时,最好要把新行为演练几次。实践中要一而再,再而三地反复训练强化,孩子的新的、好的行为及逻辑认识才能固定下来。
&&&&对于坏习惯的改变,作为家长首先要找到孩子形成坏习惯的原因,然后才能对症下药。如果孩子的坏习惯形成与家长有关,首先要反省,改变自己的教育方式、方法才行。另外,可以利用培养好习惯来取代坏习惯,好的习惯占了上风,坏习惯就“无缝可钻”。
定价:¥35.00 当当价:¥26.30
为这个书签标记颜色吧
小贴士:键盘左右键(← →)可以上下翻页,按回车(ENTER)可返回该作品目录。鼠标双击滚屏
数据载入中 ...
您可以复制下面的内容,通过MSN或者QQ发送给朋友。
一起来阅读《》吧!作者:
书籍简介:
当当网免费试读此书地址:/book_1054?ref=read-7-share书之城-小说下载阅读器怎么提示数据库连接中断请检查_百度知道博客访问: 3509380
博文数量: 1022
博客积分: 19333
博客等级: 上将
技术积分: 11135
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
++++++APUE读书笔记-10信号-05被中断的系统调用++++++
5、被中断的系统调用================================================&早期Unix系统的一个特性是当一个进程被阻塞在一个很慢的系统调用的时候捕捉到一个信号,这时候,这个系统调用就会被中断了。系统调用会返回一个错误,错误号码是EINTR,这个在发生信号并且进程捕捉到这个信号的时候就会发生,当进程被阻塞在系统调用的时候,这可以用来唤醒进程。&这里,我们一定要区分系统调用和一个函数之间的区别。这是内核中的系统调用在捕获信号的时候被打断了。&系统把系统调用区分为两类以支持这个特性:“慢”系统调用,以及其他的系统调用。慢系统调用是可以被永远阻塞的系统调用,比如说:&a.如果特定文件(管道,终端驱动,网络设备)的数据不存在,可以导致调用者永久阻塞的读取操作。&b.如果向相应的特定文件写数据不能被立即接受,可导致调用者永久阻塞的操作。&c.打开特殊文件需要特殊条件导致的阻塞。(例如打开终端设备等待连接的modem应答的情况)&d.pause函数(这个函数将调用进程睡眠,直到捕获到了一个信号)和wait函数。&e.特定的ioctl操作。&f.一些内部进程的通信函数。&这些慢系统调用中一个例外是和磁盘相关的I/O操作。尽管对磁盘文件的读写操作可以临时阻塞一个调用者(磁盘驱动中会将请求排队,然后依次执行这些请求),除非出现硬件错误,I/O操作一般都会很快地返回,并且取消对调用者的阻塞。
&一个被打断的系统调用的情况就是当用户从终端处初始化了读取的操作,然后终端前的用户离开了很长时间,这样进程将被阻塞好久,直到系统挂掉。&POSIX.1的2001标准版本改变了被打断的读/写操作的语义。早期的版本实现,处理只传输了一部分的读写操作的方式有不同的选择。如果读取操作将数据接收到应用程序的缓存,但是并没有将所有请求的数据接收就被打断了,那么操作系统可以让这次的read系统调用失败,然后设置errno为EINTR或者允许这次系统调用成功,然后返回被传输的那部分数据。类似地,如果write操作也是在传输了一部分数据的时候被打断了,那么操作系统也可以让write有类似地两种返回的情况。以前,继承自System V的系统会让系统调用失败,然而继承自BSD的系统,会让返回部分的数据。在2001版本的POSIX.1标准中,BSD类型的系统的语义被采用了。&一个被打断的系统调用的问题就是我们需要显示地处理返回的错误状态,一个典型的代码序列如下(假设有一个读取操作并且我们就算在它被打断的时候也想要重新启动这个读取操作):
&again:&if ((n = read(fd, buf, BUFFSIZE)) < 0)&{&&if (errno == EINTR)&&&&&&& /* just an interrupted system call */&&/* handle other errors */&}
&为了防止应用程序处理被打断的系统调用,4.2BSD对一些特定的被打断的系统调用引入了一个自动启动的机制。可以自动启动的系统调用有ioctl,read,readv,write,writev,wait,waitpid.前5个操作只有在操作一个比较慢的设备的时候,才会被信号打断;wait和waitpid在捕获信号的时候就会被打断。由于这个可能会导致应用程序的一些问题,有的应用程序并不是想要那个操作在被打断的时候重启动,4.3BSD允许进程在信号的地方来禁止这个特性。&POSIX.1允许执行重新启动系统调用,但是这个不是需要的。Single UNIX Specification为sigaction定义了一个SA_RESTART标记作为XSI扩展,允许应用程序请求那个系统调用被重新启动。&默认来说System V不会重新启动系统调用。而BSD如果被信号打断的时候,会重新启动他们。默认来说FreeBSD 5.2.1, Linux 2.4.22, 和 Mac OS X 10.3会重新启动被信号打断的系统调用。然而,Solaris9 会返回error为(EINTR)。&4.2BSD引入自动启动系统调用这个特性的一个原因就是,有时候,我们不知道输入输出设备是一个慢速设备。如果我们写的程序可以被用来交互,那么它可能在读写一个慢速的设备,终端就是这个类型。如果我们在这个程序中捕获信号,并且系统不提供重新启动系统调用的能力,那么我们就得在每次读写的时候测试中断错误,或者返回并且重新进行读写操作。&下面的表格中给出了各种系统实现的和signal相关的函数以及它们的含义。+----------------------------------------------------------------------------------------------+|&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&&&&& | Signal handler& | Ability to& | Automatic restart of& || Functions |&&&&&&&&& System&&&&&&&&& |&&&& remains&&&& |&&& block&&& |& interrupted system&& ||&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&&&&& |&&& installed&&& |&& signals&& |&&&&&&& calls?&&&&&&&& ||-----------+--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | ISO C, POSIX.1&&&&&&&&&& |&& unspecified&& | unspecified |&&&&& unspecified&&&&& ||&&&&&&&&&& |--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | V7, SVR2, SVR3, SVR4,&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&& never&&&&&&&& ||&&&&&&&&&& | Solaris&&&&&&&&&&&&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& ||& signal&& |--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | 4.2BSD&&&&&&&&&&&&&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&&& always&&&&&&&& ||&&&&&&&&&& |--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | 4.3BSD, 4.4BSD, FreeBSD, |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&&& default&&&&&&& ||&&&&&&&&&& | Linux, Mac OS X&&&&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& ||-----------+--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | XSI&&&&&&&&&&&&&&&&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&& unspecified&&&&& ||& sigset&& |--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | SVR3, SVR4, Linux,&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&&&& never&&&&&&&& ||&&&&&&&&&& | Solaris&&&&&&&&&&&&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& ||-----------+--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | 4.2BSD&&&&&&&&&&&&&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&&& always&&&&&&&& ||& sigvec&& |--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | 4.3BSD, 4.4BSD, FreeBSD, |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&&& default&&&&&&& ||&&&&&&&&&& | Mac OS X&&&&&&&&&&&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& ||-----------+--------------------------+-----------------+-------------+-----------------------||&&&&&&&&&& | POSIX.1&&&&&&&&&&&&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&& unspecified&&&&& ||&&&&&&&&&& |--------------------------+-----------------+-------------+-----------------------|| sigaction | XSI, 4.4BSD, SVR4,&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& ||&&&&&&&&&& | FreeBSD, Mac OS X,&&&&&& |&&&&&&& &#8226;&&&&&&& |&&&&& &#8226;&&&&& |&&&&&& optional&&&&&&& ||&&&&&&&&&& | Linux, Solaris&&&&&&&&&& |&&&&&&&&&&&&&&&& |&&&&&&&&&&&& |&&&&&&&&&&&&&&&&&&&&&& |+----------------------------------------------------------------------------------------------+
&我们没有讨论旧的sigset和sigvec函数。他们的作用已经sigaction替换了;包含它们只是为了完整。相反,有些实现提倡使用signal函数作为简化的sigaction接口。&需要注意的是其他的UNIX系统,可能会和表中的有所不同。例如,在SunOS 4.1.2的sigaction默认会重新启动被中断的系统调用,这和上面表中列出的是不一样的。&在本章第14节中,我们提供了自己的signal函数,这个函数尝试自动重新启动被打断的系统调用(除了SIGALRM信号)。后面我们会提供另外的函数signal_intr这个函数就从来不会尝试重新启动。&我们会在后面涉及到select和poll函数的时候讨论更多关于被打断的系统调用。
阅读(322) | 评论(2) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
产生信号时,进程被挂起,处理完信号,进程恢复执行。信号处理函数中,还是可以调用被挂起进程的上下文(如变量等)。处理函数是软中断而非在多线程方式并发处理。
请登录后评论。}

我要回帖

更多关于 acrobat 抱歉出现中断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信