操作系统
hezhch123
这个作者很懒,什么都没留下…
展开
-
操作系统是什么?+读操作系统概念第六版
操作系统是几乎所有计算机系统的一个重要组成部分。计算机系统可以 粗分为四个部分:硬件、操作系统、应用程序和用户。 计算机系统的基本目的是执行用户程序并能更容易地解决用户问题。为了实现这一目的,构造了计算机硬件。由于仅仅有硬件并不一定容易使用,因此开发了应用程序。这些应用程原创 2011-10-12 23:41:07 · 639 阅读 · 0 评论 -
分页一 读操作系统概念第六版
分页(paging)内存管理方案允许进程的物理地址空间可以是非连续的。分页避免了将不同大小的内存块备份到交换空间上的麻烦问题。 物理内存分为固定大小的块,称为帧(frame)。逻辑内存也分为同样大小的块,称为页。当进程需要执行时,其页从备份存储中调入到可用的内存帧中。备份存储也分为固定大小的块,其大小与内存的帧一样。由CPU所生成的每个地址分为两个部分:页码(p)和页偏移(d)。页号作原创 2011-11-02 20:07:50 · 725 阅读 · 0 评论 -
分页 读操作系统概念第六版
每个操作系统都有自己的方法来保存页表。绝大多数都为每个进程分配一个页表。页表的指针与其他信息(如指令计数器)一起存入进程控制块中。当分派程序需要启动一进程时,它必须首先装入用户寄存器,并根据所保存的用户页来定义正确的硬件页表值。 标准解决是采用小但专用且快速的硬件缓冲,这种缓冲称为翻译后备缓冲器(translation look aside buffer, TLB)。TLB是关联内存根据给原创 2011-11-03 19:21:25 · 710 阅读 · 0 评论 -
分段 读操作系统概念第六版
采用分页内存管理有一个不可避免的问题:用户观点的内存和实际内存的分离。用户观点的内存和实际内存不一样。用户观点的内存需要映射到实际内存。该映射允许逻辑内存和物理内存的不同。 想一下你在写程序时是如何考虑程序的。你会认为程序是由主程序加上一些子程序、过程、函数或模块所构成的。还有各种数据结构:表、数组、堆栈、变量等。每个模块或其他数据元素都可以通过名称引用。你会说“符号表”、“函数sqrt”原创 2011-11-04 19:22:11 · 757 阅读 · 0 评论 -
虚拟内存 读操作系统概念第六版
虚拟内存技术允许进程的执行不必完全在内存中。这种方案的一个很大的优点就是程序可以比物理内存大。而且,虚拟内存将内存抽象成一个巨大的、统一的存储数组,进而将用户看到的逻辑内存与物理内存分开。这种技术允许程序员不受内存存储的限制。虚拟内存也允许进程很容易地共享文件和地址空间。 程序通常有处理异常错误条件的代码。由于这些错误即使有也是很少发生,所以这种代码几乎不执行。数组、链表和表通常分配了原创 2011-11-06 18:53:58 · 1266 阅读 · 0 评论 -
请求页面调度 读操作系统概念第六版
请求页面调度系统类似于分页系统加上交换。进程驻留在次级存储器上(通常为磁盘)。当需要执行进程时,将它换入内存。不过,不是将整个进程换入内存,而是使用lazy swapper。lazy swapper只有在需要页时,才将它调入内存。由于将进程看做一系列的页,而不是一个大的连续空间,因此使用“交换”从技术上来讲并不正确。交换程序对整个进程进行操作,而调页程序只是对进程的单个页进行操作。因此,在讨论有关原创 2011-11-07 20:55:19 · 3279 阅读 · 0 评论 -
页面置换 读操作系统概念第六版
页面置换:如果没有空闲帧,那么就找当前不在使用的帧,并使之空闲。可以这样来释放一个帧:将其内容写到交换空间,并改变页表(和所有其他表)以表示该页不在内存中。1:查找所需页在磁盘上的位置。2:查找一空闲帧:a:如果有空闲帧,那么就是用它。b:如果没有空闲帧,那么就是用也置换算法以选择一个“牺牲”帧。c:将“牺牲”帧的内容写到磁盘上;改变页表和帧表。3:将所需页读入(新)空闲帧原创 2011-11-08 19:49:28 · 803 阅读 · 0 评论 -
程序被其他程序翻译成不同的格式
在hello程序生命周期的一开始时是一个高级C程序,因为当处于这种形式时,它是能够被人读懂的。然而,为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序(executable object program)的格式打好包,并以二进制磁盘文件的形式存放起来。目标程序也称为可执行目标文件(executable object原创 2011-11-10 20:04:58 · 634 阅读 · 0 评论 -
处理器读并解释储存在存储器中的指令 读深入理解计算机系统
hello.c源程序已经被编译系统转换成了可执行目标文件hello,并被存放在磁盘上。为了在Unix系统上运行该可执行文件,我们将它的文件名输入到称为shell的应用程序中:unix> ./hellohello,worldunix>shell是一种命令行解释器,它输出一个提示符,等待你输入一行命令,然后执行这个命令。如果该命令行的第一个单词不是一个内置的shell命令,那么shel原创 2011-11-13 13:00:06 · 883 阅读 · 0 评论 -
连续内存分配 读操作系统概念第六版
内存通常分为两个区域:一个用于驻留操作系统,另一个用于用户进程。保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响。通过采用重定位寄存器和界限寄存器,可以实现这种保护。重定位寄存器含有最小的物理地址值;界限寄存器含有逻辑地址的值。有了重定位寄存器和界限寄存器,每个逻辑地址必须小于界限寄存器;MMU动态地将逻辑地址加上重定位寄存器的值后映射为物理地址。映射后的物理地址在送交内存单原创 2011-11-01 20:10:01 · 852 阅读 · 0 评论 -
地址捆绑 读操作系统概念第六版
通常,程序以二进制可执行文件形式存储在磁盘上。为了执行,程序应被调入内存并放在进程内。根据所使用的内存管理方案,进程在执行时可以在磁盘和内存之间移动。在磁盘上等待调入内存以便执行的进程形成了输入队列。通常的步骤是从输入队列中选一个进程并装入内存。进程在执行时,会访问内存中的执行中的指令和数据。最后,进程终止,其地址空间将被释放。CPU所生成的地址通常称为逻辑地址,而内存单元所看到的地址(即原创 2011-10-30 21:41:07 · 736 阅读 · 0 评论 -
信号量 读操作系统概念第六版
临界区问题的解决方案不便于推广到更为复杂的问题。为了克服这个困难,可使用称为信号量(semaphore)的同步工具。信号量S是个整数变量,除了初始化外,它只能通过两个标准原子操作wait和signal来访问。这些操作原来被称为P(用wait,表测试)和V(用于signal,表增加)。wait的经典定义可用伪代码表示为wait(S){ while(S S--;}s原创 2011-10-24 21:04:40 · 917 阅读 · 0 评论 -
计算机系统操作 操作系统概念第六版
为了使计算机开始运行,例如当电源打开或计算机重启时,它需要运行一个初始化程序。该初始化程序或引导程序(bootstrap program)比较简单。它通常位于只读存储器(ROM)中,如计算机硬件内的固件或EEPROM。它初始化系统的所有部分,从CPU寄存器、设备控制器到内存内容。原创 2011-10-13 22:59:35 · 934 阅读 · 1 评论 -
进程概念 读操作系统概念第六版
进程可以看做是正在执行的程序。进程需要一定的资源(如CPU时间、内存、文件和I/O设备)来完成其任务。这些资源在创建进程或执行线程时分配。 进程是执行的程序,这是一种非正式的说法。进程不只是程序代码,程序代码有时称为文本段。进程还包括当前活动,通过程序计数器的值和处理器寄原创 2011-10-16 11:47:09 · 525 阅读 · 0 评论 -
进程调度1 读操作系统概念第六版
进程进入系统时,会被加到作业队列中。该队列包括系统中的所有进程。驻留在内存中就绪的等待运行的进程保存在就绪队列表上。该队列通常用链表形式来存储,其头节点包括指向链表的第一个和最后一个PCB块的指针。可以为每个PCB增加一个指针域来指向就绪队列的下一个PCB。操作系统也有其他队原创 2011-10-16 18:24:45 · 954 阅读 · 1 评论 -
进程调度2 读操作系统概念第六版
将进程移出内存(并移出对CPU的激烈竞争),因此降低多道程序设计的程度。之后,进程被重新调入内存,并从中断处继续执行。这种方案称为交换。将CPU切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。这一任务称为上下文切换(context switch)。进程关联是原创 2011-10-16 18:46:56 · 664 阅读 · 0 评论 -
线程概念 读操作系统概念第六版
线程,有时称为轻量级进程(lightweight process,LWP),是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。 多线程编程具有如下四类主要有点:1:响应度高:如果对一个交互式应用程序采用多线程,即使其部分阻塞或执行叫冗长的操作,那原创 2011-10-18 20:26:05 · 575 阅读 · 0 评论 -
CPU调度算法 读操作系统概念第六版
先到先服务调度,FCFS调度算法(非抢占式)当一个进程进入到就绪队列,其PCB被链接到队列的尾部。当CPU空闲时,CPU被分配给位于队列头的进程。接着,该运行进程从队列中被删除。FCFS调度的代码编写简单且容易理解。 最短作业优先调度算法,SJF调度算法(抢占式或非抢占式)当CPU为可用时,它会赋给具有最短后续CPU区间的进程。如果两个进程具有同样长度的CPU区间,那么可以使用FC原创 2011-10-20 20:44:58 · 4788 阅读 · 0 评论 -
硬件同步 读操作系统概念第六版
流程说明:lock,waiting数组初始化false,刚开始一起执行,只有一个进程能换到lock,key为false,可以执行,其他的等待,出了临界区,则检索下一个是否等待,如果等待,设waiting为false,可以执行,后面的一个接一个可以执行。但是当其他的进程都正在剩余区时,则把lock设为false,此时只要有一个进程开始等待,则可以获得lock为false的值,换得key为fals原创 2011-10-23 20:43:06 · 667 阅读 · 0 评论 -
进程同步 读操作系统概念第六版
临界区问题的解答1:互斥:如果进程Pi在其临界区内执行,那么其他进程都不能在其临界区执行。2:有空让进:如果没有进程在其临界区内执行且有进程希望进入临界区,那么只有那些不在剩余区内执行的进程能参加决策,以选择谁能下一个进入临界区,且这种选择不能无限推迟。3:有限等待:在一个进程做出进入其临界区的请求被允许期间,其他进程被允许进入其临界区的次数存在一个上限。下图,进程Pi的结构:原创 2011-10-23 18:40:06 · 750 阅读 · 0 评论 -
Optimizing Program Performance
1:Eliminating Loop Inefficiencies2:Reduce Procedure Calls3:Eliminating Unneeded Memory References4:Loop Unrolling5:Multiple Accumulators6:Reassociation Transformation看了下优化程序性能,感触良多,接下来原创 2012-03-07 22:37:32 · 539 阅读 · 0 评论