unix操作系统实验3

合集下载

操作系统模拟unix文件系统实验报告

操作系统模拟unix文件系统实验报告

操作系统大型实验班级:学号:姓名:一实验介绍……………………………………………………………………1.实验名称2.实验目的3.实验内容及要求二实验环境……………………………………………………………………三实验设计……………………………………………………………………1.数据结构设计2.系统流程设计3.实现命令操作四模块详解……………………………………………………………………1 .文件操作2 .用户操作五实验演示……………………………………………………………………1 .初始化磁盘块2 .用户登录3 .目录操作4 .文件操作六源代码………………………………………………………………………七实验心得体会……………………………………………………………………1.调试中遇到的问题总结2.实验感悟一、实验介绍1.实验名称操作系统大型实验2.实验目的完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。

3.实验内容及要求(1)文件卷结构设计0#块可省略I节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块(2)I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址(3)目录结构用16字节表示,其中14字节为文件名,2字节为I节点号(4)用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(5)文件树结构除(4)要求外,适当考虑UNIX本身文件树结构(6)实现功能Ls 显示文件目录Chmod 改变文件权限Chown 改变文件拥有者Chgrp 改变文件所属组Pwd 显示当前目录Cd 改变当前目录Mkdir 创建子目录Rmdir 删除子目录Mv 改变文件名Cp 文件拷贝Rm 文件删除Ln 建立文件联接Cat 连接显示文件内容Vi 文件写入Mk 创建文件umask 查看用户屏蔽码Umask 文件创建屏蔽码Passwd 修改用户口令Ls-l 查看文件类型Login 用户注销Logout 退出系统Help 显示帮助信息二、实验环境实验设备:Microsoft Visual Studio 2010开发语言:c++三、实验设计1.数据结构设计磁盘文件结构设计:用一个名为disk.txt的文件模拟Unix系统磁盘,总共分为200块,每块514个字节(实际可用512个字节,还有2个字节是磁盘分割符‘\n’),使第一块(0#)盘块做为超级块,记录该系统磁盘的使用情况;第二块(1#)盘块——第十三块(12#)盘块作为存储I 结点使用,每个I结点74个字节,所以每个盘块可以存放6个I结点,总共有72个I结点,记录在超级块中;十三块(12#)以后的盘块作为存储文件内容使用,总共187个盘块,用成组连接法记录在超级块中。

unix实验报告

unix实验报告

unix实验报告《Unix实验报告》摘要:本实验报告旨在介绍Unix操作系统的基本概念、特点和使用方法。

通过实际操作和案例分析,展示了Unix操作系统的强大功能和灵活性,以及其在计算机科学和工程领域的重要性。

1. 引言Unix操作系统是一种多用户、多任务的操作系统,具有稳定性高、安全性强、灵活性大等特点。

它被广泛应用于服务器、工作站和个人电脑等领域,为用户提供了丰富的命令行工具和强大的脚本编程环境。

2. Unix操作系统的基本概念Unix操作系统的基本概念包括文件系统、进程管理、用户管理、权限控制等。

文件系统是Unix操作系统的核心,它采用树状结构组织文件和目录,并提供了丰富的文件操作命令。

进程管理是Unix操作系统的另一个重要特点,它允许多个进程同时运行,并提供了进程控制、调度和通信的功能。

用户管理和权限控制则是Unix操作系统的安全保障,它允许管理员对用户和文件进行灵活的管理和权限设置。

3. Unix操作系统的特点Unix操作系统具有很多特点,如多用户、多任务、多线程、分时共享、高性能等。

它采用了模块化设计和分层结构,使得系统更加稳定和可靠。

此外,Unix 操作系统还提供了丰富的命令行工具和编程环境,为用户提供了强大的自定义和扩展能力。

4. Unix操作系统的使用方法Unix操作系统的使用方法主要包括命令行操作、脚本编程、系统管理等。

通过实际操作和案例分析,我们可以了解到如何使用Unix操作系统进行文件操作、进程管理、用户管理、权限控制等。

同时,我们还可以学习到如何使用Shell脚本进行自动化任务的编写和执行,以及如何进行系统管理和性能调优。

5. 结论Unix操作系统是一种强大而灵活的操作系统,它为用户提供了丰富的命令行工具和编程环境,同时具有稳定性高、安全性强、灵活性大等特点。

通过实际操作和案例分析,我们可以更加深入地了解Unix操作系统的基本概念、特点和使用方法,从而更好地应用它来解决实际问题。

《unix操作系统》课程实验指导书

《unix操作系统》课程实验指导书

《unix操作系统》课程实验指导书实验一掌握unix基本命令、shell基本知识目的:(1)掌握UNIX基本命令(文件、目录、进程、网络、管理)(2)掌握UNIX基本命令的简单组合(输入输出换向,管道)要求:(1)了解Unix(Linux)安装、环境配置。

(2)了解Unix(Linux)远程登录方式。

了解这种工作方式与单机情况下的差异。

(3)文件、目录、进程、网络、管理方面各列举4条以上的命令,如:文件:cat ls copy link 。

清楚其功能、主要参数。

(4)了解输入、输出换向、管道的使用。

每种方式列举2条以上示例。

内容:(1)阅读用户环境配置文件(2)运行文件、目录、进程、网络、管理方面命令(基本的不少于20条)(3)运行输入、输出换向、管道的命令。

(4)如何运用man 命令实验二 SHELL程序设计目的:(1)掌握shell基本语法、shell程序特点。

了解shell程序与作业控制的关系。

(2)掌握shell程序运行方法。

(3)掌握编写shell程序的基本技能。

要求:(1)学会vi 编辑程序的使用。

(2)完成要求shell程序编辑、调试、运行。

内容:(1)编写shell程序,计算当前目录下文件数目和子目录数目(2)编写shell程序,显示当前目录下及子目录下的C程序文件名(3)编写shell程序,显示当前时间,如时间在11点到12点,检查当前目录下是否出现文件wellcome.txt。

如出现,显示OK!,否则,显示NO!。

实验三进程控制与通讯目的:(1)掌握进程控制的基本系统调用(fork,wait,kill,sleep等)(2)掌握signal函数、管道、管道文件的原理与使用。

