操作系统实验3答案
操作系统实验,实验3, 进程管理 (1)

在图形界面上利用终端通过命令“su - ”切换到超级用户,编辑文件 “job”; 按组合键[Ctrl+Alt+F2]切换到第二个虚拟终端(超级用户); 输入命令“at –f job now+1 minute”,设置1分钟后执行at调度内容; 稍等后观察at调度的执行效果,再切换到第一个虚拟终端观察at调度 的执行效果;
切换到第一个虚拟终端观察at调度的执行效果(5分钟后系统将执行重 启调度任务)。
[操作要求2] 设置一个调度,要求1分钟后执行文件job中的作业。 文件job的内容为: find /home/jkx/ -name “*.c” > /home/jkx/fdresult wall user jkx, all code files have been searched out! Please check out. [操作步骤]
续表
守 护 进 程 innd Usenet新闻服务器 功 能 说 明
linuxconf
lpd named netfs network
允许使用本地WEB服务器作为用户接口来配置机器
打印服务器 DNS服务器 安装NFS、Samba和NetWare网络文件系统 激活已配置网络接口的脚本程序
nfsd
portmap postgresql routed sendmail
事件(例如xinetd和lpd)
启动守护进程有如下几种方法
在引导系统时启动 人工手动从shell提示符启动
系统启动script的执行期间 被启动(/etc/rc.d) 任何具有相应执行 权限的用户
使用crond守护进程启动
执行at命令启动
守护进程一般由系统在开机时通过脚本或root
计算机操作系统作业3(含答案).

一、单项选择题1.联想存储器在计算机系统中是用于______的。
A.存储文件信息B.与主存交换信息C.内存地址变换D.内存管理信息2.作业在执行中发生了缺页中断,经操作系统处理后,应该执行的指令是______。
A.被中断的前一条B.被中断的后一条C.作业的第一条D.被中断的指令在请求分页存储管理中,当指令的执行所需要的内容不在内存中时,发生缺页中断,当缺页调入内存后,应执行被中断指令。
另:缺页中断作为中断与其它中断一样要经历如保护CPU环境,分析中断原因,转入缺页中断处理程序进行处理,恢复CPU环境等几个步骤,但缺页中断又是一种特殊的中断,它与一般中断相比,有着明显的区别,主要表现在下面两个方面:(1)缺页中断是在指令执行期间产生和处理中断信号的。
(2)一条指令的执行期间,可能产生多次缺页中断。
3.实现虚拟存储器的目的是______。
A.实现存储保护B.实现程序浮动C.扩充外存容量D.扩充内存容量4.在段页式存储系统中,一个作业对应______。
A.多个段表B.一个段表,一个页表C.一个段表,多个页表D.多个段表,多个页表5.在虚拟页式存储管理方案中,完成将页面调入内存的工作的是______。
A.缺页中断处理B.页面淘汰过程C.工作集模型应用D.紧缩技术利用6.采用分页式内存管理时,重定位的工作是由______完成的。
A.操作系统B.用户C.地址转换机构D.内存空间分配程序7.在分页式内存管理系统中可能出现的问题是______。
A.颠簸B.不能共享C.外部碎片D.动态链接8.在下列有关分页式内存管理的叙述中正确的是______。
A.程序和数据是在开始执行前一次性和装入的B.产生缺页中断一定要淘汰一个页面C.一个被淘汰的页面一定要写回外存D.在页面中有“访问位”和“修改位”等消息9. 在可变式分配方案中,最佳适应算法是将空白区在空白区表中按______次序排列。
A.地址递增B.地址递减C.容量递增D.容量递减10. 在可变分区分配方案中,将空白分区按地址递增次序排列是要采用______。
操作系统实验3-进程控制

