摘要: 内存的划分分为静态划分和动态划分。都是连续内存存储技术,而非连续内存存储技术有分页、页段式分段。静态划分预先将物理内存划分为固定分区,当新进程装进内存,选择合适的空闲分区分配给进程。又称为固定分区法,分区的长度可以不同。管理分区使用分区使用表,表项的内容是分区编号(线性的)、分区大小、分区使用情况。按照分区大小从小到大方式排列。一种特殊的固定分区法:分页式划分。将内存划分为很小的页框,其中页框远小于上述的分区。两者的区别是:固定分区要求进程存进连续的内存空间,而分页式划分允许进程可以不连续存储在不同的页框。页框的管理使用空闲页框表,将连续空闲的页框集中管理。静态划分的缺点是会产生大量的内零头, 阅读全文
posted @ 2012-10-15 21:21 我不是geek 阅读(4964) 评论(0) 推荐(0) 编辑
摘要: 操作系统的存储管理包含内存管理和外存管理,外存管理涉及到外设管理,因此这里主要讲内存管理。从所周知,cpu直接从内存中读取置零和数据,而不会与外存进行交互,因此存储在外存的程序和数据(可执行文件)必须装入内存才能够执行,这就是冯.诺依曼存储思想。但是在多道程序操作系统中或者是存在大进程的情况下,物理内存不一定够用,为了扩展内存就发明了虚拟存储技术等扩展技术,将程序的一部存在外存上,等到使用时调入内存即可。扩展技术有覆盖、交换和虚拟存储技术。问题1:多道程序操作系统中,程序的装入时一次性还是先装入一部分然后边执行边装入?若一次行装入内存不足,若边执行边装入效率低下。答1:现在系统多采用虚拟存储管 阅读全文
posted @ 2012-10-15 16:21 我不是geek 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在程序执行之前完成所有的组装工作,生成一个可执行的目标文件(EXE文件)。动态链接方式:在程序已经为了执行被装入内存之后完成链接工作,并且在内存中一般只保留该编译单元的一份拷贝。二、静态链接库与动态链接库先来阐述一 阅读全文
posted @ 2012-10-15 09:53 我不是geek 阅读(22960) 评论(0) 推荐(2) 编辑
摘要: 全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一.全排列的递归实现为方便起见,用123来示例下。123的全排列有123、132、213、231、312、32 阅读全文
posted @ 2012-10-12 14:23 我不是geek 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 构架和架构也就是通常所说的软件体系结构(software architecture)。体系结构一般包括三个部分:1、构件:用于描述计算。2、连接器:用于描述构件的连接部分。3、配置:将构件和连接器组成一个有机整体********************************************************************************************软件框架(Software Framework)介绍面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性 阅读全文
posted @ 2012-10-12 14:06 我不是geek 阅读(695) 评论(0) 推荐(0) 编辑