要求:(1)掌握进程控制原理;(2)掌握进程通讯原理;内容:(3选2)(1)编写一个时钟C程序,后台运行,显示时间,3分后它启动另一时钟程序,它们同时运行,但是时间差为3。

(2)编写一个signal函数C程序,当程序运行十,如ctrl-c,程序显示ctrl-c的次数。

中国矿业大学unix实验

中国矿业大学unix实验

《UNIX》实验指导实验一、Linux基本命令1.实验目的掌握linux平台下的基本命令(40个)2.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。

在Linux下,当你要查找一个命令的用法的,你可以通过 man 命令名来源得命令的详细说明。

因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。

如果想查看命令的详细说明,请自己看man。

下面是man各小节的内容:1用户命令。

2系统调用。

3库函数。

4特殊文件(设备和网络接口)。

5文件格式。

6游戏和演示。

7系统环境、表格和宏。

8系统管理和相关命令。

3.命令说明略4. 补充说明本次实验很难完成所有命令的操作,建议参考《Linux命令大全(修改版)》,掌握linux 平台下的所有命令。

5.实验结果以下是一些命令的演示截图6. 实验体会通过本次实验,我对linux的命令有了一定的了解,为接下来的shell编程实验打下了一定的基础。

实验二、shell编程1.实验目的熟练掌握Shell Script编程,加深对linux系统的理解2.实验要求1.知道如何执行shell程序2.在shell脚本中要体现条件控制(如if结构和条件分支)3.在shell脚本中要体现循环(for,while和until循环)4.掌握shell程序的调试3.Shell脚本举例1)赶走一些你不希望进入的用户2)一个简单的目录菜单3)函数调用4)Shell脚本的感染5)列出当前目录下的文件数目6)列出当前目录下的C语言文件4. 实验结果1234565. 实验体会通过本次实验,我对Linux系统下的shell编程有了一定的了解和掌握。

实验三、进程控制1. 实验目的了解与进程控制相关的各种系统调用,加深对进程的状态变迁与进程调度的理解。

2. 实验要求1.掌握进程的创建fork系统调用的原理。

2.掌握exec系统调用的原理。

3.掌握exit系统调用的原理。

Unix实验报告

Unix实验报告

Unix实验报告计算机科学与技术系实验报告专业名称网络工程课程名称《网络操作系统》项目名称UNIX的Shell班级学号姓名同组人员无实验日期2016.6实验5 UNIX的Shell一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。

)掌握UNIX B-shell的主要功能和shell脚本的编写、运行。

二、实验内容(请根据电子版实验指导书撰写如下内容:实验环境、实验子项目名称、实验步骤、实验运行结果)1、验证UNIX B-shell的主要功能2、编写一shell脚本并赋执行权限运行【实验步骤】1、验证shell的主要功能例1:$ ls -l >file1把ls命令的输出放到文件file1中,屏幕上不产生任何输出。

如果文件不存在则shell 建立它;否则文件的最初内容被来自ls的输出所替代(即覆盖原有数据)。

可以使用下面的记号把输出添加到一个文件原有内容的后面(称追加)$ ls -l >>file1在这种情况下如果file1 不存在则也建立它。

例2:将标准错误输出重定向到指定文件。

$ ls -l jin 2 >errfile由于名为jin的文件不存在,原来在屏幕上看到的错误信息重定向到errfile文件中;标准错误输出可重定向到指定文件中;其形式可用program 2>filename 。

2、编写一shell脚本,并赋执行权限运行:(1)$ vi aaa.sh // 输入可执行的内容,保存退出(2)$ chmod a +x aaa.sh // 赋可执行权限(3)$ aaa.sh // 运行三、实验分析与小结(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)总结分析:1、shell是用户与作业系统之间的交互层,用户修改其环境,设置或取消shell的环境变量,shell的主要任务是:提示用户打入指令,读指令,转换指令为核心所能理解的语言。

操作系统实验报告(进程间的共享存贮区和信号量通信)

操作系统实验报告(进程间的共享存贮区和信号量通信)

case -1:perror("fork()");exit(0);case 0:do_child_loop(sem_set_id,FILE_NAME);exit(0);default:break;}}for(i = 0;i<10;i++){int child_status;wait(&child_status);}printf("main is done");fflush(stdout);return 0;}运行结果:二、共享主存段机制共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓存机制那样需要系统提供缓存,也不像pipe机制那样需要事先建立一个特殊文件,而是有通信双方直接访问某些共享虚拟存储器空间。

在系统V中,系统管理一组共享主存段控制块。

通信进程在使用共享主存段以前,首先提出申请,系统为止分配存储空间并返回共享主存段标识号。

一个共享段建立后,进程把它被附加到自己的虚拟存储空间中。

一个进程可以附加多个共享主存段。

一个主存段一旦被附加到进程的虚拟机空间后,对它的访问以其他虚拟机的访问完全相同。

但为了保证共享主存段数据完整性,通信的进程之间要互斥的进行访问。

当通信进程不再需要该共享主存段时,可使用命令将其与进程分离,从而使其进程的虚空间删除。

为了理解进程通过共享主存段的通信过程,下面举例,一个是进程向共享段写信息的例子:一个是进行从共享段读信息的例子。

代码如下:四、实验过程与分析一、信号量机制在第一个例子的程序中创建了5个并发子进程,互斥地对文件进行写操作,将自己的进程号写到文件中去,信号量的初值为1,当地一个进程执行update_file函数时首先将信号量值-1,(相当于P操作)致使其它进程等待无法操作文件,直到其结束后,将其值变为1后(相当于V操作),其它进程并发竞争对文件的写操作,并将自己的pid 写入文件中。

在linux中信号量机制的执行既步骤如下所示:(1)信号量的定义:struct semaphore {spinlock_t lock;unsigned int count;struct list_head wait_list;};在linux中,信号量用上述结构体表示,我们可以通过该结构体定义一个信号量。

unix 实验报告

unix 实验报告

unix 实验报告UNIX 实验报告一、引言UNIX 是一种操作系统,广泛应用于计算机科学领域。

本实验报告旨在介绍UNIX 操作系统的基本概念、特点和使用方法,并通过实验验证其功能和性能。

