
操作系统
aisxyz
这个作者很懒,什么都没留下…
展开
-
链接器对多重定义的全局符号的解析
在开始之前,我们得先明确两个概念,即强符号和弱符号。所谓强符号,就是指函数和已初始化的全局变量。自然弱符号就是指未初始化的全局变量。在unix系统中,链接器采取以下规则来处理多重定义的全局符号:1、同一个文件中不允许有多个相同强符号。2、如果一个对象有一个强符号和多个弱符号,则选择强符号。3、如有多个弱符号,则任选一个。现在改说人话,稍微以例子解释一下各个规则。...原创 2016-05-08 23:56:51 · 1481 阅读 · 0 评论 -
unix限制
UNIX系统实现定义了很多幻数和常量,其中有很多已被硬编码到程序中,或用特定的技术确定。由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻数和具体实现定义的限制。这非常有助于改善UNIX环境下软件的可移植性。 以下两种类型的限制是必需的: 1、编译时限制(例如,短整型的最大值是什么?) 2、运行时限制(例如,文件名有...原创 2017-04-04 16:08:35 · 307 阅读 · 0 评论 -
linux引导加载程序--GRUB
linux世界里有两种流行的引导加载程序:LILO和GRUB。LILO是传统的的Linux引导加载程序,非常稳定而且有很好的文档,但却迅速被GRUB的锋芒盖过。 GRUB作为一个全面统一的引导加载程序,对于频繁改变系统配置的用户来说也很有帮助。每次改变LILO的配置之后,必须重新把它安装到引导记录(即MBR,Master Boot Record,主引导记录)里,而GRUB会在启动...原创 2017-04-04 04:22:19 · 1186 阅读 · 0 评论 -
存储器映射
注:本文摘自《深入理解计算机操作系统》第九章--虚拟存储器。 Linux通过将一个虚拟存储器区域与一个磁盘上的对象关联起来,以初始化这个虚拟存储器区域的内容,这个过程称为存储器映射。虚拟存储器区域可以映射到两种类型的对象中的一种: 1、unix系统中的普通文件:一个区域可以映射到一个普通磁盘文件的连续部分,例如一个可执行目标文件。文件区被分成页大小的片,每一片包含一...原创 2016-06-13 00:12:22 · 300 阅读 · 0 评论 -
虚拟存储器对存储器管理的作用
注:本文中的大部分内容均是摘录自《深入理解计算机系统》一书,权当记录之用。 虚拟存储器作为现代操作系统中的一个重要概念,其重要性自然不言而喻。如果你还不了解虚拟存储器的概念,务必请查阅相关资料,本文并不打算纠结于此,而只是介绍其众多作用中的冰山一角,即如何作为存储器管理的工具。 我们知道,磁盘和主存是以数据块的形式作为传输单元,所以物理存储器一般会被划分成一个个大小...原创 2016-06-10 16:00:45 · 942 阅读 · 0 评论 -
信号处理问题
注:本文摘自《深入理解计算机系统》第8章 --- 异常控制流。本文不适于不了解信号的人,在此也不对信号做过多解释,只是个人需要记录相关的信号处理问题而已,想了解更详细的请自行查阅相关资料。程序只捕获一个信号时是简单直接的,但当要捕获多个信号时,就可能产生一些细微的问题。1、待处理信号被阻塞。unix信号处理程序通常会阻塞当前处理程序正在处理的类型的待处理信号。比如,假设一个进程捕获了S...原创 2016-06-03 08:31:00 · 449 阅读 · 0 评论 -
僵尸进程
在解释僵尸进程的概念之前,我们得先了解这样的一个事实:一个进程在由于某种原因终止后并不会像大多数人认为的那样立即被内核从系统中清理掉,而是被保持在一种已终止的状态中,等待着被它的父进程来回收。在被父进程回收后,内核会将它的退出状态传递给父进程,然后才把它抛弃掉。也只有从此刻开始,该终止进程才真正意义上的消失了。根据这个事实,不难得出僵尸进程的大致概念,即已终止但还未被回收的进程。因为它还需...原创 2016-05-23 23:57:32 · 97 阅读 · 0 评论 -
程序优化之存储器别名使用
说明:本文示例摘自《深入理解计算机系统》第五章----优化程序性能。在程序优化时,对于这样一种现象不得不注意,即存储器别名使用。那么什么是存储器别名使用呢?简单来说,就是“两个指针可能同时指向同一个存储地址的情况”。示例为证,考虑下面的代码序列:[code="c"]x = 1000;y = 3000;*q = y;*p = x;t1 = *q;[...原创 2016-05-20 08:55:12 · 646 阅读 · 0 评论 -
条件变量基本概念与原理(转载)
对于条件变量,我一直感到很困惑,搞不清其与互斥锁到底有啥区别,网上搜了很多资料,终于皇天不负有心人,被我找到一个让我瞬间彻悟的博文,此处就不多说,原址奉上,相信各位读者也会认同:[url]http://hipercomer.blog.51cto.com/4415661/914841[/url]...原创 2016-05-20 08:54:59 · 1279 阅读 · 0 评论 -
CPU与磁盘的交互过程
对于计算机系统底层技术,想必很多人都和我一样不太了解,最近在学相关书籍,了解到了CPU与磁盘交互时大致发生了哪些事情,现记录如下:首先,我们得先了解到CPU与磁盘是通过I/O总线关联到一起的,CPU操作磁盘是通过一种叫做存储器映射I/O的技术来实现的。这种技术会在两者交互时单独划分出一块地址,每个这样的地址就称作I/O端口,然后磁盘就会映射到一个或多个I/O端口,用以绑定地址。其次...原创 2016-05-19 09:05:17 · 3280 阅读 · 0 评论 -
存储器层次结构中基本的缓存原理
对于操作系统,我们知道,越靠近CPU的存储器,其存储速度就会越来越快,如果将整个存储系统视作一个金字塔,CPU作为塔顶,那么从上到下,访问速度会越来越慢,但存储容量越来越大,价格越来越低,按照常用的存储系统分类,分别为寄存器、高速缓存、主存、磁盘,后面可能还有网络文件等。为了加快访问速度,在每一层,存储器会被划分为连续的数据对象块,一般大小是固定的(也有可能不同,比如远程的HTML文件),...原创 2016-05-19 09:00:43 · 574 阅读 · 0 评论 -
异常处理
我知道很多人都知道异常处理,但可能对其底层并不太了解,现在我们就来简单的聊一聊。在此啰嗦一句(仅为自己记录需要^_^,与本主题无多大关系),异常是位于硬件和操作系统交界的部分,系统调用是为应用程序提供到操作系统的入口点的异常,而进程和信号位于应用和操作系统的交界处。现在正式开始。异常说白了就是控制流中的突变,用来响应处理器状态中的某些变化。在处理器中,状态被编码成了不同的位和信...原创 2016-05-19 00:29:47 · 128 阅读 · 0 评论 -
linux启动服务概述
传统的linux中定义了七个运行级,分别如下: 1、0级是完全关闭系统的级别。 2、1级或S级代表单用户模式,会关闭所有的多用户和远程登录进程。 3、2--5级是多用户级别。 4、6级是“多重引导”级别。 其中,0级和6级是不能让系统停留的,进入这两个级别的效果是关闭系统或者重新引导系统。在多...原创 2017-04-08 02:43:38 · 184 阅读 · 0 评论