WORD wMajorReq=(WORD)(dwVerReq>16);
WORD wMinorReq=(WORD)(dwVerReq&0xffff);
::cout<<"Process ID:"<<dwIdThis<<",requires OS:"<<wMajorReq<<wMinorReq<<::endl;
{
//改变优先级
::SetPriorityClass(
::GetCurrentProcess(), //利用这一进程
HIGH_PRIORITY_CLASS); //改变为high
//报告给用户
::cout<<"Task Manager should indicate this "
"process is high priority."<<::endl;
//设置版本信息的数据结构,以便保存操作系统的版本信息
OSVERSIONINFOEX osvix;
::ZeroMemory(&osvix,sizeof(osvix));
osvix.dwOSVersionInfoSize=sizeof(osvix);
//提取版本信息和报告
::GetVersionEx(reinterpret_cast<LPOSVERSIONINFO>(&osvix));
Parent();
}
return 0;
}
分析:程序4-3.cpp说明了一个进程从“生”到“死”的整个一生,第一次执行时,它创建一个子进程,其行为如同“父亲”。在创建子进程之前,先创建一个互斥的内核对象,其行为对于子进程来说,如同一个“自杀弹”。当创建子进程时,就打开了互斥体并在其他线程中进行别的处理工作,同时等待着父进程使用ReleaseMutex()API发出“死亡”信号。然后用Sleep()API调用来模拟父进程处理其他工作,等完成时,指令子进程终止。
操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日一、综合实验的目的与要求1. 理解和掌握操作系统的基本概念、基本组成与工作原理;2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法;3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。
二、实验正文实验1:实验环境的使用1.1实验目的:1.熟悉操作系统集成实验环境OS Lab 的基本使用方法。
2.练习编译、调试EOS 操作系统内核以及EOS 应用程序。
1.2实验内容:1.启动OS Lab2.学习OS Lab 的基本用法● 新建 Windows 控制台应用程序项目(1)在“文件”菜单中选择“新建”,然后单击“项目”。
(2)在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。
(3)在“名称”中输入新项目使用的文件夹名称“oslab ”。
(4)在“位置”中输入新项目保存在磁盘上的位置“C:\test ”。
(5)点击“确定”按钮。
● 生成、执行项目●3.EOS 内核项目的生成和调试● 新建 EOS 内核项目并按F7生成项目● 调试项目● 查看软盘镜像文件中的内容、EOS SDK (Software Development Kit )文件夹4.EOS 应用程序项目的生成和调试● 新建 EOS 应用程序项目● 修改 EOS 应用程序项目名称使用断点中断执行查看变量的值5.退出OS Lab6.保存EOS内核项目1.3思考与练习●在实验1中,生成EOS SDK文件夹的目的和作用是什么?答:SDK文件夹中提供了开发EOS应用程序需要的所有文件。
debug文件夹是在使用debug配置生成项目时生成的,其中存放了调试版本的EOS二进制文件。
操作系统实验3进程同步报告

实验三进程同步一、实验目的:1.了解进程和线程的同步方法,学会运用进程和线程同步方法来解决实际问题;2.了解windows系统下Win32 API或Pthread信号量机制的使用方法;二、实验预备内容:1.对书上所说基于信号量的有限缓冲的生产者-消费者问题;2.对于信号量的概念有大概的了解,知道如何用信号量的wiat()和signal()函数如何取消应用程序进入临界区的忙等;三、实验环境说明:此实验在Win7(32位) CodeBlocks环境下实现,采用WinAPI的信号量机制。
四、实验内容:设计一个程序解决有限缓冲问题,其中的生产者与消费者进程如下图所示。
在Bounded-Buffer Problem(6.6.1节)中使用了三个信号量:empty (记录有多少空位)、full(记录有多少满位)以及mutex(二进制信号量或互斥信号量,以保护对缓冲区插入与删除的操作)。
对于本项目,empty和full将采用标准计数信号量,而mutex将采用二进制信号量。
生产者与消费者作为独立线程,在empty、full、mutex的同步前提下,对缓冲区进行插入与删除。
本项目可采用Pthread或Win32 API。
(本实验采用Win32 API)五、程序设计说明:1.全局变量:定义缓冲区数组及其环形队列表达方式,定义mutex、empty、full 三个信号量。
empty记录缓冲区有多少个空位;full记录缓冲区有多少个满位;mutex作为互斥信号量,保护对缓冲区插入或删除的操作。
具体定义如下:定义生产者、消费者线程结构和包含的信息:(由于题目中没有要求,因此只定义了编号一个变量)2.缓冲区:缓冲区是一个元数据类型为buffer_item(可通过typedef定义)的固定大小的数组,按环形队列处理。
buffer_item的定义及缓冲区大小可保存在头文件中:A.insert_item():先判断缓冲区是否已满,不满则向缓冲区中插入元素;B.remove_item()先判断缓冲区是否为空,不空则从缓冲区中删除元素;3.生产者线程:生产者线程交替执行如下两个阶段:睡眠一段随机事件,向缓冲中插入一个随机数。
计算机操作系统实验报告答案

