2016操作系统实验指导书【Linux】

合集下载

《Linux实用操作系统》实验指导书

《Linux实用操作系统》实验指导书

《Linux实用操作系统》课程实验指导书实验一、Red Hat Linux系统安装一、实验目的:1.掌握虚拟机软件VMWare的使用。

2.掌握Linux安装过程中的分区方法。

3.掌握Linux操作系统的安装和配置过程。

二、实验内容:安装red hat linux操作系统。

三、实验要求:一台pc机,Redhat 9.0,VMWare虚拟机软件。

四、实验课时2课时五、实验指导安装步骤如下:1.通过虚拟机VMWare开始安装RedHat9。

2.语言选择。

3.键盘配置。

4.鼠标配置。

5.选择安装还是升级。

6.安装类型。

7.磁盘分区设置。

8.系统配置。

9.选择引导装载程序。

10.配置联网。

11.防火墙配置。

12.安装并支持多种语言。

13.时区选择。

14.设置根口令。

15.选择软件包。

16.选择单个软件包。

17.安装软件包。

18.创建引导盘。

19.安装完成。

20.引导系统。

21.第一次启动运行,输入登陆用户和密码,登录系统。

实验二、linux常用命令一、实验目的:了解liunx的基本命令,熟练掌握其基本操作。

二、实验内容:1.操作linux常用命令。

2.查看命令执行后的结果。

3.完成相应的实验报告。

三、实验要求:一台pc机,Redhat 9.0,VMWare虚拟机软件。

四、实验课时4课时五、实验指导1.进入linux终端。

实验三、X Window系统一、实验目的:1.了解并掌握GNOME使用方法。

2.了解并掌握KDE使用方法。

二、实验内容:1.使用GNOME和KDE。

2.操作两种桌面环境下的常用软件。

3.对比两种桌面环境的不同。

三、实验要求:一台pc机,Redhat 9.0,VMWare虚拟机软件四、实验课时2课时五、实验指导1.配置X Window。

在如图所示的“X配置”窗口上选择“配置X窗口系统”按钮配置X 的第一步是选择默认的色彩深度和分辨率。

从相应的下拉菜单中选择它们。

确定指定与视频卡和显示器兼容的色彩深度及分辨率。

2016操作系统实验指导书【Linux】

2016操作系统实验指导书【Linux】
使用 kill 命令,向 run_status 进程发送 SIGSCON 信号,并使用 ps 命令观察其状态(恢复到 R 状态)
(三)查看“可中断阻塞”状态(S) 创建一个 C 程序,如 interruptiblie_status.c,让其睡眠 30s
编译链接,后台运行该程序(后接&符号),并使用 ps 命令查看运行状态
2016 操作系统实验指导书【Linux 版】
操作系统实验指导书(Linux 版)
计算机科学与软件学院 2016 年
1
2016 操作系统实验指导书【Linux 版】
实验一 观察 Linux 进程状态
一、实验目的
在本实验中学习 Linux 操作系统的进程状态,并通过编写一些简单代码来观察各种情况下, Linux 进程的状态,进一步理解进程的状态及其转换机制。
编译链接,后台运行该程序(后接&),并使用 ps 命令查看
(二)查看“暂停”状态(T) 运行 run_status 进程,其进入 R 状态:
3
2016 操作系统实验指导书【Linux 版】
使用 kill 命令,向 run_status 进程发送 SIGSTOP 信号,并使用 ps 命令观察其状态(进入了 T 状态)
硬件环境:计算机一台,局域网环境; 软件环境: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 的值。 参考程序(实验者也可以自己设计类似程序)

Linux操作系统实验指导书

Linux操作系统实验指导书
1.2.1 Linux简史 ................................................................................................................3 1.2.2 内核的功能和结构.................................................................................................5 1.2.3 内核源代码组织结构.............................................................................................6 1.2.4 内核的功能版本和发行版.....................................................................................8 1.2.5 学习Linux辅助软件介绍 .......................................................................................8 1.3 实验内容...........................................................................................................................9 1.3.1 安装Ubuntu.............................................................................................................9 1.3.2 编译Linux内核 ..................................................................................................... 11 实验二 Linux基本命令 ...............................................................................................................17 2.1 实验目的.........................................................................................................................17 2.2 背景知识.........................................................................................................................17 2.3 实验内容..........................................................................................................................17 实验三 进程管理...........................................................................................................................22 3.1 实验目的.........................................................................................................................22 3.2 背景知识.........................................................................................................................22 3.3 实验内容..........................................................................................................................22 3.3.1 进程创建................................................................................................................22 3.3.2 进程控制................................................................................................................22 3.3.3 参考程序................................................................................................................22 实验四 进程通信...........................................................................................................................25 4.1 实验目的........................................................................................................................25 4.2 背景知识........................................................................................................................25 4.3 实验内容........................................................................................................................33 4.4.5 共享存储区通信(选做)..............................................................................................39 实验五 存储管理.........................................................................................................................41 5.1 实验目的........................................................................................................................41 5.2 背景知识........................................................................................................................41 5.3 实验内容........................................................................................................................41 实验六 文件管理.........................................................................................................................52 6.1 实验目的........................................................................................................................52 6.2 背景知识........................................................................................................................52 6.3 实验内容........................................................................................................................52

Linux操作系统实习指导书

Linux操作系统实习指导书

Linux操作系统实习指导书一、实训目的重点强化shell编程的多种数值计算、条件测试与比较、if语句、case语句以及数组的应用。

重点强化while、for、until循环语句的运用。

二、实训内容【实训1.1】编写一个shell脚本,判断登录的用户是否是某个账号。

#!/bin/bash# 判断登录的用户是否是fz# cut 以某种方式按照文件的行进行分隔# -d自定义分隔符,默认为制表符# -f 与-d一起使用,指定显示哪个区域。

test=$(env | grep "USER" | cut -d "=" -f 2)if [ "$test" == fz ]thenecho "Current user is fz."elseecho "Current user is not fz."fi【实训1.2】编写一个shell脚本,判断分区使用率。

#!/bin/bash# 用来判断sda2这个盘的使用率# 注意awk命令及cut命令的用法及区别,务必熟练test=$(df -h | grep sda2 | awk '{print $5}' | cut -d "%" -f 1)if [ $test -ge 8 ];thenecho "/ is full"elseecho "/ is not full"fi【实训1.3】判断输⼊的是否是⼊个⼊录。