二、UNIX 操作系统的基本概念1. UNIX 的起源UNIX 是由贝尔实验室的 Ken Thompson 和 Dennis Ritchie 在 1969 年开发的操作系统。

它最初是为了支持多用户、多任务和分时操作而设计的。

2. UNIX 的特点UNIX 具有以下几个特点:- 可移植性:UNIX 可以在不同的硬件平台上运行,使得软件开发更加灵活。

- 多用户和多任务:UNIX 支持多用户同时使用,并且可以同时运行多个程序。

- 分时操作:UNIX 采用分时操作方式,使得多个用户可以共享计算机资源。

- 强大的命令行界面:UNIX 提供了丰富的命令行工具,使用户可以通过命令完成各种操作。

3. UNIX 的文件系统UNIX 使用层次化的文件系统来组织文件和目录。

文件系统的根目录为 "/",所有的文件和目录都从根目录开始构建。

UNIX 的文件系统采用了一种统一的文件访问方式,用户可以通过文件路径来访问文件。

三、UNIX 操作系统的使用方法1. 登录和注销用户可以通过用户名和密码登录到 UNIX 操作系统。

登录后,可以执行各种命令和操作。

注销时,用户可以使用 "logout" 命令退出系统。

2. 文件和目录操作UNIX 提供了一系列命令来管理文件和目录,如:- "ls" 命令用于列出当前目录下的文件和目录;- "cd" 命令用于切换当前目录;- "mkdir" 命令用于创建新的目录;- "rm" 命令用于删除文件或目录。

3. 进程管理UNIX 允许同时运行多个进程,并提供了一些命令来管理进程,如:- "ps" 命令用于查看当前正在运行的进程;- "kill" 命令用于终止指定的进程。

unix实验报告

unix实验报告

unix实验报告Unix实验报告引言Unix操作系统是一种广泛应用于计算机领域的操作系统,具有稳定性、可靠性和灵活性等优势。

本实验旨在探索Unix操作系统的基本特性和功能,以及如何在Unix环境下进行常见的操作和任务。

一、Unix操作系统的概述Unix操作系统诞生于20世纪70年代,由贝尔实验室的Ken Thompson和Dennis Ritchie等人开发。

它采用了分时操作系统的设计理念,支持多用户、多任务和多进程的运行环境。

Unix操作系统以其开放源代码和良好的可移植性,成为了众多计算机系统的首选操作系统。

二、Unix系统的基本命令和操作在Unix系统中,用户可以通过命令行界面或图形界面来操作系统。

本节将介绍一些常见的Unix命令和操作。

1. 文件和目录管理Unix系统以文件和目录的形式来组织和管理数据。

用户可以使用命令如ls、cd、mkdir等来查看、切换目录以及创建新的目录。

2. 文件编辑和查看Unix系统提供了强大的文本编辑工具,如vi和nano。

用户可以使用这些工具来编辑和查看文本文件,进行代码编写和修改。

3. 进程管理Unix系统支持多进程的运行环境,用户可以使用命令如ps、kill等来查看和管理系统中的进程。

这些命令可以帮助用户了解系统的运行情况,并进行必要的进程控制和管理。

4. 网络和通信Unix系统具有强大的网络和通信功能。

用户可以使用命令如ping、ssh等来测试网络连接和进行远程登录。

此外,Unix系统还支持各种网络协议和服务,如FTP、HTTP等。

三、Unix环境下的编程和开发Unix操作系统以其开放的设计理念,成为了许多程序员和开发者的首选平台。

本节将介绍Unix环境下的编程和开发工具。

1. C语言开发Unix操作系统的内核和许多系统工具都是使用C语言编写的。

因此,C语言成为了Unix环境下最常用的编程语言之一。

开发者可以使用Unix系统提供的gcc 编译器来编译和调试C语言程序。

电子科技大学14秋《unix操作系统》在线作业3答案

电子科技大学14秋《unix操作系统》在线作业3答案
D. /mnt
?
正确答案:B
13. UNIX标准是()。
A. Bourne shell
B. SVID、POSIX
C. TC shell、C shell
D. Korn shell
?
正确答案:B
14.在UNIX下当你完成任务,想要退出系统时,可在提示符后面输入()之后,按下Enter键
A. shell
B. logout
D. q、q!、tab、h、j、k、l、b
?
正确答案:C
17.在vi命令方式下要删除光标所在的一整行内容,所用的操作命令是()。
A. a
B. dd#del
C. U?Biblioteka 正确答案:B二,判断题
1.使用passwd改变用户的口令,任何用户都需要输入原来的密码。
A.错误
B.正确
?
正确答案:B
2.使用who命令可以列出该计算机上所有的用户名。
B.版本标识号
C.用户标识号
D.用户组标号
?
正确答案:D
11.在UNIX下,用来格式化软盘的命令是()。
A. format
B. fdformat
C. fddformat
D. fformat
?
正确答案:B
12.在UNIX下,存放系统配置文件及其管理相关的目录是()。
A. /proc
B. /etc
C. /sbin
B. Netware
C. DOS和Windows
D. os/2
?
正确答案:A
3.在UNIX下只有一个小圆点的文件是()。
A.可执行文件
B.子目录
C.隐藏文件
D.当前目录
?

unix操作系统实验汇总

unix操作系统实验汇总

实验1 进程控制一、实验目的1.加深对进程概念的理解,明确进程和程序的区别;2.进一步理解并发的概念,明确并发与并行的异同;3.分析进程竞争资源现象,学习解决进程互斥的方法;4.了解Linux系统中进程通信的基本原理。

二、实验内容1.进程的创建:编写一段源程序,使用系统调用fork()创建一个子进程,当此程序运行时,在系统中有一个父进程和一个子进程活动。

让每一个进程在屏幕上显示一个字符串:父进程显示字符“I am the parent”并显示其进程id和子进程的id;子进程显示字符串“I am the child”,并显示其进程id。

2.进程的控制,进程并发如图所示。

设有七个进程,其执行次序如图所示。

在Linux下使用C语言利用系统调用命令fork()、execl()、exit()、wait()描述,调用execl()函数的时候,模拟调用/bin/echo下的echo命令,向控制台输出一句可鉴别是哪个进程的字符串即可。

