操作系统
文章平均质量分 81
李兰溪
好奇并探索着
展开
-
浅谈地址和储存
我们在学计算机导论的时候,有在讲诺伊曼架构和哈佛架构,这两种架构贯穿了整个计算机硬件,无论这个产业怎么变化,你今天速度达到多少G,64位的寻址能力已经达到多多少啦,几核的芯片又出来啦,这都没关系,本质还是一样的,都是一个CPU通过三总线与外设构成的一个系统。所以要说这个产业天天变,其实也没本质的东西也没变多少。 早期的计算机速度很慢,无论是我CPU还是外设,都是乌龟或者蜗牛。后来原创 2014-06-13 23:52:54 · 895 阅读 · 0 评论 -
linux内核分析之文件系统
linux内核分析之文件系统linux内核分析之文件系统一文件系统的安装和卸载分析1 文件系统的安装11 总领提纲12 代码分析13 实例考察path_walk2 文件系统的卸载21 提纲22 代码分析二问答归纳1 问题2 回答三文件的打开1打开文件的本质2打开文件的过程四文件创建1 文件创建的过程2 关于文件创建的理解一、文件系统的安装和卸载分析1.1 文件系统的原创 2016-04-22 00:00:44 · 4994 阅读 · 0 评论 -
Linux 报文队列
Linux 报文队列Linux 报文队列一IPC 概述二报文队列1 报文队列简述2 代码分析21 msgget 创建报文队列22 msgsnd 报文发送221 相关数据结构222 sys_msgsnd源码分析3 msgrcv 报文接收4 msgctl 报文控制与设置一、IPC 概述早期的Unix系统进程件通信机制主要有管道和信号。管道开始只能在近亲之间通信,于是将pipe推广到原创 2016-04-21 23:47:57 · 4431 阅读 · 0 评论 -
linux内存管理之数据结构
linux内存管理之数据结构linux内存管理之数据结构一物理空间管理1 页表项2 物理页面管理对象page二内存分区1 过去的分区2 当下的分区情况三 虚拟空间管理1 进程虚存区域2 进程地址空间3 进程地址空间和进程虚存区域的关系一、物理空间管理1.1 页表项[include /asm-i386/page.h: 39] 39 #if CONFIG_X86_PAE 40 t原创 2016-04-21 23:46:31 · 5219 阅读 · 0 评论 -
Linux信号机制
Linux信号机制Linux信号机制一管理层次及结构1 数据结构11 中断向量表的模拟12 中断请求寄存器的模拟二 信号的安装1 概述2 代码分析3 其它函数三信号发送1 kill函数和sigqueue2 代码分析四响应信号一、管理层次及结构1.1 数据结构信号机制是在软件层次上堆中断机制的一种模拟,也就是说信号是一种代码异步执行的方式。故而信号也有类似于中断管理的相关软件原创 2016-04-21 23:43:29 · 4020 阅读 · 0 评论 -
Linux 中断底半部机制
Linux 中断底半部机制Linux 中断底半部机制linux中断底半部过去的中断底半部实现机制 bh_base关于bh_active和 bh_mask新机制的出现软中断的分析机制的初始化总结linux中断底半部因为硬中断ISR是在关闭中断的情况下执行的,故而在硬中断ISR中停留时间过长会影响系统性能。为了能尽可能地缩短硬中断的时间,linux设置了中断底半部。也就是说,Linux的中原创 2016-04-21 23:41:09 · 860 阅读 · 0 评论 -
Effective Cpp 条例解析
Effective 条例解析Effective 条例解析一 让自己习惯C1 视C为一个语言联邦2 尽量以constenuminline 替换define3 尽可能使用const4 确保对象在使用前已经被初始化二构造析构赋值运算1 了解C默默编写并调用哪些函数2 如果不想使用编译器提供的函数应当明确拒绝3 为多态基类声明virtual析构函数4 别让异常逃离析构函数5 绝不在构造原创 2016-01-07 23:33:17 · 871 阅读 · 0 评论 -
如何理解算法中的渐进符号?
我们分析一个算法的时候,常常需要用到数学去描述其性能。最常用的的是ø。比如在一段程序中有For(I = 0,I For(J = 0; j For (cnt = 0; cnt 我们会说其最坏情况是n^2+ n,这时候,实际上我们没有考虑机器因素,我们把每一条指令的执行时间都当做单位1来看,如果我们考虑到机器因素,比如在A机器上,每条指令执行的速度是c1,那么他的最坏情况原创 2014-11-24 21:49:03 · 2663 阅读 · 1 评论 -
程序的连接
—————————————————————————————————————————————————————————————————————————————以下是关于链接的简单说明—————————————————————————————————————————————————————————————————————————————程序从源代码到可执行程序会经过这么几个过程: 1原创 2014-11-16 14:37:03 · 957 阅读 · 0 评论 -
LINUX的中断处理
LINUX中断一LINUX的中断响应1 硬件结构在X86结构上面,处理器本身并没有集成中断控制器。所以外部拓展了一个中断控制器,中断控制器用于连接中断源以及CPU的中断管脚。在发生中断的时候,CPU管脚接收到中断信号并且做出响应。硬件逻辑电路完成了自动保护现场的功能。2 中断的软件部分响应中断后,CPU的PC指针自动指向中断向量表跳转到中断程序入口。这时侯调原创 2014-08-27 17:54:16 · 1362 阅读 · 1 评论 -
操作系统当中的线程与进程
操作系统中的进程与线程简介 在传统的操作系统中,进程拥有独立的内存地址空间和一个用于控制的线程。但是,现在的情况更多的情况下要求在同一地址空间下拥有多个线程并发执行。因此线程被引入操作系统。 为什么需要线程? 如果非要说是为什么需要线程,还不如说为什么需要进程中还有其它进程。这些进程中包含的其它迷你进程就是线程。 线程之所以说是迷你进程,是因为线程和进转载 2014-08-26 22:43:43 · 603 阅读 · 0 评论 -
在用户空间实现的线程
在现代操作系统当中,线程发生了以原创 2014-08-26 23:05:25 · 1422 阅读 · 0 评论 -
阻塞与非阻塞
LINUX设备文件高级操作之阻塞与非阻塞IO一 阻塞与非阻塞IO 阻塞操作:在进行设备文件操作的时候,如果不能获得资源(操作条件没有被满足),则挂起进程(休眠)直到满足可操作的条件为止。 非阻塞操作:在进行设备文件操作的时候,如果不能获得资源(操作条件没有被满足),进程不被挂起,而是放弃操作或者不停地查询知道满足操作条件为止。对与阻塞与非阻塞的最简单操作就是以阻塞/非阻塞原创 2014-08-23 23:28:30 · 1322 阅读 · 0 评论 -
互斥与同步
在多核对称处理器或者是可抢占型内核中,由于进程的“并发”从而引发诸多问题。如何管理好资源,处理好进程之间的竞争,同时不影响系统的并发性能尤为重要。处理竞争和并发问题,主要有四种手段:1锁2信号量3互斥体4CRU一并发的来源1多任务抢占型的内核,由“宏观并行,微观并行”带来的并发。2中断。3多任务处理器。同一时刻有多个处理器同时原创 2014-08-23 23:24:28 · 868 阅读 · 0 评论 -
信号量与异步通知
信号量与异步通知一 信号量原理概述1LINUX当中的信号处理机制进程管理块(PCB)中有几个字节的比特位,每一个比特位代表着一种信号。进程首先要注册一个函数用于处理对应的信号,一般来说调用signal或者是signalaction函数。当用kill指令向某一个进程发送信号,就会陷入内核,通过进程号(PID)取得对应得PCB,然后将PCB中对应信号得比特位置位。在内核原创 2014-08-23 23:26:32 · 1336 阅读 · 0 评论 -
linux 进程与进程调度
linux 进程与进程调度一、调度器设计与实现1.1 调度器需要满足的需求满足交互式应用的需求。这种应用,这种应用着重于系统的响应速度。满足批处理应用的需求。这种应用要求的是平均速度即效率实时应用。这种应用不但考虑进程执行的平均速度,还要考虑即使速度。也就是考虑响应的速度,以及可预测性。1.2 考虑的问题为了满足上述三种应用的需求,在设计调度器时需要考虑以下几个问题:调度的时机:什么情况下原创 2016-04-22 00:07:19 · 1846 阅读 · 0 评论