操作系统第一次实验作业

合集下载

操作系统实验报告(全)

操作系统实验报告(全)

操作系统实验报告书院系名称:电子工程学院电子指导教师:班级:学号:学生姓名:实验题目一:进程一、实验目的通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。

二、实验内容(1)补充POSIX 下进程控制的残缺版实验程序(2)回答下列问题:1. 你最初认为运行结果会怎么样?2. 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。

3. proc_number 这个全局变量在各个子进程里的值相同吗?为什么?4. kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?5. 使用kill 命令可以在进程的外部杀死进程。

进程怎样能主动退出?这两种退出方式哪种更好一些?三、实验步骤1.根据题意进入DOC环境中编写程序。

2.编译,链接,运行程序,进行调试。

3.分析实验结果及回答问题。

四、调试情况,回答问题及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

2、在设计过程中的感受。

调试情况:回答上述实验内容中的问题1.预期结果:会持续输出0-9号进程,直到输入数字键+回车,则会杀死该进程,接下来的输出将不会有该进程号,当输入q+回车,则退出程序。

2.实际结果:与预期差不多,因输入进程总数20大于设定的最大进程数,因此按进程数10来处理。

随机输出0-9号进程,sleep(SLEEP_INTERV AL),循环输出,直到输入数字键,则会杀死该数字对应的进程,直到输入q退出循环,然后杀死本组所有进程。

分析:每创建一个子进程时,将其pid存储在pid[i]中,i存储在proc_number,然后调用死循环函数do_something(),输出该进程的代号proc_number;当输入数字键时,主进程会执行kill(pid[ch-'0'],SIGTERM),从而杀死(ch-‘0’)号进程。

操作系统实验1

操作系统实验1

实验报告书学生姓名高雪学号班级计10A-2 2011 —2012 学年第一学期2021-8-19 第2页/共12页2021-8-19 第3页/共12页5.signal()signal()函数是允许调用进程控制软中断信号的处理。

6.pipe()函数pipe函数用于创建一个管道五、编译与执行过程截图1.进程的创建执行后出现acb和abc两种不同情况2.进程的控制〔1〕加锁情况:2021-8-19 第4页/共12页( 2 )没有加锁的情况3.进程的软中断通信2021-8-19 第5页/共12页4.进程的管道通信六、实验结果与分析1.进程的创建:实验一为进程创建,由以上截图可以看到产生了不同的结果,即acb和abc。

最初只有acb一种情况,反复执行之后,会出现abc。

原因很简单,就是因为进程的特性:并发性。

进程之间是并发执行的,并发只说一段时间内同时进行。

第一个输出一定是a,因为a在bc之外优先执行,而在执行bc的时候,2者会随机出现,多数情况会是acb,假设想更快的见到abc,可以讲c语句变长,如改为this is c child.这样进程需要的时间就稍长,后一个会先出现了。

但宏观来看,还是并行的。

2. 进程的控制实验二为进程控制,分为不加锁和加锁的情况,产生的结果不同,在不加锁的情况下,还有由于进程的执行具有并发性这个特征,因此会产生字符交叉的情况,即某一个进程在自己的时间片当中使用处理机,但是当时间片结束,还没有完成,但也必须由下一个进程接管处理机,因为它就进入了阻塞的状态。

多个进程反复出现,所以就出现了输出的字符交叉的情况。

但是,当我们对进程加锁后,就说明只能由该程序占用处理机,必须这些完这段程序才能执行下一段,因为不会出现交叉的情况,这个就是锁的作用。

2021-8-19 第6页/共12页2021-8-19 第7页/共12页2021-8-19 第8页/共12页2021-8-19 第9页/共12页2021-8-19 第10页/共12页2021-8-19 第11页/共12页2021-8-19 第12页/共12页。

南京邮电大学-操作系统实验报告

南京邮电大学-操作系统实验报告

课内实验报告课程名:操作系统任课教师:沈超专业:信息管理与信息系统学号:姓名:二○一六至二○一七年度第一学期南京邮电大学经济与管理学院Process[numberschedul].order=tempcounter;}程序结果截图:二、银行家算法(网上借鉴)银行家算法,当进程提出资源申请时,系统首先检查该进程对资源的申请量是否超过其最大需求量及系统现有的资源能否满足进程需要。