三、实验代码四、遇到问题及解决办法参考代码:实验2 进程同步与死锁一、实验目的1.理解进程同步的原理和机制;2.通过读者----写者问题的设计与实现进一步掌握进程同步在实际中的应用;3.理解死锁的产生原因,掌握预防和避免死锁的方法,以及死锁的检测方法;4.通过车辆行驶死锁问题的设计与实现掌握解决死锁的方法。

二、实验内容1.编写读者----写者问题的程序,要求如下:(1)在Linux下用C编程,利用信号量操作实现进程同步;(2)读写请求随机产生(比如敲击键盘上的r和w),并动态显示当前的状态(读的时候有多少读者,有多少个写者在等待;写的时候是谁在写,还有多少写者和读者在等待),每个读者和写者用的时间可以预先设定。

本例中,有一个初始化的数组,读者和写者均是对此数组进行操作。

写者是随机对数组中的数字进行修改,修改的值也是随机的,这样更直观、更有助于理解。

2.车辆行驶死锁问题,在Linux下用C语言完成下面模型:设有一个T型路口,其中A、B、C、D处各可容纳一辆车,车行方向如图所示,试找出死锁并用有序分配法消除之。

unix操作系统实验汇总2

unix操作系统实验汇总2

unix操作系统实验汇总2
实验3 进程通信
一、实验目的
1.了解管道的基本概念;
2.掌握Linux支持的管道通信方式。

3.理解Socket通信的基本概念和工作原理;
4.掌握Socket的建立、监听、连接、发送和接收数据的方法;
5.在Linux下使用C语言设计和实现基于Socket通信的程序。

二、实验内容
1.利用管道通信机制,实现输入字符串的自动分流操作。

一共涉及3个管道,4个进程:
(1)P1:从键盘接收输入字符串,写入管道Pipe1;
(2)P2:从Pipe1接收字符串,若字符串的长度为偶数,则将其写入管道Pipe2,否则将其写入管道Pipe3;
(3)P3:从Pipe2读出字符串,并显示“Pipe2:Even length string: 偶长度字符串”;
(4)P4:从Pipe3读出字符串,并显示“Pipe3:Odd length string: 奇长度字符串”;
(5)输入exit 程序退出。

2.在同一台机器上建立一个服务器端Server,一个客户端Client
(1)建立Server 与Client的连接;
(2)Server提供一个计算功能,即进行四则运算(除号用/代替);
(3)Client从键盘接收运算格式串,串的格式为:操作符(+-*÷)之一,操作数1,操作数2(7.例如发送字符串:*,3,5 表示要Sever 计算 3 * 5);
(4)Server接收命令串,解析并计算之,结果以字符串形式返回给Client,Client 显示结果;
(5)输入q结束Client,Client结束前断开与Server的连接。

三、实验代码
四、遇到问题及解决办法。

实验一、UNIX操作系统及常用命令

实验一、UNIX操作系统及常用命令

实验一、UNIX操作系统及常用命令一、实验目的:1、掌握UNIX系统的结构。

2、掌握工具层中相关命令的使用。

3、观察输入命令后相对应的结果显示。

4、掌握工具层中相关命令的使用。

二、实验仪器:SUN工作站、UNIX操作系统。

三、实验原理:1、UNIX操作系统的历史从总体来看,Unix的发展可以分为三个阶段:第一阶段为Unix的初始发展阶段,从1969年KeThompson在AT&T贝尔实验室创造了Unix操作系统,刚开始运行在一台DECPDP-7计算机上,只在实验室内部使用并完善它,这个阶段Unix从版本1发展到了版本6。

此时的Unix用汇编语言写成,因此在1970将Unix 移植到PDP-11/20上的时候花费了大量工作。

此阶段中最重要的事件为Unix的作者使用C 语言对Unix的源代码重新改写,使Unix非常具有可移植性。

第二阶段为80年代,这是Unix的丰富发展时期,在Unix发展到了版本6之后,一方面AT&T继续发展内部使用的Unix版本7 ,另一方面推出了一个对外发行的版本,但改用System加罗马字母作版本号来称呼它。

System III和System V是相当重要的Unix版本。

此外,其他厂商,以及科研机构都纷纷改进Unix,其中以加州大学伯克利分校的BSD版本最为著名,从4.2BSD中也派生出了多种商业Unix版本比如Solaris、HP-UX、IRIX 、AIX、SCO等等。

Sun是最早的工作站厂商,一直在Unix工作站领域不断发展。

其操作系统SunOS 是基于4.2BSD开发的,直到SunOS 4。

但在此之后,Sun将操作系统的开发工作转向了System V,这个新版本为Solaris 2,或者称为SunOS 5,因此也可将SunOS 4称为Solaris 1.0,但是SunOS 4与Solaris 2分属两个流派,其中的差别比较大。

从Solaris 2.6之后,Solaris 2.7的版本号直接变成了Solaris 7.0,目前我们使用的版本是Solaris 10.0。

操作系统实验

操作系统实验