#!/bin/bashread -t 30 -p "Please input a directory: " dirif [ -d "$dir" ]thenecho "$dir is a directory"elseecho "$dir is a not directory"fi【实训1.4】编写一个shell脚本,判断用户输入的是什么文件。

《Linux操作系统》实验指导书.v1.2

《Linux操作系统》实验指导书.v1.2

# 根据实际情况修改(红色处改为自己的学号后两位)。
eth1 的配置如下:(/etc/sysconfig/network-scripts/ifcfg-eth1) DEVICE=eth1 BOOTPROTO=dhcp ONBOOT=yes
(2)配置 DHCP 服务器(/etc/dhcpd.conf) ddns-update-style interim;
# service network restart (2)安装 samba 文件
(A)检测系统内部是否已经安装好 samba 文件 # rpm -qa | grep samba
(B)如果显示类似如下的版本信息,则证明系统内已经安装好 samba 服务 samba-common-3.0.33-3.14.el5
4、实验步骤 (1)配置两块网卡 eth0 和 eth1(均使用 bridge 方式连接)
eth0 的配置如下:(/etc/sysconfig/network-scripts/ifcfg-eth0)
DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.16.1 NETMASK=255.255.255.0 ONBOOT=yes
# getenforce 如果输出“Enforcing”,则输入下面的命令
# setenforce 0 (B)通过 Windows 访问 Linux
右击“我的电脑”,左键单击映射网络驱动器,在文件夹方框内按如下格式填写
\\192.168.0.253\share 如果下次需要映射其它用户的文件,可以先断开原来的映射,然后通过修改“其它
# smbclient -L //192.168.0.1 -U 用户 1 # 列出用户 1 的所有共享信息 # smbclient //192.168.0.1/共享名 - U 用户 1 # 访问用户 1 的“共享名”目录

Linux操作系统-实验1-环境搭建-指导书-PPT版本-V1

Linux操作系统-实验1-环境搭建-指导书-PPT版本-V1

Linux操作系统第一章:Linux简介与系统安装实验一:实验环境搭建一台宿主机(Windows系统)加两台虚拟机(Desktop+Server)要求:(1)掌握VMware虚拟机的安装(2)利用VMware虚拟机安装Ubuntu Linux18.04桌面版操作系统(3)利用VMware虚拟机安装Ubuntu Linux18.04服务器版操作系统(4)从宿主机登录桌面环境和服务器环境(SSH登录)(5)练习涉及到的基本命令,如apt-get、ifconfig、ssh等(6)练习vim编辑文件基本操作等Tips:(1)绘制网络拓扑图(2)把遇到的问题和如何解决记录下来。

实验环境设置☐宿主机(Windows)•网络配置VMware Network Adapter(VMnet8)☐客户机•Ubuntu-Server(ubuntu-18.04.6-live-server-amd64)•Ubuntu-Desktop(ubuntu-18.04.6-desktop-amd64)虚拟机安装安装时网络类型选择NAT方式安装完成后的两台Ubuntu虚拟机宿主机:Windows记录宿主机IP地址客户机1:Ubuntu-Server命令行模式记录IP:192.168.126.130客户机2:Ubuntu-Desktop图形化操作方法记录IP:192.168.126.131NAT模式宿主机:Windows192.168.126.1192.168.126.130192.168.126.131客户机1:Ubuntu-Server客户机2:Ubuntu-DesktopSSH服务1.安装SSH服务2.启动SSH服务3.配置SSH服务(可选)4.验证SSH服务Desktop版客户机安装SSH服务Desktop版客户机安装SSH服务:sudo apt-get install openssh-serverDesktop版客户机启动SSH服务: sudo systemctl start sshDesktop版客户机启动SSH服务: sudo systemctl start sshDesktop版客户机端修改SSH配置文件:端口22修改为1022 vi /etc/ssh/sshd_configSSH验证-从宿主机连接Desktop客户机2: ********************.126.131SSH验证-从宿主机连接Server版客户机1: ***********************.126.130Desktop版客户机查看SSH状态:记录监听端口和连接情况Server版客户端1查看SSH状态Desktop版客户机安装 net-tools:sudo apt-get install net-toolsDesktop版客户机查看IP地址: ifconfigDesktop版客户机查看网络连接情况:Netstat -aServer版客户机查看网络连接情况:Netstat -a。

linux操作系统实训指导书

linux操作系统实训指导书

桂林理工大学高等职业技术学院实训指导书(2013—2014 学年度第2 学期)课程名称: Linux操作系统授课班级: 计应12-1、2、3、4任课教师: 曹英忠教研组长:系部主任:编写时间: 2014 年 6 月5日《Linux操作系统》课程实训指导书一、总体目的为了加强和巩固理论课内容,理论联系实际,培养学生的动手能力和实践能力。

并使学生通过实训熟悉Linux命令,真正学会使用Linux。

二、实训要求为了确保实训顺利进行,培养同学们良好的习惯,增强修养,提高个人素质,特制定以下实训要求:1. 实训室内禁止饮食,禁止吐痰。

禁止在实训室内喧哗、嬉戏、争斗,保持安静,轻声讨论。

2. 不准恶意破坏仪器设备,设备若有损坏及时向实训指导教师报告。

3. 不准无故旷课、迟到、早退;若有特殊情况,需事先请假,征求许可。

4. 旷课3节,实训成绩不及格,2次迟到算旷课1节。

5. 实训时间内,请勿离开实训室10分钟以上,否则以旷课论,若确有急事,需征得实训指导教师同意后方可离开。

6. 按规定时间(最后两次课开始提交)、规定格式(每人一份模板)上交实训报告。

三、实训报告格式要求要求写出实训项目的步骤,格式必须包括实训目的、实训内容、实施方案、实训结果、实训心得和鉴定表等。

四、实训考核办法本实训共九个题目,其中实训编号为一至六号为每个同学必做项,七到九为选做,只需选择其中任何一题即可。

最终根据题目难易程度、完成比例、答辩情况、实训表现和态度、实训报告的内容及其表达给以量分。

本着对大部分同学公正平等的原则,对实训成绩考核办法如下:实训成绩考核内容有实训表现与态度(10%)、实训操作过程和实训内容掌握程度(60%)、实训报告的内容与文字表达(30%)三部分组成。

