操作系统实验实验1

合集下载

操作系统安全实验1实验报告

操作系统安全实验1实验报告

操作系统安全实验1实验报告一、实验目的本次操作系统安全实验的主要目的是让我们深入了解操作系统的安全机制,通过实际操作和观察,掌握一些常见的操作系统安全配置和防护方法,提高对操作系统安全的认识和应对能力。

二、实验环境本次实验使用的操作系统为Windows 10 和Linux(Ubuntu 2004),实验设备为个人计算机。

三、实验内容与步骤(一)Windows 10 操作系统安全配置1、账户管理创建新用户账户,并设置不同的权限级别,如管理员、标准用户等。

更改账户密码策略,包括密码长度、复杂性要求、密码有效期等。

启用账户锁定策略,设置锁定阈值和锁定时间,以防止暴力破解密码。

2、防火墙配置打开 Windows 防火墙,并设置入站和出站规则。

允许或阻止特定的应用程序通过防火墙进行网络通信。

3、系统更新与补丁管理检查系统更新,安装最新的 Windows 安全补丁和功能更新。

配置自动更新选项,确保系统能够及时获取并安装更新。

4、恶意软件防护安装并启用 Windows Defender 防病毒软件。

进行全盘扫描,检测和清除可能存在的恶意软件。

(二)Linux(Ubuntu 2004)操作系统安全配置1、用户和组管理创建新用户和组,并设置相应的权限和归属。

修改用户密码策略,如密码强度要求等。

2、文件系统权限管理了解文件和目录的权限设置,如读、写、执行权限。

设置特定文件和目录的权限,限制普通用户的访问。

3、 SSH 服务安全配置安装和配置 SSH 服务。

更改 SSH 服务的默认端口号,增强安全性。

禁止 root 用户通过 SSH 登录。

4、防火墙配置(UFW)启用 UFW 防火墙。

添加允许或拒绝的规则,控制网络访问。

四、实验结果与分析(一)Windows 10 操作系统1、账户管理成功创建了具有不同权限的用户账户,并能够根据需求灵活调整权限设置。

严格的密码策略有效地增加了密码的安全性,减少了被破解的风险。

账户锁定策略在一定程度上能够阻止暴力破解攻击。

实验01 Windows的基本操作

实验01 Windows的基本操作

姓名:XXX班级:0000000学号:00 成绩:课程名称:计算机应用基础指导教师胡浩民实验日期:2014-09-18实验名称01:Windows的基本操作一、实验目的:1. 掌握桌面主题的设置、快捷方式的创建、开始菜单的组织。

2. 掌握任务栏的使用和设置、任务切换方法。

3. 掌握文件夹和文件的创建、属性查看和设置。

4. 掌握文件夹和文件的复制、移动和删除与恢复,文件和文件夹的搜索。

5. 掌握多任务间的数据传递——剪贴板的使用。

二、实验环境:中文Windows 7操作系统。

三、实验内容:1.按以下要求,进行桌面个性化设置(1)选用“人物”主题中的全部图片,设置以10秒间隔更换图片,并以“卡通人物”主题名保存在我的主题中。

