1、内核如何为不同的请求提供服务
(1)内核抢占:如果一个进程还在处理一个异常的时候,分配给它的时间片到期了,会发生什么事情呢?这取决于有没有启用内核抢占(Kernel Preemption),如果没有启用,进程就继续处理异常,如果启用了,进程可能会立即被抢占,异常的处理也就暂停了,直到schedule()再度选择原先那个进程(注意:内核处理中断的时候,必然会禁用内核抢占,所以这里才说是异常)。...
分类:
其他好文 时间:
2015-05-11 08:51:21
阅读次数:
131
Thread Affinity为什么需要线程的CPU亲和性应用通过多线程的方式执行,多数情况下线程能够被合理的调度。但在某些情况下某个重要的线程被暂停,而时间片被分配给了一个无关重要的线程。当一个线程每次被暂停休眠,然后被唤醒之后,需要重新加载“cache line”(cpu L1/L2 cache)。当线程的工作时间很短暂,需要被频繁的被唤醒,意味着整个流程执行都很慢,有可能比单线程情况下慢2-5...
分类:
编程语言 时间:
2015-05-03 23:47:07
阅读次数:
406
不知不觉的已经在网易云课堂上像追美剧一般追过了2个月的课程。这两个月的课程中,有过对知识的不解,想过中途放弃,但是最终坚持到了现在。回看这8周的学习笔记,听课的感觉依旧,怀念当时的感觉与冲劲,也感叹道自己经历投入的不足。下面是这八周的博客地址列表。博客列表初识计算机工作过程对一个简单的时间片轮转多道...
分类:
系统相关 时间:
2015-05-03 23:41:17
阅读次数:
269
一、Linux进程调度时机进程状态转换的时刻:进程终止、进程睡眠;当前进程的时间片用完时(current->counter=0);设备驱动程序;进程从中断、异常及系统调用返回到用户态时。二、实验截图可以看见,当我们设置断点后,会发现它总是在不停地调度,并且似乎在循环着什么。很有可能是0号进程和ini...
分类:
系统相关 时间:
2015-04-27 00:23:03
阅读次数:
217
Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。
Linux通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,这个新进程拥有自己的变量和自己的PID,它的时间调度是独立的,它的执行几乎完全独立于父进程。
进程可以看成一个资源的基本单位,而线程是程序调度的基本单位,一个进程内部的线程之间共享进程获得的时间片。...
分类:
编程语言 时间:
2015-04-25 13:47:23
阅读次数:
216
监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各指标含义:r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cp...
分类:
系统相关 时间:
2015-04-20 16:30:38
阅读次数:
190
前一篇postNotificationName同步调用导致的白屏问题>>里讲到"mediaView里抛通知时在异步线程抛,利用线程切换避免reloadData过程中再reloadData”.
为何这样做可以解决问题呢?
在异步线程(假设是thread10)抛HWCHAT_VIEW_NEED_RELOAD
通知,导致在thread10里同步调用了reloadChatCollection...
分类:
其他好文 时间:
2015-04-18 11:36:13
阅读次数:
209
import "sync"import "sync/atomic"import "time"import "runtime"1.runtime.Gosched()表示让CPU把时间片让给别人,下次某个时候继续恢复执行该goroutine,自己一般是阻塞了,这是一个很高级的sleep,我们经常会遇到要...
分类:
其他好文 时间:
2015-04-18 11:25:50
阅读次数:
266
一.基于时间片轮转调度代码的解读 代码结构主要由三个文件组成: 1.mypcb.h 2.myinterrupt.c 3.mymain.c1.进程控制块(mypcb.h)/* CPU-specific state of this task */struct Thread{ unsigned...
分类:
系统相关 时间:
2015-04-15 23:10:11
阅读次数:
178
源:C# MODBUS协议 上位机C#写了一款上位机监控软件,基于MODBUS_RTU协议。 软件的基本结构:采用定时器(Timer控件)为时间片。串口采用serialPort1_DataReceived中断接收,并进行MODBUS格式判断。把正确接收的数据取出,转换为有特定的结构体中。数据通过时间...
分类:
数据库 时间:
2015-04-15 20:50:37
阅读次数:
300