具体细则如下表:五、时间分配实训目录实验一、Linux的基本操作和常用命令的使用实验二、Linux网络参数的配置实验三、Linux的用户管理实验四、Linux的进程管理实验五、Linux的文件管理实验六、利用Samba实现Windows和Linux的资源共享实验七、Linux Web服务器的配置实验八、Linux的FTP服务试验九、shell编程实验一、Linux的基本操作和常用命令的使用一、实验目的1.学会不同Linux用户登录的方法。

linux实训手册

linux实训手册

实训手册2016-2-21编制说明:1.实训手册主要给了出了相关实训操作步骤或流程。

2.相关操作细节要参考教材中相关部份。

3.实训内容可能跟教材相关章节不一至,请选择使用。

Linux网络服务器组建、配置和管理(应用)实践教程实训手册目录1.10 本章实训 (4)2. 8 本章实训............................................................................... 错误!未定义书签。

3. 8 本章实训............................................................................... 错误!未定义书签。

4. 7 本章实训............................................................................... 错误!未定义书签。

5. 7 本章实训............................................................................... 错误!未定义书签。

6. 8 本章实训............................................................................... 错误!未定义书签。

7. 11 本章实训............................................................................. 错误!未定义书签。

8. 11 本章实训............................................................................. 错误!未定义书签。

Linux操作系统实验指导书.doc

Linux操作系统实验指导书.doc

《Linux操作系统》实验指导书主编教师:王振目录实验一Linux操作系统的安装 (3)【实验目的】 (3)【实验环境】 (3)【实验重点及难点】 (3)【实验内容】 (3)实验二常用命令的使用(一) (5)【实验目的】 (5)【实验环境】 (5)【实验重点及难点】 (5)【实验内容】 (5)实验三常用命令的使用(二) (9)【实验目的】 (9)【实验环境】 (9)【实验重点及难点】 (9)【实验内容】 (9)实验四VI编辑器的使用 (14)【实验目的】 (14)【实验环境】 (14)【实验重点及难点】 (14)【实验内容】 (14)实验五Linux系统管理与配置 (15)【实验目的】 (15)【实验环境】 (16)【实验重点及难点】 (16)【实验内容】 (16)(一)命令行管理 (16)(二)图形界面管理 (17)实验六shell编程(一) (19)【实验目的】 (19)【实验环境】 (19)【实验重点及难点】 (19)【实验内容】 (19)实验七shell编程(二) (23)【实验目的】 (23)【实验环境】 (23)【实验重点及难点】 (23)【实验内容】 (23)实验八FTP服务器的配置 (25)【实验目的】 (25)【实验环境】 (25)【实验重点及难点】 (25)【实验内容】 (25)实验九NFS服务器 (26)【实验目的】 (26)【实验环境】 (26)【实验重点及难点】 (26)【实验内容】 (26)实验十配置Samba服务器 (28)【实验目的】 (28)【实验环境】 (28)【实验重点及难点】 (28)【实验内容】 (28)实验一Linux操作系统的安装【实验目的】1.掌握Linux操作系统的安装;2.通过安装,学习Linux操作系统与其他操作系统的区别。

【实验环境】1、Linux操作系统安装;2、虚拟机软件;3、计算机内存配置要求512M以上。

【实验重点及难点】Linux操作系统安装过程。

linux实训指导书

linux实训指导书

目录课题一文件和目录操作 (3)课题二文件访问权限 (7)课题三磁盘配额quota实验 (9)课题四NIS配置实验 (10)课题五网络基本配置 (12)课题六dhcp服务器 (15)课题七Samba服务器 (17)课题八NFS服务器 (22)课题九Web服务器 (23)课题十ftp服务器 (27)课题十一dns服务器 (31)课题十二sendmail邮件服务器 (35)课题十三iptables应用 (37)序(使用说明)Linux操作系统是当前发展最迅速的操作系统。

无论是在数据管理、个人桌面应用还是服务器方面均表现了优秀的性能。

由于Linux的开放性特点,其中有些服务器已经被移植到了windows和其它的操作系统中。

使得服务器使用的占有率超过了windows服务器的占有率。

其中WEB服务器、DNS服务器达到了60%以上占有率。

Linux操作系统所涉及的知识面相当广泛,包括用户管理、系统管理、网络管理以及内核编程。

本实训指导书根据大纲要求,侧重了系统管理和网络管理两大方面的内容。

掌握Linux系统管理和服务器配置是做为一个网络专业的学生必须掌握的内容。

为了使用大家更好更快地掌握各种服务的配置方法,在编写本实训指导书时,分课题进行,每个课题均有一个中心任务。

为了分解实验难度,又根据知识点的特点和难易程度分解成了多个实验,每个实验均描述了实验情景。

学生根据实验情景很容易迁移到现实配置中去。

完成本实训指导书中的所有实验,将会大大提高自己的Linux操作水平。

在使用本实训指导书时请注意以下事项:1、本实训指导书中的所有实验均以fedora6.0为基础进行调试,使用其它版本的Linux时请参考执行。

2、在做每个实验前,请备份好相关的配置文件。

每个实验完成后,要及时恢复实验环境,以便完成其它的实验,也便于他人使用。

3、本实训中所有相关服务器的配置均可通过Webmin进行实验,使用Webmin的配置方法本文没有给出,请自己进行试验。

Linux与嵌入式系统实验指导书_2016年春 NEW

Linux与嵌入式系统实验指导书_2016年春 NEW

Linu与嵌入式系统实验指导书计算机与通信学院兰州理工大学2016年目录实验一虚拟机及LINUX系统的安装 (1)实验二LINUX相关命令及MAKEFILE文件的编写 (4)实验三多线程应用程序设计 (8)实验四嵌入式WEB服务器设计 (15)实验五点阵式LED实验 (21)实验一虚拟机及linux系统的安装一、实验目的熟悉Linux开发环境,掌握虚拟机软件VMware的安装方法,掌握Fedora Core 4 Linux 发行版的安装。

了解VMware tools的用途;掌握VMware tools的安装方法;初步了解部分Linux命令的使用。

二、实验原理虚拟机的配置,Linux的安装与基本命令的操作。

三、实验仪器及器件硬件:UP-NETARM2410-S嵌入式实验平台、PC机。

软件:PC机操作系统Fedora Core 4 Linux(或者Red flag)+MINICOM+ARM-LINUX开发环境或超级终端。

四、实验内容和步骤本次实验使用Fedora Core 4 Linux(或者Red flag)操作系统环境。