(2)除“回收站”外,再显示“计算机”、“用户的文件”和“网络”三个桌面图标;(3)在桌面上创建系统应用程序“mspaint.exe”的桌面快捷方式,并将其改名为“画笔”;(4)在桌面快捷菜单中,分别设置桌面图标用大、中、小图标显示,观察其效果;(5)设置屏幕保护程序为华文楷书、中号、紫红色、中速滚动的三维文字“今天我做对了什么事?”,设置屏幕保护等待时间为10分钟;(6)设置屏幕分辨率为1024×768;在桌面的右上角添加日历和时钟小工具,并按日历在上、时钟在下稍加重叠安放;2.按下列要求练习对“开始”菜单的操作(1)用Word分别打开配套光盘“实验素材\实验4”中test1.docx\test2.docx、test3.docx 三个文档后立即关闭,显示Word的跳转列表,然后将文档test1列表项锁定,最后将test1列表项解除锁定;(2)将“桌面小工具库”添加到“开始”菜单的程序列表中,然后将“桌面小工具库”锁定在程序列表上方,最后将其解除锁定;(3)利用搜索框,分别查找包含有汉字“计算机的”和“mspaint.exe”文本,观察其结果;3.按以下要求,进行任务栏设置和操作,体验任务栏的功能(1)分别打开两个文件夹、三个Word文档、一个Excel文档和一个画图文件,观察任务栏按钮区任务按钮的形态,并观察窗口的预览效果;(2)维持上述多文档打开状态下,分别设置任务栏“始终合并、隐藏标签”、“当前任务栏被占满时合并”和“从不合并”显示方式;观察任务栏按钮区任务按钮的显示变化;(3)显示Word任务按钮的跳转列表,并将Word程序项锁定在任务栏;4.创建文件夹和文件在C:\下创建如右图所示的文件夹结构:5.设置文件夹的查看形式、排序方式和预览窗格(1)先后选用不同的查看方式显示“实验素材\实验5”文件夹的内容,观察查看方式的差别;(2)选择文件夹“实验素材\实验5”,通过设置显示或不显示隐藏的文件和文件夹,比较两者不同的显示效果;(3)任选文件夹,分别选用“名称”、“修改日期”、“类型”、“大小”排序方式显示文件和文件夹,了解不同的排序效果;(4)启用文件预览窗格,任意选择文件夹或文件对象,观测预览窗格的预览效果;6.文件和文件夹的复制、移动和更名(1)利用菜单操作,将文件C:\aa1\test.txt 复制到C:\aa1\bb1中;(2)利用鼠标操作,将文件C:\aa1\test.txt 复制到C:\aa2\bb2中;(3)利用剪贴板操作,将文件C:\aa1\test.txt 复制到C:\aa2中;姓名:XXX 班级:0000000 学号:00 成绩:课程名称:计算机应用基础 指导教师 胡浩民 实验日期:2014-09-18(4)将文件C :\aa2的子文件夹bb2移动到C :\aa1\bb1中;(5)将C :\aa2文件夹复制到C :\aa1文件夹中;(6)将C :\aa2文件夹更名为abc ,将C :\aa1\bb1文件夹下的test.txt 文本文件名改为sch001.ini ;7. 文件和文件夹的删除与恢复;(1)删除文件C :\aa2\test.txt 到“回收站”; 删除文件C :\aa2文件夹;(2)从“回收站”恢复C :\aa2文件夹; 永久性删除文件C :\aa1\bb1\bb2文件夹;8. 查看和设置文件和文件夹的属性(1)查看C :\Windows 包含的文件和文件夹数量;(2)将C 盘下的abc 文件夹的属性设置为只读和隐藏;9. 文件和文件夹的搜索,设置磁盘卷标(1)搜索C 盘下的文件名以“会议”开始的所有Word 文件(扩展名为doc);在“图片库”搜索所有bmp 格式的图片文件;(2)将C 盘的卷标设置为“主磁盘”;10. 通过剪贴板,完成下列任务(1)将当前整个屏幕画面保存到U 盘,存为JPEG 格式图像文件“屏幕.jpg ”;(2)将Windows 7的“帮助和支持”主窗口图像复制到新Word 文档中;11. 将C :\aa1、abc 文件夹复制到D 盘中自己的文件夹(即学号姓名命名的文件夹),将此文件夹压缩为“学号姓名.rar ”文件,存放在D 盘下,然后把压缩文件上传(作业递交)。

操作系统实验1--进程管理

操作系统实验1--进程管理

设计一个有N个进程的进程调度程序一、实验目的通过一个简单的进程调度模拟程序的实现,加深对各种进程调度算法,进程切换的理解。

二、实验内容1、进程调度算法:采用动态最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。

2、每个进程有一个进程控制块(PCB)表示。

进程控制块可以包含如下信息:●进程名----进程标示数ID;●优先数----Priority,优先数越大优先权越高;●到达时间----进程的到达时间为进程输入的时间;●进程还需要运行时间----AllTime,进程运行完毕AllTime =0;●已用CPU时间----CPUTime;●进程的阻塞时间StartBlock----表示当进程在运行StartBlock个时间片后,进程将进入阻塞状态;●进程的阻塞时间StartTime----表示当进程阻塞StartTime个时间片后,进程将进入就绪状态;●进程状态----State;●队列指针----Next,用来将PCB排成队列。

3、调度原则●进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。

进程的到达时间为进程输入的时间;●进程的运行时间以时间片为单位进行计算;●进程在就绪队列中带一个时间片,优先数加1;●每个进程的状态可以是就绪R(Ready)、运行R(Run)、阻塞B(Block)、或完成F(Finish)四种状态之一;●就绪进程获得CPU后都只能运行一个时间片,用已占用CPU时间加1来表示;●如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减3,然后把它插入就绪队列等待CPU;●每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查;●重复以上过程,直到所要进程都完成为止。

三、实验要求完成实验内容并写出实验报告,报告应具有以下内容:1、实验目的。

操作系统实验--处理机调度算法实现

