随笔分类 - 操作系统基础
摘要:我们知道程序在运行的过程中是需要占用一定内存的,一般程序所需要的内存由操作系统来分配,由操作系统分配的,自然需要由操作系统回收。但是在实际开发中,用户可以通过一些函数人为地申请内存,再由用户来释放,例如通过C语言的malloc函数动态开辟内存。现在就有一个问题,如果用户没有用free函数释放内存空间
阅读全文
摘要:进程: 当程序卡死的时候,我们可以直接通过任务管理器来关闭进程。 服务: 在这个界面,我们可以选择启动或者关闭相关服务,还可以选择服务是否自动启动。 以关闭MySQL自启动服务为例:https://jingyan.baidu.com/article/b87fe19e6e468f52183568e2.
阅读全文
摘要:参考自:http://www.xuebuyuan.com/1730287.html 一、程序编译链接的整体流程 二、目标文件的样子(以linux下的elf文件格式为例) 三、静态链接 四、装载 五、动态链接 一、程序编译链接的整体流程 通常我们使用gcc来生成可执行程序,命令为:gcc hello.
阅读全文
摘要:我们有时候会遇到这样一种情况:我们在32位操作系统上下载了64位版本的程序,却发现无法安装,大家可能会很困惑。 下面就来简单解释一下32位程序与64位程序的具体区别。 我们首先要弄明白的: 1.这里所说的的32位与64位程序,是指经过编译后的可执行文件,例如像Windows上的exe文件,而最初编写
阅读全文
摘要:进程控制块(PCB) 在Linux中task_struct结构体即是PCB。PCB是进程的唯一标识,PCB由链表实现(为了动态插入和删除)。 进程创建时,为该进程生成一个PCB;进程终止时,回收PCB。 PCB包含信息:1、进程状态(state);2、进程标识信息(uid、gid);3、定时器(ti
阅读全文
摘要:计算机中,CPU是最宝贵的资源,为了提高CPU的利用率,引入了多道程序设计的概念。当内存中多个程序存在时,如果不对人们熟悉的“程序”的概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。 一、进程的引入 多道程序系统中,程序具有:并行、制约以及动态的特征。程序概念难以便是和反映系统中的情况:
阅读全文
摘要:这里要强调的,并不是堆和栈这两种数据结构,而是要强调堆和栈在内存管理上的应用,即堆区和栈区!!!!! 堆区和栈区对我们来说是透明,但如果不懂堆区和栈区的工作原理,很难明白程序是如何运行的,例如像递归程序,函数的压栈与弹栈 是系统自动管理的。 要注意一下,一般说堆栈时,指的是栈!!!! 数据结构的栈和
阅读全文
摘要:虚拟内存这个概念,大家都不会陌生。有人会说虚拟内存还不简单,不就是在内存不够的时候,就把外存当内存来使用,这种说法有一定的道理,但显然不准确。在最开始内存只有128M或者256M时,内存显然是不够的,在这种情况下说内存不够的话,拿外存来顶替,这种说法还过得去。但现在8g内存,16g内存,甚至32g内
阅读全文
摘要:下面介绍缓冲区的知识。 一、什么是缓冲区 缓冲区(buffer),它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
阅读全文
摘要:对于每一个接触过计算机的人来说,目录(directory)一词并不陌生,很多地方将其翻译为文件夹,我个人认为这一个词很有误导倾向。在没有学习操作系统时候,我们通常对与文件夹的理解是这样的:文件夹就像一个袋子,它将里面的文件或者文件夹装起来,我们进入到文件夹里会看到很多文件,然后就可以进行一系列操作。
阅读全文