操作系统
文章平均质量分 78
tuzilaopo
这个作者很懒,什么都没留下…
展开
-
进程的挂起
《操作系统:精髓与设计原理(原书第6版)》第3章进程描述和控制,本章讲述了典型操作系统中进程管理所使用到的数据结构和技术。本小节为大家介绍被挂起的进程。3.2.4 被挂起的进程交换的需要前面描述的三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。许多实际的操作系统都是按照这样的三种状态进行具体构造的。但是,可转载 2014-10-30 16:24:44 · 2954 阅读 · 0 评论 -
gcc生成库文件(静态库与动态库)
转载自:http://www.cnblogs.com/yaozhongxiao/archive/2012/03/16/2400473.html 1. 执行过程 虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)转载 2015-06-10 23:50:14 · 1207 阅读 · 0 评论 -
malloc原理和内存碎片
转自:http://www.cnblogs.com/zhaoyl/p/3820852.html当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1、检查要访问的虚拟地址是否合法 2、查找/分配一个物理页 3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干) 4、建立映射关系(虚拟地址到物理地址) 重新执行发生缺页中断的那条指令 如果第3步,需要读转载 2015-06-22 16:24:02 · 372 阅读 · 0 评论 -
Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;
转自:http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520101023104745738/一、基本概念1.1、什么是库 在 windows 平台和 linux 平台下都大量存在着库。 本质上来说库是一种可执行的二进制代码(但不可以独立执行),可以被操作系统载入内存执行。转载 2015-06-22 16:21:34 · 596 阅读 · 0 评论 -
MBR参考资料:从INT 19H开始
System Boot Sequence 系统BIOS是机器被加电之后首先被运行的程序。我们下面看一看一个典型的Boot Sequence所包含的步骤,当然,由于硬件BIOS厂商的不同,这些序列会有一些不同,但下面所列的,是你的主机被加电之后,通常都会发生的序列。 当机器被打开时,等电源稳定之后,电源会发送一个“加电成功信号”给芯片,以启动时钟生成器(8284);转载 2014-12-13 23:27:25 · 515 阅读 · 0 评论 -
另外一篇关于Linux库的文章(静态库,动态库)
转自:http://blog.chinaunix.net/uid-26833883-id-3219335.html 草根老师博客一、什么是库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。L转载 2015-06-21 15:43:46 · 456 阅读 · 0 评论 -
全局描述符表
局描述符表 GDT(Global Descriptor Table) 在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。中文名全局描述符表外文名Global Descriptor Table类 型数据结构领转载 2014-12-14 13:42:41 · 663 阅读 · 0 评论 -
控制寄存器(CR0,CR1,CR2,CR3)
控制寄存器(控制寄存器(CR0,CR1,CR2,CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。) 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在 80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制转载 2014-12-14 11:46:13 · 1059 阅读 · 0 评论 -
物理地址与线性地址详解
1. Linear Space & Physical Space 在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个需要占用1 GB内存的程序,并让其在OS平台上运行,哪怕这台运行主机上只有128 MB的物理内存条。而对于OS开发者而言转载 2014-12-14 11:21:51 · 368 阅读 · 0 评论 -
从pthread到Win32thread
Lilytask是以任务为单位的并行编程模型,Lilytask2.5β版最初是在Linux系统上基于POSIX thread实现的,为了更好的适应并行计算环境中的异构性,又在β版的基础上实现了for Windows版,在实现过程中,需要用Win32thread library替换POSIX thread library,下文将主要描述POSIX thread(下文称之pthread)与Win32t转载 2014-10-31 15:31:15 · 1072 阅读 · 1 评论 -
用户级线程和内核级线程的区别
转载于http://col1.blog.163.com/blog/static/1909775192012719114033352/1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,转载 2014-10-31 15:30:20 · 345 阅读 · 0 评论 -
关于线程池的理解
深入研究线程池一.什么是线程池?线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合.注意这里用了线程集合的概念是我生造的,目的是为了区分执行一批应用逻辑的多个线程和线程组的区别.关于线程组的概念请参阅基础部分.一般而言,线程池有以下几个部分:1.完成主要任务的一个或多个线程.2.用于调度管理的管理线程.3.要求执行的任务队列.那么如果一个线转载 2014-10-30 21:09:30 · 490 阅读 · 0 评论 -
Linux GCC常用命令 与 gcc 编译器常用的命令行参数一览
转载自:http://www.cnblogs.com/sunyubo/archive/2011/09/06/2282054.html这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码。转载 2015-06-09 21:50:37 · 659 阅读 · 0 评论