1、准备如下安装文件:VMware.Workstation.5.5中文版(虚拟机)带注册机FC4-i386-disc1.isoFC4-i386-disc2.isoFC4-i386-disc3.isoFC4-i386-disc4.isoFC4-i386-rescuecd.iso2、VMware软件的安装双击安装文件,按照提示进行下一步需要输入注册码时,运行注册机目录下的keygen..exe,点击generate,serial框中的即为注册码。

安装完成后,运行汉化补丁目录下的HF_Vmware5.5进行汉化VMvare tools的用途:在Linux中方便地访问Windows系统下的文件(通过目录/mnt/hgfs)增强桌面图形性能,屏幕分辨率鼠标可以在Windows系统和虚拟机之间方便切换3、VMware tools的安装打开VMware软件,启动已安装的Linux系统,通过菜单虚拟机->安装vmware工具,点击install,在Linux桌面上,点鼠标右键,打开终端,输入以下命令:mount –t iso9660 /dev/cdrom /mntcd /mntcp VMwareTools-5.5.0-18463.tar.gz /tmpcd /tmpumount /dev/cdromtar zxvf VmwareTools-5.5.0-18463.tar.gzcd vmware-tools-distrib./vmware-install.pl一路回车虚拟机->虚拟机设置->选项->共享文件夹->添加(名称d,主机文件夹D:\,名称e,主机文件夹E:\),确定reboot4、验证是否安装成功1)鼠标是否能方便地在Windows和虚拟机之间切换2)在Linux中能否通过目录/mnt/hgfs访问Windows下的文件5、Fedora Core 4 Linux发行版的安装(或者安装red flag 版本,过程一样,自己选择)在VMware软件中,新建虚拟机->下一步,选择典型->下一步,选择linux->下一步,选择linux安装的位置->下一步,使用桥接网络->下一步,完成。

计算机操作系统实验指导linux

计算机操作系统实验指导linux

计算机操作系统实验指导linuxLinux 操作系统实验指导一、快速安装Linux系统1. 搭建实验环境:下载Linux系统的安装CD或者U盘,由于安装CD可能比较老旧,建议使用U盘来加载Linux系统;2. Bios 及设置:根据启动项的设置,调整U盘或者CD-ROM的读取顺序;3. 分割机制:根据自身的实验需求,给每一块磁盘分配大小;4. 安装系统:根据linux系统的提示安装相应的组件,设置root分区,系统更新;二、Linux系统外观设置1. 登录系统:输入用户名和密码,登录系统,添加用户及其权限管理;2. 更改外观:安装特定的主题,进行界面的更改,开机启动动画,桌面背景设置;3. 调整桌面图标:添加快捷方式,右键菜单管理,图标的拖拽安排等;4. 桌面快捷键:设置快捷键,方便操作,减少重复点击。

三、Linux系统安全设置1. 系统安全:安装安全软件,设置防火墙,锁定系统认证;2. 用户安全:设置不同用户权限,登陆账号管理,安装安全软件;3. 应用安全:安装反病毒软件,进行网页浏览拦截,异常端口禁止;4. 系统备份:制定机器备份计划,在恰当的时间进行备份操作。

四、Linux系统维护1. 系统维护:检查内存资源,检查OS系统补丁,维护系统文件;2. 进程管理:搜索指定进程,加进行结束操作,网络监控,作业管理;3. 系统日志:解析系统日志,及时发现系统异常,安装定期重启系统;4. 资源管理:查看磁盘使用情况,清理无用磁盘空间,升级硬件驱动,调整硬件参数。

五、Linux环境编程1. 配置编译环境:管理编程工具,安装gcc编译环境,程序与调试;2. 写入程序语言:使用C或者C++等语言,编写程序,将程序源文件保存;3. 编译源程序:使用gcc编译程序,在程序的源码中添加头文件,编译检查程序;4. 运行程序:测试程序,调试程序,看看程序的运行效果,分析程序运行的错误。

六、Linux系统优化1. 优化硬件设备:升级GB、CPU、内存,新增硬盘等;2. 添加新软件:查找新的功能模块,优化系统性能;3. 系统定期检查:软硬件保护,程序性能优化,重新启动程序,更新软硬件驱动;4. 调整显示器的分辨率:根据分辨率的不同,调整显示器的屏幕大小,细化界面效果和位置;5. 系统内存设置:调整系统内存性能,调整内存大小,加快系统加载速度。

操作系统实验指导书(linux版)

操作系统实验指导书(linux版)

操作系统实验指导书(linux版)《操作系统》实验指导书实验学时:16适用于专业:计算机科学与技术实验一:进程和线程的创建另外写下一个应用程序,命名为an_ch2_1a。

这个程序建立一个子进程,继续执行an_ch2_1b。

这个程序不断地输入如下行:观察程序运行的结果,并对你看到的现象进行解释。

2。

在linux环境下撰写一个控制器应用程序,程序中存有一个共享资源的整型变量shared_var,初始值为0;建立一个线程并使其立即与主线程mammalian继续执行。

新创建的线程与主线程均不断地循环,并输入shared_var的值。

主线程在循环中不断地对shared_var展开提1操作方式,即为每次循环shared_var被提1;而新创建的线程则不断地对shared_var展开减至1操作方式,即为每次循环shared_var被减至1。

观测程序运行的结果,并对你看见的现象展开表述。

3。

提交源代码以及实验报告。

实验二:进程和线程同步和不相容1。

生产者消费者问题(信号量)参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。

一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。

3个消费者不断地从缓冲中读取一个字符并输出。

为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。

附加的实验:在上面实验的基础上同时实现部分消费者存有选择地消费某些产品。

比如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则并无选择地消费任何产品。

消费者必须消费的产品没时,消费者进程被堵塞。

特别注意缓冲器的管理。

2。

用线程同时实现睡的理发师问题,(同步不相容方式使用信号量或mutex方式均可)理发师问题的叙述:一个理发店接待室存有n张椅子,工作室存有1张椅子;没顾客时,理发师睡;第一个顾客走进时,必须将理发师唤起;顾客来时如果除了空座的话,他就趴在一个座位上等候;如果顾客来时没空座位了,他就返回,不打扫卫生了;当理发师处置回去所有顾客,而又没崭新顾客来时,他又已经开始睡。

Linux操作系统实验指导书

Linux操作系统实验指导书

Linux操作系统实验指导书《Linux系统管理与维护》实验指导书实验一初识Linux操作系统一实验名称初识Linux操作系统二实验目的与要求掌握Linux的启动、登录与注销。

三实验内容1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。

2.图形模式下的注销、重启与关机。

