四川大学 操作系统原理 第二次 实验报告 shell编程

时间:2024.3.19

实验报告

(学生打印后提交)

实验名称:   shell编程                                               

实验时间:  10 04 21

实验人员:(姓名)(学号)(年级)

实验目的:1.熟悉使用Linux下的软件开发工具,如gcc

2.熟练使用man帮助手册

3.学习使用Linux的系统调用,对进程进行管 理和完成进程之间的通信(如用信号和管道 进行进程间通信)

4.理解并发程序中的同步问题

实验环境:   linux                                                              

实验步骤:

  1. 用帐户root登录,密码123456

  2. 自己用学号建立目录,把源文件拷入目录中                                                                         

  3. 阅读关于fork,exec,wait,exitpipe系统调用的man帮助手册                                                                             

  4. 编译程序fork.c并运行,观察结果,观察进程                                                                        

  5.编译程序pipe.c并运行,观察结果                                                                            

  6.阅读关于函数sigaction,tcsetpgrpsetpgidman帮助手册                                                                             

  7.编译程序signal.c并运行,观察结果,观察进程                                                                            

  8.编译程序process.c并运行,观察结果,观察进程                                                                              

  9.写实验总结                                                                             

实验陈述:

1、基础知识:

²  什么是系统调用:系统调用是UNIX操作系统核心提供给用户程序使用的操作系统服务,系统调用主要提供用户程序对文件进行读写,进程的创建,删除和控制以及数据的输入/输出等。  

²  简述fork调用:  fork()创建一个新的进程,成为原先进程的子进程,原先进程是父进程。

²  如何实现进程间的通信: UNIX进程通信方式有信号,管道,消息,共享存储区和信号量。

²  如何实现进程间的连接:可以利用管道和socket                                                             

2、 写出下列函数的原型

fork:   int fork();           

signal:  int signal(int sig,int func);

pipe:int pipe(int fildes[2]);

tcsetpgrp:  int tcsetpgrp(int fildes,pid_t pgid_id)

3、运行和观察结果

²  fork.c

Ø  简述结果(不是执行结果):与执行ls -l/相同

                                                                            

Ø  程序中如何区分父进程和子进程:通过fork的返回值pid的值的大小来区分子进程和父进程,如果pid的值等于0,表明是子进程,如果>0表明是父进程,如果小于0,表明子进程创建失败    

Ø  pipe.c

Ø  简述结果(不是执行结果):   相当于将ls –l /etc/内容重定向到一个地方(程序中是缓冲),然后用more命令以页为单位在屏幕上显示出重定向的内容                                                            

Ø 

vp(prog2_argv[0],prog2_argv)(第56行)是否执行,如果没有执行是什么原因:会执行,父进程创建子进程时后父进程和子进程的执行所随机的,所以只要第二次子进程创建成功,都会执行这一句话。

²  signal.c

²  简述结果(不是执行结果):不断的输出父进程和子进程的ID号,父进程是3693,子进程是3694          

² 

Ø   

Ø   

Ø   

怎样让函数ChildHandler执行? 当子进程接收到信号的时候就执行ChildHandler函数                                                            

²  process.c

Ø  简述结果(不是执行结果):显示parentchild进程的进程号,其中parent的进程号为5193child的进程号为5194,然后使子进程所在的进程组成为前台进程组,然后执行vi

进程列表中有几个./process,区别在哪里:进程中有两个,一个所主进程,在后台等待输入,子进程在前台调用vi                              

1.  杀死主进程后,出现什么情况:子进程也结束了                                                                

实验总结:

1.通过本次实验,了解了linux下的软件开发工具gcc的具体使用方法                                                              

2.学会用man帮助手册,查看一些系统调用的具体内容                                                              

3学习使用Linux的系统调用,如用信号和管道,对进程进行管理和完成进程之间的通信


第二篇:操作系统原理实验报告09


《操作系统原理》实验报告

实验序号:9              实验项目名称:进程创建模拟实现

更多相关推荐:
Shell编程实验报告

南京信息工程大学实验实习报告实验目的1了解和熟悉创建并使用脚本的步骤2熟悉bash的控制结构3学会简单的shell编程实验内容1创建一个简单的列目录和日期的shell脚本并运行之步骤输入下列命令创建一个新文件c...

LINUX-Shell编程实验报告

LINUX管理与应用课程实验报告

linux操作系统实验报告_shell简单编程

操作系统实验报告院系机电与信息工程学院实验日期20xx年xx月x日

Linux操作系统(实验五shell编程实验报告)

信息技术学院软件实验报告专业软件工程课程Linux操作系统学号姓名班级软件工程班

LINUX-shell程序编程实验报告

LINUX实验报告专业班级学号姓名报告时间1实验一Shell编程一实验名称考勤模拟shell程序设计二实验目的理解Shell程序的设计方法熟悉Shell程序的编辑运行调试方法与过程三实验内容考勤模拟Shell程...

shell编程实验报告

实验报告课程名称linux教程实验项目shell编程专业班级网络工程xxx指导教师xxx姓名xxxx学号xxx成绩日期xxxx12

实验4 shell 程序设计 实验报告

实验4shell程序设计1采用shell编程语言类似C语言完成1请用C语言编写程序将1100之间能被3或7整除的数显示出来实验结果studentlinuxsusegthomework1sh36791214151...

linux实验报告--shell编程

计算机工程技术学院软件学院实验报告专业计算机网络技术班级成绩评定学号姓名合作者号教师签名赖小卿实验题目shell编程第周星期一第节广东科学技术职业学院

Linux实验报告(实验四) shell编程实验

实验四shell编程实验二班级姓名学号上机时间年月日任课教师实验教师实验成绩一实验目的综合Linux常用命令和vi编辑器的使用熟练掌握shell脚本编程二实验注意事项实验室内的实验环境与系统是共用设施请不要在系...

Socket编程 实验报告

实验名称利用Socket进行网络编程班级软件实验目的学号0姓名熟悉和掌握socket编程的基本理论和方法掌握基于TCP和UDP的工作原理以及Socket编程的一般方法能够编写简单的网络应用程序实验要求掌握一些w...

Socket编程实验报告

实验报告实验一Socket编程一实验目的通过socket程序的编写调试掌握socket编程的基本方法了解客户端与服务器端的特点掌握并熟悉运用socket类与ServerSocket类二实验内容学习socket编...

socket编程实验报告

姓名学院实验时间计算机网络实验题目Socket编程实验1基于UDP的Socket编程实验2基于TCP的Socket编程学号年级目录一实验内容3实验1基于UDP的Socket编程3实验2基于TCP的Socket编...

shell编程实验报告(25篇)