版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、福州大学数学与计算机科学(软件)学院实验报告课程名称:计算机操作系统学 号:学1100218姓 名:专业:软件工程年级:2011级学期:2012学年第2学期2013年 10月24日实验一 Linux操作系统的使用和分析一、实验目的本实验主要学习和掌握Linux操作系统的基本应用。通过本实验,学生能够熟练 掌握Linux环境下各种基本操作命令接口的应用。从系统安全角度出发,学习掌握系 统的基本安全优化和配置,在操作系统层次进行有效安全加固,提高 Linux系统的安 全性能。通过本次实验,有助于学生进一步理解操作系统原理中的相关内容,加深认 识。二、实验要求1、熟练掌握Linux系统的基本操作命令
2、。2、熟悉Linux系统的基本配置。3、实现Linux系统的安全加固。4、掌握一种以上的网络应用软件的安装、配置与应用。三、实验内容系统的启动,如图:idoenrutjtuntupstreentt-nr-NetworkMa n age r-i-dhc llentdnsnasqz*Networkwenager)accounts-daenanaccounts-dienon)acpldat - spt -bus-lun-dbus-daepion I-litfat-spt-bus-ldun)atSpiZ-reqtstrat-sptareqtstr)atdava hi- daemonavahi - da
3、erronbanfdaenon2*banfdaer)onbluetoothdcolord2*(colord)关闭使用shutdowm 还有列出文件夹内的信息ls , cp复制拷贝,touch创建文件命令等等下载文件压缩包pro.gz,解压如图:prof tpd-113 4d/READflE. portsLlaoenruidbuntu:cd proftpd-1.3.4d/llooenruiubuntu;-/proftpd-13*4d5 Isacconfio.hIncludeREADMEREADME* PAHaelocal.f*i4INSTALLREADME.AIKREADME.*port&匚he
4、ngeLogtnstall-shREADME r capabilitiesREADMEalartszxconfig.guesslibREADME classesREADME + Unixhiareconftg. inIsslsREADME,controlsRELEASE_N0TE5config.subItnata.shREADME, cygtdnsanple-configurationsconfigure714README.DSOsreconfigure-inMakefLiehInREAD幽E. clstdnp*h* LncontrtbMake-rJies*tnREADME.FreeBSDCO
5、PYINGmodulesREADME.IPv6utilsCREDIISMENSREAD啡.LDAPdocproftpd + specREADME modulesltdQenuiubuntu:+/pEftp,134d然后修改安装路径:liaoen ruiubuntu: /praf tpd -1, B, 4d$ . / canfigure - - pref ix=yho,ne/liaoenrui/llchecking build systen type- ifiSo-pr-linux-gnucherki ng host systam type. ifiaftpCllnux-gnuchirking
6、target systen type.*, ifi36-pc-Tinux-gnuchecking for gcc. gccchecking for C conpiler default output file 口白口e*. a.outchecking whether tlw C compiler worksyes之后用make编译文件事堂 Iteaenru I (ubuntu; -/froftpd-1.5T4d1/share/nan/nanS/usr/bin/tnstaLl -c -o root l/share/han/ninfl /usr/bin/instaLl. -c -o root 1/
7、share/nan/nanl fusr/bin/tnstill. -c -o root 1/share/nan/nanl /usr/btn/tnstall -c -o root l/share/ngn/nanl fusr/bin/install -c -a roar 1/share/nan/nanS cd Lib, &四加ake Install nakLlJ i Entering (lLr*ctory nikeLiJ Nothing to be done-g root -nt 0644 ./uflLs/rt pshut. (J /hone/Liioenrut/1g root -n eg4pco
8、untt1 /hon*/Ltonrui/19 root -nt 054。ptop. 1 /horie/l.t*oenrui/ig root -e 964。./ufils/tpwho. 1 /hone/Hioenrut/l-g root -pt 6544 ./src/xferlog. 5/hone/Liaoenrui/1/horie/ Lta&enrut/pr of tpd-1.3 *4d/ lib for tfistallrwkeLi s Leaving directory /hQne/Llenrut/prcftpd-l. J + lib /usr/bin/install -c -o root
9、 -g root -h G54。 c&nfs,h /hone/li-aoenrut/11/include/ proftpd/conftg . hB include/ 备在 nake Qn3glinake1: Entering directory /hone/Vx5oenrut/proftpd-1.3.dtncludePnakt 1J : Leairlng directory /hone/Liajenrul/proftpd-1.3,4d/include/wsr/bin/instaLl - c - a root - g root -nr G644 prof tpd. pc /honied Liao
10、enrul/ll/lib/pk gcontrg/prGftpd.pct#st -z | | (cd locaLe/ nake tnst4ll)llaoenrut植ubuntu;-/proftp_dt3*4dS | 在安装路径/home/liaoenrui/11里的etc中修改文件的组名和用户名:将groud命名也命名为ftp,然后用groudadd和useradd命令将这两个添加在该目 录的sbin目录下:bus_3Qcketunii 2 ACC STREAM LISTENING &414 /var/run/sdp11.dcnru1.Qubunw:/n/sbtnf Is ftpscrub ft
11、pshut ftpd proftpd llacenruigubuntu:/H/sti1.n$ Jproftpd ubuntu pEftpd12846 ubuntu: ROOT PRIV5: unable B $ewld(): 口peratton not 阿最后运行文件,./profile即可四、实验总结通过本次的操作系统的上机实验,我熟练了Linux系统的基本操作命令,并且对安装文件有更深入的了解,比如在上述安装过程中对于通过froftpd来架构linux的ftp, 由于之前都是用window系统,所以对于这些非常的生疏,因此在请教了多人和上网 查询之后,终于有所了解,并且成功的将此实验顺利完
12、成。在本次实验中,我发现自 己的动手能力又有很大的提高,相信以后继续努力的话会有更大的进步,当然这也要 归功于老师的教导。参考文献1 Neil Maththew Richard Stones Linux程序设计第四版 人民邮电出版社2周茜,赵明生.中文文本分类中的特征选择研究J.中文信息学报,2003,Vol.18 No.3实验二Linux进程通信、实验目的1) 了解有关Linux系统调用;2)学习有关Linux的进程创建,理解进程创建后两个并发进程的执行、实验内容在Linux环境下,用C/C+语言编程,使用系统调用fork创建进程多个子进程(1)调试并完成下列程序,完成实验要求:#inclu
13、de stdio.h#include sys/types.h#include unistd.hint main()pid_t pid1;pid_t pid2;pid1= fork();pid2= fork();printf(pid1:%d, pid2:%dn, pid1, pid2);要求:A.请说出执行这个程序后,将一共运行几个进程。B.观察运行结果,并给出分析与解释。答:A.执行这个程序后,将一共运行 4个进程A.运行结果如下:zhangliyaoubuntu:H/osl5 cc fork-c -o fork xhangltymoubuntu: = /桌囿. /forkptdl:2775,
14、ptd2:2776pidl:2775,pid2:0ptdl!0,ptd2:0ptdl:0,ptd2:2777zhangltyaoubuntu:桌面/口515 /forkptdl : Z7V/pid2 : 2780pidl:2779pid2:0ptdl:0wptd2:27Slpidi:3ptd2 :e分析与解释:fork() 函数能够建立子进程,且使得子进程得到父进程地址空间的一个复制;而且,当创建成功时,如果是父进程则返回0,子进程则返回子进程的ID ,但是, fork()创建的进程并不是从该程序开头开始执行,它只是和父进程一样继续执行后续代码,因此在之后的语句中, 父子进程同时创建一个进程,
15、 就形成了四个进程, 如图上所示。所以,在上面的截图中,第一次fork()函数时成功产生了父子进程pid分别为2775和0,第二次使用fork() 函数时父子进程又各产生了一对父子进程父进程产生的父子进程的pid分别为2776和0,子进程产生的父子进程的pid分别为0和2777。因为进程是并发的,他的调度我们无法干预,所以出现的结果并非都是一成不变的,执行多次后,输出的顺序有可能不一样。(2) 参考下面的相关程序实例, 编写一个管道实验程序, 实现两个进程之间的数据通信。要求:父进程顺序写入若干个字符串,子进程顺序读出内容,并写入文件 piple.txt ,并显示出来。(写出设计步骤、数据结构
16、、关键代码、实验结果及其分析说明)答:设计步骤:用pipe()创建一个管道fd,用fork调用产生两个进程(父进程和子进程);将父进程将要传输给子进程的信息写在readbuffer ;然后使子进程通过读端用 write函数从缓存中读取父进程传输的消息。数据结构:定义一个字符数组string用于存放父进程将要传输给子进程的消息,使用read数和write函数配对实现管道的运行。关键代码:#include #include #include #include #include int main(void)int fd2, out;pid_t childpid;char string=abcdefg
17、hijklmnopqrstuvwxyz;char readbuffer27;pipe(fd);childpid=fork();if(childpid=-1)printf(fork error);exit(1);else if(childpid != 0)close(fd0);write(fd1, string, sizeof string);exit(0);elseclose(fd1);read(fd0, readbuffer, 27);printf(%sn, readbuffer);out=open(pipo.txt, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
18、write(out, readbuffer, 80);return 0;实验结果:zhangllyao0ubuntu:/osl$ gcc prol.c -o prolproUc;在函数,Fiain申;pol*c:8:l:警告: 格式 expects a matching *char * argument -Wfornatprol.c:8:15:警告:比较指针和整数默认启用prol.C:B:21:警告:隐式声明与内建函数飞xlt不兼容默认启用xhangllyaogubunttj/桌面,/prolba i txtzhanqliYaoubuntu:/桌面/osl$ |分析说明:管道是用于进程间通信的
19、一种通信机制。Pipe函数在两个程序之间传递数据不需 要启动shell来解释请求的命令,同时还提供了对数据的更多控制,因此用它来创建 管道非常方便。三、实验总结在做这个实验之前,一直觉得这是一个非常复杂的实验,一直不太愿意去碰它。终于不得不做了,发现其实没有想象中的那么难。而且,通过这个实验,让我了解了关于页面调度方面的一些知识, 对于系统是如何调度页面的更加的清晰明了。通过这次的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的 ,真正使我们受益匪浅。 在实验课上, 由于时间关系以及考虑不全面,所以导致实验初始时的不完善,这启发了我要进行多方面
20、的思考和研究,尤其是对于进程并发执行这种具有不确定性的问题, 更要从多角度进行思索,并动手进行实际操作以及检验,才能验证自己的想法是否正确。四、参考文献中国 IT 实验室陈向群,马洪兵. 现代操作系统M. 北京 : 机械工业出版社, 2009.7黄志洪,钟耿扬, Linux 操作系统 B. 北京 : 冶金工业出版社, 2003.周巍松 .Linux 系统分析与高级编程技术M. 北京 : 机械工业出版社, 2000实验三 页面置换算法一、实验目的本实验主要对操作系统中请求分页式内存管理及其应用的一些关键算法进行模拟。学生通过设计与实现Clock 算法,能够加强对相应理论的理解,并对了解操作系统内
21、部的基本处理原理与过程也有很多益处。二、实验要求基本要求:描述 Clock 算法的基本原理、必要的数据结构、算法执行流程图、编码实现。1)初始化:输入作业可占用的总页框数,初始化置空。2)输入序列:输入一个页号访问请求序列,依次占用相应页框,直至全部占用;3) Clock 算法:当页框全部占用后,对于后续新的页号访问请求,执行Clock 算法,淘汰 1 个页面后装入新的页号。4)显示当前分配淘汰序列:显示淘汰的页号序列。描述Clock 算法的基本原理、必要的数据结构、算法执行流程图、编码实现。三、实验内容基本原理:时钟页面置换算法是把所有的页面都保存在一个类似钟面的环形链表中, 一个表针指向最
22、老的页面,在采用请求分页机制的操作系统中,当运行一个程序的时候,若要访问的页面不在内存中而需要把它们调入内存, 但此时内存已无空闲空间,为了保证该进程能正常运行, 需选择内存中暂时不用的页面调出到磁盘交换区。选择调出哪个页面,由页面算法决定。页面置换算法的好坏,直接影响系统的性能,所以一个好的页面置换算法,应尽可能选择调出较长时间内不会再访问的页面,以保证较低的缺页率。如图所示。6S(a) State of buffer jusl prior to a p注整 replacementH - 1(Iil) S131e of hiUfer juM whr tht- ritxl “h*?ill当发生
23、缺页中断时,算法首先检查表针指向的页面,如果它的 R位是0就淘汰该页面,并把新的页面插入这个位置,然后把表针前移一个位置;如果 R位是1就清除R位并把表针前移一个位置,重复这个过程直到找到了一个 R位为0的页面为止改进型的Clock算法的思想:如图:Firt tniirir ih dmahr bijHKi hfrr ihh |ir(reh063 Inrt* pidtrtlr-wi 7rE irnlh ii HMl lirdI1副旷IKd ilCCu SMitllikiwlifii Jin-i jhi* d:HI| 11 Li k hlnxiFilledixil nun hl 1; iJii 1
24、 mtIh二川打.Ii nilil n drt ccnlh ii-Hif i:iiidil i dPiror I 1rL*L-fhkll;n胆wiHnirdnreiith :Pup 47ii1南rrrii iiHi;riiTiilh i在将一个页面换出时,如果该页已被修改过,便须将它重新写到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。同时满足这两条件的页面作为首先淘汰的贡。由访问位uesbit和修改位change可以组合成下面四种类型的页面:类(usebit=0change=0 ):该页最近既未访问、又未修改,是最佳淘汰页。类(usebit=0change=1 ):该页最近未访问,但被修
25、改,并不是好的淘汰贡。类(usebit=1change=0 ):最近已被访问,但未被修改,该页有可能再被访问。类(usebit=1change=1 ):最近已被访问且被修改,该页有可能再被访问。在内存中的每个页必定是这四类页面之一,在进行页面置换时,可采用与简单Clock算法相类似的算法,其差别在于须同时检查访问位和修改位,以确定该页是四类页面中的哪一种。此算法称为改进型 Clock算法。其执行过程可分成以下三步:(1)从指针所从当前位置开始扫描循环队列,寻找usebit=0 且 change=0 的页面,usebit。轮扫描期间,将所有经过的页面的访问位置00将遇到的第一个页面作为所选中的淘
26、汰页。在第一次扫描间不改变访问位(2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找 usebit=0且change=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第(3)如果第二步也失败,即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后,重复第一步,如果仍失败,必要时再重复第二步,此时就定能够找到被淘汰的贡。算法流程设计:,在当前路径下建STEP1输入分配的页框数,页面访问次数和要访问的页面号序列 一个 in.txt 的文件作为输入使用。STEP2:内存页面初始化。内存中页面的int数据结构为数组,用余项含有页号值 now 和访问位值us
27、ebit,修改位change开始时页号均为-1,访问位为0,修改位也为0。STEP3: 测试数据。 具体算法是依要访问的页面号, 运用写在main()函数里的 clock算法查找是否已经存在于内存中。若存在,则修改其访问位为1.若不存在,触发缺页中断。最后,打印当前内存状态。如此循环直至测试串都访问完毕主要函数实现:/CLOCK 算法if(marknum)printf( 命中页 %d*,num);usebitnum=1;if(worknow=num) now=(now+1)%len;/ 若是当前指针所在位置则移位,否则不变else miss+;marknum=usebitnum=1; chan
28、genum=cha;if(worknow=-1) / 判断是否还有空的内存块worknow=num; now=(now+1)%len;printf( 插入页 %d*,num);elsewhile (true)/ 循环的查找最佳的替换块for(int i=0;ilen;i+)/ 超找 usebit=0 , change=0 的块if(usebitworknow=0&changeworknow=0) f1=true;break; now=(now+1)%len;if(!f1)/ 查找 usebit=0.change=1 的块,查找过程中将不符合的 usebit 置 0for(int j=0;jle
29、n;j+)if(usebitworknow=0&changeworknow=1) f2=true;break;usebitworknow=0;now=(now+1)%len;if(!f2)/ 将所有访问页置0for(int k=0;klen;k+)usebitworknow=0;now=(now+1)%len;if (f1|f2) break;printf(淘汰页 d,插入页 d * ,worknow,num);markworknow=0;worknow=num;now=(now+1)%len;测试数据:在这个模拟算法中我将所有的输入放在in.txt之中,并在文件中输入如下的数据:30 0 5 1 1 0 3 0 4 1 2 1 2 0 4 1 3 1 0 0 1 0 5 1输出的结果如图:1 F:De bu gdockmoni exer页面置换算法2模拟系统作业可占用的总页框数:3访问页码0 作页页页页页页页页页页 操入-0董 淘淘淘八罢相淘淘淘3 4 2 3 0 15页 页页入入人 入人入入1- 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年演艺经纪合同保密条款设计
- 经营场所承包合同
- 2026届新高考英语冲刺复习语填错题技巧及错题本指导
- 娱乐公司介绍
- 水暖施工员年终总结
- 安全培训讲师证年审流程课件
- 培训演讲能力课件
- 员工规范培训课件
- 儿童癫痫持续状态诊断治疗2026
- 2024年崇州市公务员考试真题
- 2332《高等数学基础》国家开放大学期末考试题库
- 中国热带农业科学院橡胶研究所高层次人才引进考试题库附答案
- 2025年度机动车辆检验检测机构管理体系内审资料
- 喉癌患者吞咽功能康复护理
- 2025中原农业保险股份有限公司招聘67人笔试历年常考点试题专练附带答案详解
- 政协课件教学
- 2025年安徽省普通高中学业水平合格性考试英语试卷(含答案)
- 合法效收账协议书
- DB32∕T 5167-2025 超低能耗建筑技术规程
- 2025年天津市直机关遴选公务员面试真题及解析
- 糖尿病周围神经病护理查房
评论
0/150
提交评论