3.学会在虚拟机上登录和注销Linux。

四操作步骤与结果分析五问题与建议实验二Linux的桌面应用一实验名称Linux的桌面应用二实验目的与要求熟悉Linux操作系统桌面环境熟悉Linux文件系统及常用的操作掌握Linux下使用外部存储设备、网络设备掌握Linux下安装应用程序三实验内容1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程序和工具。

2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删除、更名、创建文档、创建文件夹等。

3.练习在Linux下使用光盘和U盘。

4.学会网络配置,使计算机能够进行网络浏览等操作。

5.学会在Linux下安装新的应用软件。

四操作步骤与结果分析五问题与建议实验三Linux操作系统的安装一实验名称Linux操作系统的安装二实验目的与要求掌握安装Linux操作系统三实验内容1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。

环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。

通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。

在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。

四操作步骤与结果分析五问题与建议实验四Linux在系统管理中的应用一实验名称Linux在系统管理中的应用二实验目的与要求理解Linux文件系统,掌握文件目录命令。

掌握常用的文件管理命令。

理解Linux用户、组和权限的概念,掌握用户、组和权限管理命令。

理解设备文件的概念,掌握常用的设备管理命令。

Linux实验指导书

Linux实验指导书

第一章操作系统构成实验【实验目的】通过本实验了解一个操作系统的基本组成部件,掌握Linux操作系统的基本操作,并利用实验平台提供的Linux操作系统掌握如何构造一个基本的微型Linux操作系统。

【准备知识】1、了解Linux OS的启动流程。

2、了解软盘的结构。

3、了解开机载入程序──引导软件LILO。

4、了解Linux根文件系统的基本组成。

【实验内容】1、Linux操作系统的基本操作。

2、通过实验平台提供的Linux操作系统中的make工具重新配置新内核,要求所配置的内核尽量小。

3、制作一张启动盘(Boot Disk)。

要求该启动盘放于一张软盘(floppy)上,用LILO引导器引导,其引导内核为上面新配置的内核,同时考虑它所引导的根文件系统(Root Filesystem)放于第二张软盘上。

4、制作一张根文件系统盘(Root Filesystem Disk)。

要求该启动盘也能放于一张软盘上,并能通过上面做成的启动盘成功引导并进入系统,从而得到一个微型的Linux操作系统。

【实验指导】一.Linux操作系统的基本操作1、启动和登录Linux操作系统。

直接加电启动,以root身份登录。

2、在基于字符的交互界面上,进行Linux操作系统的常用操作命令操作。

常用操作命令有如下一些:(1)关于目录的操作命令:cd、ls、mkdir 、rmdir等;(2)关于文件的操作命令:cat、find/which、man/help、vi/vim、cp、dd、rm、fdformat等;(3)关于系统管理的操作命令:adduser、addgroup、df、su、ctl+Fn(n=1、2、3、4、5、6)等;(4)安装和卸载文件系统:mount、umount等。

3、在Linux操作系统的X Windows环境下,常用应用程序的使用。

4、关闭Linux操作系统。

二.通过Linux操作系统中的make工具重新配置新内核1、进入到Linux OS中的/usr/src/linux-n.n.n子目录下(n.n.n为Linux的内核版本号)。

Linux操作系统实验指导书

Linux操作系统实验指导书

Linux操作系统实验指导书Linux操作系统实验指导书计算机科学与技术学院技术科学与技术系实验⼀Linux系统安装与简单配置⼀、实验⽬的1.掌握虚拟机的配置过程。

2.掌握Linux系统的安装过程和简单配置⽅法。

3.掌握Linux系统的启动、关闭步骤。

⼆、实验内容1.安装并使⽤虚拟机(如Sun Virtualbox ver 3.06)。

2.在虚拟机上安装Linux系统(如红旗Linux桌⾯版4.0)。

3.配置Linux系统运⾏环境。

4.正确地启动、关闭系统。

三、主要实验步骤1.安装虚拟机软件(例如Sun Virtualbox ver 3.06),下图为安装好Virtualbox且运⾏成功的界⾯。

2.在Virtualbox虚拟机中新建虚拟电脑1)点击“新建”图标,就会弹出“欢迎使⽤新建虚拟电脑向导”,点击“下⼀步”图标,在下图中的对话框中填写虚拟电脑的名称,例如“myredf”,并选择操作系统类型,点击“下⼀步”图标2)接着设置内存⼤⼩,例如下图所⽰,点击“下⼀步”图标3)接着设置虚拟硬盘⼤⼩,点击“下⼀步”图标拟硬盘类型”,如下图所⽰,且点击“下⼀步”图标5)在“虚拟硬盘所在位置和空间⼤⼩”对话框中,点击“下⼀步”图标,然后出现“摘要”对话框,点击“完成”图标,6)再次点击“完成”图标,出现下图所⽰的虚拟机界⾯:7)接着为虚拟机myredf配置虚拟光驱,点击设置图标,出现下⾯的界⾯:8)在光驱栏⽬中,选择分配光驱,再选择虚拟光盘,接着点击右边的⽂件夹图标,在弹出的虚拟介质管理器对话框中,注册红旗Linux的安装光盘映象⽂件(例如redflag.iso),然后点击确定,就会出现如下的界⾯:9)在虚拟机主界⾯中,点击“开始”图标,启动虚拟机myredf的运⾏,就会出现如下的界⾯:10)接着,就按照课本中的关于红旗Linux的安装步骤,⼀步⼀步地进⾏配置和安装Linux。

3.安装成功Linux之后,再按照课本中的步骤进⾏登录和退出系统以及进⾏⼀些简单的配置⼯作。

linux操作系统实验电子教案文档

linux操作系统实验电子教案文档

