操作系统linux版实验报告
linux操作系统实验报告
linux操作系统实验报告Linux操作系统实验报告一、引言在计算机科学领域,操作系统是一个非常重要的概念。
它是计算机硬件与应用软件之间的桥梁,负责管理计算机的资源和提供用户与计算机之间的交互界面。
Linux操作系统是一个开源的、免费的操作系统,广泛应用于服务器、个人电脑和嵌入式设备等领域。
本次实验报告将介绍Linux操作系统的基本概念、特点以及实验过程与结果。
二、Linux操作系统的概述Linux操作系统是一个基于Unix的操作系统,最初由芬兰的林纳斯·托瓦兹(Linus Torvalds)开发,并于1991年首次发布。
与其他操作系统相比,Linux具有以下几个显著特点:1. 开源性:Linux操作系统的源代码是公开的,任何人都可以查看、修改和分发。
这使得Linux操作系统具有高度的灵活性和可定制性。
2. 多用户多任务:Linux操作系统支持多用户同时登录,并且可以同时运行多个任务。
这使得Linux操作系统非常适合用于服务器环境。
3. 稳定性和安全性:Linux操作系统具有较高的稳定性和安全性。
它可以长时间运行而不会出现崩溃或死机,并且提供了强大的安全机制来保护用户的数据和系统。
三、实验过程与结果本次实验主要涉及Linux操作系统的安装和基本使用。
1. 安装Linux操作系统:首先,我们需要选择适合自己的Linux发行版,并将其安装到计算机上。
常见的Linux发行版包括Ubuntu、Debian、Fedora等。
在实验中,我们选择了Ubuntu作为实验平台。
2. 熟悉Linux命令行界面:Linux操作系统的主要交互界面是命令行界面。
在实验中,我们学习了一些基本的Linux命令,如cd(切换目录)、ls(列出目录内容)、mkdir(创建目录)等。
3. 文件管理与权限设置:在Linux操作系统中,文件和目录的管理非常重要。
我们学习了如何创建、复制、移动和删除文件和目录,并且了解了Linux操作系统中的权限设置机制。
linux操作系统实验报告
linux操作系统实验报告第一篇:linux操作系统实验报告Linux实验报告一一、实验步骤及内容1.虚拟机软件的安装(1)先准备虚拟机安装包。
(2)更改安装路径:“D: VMwareVMware Workstationvmware.exe”(3)输入序列号:ctrl+v,在安装过程中不能进行复制剪切操作。
(4)不能重新启动,才能继续安装汉化版D: vmwarevmware workstation2.新建一个虚拟机并进行配置(1)单击新建虚拟机虚拟机的类型选择:典型安装选择客户端操作系统:linux虚拟机的名字及位置根据需要网络类型选择:,桥接。
指定的磁盘容量删除软驱:双击floppy—remove虚拟内存设置:双击memory—1024MB设置linux的安装文件:选择安装镜像文件—指定第一个安装文件—就可以啦!之后会提示安装第二个安装文件就进行选择第二个中间鼠标切换用CTRL+ALT。
3.安装LINUX操作系统(1)要确定鼠标是否在虚拟机的激活状态下:敲回车不需要检测安装文件选择skip进入linux的安装前的配置选项:选择安装的语言—中文简体键盘:--默认鼠标:--默认安装类型:--workstation磁盘分区:--自动分区引导程序:默认网络配置:默认防火墙:无防火墙支持的语言:中文时区:亚洲-上海密码:root123456安装的软件包:全部。
二.在已有虚拟机软件的基础上安装LINUX的技巧。
(1)新建虚拟机—典型安装—linux ,red hat linux---给虚拟机命名,并且指定安装位置d:red hat linux---桥接---10G。
(2)在刚才建立的虚拟机上安装linux系统.(3)配置要安装的linux系统的安装文件iso镜像文件(4)选择配置好linux镜像文件刚才建立的虚拟机,启动虚拟机,开始安装。
三.实验总结充分了解linux系统的安装,学会新建虚拟机,在虚拟机上安装linux系统.和一些简单的技巧并对此门课程有了一定的兴趣。
linux实验报告
linux实验报告Linux 实验报告一、实验目的本次 Linux 实验的主要目的是熟悉 Linux 操作系统的基本命令和操作,了解其文件系统、进程管理、用户权限等核心概念,并通过实际操作加深对这些知识的理解和应用能力。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 安装的 Ubuntu 2004 LTS 操作系统。
三、实验内容及步骤(一)用户和权限管理1、使用`sudo adduser` 命令创建新用户`user1` 和`user2`。
2、使用`sudo passwd user1` 和`sudo passwd user2` 为新用户设置密码。
3、使用`sudo usermod aG sudo user1` 将`user1` 添加到`sudo` 组,使其具有管理员权限。
4、以`user1` 身份登录系统,创建一个文件`file1txt`,尝试修改其权限为 777,观察权限变化。
(二)文件和目录操作1、使用`mkdir` 命令创建目录`directory1` 和`directory2`。
2、使用`touch` 命令在当前目录下创建文件`file2txt` 和`file3txt`。
3、使用`cp` 命令将`file2txt` 复制到`directory1` 目录下。
4、使用`mv` 命令将`file3txt` 移动到`directory2` 目录下。
5、使用`rm` 命令删除`file2txt` 和`directory2` 目录及其下的所有文件。
(三)进程管理1、使用`ps` 命令查看当前系统中的进程信息。
2、使用`top` 命令实时监控系统的进程状态。
3、使用`kill` 命令结束指定进程(例如,通过进程 ID 结束一个占用大量资源的进程)。
(四)文件系统管理1、使用`df` 命令查看磁盘空间使用情况。
2、使用`du` 命令查看目录或文件的磁盘使用量。
3、使用`mount` 命令挂载一个新的磁盘分区(假设已经在虚拟机中添加了新的磁盘分区)。
linux实验报告总结-共10篇
∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。
2)掌握shell编程方法。
3)掌握dialog图形化编程方法。
二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。
要求记录所使用的命令及结果。
#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。
#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。
写出程序、命令和结果。
#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。
#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。
linux系统使用实验报告
linux系统使用实验报告Linux 系统使用实验报告一、实验目的本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。
二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端模拟器(Terminal)三、实验内容与步骤(一)系统登录与基本命令1、启动计算机,选择 Ubuntu 操作系统,输入用户名和密码登录系统。
2、打开终端模拟器,熟悉常用的基本命令,如`ls` (列出当前目录下的文件和文件夹)、`cd` (切换目录)、`mkdir` (创建新目录)、`rmdir` (删除空目录)等。
(二)文件管理1、在用户主目录下创建一个名为`experiment` 的文件夹,使用`mkdir experiment` 命令。
2、进入该文件夹,使用`cd experiment` 命令。
3、在`experiment` 文件夹中创建一个文本文件`filetxt` ,使用`touch filetxt` 命令。
4、使用`vi` 或`nano` 编辑器打开`filetxt` 文件,输入一些文本内容,并保存退出。
5、查看文件的内容,使用`cat filetxt` 命令。
6、复制文件,使用`cp filetxt file_copytxt` 命令。
7、移动文件,使用`mv filetxt/`命令将文件移动到上级目录。
8、删除文件,使用`rm file_copytxt` 命令。
(三)进程管理1、运行一个后台进程,例如`ping &`,然后使用`jobs` 命令查看后台进程。
2、将后台进程切换到前台,使用`fg %1` (其中%1 为后台进程的编号)命令。
3、终止进程,使用`Ctrl + C` 组合键终止正在运行的进程。
4、查看系统当前运行的进程,使用`ps aux` 命令。
(四)用户权限管理1、创建一个新用户,使用`sudo adduser username` 命令,其中`username` 为新用户的用户名。
linux操作系统实验报告
LINUX操作系统实验报告姓名班级学号指导教师2011 年05月16 日实验一在LINUX下获取帮助、Shell实用功能实验目的:1、掌握字符界面下关机及重启的命令。
2、掌握LINUX下获取帮助信息的命令:man、help。
3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替换与别名,管道及输入输出重定向。
实验内容:1、使用shutdown命令设定在30分钟之后关闭计算机。
2、使用命令“cat /etc/”设置为别名named,然后再取消别名。
3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。
4、使用管道方式分页显示/var目录下的内容。
5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。
实验步骤及结果:1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入命令Shutdown -h 302、使用命令alias将/etc/文件设置为别名named,左边是要设置的名称右边是要更改的文件。
查看目录下的内容,只要在终端输入命令即可。
取消更改的名称用命令unalias命令:在命令后输入要取消的名称,再输入名称。
3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。
步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。
4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。
“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。
5实验二文件和目录操作命令实验目的:1、掌握LINUX下文件和目录的操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、mv、rm等。
2、掌握LINUX下建立链接文件的方法。
实验内容:1、使用命令切换到/etc目录,并显示当前工作目录路径。
Linux操作系统实验报告
13.使用killall结束所有vi进程。
指导教师评语:
实验内容及实验记录:
1.使用ps命令监控后台进程的工作情况。
2.ps命令结合管道操作符和less(more)命令查看进程。
3.ps命令结合管道操作符和grep命令查看指定进程,如python或者vmtool。
4.使用top命令动态显示系统进程信息。
5.使用top命令检测指定进程状态信息,如python或者vmtool。
实验报告
课程名称:Linux操作系统
任课教师:
授课学期:
学生班级:
学生姓名:
实验题目:进程状态监测与控制
实验成绩:
指导教师:
实验室:
日期:
节数:2
实验目的:
1.熟悉Linux进程参数。
2.掌握ps命令和top命令的使用。
3.掌握调整优先级的方法。
4பைடு நூலகம்掌握向进程发送信号的方法。
实验仪器、物品:已安装好Ubuntu桌面操作系统。
6.执行vi &。
7.使用pidof命令查看进程vi的pid。
8.使用kill结束vi进程。
9.使用nice vi &启动进程,观察其niceness值。
10.使用nice vi &并添加合适的参数,使得该进程niceness值为负数。使用ps观察前述vi进程的pid和niceness。
11.使用renice分别调大和调小现有的vi进程的niceness值。
操作系统linux版实验报告
操作系统实验报告(Linux版)网络142 豹 142999实验一观察Linux进程状态一、实验目的在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Linux Ubuntu操作系统,gcc编译器。
(四)查看“不可中断阻塞”状态(D)创建一个C程序,如uninter_status.c,让其睡眠30s代码:#include<unistd.h>#include<stdio.h>int main(){int i=0,j=0,k=0;for(i=0;i<1000000;i++){for(j=0;j<1000000;j++){k++;k--;}}}实验结果:(二)查看“暂停”状态(T)运行run_status进程,其进入R状态:代码同上:(三)查看“可中断阻塞”状态(S)创建一个C程序,如interruptiblie_status.c,让其睡眠30s 编译,后台运行该程序(后接&符号),并使用ps命令查看运行状态代码:#include<unistd.h>#include<stdio.h>int main(){sleep(30);return;}实验结果:(四)查看“不可中断阻塞”状态(D)创建一个C程序,如uninter_status.c,让其睡眠30s编译,后台运行该程序(后接&),并使用ps命令查看运行状态代码:#include<unistd.h>#include<stdio.h>int main(){if(vfork()==0)sleep(300);return;}}实验结果:(五)查看“僵尸”进程(Z)创建一个C程序,如zombie_status.c,在其中创建一个子进程,并让子进程迅速结束,而父进程陷入阻塞编译,后台运行该程序(后接&),并使用ps命令查看运行状态(30s)代码:#include<unistd.h>#incldue<stdio.h>int main(){if(fork()){sleep(300);}}实验结果:实验二观察Linux进程/线程的异步并发执行一、实验目的通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程的异步执行。
linux操作系统实验报告书
linux操作系统实验报告书(1)一.实验名称:Linux基本命令的使用二.实验目的:1.进一步练习Linux登录和退出的方法2.练习与目录和文件操作相关的Linux命令:cd:切换目录mkdir:建立一个新目录cp:文件拷贝ls:显示目录及文件的内容mv:更改文件名称cat、more、less:浏览文件内容chmod:更改文件或目录的访问权限rm:删除文件rmdir:删除目录三.实验内容:1.登录进入Linux 系统。
2.将工作目录切换到根目录,用ls命令查看根目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。
3.在家目录下建立一个名为test的新目录,将工作目录切换到test下,然后将/tmp下的文件lesson.log拷贝到该目录下,并将lesson.log用mv命令改名为:TestRenName.txt。
4.用cat命令浏览文件TestRenName.txt的内容,用more命令进行浏览翻页操作。
再用less命令浏览文件TestRenName.txt的内容。
5.用ls命令查看test下的文件的权限,并更改文件TestRenName.txt的权限为:只允许自己读写,不允许其他用户访问。
用ls命令查看更改后的结果后再将文件TestRenName.txt的权限更改为系统默认的权限:-rw-r--r--。
6.用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。
7.用logout命令退出系统。
四.结果分析:五.实验心得*********************************************************************linux操作系统实验报告书(2)一.实验名称:Linux基本命令的使用二.实验目的:1. 掌握监视系统的几个Linux基本命令:PS--查看系统的进程tty--查看当前使用的终端df--查看系统的文件系统的空间使用情况du--查看具体某个文件和目录的磁盘空间的占用情况free--查看使用的内存资源的情况2. 掌握Linux下的联机帮助手册的使用3. 掌握Linux命令的简要帮助的获取方法4. 掌握一些其他常用的Linux命令:cal--显示日历date--显示系统的日期和时间clear--清屏find--查找文件uname--查看系统信息who--查看其他登录的用户which--查看命令的全路径tar--Linux下的压缩与解压缩命令三.实验内容:1.使用ps查看系统的进程运行情况,使用不同的命令选项并比较显示结果的差别;查看当前系统已安装的文件系统的空间使用情况;查看用户的家目录占用了多少空间;查看使用的内存资源的情况.2.查看ls命令的详细使用方法,查看ps命令的详细使用方法.3.获取ls命令的简要帮助信息,获取ps命令的简要帮助信息.4.用cal命令显示日历,用date命令显示系统的日期和时间,用clear清除屏幕,用find命令在系统中查找文件ch1.doc,用uname命令查看系统的信息,用who 命令查看其他登录的用户,用which命令查看一些命令的全路径,用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,将doc.tar.gz 复制到用户的家目录并展开压缩文件.四.结果分析:1. 要查看系统的进程运行情况可使用ps命令:[stu@cs-linux stu]$ psPID TTY TIME CMD4442 pts/0 00:00:00 bash11683 pts/0 00:00:00 ps第一列中的PID表示进程编号,第二列中的TTY表示提交该进程的终端号,第三列中的TIME表示该进程已运行的时间,第四列中的CMD表示该进程所对应的命令.如果要显示进程更详细的信息,可以使用参数ps u:[stu@cs-linux stu]$ ps uUSER PID %CPU %MEM VSZ RSSTTY STAT START TIME COMMAND501 4442 0.0 0.3 5560 784 pts/0 S 09:45 0:00 bash501 11684 0.0 0.2 2592 644 pts/0 R 10:16 0:00 ps -uUSER表示进程拥有者,%CPU表示CPU时间的占用比例,%MEM表示内存的占用比例,VSZ表示进程的大小,RSS表示常驻内存部分大小,START表示进程的启动时间.如果要用长格式显示系统进程的信息,可以使用参数ps l:[stu@cs-linux stu]$ ps lFS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME C MD4 S 501 4174 4173 0 75 0 - 1389 wait4 pts/0 00:00:00 bash0 R 501 4201 4174 0 80 0 - 776 - pts/0 00:00:00 ps要查看当前系统已安装的文件系统的空间使用情况,使用命令df:[stu@cs-linux stu]$ df文件系统1K-块已用可用已用% 挂载点/dev/hda7 9574520 2833764 6254392 32% /none 111472 0 111472 0% /dev/shm/dev/hda5 30701232 13538096 17163136 45% /mnt/hdd要查看用户的家目录占用了多少空间,先将工作目录切换到家目录,再使用命令du:[stu@cs-linux stu]$ du12 ./.kde/Autostart16 ./.kde8 ./.xemacs4 ./test64 .以上结果表示家目录公占用64KB的空间.要查看使用的内存资源的情况,应使用命令free:[stu@cs-linux stu]$ freetotal used free shared buffers cached Mem: 222948 216688 6260 0 17832 92792 -/+ buffers/cache: 106064 116884Swap: 514040 0 514040以上结果表示系统内存及交换空间使用情况.2. 查看ls命令的详细使用方法,使用命令man ls:[stu@cs-linux stu]$ man ls(.......显示内容省略)查看ps命令的详细使用方法,使用命令man ps:[stu@cs-linux stu]$ man ps(.......显示内容省略)3. 获取ls命令的简要帮助信息,可使用命令ls --help:[stu@cs-linux stu]$ ls --help(.......显示内容省略)获取ps命令的简要帮助信息,可使用命令ps --help:[stu@cs-linux stu]$ ps --help(.......显示内容省略)4. 要显示日历可使用命令cal:[stu@cs-linux stu]$ cal六月2004日一二三四五六1 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30以上用命令cal不加任何参数时显示当月日历,如果要指定查看某年某月的日历,可以加[月][年]参数,如要查看2004年8月:[stu@cs-linux stu]$ cal 08 2004八月2004日一二三四五六1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31要显示系统的日期和时间,可使用命令date:[stu@cs-linux stu]$ date五6月18 11:23:23 CST 2004表示当前时间为2004年6月18日星期五11:23:23.用clear命令清除屏幕,之后将把已前显示的结果清除:[stu@cs-linux stu]$ clear用find命令在系统中查找文件ch1.doc,应首先退出到根目录下,在使用命令find ch1.doc:[stu@cs-linux /]$ cd /[stu@cs-linux /]$ find / -name "ch1.doc"find: /home/wb: 权限不够/home/stu/test/ch1.doc结果表示找到的文件在/home/stu/test/目录下.用uname命令查看系统的信息:[stu@cs-linux /]$ unameLinux用who命令查看其他登录的用户:[stu@cs-linux /]$ whostu tty1 Jun 18 14:22root pts/0 Jun 18 14:23 (:0.0)用which命令查看一些命令的全路径,如查看命令ls和ps的全路径:[stu@cs-linux /]$ which lsalias ls='ls --color=tty'/bin/ls[stu@cs-linux /]$ which ps/bin/ps用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,如下:[stu@cs-linux test]$ tar cvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux test]$ lsch1.doc ch2.doc doc.tar.gz sesson.txt使用命令加参数cvf来打包所有后缀为doc的文件,参数c表示建立新文档,参数v表示在处理过程中显示相关信息,参数f表示以文件方式打包.现test目录下共有doc文件2个,所以显示ch1.doc,ch2.doc.打包后用ls命令查看,发现多了一个doc.tar.gz文件,表明操作成功.将doc.tar.gz复制到用户的家目录并展开压缩文件:[stu@cs-linux test]$ cd ..[stu@cs-linux stu]$ cp test/doc.tar.gz doc.tar.gz[stu@cs-linux stu]$ tar xvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux stu]$ lsch1.doc ch2.doc doc.tar.gz test第三行的参数x表示解包文件.五.实验心得这一章主要学习了Linux下的一些关于监视系统的命令以及一些常用辅助命令,对于一个Linux的系统管理员,掌握这些命令的使用是非常重要的,因为这些命令不仅可以让系统管理员了解到系统的运行情况,还可以了解到磁盘及内存的占用情况,以便系统管理员根据情况作出相应调整。
操作系统实验
操作系统实验报告(一)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以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。
LINUX操作系统实验报告..
实验一 LINUX操作基础实验目的:1、掌握字符界面下关机及重启的命令。
2、掌握LINUX下获取帮助信息的命令:man、help。
3、掌握LINUX中常用的简单命令:pwd、date、who、cal、uname、wc、clear等实验内容:1、使用shutdown命令设定在30分钟之后关闭计算机。
2、使用init命令实现图形界面到字符界面及字符界面到图形界面的切换。
3、分别使用命令man和help查看ls命令的帮助文档。
4、使用命令将当前计算机的主机名显示为IT。
5、使用命令显示公元2008年8月的月历。
6、显示当前计算机上的日期和时间。
7、统计文件/etc/passwd的行数、字符数和单词数。
实验步骤及结果:1、2、3、4、5、6、7、实验二 LINUX系统的文件操作命令实验目的:1、掌握LINUX下文件和目录操作命令:cd、ls、mkdir、rmdir、rm。
2、掌握LINUX下文件信息显示命令:cat、more。
3、掌握LINUX下文件复制、删除及移动命令:cp、mv。
4、掌握LINUX的文件检索、排序命令:grep、sort。
实验内容:1、使用命令切换到/etc目录,并显示当前工作目录路径。
2、使用命令显示/root目录下所有文件目录的详细信息,包括隐藏文件。
3、使用命令创建目录/root/linux,然后删除该目录。
4、使用命令cat用输出重定向在/root目录下创建文件abc,文件内容为“Hello,Linux!”,并查看该文件的内容。
5、使用命令创建具有默认权限为744的目录/root/ak,然后将/root/abc文件复制到该目录中,最后将该目录及其目录下的文件一起删除。
6、查看文件/etc/passwd的前3行内容。
7、创建文件file1,文件内容有3行,分别为a、c、b,排序该文件数据,显示在屏幕上。
8、使用命令显示/etc/passwd文件的文件类型。
9、在文件/etc/passwd中搜索匹配字符“root”。
linux操作系统实验报告全部
4.熟悉外存目录树结构;
5.熟悉程序开发工具:编辑、编译、连接、调试;
6.学会获得帮助信息。
代码:
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
【实验结果】
【实验题目】2进程的创建和控制
if(pid2==0)
{
1ockf(fd[1],1,0);
sprintf(OutPipe,“child 2 processis sending message!“);
write (fd[1],OutPipe,50);
sleep (5);
lockf (fd[l],0,0);
exit(0);
}
else
{
signal(16,stop);
printf(%d”,SIG_DEL);
waiting();
lockf(stdout,1,0);
printf("child process 1 is killed by parent!\n”);
1ockf(stdout,0,0);
exit(0);
}
}
voidwaiting()
}
}
#include<stdio2,i;
while((pl = fork ( ) ) ==-1);
if(pl ==0)
{
lockf(1,1,0),
for(i =0 ; i<500 ; i++)printf ((“child %d/n”,i );
lockf(1,0,0);
linux实验报告总结
linux实验报告总结Linux 实验报告总结在学习计算机相关知识的过程中,Linux 操作系统无疑是一个重要的领域。
通过一系列的实验操作,我对 Linux 有了更深入的理解和认识。
以下是我对这些实验的详细总结。
一、实验目的本次 Linux 实验的主要目的是熟悉 Linux 操作系统的基本命令和操作,了解其文件系统、进程管理、用户权限等核心概念,并能够运用这些知识解决实际问题。
二、实验环境我们使用了虚拟机软件(如 VMware 或 VirtualBox)来创建 Linux操作系统的实验环境。
所安装的 Linux 发行版包括 Ubuntu、CentOS 等,版本根据具体实验要求而定。
三、实验内容及步骤(一)文件和目录操作1、熟悉常用的文件操作命令,如`ls` 用于列出目录内容,`cd`用于切换目录,`mkdir` 用于创建新目录,`rmdir` 用于删除空目录,`touch` 用于创建空文件等。
2、掌握文件权限的设置,通过`chmod` 命令修改文件的读、写、执行权限,了解`u`(所有者)、`g`(所属组)、`o`(其他用户)的权限设置方式。
3、进行文件的复制、移动和删除操作,使用`cp` 命令复制文件,`mv` 命令移动文件或重命名文件,`rm` 命令删除文件或目录。
(二)进程管理1、学会使用`ps` 命令查看系统中的进程信息,包括进程的 ID、状态、占用的 CPU 和内存等。
2、掌握通过`kill` 命令终止进程的方法,根据进程 ID 发送相应的信号来结束进程的运行。
3、了解进程的调度和优先级设置,通过`nice` 命令调整进程的优先级。
(三)用户和用户组管理1、熟悉用户和用户组的创建、修改和删除操作,使用`useradd` 命令添加新用户,`usermod` 命令修改用户属性,`userdel` 命令删除用户。
2、掌握用户组的管理命令,如`groupadd` 创建用户组,`groupmod` 修改用户组属性,`groupdel` 删除用户组。
linux操作系统实验报告
linux操作系统实验报告Linux操作系统实验报告一、引言在计算机科学领域,操作系统是一种非常重要的软件,它负责管理计算机硬件和软件资源,提供用户与计算机之间的接口。
Linux操作系统是一种开源的、免费的操作系统,它具有高度的可定制性和稳定性,因此在科研、教育和商业领域都得到广泛应用。
本实验报告将介绍我们在课程中对Linux操作系统的实验内容和实验结果。
二、实验目的本次实验的目的是让我们学生通过亲自操作和实践,深入了解Linux操作系统的特点、功能和使用方法。
通过实验,我们将学会如何安装Linux操作系统、使用Linux命令行界面、管理文件和目录、配置网络和安全等。
三、实验环境我们使用的实验环境是一台配置较高的个人计算机,该计算机上安装了虚拟机软件。
我们选择了一款常用的虚拟机软件VirtualBox,并在其上安装了Ubuntu Linux操作系统。
四、实验内容1. Linux操作系统安装我们首先学习了如何在虚拟机上安装Linux操作系统。
通过下载Ubuntu的镜像文件,并创建虚拟机实例,我们成功地完成了Linux操作系统的安装。
在安装过程中,我们需要设置用户名、密码和网络配置等信息。
2. Linux命令行界面Linux操作系统的命令行界面是其最基本的用户接口。
我们学习了一些常用的Linux命令,如cd、ls、mkdir、rm等,用于管理文件和目录。
我们还学习了如何使用管道和重定向符号来处理命令的输入和输出。
3. 文件和目录管理Linux操作系统以文件和目录的形式来组织和管理数据。
我们学习了如何创建、复制、移动和删除文件和目录。
我们还学习了如何修改文件和目录的权限和所有权。
4. 网络配置在现代计算机网络中,网络配置是非常重要的一部分。
我们学习了如何配置Linux操作系统的网络设置,包括IP地址、子网掩码、网关等。
我们还学习了如何使用ping命令测试网络连通性。
5. 安全配置在网络环境中,安全性是一个重要的考虑因素。
linux系统基本操作实验报告
竭诚为您提供优质文档/双击可除linux系统基本操作实验报告篇一:linux操作系统指令实验报告实验一Linux的基本操作和常用命令的使用一、实验目的1.学会安装Linux操作系统2.掌握Linux系统的一些基本操作3.掌握常用Linux命令的使用方法4.了解Linux命令中参数选项的用法和作用二、实验环境1.Linux软件和计算机三、实验内容或步骤1.安装Linux操作系统,并进行相关配置。
2.基本操作和常用命令。
(一).文件操作命令(1)查看文件与目录用以下命令查看文件与目录:ls/usr/binls–ldir(2)显示文件内容命令(cat)设当前目录下包括两个文件text1、text2,用以下列命令了解cat命令的使用:cattext1cattext1text2>text3cattext3|more(3)文件复制命令(cp)了解cp命令的功能和使用技巧,并注意它们的区别:cp/root/*/tempcpreadmetext4cp–r/root/*/temp(带目录复制)cp/root/.[a-z]*/temp(复制所有小写字母开头的隐藏文件)(4)文件改名命令(mv)了解mv命令的功能和使用方法,并注意各命令的区别:mvtext4newtextmvnewtext/home(5)删除文件命令(rm)了解rm命令的功能和使用方法:rmnewtext(二).目录操作命令的使用(1)改变当前目录命令(cd)和显示当前目录命令(pwd)掌握cd命令的功能和使用,并了解以下各命令的区别:cd/rootcd..(返回上一级目录)cd(返回到用户目录内)-1-pwd(显示当前目录在文件系统层次中的位置)(2)建立子目录命令(mkdir)在用户目录下创建如图5-4所示的目录结构。
(3)删除子目录命令(rmdir)在图5-4所建立的目录结构中,删除a1和b1目录。
命令如下:rmdir/home/x/b1rm–r/home/x/a1rm–rf/home/x/a1注意:可选项-r和-f的作用。
LINUX操作系统实验报告..
LINUX操作系统实验报告::LINUX操作系统实验报告1、实验目的1.1 理解LINUX操作系统的基本概念1.2 掌握LINUX系统的安装和配置过程1.3 学习LINUX命令行操作和文件管理1.4 探究LINUX操作系统的网络配置和服务管理2、实验环境2.1 操作系统:Ubuntu 20:04 LTS2.2 软件工具:VirtualBox3、实验内容3.1 LINUX系统的安装3.1.1 准备安装盘或镜像文件3.1.2 创建虚拟机并引导安装程序3.1.3 设置分区和文件系统3.1.4 安装引导加载程序3.2 LINUX系统的基本配置3.2.1 设置主机名和网络配置3.2.2 安装基本软件包和驱动程序 3.2.3 配置用户和组权限3.2.4 配置系统服务和启动项3.3 LINUX命令行操作3.3.1 基本命令的使用3.3.2 文件和目录操作3.3.3 系统信息和网络配置命令 3.3.4 进程和服务管理命令3.4 LINUX文件管理3.4.1 文件和目录的创建与删除 3.4.2 文件权限和所有权的管理 3.4.3 文件的复制和移动3.4.4 文件的查找和过滤3.5 LINUX网络配置3.5.1 IP地质和子网掩码的配置3.5.2 网关和DNS的配置3.5.3 网络服务的启动和管理3.5.4 远程登录和文件传输4、实验步骤4.1 安装LINUX操作系统4.1.1 LINUX安装镜像文件并创建虚拟机4.1.2 引导虚拟机并按照安装向导进行安装 4.2 配置LINUX系统4.2.1 设置主机名和网络配置4.2.2 安装必要的软件和驱动程序4.2.3 创建用户和设置用户权限4.2.4 配置系统服务和启动项4.3 使用LINUX命令4.3.1 使用常见的命令操作文件和目录4.3.2 查看和管理系统的进程4.3.3 配置和管理系统服务4.3.4 网络配置和管理命令的使用4.4 文件管理操作4.4.1 创建、复制、移动和删除文件4.4.2 修改文件权限和所有权4.4.3 查找文件和过滤文件内容4.4.4 压缩和解压缩文件4.5 网络配置和服务管理4.5.1 配置IP地质、子网掩码、网关和DNS4.5.2 启动和管理网络服务4.5.3 使用远程登录和文件传输工具5、实验结果与分析在实验过程中,成功完成了LINUX操作系统的安装和配置。
linux操作系统实验报告
linux操作系统实验报告Linux 操作系统实验报告一、实验目的本次实验的主要目的是深入了解和熟悉Linux 操作系统的基本操作、命令行使用、文件系统管理以及进程管理等方面的知识和技能。
通过实际操作和实践,提高对 Linux 操作系统的掌握程度,为今后在相关领域的学习和工作打下坚实的基础。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 安装的 Ubuntu 2004 LTS操作系统。
虚拟机配置为 2GB 内存,20GB 硬盘空间。
实验在Windows 10 操作系统的主机上进行。
三、实验内容及步骤(一)用户和权限管理1、创建新用户使用`sudo adduser <username>`命令创建新用户,例如创建用户名为`testuser` 的新用户。
2、设置用户密码使用`sudo passwd <username>`命令为新用户设置密码。
3、切换用户使用`su <username>`命令切换到新用户。
4、用户权限管理修改`/etc/sudoers` 文件,为新用户赋予特定的权限,例如允许执行特定的管理员命令。
(二)文件和目录操作1、查看文件和目录使用`ls` 命令查看当前目录下的文件和目录,使用`ls l` 命令查看详细信息,包括文件权限、所有者、大小和修改时间等。
2、创建、删除文件和目录使用`touch <filename>`命令创建新文件,使用`mkdir <directoryname>`命令创建新目录。
使用`rm <filename>`命令删除文件,使用`rmdir <directoryname>`命令删除空目录,使用`rm r <directoryname>`命令删除非空目录。
3、复制、移动文件和目录使用`cp <source> <destination>`命令复制文件或目录,使用`mv <source> <destination>`命令移动文件或目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验报告(Linux版) 网络142 潘豹142999实验一观察Linux进程状态一、实验目的在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Linux Ubuntu操作系统,gcc编译器。
(四)查看“不可中断阻塞”状态(D)创建一个C程序,如uninter_status.c,让其睡眠30s代码:#include<unistd.h>#include<stdio.h>int main(){int i=0,j=0,k=0;for(i=0;i<1000000;i++){for(j=0;j<1000000;j++){k++;k--;}}}实验结果:(二)查看“暂停”状态(T)运行run_status进程,其进入R状态:代码同上:(三)查看“可中断阻塞”状态(S)创建一个C程序,如interruptiblie_status.c,让其睡眠30s编译链接,后台运行该程序(后接&符号),并使用ps命令查看运行状态代码:#include<unistd.h>#include<stdio.h>int main(){sleep(30);return;}实验结果:(四)查看“不可中断阻塞”状态(D)创建一个C程序,如uninter_status.c,让其睡眠30s编译链接,后台运行该程序(后接&),并使用ps命令查看运行状态代码:#include<unistd.h>#include<stdio.h>int main(){if(vfork()==0){sleep(300);return;}}实验结果:(五)查看“僵尸”进程(Z)创建一个C程序,如zombie_status.c,在其中创建一个子进程,并让子进程迅速结束,而父进程陷入阻塞编译链接,后台运行该程序(后接&),并使用ps命令查看运行状态(30s内)代码:#include<unistd.h>#incldue<stdio.h>int main(){if(fork()){sleep(300);}}实验结果:实验二观察Linux进程/线程的异步并发执行一、实验目的通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程的异步执行。
理解进程及线程的区别及特性,进一步理解进程是资源分配单位,线程是独立调度单位。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Linux Ubuntu操作系统,gcc编译器。
三、实验内容和步骤1、进程异步并发执行编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用fork函数创建两个子进程,每个子进程对count加1后,显示“I am son, count=x”或“I am daughter, count=x”,父进程对count加1之后,显示“I am father, count=x”,其中x使用count值代替。
最后父进程使用waitpid等待两个子进程结束之后退出。
编译连接后,多次运行该程序,观察屏幕上显示结果的顺序性,直到出现不一样的情况为止,并观察每行打印结果中count的值。
代码:#include<unistd.h>#include<stdio.h>int main(){pid_t son_pid,daughter_pid;int count=1;son_pid=fork();if(son_pid==0){count++;printf("i am son,count=%d\n",count);}else{daughter_pid=fork();if(daughter_pid==0){count++;printf("i am daughter,count=%d\n",count);}{count++;printf("i am father,count=%d\n",count);waitpid(son_pid,NULL,0);waitpid(daughter_pid,NULL,0);}}}2、线程异步并发执行编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用pthread_create 函数创建两个线程,每个线程对count加1后,显示“I am son, count=x”或“I am daughter, count=x”,父进程对count加1之后,显示“I am father, count=x”,其中x使用count值代替。
最后父进程使用pthread_join等待两个线程结束之后退出。
编译连接后,多次运行该程序,观察屏幕上显示结果的顺序性,直到出现不一样的情况为止,并观察每行打印结果中count的值。
代码:#include<unistd.h>#include<stdio.h>#include<pthread.h>void *daughter(void *num){int* a=(int *)num;*a+=1;printf("i am daughter,count=%d\n",*a);}void *son(void *num){int* a=(int *)num;printf("i am son,count=%d\n",*a);}int main(){pthread_t son_tid,daughter_tid;int count=1;pthread_create(&son_tid,NULL,son,&count);pthread_create(&daughter_tid,NULL,daughter,&count);count++;printf("i am parent,count:=%d\n",count);pthread_join(son_tid,NULL);pthread_join(daughter_tid,NULL);return 0;}实验结果:实验三使用信号量进行互斥与同步一、实验目的本实验介绍在Linux中使用信号量进行进程同步、互斥的方法。
读者可以通过实验进一步理解进程间同步与互斥、临界区与临界资源的概念与含义,并学会Linux信号量的基本使用方法。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Linux Ubuntu操作系统,gcc编译器。
三、实验内容和步骤三、实验内容和步骤(一)参考:POSIX以及System VSystem V:Unix众多版本中的一支,最初由AT&T定义,目前为第四个版本,其中定义了较为复杂的API。
POSIX:Portable Operating System Interface,IEEE为了统一Unix接口而定义的标准,定义了统一的API接口。
Linux即支持System API,又支持POSIX API(二)实验步骤step1:通过实例查看不使用互斥时的情况(假设文件命名为no_sem.c)编译链接,同时运行两个进程,显示结果代码:#include<stdio.h>#include<stdlib.h>int main(int argc,char *argv[]){char message='x';int i=0;if(argc>1){message=argv[1][0];}for(i=0;i<10;i++){printf("%c",message);fflush(stdout);sleep(rand()%3);printf("%c",message);fflush(stdout);sleep(rand()%2);}sleep(10);exit;}实验结果:step2:使用信号量来对临界资源进行互斥(假设文件命名为with_sem.c) 编译链接,同时运行两个进程。
观察X和O的出现规律,并分析原因。
代码:#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/ipc.h>#include<semaphore.h>#include<fcntl.h>#include<sys/stat.h>int main(int argc,char *argv[]){char message='x';int i=0;if(argc>1){message=argv[1][0];}sem_t *mutex=sem_open("mysem",O_CREAT,0666,1);for(i=0;i<10;i++){sem_wait(mutex);printf("%c",message);fflush(stdout);sleep(rand()%3);printf("%c",message);fflush(stdout);sem_post(mutex);sleep(rand()%2);}sleep(10);sem_close(mutex);sem_unlink("mysem");exit(0);}实验结果:step3:使用信号量来模拟下象棋红黑轮流走子的情况编写两个C语言程序black_chess.c以及red_chess.c,分别模拟下象棋过程中红方走子和黑方走子过程。
走子规则:红先黑后,红、黑双方轮流走子,到第10步,红方胜,黑方输。
代码:红色棋#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/ipc.h>#include<semaphore.h>#include<fcntl.h>#include<sys/stat.h>int main(int argc,char *argv[]){int i=0;sem_t *hei=sem_open("chess_black_sem",O_CREAT,0666,1);sem_t *hong=sem_open("chess_red_sem",O_CREAT,0666,0);for(i=0;i<10;i++){sem_wait(hei);if(i!=9){printf("Red chess had moved,black,chess go!\n");}else{printf("Red chess win!\n");}fflush(stdout);sem_post(hong);}sleep(10);sem_close(hei);sem_close(hong);sem_unlink("chess_red_sem");sem_unlink("chess_black_sem");exit(0);}黑色棋:#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/ipc.h>#include<semaphore.h>#include<fcntl.h>#include<sys/stat.h>int main(int argc,char *argv[]){int i=0;sem_t *hei=sem_open("chess_black_sem",O_CREAT,0666,1); sem_t *hong=sem_open("chess_red_sem",O_CREAT,0666,0); for(i=0;i<10;i++){sem_wait(hong);if(i!=9){printf("Black chess had moved,red chess go!\n");}else{printf("Black chess win!\n");}fflush(stdout);sem_post(hei);}sleep(10);sem_close(hei);sem_close(hong);sem_unlink("chess_red_sem");sem_unlink("chess_black_sem");exit(0);}实验结果:实验四作业调度算法模拟一、实验目的(1)掌握周转时间、等待时间、平均周转时间等概念及其计算方法。