




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实验报告 实验一:熟悉 Linux 命令 一、 实验目的 熟悉 Linux 系统,掌握 Linux 系统的登入、退出等操作; 熟悉 Linux 命令及进程管理; 学会使用 Linux 下 C 语言编程的基本知识; 二、 实验内容 1、Linux 基本操作 2、文件与目录操作 3、进程查看及在线帮助 4、全屏幕文本编辑器 Vi 的熟悉 5、Linux 下 C 语言编程基础知识 三、 代码及运行结果分析 1、Linux 基本操作,Linux 系统的登入 1.文件与目录的基本操作 显示文件目录命令 ls 改变当前目录命令 cd 建立子目录 mkdir 删除子目录命令 rmdir 删除文件命令 rm 文件改名命令 mv 文件复制命令 cp 2、进程查看命令 进程查看 who 命令 ps 命令 top 命令 4、在线帮助 联机帮助 man 命令 联机帮助 help 命令 whereis 命令查看 ls 命令所在位置 5、全屏幕文本编辑器 Vi 及 Linux 下 C 语言基础编程 1) e06620208localhost e06620208$ vi sj.c #include int main() printf(“helloworld“); return 0; : “sj.c“ New 6L, 65C written e06620208localhost e06620208$ gcc sj.c -o sj e06620208localhost e06620208$ ./sj helloworlde06620208localhost e06620208$ 2) e06620208localhost e06620208$ vi sjj.c #include main() printf(“The current process ID is %dn“,getpid(); “sjj.c“ New 5L, 83C written e06620208localhost e06620208$ gcc sjj.c -o sjj e06620208localhost e06620208$ ./sjj The current process ID is 24189 e06620208localhost e06620208$ vi 1.c #include #include main() pid_t pid; pid=fork(); if(pid main() printf(“this process will exit!n“); exit(0); printf(“never be displayed!n“); “jj.c“ New 7L, 114C written e06620208localhost e06620208$ gcc jj.c -o jj e06620208localhost e06620208$ ./jj this process will exit! 分析:程序运行到 exit(0);时将退出 printf();语句不执行,程序最终输出 this process will exit! 4) e06620208localhost e06620208$ vi jjj.c #include #include main() pid_t pid; pid=fork(); if(pid #include #include #include main() pid_t pc,pr; pc=fork(); if(pc main() int p1,p2; while(p1=fork()=-1); if(p1=0) printf(“b.My process ID is %d“,getpid(); else while(p2=fork()=-1); if(p2=0) printf(“c.My process ID is %d“,getpid(); 25225 25 25225 i=25225 i=0 进程号 else printf(“a.My process ID is %d“,getpid(); “s2.c“ New 15L, 279C written e06620208localhost e06620208$ gcc s2.c -o s2 e06620208localhost e06620208$ ./s2 b.My process ID is 25425c.My process ID is 25426a.My process ID is 25424e066202 07localhost e06620208$ 分析:程序 2 运行,满足 p1=0,输出父进程 ID,p1=fork(),p1 值发生改变, else 条件满足,之后再判断 p2 的值同样输出子进程的 ID,最后输出下级子进 程的 ID,运行结果如上。程序执行后其进程树如下: 3) e06620208localhost e06620208$ vi s3.c #include main() int m,n,k; m=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,m); printf(“hen“); n=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,n); printf(“han“); k=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,k); printf(“hon“); “s3.c“ New 17L, 347C written e06620208localhost e06620208$ gcc s3.c -o s3 e06620208localhost e06620208$ ./s3 PID:25580 The return value of fork():0 he PID:25581 The return value of fork():0 ha PID:25582 The return value of fork():0 ho PID:25581 The return value of fork():25582 ho PID:25580 The return value of fork():25581 ha PID:25579 The return value of fork():25580 he PID:25584 The return value of fork():0 ha 25424 25425 25426 p1=25425,p2=25426 p1=25425,p2=0 p1=0,p2=0 PID:25579 The return value of fork():25584 ha PID:25586 The return value of fork():0 ho PID:25579 The return value of fork():25586 ho e06620208localhost e06620208$ PID:25583 The return value of fork():0 ho PID:25580 The return value of fork():25583 ho PID:25585 The return value of fork():0 ho PID:25584 The return value of fork():25585 ho 分析:产生进程树如图所示: 4) e06620208localhost e06620208$ vi s4.c #include main() int p1,p2,i; while(p1=fork()=-1); if(p1=0) for(i=0;i main() int m,n,k; m=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,m); printf(“hen“); n=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,n); printf(“han“); k=fork(); if(m0 printf(“The return value of fork():%dtt“,k); printf(“hon“); “s5.c“ New 19L, 363C written e06620208localhost e06620208$ gcc s5.c -o s5 e06620208localhost e06620208$ ./s5 PID:25979 The return value of fork():0 he PID:25978 The return value of fork():25979 he PID:25981 The return value of fork():0 ha PID:25978 The return value of fork():25981 ha PID:25983 The return value of fork():0 ho PID:25978 The return value of fork():25983 ho e06620208localhost e06620208$ PID:25980 The return value of fork():0 ha PID:25979 The return value of fork():25980 ha 分析:设置 if(m0 int f1,f2,f3; while(p1=fork()=-1); if(p1=0) while(!f2i10;i+) printf(“son%dn“,i); else while(p2=fork()=-1); if(p2=0) f2=lockf(1,1,0); for(i=0;i10;i+) printf(“daughter%dn“,i); else f3=lockf(1,1,0); for(i=0;i10;i+) printf(“parent%dn“,i); “s.c“ New 28L, 344C written e06620208localhost e06620208$ gcc s.c -o s e06620208localhost e06620208$ ./s daughter0 daughter1 daughter2 daughter3 daughter4 daughter5 daughter6 daughter7 daughter8 daughter9 daughter10 parent0 pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年潍坊工商职业学院人才引进计划(70人)模拟试卷附答案详解(黄金题型)
- 2025年甘肃畜牧工程职业技术学院招聘工作人员15人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025江苏苏州千灯镇招聘镇属公司工作人员拟录用笔试历年参考题库附带答案详解
- 2025湖南张家界市市场监督管理局招聘公益性岗位人员1人模拟试卷及完整答案详解1套
- 2025陕西西安市建总工程集团3月招聘笔试历年参考题库附带答案详解
- 2025重庆演艺集团招聘综合管理宣传推介策划执行等岗位招聘5人笔试历年参考题库附带答案详解
- 2025广西南宁市江南区翠湖路小学春季学期临聘教师招聘1人模拟试卷及参考答案详解
- 2025贵州黔凯城镇建设投资(集团)有限责任公司招聘工作人员缴费成功人数与招聘岗位人数达不到31比例岗位(截止9月17日1700)笔试历年参考题库附带答案详解
- 2025年德阳市事业单位公开考试招聘工作人员笔试模拟试卷附答案详解(黄金题型)
- 2025年4月四川乐山昶康心血管病医院招聘医护人员12人考前自测高频考点模拟试题有答案详解
- 浙教版八年级信息技术上册《第4课-在线协同》课件
- 停车位买卖合同电子版
- ISO15614-1 2017 金属材料焊接工艺规程及评定(中文版)
- 2024年安徽九华山旅游发展股份有限公司招聘笔试参考题库附带答案详解
- B级英语词汇表修改版
- 2024年山西省成考(专升本)大学政治考试真题含解析
- 最高法院第一巡回法庭关于行政审判法律适用若干问题的会议纪要
- 足球场的运营可行性方案
- GB/T 2881-2023工业硅
- 有限合伙份额质押合同完整版(包含质押登记公证手续)
- GB/T 43299-2023机动车玻璃电加热性能试验方法
评论
0/150
提交评论