Linux操作系统实验-电子教案文档第一章:Linux操作系统简介1.1 Linux概述1.1.1 Linux的定义1.1.2 Linux的历史与发展1.1.3 Linux的特点与优势1.2 Linux发行版介绍1.2.1 Ubuntu1.2.2 CentOS1.2.3 Fedora1.3 Linux文件系统结构1.3.1 Linux文件系统概述1.3.2 Linux文件系统结构详解第二章:Linux基本命令2.1 文件操作命令2.1.1 pwd:显示当前目录路径2.1.2 ls:列出目录内容2.1.3 cd:切换目录2.1.4 mkdir:创建新目录2.1.5 rm:删除文件或目录2.1.6 cp:复制文件或目录2.1.7 mv:移动或重命名文件或目录2.2 文本操作命令2.2.1 cat:显示文件内容2.2.2 more:分页显示文件内容2.2.3 less:分页显示文件内容2.2.4 grep:文本搜索工具2.3 权限管理命令2.3.1 chmod:修改文件权限2.3.2 chown:修改文件所有者2.3.3 chgrp:修改文件所属组2.4 进程管理命令2.4.1 ps:查看进程信息2.4.2 top:实时显示系统进程信息2.4.3 kill:发送信号到进程2.5 网络命令2.5.1 ping:检测网络连接2.5.2 ifconfig:配置和显示网络接口参数2.5.3 netstat:显示网络连接、路由表、接口统计等信息第三章:Linux文本编辑器3.1 vi/vim编辑器概述3.1.1 vi/vim的启动与退出3.1.2 vi/vim的基本操作3.1.3 vi/vim的文本编辑功能3.2 nano编辑器概述3.2.1 nano的启动与退出3.2.2 nano的基本操作3.2.3 nano的文本编辑功能第四章:Linux文件权限与所有权4.1 文件权限概述4.1.1 文件权限的定义4.1.2 文件权限的表示方法4.2 文件权限的设置与修改4.2.1 使用chmod命令设置文件权限4.2.2 使用chown命令修改文件所有权4.2.3 使用chgrp命令修改文件所属组4.3 特殊权限设置4.3.1 设置文件执行权限4.3.2 设置文件SUID、SGID和SBIT权限第五章:Linux常用软件与工具5.1 压缩与解压缩工具5.1.1 gzip:压缩工具5.1.2 bzip2:压缩工具5.1.3 tar:归档工具5.2 文件传输工具5.2.1 scp:远程复制文件5.2.2 sftp:安全文件传输协议5.2.3 rsync:同步文件5.3 网络通信工具5.3.1 ssh:安全终端登录5.3.2 ftp:文件传输协议5.4 磁盘管理工具5.4.1 df:显示磁盘空间使用情况5.4.2 du:显示文件或目录的磁盘使用情况5.4.3 mount:挂载文件系统5.4.4 umount:卸载文件系统Linux操作系统实验-电子教案文档第六章:用户管理6.1 用户和组的概念6.1.1 用户的定义6.1.2 用户组的概念6.2 用户管理命令6.2.1 useradd:创建用户6.2.2 userdel:删除用户6.2.3 usermod:修改用户信息6.2.4 groupadd:创建用户组6.2.5 groupdel:删除用户组6.2.6 groupmod:修改用户组信息6.3 用户密码管理6.3.1 passwd:设置和更改用户密码6.3.2 chpasswd:批量设置用户密码6.4 切换用户和查看用户信息6.4.1 su:切换用户6.4.2 sudo:以其他用户身份执行命令6.4.3 whoami:查看当前用户6.4.4 who:查看当前登录的用户6.4.5 w:查看当前登录的用户和系统负载第七章:磁盘管理7.1 磁盘分区7.1.1 分区类型7.1.2 fdisk:磁盘分区工具7.1.3 parted:磁盘分区工具7.2 文件系统格式化7.2.1 mkfs:创建文件系统7.2.2 df:查看磁盘空间使用情况7.2.3 du:查看文件或目录的磁盘使用情况7.3 磁盘挂载与卸载7.3.1 mount:挂载文件系统7.3.2 umount:卸载文件系统7.4 逻辑卷管理(LVM)7.4.1 LVM的概念7.4.2 pvcreate:创建物理卷7.4.3 vgcreate:创建逻辑卷组7.4.4 lvcreate:创建逻辑卷7.4.5 lvremove:删除逻辑卷7.4.6 vgextend:扩展逻辑卷组7.4.7 vgreduce:缩小逻辑卷组第八章:软件包管理8.1 软件包管理概述8.1.1 软件包的定义8.1.2 软件包管理系统的作用8.2 RPM软件包管理8.2.1 rpm:RPM软件包管理工具8.2.2 yum:基于RPM的软件包管理工具8.3 DPKG软件包管理8.3.1 dpkg:DPKG软件包管理工具8.3.2 apt-get:基于DPKG的软件包管理工具8.4 软件包安装与卸载8.4.1 安装软件包8.4.2 卸载软件包8.4.3 更新软件包8.4.4 搜索软件包8.5 软件包来源配置8.5.1 配置软件包仓库8.5.2 刷新软件包列表第九章:网络配置9.1 网络配置概述9.1.1 网络配置的作用9.1.2 网络配置的文件9.2 配置网络接口9.2.1 ifconfig:配置和显示网络接口参数9.2.2 ip:配置和显示网络接口参数9.3 配置域名解析9.3.1 resolv.conf:域名解析配置文件9.3.2 nslookup:查询域名服务器9.4 配置主机名9.4.1 hostname:配置主机名9.4.2 nslookup:查询域名服务器9.5 配置SSH免密登录9.5.1 SSH密钥9.5.2 SSH配置文件9.5.3 设置SSH免密登录第十章:系统监控与性能分析10.1 系统监控工具10.1.1 top:实时显示系统进程信息10.1.2 htop:增强型的top工具10.1.3 vmstat:虚拟内存统计信息10.1.4 iostat:I/O统计工具10.2 性能分析工具10.2.1 strace:跟踪系统调用和接收到的信号10.2.2 sar:收集、报告或存储系统活动的信息10.2.3 netstat:显示网络连接、路由表、接口统计等信息10Linux操作系统实验-电子教案文档第十一章:shell脚本编程11.1 shell脚本概述11.1.1 shell脚本的概念11.1.2 shell脚本的作用11.1.3 shell脚本的编写方式11.2 基本shell脚本编写11.2.1 脚本结构11.2.2 变量定义与使用11.2.3 条件判断11.2.4 循环控制11.2.5 函数定义与调用11.3 常用shell脚本命令11.3.1 文件操作命令11.3.2 文本操作命令11.3.3 进程管理命令11.3.4 网络管理命令11.4 调试与执行shell脚本11.4.1 调试工具11.4.2 脚本执行方式第十二章:系统安全12.1 系统安全概述12.1.1 系统安全的意义12.1.2 系统安全常见威胁12.1.3 系统安全防护措施12.2 用户权限管理12.2.1 文件权限设置12.2.2 用户和组管理12.3 防火墙配置12.3.1 iptables:防火墙配置工具12.3.2 firewalld:动态防火墙管理工具12.4 入侵检测系统12.4.1 auditd:审计守护进程12.4.2 fl2ban:自动屏蔽恶意IP地址12.5 加密与SSH12.5.1 SSH:安全终端登录12.5.2 SSH密钥与配置12.5.3 SSH免密登录12.6 病毒与恶意软件防护12.6.1 clamav:开源防病毒软件12.6.2 systemd-analyze:系统安全分析工具第十三章:虚拟化技术13.1 虚拟化技术概述13.1.1 虚拟化技术的概念13.1.2 虚拟化技术的作用13.1.3 虚拟化技术的类型13.2 QEMU虚拟化13.2.1 QEMU概述13.2.2 QEMU安装与配置13.2.3 QEMU使用方法13.3 KVM虚拟化13.3.1 KVM概述13.3.2 KVM安装与配置13.3.3 KVM使用方法13.4 Docker容器虚拟化13.4.1 Docker概述13.4.2 Docker安装与配置13.4.3 Docker使用方法第十四章:云计算与大数据14.1 云计算概述14.1.1 云计算的概念14.1.2 云计算的服务模式14.1.3 云计算的应用场景14.2 OpenStack云计算平台14.2.1 OpenStack概述14.2.2 OpenStack组件与架构14.2.3 OpenStack安装与配置14.3 大数据概述14.3.1 大数据的定义14.3.2 大数据处理技术14.3.3 大数据应用场景14.4 Hadoop大数据平台14.4.1 Hadoop概述14.4.2 Hadoop组件与架构14.4.3 Hadoop安装与配置第十五章:实验总结与拓展15.1 实验总结15.1.1 实验内容回顾15.1.2 实验技能总结15.2 拓展阅读与练习15.2.1 拓展阅读材料15.2.2 练习题目15.3 实验报告要求15.3.1 实验报告结构15.4 实验成绩评定15.4.1 实验成绩构成15.4.2 实验评分标准重点和难点解析重点:1. Linux操作系统的基本概念、历史、特点和优势。

