【算法】六、贪心算法 贪心法的基本思路:从问题的某一个初始解出发,根据某种贪心策略,向给定的目标推进,每一步都做一个当时看似最佳的贪心选择,不断地将问题变为更小的相似子问题,并期望通过所做的局部最优选择产生出一个全局最优解。也就是说贪心法不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优解。适合贪心法求解的问题必须具备以下两要素:1.贪心选择性质:所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
【操作系统】八、虚拟内存 明确概念虚拟内存:在存储分配机制中,尽管备用内存是主内存的一部分,它也可以被寻址。程序引用内存使用的地址与内存系统用于识别物理存储站点的地址是不同的,程序生成的地址会自动转换成机器地址。虚拟存储的大小受到计算机系统寻址机制和可用的备用内存量的限制,而不受内存储位置实际数量的限制。虚拟地址:在虚拟内存中分配给某一位置的地址使该位置可以被访问,彷佛它是主内存的一部分。虚拟地址空间:分配给进程的虚拟存储地址空间:可用于某进程的内存地址范围实地址:内存中存储位置的地址。
【操作系统】七、内存管理 在之前学习的过程中,我们知道在单道程序设计系统中,内存划分为了两部分:一部分供操作系统使用,用于驻留监控程序、内核。另一部分供当前正在执行的程序使用。在多道程序设计系统中,则必须在内存中进一步细分出“用户”部分,以满足多个进程的要求。而细分的任务由操作系统动态完成,这成为在第七章中,我们会首先考察内存管理要满足的需求,然后说一些简单的内存管理模式。
【操作系统】处理并发中的常见问题 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用生产者、消费者共享一个初始为空、大小为n的缓冲区。只有缓冲区没满时。生产者才能把产品放入缓冲区,否则必须等待。缓冲区没满->生产者生产只有缓冲区不空时,消费者才能从中取出产品,否则必须等待。缓冲区没空->消费者消费缓冲区是临界资源,各进程必须互斥地访问。从上述分析中,我们找出了该问题的互斥与同步关系:这也是处理并发问题中的。
【操作系统】五、并发性:互斥和同步 是一段代码,在这段代码中进程将访问共享资源,当另外一个进程已经在这段代码中运行时,这个进程就不能在这段代码中执行。:两个或两个以上进程为了响应其他进程中的变化而持续改变自己的状态但不做有用的工作,这种情形称为活锁。:两个或两个以上的进程因其中的每个进程都在等待其他进程做完事情而不能继续执行,这种情形称为死锁。:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源,这种情形称为互斥。:多个线程或者进程在读写一个共享数据时,结果依赖于它们执行的相对时间,这种情形称为互斥条件。
【操作系统】四、线程 进程的两个属性:分配资源,处理机调度资源所有权:一个进程包括一个存放进程映像的虚拟地址空间;进程映像是程序、数据、栈和进程控制块中定义的属性的集合。一个进程总是拥有对资源的控制或所有权,这些资源包括内存、I/O通道、I/O设备和文件等。操作系统总是提供保护功能,以防止进程之间发生不必要的与资源相关的冲突。调度/执行:一个进程沿着可能通过一个或多个程序的执行路径(轨迹)执行。其执行过程可能与其他进程的执行过程交替进行。因此,一个进程具有一个执行状态和一个被分配的优先级,
【操作系统】二、操作系统概述 操作系统是控制应用程序执行的程序也是硬件与应用程序的接口主要有三个目标:• 方便(convenience)• 有效(efficiency)• 扩展能力(ability to evolve)下面将依次介绍这三个目标。