《操作系统》实验报告专业年级:姓名:学号:提交日期:实验一:操作系统环境1.1 Windows 2000 系统管理(实验估计时间:60分钟)实验内容与步骤1、计算机管理2、事件查看器3、性能监视4、服务5、数据库(ODBC)为了帮助用户管理和监视系统,Windows 2000提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。
步骤1:登录进入Windows 2000 Professional。
步骤2:在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。
在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1) 本地安全策略:查看和修改本地安全策略,如用户权限和审核策略。
2) 服务:启动和停止服务。
3) 计算机管理器:管理磁盘以及使用其他系统工具来管理本地或远程的计算机。
4) 事件查看器:显示来自于 Windows 和其他程序的监视与排错消息。
5) 数据源:添加、删除、以及配置 ODBC 数据源和驱动程序。
6) 性能:显示系统性能图表以及配置数据日志和警报。
7) 组件服务:配置和管理 COM+ 应用程序。
1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows 2000管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。
步骤3:在“管理工具”窗口中,双击“计算机管理”图标。
“计算机管理”使用的窗口与“Windows资源管理器”相似。
在用于导航和工具选择的控制台目录树中有“系统工具”、“存储”及“服务和应用程序”等节点,窗口右侧“名称”窗格中显示了工具的名称、类型或可用的子工具等。
它们是:1)系统工具,填入表2-3中。
表2-3 实验记录2) 存储,填入表2-4中。
3) 服务和应用程序,填入表2-5中。
2. 事件查看器事件查看器不但可以记录各种应用程序错误、损坏的文件、丢失的数据以及其他问题,而且还可以把系统和网络的问题作为事件记录下来。
国开电大《操作系统运维管理》形考作业三 配置文件服务实训答案

形考作业三配置文件服务实训【实训目标】理解NTFS文件系统的特点,掌握NTFS权限的设置,理解共享文件夹,掌握创建和管理共享文件夹的方法与步骤,掌握访问共享文件夹的方法。
【实训环境】1台服务器,1台客户端。
【实训内容】假设你是一家公司的网络管理员,负责管理和维护公司的网络。
公司希望设置文件服务器来管理用户对文件资源的访问。
为此,需要你执行以下工作:(1)在文件服务器上的文件夹D:\data中存放文档,并设置NTFS权限。
(2)禁用D:\data文件夹的继承权限,然后为用户帐户Administrator分配对文件夹D:\data的“完全控制”权限,为用户帐户user1分配对文件夹D:\data的“读取”权限,为用户帐户user2分配对文件夹D:\data的“读取”和“写入”权限,为用户帐户user3分配对文件夹D:\data的“读取(拒绝)”权限。
(3)使用“查看有效访问”功能,确认已分配的权限。
(4)在文件服务器上共享文件夹D:\file,允许用户帐户user1能够以“读取”的方式访问这个共享文件夹,用户帐户user2能够以“更改”的方式访问这个共享文件夹。
(5)对共享文件夹D:\file启用“基于访问的枚举”。
实训报告要求:1.实训报告由实训目标、实训环境、实训内容、实训结果、实训体会五个方面构成。
2.实训结果为安装和配置主要界面的照片或者截图。
一、设置NTFS 权限对于新创建的NTFS 分区(卷),系统会自动为其设置默认的权限。
如图 1 所示为 C 盘的默认权限。
其中,在【组或用户名】处列出了对 C 盘具图1 C 盘的默认NTFS 权限对一个文件设置NTFS 文件权限的操作步骤如下:①在Windows 资源管理器窗口中右击一个文件(如: a.txt )→【属性】→【安全】选项卡,这时将弹出如图2 所示的对话框。
在该对话框中可以看到有哪些用户账户或组账户对该文件具有什么样的访问权限。
其中,具有灰色对勾的权限是从父文件夹那里继承下来的权限。
2021年国开电大《操作系统》形考任务3答案