操作系统实验报告(一)Linux基本操作与编程(验证性 2学时)1、实验目(de):1)熟悉Linux操作系统(de)环境和使用.2)了解LINUX系统(de)安装过程.(注:表示可选择)3)掌握Linux环境下(de)命令操作.2、实验内容:(1)完成LINUX系统(de)登录,启动终端.进行下列操作并记录结果(要求:结果以屏幕截图表示).1)运行pwd命令,确定你当前(de)工作目录.2)利用以下命令显示当前工作目录(de)内容: ls –l3)运行以下命令: ls –al4)使用mkdir命令建立一个子目录subdir.5)使用cd命令,将工作目录改到根目录(/)上.6)使用ls-l命令列出/dev(de)内容.7)使用不带参数(de)命令cd改变目录,然后用pwd命令确定你当前(de)工作目录是哪里8)使用命令cd ../..,你将工作目录移到什么地方(2)在LINUX下查看你(de)文件.1)利用cd命令,将工作目录改到你(de)主目录上.2)将工作目录改到你(de)子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中.3)使用cat命令查看file1文件(de)内容.4)利用man命令显示date命令(de)用法: man date5)将date命令(de)用法附加到文件file1(de)后面:man date >> file16)利用cat命令显示文件file1(de)内容.7)利用ls -l file1命令列出文件file1(de)较详细(de)信息.运行ls -l/bin 命令显示目录(de)内容.8)利用ls -l/bin|more命令行分屏显示/bin目录(de)内容.9)利用cp file1 fa命令生成文件file1(de)副本.然后利用ls -l命令查看工作目录(de)内容.10)用cd命令返回你(de)主目录,输入命令ls –l后,解释屏幕显示(de)第一列内容(de)含义.(3)编写能输出“Hello world”问候语(de)C程序,并在终端中编译、执行.要求记录所使用(de)命令及结果.操作步骤:1)在文本编辑器中,编写C程序如下:include ""main(){ printf("hello"); }2) 在终端中,用gcc命令进行编译,生成可执行文件a.gcc –o a3) 在终端中执行a (de)命令如下:./a(4)编写一个程序:显示信息“Time for Play”,并能在后台运行一段时间(自定义)后,弹出信息提醒用户.要求记录所使用(de)命令及结果.(提示:使用sleep(s)函数)3、实验结果分析:(对上述实验内容中(de)各题结果,进行分析讨论.并回答下列问题)(1)进程包括哪些特征间断性, 失去封闭性, 不可再现性, 动态性, 并发性, 独立性(2)在Linux中,如何设置前、后台命令和程序(de)执行命令后直接加 & ,这个命令就在后台执行;正在运行(de)命令,使用Ctrl+z ,就挂起; jobs命令,可以现实后台,包括挂起(de)命令;使用 bg %作业号就可以把挂起(de)命令在后台执行;使用 fg %作业号就可以把后台命令调到前台(3)你所使用(de)Linux系统(de)内核版本是多少用什么命令查看内核版本目前你所了解(de)各发行版本(de)情况如何Linux version (gcc version (Red Hat (GCC) ) 1 SMP Tue Jan 2911:48:01 EST 2013(4)你对Linux系统有什么认识linux是一款开放性(de)操作系统,也可以说成是开放(de)源代码系统,这些代码可以完全自由(de)修改可以再任何(de)计算机上去运行它,也就是“可移植性”,其次大家都知道,linux是由UNIX(de)概念所开发出来(de),所以它也继承了UNIX(de)稳定和效率(de)特点4、总结:你对本次实验有什么体会或看法.操作系统实验报告(二)文件访问权限设置与输入输出重定向(2学时)一、实验目(de)1、掌握linux(de)文件访问权限设置.2、熟悉输入输出重定向和管道操作.二、实验内容1、启动进入红帽linux系统2、设置文件权限:在用户主目录下创建目录test,进入test目录,用vi 创建文件file1,并输入任意(de)文字内容.用ls -l显示文件信息,注意文件(de)权限和所属用户和组.对文件file1设置权限,使其他用户可以对此文件进行写操作:chmod o+w file1.用ls -l查看设置结果.取消同组用户对此文件(de)读取权限:chmod g-r file1.查看设置结果.用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行(de)权限:chmod 755 file1.设置完成后查看设置结果.3、输入、输出重定向和管道(1) 输出重定向用ls命令显示当前目录中(de)文件列表:ls –l.使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中:ls –l > list.查看文件list中(de)内容,注意在列表中会多出一个文件list,其长度为0. 这说明shell是首先创建了一个空文件,然后再运行ls命令:cat list.再次使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中.这次使用追加符号>>进行重定向:ls –l >> list.查看文件list(de)内容,可以看到用>>进行重定向是把新(de)输出内容附加在文件(de)末尾,注意其中两行list文件(de)信息中文件大小(de)区别:cat list.重复命令ls –l > list.再次查看文件list中(de)内容,和前两次(de)结果相比较,注意list文件大小和创建时间(de)区别.(2) 管道who |grep root命令(de)结果是命令ls –l |wc –l结果是4、退出linux系统操作步骤:在主菜单上选择“注销” ->关闭计算机.三、实验结果与讨论(根据实验结果回答下列问题)1. 文件(de)权限如下:-rw-r—r-- 1 root root 19274 Jul 14 11:00回答:-rw-r—r-- (de)含义是什么答:是LINUX/FTP(de)简易权限表示法:对应于本用户-所在组-其他人(de)权限,每一个用执行(x)-读取(r)-写入(w)如本题若是说自己可以读取写入不可以执行,所在组和其他人只能读取.2、文件(de)所有者添加执行权限(de)命令是答:chmod u+x 、赋予所有用户读和写文件权限(de)命令是四、答:chmod a+w,a+r 个人体会(你对本次实验有什么体会或看法)操作系统实验报告(三)文件和目录管理一、实验目(de)1) 掌握在Linux系统下(de)文件和文件系统(de)概念及命令;2) 掌握Linux系统下(de)目录操作.二、实验内容1. 进入linux终端后,用命令(de)操作结果回答下列问题:1)vi(de)三种工作模式是其中不能进行直接转换(de)是什么模式到什么模式命令模式、文本输入模式、末行模式命令模式不能直接到末行模式2)在vi中退出时,保存并退出(de)操作步骤是Ese:wq3)用vi 创建myfile1文件,并在其中输入任意文字一行,创建myfile2文件,任意输入文字3行.请问执行命令:cat <myfile1 >myfile2 后,myfile2中还有几行内容该命令(de)作用是用命令操作验证你(de)回答.myfile2中还有1行内容该命令(de)作用是替换myfile(de)内容4)请用至少两种不同(de)命令创建一个文本文件(),在其中写入“我是2014级学生,我正在使用Linux系统.”,记录命令及执行结果.1、Vi创建2、5)用___pwd________命令可查看所创建文件(de)绝对路径,写出它(de)绝对路径__/root_________;用___ls -l________命令查看该文件(de)类型及访问权限,其访问权限(数字和字母)分别是多少__-rw- r- - r- - 6 4 4______________.6)若将该文件(de)访问权限修改为:所有者有读写权限;其他用户只读;同组用户可读写,请写出命令,并记录结果.7)查找my开头(de)所有文件,可___find my_________命令,写出命令并记录结果8)在/home下创建子目录user,并在其中创建2个文件,名为file1和file2,file1(de)内容是/root目录(de)详细信息;file2(de)内容任意,最后将这两个文件合并为file3文件,请先写出命令序列,并在终端中验证,记录结果.2. 文件及目录操作,写出操作所使用(de)命令,并记录结果.在终端中完成下列命令操作,并记录结果在root用户主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录.查看mydir和myfile(de)默认权限查看当前myfile和mydir(de)权限值是多少将myfile文件分别复制到root 和dd1(de)主目录中将root主目录中(de)myfile改为yourfile通过从键盘产生一个新文件并输入I am a student查找文件是否包含student字符串三、实验结果与分析,回答下列问题:1、能够创建文件(de)命令有哪些vi 和cat>name2、能够查看当前目录(de)绝对路径(de)命令是pwd3、Linux中按用户属性将用户分成哪些类型根据文件(de)访问权限,用户又被分成哪些类型能够查看文件访问权限(de)命令是用户同组其他可读可写可执行 cat f1四、小结(本次实验(de)体会或小结)操作系统实验报告(四)作业调度算法模拟(验证性2学时)1、实验目(de):1)掌握作业调度(de)主要功能及算法.2)通过模拟作业调度算法(de)设计加深对作业管理基本原理(de)理解.3)熟悉Linux环境下应用程序(de)编程方法.2、实验内容:(1)作业调度算法(FCFS)编程模拟:编制一段程序,对所输入(de)若干作业,输入、输出数据样例如下表所示.按FCFS算法模拟调度,观察、记录并分析调度(de)输出结果情况.输入输出样例1:FCFS算法include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void fcfs(){ int i,j,t=0,tw=0,tt=0;for(i=0;i<SIZE-1;i++)for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb){x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf("开始时间作业号到达时间运行时间完成时间等待时间周转时间\n");for(i=0;i<SIZE;i++){printf(" %d",t);t=t+job[i].tr;tw=t-job[i].tb-job[i].tr; b; o,job[i].tb,job[i].tr,t,tw,tt);}}void main(){load();fcfs();}(2)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法,分别用下面两组输入、输出数据样例进行模拟,观察分析运行结果.输入输出样例2:SJF算法输入输出A 0 4B 0 3C 0 5D 0 2E 0 1A 0 6 10 10B 0 3 6 6C 0 10 15 15D 0 1 3 3E 0 0 1 1include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void sjf()n=i; pl[i].pfn=ERR;}for(i=1;i<total;i++){ pfc[i-1].next=&pfc[i];pfc[i-1].pfn=i-1;}pfc[total-1].next=NULL;pfc[total-1].pfn=total-1;freepf_head=&pfc[0];}void FIFO(int total){ int i,j;pfc_type p,t;initialize(total);busypf_head=busypf_tail=NULL;for(i=0;i<page_len;i++){if(pl[page[i]].pfn==ERR){ diseffect+=1;if(freepf_head==NULL){p=busypf_head->next;pl[busypf_head->pn].pfn=ERR; freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;}p=freepf_head->next;freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head; else{ busypf_tail->next=freepf_head;busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%d",diseffect);}main(){ int i; int k;printf(“请输入页(de)引用序列:\n”); for(k=0;k<page_len;k++)scanf("%d",&page[k]);for(i=4;i<=7;i++){printf("%2d page frames ",i);FIFO(i);}参考程序LRU算法,略三、实验结果分析:(对上述实验各题所使用(de)原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析.)随着块数(de)增加,缺页数目也减少,4个实验中3个实验(de)块数增加到了5以后,即使块数再增加,缺页数目也是保持不变.只有实验4,块数增加到7以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。

Unix操作系统实验报告

Unix操作系统实验报告

Unix操作系统实验报告计算机科学与技术学院实验一、Linux基本命令一.实验目的掌握linux平台下的基本命令(40个)二.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。

在Linux下,当你要查找一个命令的用法的,你可以通过man 命令名来源得命令的详细说明。

因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。

如果想查看命令的详细说明,请自己看man。

下面是man各小节的内容:1 用户命令。

2 系统调用。

3 库函数。

4 特殊文件(设备和网络接口)。

5 文件格式。

6 游戏和演示。

7 系统环境、表格和宏。

8 系统管理和相关命令。

三.命令说明1.apropos 依据所给关键字查找相关的命令和系统调用格式:apropos keyword例:查找与ftp相关的命令和系统调用$apropos ftp注:类似的命令有man -k。

man -k 其实就是执行apropos2.at 在某一特定时间执行指定的命令格式:at [-V][-q 队列][-f 文件][-m] time选项说明:-V显示标准的错误输出。

-f可将作业存在一个文件中,用这个选项指定文件。

例如一个shell文件。

-q指定队列名称,默认为c。

-m执行后给用户发邮件。

time 指定开始执行的时间。

时间格式为: HH:MM,日期格式:MM/DD/YY或MM.DD.YY或MMDDYY。

下面的例子演示了在2004年3月11日21点34分执行一个at命令。

$at 21:34 03/11/04执行这条命令后会得到一条warning:commands will be executed using (in order) a)$SHELL b) login shellc)/bin/sh。

然后就出现“at>”的提示符。

这时你就可以输入你要执行的命令了,结束后按Ctrl+d。

你就可以去喝茶了,到时间后系统会自动执行它。

unix实验(操作系统)

unix实验(操作系统)

实验一:linux常用命令一、实验内容和要求1、使用自己的帐户登录linux系统查看系统提示符确定自己使用的shell程序类型。

2、修改个人口令后重新登录。

3、用who命令查看当前登录在系统中的用户列表、用户总数、系统启动时间等。

4、查看当前用户的标志符及当前进程的状态。

5、用cal命令查看自己的生日是星期几。

6、将Windows下的C盘链入linux 系统的根目录下。

7、将C盘上的一个文本传递到linux下的当前用户目录下,并进行浏览查看。

8、使用mail进行电子邮件的传递与查看。

9、在系统中与其他用户对话。

10、练习允许与拒绝其他用户向自己的终端上发送信息。

二、实验结果:请同学们自己写出1、用户使用的shell可查阅/etc/passwd文件确定。

2、修改口令的命令为:passwd<CR>3、who –h <CR>4、id <CR>5、cal –m 3 –y 1990 <CR>6、mkdir/dosc <CR>mount/dev/hda1/dosc <CR>7、cp /myexample.txt <CR>vim ./myexample.txt<CR>8、% mail zhangming<CR>subject:hello<CR>hi,my friend! How are you![ctrl+d]Cc:<CR>%查看信件只需要键入‖mail‖% mail<CR>9、% talk zhangming<CR> 用户屏幕将分成两半,其显示:请同学们自己写此时zhangming 回应:% talk wangyong@class<CR>则zhangming 的屏幕就会分成两半,双方开始对话。

10、% mesg y<CR>允许其他用户向自己发送信息。

UNIX系统程序设计实验指导

UNIX系统程序设计实验指导

实验一实现带参数的简单shell实验一利用课本第9页程序1-5的框架,实现允许输入命令带参数的简单shell。

原来的实现是不能够带参数的。

输入命令所能带的参数个数,只受到系统键盘输入缓冲区长度(以及shell输入缓冲区长度)的限制,该缓冲区的缺省长度是4096个字节。

实现时要解决的主要问题有:1.正确理解并使用系统调用fork(),execve()和waitpid(),特别是execve()函数。

fork()函数创建一个新的进程。

新进程就是所谓的子进程,它是执行fork()函数的进程(父进程)的“克隆”,也就是说,子进程执行的程序与父进程的完全一样。

当fork()函数返回值为0时表示处于子进程中;而返回值大于0时表示处于父进程中,此时的返回值是子进程的进程id。

因此,fork()的返回值可以用来划分仅仅适合父进程和子进程执行的程序段。

fork()函数返回值为-1时表示出错。

如果子进程只是运行与父进程完全一样的程序,那用处是很有限的。

要让子进程运行不同于父进程的程序,就必须调用execve函数,它是所有其他exec函数的基础。

execve函数把调用它的进程的程序,替换成execve函数的参数所指定的程序。

运行execve函数成功后,进程将开始运行新的程序,也就是execve函数的参数所指定的程序。

execve函数原型:int execve(const char *path, const char *argv[],const char *envp[]); 其中:path:要执行的程序路径名,比如“/bin/ls”,“cd”,“/usr/bin/gcc”等等。

argv:参数表,比如ls命令中可带的命令行参数-l,-a等。

注意,argv的第一个元素必须是要执行的程序(命令)的路径名。

envp:环境变量表,供要执行的命令使用。

实参数用NULL或系统环境变量environ 均可。

注意,因为environ由系统提供,属于外部变量,所以说明时必须用“extern”修饰。

UNIX系统实验指导书

UNIX系统实验指导书

实验1 UNIX基本操作1、实验目的掌握 UNIX (LINUX)系统的基本使用方法:系统启动、注销、关闭和关机;帐号管理;文件系统的日常管理;文件系统的权限控制。

2、实验工具及环境UNIX(LINUX)系统网络环境或单机。

3、实验计划学时2学时上机实际操作。

4、实验内容及操作步骤⑴系统启动和关闭① 使用自己的账户登录UNIX系统,查看系统提示符确定自己使用的shell程序类型别。

◎开机后,系统自检启动后提示login:(输入:root ↙)password:(输入:用户口令↙ ,root用户为redhat )◎ 查看/etc/passwd文件可以获得用户使用的shell# grep $LOGNAME /etc/passwd ↙可能的显示为: user001:*:200:50::/usr/user001:/bin/sh请思考上述命令怎样得到了当前使用的shell类型的?使用下面的命令也可以查看当前shell:# echo $SHELL② 注销和关机命令。

◎ 用户注销使用:$exit ↙或$<ctrl>+<D> ↙或$logout ↙◎ 超级用户关机使用:#shutdown ↙该命令将结束所有的进程,当执行此命令后系统提示“ Safe to Power off or Press Any Key to Reboot ”时可以关闭电源或按任一键重启系统。

◎haltsys(halt),reboot只能由超级用户在单用户模式下使用。

⑵帐号管理① 添加用户,删除用户,修改个人口令后重新进行登录;◎ 添加用户的shell命令:# useradd user08 ↙(Linux系统中可以为 adduser)上述命令采用默认属性, UNIX 也可以使用选项来指定创建帐户的属性:- c comment 用户说明- d directory 指定用户主目录- m 若用户的起始目录不存在则创建- g group 指定用户所属组- s shell 指定用户使用的shell- u uid 为用户分配标识◎ 修改口令对linux系统而言,用adduser增加的用户应该随即用passwd命令来修改口令。

unix实验指导

unix实验指导

《UNIX操作系统》实验教程目录实验一Unix操作系统使用 (2)实验目的 (2)实验时间 (2)实验内容 (2)实验二文件系统观察 (5)实验目的 (5)实验时间 (5)实验要求 (5)实验三认识进程 (7)实验目的 (7)实验时间 (7)实验要求 (7)实验四vi编辑器 (9)实验目的 (9)实验时间 (9)实验要求 (9)实验五Unix下shell语言编程 (10)实验目的 (10)实验时间 (10)实验内容 (10)注意事项1.实验报告作为《UNIX操作系统》课程的主要考核部分。

2.实验步骤部分务必认真填写,每个实验必须有以下部分(见示例):a)完成实验要求的工作,需列出执行命令和执行结果;b)对执行结果的详细分析和解释;c)错误以及错误原因;d)文档格式清晰3.实验报告要认真填写:严禁基本雷同严禁格式混乱严禁网上抄袭严禁点名不到实验一Unix操作系统使用实验目的1.熟练使用Unix字符界面的常用命令2.熟练使用Unix文件系统命令3.熟练使用Unix的在线求助系统实验时间4学时实验内容可选择“系统工具/终端”进入shell:键入 exit或按 [Ctrl]-[D]即可退出 shell。