若超过,则报错,若不能满足,则让该进程等待;否则进一步检查把资源分给该进程后系统能否出于安全状态,若安全,则分配,否则置该进程为等待资源状态。

算法实现过程:设进程i 提出请求REQUEST [j] ,则银行家算法按如下规则进行判断。

(1) 如果REQUEST [i] [j]<= NEED[i][j] ,则转(2) ;否则,出错。

(2) 如果REQUEST [i] [j]<= A V AILABLE[i][j] ,则转(3) ;否则,出错。

(3) 系统试探分配资源,修改相关数据:A V AILABLE[j]-=REQUEST[i][j];ALLOCATION[i][j]+=REQUEST[i][j];NEED[i][j]-=REQUEST[i][j];(4) 系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

Check()关键代码:{int k, f, no=0;int work[M],a[M];char finish[M];anquan=1;for(i=0;i<n; i++) finish[i]='F';for(j=0;j<m; j++) work[j]=available[j]; k=n;do{ for (i=0;i<n; i++){if (finish[i]=='F'){ f=1;for (j=0;j<m; j++)if (need[i][j]>work[j]) printf("处于安全状态.");printf("安全序列号:");for (i=0;i<n;i++) printf ("%d ",a[i]); printf("\n");printf("进程");printf(" ");printf(" Max ");rintf(" ");rintf("allocation");printf(" ");printf("need");printf(" ");f=0;if (f==1)//找到还没完成的且需求数小于可提供进程继续运行的{ finish[i]='T';a[no++]=i;//记录安全序列号for (j=0;j<m; j++)work[j]=work[j]+allocation[i][j];//释放该进程已分配的资源available[j] =work[j];}}}k--; }while(k>0);f=1;for (i=0;i<n; i++)//判断有没有进程没完成{ if (finish[i]=='F'){f=0;break; }} if (f==0) {printf("不安全状态!\n");anquan=0;} else {printf("available");printf("\n");for (i=0;i<n; i++){ printf("%2d",i);printf(" ");for(j=0;j<m; j++)printf("%2d",max[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",allocation[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",need[i][j]);printf(" ");for(j=0;j<m; j++){if(i>0)break;printf("%2d",available[j]);}printf("\n");}}}程序结果截图:三、实验总结:这次上机模拟了进程调度过程和解决了死锁问题,让我对短作业优先调度算法和银行家算法有了比在课堂上更深刻的认识。

操作系统 第二章作业本(含答案)

操作系统 第二章作业本(含答案)

第二章作业第一次作业:1.进程有哪三种基本状态?进程在三种基本状态之间转换的典型原因是什么?答:三种基本状态:就绪状态、执行状态、阻塞状态。

(1)就绪状态→执行状态:进程分配到CPU资源(进程调度);(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成2.在Linux系统中运行下面程序,最多可产生多少个进程?画出进程家族树。

main(){fork();fork();fork();}答:最多可以产生7个进程。

其家族树为:3.试从动态性、并发性和独立性上比较进程和程序。

答:1)动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的;2)并发性是进程的重要特征,同时也是OS的重要特征。

引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身(没有建立PCB)是不能并发执行的;3)独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。

凡未建立PCB的程序,都不能作为一个独立的单位来运行。

4.分析下列代码的功能:答:sleep_on实现进程的睡眠过程;wake_up实现进程的唤醒过程。

第二次作业:1.同步机制应该遵循哪些基本准则?你认为整型信号量机制遵循了同步机制的哪些基本准则?答:同步机制应遵循四个基本准则:a. 空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。

b. 忙则等待:当已有进程进入临界区时,其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。

c. 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。

d. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。

北京工业大学操作系统实验报告0122

北京工业大学操作系统实验报告0122

操作系统实验报告专业计算机科学与技术年级本科三年级学号 ******** 姓名樊文舟目录:一、实验一 ---------------------------------------------31.实验目的-----------------------------------------------------------32.实验内容-----------------------------------------------------------33.实验要求-----------------------------------------------------------34.实验设计-----------------------------------------------------------35.实验程序-----------------------------------------------------------36.实验结果-----------------------------------------------------------47.实验感想-----------------------------------------------------------4二、实验二 ---------------------------------------------41.实验目的-----------------------------------------------------------52.实验内容-----------------------------------------------------------53.实验要求-----------------------------------------------------------54.实验设计-----------------------------------------------------------55.实验程序-----------------------------------------------------------66.实验结果-----------------------------------------------------------77.实验感想-----------------------------------------------------------7三、实验三 ---------------------------------------------81.实验目的-----------------------------------------------------------82.实验内容-----------------------------------------------------------83.实验要求-----------------------------------------------------------84.实验设计-----------------------------------------------------------95.实验程序-----------------------------------------------------------106.实验结果-----------------------------------------------------------117.实验感想-----------------------------------------------------------11四、实验四 ---------------------------------------------121.实验目的-----------------------------------------------------------122.实验内容-----------------------------------------------------------123.实验要求-----------------------------------------------------------124.实验设计-----------------------------------------------------------125.实验结果-----------------------------------------------------------126.实验感想-----------------------------------------------------------12 个人总结---------------------------------------------12实验一 UNIX/LINUX入门一、实验目的了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握UNIX/LINUX 下C语言程序的编写、编译、调试和运行方法。

西安交大操作系统第一次习题课

西安交大操作系统第一次习题课

•请将以下描述这两个活动的PV操作补充完整:
Semaphore s1=0; Semaphore s2=0; main() {cobegin driver(); conductor(); Coend; }
driver() {while(1) {p(s1); 启动车辆; 正常行车; 到站停00个座位。读者进 入时必须先在一张登记表上登记,该表为 每一座位列一表目,包括座号和读者姓名。 读者离开时要消掉登记内容。试用P/v操 作描述读者进程的同步结构。 解析:定义信号量以及相应变量 mutex: semaphore; 互斥信号量 full: semaphore; 同步信号量 table: array 0.. n-1 of item ;
• 解答: • 首先分析两个进程之间的同步关系。汽车行驶过 程中,司机活动与售票员活动之间的同步关系为: – 售票员关车门后,向司机发开车信号 – 司机接到开车信号后起动车辆 – 在汽车正常行驶过程中售票员售票 – 到站时司机停车 – 售票员在车停后开车门让乘客下车 • 定义两个信号量s1:表示是否允许司机起动车辆, s2:表示是否允许售票员开门。初值为0。
begin
seminitial (mutex,1 ; barbers, 0; customers,0); waiting=0; chairs=10; cobegin barber; customer; ….. customer; coend end
Assignment: Extra problem 1
consumer:
p(product);
p(mutex); //remove product
p(mutex);
p(product); //remove product

操作系统第一次作业题

操作系统第一次作业题

本科第一次作业一.选择题1.操作系统是对____进行管理的软件。

( C)A.软件 B.硬件 C.计算机资源 D.应用程序2.在操作系统中,并发性是指若干事件发生。

(C )A.在同一时刻B.一定在不同时刻C.某一时间间隔内D.依次在不同时间间隔内3.操作系统的不确定性是指。

(D )A.程序运行结果的不确定性B.程序运行次序的不确定性C.程序多次运行时间的不确定性D.B和C4.以下不是程序在并发系统内执行的特点(C )A.程序执行的间断性B.相互通信的可能性C.产生死锁的必然性D.资源分配的动态性5.在操作系统中,负责对进程的调度(A )A.处理器管理B.作业管理C.高级调度管理D.存储和设备管理6.以下不属于衡量操作系统性能指标的是。

(A )A.作业的大小B.资源利用率C.吞吐量D.周转时间7.在单处理器系统中,可并行的是。

(D )I.进程与进程II.处理器与设备III.处理器与通道IV.设备与设备A. I,II和IIIB. I,II和IVC. I,III和IVD. II,III和IV8.一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下:P1:计算60ms,I/O 80ms,计算20msP2:计算120ms,I/O 40ms,计算40ms若不考虑调度和切换时间,则完成两个作业需要的时间最少是。

(B)A.240msB.260msC.340msD.360ms9.下列选项中,在用户态执行的是。

(A )A.命令解释程序B.缺页处理程序C.进程调度程序D.时钟中断处理程序10.下列选项中,不可能在用户态发生的事件是。

(C )A.系统调用B.外部中断C.进程切换D.缺页11.下列选项中,操作系统提供给应用程序的接口是。

(A )A.系统调用B.中断C.库函数D.原语12.并发进程指的是(C)A.可并行执行的进程 B.可同一时刻执行的进程C.可同时执行的进程D.不可中断的进程13.当一个进程处于这样的状态时,,称为阻塞状态。

1Linux教程实验指导书

1Linux教程实验指导书

Linux程序设计实验指导书目录实验一:linux安装 (3)实验二:常用命令的使用 (10)试验三vi编辑器 (11)实验四 shell编程 (11)实验五常用开发工具 (12)实验六 makefile的编写与使用 (14)实验七 Linux环境编程 (14)实验八 (15)实验一:linux安装一、实验目的1.学会在操作系统安装之前,根据硬件配置情况,指定安装计划2.掌握多操作系统安装前,利用硬盘分区工具(如PQMagic)为Linux准备分区3.掌握Linux操作系统的安装步骤4.掌握Linux系统的简单配置方法5.掌握Linux系统的启动、关闭步骤6.掌握在虚拟机上的Linux安装步骤和使用方法二、实验内容1.安装并使用硬盘分区工具,为Linux准备好分区2.安装Linux系统(如红旗Linux桌面版)3.配置Linux系统运行环境4.正确的启动、关闭系统注意:为了避免新手在第一次安装Linux时,破坏掉磁盘上的有用数据,推荐第一次在winxp系统上的虚拟机上安装linux。

因此需要一下步骤:1.安装winxp下的虚拟机软件vmware,并创建一个虚拟机。

2.在虚拟机环境中安装linux系统。

3.配置Linux系统运行环境4.正确启动、关闭系统。

三、背景知识Linux安装有三种方式,分别是:通过光盘安装、硬盘安装和网络安装。

另外有三种形式,分别是:Linux独立操作系统、Linux与windows共存的双(多)操作系统、Windows下虚拟机安装Linux的双(多)操作系统。

在三种安装方式中,通过光盘安装最为简单,但是需要事先从网络上下载安装镜像文件,并将其刻录到光盘上;或者直接从外面买别人刻好的安装光盘。

由于Linux是开源的操作系统,因此不存在“盗版”的说法。

另一种是通过硬盘安装,需要事先将安装镜像文件下载到本地fat32格式的磁盘分区上,然后重新启动进入纯dos下,进行一些必要的设置就可以从硬盘自动安装了,其后的安装步骤跟光盘安装一样。

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

《第一次上机实验指导》
1、开始--》运行--》cmd (进入命令窗口)
2、在命令行(命令窗口中命令指示符>后)键入 help|more 会分屏列出DOS系统所有命令(按<空格键>显示下一屏)
DOS系统的基本命令有:
DIR—列出当前目录(文件夹)下的内容(文件和子目录)MD--建目录、RD--删目录、CD—进入目录(改变当前目录)TYPE—显示(文本)文件的内容
COPY—文件拷贝命令
Ctrl+C—终止命令的运行
HELP—帮助命令
HELP <命令名>--列出<命令名>所指示的命令的使用方法
例如:HELP COPY --列出COPY命令的使用方法(如下所示)
3、标准输入输出转向(标准输入转向、标准输出转向)
标准输入为从(终端)键盘(0号打开文件)输入。

标准输出为向(终端)显示器(1号打开文件)输出。

标准输入转向就是把标准输入改为从文件输入。

标准输出转向就是把标准输出改为向文件输出。

(特殊文件名代表设备,例如PRN代表打印机)
例如:
C>abcd<data123.txt
把abcd可执行文件的标准输入改为从文件data123.txt输入,“<”为标准输入转向符。

C>dir>dirabc.txt
把dir命令的标准输出改为向文件dirabc.txt输出,“>”为标准输出转向符,这样dirabc.txt文件中的内容就是当前目录的列表。

C>dir>PRN
把当前目录的列表在打印机输出。

4、管道:|(键盘上之间有口的两段竖线)
C>C1|C2 把命令C1的标准输出作为命令C2的标准输入
例如:
C>help|more
C>dir|sort 把当前目录的列表排序后在屏幕输出。

C>dir|sort>abc 把当前目录的列表排序后输出到文件abc中。

C>dir|sort>prn 把当前目录的列表排序后输出到打印机。

C>dir|sort|more 把当前目录的列表排序后分屏输出。

5、联机命令分类
1).按命令的功能分类:
a)系统访问命令(Login,Logout)
b)文件管理命令(cd,md,dir,copy等)
c)编辑、编译、链接和执行命令
d)维护管理命令
e)调试命令
f)其它
2).按照命令对应的程序代码的所属分类为:
a)内部命令(程序代码在命令语言解释程序中)
b)外部命令 (程序代码以可执行文件形式存放在磁盘上)
3)批处理命令(程序代码以命令文件的形式存放在磁盘上,命令文件由一系列命令行组成,每个命令可以是内部命令,外部命令,也可以是批处理命令,可以有条件转移,转向循环,位置参数等功能。

PC-DOS中的命令的优先顺序为内部命令,外部命令,批处理命令
6、DOS批处理
DOS系统和Windows系统中扩展名为bat的文件称为命令文件或者称为批处理文件,其中通常包含一系列DOS命令,例如
abc.bat:
copy c:\f1 d:\
copy c:\f2 d:\
copy c:\f3 d:\
启动该bat文件(在命令行输入abc或者abc.bat后回车,或者在Windows窗口双击abc.bat文件)后,系统将依次执行其中的各条命令,也就是“成批地”自动处理(把C盘根目录下的文件f1、f2、f3依次拷贝到D盘根目录下)。

另一个bat文件的例子为“批处理举例.BAT”,其中包含下列命令:c:
cd \ 修改目录
rd xyz3313 删除目录xyz3313
md xyz3313 在c盘创建目录xyz3313
cd xyz3313 修改xyz3313
md xyz13313 在xyz文件夹创建目录xyz13313
md xyz23313 在xyz文件夹创建目录xyz23313
echo -c:\xyz3313目录下的目录- >tree123.txt 建立文件夹tree123.txt,并将内容“xyz3313目录下的目录”添加入新建立的文件夹tree123.txt.中。

tree c:\xyz3313>>tree123.txt 将路径c:\xyz3313的所生成的目录文件保存在tree123.txt文本文档中。

echo -c:\xyz3313下的目录及文件- >>tree123.txt 建立文件夹tree123.txt,并将内容“xyz3313下的目录及文件”添加入新建立的文件夹tree123.txt.中。

tree c:\xyz3313>>tree123.txt /f /f显示每个文件夹中文件的名称。

将这个路径的目录文件保存在tree123.txt文本文档中。

type tree123.txt 显示文本文件的内容
copy tree123.txt d:\t123.txt 复制这个文件,并复制一份到D盘中。

请解释每条命令的功能,并说明最终结果(作为作业提交上来)。

运行包含上列命令的批处理文件(可以自己建立一个批处理文件,把上列命令拷贝进去),检查一下运行结果是否与你说明的结果一致。

标准输入为从(终端)键盘(0号打开文件)输入。

标准输出为向(终端)显示器(1号打开文件)输出。

标准输入转向就是把标准输入改为从文件输入。

标准输出转向就是把标准输出改为向文件输出。

(特殊文件名代表设备,例如PRN代表打印机)
例如:
C>abcd<data123.txt
把abcd可执行文件的标准输入改为从文件data123.txt输入,“<”为标准输入转向符。

C>dir>dirabc.txt
把dir命令的标准输出改为向文件dirabc.txt输出,“>”为标准输出转向符,这样dirabc.txt文件中的内容就是当前目录的列表。

C>dir>PRN
把当前目录的列表在打印机输出。

相关文档
最新文档