




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验报告册班级: 学号: 姓名: 教师: 目 录实验说明实验1 Linux(虚拟机)安装及Linux常用命令使用.3实验2 makefile的编写及Linux内核编译.6实验3 Linux的进程和线程.11实验4 同步与互斥.15实验5 文件系统.17 实验编号1题目Linux(虚拟机)安装及Linux常用命令使用实验目的(1)为了更好地了解Linux操作系统及其常用的命令;(2)学会在VMWARE虚拟机下安装Linux系统,提高自身的动手实践能力。实验内容(1)成功在Vmware Workstation下安装Linux系统(2)完成配置Vmware中Linux系统与宿主机Window
2、s系统的文件交换(3)编写常用的Linux命令报告内容要求(1) 实现方法和思路(2) 测试及结果报 告 正 文(1) 在配置Vmware中安装Linux系统和VMWARE TOOLS(2) 完成配置Vmware中Linux系统与宿主机Windows系统的文件交换。方法:打开VMware工具栏虚拟机选择 设置选项 共享文件夹 点添加,按提示来添加一个windows下的文件夹。Windows下得文件 夹被存放在/mnt/hgfs(2) 编写常用的Linux命令1、 进入文件夹命令cdcd /etc/hp:进入到根目录下的etc的子目录hp(使用绝对路径)2、 查看当前目录名命令pwd3、 使用t
3、ouch创建普通文件,并将创建好的文件移动到/etc/hp文件夹下 4、 复制命令cpCp zhang /etc将创建好的文件夹zhang复制到/etc目录下实验编号2题目makefile的编写及Linux内核编译实验目的 (1)理解Linux中的makefile文件(2)理解Linux内核的Makefile(3)掌握至少一个版本Linux内核的编译步骤实验内容(1) 在虚拟机上安装Linux内核(2) 用makefile解决编译运行问题报告内容要求(1) 实现方法和思路(2) 测试及结果报 告 正 文1、 在配置Vmware中安装Linux内核根据步骤:1) 拷贝源代码到/usr/src目录
4、下;2) 在当前目录(/usr/src)下解压源 代码“tar xvf linux-2.6.32.60.tar.bz2”3)拷贝软件包到“”目录下;4) 获取超级用户权限(输入三次,第一次是要求当前用户的口令,后两次是为root用户设置口令);5)切换当前目录到你存放软件包的目录之下;6) 执行安装必备的软件包所需的命令;7) 转到内核源代码所在的目录 “/usr/src/linux-2.6.32.60”;8) 输入Make menuconfig,进入general setup选项,进入local version菜单 输入你自己想要添加的版本标示,并保存配置文件,保存并退出配置菜单。一步步进行
5、安装:安装结果如下图所示(1)内核编译过程-Make(2) 安装完成,重启客户机之后,检验内核安装是否成功,敲入命令:uname -r 2、用makefile解决helloworld编译运行问题(1) 敲入命令 gedit 建立helloworld.c文件(2) 敲入命令 gedit 建立Makefile文件,内容如下:(3)在命令行窗口,输入make直接编译链接,然后输入./文件名执行文件 实验编号3题目Linux的进程和线程实验目的(1)理解进程/线程的概念(2)掌握创建和终止进程/线程的方法(3)掌握与进程/线程控制相关的系统函数实验内容(1)了解进程和线程控制相关的系统函数(2)编写与
6、进程和线程相关的7个实例程序,实现相关功能。报告内容要求(1) 实现方法和思路(2) 测试及结果报 告 正 文1、实现获得进程、父进程、用户和组的ID。2、 使用进程函数fork(),wait()防止僵尸进程的产生 fork()函数没有入口参数,返回进程描述符。如果返回值是0,那么当前进程 就是新创建的子进程。如果返回值大于零,那么当前进程就是父进程,返回值表示的是子进程的进程ID。如果fork的返回值小于零,就说明发生了错误。 wait函数提供了一种同步机制如果子进程在父进程有机会调用wait前退出了,这个子进程成为僵尸进程。不过,现在再调用wait还是可以释放资源,这种情况下wait函数会
7、立即返回。wait返回退出的子进程的pid值,如果发生错误则返回-1.3、 使用sign()函数,实现信号句柄注册 signal函数允许你为进程注册信号句柄(一种回调函数,是通过函数指 针调用函数),signal 返回前面注册的信号句柄。4、 使用pause()函数将把进程挂起。pause函数会把进程挂起,直到接收到信号。在接收到以后,调用进程从 pause中返回,继续进行。如果进程捕获的信号已经注册了信号句柄,那么pause函数会在信号句柄被调用并返回之后才返回。 5、创建线程原型和终止线程原型Int pthread_create(pthread_t *thread,pthread_attr
8、_t *attr,void *(*start_routine)(void*), void *arg ) 第一个参数为指向线程标示符的指针。 第二个参数用来设置线程属性。 第三个参数是线程运行函数的起始地址。 最后一个参数是运行函数的参数。若成功则返回0,若失败则返回出错编号。int pthread_exit(void *retval); 在编译链接时需要注意添加 -pthread 和-lpthread 6、线程管理 获得自己的线程描述符 pthread_t pthread_self(void) 实现同步线程,使用pthread_join函数,在调用该函数时会挂起调用者直到 加入的线程完成。在加
9、入的线程完成后,调用者会从pthread_join的返回值中获得加入线程的终止状态。 int pthread_join(pthread_t th, void *thread_return ); 参数th是想要加入的线程 参数thread_return存储线程完成后的返回值,可以为NULL,表明不捕获线 程的返回状态。 返回值,0代表成功,非0代表失败的编号7、 创建线程互斥变量,运用pthread_mutex_lock和pthread_mutex_trylock可以通过锁定或解锁它,从而创建关键区。 pthread_mutex_lock加锁,可能会阻塞。 pthread_mutex_trylo
10、ck加锁,如果互斥变量已锁定,则不会阻塞,而是立即返回一个值来描述互斥锁状态,在成功时返回零,失败时返回非零的错误码。实验编号4题目同步与互斥实验目的(1)理解并发中的互斥原理(2) 掌握Peterson算法(3)掌握读者写者模型实验内容 用POSIX 的线程库(pthread_)实现Peterson算法报告内容要求(1) 实现方法和思路(2) 测试及结果报 告 正 文1、定义全局两个变量flagi表示哪个进程正在占用临界区及临界区的状态,并都初始化为falseTurn表示能进入临界区的进程序号;2、建立parbegin函数l 使用pthread_create函数创建线程P0,P1l 使用pt
11、hread_join函数,作用为等待一个线程结束,以阻塞的方式等 待th指定的线程结束。 建立P0(P1)函数l 调用P0函数时,设置flag0=true,表示0号线程占用临界区,turn=1,1号线程能够进入临界区。l 建立while循环,当两个线程进入while语句时,线程0将循环0次 进入临界区,而线程1则不停地循环且不能进入临界区,直到线程0退出临界区为止。3、 代码及结果如下#define true 1#define false 0int flag2;int turn;void P0()while(true)flag0=true;turn=1;while(flag1&turn=1);
12、flag0=false;printf(I am thread 0,I am runningn); pthread_exit(0);void P1()while(true)flag1=true;turn=0;while(flag0&turn=0);flag1=false;printf(I am thread 1,I am runningn);pthread_exit(0);void parbegin(void* p0,void* p1)int ret1,ret2,status;pthread_t a;pthread_t b;ret1=pthread_create(&a,NULL,p0,NULL);ret2=pthread_create(&b,NULL,p1,NULL);pthread_join(a,(void *)&status);pthread_join(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省南阳市第三高级中学校2025年高二下化学期末监测试题含解析
- 河北省衡水市深州贾城西中学2025届高一化学第二学期期末复习检测试题含解析
- 国企采购成本管理办法
- 国农以工代赈管理办法
- 河南永州河道管理办法
- 河堤流动摊贩管理办法
- 办公服务的数据化转型路径-洞察及研究
- 新疆驾校收费管理办法
- 公共食堂调料管理办法
- 林业减排项目管理办法
- 南昌市2025届高三摸底测试(零模)数学试卷(含答案)
- 2024-2026胡润财富报告
- 呼叫中心投标技术方案样本
- 人教版六年级数学下册全册分层作业设计含答案
- 中国舞蹈家协会《中国舞蹈考级》第四版教材教学内容
- 会计理论-资产的确认与计量
- BSCI长期目标计划
- 游梁式抽油机优化设计 matlab
- 知名企业胜任力素质词典
- GB/T 32247-2015低温铁素体球墨铸铁件
- GB/T 20779.2-2007电力防护用橡胶材料第2部分:电缆附件用橡胶材料
评论
0/150
提交评论