Linux实用操作系统实验指导书

Linux实用操作系统实验指导书

Linux实用操作系统实验指导书实验一Linu某常用命令(一)一、实验目的1、熟悉Shell环境和Shell命令格式2、熟悉使用Linu某文件系统操作命令3、熟悉使用文件权限管理命令4、熟悉使用Linu某文件内容操作命令5、熟悉使用进程管理命令6、熟悉使用联机帮助命令二、实验工具1、Linu某操作系统三、实验说明本实验共4个学时,分为两个部分。

前一部分实现实验目的中的1~3三部分。

后一次实现其余部分。

四、实验内容和步骤(1)改变目录命令:cd目标目录路径步骤1:使用绝对路径依次进入Linu某根目录下的所有子目录。

例如:cd/ur/bin步骤2:使用绝对路径依次进入用户目录。

步骤3:使用相对路径进入子目录1)使用绝对路径进入/lib目录2)使用相对路径进入/lib/i868目录3)使用相对路径退回到/lib目录(2)列出并观察目录中的文件步骤1:进入任意目录,使用无参数l命令列出并观察其中所有文件;步骤2:进入任意目录,使用通配符列出其中部分文件;例如:cd/binlc某步骤3:使用-l选项,列出目录中文件的各种属性,并观察识别这些属性。

步骤4:直接列出子目录中的文件。

例如:li868步骤5:仅列出子目录本身(-d)步骤6:使用-F选项,显示文件类型标志。

步骤7:使用-a或-A选项,观察结果有什么变化。

步骤8:综合使用以上选项。

(3)目录的创建与删除步骤1:在用户目录中,使用相对路径创建一个任意名称的目录,如“tmp”。

mkdirtmp步骤2:删除该目录rmdirtmp步骤3:在根目录中,使用绝对路径在用户命令中创建一个子目录。

mkdir~/tmp步骤4:删除该目录rmdir~/tmp步骤5:使用-p参数一次创建多级目录。

如:mkdir~/tmp/dir1步骤6:使用-p参数删除多级目录。