操作系统实验--处理机调度算法实现
主要用到的技术是STL中的vector以维护和保存进程容器、就绪容器、完成容器。
当程序启动时,用户可以选择不同的调度算法。然后用户从控制台输入各个进程的信息,这些信息保存到进程容器中。进程信息输入完毕后,就开始了进程调度,每调度一次判断就绪队列是否为空,若为空则系统时间加一个时间片。判断进程容器中是否有新的进程可以加入就绪队列。
struct proc //定义进程结构体
{
char name[5];
int num;
int pri;
};
void main()//主函数
{ char ch;
struct proc pr[n];//声明结构体数组
int i,k,j;
int count=n;
for(i=0;i<n;i++)//输入5个进程
函数描述:
struct proc/*定义结构体内部包含进程的信息*/
{
char name[5]; /*定义进程名*/
int num; /*定义运行时间*/
int pri; /*定义优先权*/
};
Void main()/*主函数:掌控整个程序的运行过程,是程序的主体部分*/
struct proc pr[n];/*声明结构体数组*/
4.处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。
5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。
6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
for(k=1;k<n;k++)

四川大学计算机操作系统 实验一 熟悉Linux命令

四川大学计算机操作系统 实验一  熟悉Linux命令
操作命令: cat:显示文件内容。 如:cat /etc/vsftpd/vsftpd.conf cp: 复制文件 cp /etc/vsftpd/vsftpd.conf testcp 把文件/etc/vsftpd/下的文件vsftpd.conf复制到当 前目录下,并重命名为testcp。 rm :删除文件
实验一 熟悉Linux命令
选择开始->程序->VMware->VMware Workstation,运行虚拟机:
登陆linux系统:帐户root,密码123456
实验一 熟悉Linux命令
鼠标和键盘在某一时刻只能由一个系统占用。两 个设备在两个系统之间的切换: ①鼠标点击VMware的工作窗口,进入Linux系统; ②在Linux状态下按Ctrl+Alt回到windows系统。 登陆Linux系统: 使用用户名“root” 注意:由于root是超级管理员,所以不要运行大 的删除命令。 本试验没有用到图形化界面,只用终端即可
实验一 熟悉Linux命令
1.1实验目的 (1)通过在Linux系统终端下执行一些基本命令, 初步建立对Linux系统的了解,会使用man命令查 找这些命令的使用帮助。 (2)理解/proc作为虚拟文件系统的作用。 (3)学习Linux内核、进程、存储等资源的一些重 要特征。
实验一 熟悉Linux命令
实验一 熟悉Linux命令
shell的特殊字符 (1)通配符*、? ,使用通配符可以表示多个文件: ls /etc/a* 列出/etc目录下以a打头的 所有文件名。 ls /etc/a?i* 列出/etc目录下以a打头的,第二个为任一字符, 接下来的字符为i的文件。 (2)sort命令:从所给文件中按行读取正文,并按照第一 个字母的顺序排序,然后将结果到标准输出(屏幕),如: (假设当前目录有文件animals) $ sort animals bee 屏幕输出第一行 cat 屏幕输出第二行 dog 屏幕输出第三行

Windows操作系统实验

Windows操作系统实验

第2章Windows操作系统实验实验一Windows基本操作作业要求(1)将打开的窗口层叠,在各窗口中进行切换,并改变窗口的大小,这里要分清窗口右上角的三个按钮的作用。

注意:窗口在最小化时,程序仍在运行,单击“任务栏”窗口中的相关按钮,窗口即恢复。

(2)对菜单栏菜单、快捷菜单进行操作,注意菜单命令的各种不同形式。

(3)打开一个对话框,熟悉其中的各个操作元素。

实验二文件管理操作作业要求在Windows实验素材库建立了如图2-6所示的文件夹结构。

从相应网站下载该实验素材文件夹中的EXERCISE文件夹到D盘根目录下,完成以下操作:(1)在D盘根目录下建立如图2-7所示的文件夹结构。

(2)将EXERCISE文件夹下除TOOL以外的文件夹复制到STUDENT文件夹下。

(3)将STUDENT文件夹下的DOCUMENT文件夹下的文件移动到STUDENT1\WORD文件夹下。

(4)将ELSE文件夹重命名为WIN。

(5)删除VOICE和USER文件夹。

(6)恢复被删除的VOICE文件夹,彻底删除USER文件夹。

实验三运行程序和打开文档操作作业要求(1)选择“开始”菜单的“运行”命令运行计算器程序(Calc.exe)。

(2)选择“开始”菜单的“程序”命令运行画图程序。

(3)在“开始”菜单的“文档”中,找到一个近期使用过的文档,打开并编辑它。

(4)搜索“mspaint.exe”程序文件,并运行之。

实验四定制工作环境与计算机管理操作作业要求(1)在屏幕上找到“任务栏”窗口,将“任务栏”窗口隐藏或取消隐藏,并且改变“任务栏”窗口的大小。

(2)将自己喜爱的程序设置为屏幕保护程序。

(3)将自己喜爱的图片设置为桌面背景,并使图片平铺于桌面上。

(4)将桌面上的“我的电脑”图标拖动到任务栏的快速启动区。

(5)在桌面上创建“画图程序”的快捷方式。

实验五 Windows 2000综合练习作业要求从相应网站下载Windows实验素材文件夹中的EXERCISE文件夹到D盘根目录下,然后在EXERCISE文件夹下完成以下操作:(1)在USER文件夹下建立如下所示的文件夹结构。

《操作系统》课程实验内容和实验要求

《操作系统》课程实验内容和实验要求

实验内容和实验要求实验1:安装Linux系统(4学时)目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。

2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。

3.学会Linux操作系统的安装步骤和简单配置方法。

4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。

内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。

2.安装Linux系统(如红旗Linux桌面版)。

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

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

5.对图形界面进行一般操作。

要求:1.制订安装计划。

2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。

3.在光驱中放入Linux系统安装盘,启动系统。

按照屏幕提示,选择/输入相关参数,启动安装过程。

4.安装成功后,退出系统,取出安装盘。

重新开机,登录Linux系统。

5.对Linux系统进行配置,如显示设备、打印机等。

6.利用鼠标对图形界面进行操作。

说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。

2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。

实验2:Linux 应用及shell编程(4学时)目的:1.掌握Linux一般命令格式和常用命令。

2.学会使用vi编辑器建立、编辑文本文件。

3.了解shell的作用和主要分类。

4.学会bash脚本的建立和执行方式。

5.理解bash的基本语法。

6.学会编写简单的shell脚本。

内容:1.正确地登录和退出系统。

2.熟悉使用date,cal等常用命令。

3.进入和退出vi。

利用文本插入方式建立一个文件。

4.学会用gcc编译器编译C程序。

5.建立shell脚本并执行它。

6.学会使用shell变量和位置参数、环境变量。

操作系统实验_实验1课案

操作系统实验_实验1课案

广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室 2015年11月11日实验课操作系统成绩程名称实验项进程管理与进程通信指导老师陈康民目名称(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)进程管理(一)进程的创建实验一、实验目的1、掌握进程的概念,明确进程的含义2、认识并了解并发执行的实质二、实验内容1、编写一段程序,使用系统调用fork( )创建两个子进程。

当此程序运行时,在系统中有一个父进程和两个子进程活动。

让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。

试观察记录屏幕上的显示结果,并分析原因。

2、修改上述程序,每一个进程循环显示一句话。

子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。

三、实验步骤1、编写一段程序,使用系统调用fork( )创建两个子进程。

代码:#include <stdio.h>main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0) putchar('b');else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0) putchar('c');else putchar('a');}}运行结果:bca,bac, abc ,……都有可能。

2、修改上述程序,每一个进程循环显示一句话。

子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。

代码:#include <stdio.h>main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0)for(i=0;i<10;i++)printf("daughter %d\n",i);else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0)for(i=0;i<10;i++)printf("son %d\n",i);elsefor(i=0;i<10;i++)printf("parent %d\n",i);}}结果:parent…son…daughter..daughter..或parent…son…parent…daughter…等四、分析原因除strace 外,也可用ltrace -f -i -S ./executable-file-name查看以上程序执行过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(p2==0) putchar('c');
else putchar('a');
}
}
修改后:
#include<stdio.h>
#include<unistd.h>
int main( )
{
int p1,p2,i;
while((p1=fork( ))== -1); /*创建子进程p1*/
if (p1==0)
switch(pid)
{
case -1: /*创建失败*/
printf("fork fail!\n");
exit(1);
case 0: /*子进程*/
execl("/bin/ls","ls","-1","-color",NULL);
printf("exec fail!\n");
exit(1);
default: /*父进程*/
3.2、观察并分析出现的现象
4.1、写一个使用守护进程(daemon)的程序,来实现:
创建一个日志文件/var/log/Mydaemon.log;
每分钟都向其中写入一个时间戳(使用time_t的格式);
5.1、用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕发出信号,子进程捕捉到信号后分别输出下列信息后终止:
5、lockf(files,function,size)用作锁定文件的某些段或者整个文件。
6、每个信号都对应一个正整数常量(称为signal number,即信号编号。定义在系统头文件<signal.h>中),代表同一用户的诸进程之间传送事先约定的信息的类型,用于通知某进程发生了某异常事件。每个进程在运行时,都要通过信号机制来检查是否有信号到达。若有,便中断正在执行的程序,转向与该信号相对应的处理程序,以完成对该事件的处理;处理结束后再返回到原来的断点继续执行。实质上,信号机制是对中断机制的一种模拟,故在早期的UNIX版本中又把它称为软中断。
waiting( );
lockf(stdout,1,0);
printf("Child process 2 is killed by parent!\n");
lockf(stdout,0,0);
exit(0);
}
}
else
{
wait_mark=1;
signal(16,stop); /*接收到软中断信号16,转stop*/
if (p1==0)
{
lockf(1,1,0); /*加锁,这里第一个参数为stdout(标准输出设备的描述符)*/
for(i=0;i<10;i++)
printf("daughter %d\n",i);
lockf(1,0,0); /*解锁*/
}
else
{
while((p2=fork( ))==-1); /*创建子进程p2*/
Child process1 is killed by parent!
Child process2 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止:
Parent process is killed!
5.2、用软中断通信实现进程同步的机理
6.1、编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话:
#include <stdio.h>
#include <stdlib.h>
#include<sys/wait.h>
#include <signal.h>
#include <unistd.h>
void waiting( ),stop( );
int wait_mark;
int main( )
{
int p1,p2,stdout;
kill(p1,16); /*向p1发软中断信号16*/
kill(p2,17); /*向p2发软中断信号17*/
wait(0); /*同步*/
wait(0);
printf("Parent process is killed!\n");
exit(0);
}
else
{
wait_mark=1;
signal(17,stop); /*接收到软中断信号17,转stop*/
waiting( );
lockf(stdout,1,0);
printf("Child process 1 is killed by parent!\n");
lockf(stdout,0,0);
exit(0);
}
}
void waiting( )
{
while(wait_mark!=0);
}
void stop( )
while((p1=fork( ))==-1); /*创建子进程p1*/
if(p1>0)
{
while((p2=fork( ))==-1); /*创建子进程p2*/
if(p2>0)
{
wait_mark=1;
signal(SIGINT,stop); /*接收到^c信号,转stop*/
waiting( );
for(i=0;i<10;i++)
printf("daughter %d\n",i);
else
{
while((p2=fork( ))== -1); /*创建子进程p2*/
if(p2==0)
for(i=0;i<10;i++)
printf("son %d\n",i);
else
for(i=0;i<10;i++)
fp=fopen("/var/log/Mydaemon.log","a");
pid_t pid;
pid=fork();
if(pid>0){
printf("Daemon on duty!\n");
exit(0);
}
else if(pid<0){
printf("Can't fork!\n");
exit(-1);
if (p2==0)
{
lockf(1,1,0); /*加锁*/
for(i=0;i<10;i++)
printf("son %d\n",i);
lockf(1,0,0); /*解锁*/
}
else
{
lockf(1,1,0); /*加锁*/
for(i=0;i<10;i++)
printf("parent %d\n",i);
lockf(1,0,0); /*解锁*/
}
}
}
4、守护神程序:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include<sys/time.h>
int main(){
time_t t;
FILE *fp;
五、实验程序
1、创建子进程相关代码
#include <stdio.h>
#include<unistd.h>
int main( )
{
int p1,p2;
while((p1=fork( ))==-1); /*创建子进程p1*/
if (p1==0) putchar('b');
else
{
while((p2=fork( ))==-1); /*创建子进程p2*/
7、信号的发送,是指由发送进程把信号送到指定进程的信号域的某一位上。如果目标进程正在一个可被中断的优先级上睡眠,核心便将它唤醒,发送进程就此结束。一个进程可能在其信号域中有多个位被置位,代表有多种类型的信号到达,但对于一类信号,进程却只能记住其中的某一个。
8、当一个进程要进入或退出一个低优先级睡眠状态时,或一个进程即将从核心态返回用户态时,核心都要检查该进程是否已收到软中断。当进程处于核心态时,即使收到软中断也不予理睬;只有当它返回到用户态后,才处理软中断信号。
wait(NULL); /*同步*/
printf("ls completed !\n");
exit(0);
}
}
3、lockf相关代码
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main( )
{
int p1,p2,i;
while((p1=fork( ))==-1); /*创建子进程p1*/
1.2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
2.1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容
2.2、利用wait( )来控制进程执行顺序
相关文档
最新文档