2021年国开电大《操作系统》形考任务3答案题目为随机抽题请用CTRL+F来搜索试题形考任务三通道是一种()。
参考答案:I/O专用处理机特殊文件是与()有关的文件。
参考答案:硬件设备在以下的文件物理存储组织形式中,常用于存放大型系统文件的是(参考答案:连续文件在UNIX系统中,磁盘存储空间空闲块的链接方式是()。
参考答案:空闲块成组链接法在UNIX/Linux系统中,用户程序经过编译之后得到的可执行文件属于参考答案:普通文件文件系统为每个文件另建立一张指示逻辑记录和物理记录之间的对应关系表,由此表和文件本身构成的文件是()。
参考答案:索引文件文件系统采用二级文件目录可以()。
参考答案:解决不同用户间的文件命名冲突在UNIX系统中,某文件的使用权限设置为754,则表示()。
参考答案:文件主可读、写、执行在操作系统中,用户在使用I/O设备时,通常采用()。
参考答案:设备的相对号为了使多个进程能有效地同时处理阵发性的输入和输出,最好使用()结构的缓冲技术。
参考答案:多缓冲设备的打开、关闭、读、写等操作是由()完成的。
参考答案:设备驱动程序设磁盘的转速为3000转/分,盘面划分为10个扇区,则读取一个扇区的时间是()。
参考答案:2ms下列描述中,不是设备管理的功能的是()。
参考答案:实现中断处理通过硬件和软件的功能扩充,把原来独占的设备改造成为能为若干用户共享的设备,这种设备称为()设备。
参考答案:虚拟一个含有6个盘片的双面硬盘,盘片每面有100条磁道,则该硬盘的柱面数为()。
参考答案:100用户编制的程序与实际使用的物理设备无关是由()功能实现的。
参考答案:设备独立性下列不属于设备分配技术的是()。
参考答案:通道分配技术控制和管理资源建立在单一系统策略基础上,将计算功能分散化,充分发挥网络互联的各自治处理机性能的多机系统是()。
参考答案:分布式系统下面关于嵌入式系统的描述,错误的是()。
参考答案:软件与硬件相对独立安装和卸载下列描述不属于文件系统功能的是()。
操作系统实验及答案

实验 5 文件系统设计
1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
2、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少 4 条);
先vi 命令是打开 vi 编辑器。后面的 filename.c 是用户即将编辑的 c 文件名字,注意扩展名字是. c; 当然,vi 编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也 可以直接用 vi 打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。 2. 最基本的命令 I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的 I 键(insert),插 入的意思,就可以进入编辑模式了。如下图所示:
4
②在上面的程序中增加语句signal (SIGNAL, SIG-IGN) 和signal (SIGQUIT, SIG-IGN), 观察执行结 果,并分析原因。
(4)进程的管道通信 编制一段程序,实现进程的管理通信。 使用系统调用pipe()建立一条管道线;两个子进程P1 和P2 分别向管道中写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。 要求父进程先接收子进程P1 发来的消息,然后再接收子进程P2 发来的消息。 4、思考 (1)系统是怎样创建进程的? (2)可执行文件加载时进行了哪些处理? (3)当首次调用新创建进程时,其入口在哪里? (4)进程通信有什么特点?
1
mkdir 目录名 ; mkdir /home/s2001/newdir 7.删除目录:rmdir; 8.复制文件 cp: 如 cp 文件名 1 文件名 2 9.移动文件或目录: mv 10.删除文件 rm 11. 显示文件内容:more (分页显示); 12. 显示文件:cat 文件名 建立文件:cat >文件名,ctrl+d 结束输入 使用编辑器 vi 编辑文件 1. 进入 linux 的文本模式之后,在命令行键入 vi filename.c 然后回车。下面作一些简单的解释:首
操作系统原理与实践教程(第三版)第3章习题答案