如:cd~rmdirtmp/dir1(4)文件和目录拷贝命令:cp步骤1:从/ur/include目录中,任选一个文件拷贝到用户目录的tmp子目录中mkdir~/tmpcp/ur/include/ignal.h~/tmp步骤2:从/ur/include目录中,任选一个文件拷贝到用户目录的tmp子目录中,并改变其文件名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、实验环境
硬件环境:计算机一台,局域网环境; 软件环境:Linux Ubuntu 操作系统,gcc 编译器。
三、实验内容和步骤
1、Linux 进程状态及其相互转换 Linux 中,进程有以下 6 中状态。 Linux 系统中的进程主要有以下六种状态。 (1)TASK_RUNNING(可运行状态)。正在运行的进程或在可运行进程队列(run_queue)中 等待运行的进程处于该状态。它实际上包含一般操作系统原理教材中所谓进程三种基本状态中的 运行态和就绪两种状态。 当 CPU 空闲时,进程调度程序只在处于该状态的进程中选择优先级最高的进程运行。Linux 中运行态的进程可以进一步细分为 3 种:内核运行态、用户运行态和就绪态。 (2)TASK_INTERRUPTIBLE(可中断阻塞状态)。处于可中断阻塞状态的进程排成一个可中 断阻塞状态进程队列,该队列中的阻塞进程在资源有效时,能被信号或中断唤醒进入到运行态队 列。 (3)TASK_UNINTERRUPTIBLE(不可中断阻塞状态)。不可中断指的是进程不响应信号。处 于不可中断阻塞状态的进程排成一个不可中断阻塞状态进程队列。该队列中的阻塞进程,不可被 其他进程唤醒,只有被使用 wake_up()函数明确唤醒时才能转换到可运行的就绪状态。 (4)TASK_STOP/TASK_TRACED(暂停状态)。当进程收到信号 SIGSTOP、SIGTSTP、SIGTTIN 或 SIGTTOU 时就会进入暂停状态。可向其发送 SIGCONT 信号,让进程转换到可运行状态。 (5)TASK_DEAD-EXIT_ZOMBIE(僵死状态)。表示进程停止但尚未消亡的一种状态。此时 进程已经结束运行并释放掉大部分资源,但父进程尚未收回其 PCB。在进程退出时,将状态设为 TASK_ZOMBIE,然后发送信号给父进程,由父进程再统计其中的一些数据后,释放它的 task_struct 结构。处于该状态的进程已经终止运行,但是父进程还没有询问其状态。 (6)TASK_DEAD-EXIT_DEAD(退出状态),处于此状态的进程即将被销毁,EXIT_ DEAD 非常短暂,几乎不可能通过 ps 命令捕捉到。 Linux 中进程的状态转换过程如下图所示:
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 等待两个线程结束之后退出。 编译连接后,多次运行该程序,观察屏幕上显示结果的顺序性,直到出现不一样的情况为止,
(四)查看“不可中断阻塞”状态(D) 创建一个 C 程序,如 uninter_status.c,让其睡眠 30s
4
2016 操作系统实验指导书【Linux 版】
编译链接,后台运行该程序(后接&),并使用 ps 命令查看运行状态
(五)查看“僵尸”进程(Z) 创建一个 C 程序,如 zombie_status.c,在其中创建一个子进程,并让子进程迅速结束,而父进 程陷入阻塞
实验三 使用信号量进行互斥与同步
一、实验目的
本实验介绍在 Linux 中使用信号量进行进程同步、互斥的方法。读者可以通过实验进一步理 解进程间同步与互斥、临界区与临界资源的概念与含义,并学会 Linux 信号量的基本使用方法。
二、实验环境
硬件环境:计算机一台,局域网环境; 软件环境:Linux Ubuntu 操作系统,gcc 编译器。
sem_t* sem_open(const char *name, int oflag, mode_t mode, int value) name: 文件名路径,如’mysem’,会创建/dev/shm/sem.mysem oflag:O_CREATE 或 O_CREATE | O_EXCL O_CREATE:如信号量存在,则打开之,如不存在,则创建 O_CREATE | O_EXCL:如信号量已存在,则返回 error mode:信号量访问权限,如 0666 value:信号量初始化值
编译链接,后台运行该程序(后接&),并使用 ps 命令查看
(二)查看“暂停”状态(T) 运行 run_status 进程,其进入 R 状态:
3
2016 操作系统实验指导书【Linux 版】
使用 kill 命令,向 run_status 进程发送 SIGSTOP 信号,并使用 ps 命令观察其状态(进入了 T 状态)
2016 操作系统实验指导书【Linux 版】
操作系统实验指导书(Linux 版)
计算机科学与软件【Linux 版】
实验一 观察 Linux 进程状态
一、实验目的
在本实验中学习 Linux 操作系统的进程状态,并通过编写一些简单代码来观察各种情况下, Linux 进程的状态,进一步理解进程的状态及其转换机制。
编写两个 C 语言程序 black_chess.c 以及 red_chess.c,分别模拟下象棋过程中红方走子和黑方 走子过程。走子规则:红先黑后,红、黑双方轮流走子,到第 10 步,红方胜,黑方输。
编程思路: 设置一下两个同步信号量。 (1)hei:初值为 1,代表黑方已经走子,轮到红方走子(满足棋规“红先黑后”)。 (2)hong: 初值为 0,代表红方尚未走子。 红棋走子之前,先测试信号量 hei,判断黑方是否已经走子,如是,则轮到红方走子,否则 阻塞等待黑子走子,有于 hei 的初值为 1,因此一定是红方先走。红方走子完毕后,置信号量 hong, 通知黑方走子。 黑方走子之前,先测试信号量 hong,判断红方是否已经走子,如是,则轮到黑方走子,否则 阻塞等待红方走子,由于 hong 的初值为 0,因此在红方没有走子之前,黑方不会走子。黑方走子 完毕后,置信号量 hei,通知红方走子。 下象棋示例红棋 red_chess.c
注:父进程进入 S 状态,子进程进入 Z 状态。 编译链接,后台运行该程序(后接&),并使用 ps 命令查看运行状态(30s 内)
请写出程序代码及实验结果。实验者也可以不参照前面代码写,但要贴出实验结果。
四、实验总结
分析为什么出现以上现象,并对其进行总结:什么时候出现运行状态、暂停状态、可中断阻 塞状态、不可中断阻塞状态、僵尸状态?
使用 kill 命令,向 run_status 进程发送 SIGSCON 信号,并使用 ps 命令观察其状态(恢复到 R 状态)
(三)查看“可中断阻塞”状态(S) 创建一个 C 程序,如 interruptiblie_status.c,让其睡眠 30s
编译链接,后台运行该程序(后接&符号),并使用 ps 命令查看运行状态
int sem_wait(sem_t *sem) 测试指定的信号量的值,相当于 P 操作 若 sem > 0,则减 1 立刻返回; 若 sem = 0,则睡眠直到 sem > 0,此时立刻减 1,然后返回 int sem_post(sem_t *sem) 释放资源,相当于 V 操作 信号量 sem 的值加 1 唤醒正在等待该信号量的进程/线程
5
2016 操作系统实验指导书【Linux 版】
实验二 观察 Linux 进程/线程的异步并发执行
一、实验目的
通过本实验学习如何创建 Linux 进程及线程,通过实验,观察 Linux 进程及线程的异步执行。 理解进程及线程的区别及特性,进一步理解进程是资源分配单位,线程是独立调度单位。
二、实验环境
2
2016 操作系统实验指导书【Linux 版】
可以使用 ps 命令查看进程在系统中的状态。在 ps 命令的显示结果中,5 中字符分别代表 5 种不同的进程状态。
(1)R(TASK_RUNNING):可执行状态或运行状态 (2)S(TASK_INTERRUPTIBLE):可中断阻塞状态,可响应中断、接收信号(如 SIGKILL) (3)D( TASK_ UNINTERRUPTIBLE):不可中断阻塞状态,只能响应中断 (4)T( TASK_ STOPPED/ TASK_ TRACED):暂停状态或跟踪状态 (5)Z( TASK_ DEAD/EXIT_ZOMBIE):退出状态,进程成为僵尸进程 注:在状态字符后面如果带+(如 S+),表示进程是前台运行,否则是后台运行。 2 观察进程状态 (一)查看“运行”状态(R) 创建一个 C 程序,如 run_status.c,运行一段长循环,
硬件环境:计算机一台,局域网环境; 软件环境: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 的值。 参考程序(实验者也可以自己设计类似程序)
6
2016 操作系统实验指导书【Linux 版】
并观察每行打印结果中 count 的值。 参考程序(实验者也可以自己设计类似程序)
四、实验总结
观察两个实验结果中 count 值的变化,分析父进程和子进程两者之间的关系以及主线程和子 线程之间的关系,写出进程和线程两者之间的区别。
相关文档
最新文档