(一)常用UNIX命令1.查看当前登陆在系统中的用户列表2.查看的who帮助,学习如何使用who查看系统中的用户总数和系统启动时间3.使用简单的密码(如用户名、123456等)修改密码4.使用满足UNIX要求的密码修改密码5.重启并使用新密码登录6.查看当前的日期和时间7.查看自己的生日是星期几8.查看2001年的日历表9.使用less命令查看系统初始化配置(less /etc/inittab),可以使用下列快捷键控制∙空白键:向下翻页∙[pagedown]:向下翻页∙[pageup]:向上翻页∙/字串:向下搜索∙?字串:向上搜索∙n :重复前一个搜寻(与/ 或? 有关)∙N :反向重复前一个搜寻(与/ 或? 有关)∙q:退出10.查看主机名11.查看系统启动以来已运行时间12.查看系统版本(二)UNIX文件系统命令1.在用户主目录内新建一目录,该目录须以你的学号目录名(后面假设目录名为123)2.显示当前目录3.改变到用户主目录4.列出当前目录的文件,分别a)查看文件的权限b)显示隐藏文件c)结果按修改时间排序d)结果按修改时间逆序排序5.改变到123目录下,创建名为你姓名的新文件(提示,创建文件可以使用命令:touch文件名,后面假设该文件名为file)6.删除file7.删除123目录8.在主目录重新创建名为你姓名的新文件,以需要确认的方式删除该文件(三)UNIX文件系统命令1.在用户主目录下创建名为你的学号的目录(后面假设目录名为123)2.将123目录重命名为你的名字(后面假设该目录名为dir)3.把用户主目录下的所有文件复制到dir目录下4.创建名为你姓名的新文件(后面假设该文件名为file)5.分别使用数字和符号两种方式将file的权限更改为-rw-r—r--6.创建file的硬链接7.将file更名为large.old8.将file移到dir下9.执行以下命令,并用ls命令及其-i和-l选项观察i节点数和链接数的变化:a)改变的dir目录下b)创建file文件的别名,成为姓名+你的学号(后面设为file123)c)列出所有以file开头的文件d)复制file为file.olde)列出所有以file开头的文件f)列出所有扩展名为old的文件g)使用命令touch file更改file状态,同时观察file123文件的状态变化h)回到用户主目录i)删除dir目录下的所有文件名含有file字符串的文件j)删除dir目录下的文件k)列出用户主目录文件10.保存用户主目录中所有7天前创建的文件列表11.查找名为passwd的文件12.查找名为profile的文件13.查找所有多于10天的文件实验二文件系统观察实验目的1.进一步掌握文件系统的基本概念2.学习对文件和文件系统的观察和操作实验时间2学时实验要求1.分别以root和普通用户身份登录并进入各自的主目录,分别报告当前路径。

