Month: February 2013

进程同步相关术语解释

Race Condition: A situation where 1. several processes access and manipulate the same data concurrently 2.the outcome of the execution depends on the particular order in which the access takes place Critical Section: a segment of code that accesses shared resource(s) – code, not resource(s) itself If process p1 is executing in its critical section, then …

进程同步相关术语解释 Read More »

名词解释: 字符设备 V.S. 块设备

字符设备不能随机访问数据,而只能以流的方式顺序访问。用键盘打"abc"时,键盘驱动程序必须顺序地读入a, b, c.  键盘就是字符设备 。 块设备可以随机访问数据。 硬盘就是个例子,它可以移动磁头到任何位置来读取数据。

抢占式 V.S. 非抢占式

在抢占式多任务系统中(preemptive multitasking)中,调度程序可以强行挂起一个进程,让别的进程获得CPU. 在非抢占式多任务系统中(cooperative multitasking)中,除非进程自己主动停止运行,否则它会一直执行。

linux没有使用微内核设计

微内核设计中,功能被划分成一个个的“服务器”,这些服务器之间地址空间彼此独立,所以一个功能的崩溃不会影响其他功能。 但是微内核中的服务器之间只能通过IPC通信,效率低于直接函数调用。 linux没有使用微内核,它用的是单内核。功能模块之间可以直接进行函数调用,保证了较好的性能。 不过,它有些类似于微内核的优点:高度模块化、动态加载等等。

计算机总线

总线: 数据传送的公共通路。 CPU和主存之间的数据传输并没有用什么专门的一对一通道,而是用了总线。 跟以太网的广播式数据传送类似,CPU把数据丢到总线上,但只有主存会收到。 一台计算机中按不同的速度要求设置了多条总线: 1. CPU内部总线 2. 系统总线 3. I/O总线 总线的关键性能测标是“ 总线带宽”,即每秒可传输的字节数。它跟总线的位数和总线周期有关。

中断机制

中断机制的步骤(以读取数据为例):     1. CPU向外设发出读取指令,然后继续执行主程序     2. 外设准备好后,向CPU提出中断请求     3. CPU暂停主程序并保留现场,然后调用相应的中断服务子程序(存储在操作系统中),执行I/O读取数据     4. 数据读入完毕后,回到主程序并恢复现场 说明:     1.CPU响应中断时可能还会关闭中断,表示暂不响应别的中断     2.有个术语叫“中断向量”,实际上就是中断号及其中断服务程序入口的地址。 中断号由CPU预先规定,操作系统在启动时会把相应中断服务程序安装到中断向量中,跟中断号对应起来。     3.中断不仅用于外设与系统的交互,也可以用于各种异常,比如被零除、越界访问内存等紧急事件。有的系统还用中断来实现虚拟内存分页(page fault),系统调用(软中断)等

主存的性能指标

主存(即内存条)的几个性能指标:    1.存取时间:   执行一次读写命令的时间    2.存取周期:   连续两次读操作所需的最小间隔    3.存储器带宽: 单位时间能够存取的字节数         

在centos上用gdb调试printf源码

centos中默认情况下库函数是不带调试信息的,所以用gdb无法进入到printf()函数里。 解决办法是: 1.为libc安装调试信息 a. 先要安装一个命令:sudo yum install /usr/bin/debuginfo-install b. 设置一下repos: vi /etc/yum.repos.d/CentOS-Debuginfo.repo, 把enabled设置为1 c. 为标准库安装调试信息: sudo debuginfo-install glibc 2.再来一次gdb并进入printf()函数即可. 我这里看到的第一行代码是 _IO_size_t len = strlen (str);

存储器的多级结构

内存 = cache + 主存储器, cpu可以直接访问 其他的都属于外存,cpu不能直接访问 关于cache:   1. 充当cpu和主存之间的速度缓冲   2. 程序员的代码访问不到cache