第3章处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。
所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。
(2) 什么是进程?为什么要在操作系统中引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。
“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。
解:●并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
●独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。
●动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
(4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?解:进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。
操作系统实验报告三

操作系统实验报告三一、实验目的本次操作系统实验的目的在于深入了解操作系统的进程管理、内存管理和文件系统等核心功能,通过实际操作和观察,增强对操作系统原理的理解和掌握,提高解决实际问题的能力。
二、实验环境本次实验在 Windows 10 操作系统环境下进行,使用了 Visual Studio 2019 作为编程工具,并借助了相关的操作系统模拟软件和调试工具。
三、实验内容与步骤(一)进程管理实验1、创建多个进程使用 C++语言编写程序,通过调用系统函数创建多个进程。
观察每个进程的运行状态和资源占用情况。
2、进程同步与互斥设计一个生产者消费者问题的程序,使用信号量来实现进程之间的同步与互斥。
分析在不同并发情况下程序的执行结果,理解进程同步的重要性。
(二)内存管理实验1、内存分配与回收实现一个简单的内存分配算法,如首次适应算法、最佳适应算法或最坏适应算法。
模拟内存的分配和回收过程,观察内存的使用情况和碎片产生的情况。
2、虚拟内存管理了解 Windows 操作系统的虚拟内存机制,通过查看系统性能监视器观察虚拟内存的使用情况。
编写程序来模拟虚拟内存的页面置换算法,如先进先出(FIFO)算法、最近最少使用(LRU)算法等。
(三)文件系统实验1、文件操作使用 C++语言对文件进行创建、读写、删除等操作。
观察文件在磁盘上的存储方式和文件目录的结构。
2、文件系统性能测试对不同大小和类型的文件进行读写操作,测量文件系统的读写性能。
分析影响文件系统性能的因素,如磁盘碎片、缓存机制等。
四、实验结果与分析(一)进程管理实验结果1、创建多个进程在创建多个进程的实验中,通过任务管理器可以观察到每个进程都有独立的进程 ID、CPU 使用率、内存占用等信息。
多个进程可以并发执行,提高了系统的资源利用率。
2、进程同步与互斥在生产者消费者问题的实验中,当使用正确的信号量机制时,生产者和消费者能够协调工作,不会出现数据不一致或死锁的情况。
操作系统习题及答案三

习题三同步、通信与死锁一、单项选择题1、在单一处理机上,将执行时间有重叠的几个程序称为()。
A.顺序程序B. 多道程序C.并发程序D. 并行程序2、进程间的基本关系为()。
A.相互独立与相互制约B. 同步与互斥C.并行执行与资源共享D. 信息传递与信息缓冲3、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。
A.同步B. 互斥C.竞争D. 合作4、在一段时间内,只允许一个进程访问的资源称为()。
A. 共享资源B. 临界区C. 临界资源D. 共享区5、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。
A. S>0B. S=0C. S<0D. S 06、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。
A.10 B.8 C.6 D.47、临界区是指( )。
A. 并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段8、下列对线程的描述中,( )是错误的。
A.不同的线程可执行相同的程序 B.线程是资源的分配单位C.线程是调度和执行单位 D.同一进程中的线程可共享该进程的主存空间9、P, V操作是()A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语10、若P, V操作的信号量S初值为2,当前值为-1,则表示有()等待进程。
A. 0个B. 1个C. 2个D. 3个11、()是一种只能进行P操作和V操作的特殊变量.A.调度B.进程C.同步D.信号量12、下面的叙述中正确的是()。
A.操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同B.为了避免发生进程死锁,各进程只能逐个申请资源C.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息D.进程同步是指某些进程之间在逻辑上的相互制约关系13、对于两个并发进程,设互斥信号量为mutex,若mutex=0,则().A.表示没有进程进入临界区B.表示有一个进程进入临界区C.表示有一个进程进入临界区,另一个进程等待进入D.表示有两个进程进入临界区14、发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏()条件是不太实际的。
操作系统习题及答案三

7、低级通信
8、资源分配、调度和执行单位
9、共享变量
10、资源、PV操作
三、简答题
1.进程的互斥是指在逻辑上本来完全独立的若干进程,由于竞争同一个资源而产生的相互制约关系。
进程的同步是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。
3.P操作顺序执行下述两个动作:
①信号量的值减1,即S=S-1;
②如果S≥0,则该进程继续执行;
如果S<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。
V操作顺序执行下述两个动作:
①S值加1,即S=S+1;
满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。
A.10 B.8 C.6 D.4
7、临界区是指()。
A.并发进程中用于实现进程互斥的程序段
B.并发进程中用于实现进程同步的程序段
C.并发进程中用户实现进程通信的程序段
D.并发进程中与共享变量有关的程序段
8、下列对线程的描述中,( )是错误的。
A.不同的线程可执行相同的程序B.线程是资源的分配单位
C.线程是调度和执行单位D.同一进程中的线程可共享该进程的主存空间
四、应用题
1.解:
(1)定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1(共2分)
(2)从[1]到[8]分别为:P(S1),V(S1),P(S2),V(S2),P(S1),V(S1),P(S2),V(S2)
2、解:
①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
操作系统实验报告实验3_1

操作系统实验报告实验3_1一、实验目的本次实验的主要目的是深入理解操作系统中进程管理的相关概念和原理,通过实际操作和观察,掌握进程的创建、调度、同步与互斥等关键机制,提高对操作系统内核工作原理的认知和实践能力。
二、实验环境本次实验在装有 Windows 10 操作系统的计算机上进行,使用了Visual Studio 2019 作为开发工具,编程语言为 C++。
三、实验内容与步骤(一)进程创建1、编写一个简单的 C++程序,使用系统调用创建一个新的进程。
2、在父进程和子进程中分别输出不同的信息,以区分它们的执行逻辑。
```cppinclude <iostream>include <windowsh>int main(){DWORD pid;HANDLE hProcess = CreateProcess(NULL, "childexe", NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pid);if (hProcess!= NULL) {std::cout <<"Parent process: Created child process with PID "<< pid << std::endl;WaitForSingleObject(hProcess, INFINITE);CloseHandle(hProcess);} else {std::cerr <<"Failed to create child process" << std::endl;return 1;}return 0;}```(二)进程调度1、设计一个多进程并发执行的程序,通过设置不同的优先级,观察操作系统对进程的调度情况。
2、记录每个进程的执行时间和等待时间,分析调度算法的效果。
```cppinclude <iostream>include <windowsh>DWORD WINAPI ProcessFunction(LPVOID lpParam) {int priority =(int)lpParam;DWORD start = GetTickCount();std::cout <<"Process with priority "<< priority <<"started" << std::endl;for (int i = 0; i < 100000000; i++){//执行一些计算操作}DWORD end = GetTickCount();DWORD executionTime = end start;std::cout <<"Process with priority "<< priority <<" ended Execution time: "<< executionTime <<" ms" << std::endl;return 0;}int main(){HANDLE hThread1, hThread2;int priority1 = 1, priority2 = 2;hThread1 = CreateThread(NULL, 0, ProcessFunction, &priority1, 0, NULL);hThread2 = CreateThread(NULL, 0, ProcessFunction, &priority2, 0, NULL);if (hThread1!= NULL && hThread2!= NULL) {SetThreadPriority(hThread1, THREAD_PRIORITY_LOWEST);SetThreadPriority(hThread2, THREAD_PRIORITY_NORMAL);WaitForSingleObject(hThread1, INFINITE);WaitForSingleObject(hThread2, INFINITE);CloseHandle(hThread1);CloseHandle(hThread2);} else {std::cerr <<"Failed to create threads" << std::endl;return 1;}return 0;}```(三)进程同步与互斥1、实现一个生产者消费者问题的程序,使用信号量来实现进程之间的同步与互斥。
网络操作系统 实验作业3参考答案

实验作业3【问题与思考】1、在Linux系统中,哪个文件定义了用户的信息________。
A. /etc/passwdB./etc/usersC./etc/infoD./etc/resolv.conf2、在Linux系统中,如何获取命令“iostat”的帮助信息_______。
A.man iostat B.? –k iostatC.help iostat D.sos -iostat3、下列哪个命令可以将输出到标准输出设备上的信息保存到文件 /tmp/user.dat 中________。
A. > /tmp/user.datB. < /tmp/user.datC. ! /tmp/user.datD. % /tmp/user.dat4、Linux系统中,哪个文件保存了用户账户的加密口令信息_______。
A./etc/securityB./etc/shadowC./etc/passwdD. /etc/inittab5、在Linux中,命令解释器是哪个。
A、管道B、分级文件系统C、字符型处理器D、 shell6、在Linux中,要删除abc目录及其全部内容的命令为。
A、rm abcB、rm -r abcC、rmdir abcD、rmdir -r abc7、请选出创建用户ID是200,组ID是1000,用户主目录为/home/user01的新用户user01的正确命令是:。
A、adduser -u:200 -g:1000 -h:/home/user01 user01B、adduser -u=200 -g=1000 -d=/home/user01 user01C、useradd -u 200 -g 1000 -d /home/user01 user01D、useradd -u 200 -g 1000 -h /home/user01 user018、Linux操作系统中的shell是。
A、命令解释器B、程序设计语言C、脚本编辑器D、编译器9、CentOS系统中用户默认的Shell是。
操作系统实验答案

部分实验答案第三部分操作系统实验指导实验3指导[实验内容]1.进程的创建〈任务〉编写一段程序,使用系统调用fork()创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b” 和“c”。
试观察记录屏幕上的显示结果,并分析原因。
〈程序〉#include<stdio.h>main()(int pl5p2;if(p 1 =fork())成功*/putchar(!b!);else(if(p2=fork())成功*/putchar(!c f);else putchar('a'); /*子进程创建/*子进程创建/*父进程执行*/<运行结果)bca(有时会出现abc的任意的排列)分析:从进程执行并发来看,输出abc的排列都是有可能的。
原因:fork。
创建进程所需的时间虽然可能多于输出一个字符的时间,但各个进程的时间片的获得却不是一定是顺序的,所以输出abc的排列都是有可能的。
2.进程的控制〈任务)修改已编写好的程序,将每个程序的输出由单个字符改为一句话,再观察程序执行时屏幕上出现的现象, 并分析其原因。
如果在程序中使用系统调用lockfO来给每个程序加锁,可以实现进程之间的互斥,观察并分析出现的现象。
(程序D#inchide<stdio.h>main()(int pl?p2?i;if(pl=fork())for(i=0 ;i<500; i++)printf(n parent%d\n n5i);wait(O); /*保证在子进程终止前,父进程不会终止*/exit(O);elseif(p2=fork()) (fbr(i=O ;i<500; i++) printf("son %d\n",i);wait(O); /*保证在子进程终止前,父进程不会终止*/exit(O); /*向父进程信号0且该进程推出*/)else(fbr(i=O ;i<500; i++)printf^grandchild %d\n\i);exit(O);)})〈运行结果)parent---.son…grandcliild---grandcliild---或grandcliild••,son•••grandcliild••,son•••parent分析:由于函数printfO输出的字符串之间不会被中断,因此,每个字符串内部的字符顺序输出时不变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三操作系统进程管理
一、实验目的
1) 掌握系统进程的概念,加深对Linux / UNIX进程管理的理解。
2) 学会使用ps命令和选项。
3) 列出当前shell中的进程。
4) 列出运行在系统中的所有进程。
5) 根据命令名搜索特定的进程。
6) 使用kill命令终止进程。
7) 根据用户名查找和终止进程。
二、实验内容和相应的答案截图,三、实验结果分析
步骤1:创建一个普通用户(参见实验二),以普通用户身份登录进入GNOME。
步骤2:打开一个“终端”窗口(参见实验二)。
步骤3:回顾系统进程概念,完成以下填空:
1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的__PID__进程标识符,用于跟踪从进程启动到进程结束。
2) 当启动新进程的时候,内核也给它们分配系统资源,如__内存_和__CPU_。
3) 永远不向父进程返回输出的进程叫做__僵进程__。
4) 由父进程派生出来的进程叫做____子___进程。
5) ___父_进程是一个派生另一个进程的进程。
6) 运行用于提供服务的Linux系统进程是_______________。
7) 如果父进程在子进程之前结束,它创建了一个______________进程。
步骤4:回顾ps命令和信息。
基本的ps命令显示当前shell中的进程信息,用户只能够查看当前终端窗口中初始化的进程。
输入ps命令,将结果填入表3-3中。
表3-3 实验记录
下面,在当前终端窗口中,练习使用给出的每个选项的ps命令。
输入ps -f 命令,显示运行在系统中的某个进程的完全信息,填入表3-4中。
表3-4 实验记录
步骤5:列出系统中运行的所有进程。
输入ps -ef 命令,显示运行在系统中的各个进程的完全信息。
执行该命令,并与ps –f 命令的输出结果对照,一致吗?有何不同?
答:不一致,后者显示了所有进程的完全可用信息,多了很多。
分析当前终端窗口中的输出结果,记录下来用于写实验报告。
a. 显示了多少个进程?答:59
b. 进程ID的PID是什么?
c. 启动进程的命令(CMD) 是什么?答:sched
d. 请观察,什么命令的PID号是1?答:init[5]
e. 执行ps –ef >aaa命令,将ps命令的输出送到文本文件aaa。
再次运行cat aaa | wc命令,计算进程的数目。
其中,cat是显示文本文件命令。
“|”是管道命令,就是将前一个命令的输出作为后一个命令的输入。
wc 命令用来计算文本的行数,第一个数字显示的是行的数目,可以用来计算进程的数目。
计算出进程数目并做记录。
执行man ps命令,可以打开Linux用户命令手册。
了解ps命令的用法。
输入wq命令可退出用户手册的阅读。
man命令可以执行吗?结果如何?
答:Man ps时出现
步骤6:确定一个要终止的进程。
当试图终止一个程序,或者释放一个挂起的终端窗口的时候,杀死和不响应的应用相关的PID可能还是不够的,一般需要杀死那个进程的父进程,在少数情况下,甚至要杀死父进程的父进程。
为了沿着层次结构,从子进程追溯到派生它们的父进程,必须能够查找PID 和PPID。
必须首先确定最低级不响应进程的PID。
通常,可以试着去杀死那个进程。
如果这样做不能够停止那个进程,可能需要杀死它的父进程。
杀死父进程将杀死所有它派生的子进程。
杀死一个父进程也比杀死几个子进程快得多。
1) 在GNOME当前终端窗口中,输入ps命令。
有多少进程正在运行?为什么只有这么少的进程?答:2个,只显示当前用户的进程
2) 正在运行的进程的名字是什么?它表示什么?答:bash和ps 前者是Linux 平台的内定Shell,后者是查看进程的命令
3) 进程的PID是多少?答:3348 3537
4) 在bash shell中输入命令csh,打开一个C shell会话,当前系统的会话提示符是什么?(注:csh是和bash类似的另外一种命令解释程序)
5) 输入ps -f 命令,显示在当前shell中运行的进程的所有信息。
现在什么进程正在运行?
6) bash的PID是-sh (csh) 的PPID吗?答:是
7) 输入命令sleep l000&,创建一个进程,把执行挂起1000秒(大约15分钟) 。
&表示在后台运行命令,返回shell提示符,这样您可以继续工作。
8) 再次输入ps -f命令。
-sh (csh) 的PID是sleep命令的PPID吗?哪些PID是csh (C shell) 的子进程?
9) 输入命令kill -9 <csh的PID> 退出C shell。
然后再次键入ps -f命令。
什么PID是sleep父命令的PPID?
sleep进程现在是什么类型的进程?
四、心得体会
通过这次的实验,我初步了解学会使用ps命令和选项。
还有如何列出当前shell中的进程。
如何列出系统中的所有进程和用户的进程,对于搜索特定的进程也有了一些了解,对于如何杀死进程还不是很了如指掌,但也有了一定的了解。
还有查找和终止进程等一些知识。
当然对于些次的实验我未能全部都做完,但也完成得七七八八了,总的来说这次的实验对我的帮助很大。