操作系统设备管理练习及答案

操作系统设备管理练习及答案

操作系统设备管理练习及答案一、选择题1、在设备管理中,下列哪一项功能不是基本的设备管理功能?A.设备驱动程序B.设备分配C.缓冲区管理D.文件系统操作答案:D解释:设备管理主要负责物理设备的抽象表示和处理。

其中,设备驱动程序(A对)用于与物理设备进行通信;设备分配(B对)用于将设备分配给进程使用;缓冲区管理(C对)用于协调设备和内存之间的数据传输。

而文件系统操作(D错)属于文件系统的功能,不属于设备管理的范畴。

2、在Unix系统中,下列哪个命令用于显示系统中已经安装的设备驱动程序?A. lsdevB. lspciC. lsblkD. lshw答案:A解释:在Unix系统中,lsdev命令用于显示系统中已经安装的设备驱动程序。

lspci命令用于显示PCI设备的详细信息;lsblk命令用于显示块设备的信息;lshw命令用于显示硬件配置信息。

3、在设备管理中,下列哪种技术可以用于平衡设备和CPU的负载?A.轮转调度算法B.优先级调度算法C.多线程技术D.缓冲技术答案:C解释:多线程技术可以创建多个线程来处理不同的任务,从而平衡设备和CPU的负载。

