磁盘调度算法的设计与实现
写在前面操作系统课设的收尾
实现源码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619 ...
人工智能练习题
人工智能导论练习题(第二版-有答案)第三章 图搜索与问题求解
设有如图所示的一棵与或树,请指出解树;并分别按和代价及最大代价求解树代价;然后指出 最优解树。
题解:
该与或树有两棵解树,其一由 S0、A、D、t1、t2、t3 组成;另一 棵由 S0、B、E、t4、t5组成。
解树 2 的和代价为 18,最大代价为 14; 解树 1 的和代价为 12,最大代价为 10。 所以,最优解树为解树 2。
试用与或树描述下面不定积分的求解过程:
题解:
图3 是五大城市间的交通示意图,边上的数字是两城市间的距离。用图搜索技术编写程序,求解 以下问题: (1)任找一条西安到北京的旅行路线,并给出其距离。 (2) 找一条从西安到北京,必须途经上海的路径。 (3) 找一条从西安到北京,必须途经上海,但不能去昆明的路径。
题解:
提示:这是一个加权状态图搜索问题,可用 分支界限法或者最近择优法求解。程序可参考 3.2.2 节例 3-11 中的通用程序,但这里open 表中每个状态节点(城市)还需要有代价(距离)项,而且从 open 表中取第一个节点前先要对 open 表中的节点按 ...
站在数据分析师的角度谈谈对数据的处理方法
淘宝卖家数据显示:
胸最大的是新疆妹子,国内内衣消费最多的SIZE是B;
其中75B销量最好,占比41.45%,其次是A,占比 25.26%;
各种颜色中,黑色最为畅销,因为百搭。
…………
这些早已应用在内衣生产、备货、销售等关键环节。
网易云音乐数据显示:
90后用户占比高达59%,其次是80后(12%);
除了流行歌曲,用户最喜欢的风格竟是电音,其中又以广东用户对电音最为热爱;
最青睐民谣的省份是:甘肃&陕西,最喜欢舞曲的是新疆朋友;
小众音乐主要聚集在北上广深;
…………
这些数据也服务于网易云音乐的个性化推荐系统
但数据分析的应用还远不止如此,利用数据分析的方法,我们还可以得到很多有意思的结论。
比如谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网易云音乐,通过其相似性算法,为不同的人量身定制每日歌单……
数据正在变得越来越常见,而数据分析的价值也越来越凸显。在大型互联网企业(比如谷歌、阿里、腾讯、等)每天将产生海量的数据;就算是初创的互联网公司,日志、用户、运营等数据量也不可小 ...
操作系统课程设计(五)-内存管理
写在前面又到了 一年一度期末课设的时候,距离考试还有12天的时间,此时胡小宁还没有复习(准确的说是学习)之前的课程,所以在这个平平无奇的周二,胡小宁就要开始做课设了!
实验目的(1) 通过对 Windows xp/7“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习如何察看和调整 Windows 的内存性能,加深对操作系统内存管理、虚拟存储管理等理论知识的理解。
(2) 了解 Windows xp/7 的内存结构和虚拟内存的管理,理解进程的虚拟内存空间和物理内存的映射关系。
总体设计背景知识耗尽内存是 Windows 系统中最常见的问题之一。当系统耗尽内存时,所有进程对内存的总需求超出了系统的物理内存总量。随后,Windows 必须借助它的虚拟内存来维持系统和进程的运行。虚拟内存机制是 Windows 操作系统的重要组成部分,但它的速度比物理内存慢得多,因此,应该尽量避免耗尽物理内存资源,以免导致性能下降。解决内存不足问题的一个有效的方法就是添加更多的内存。但是,一旦提供了更多的内存,Windows 很可以会立即“吞食”。而事实上,添加更多 ...
银行家算法的模拟与实现
写在前面在这漫长的人生旅途中,我们总会遇到荆棘,难以逾越。有人选择放弃,有人忍痛前行。虽然两者并无高下之分,但我还是希望自己能够选择后者,无畏艰险,至死不渝。
银行家算法的模拟与实现(1) 进一步理解进程的并发执行。(2) 加强对进程死锁的理解,理解安全状态与不安全状态的概念。(3) 掌握使用银行家算法避免死锁问题。
基本概念
死锁:多个进程在执行过程中,因为竞争资源会造成相互等待的局面。如果没有外力作用,这些进程将永远无法向前推进。此时称系统处于死锁状态或者系统产生了死锁。
安全序列:系统按某种顺序并发进程,并使它们都能达到获得最大资源而顺序完成的序列为安全序列。
安全状态:能找到安全序列的状态称为安全状态,安全状态不会导致死锁。
不安全状态:在当前状态下不存在安全序列,则系统处于不安全状态。
银行家算法
银行家算法顾名思义是来源于银行的借贷业务,一定数量的本金要满足多个客户的借贷周转,为了防止银行家资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内 ...
简单shell命令行解释器的设计与实现
写在前面我们总会站在前人的肩膀上去眺望远方,无论是课程设计还是人生皆如此。
简单shell命令行解释器的设计与实现要设计的 shell 类似于 sh,bash,csh 等,必须支持以下内部命令:
cd <目录>更改当前的工作目录到另一个<目录>。如果<目录>未指定,输出当前工作目录。如果<目录>不存在,应当有适当的错误信息提示。这个命令应该也能改变 PWD 的环境变量。
environ 列出所有环境变量字符串的设置(类似于 Linux 系统下的 env 命令)。
echo < 内容 > 显示 echo 后的内容且换行。
help 简短概要的输出你的 shell 的使用方法和基本功能。
jobs 输出 shell 当前的一系列子进程,必须提供子进程的命名和 PID 号。
quit,exit,bye 退出 shell。
提示:shell 的主体就是反复下面的循环过程
12345678910while(1){//接收用户输入的命令行;//解析命令行;if(//用户命令为内部命令)//直接处理;else if(//用户命 ...
操作系统课程设计(四)-Windows的互斥与同步
写在前面又到了 一年一度期末课设的时候,距离考试还有12天的时间,此时胡小宁还没有复习(准确的说是学习)之前的课程,所以在这个平平无奇的周二,胡小宁就要开始做课设了!
Windows 的互斥与同步
实验目的
(1) 回顾操作系统进程、线程的有关概念,加深对 Windows 线程的理解。(2) 了解互斥体对象,利用互斥与同步操作编写生产者-消费者问题的并发程序,加深对 P (即semWait)、V(即 semSignal)原语以及利用 P、V 原语进行进程间同步与互斥操作的理解。
实验内容和步骤
创建一个“Win32 Consol Application”工程,然后拷贝清单 4-1 中的程序,编译成可执行文件。
步骤 2:在“命令提示符”窗口运行步骤 1 中生成的可执行文件,列出运行结果。
步骤 3:仔细阅读源程序,找出创建线程的 WINDOWS API 函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的 API 函数的第几个参数中?
步骤 4:修改清单 4-1 中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。察 ...
操作系统课程设计(三)-Linux进程间通信
写在前面又到了 一年一度期末课设的时候,距离考试还有12天的时间,此时胡小宁还没有复习(准确的说是学习)之前的课程,所以在这个平平无奇的周二,胡小宁就要开始做课设了!
实验三 Linux 进程间通信
实验目的
Linux 系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据,通过本实验,理解熟悉 Linux 支持的消息通信机制。
实验内容和步骤
(1)使用系统调用 msgget(),msgsnd(),msgrcv()及 msgctl()编制一长度为 1K 的消息的发送和接收程序。
为了便于操作和观察结果,用一个程序作为“引子”,先后 fork()两个子进程 SERVER和 CLIENT,进行通信。
SERVER 端建立一个 key 为 75 的消息队列,等待其他进程发来的消息。当遇到类型为 1 的消息,则作为结束信号,取消该队列,并退出 SERVER。SERVER 每接收到一个消息后显示一句“(server) received”。
CLIENT 端使用 key 为 75 的消息队列,先后发送类型从 10 到 1 的消息,然后退出。最后的一个消息,即是 SERVER 端需要 ...
操作系统课程设计(二)-Linux进程管理
写在前面又到了 一年一度期末课设的时候,距离考试还有12天的时间,此时胡小宁还没有复习(准确的说是学习)之前的课程,所以在这个平平无奇的周二,胡小宁就要开始做课设了!
实验二 Linux 进程 管理
实验目的通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程和程序之间的区别。
实验内容和步骤
(1)进程的创建:
这里要玩虚拟机了,在虚拟机上玩Centos,也就是基于Linux开发的操作系统。安装什么的就不赘述了,网上都可以找得到对应的教程。如下是安装好之后的界面!
肉眼可见的是,Linux操作系统的界面同Windows有很多相似之处。但是捏,我还不太会用Linux,所以下面来简单的介绍一下Linux操作系统的使用吧!
Linux编程基础
熟悉Linux下的c/c++编程环境:vi/gedit编辑器+gcc编译器+gdb调试器
怎么玩捏?
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其 ...
操作系统课程设计(一)-Windows进程管理
写在前面又到了 一年一度期末课设的时候,距离考试还有两周的时间,此时胡小宁还没有复习(准确的说是学习)之前的课程,所以在这个平平无奇的周一,胡小宁就要开始做课设了!
实验一 Windows 进程管理
实验目的(1)学会使用 VC 编写基本的 Win32 Consol Application(控制台应用程序)。(2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows 进程的“一生”。(3)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。
实验内容和步骤
(1) 编写基本的 Win32 Consol Application:
指导书上的步骤有很多缺陷。我在Windows上做课设所使用的编译器是CodeBlocks,所以在操作和代码方面与指导书给的标准有些出入。这里创建的是Consol Application。
代码如下:
123456#include <iostream>using namespace std;int main(){cout << ...