摘要:
一、硬中断 由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。 硬中断是外部设备对CPU的中断; 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或 阅读全文
摘要:
一、概述 内存描述符的结构体——mm_struct,抽象的来描述linux下进程的地址空间的所有的信息。 一个进程的虚拟地址空间主要由两个数据结来描述。一个是最高层次的:mm_struct,一个是较高层次的:vm_area_structs。最高层次的mm_struct结构描述了一个进程的整个虚拟地址 阅读全文
摘要:
一、简介 进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。 处理器总处于以下状态中的一种: 1、内核态, 阅读全文
摘要:
一、SPARC SPARC(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的RISC处理器体系架构之一, SPARC如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于SPARC架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令 阅读全文
摘要:
一、什么是原子操作? 所谓原子操作,就是"不可中断的一个或一系列操作" 。 1.1 硬件级的原子操作 在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_a 阅读全文
摘要:
一、锁 互斥锁是用来保护一个临界区,即保护一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待。 二、锁的开销 在谈及锁的性能开销,一般都会说锁的开销很大,那锁的开销有多大,主要耗在哪,怎么提高锁的性能。 现在锁的机制一般使用 f 阅读全文
摘要:
一、管程 1.1 简介 管程可以视为一个线程安全的数据结构,其内部提供了互斥与同步操作,向外提供访问共享数据的专用接口(接口被称为管程的过程),通过管程提供的接口即可达成共享数据的保护与线程间同步。 使用管程,可以简化线程间互斥、同步的编码复杂度(否则需自己控制互斥、同步机制,并保证正确),可以集中 阅读全文
摘要:
一、Content-Length 1.1 内容校验的方式 对于http的请求返回结果要进行内容的长度校验主要有两种方式,二者互斥使用 1、客户端在http头(head)加Connection:keep-alive时,服务器的response是Transfer-Encoding:chunked的形式, 阅读全文
摘要:
一、简介 当我们被问及 HTTP 的 GET 与 POST 两种请求方式的区别的时候,很多答案是说 GET 的数据须通过 URL 以 Query Parameter 来传送,而 POST 可以通过请求体来发送数据,所以因 URL 的受限,往往 GET 无法发送太多的字符。这个回答好比在启用了 HTT 阅读全文
摘要:
一、TCP三次握手 1.1 TCP报文段的头部格式 1.1.1 报文格式 1.1.2 部分报文内容 ACK:TCP协议规定,只有ack=1时,有效,也规定连接建立后,所有发送的报文ack必须为1。 SYN :在连接建立时用来同步序列号,当SYN=1,而ACK=0时,表明这是一个连接请求报文,对方若同 阅读全文