轮转调度算法(A错)和优先级调度算法(B错)主要用于操作系统中的进程调度;缓冲技术(D错)主要用于协调设备和内存之间的数据传输。

二、填空题1、在设备管理中,设备的即插即用指的是设备的自动识别和配置,它需要依靠____________机制来实现。

答案:驱动程序解释:设备的即插即用需要依靠驱动程序机制来实现,当设备插入系统时,系统会自动识别并配置该设备,使其能够正常工作。

2、在Unix系统中,____________命令用于显示系统中已经安装的块设备的信息。

答案:lsblk解释:在Unix系统中,lsblk命令用于显示系统中已经安装的块设备的信息。

该命令会列出系统中所有的块设备,包括硬盘、闪存驱动器、光盘驱动器等。

3、在设备管理中,____________是一种虚拟化技术,可以将一个物理设备抽象成多个逻辑设备,从而允许多个用户共享该物理设备。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验3 进程通信
一、实验目的
1.了解管道的基本概念;
2.掌握Linux支持的管道通信方式。

3.理解Socket通信的基本概念和工作原理;
4.掌握Socket的建立、监听、连接、发送和接收数据的方法;
5.在Linux下使用C语言设计和实现基于Socket通信的程序。

二、实验内容
1.利用管道通信机制,实现输入字符串的自动分流操作。

一共涉及3个管道,4个进程:
(1)P1:从键盘接收输入字符串,写入管道Pipe1;
(2)P2:从Pipe1接收字符串,若字符串的长度为偶数,则将其写入管道Pipe2,否则将其写入管道Pipe3;
(3)P3:从Pipe2读出字符串,并显示“Pipe2:Even length string: 偶长度字符串”;
(4)P4:从Pipe3读出字符串,并显示“Pipe3:Odd length string: 奇长度字符串”;
(5)输入exit 程序退出。

2.在同一台机器上建立一个服务器端Server,一个客户端Client
(1)建立Server 与Client的连接;
(2)Server提供一个计算功能,即进行四则运算(除号用/代替);
(3)Client从键盘接收运算格式串,串的格式为:操作符(+-*÷)之一,操作数1,操作数2(7.例如发送字符串:*,3,5 表示要Sever计算 3 * 5);
(4)Server接收命令串,解析并计算之,结果以字符串形式返回给Client,Client 显示结果;
(5)输入q结束Client,Client结束前断开与Server的连接。

三、实验代码
四、遇到问题及解决办法
参考代码。

相关文档
最新文档