【操作系统】复习荟萃(实验专题)

Linux操作系统基本命令

vmstat:系统状态
pwd:目录
who am i:当前用户信息
who:谁在系统中
cat:建立文件,查看文件
ln:文件链接
cp:复制
ls:列目录 (ls -l)查看当前目录内容
cd:改变当前目录
ps:报告进程状态
kill:传送信号
源程序多少行:cat创建+显示,重定向cat到某一个文件里
接口:命令接口,系统调用
查看信息命令
在这里插入图片描述
文件操作命令
在这里插入图片描述
修改文件属性
在这里插入图片描述
进程管理
在这里插入图片描述
信息传递操作:
在这里插入图片描述

shell编程

shell:高级程序语言,文档shel.h
执行时:
1.变成可执行:chmod 命令;
chmod 命令更改所有者,改变文件的权限

$ chmod 755 shdemo.h (文件主可读、写、执行,同组人和其他人可读和执行)

户主,其他用户,同组用户,111(可读可写可执行)
111 111 111(WRE)

shdemo.h (直接键入程序文件名执行)
sh shel.h(执行)

下面程序将当前目录中的文件(用命令 ls 列出),复制到 backup 子目录中建立备份

for filename in ˋlsˋ #命令打反引号
do
	cp $filename backup/$filename
	if [ $? –ne 0 ]
		echo “copy $filename failed”
	fi
done

系统调用

  1. 程序接口,编程可调用,提供的服务不能直接产生,只能通过调用实现,用户程序执行时在用户态下面执行,核心态(可执行特权指令)下干什么?为了系统安全
  2. 大题
    (1)创建子进程,子进程之间利用管道通信,利用信号通信,利用客户/服务器模式通信,这段程序用到了哪些系统调用?(实验三)
    eg:
    fork:创建子进程
    exit:退出
    abort:可异常中止
    mail:发邮箱
    pipe 创建管道
    lockf
    read
    msgget
    getrid

进程管理及进程通信

(2)给出计算结果
多道系统,可能会有多道进程,子进程,父进程,可能里面有多个进程,找代码里面有几个进程,子进程和父进程的输出顺序,结果

/* 用fork()系统调用创建子进程的例子*/
int main()
{
	int i;
	if (i=fork()) //创建子进程
{
	i=wait(0); /*父进程执行的程序段*/
	/* 等待子进程结束*/
	printf("It is parent process.\n");
	printf("The child process,ID number %d, is finished.\n",i);
}
	else{
	printf("It is child process.\n");
	sleep(10);
	/*子进程执行的程序段*/
	exit(0); /*向父进程发出结束信号*/
	}
}

在这里插入图片描述
fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
1)在父进程中,fork返回新创建子进程的进程ID;
2)在子进程中,fork返回0;
3)如果出现错误,fork返回一个负值;

父进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果成功,wait会返回被收集的子进程的进程ID,如果调用进程没有子进程,调用就会失败,此时wait返回-1

 /*建立进程树*/
#include<unistd.h>
int main()
{ 
 int i;
 printf(“My pid is %d, my father’s pid is %d\n”,getpid(),getppid());
 for(i=0; i<3; i++)
 	if(fork()==0)
 		printf(%d pid=%d ppid=%d\n”, i,getpid(),getppid());
 else
 { 
 	j=wait(0);
 	printf(%d:The chile %d is finished.\n” ,getpid(),j);
 }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
管程:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值